)]}'
{
  "log": [
    {
      "commit": "7504b9eb4561df88550f874cf0ce95b6f4d09927",
      "tree": "0991a83bf78a67170a0707d8e300578c9c46727f",
      "parents": [
        "2c8c51d4aeffc4d561a67b06d20fff67d9a5a5aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 15 18:17:26 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 16 08:29:05 2017 -0700"
      },
      "message": "soundtrigger: require RECORD_AUDIO permission for DSP hotword\n\nCheck android.permission.RECORD_AUDIO permission in addition to\nandroid.permission.CAPTURE_AUDIO_HOTWORD for DSP hotword operations\nas those require access to device microphone.\n\nBug: 62265680\nTest: check \"OK Google\" detection with and without DSP\nChange-Id: Icba2520331164bcd618e91916ca701e677d419b8\n"
    },
    {
      "commit": "4d519c7becf4891a7aafc3032097a088e72aeda3",
      "tree": "0c42cabe444d37776472c9505eb41de719ea9d33",
      "parents": [
        "d75cc634761653810e3b0d5aea951b5a59f47f83",
        "a7a28931f13d2612bc6e8742d470364f93bdfe03"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Aug 08 00:23:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 08 00:23:55 2017 +0000"
      },
      "message": "Merge \"APM: cap earpiece voice in call by voice volume\" into oc-dr1-dev\nam: a7a28931f1\n\nChange-Id: Id1c78125fdb8c0b7cdf0352d59661aa8e02d7664\n"
    },
    {
      "commit": "719a987e9d8cb54bc7da74941a8bfacbc844900d",
      "tree": "4632b96c5136184ffb14b243fbb44d713ca4a98a",
      "parents": [
        "ddef08e7254cd593881711b9f812e062676b4b3d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sat Aug 05 13:51:35 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Aug 07 12:25:57 2017 -0700"
      },
      "message": "APM: cap earpiece voice in call by voice volume\n\nThe volume curves between AUDIO_STREAM_VOICE_CALL and other streams\n  used during a call on AUDIO_DEVICE_OUT_EARPIECE can vary greatly,\n  particularly when the volume curve is used to tune the voice signal\n  going to earpiece, not just to select a desired curve shape.\nThis can be problematic during a call as a sound playing on a different\n  stream may be assigned a much louder attenuation value than that\n  of voice.\nThe fix consists in comparing the attenuation computed for earpiece\n  to the one for VOICE_CALL, and using the lowest value (with a 3dB\n  headroom).\n\nTest: see bug\nBug: 63395386\nBug: 63976807\nBug: 38194285\n\nChange-Id: Ia55e05e2a1d6fc55d45147f4234b693a905714cc\n"
    },
    {
      "commit": "58091c2e6c4bb9cec306cbfb47518d65af431200",
      "tree": "63aee582ecbb100d7f0de516581f984a57718500",
      "parents": [
        "b636c4fd77c445887eb785f3d94c2aa080572b13",
        "72ad4b91d6ece44b7967080c44695227c6789147"
      ],
      "author": {
        "name": "David Lin",
        "email": "dtwlin@google.com",
        "time": "Wed Jul 26 18:03:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 26 18:03:27 2017 +0000"
      },
      "message": "audiopolicy: do not check for mode_in_communication for voip flags\nam: 72ad4b91d6\n\nChange-Id: I742803dd00cdd5bcbdf23b99bb6b415f3f118def\n"
    },
    {
      "commit": "72ad4b91d6ece44b7967080c44695227c6789147",
      "tree": "9024805bd48a40a394aaca464ba4ec16b1efc738",
      "parents": [
        "db5beef4cf663e01dcdd65e953dc136b06ac81f4"
      ],
      "author": {
        "name": "David Lin",
        "email": "dtwlin@google.com",
        "time": "Tue Jul 25 23:46:47 2017 -0700"
      },
      "committer": {
        "name": "David Lin",
        "email": "dtwlin@google.com",
        "time": "Tue Jul 25 23:46:47 2017 -0700"
      },
      "message": "audiopolicy: do not check for mode_in_communication for voip flags\n\nSome VoIP clients may choose to open the streams as soon as the phone\nstate is set to MODE_RINGTONE to allow lower start latency when the call\nis connected. This patch removes the unnecessary check conditions for\nMODE_IN_COMMUNICATION since the stream type is sufficient indicator for\nsetting the flags for VoIP calls.\n\nBug: 62782025\nTest: manual voip mo and mt calls tests\nChange-Id: Idc7e1b6f33921580c0937dee71b2b2105cbd31eb\nSigned-off-by: David Lin \u003cdtwlin@google.com\u003e\n"
    },
    {
      "commit": "9584601561ad1d3b4fc1b0035c3f3e5bbd3e499e",
      "tree": "0f3268ed27ec2f843c79924a4b779afa06fc2b98",
      "parents": [
        "6c3359f522fa5c528d7eef5deaaf0d2c9c365089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:34:02 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:56:37 2017 -0700"
      },
      "message": "Append additional owners to projects\n\nThis releaves reviewing burden from the frameworks/av owners.\nNote that the lists of owners are inherited from the parent\ndirectories thus the people listed in these files are owners\n*in addition* to people listed in frameworks/av/OWNERS,\nand frameworks/av/{media|services}/OWNERS.\n\nChange-Id: I5e2db1c40cb807b906b2701fe446c874a8d19983\nTest: not needed\n"
    },
    {
      "commit": "cb4dae216758d9e9a28050f65097f1ce905c03e9",
      "tree": "4c3c49679384d70006675e9e06c7e8e8117e206c",
      "parents": [
        "0acb3209107802e2ab116f8374aab886579729bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 12 12:17:33 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nMerged-In: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\n"
    },
    {
      "commit": "a54f1283fdd9adbd64ecca4e14af56aaa0e8c825",
      "tree": "cdadd19276119f775480482778c2df15a6ae264f",
      "parents": [
        "20e6916035865710b7a30ac7f2eac1311e2c2e70"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 11 18:21:40 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\n"
    },
    {
      "commit": "b64230e6f42e87a84725d9934d9e25c638d761b1",
      "tree": "92d4d93a541195da3719b35474b89e89ebfaa8ab",
      "parents": [
        "ab5c38a7ac2ba27e680a95cac6c0b9d61c08771b",
        "9f2b9d3a001834c1e1990ac8e2a8717ad38c7eee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 11 18:02:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 11 18:02:26 2017 +0000"
      },
      "message": "Merge \"audio policy: fix audio device properties loading\" into oc-dr1-dev am: ed0f8f425d\nam: 9f2b9d3a00\n\nChange-Id: Ieb6145d4120f3197a7b841fccc9250f92db5f384\n"
    },
    {
      "commit": "83efe1c6bd6fa206560377960358ec95aa6a1c41",
      "tree": "5dd69d5f069370fffc9ae73660f9c8641017b636",
      "parents": [
        "15fb0ee6bd752ccde960b961dd1e9113c37e5f8b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 09 16:51:08 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 09 16:51:08 2017 -0700"
      },
      "message": "audio policy: fix audio device properties loading\n\nOnly load removable digital device properties from streams\nwith dynamic profiles. This avoids aggregating properties from\nother stream profiles when the device can also be reached via those\nprofiles.\n\nBug: 38423100\nTest: connect various USB devices and check properties are loaded\nproperly.\n\nChange-Id: Ie5eed397d3a475848a3d423d18ffae9d55917ac4\n"
    },
    {
      "commit": "4fb615c2774c04b4d36d8f9d88dd4aa291296288",
      "tree": "6ce96b0a49b22c440b7b70be61a862e214d8d960",
      "parents": [
        "8f5520a7378e7af0fcc6a8b693f29a6ddffbbbcd"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jun 26 10:28:13 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 07 17:20:47 2017 -0700"
      },
      "message": "Audio policy: Parse new audio policy configuration file\n\nFor treble, files shared between vendor and system must have a schema.\nAs .conf did not support such feature, transition to an xml based\nconfiguration file.\n\nThis new format has several changes:\n - library path are now relative to the standard effect directories\n - effect parameters are no longer supported (nobody used them)\n\nTest: Check that the dumpsys is similar than with the legacy formal\nBug: 37492580\nChange-Id: Ie6bd84ed88124991600fa238cc13714874eefad9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "e049eb2dc2b2ccd5f307791fa2534abb8896884e",
      "tree": "54dcd4d06b7afc1756e93ab04c9574c1786c4218",
      "parents": [
        "9063fa7966a6d531595d8ada46d7667c569fc308",
        "f64d1add0be1a9e401fe682bf24fad8e226ef1a4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sat Jul 01 01:21:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jul 01 01:21:12 2017 +0000"
      },
      "message": "Merge \"Audio routing: Fix notification routing during A11y playback\" into oc-dr1-dev am: 53f4c18b5a\nam: f64d1add0b\n\nChange-Id: I125d4754063892f23ce470a0f72114e0fa7d8782\n"
    },
    {
      "commit": "94c26c06d8f1c3821cc0c7994e233874f5c8ea84",
      "tree": "7fc9ce5c37fe9c0508cc957f7f5419a55f9f2488",
      "parents": [
        "f3ffd1ced8c4709388f8ed5c9a49284f36aa5b97"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 30 14:50:01 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 30 14:50:01 2017 -0700"
      },
      "message": "Audio routing: Fix notification routing during A11y playback\n\nWhen notifications are played, the audio policy checks if media\n  is playing for deciding which devices will play it. In the\n  absence of media, the notification is duplicated on speaker\n  and headset. With media playing, the notification routing\n  is set to that of the media strategy.\nThe bug is observed during A11y playback on headset with a\n  notification playing: A11y is playing on headset, but the\n  device can\u0027t play the notification on speaker + headset at\n  the same time, resulting in the notification playing in and\n  out based on the A11y playback in headset.\nThe fix is to also consider A11y activity when routing\n  notification playback (under STRATEGY_SONIFICATION_RESPECTFUL).\n  This improves the UX the notification is not missed, and\n  doesn\u0027t cut in and out.\n\nTest: play Talkback on headset, receive notification at the same time.\nBug: 62907561\nChange-Id: Ib924ec41cb7e16d6f2686d8615facba08e256ade\n"
    },
    {
      "commit": "04e4bc8ca4c1eca1e71e6d1a7f6d2c776eff487b",
      "tree": "8cd088c7ade38cfaeb717612f5dc58e352ce53d9",
      "parents": [
        "8b43fd31a39afd8365243f175d1b98f4b79c0a21",
        "105ab1ea0c5ae02278cf18243984b9fa0b49d2fa"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Thu Jun 29 03:14:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 29 03:14:54 2017 +0000"
      },
      "message": "Merge \"prevent preempting overlapping sound trigger audio streams\" into oc-dr1-dev am: 81ccb8fec9\nam: 105ab1ea0c\n\nChange-Id: Ied9d5c45fadbeac3db295eff7faec837f0538c14\n"
    },
    {
      "commit": "81ccb8fec9eab4a05e94fc4a4f6dacc8348804e1",
      "tree": "9b60e65102b42e1056a62d842a52327a5a18fa25",
      "parents": [
        "5f1b1e7c18583905ce2348b64dbb7fee9ca01824",
        "2b8646482dc74cf1afef50a812691600aa229090"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 29 03:03:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 29 03:03:44 2017 +0000"
      },
      "message": "Merge \"prevent preempting overlapping sound trigger audio streams\" into oc-dr1-dev"
    },
    {
      "commit": "7202f80d8b6a9ef21de6328ce118b464c0293176",
      "tree": "deeaee161b8393d0e5351807aa61f18eb4a2c040",
      "parents": [
        "5a6dfd54b25216c02f0863e86de0560e51dc33a5",
        "a2c2cbc00c92efe1b1b12e4d2e2e8a30c518689f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 28 21:51:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 28 21:51:00 2017 +0000"
      },
      "message": "Merge \"Audio policy: fix volume change on DEVICE_OUT_SPEAKER_SAFE\" into oc-dr1-dev am: 888fd19ac4\nam: a2c2cbc00c\n\nChange-Id: I4f50dfc7bdff3805831b54cb7105b3a65fca280b\n"
    },
    {
      "commit": "2b8646482dc74cf1afef50a812691600aa229090",
      "tree": "6cb571d5fa9e5b1e8620b06ae1b91d586b99423b",
      "parents": [
        "66feec9ff333bbf0b2590f1b321fbf880e1405a4"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Jun 27 21:26:07 2017 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Wed Jun 28 13:34:47 2017 -0700"
      },
      "message": "prevent preempting overlapping sound trigger audio streams\n\nIf the sound trigger hal indicates that concurrent_capture is true, the\nstream should not be preempted when when another sound trigger stream is\nopened.\n\nTest: Verify that multiple streams are not closed when triggered by\ndifferent engines.\nBug: 35956563\n\nChange-Id: I3d5df136403e47fcc1280f63b25216f326b74d6f\n"
    },
    {
      "commit": "b7fdce6e1654e573c25ec19fa6dfeb79dc4e6597",
      "tree": "aa0e6704fa21540f3e1d359c41583f2e30074a1b",
      "parents": [
        "66feec9ff333bbf0b2590f1b321fbf880e1405a4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 27 19:38:42 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 27 19:38:42 2017 -0700"
      },
      "message": "Audio policy: fix volume change on DEVICE_OUT_SPEAKER_SAFE\n\nWhen changing stream volume, compare given device and current device\n  for stream both as filtered through Volume::getDeviceForVolume.\nThis behavior matters for Android devices playing notifications and\n  ringtones on the AUDIO_DEVICE_OUT_SPEAKER_SAFE, which is filtered\n  out for volumes (see Volume.h for getDeviceForVolume() method).\n\nTest: play a ringtone and modify volume with vol keys\nBug: 63004956\nChange-Id: I139099f34e0ab091fd0ea761c75949656549f77a\n"
    },
    {
      "commit": "66feec9ff333bbf0b2590f1b321fbf880e1405a4",
      "tree": "ebb1043a6aaf48ac109eb7022a999ae4bc31f0cc",
      "parents": [
        "d4ef5f1eafa099eb40e68a1dfc7b701e4a8d0b1a",
        "2ac7694396640821f6723672e25b2372220bf060"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 27 01:18:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 27 01:18:41 2017 +0000"
      },
      "message": "Merge \"Set initial audio device for AudioTrack and AudioRecord\" into oc-dr1-dev"
    },
    {
      "commit": "2ac7694396640821f6723672e25b2372220bf060",
      "tree": "0cd5a8c58898fcb145f4b879ea64aeb260266ce2",
      "parents": [
        "ffd80b92df8521dd28ab5fd08b1098a58cb280e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 17:17:09 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 26 16:29:08 2017 +0000"
      },
      "message": "Set initial audio device for AudioTrack and AudioRecord\n\nBug: 62090113\nTest: run AAudio test and verify a valid device is reported just\nafter opening playback or capture streams in legacy mode.\n\nMerged-In: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n\nChange-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n"
    },
    {
      "commit": "9ae8c597d9a0c8cedc4047fc4716d7361453f6ab",
      "tree": "4c8824f15e744d82243f4a3caab1d67b208afd47",
      "parents": [
        "5af194cf79f280034430f2f65b02a89f261dbbc8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 17:17:09 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 26 08:04:19 2017 -0700"
      },
      "message": "Set initial audio device for AudioTrack and AudioRecord\n\nBug: 62090113\nTest: run AAudio test and verify a valid device is reported just\nafter opening playback or capture streams in legacy mode.\n\nChange-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n"
    },
    {
      "commit": "16aca446109043656d9b14105a716ea6c2fed967",
      "tree": "13cf4fdf26552b57ce61520b05a9d353f572a0b9",
      "parents": [
        "f470b52e20e6672cc38b5da2cd7349edaf1ba359",
        "ac4e42982d4537732b30e71c9a00ba0077944984"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 22 22:39:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 22 22:40:06 2017 +0000"
      },
      "message": "Merge \"Monitoring of recording: uid of recording session\""
    },
    {
      "commit": "cb815c959f4d1a23ae212b06e30f7813c35f4f1f",
      "tree": "e885e8af6a8ac5f2153e883aff40d8e0041a5f83",
      "parents": [
        "ffd80b92df8521dd28ab5fd08b1098a58cb280e8",
        "851d3ff273dcab849a617586c50a2e1392edefed"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 21 20:50:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 21 20:50:21 2017 +0000"
      },
      "message": "Merge \"APM: Allow VOIP_TX input selection\" into oc-dr1-dev"
    },
    {
      "commit": "851d3ff273dcab849a617586c50a2e1392edefed",
      "tree": "13712e14c4f0b3965d91070c9e6d167574b6865f",
      "parents": [
        "5dd96d24e898701f6a37e0b49ef105d2bd637133"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon Jun 19 20:01:57 2017 -0700"
      },
      "committer": {
        "name": "David Lin",
        "email": "dtwlin@google.com",
        "time": "Tue Jun 20 11:44:17 2017 -0700"
      },
      "message": "APM: Allow VOIP_TX input selection\n\nSet flag to select VOIP_TX input profile if input source\nis VOICE_COMMUNICATION and phone state is MODE_IN_COMMUNICATION\n\nBug: 62495679\nTest: Hangout call\nChange-Id: I3b1bb9fbcdd5687ebb002facf0684983333e9a53\n"
    },
    {
      "commit": "10c94f7a68644aed1a008469fba48ec2b246ca8d",
      "tree": "95b66c3b105bf71e3390ea11a5156acae6ef4cd4",
      "parents": [
        "053359a38a8b4993732e3283990594e2b92d9426",
        "aeeb179f5e1c99dba6a02ac4a21e43163568760b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 20 17:10:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 20 17:10:16 2017 +0000"
      },
      "message": "Merge \"audio policy config: add USB_HEADSET device\" into oc-dr1-dev"
    },
    {
      "commit": "ac4e42982d4537732b30e71c9a00ba0077944984",
      "tree": "1774e0b1cba1a173c29aaca85d4147e178c69346",
      "parents": [
        "c407bd4b32b99cab78e773ac51a57f49cd0985ea"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 22 11:39:31 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jun 19 18:03:28 2017 +0000"
      },
      "message": "Monitoring of recording: uid of recording session\n\nPass uid of recording session along with other existing information\n  in the recording monitoring callback.\nDefine new structure, record_client_info, to group uid (new),\n  session id (existing) and source (existing) and simplify\n  method signatures and marshalling code.\n\nTest: run cts -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest#testAudioManagerGetActiveRecordConfigurations\nBug 62579636\n\nChange-Id: I18f66d7e55640a21f31021416a12a3e8094c3690\n"
    },
    {
      "commit": "aeeb179f5e1c99dba6a02ac4a21e43163568760b",
      "tree": "eaa9fc5c592c5bdd1e481944412811794311abb2",
      "parents": [
        "af69fd92a9d67c4761f7d9dd723670eafd29a494"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 17 15:28:14 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 17 15:28:14 2017 -0700"
      },
      "message": "audio policy config: add USB_HEADSET device\n\nAdd definitions and routes for USB_HEADSET device\nin default audio policy configuration for USB HAL.\n\nBug: 36220140\nTest: check music/video playback, voice/VoIP\ncalls, OK google and  Camcorder with and without USB headset\n\nChange-Id: Ic62b38fc9628c8ec44ddca17e82419be4f1e0fea\n"
    },
    {
      "commit": "ac9cef5f3288df6e65cb4488e2615cc3c07b70d0",
      "tree": "3369bd965510d5c3e8ea6257bb1368a677e535c6",
      "parents": [
        "3c1ba2cd6276ee4304ba082fbe40fd870c1746c8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 09 15:46:26 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 15 10:42:59 2017 -0700"
      },
      "message": "audio policy: add method to query dB attenuation for a certain volume and device\n\nBug: 62492975\nTest: Check dB value returned to AudioService when stream volume is\nchanged\n\nChange-Id: I8d0a945e9151d230b93634e4b9e57bab68f44fa8\n"
    },
    {
      "commit": "ab714031437084d599076952c9f81383964cf588",
      "tree": "cdb4a06fb3f1bb4db08455a7ccc1e460f90bfaa6",
      "parents": [
        "76229a8e733bdfb00c929fb57cc25ed99a25041a",
        "18ffb8304a8bf73c12c03948d1781f2ef1311243"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 14 08:22:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 14 08:22:44 2017 +0000"
      },
      "message": "Merge \"added audio policy configuration files for generic target\" into oc-dev\nam: 18ffb8304a\n\nChange-Id: Ida8122c4e1fc5361ec1fea833fde8953454c2793\n"
    },
    {
      "commit": "87977a493692e39f42547b986175b68d83c57d10",
      "tree": "f1dd7eb5d747de7da2c1c723d022984c6ed89e03",
      "parents": [
        "1d32e9f8e5ba52d69c6319270c8a63a995d2c4f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 20 14:31:42 2017 -0800"
      },
      "committer": {
        "name": "SzuWei Lin",
        "email": "szuweilin@google.com",
        "time": "Wed Jun 14 02:14:38 2017 +0000"
      },
      "message": "added audio policy configuration files for generic target\n\nBug: 62524944\nTest: make\nChange-Id: Ifa8b523d3f1f09dfb6f8e88fab12e170b628dfb5\n"
    },
    {
      "commit": "2ee7aab4a39139a86a24ca14f718eb20a1b355db",
      "tree": "1a7501567d6af64aa958f26453ee9360833bfd4a",
      "parents": [
        "bcbc56bfd43e071cf8b199e9e6dfc835d1f29ab6"
      ],
      "author": {
        "name": "YOUNG HO CHA",
        "email": "ganadist@gmail.com",
        "time": "Thu May 25 23:16:51 2017 +0900"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 25 11:26:52 2017 -0700"
      },
      "message": "Android.mk: remove $TOP in LOCAL_C_INCLUDES\n\nTest: make systemimage\n\nChange-Id: I5f83786afe3f2c65819b127b041cb74fc4c989ac\nSigned-off-by: YOUNG HO CHA \u003cganadist@gmail.com\u003e\n"
    },
    {
      "commit": "e0d4f6479b411fd89284d437ad46d96e3046cd55",
      "tree": "1e040c01b6189f10192801cfa4c72ff5070b3a7f",
      "parents": [
        "579b69e88270bcd3d7b128edb1c75b94722425b0",
        "6e8a79b46a590c564aac6713090144ee61f27f37"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 19 20:21:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 19 20:21:30 2017 +0000"
      },
      "message": "Merge \"audio policy manager: do not reapply same forced usage\" into oc-dev am: 6aa929c929\nam: 6e8a79b46a\n\nChange-Id: If8531ecf1314ab5a8df5818f23537f370614fb77\n"
    },
    {
      "commit": "6e8a79b46a590c564aac6713090144ee61f27f37",
      "tree": "28c45e84bd631ade1d61efc0a2dc09e14c6d5273",
      "parents": [
        "baa89cc5bc8d7e7ddb9f9c9a3c259df59f7c5c99",
        "6aa929c9296180abac526f594137f18c38620c62"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 19 20:19:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 19 20:19:41 2017 +0000"
      },
      "message": "Merge \"audio policy manager: do not reapply same forced usage\" into oc-dev\nam: 6aa929c929\n\nChange-Id: I24d35bbf3c08960aefad9f18c243871ba508b7fe\n"
    },
    {
      "commit": "6aa929c9296180abac526f594137f18c38620c62",
      "tree": "c88153335c7554d23aaf8979479dc541d41796a6",
      "parents": [
        "9d4d8f81f01c5dcc8cfdd667136ead8056180afc",
        "8dc87a60e69f462e0382d025c335e45699025b48"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 19 20:13:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 19 20:13:20 2017 +0000"
      },
      "message": "Merge \"audio policy manager: do not reapply same forced usage\" into oc-dev"
    },
    {
      "commit": "17037f9916134959ab6d5aa150389ac7e961f0f0",
      "tree": "109340c83e59f31f85d1ccbe4c9a7aaf739408d9",
      "parents": [
        "b5768ba3268deb18d291a1743d1580449b463e69",
        "be08ba90dfb26f7b7425d19a5db90c09756e7d17"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu May 18 21:50:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 21:50:41 2017 +0000"
      },
      "message": "Merge \"audiopolicy: Two session can not offload concurrently\" into oc-dev am: 46260c3742\nam: be08ba90df\n\nChange-Id: I9d36d30d9310e94d6c452d11f03d4cc6525e67f4\n"
    },
    {
      "commit": "be08ba90dfb26f7b7425d19a5db90c09756e7d17",
      "tree": "752336f46e794bea2c522f9d3f0e20e11f76363f",
      "parents": [
        "65d96f774d9a01fd54fd2b3fbfaf21036ba321e6",
        "46260c37420f82a6e664b740365b2537767e5a76"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu May 18 21:41:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 21:41:43 2017 +0000"
      },
      "message": "Merge \"audiopolicy: Two session can not offload concurrently\" into oc-dev\nam: 46260c3742\n\nChange-Id: I26ab34add9e632eddec417fc7b042387dc4d1c0a\n"
    },
    {
      "commit": "8dc87a60e69f462e0382d025c335e45699025b48",
      "tree": "55e44b41c7092969c031dc32c189a0b232625595",
      "parents": [
        "38ad5e22885a4b02d0429ecb4c1b4446373a3551"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 16 19:00:40 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 17 14:38:47 2017 -0700"
      },
      "message": "audio policy manager: do not reapply same forced usage\n\nSkip systematic audio path and volume reevaluation when the new\nforced configuration for the selected usage is the same as current one.\n\nBug: 38276985\nTest: try repro steps in b/38276985. Check regressions with audio routing for music\nand calls over speaker, headset and Bluetooth\n\nTest: connect BT A2DP and launch CNN\nChange-Id: Id43a5270c666065e099d02d9e52de86b20cb8039\n"
    },
    {
      "commit": "84c621e937c82c25b5b6d633edee17616e08a61a",
      "tree": "2389cd0dcbc2d379d1ff5088ccb8d8ca9297c994",
      "parents": [
        "64892d86d0ceba1042e48fc276f4988a2857fd1e"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Tue Apr 25 11:41:50 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 12 18:36:47 2017 -0700"
      },
      "message": "APM: Check dedicated VOIP downlink profile\n\nCheck and select a dedicated VOIP downlink profile if available.\n\nTest: verify Hangouts call audio\n\nChange-Id: I7ef32a0e159f42c20ce5fb8ccc3548f3856a15cb\n"
    },
    {
      "commit": "169753cd5f71ba92560e993bb7cb461d2f094272",
      "tree": "7414ab09392201eb08c3ef966d40f2f88abd518f",
      "parents": [
        "9ec59fc5d016a609adffdb7e68236b9d5d05254d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Mar 06 14:18:23 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri May 12 16:39:22 2017 -0700"
      },
      "message": "audiopolicy: Two session can not offload concurrently\n\nPreviously the patch I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9\nforbade two tracks from different application to be offloaded\nconcurrently.\n\nConcurrent offload is only needed for back to back playback...\nDetect this use case by checking the session id instead of the\nPID.\n\nTest: call \u0026 play music \u0026 assistant\nTest: run new CTS testConcurentPlayAudio\nBug: 35841692\nChange-Id: I2c09c54adedf12644205bef115f1a2e16b05de91\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "654afa04273ca78f2d61b21dd04aaf54f3bb051e",
      "tree": "11d3398c6e1e0952f9ddb159053ee6b096e74c83",
      "parents": [
        "2f35206b77dd7d8a8c761e0a81ea327c10787036"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 11 14:12:33 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 11 14:31:23 2017 -0700"
      },
      "message": "Audio policy: use SPEAKER_SAFE device for alarms and ringtones\n\nUse AUDIO_DEVICE_OUT_SPEAKER_SAFE when available for\n  STRATEGY_SONIFICATION instead of AUDIO_DEVICE_OUT_SPEAKER.\nIt is alrady the case for STRATEGY_SONIFICATION_RESPECTFUL\n  (notifications).\n\nTest: play an alarm on a device with SPEAKER_SAFE in the policy conf, verify routing matches mixer path\nBug: 35675592\nChange-Id: I03a4f4238a1ac73165d44f72e4e587b31ec88cc5\n"
    },
    {
      "commit": "40736eaee8e0f4d0fd359c1d4cd7dadb54807419",
      "tree": "8c97e37d696628bd418ee4842c314bc232aa114d",
      "parents": [
        "9ee3885b7da632d3c0320fbf38892b395d8fd8c7"
      ],
      "author": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Thu May 04 14:16:16 2017 -0700"
      },
      "committer": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Wed May 10 07:36:50 2017 +0000"
      },
      "message": "Separate out stub audio policy configuration\n\nRefactors the default stub module config into a separate xml file\nso it can be included by other audio policy configurations.\n\nBug: 37999350\nChange-Id: I7516f909c312379b4eecfb648b5a5c8779e31990\n(cherry picked from commit 5105cbbe1f7065e8a7937df0bdbc8063803dcdd9)\n"
    },
    {
      "commit": "fc53465db8b6d97dc9c1f76dea314de26549434b",
      "tree": "3bca0c0ab2cd3eeac39df63eb8957a51d22ed8d4",
      "parents": [
        "13e4027421830f9f40ae2994480efa862b6940e8",
        "9b6cd785f3854e47e1874df60163b0e8207bc5d9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 04 01:10:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 04 01:10:15 2017 +0000"
      },
      "message": "Merge \"audio policy: always provide a valid device address when opening a stream\" into oc-dev\nam: 9b6cd785f3\n\nChange-Id: I41c91e29b595d285e0d670a809256c859e39fe6b\n"
    },
    {
      "commit": "e301410b8495a3702e21019e92d44ade2a3f81d1",
      "tree": "bf4d84a4c9555c50b5ccafb4472c79d34f2972b7",
      "parents": [
        "9694ba347ac5e324ebc26c6130eb5954728b5115"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 03 11:15:43 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 03 12:59:13 2017 -0700"
      },
      "message": "audio policy: always provide a valid device address when opening a stream\n\nTreble audio HAL mandates that a valid device address is passed when\nopening an output or input stream and teh device type requires and\naddress.\n\nBug: 37905534\nTest: USB capture at various sampling rates. Audio playback and capture regression\nChange-Id: I12f2128120b1bbe8530e8c2428e3e2cba1ba1535\n"
    },
    {
      "commit": "b0bb2ec974c7382dca7179082c7db3c7486c6854",
      "tree": "ef18e7698796e8265d2acc12777aa57a2df7c58e",
      "parents": [
        "2bedf7bba6f938c0e9cbabab9b299bdd00de8bcb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 27 16:15:51 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 28 23:59:34 2017 +0000"
      },
      "message": "Fix warnings hidden by -isystem\n\nFix -Wundefined-var-template and -Wsign-compare warnings that were\nhidden by the use of -isystem to include frameworks/av.\n\nTest: m -j native\nBug: 31751828\nChange-Id: I28e07b238d5bc913ea2f3dfa09fa02f577d5a250\n(cherry picked from commit d995c0186ee0fc13f397a35808a1bc8045ab48d0)\n"
    },
    {
      "commit": "5c1b4f3a1d42f1a9eeecb20881c28d48edec4f90",
      "tree": "d644e90ff0b93097fec02e4a8adaebe01baa83b6",
      "parents": [
        "f9abbf268759a84d24ffaecb860a63a73fec177e",
        "74708e7c4622d65a7798d5fa9347c55583d347fe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 18 23:00:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 18 23:00:39 2017 +0000"
      },
      "message": "Merge \"audio policy: disable concurrent capture\" into oc-dev"
    },
    {
      "commit": "36829f97c0c547d9c6c918e248071cc616818616",
      "tree": "773244e0ca4c9f4d5cd4b63286deadd4e386204e",
      "parents": [
        "d9534fb35245b8bcd2489e717bdd1ad9269b3000"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 07 19:04:42 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 13 10:50:49 2017 -0700"
      },
      "message": "audio policy: fix global effect attachment\n\nFix logic for global music effects (e.g Visualizer) attachement to\noutput streams.\n- Consider only outputs with active music sessions first and then all\noutputs\n- Reevaluate effect attachment systematically on music playback start/stop\nand when outputs are opened/closed\n- Use the same logic every where.\n\nBug: 33397379\nTest: CTS: AudioEffectTest, VisualizerTest, EqualizerTest, BassBoostTest\n      Manual test with music playback with and without Effects in\n      offload and non offload mode on speaker, headset, BT A2DP.\n\nChange-Id: Iabc23bc8a24f36b68942b7f32749c535781497b4\n"
    },
    {
      "commit": "74708e7c4622d65a7798d5fa9347c55583d347fe",
      "tree": "6f8d2b0a75fc2467d7790e48e23c6d67c0e68723",
      "parents": [
        "d9534fb35245b8bcd2489e717bdd1ad9269b3000"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 07 17:13:42 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 12 18:17:22 2017 -0700"
      },
      "message": "audio policy: disable concurrent capture\n\nDisable concurrent capture until the corresponding UI is available.\nRestore preemption for HOTWORD audio source.\n\nBug:36891272\nTest: capture regression tests, run CTS AudioRecordTest, run GTS SearchHostTest\nChange-Id: I1b6c32c2a76ae0e004e14e46fedd596a8844c0d4\n"
    },
    {
      "commit": "cbd0e571958736a4036bcd0496d4933780af880e",
      "tree": "6f8aafa0c660d9cc57816d9f4cb330705aa824d4",
      "parents": [
        "d9d9ae29730a7305d5513475e3e03d7748f8d6f2",
        "ddee203a1bcc1b5602536586dd72b0d3f1bdb903"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 12 07:53:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 07:53:59 2017 +0000"
      },
      "message": "Merge \"Configurable Audio Policy: Various fixes\" into oc-dev"
    },
    {
      "commit": "38f86713cbd22caae9fdd4ac2f0bb76ff91df34d",
      "tree": "0a63e9771a87a74837cad231f54e15c1ce8eb635",
      "parents": [
        "ef0b6b64144b6e062bbb445a6df73c365b66646d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 14:10:17 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 15:03:51 2017 -0700"
      },
      "message": "Audio policy / flinger: updates to recording callback and record stop\n\nDo not trigger the callback for recording events when the patch\n  handle is NONE, the patch handle will be updated for the\n  recording session later.\nWhen stopping recording, only stop the record thread if the\n  track is not active, not if it\u0027s not the first one.\n\nTest: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest\nBug: 36569938\n\nChange-Id: I1b7445ef4115d6337ba7b926f7e6b068361926a7\n"
    },
    {
      "commit": "ddee203a1bcc1b5602536586dd72b0d3f1bdb903",
      "tree": "26807d3032b8e98cd7e2a74131664ddbf40c5610",
      "parents": [
        "ef0b6b64144b6e062bbb445a6df73c365b66646d"
      ],
      "author": {
        "name": "Di Folco, Neil",
        "email": "neil.di.folco@intel.com",
        "time": "Fri Jan 27 11:15:39 2017 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 07 18:15:38 2017 +0000"
      },
      "message": "Configurable Audio Policy: Various fixes\n\n-- Update pre-compiled xml files due to a misalignment with\n   EDD files from previous bug fixes.\n-- Add support for AUDIO_USAGE_ASSISTANT in engineconfigurable.\n-- Fix UsbDevice select for strategy accessibility.\n   Volume cannot be changed when play music via UsbHeadset.\n   Strategy accessibility selects Speaker instead of UsbHeadset\n   This corrects the device selected by accessibility strategy.\n-- Fix Sonification respectful with A2DP devices issue.  No\n   notification sound is heard on BT A2DP devices.  This\n   corrects the applicable list of audio output devices in\n   case of Sonification Respectful strategy.\n\nBug: 37157254\nTest: built angler with CAP enabled\nChange-Id: Ie6b401d28d3211846bb2b5345509d80f31440708\nSigned-off-by: David Brageul \u003cdavid.brageul@intel.com\u003e\nSigned-off-by: Mohamed LAHMADI \u003cmohamedx.lahmadi@intel.com\u003e\n"
    },
    {
      "commit": "904d632a24db8f94de83e44f7179d1c0af022b03",
      "tree": "e86d16495e3fe207153c0f2bcadcb00d14d76aec",
      "parents": [
        "93e29c0846e0f7583ae96edafbf5e8a3169711ee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 17 17:20:47 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 22 14:40:29 2017 -0700"
      },
      "message": "Add support for USB headset device\n\nAdd missing rules for USB headset devices in routing, volume and effects\nmanagement.\n\nTest: playback and catpure regression tests.\nChange-Id: I42cd157f483deba2371a05d332cd11dceb2b2fa3\n"
    },
    {
      "commit": "f3df83d5957fd717c1663d97cd96eb5b733902c6",
      "tree": "cb29c02e2cfe66a4d24542c710ae19ba12e8970c",
      "parents": [
        "9c544bb666bc990812422797c326a76a1bf53beb",
        "6e51336da3487318459b47191270391f3cf98b96"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 16 02:05:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 16 02:05:50 2017 +0000"
      },
      "message": "Merge \"audio policy: add rule for ringtone duplication over speaker + SCO\" am: dc671c4e33 am: 42d5e65d2b\nam: 6e51336da3\n\nChange-Id: I67dd17852ae81df011eeb232daab5c1f290ab18a\n"
    },
    {
      "commit": "42d5e65d2bd83999b435fe5be2cf76c4e38f692c",
      "tree": "7a860e89826a8a958eacb0e0afc9d0bdb7138678",
      "parents": [
        "4f6b158fec3f99ff4af773da04dd4f5c5fe5a6b9",
        "dc671c4e33dae280f546feb06fd7d03095e450d0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 16 02:01:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 16 02:01:17 2017 +0000"
      },
      "message": "Merge \"audio policy: add rule for ringtone duplication over speaker + SCO\"\nam: dc671c4e33\n\nChange-Id: Ic19309906b00121c4cd02ff8ed620416d5b9678f\n"
    },
    {
      "commit": "a8e0f02dee635b88ea21c20f26356354e83ec83a",
      "tree": "bd1c001a61973da976f11ed75554113ccdcd8cfa",
      "parents": [
        "5052e9cf9f8c5a62163e5dacb7999b2552873c74"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 27 17:41:53 2017 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Mar 16 01:11:33 2017 +0000"
      },
      "message": "audio policy: add rule for ringtone duplication over speaker + SCO\n\nBug: 19171297\nTest: make, testplans/79248\n\nChange-Id: Ic539256e53782806d5dbbca5fb6ebe9f2ca5ec76\n"
    },
    {
      "commit": "05d19b08f3affa6fa8407e779f67e7ad1c1ca84f",
      "tree": "d2c99a03302a60a9ab3db1a9f5cc90640686009a",
      "parents": [
        "4ec4e6b1073b0dc1b608aeeaf4e3129ea1a725c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 28 16:28:19 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 03 12:37:45 2017 -0800"
      },
      "message": "fallout of cleaning-up libutils includes\n\nTest: run \u0026 compile\nBug: n/a\nChange-Id: I63585ed5a764b9ce7af2187b79ca0c83e683fd7f"
    },
    {
      "commit": "0d4a6aff271586161a1fcd273572a00d2e01fe80",
      "tree": "d23995746d96791a28f00ee833c54c05b000acc7",
      "parents": [
        "67a155a2ee89e7fed3eb079cc7af929c74a21f7a"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Feb 17 17:10:17 2017 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Sat Feb 18 05:25:19 2017 +0900"
      },
      "message": "Treblize audio policy xml config file location\n\nTreblization requires to locate partner-specific configs in its own\npartition. So the audio policy xml config file could be located in\n/odm/etc or /vendor/etc.\nThis CL is to support those locations for the config.\n\nTest: building succeeded and tested on sailfish.\nBug: 35369237\nChange-Id: Ie59db630456f7690bbeca08017bea8b174651394\n"
    },
    {
      "commit": "555530ab903504ad3586bc24cd8a4f200f5c39ae",
      "tree": "1c7904daf0e13a86bb225d2e52f791ef84ec85a5",
      "parents": [
        "c96fc852f010f9254a38a0073a4de7a848e33e44"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 07 18:17:24 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 09 21:09:55 2017 -0800"
      },
      "message": "audio: several concurrent capture fixes\n\nMake sure AudioRecord clients are invalidated synchronously\nwhen closing an input stream instead of when the capture thread\nexits.\n\nFix AudioPolicyManager::getInputForDevice() logic to make sure that\nnot only the first opened input encountered is considered when looking\nfor a compatible input to reuse for concurrent capture.\n\nBug: 22702906\nTest: run CTS test\nChange-Id: I7f69609d4ee70a37ab06753ff970b12df17d885b\n"
    },
    {
      "commit": "551061ab211e1da0f060d7c895617814618da5c2",
      "tree": "f8010b47611e50cf67eada7498a66cdee1259579",
      "parents": [
        "e2ce9366d1b138326035c643b7fec68cd2dc83c5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Feb 06 15:59:29 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Feb 09 10:29:05 2017 -0800"
      },
      "message": "audiopolicy: Two clients can not offload concurrently\n\nIf two application are playing a compatible offload stream at the same\ntime.\nEg: two games playing MP3. At least one not taking the audio\nfocus.\n\nThe audio policy was offloading both stream resulting in audio glitches\nand one stream being dropped.\n\nConcurrent offload streams is intended to be a transitioning state when\nan application wants back to back playbacks.\n\nIt should not be allowed for two different applications to stream at the\nsame time.\n\nTest: Play mp3 while mp3 is already offloaded.\nBug: 34012147\n\nChange-Id: I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "587b8dfdbc3d3b1dd9ffc1996b9a07cd9b284833",
      "tree": "414969fe779bf8825008188620e3ba4bb6eea8d7",
      "parents": [
        "a1ee4c28facd2e4ae0eb288178c8988bf1806148"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Tue Jan 31 14:58:44 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 31 16:39:55 2017 -0800"
      },
      "message": "audio: fix audioSession null check\n\nTest: make\n\nChange-Id: Ied514f8fb7496143bad45504151ca16226c67767\n"
    },
    {
      "commit": "bb9480975322b0d1a09f76ef14f3285fc8af4e5f",
      "tree": "a32cac19e5e2f47e9808de74a00887e8e3d3c695",
      "parents": [
        "b9c28c72b91e464aa1155e972f74af14312191a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 23 18:33:30 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 25 18:34:46 2017 -0800"
      },
      "message": "audio: enable concurrent capture for voice recognition\n\nAdd AUDIO_SOURCE_VOICE_RECOGNITION to the list of use\ncases allowed for concurrent capture. As AUDIO_SOURCE_HOTWORD is\nenabled for concurrent capture it makes sense to enable a client\nto transition to voice recognition after the hotword has been detected\nin a concurrent capture situation.\n\nAlso fixed some concurrent capture scenarii\n\nBug: 22702906\nTest: build and check \"OK Google\" detection\nChange-Id: Ic6dd41372fe74122395764beca7ca9a65197464b\n"
    },
    {
      "commit": "cac8d4ea54ece7aeb4b2ffa7aafd06fbec731a62",
      "tree": "ed02d8653145fded2d53bcf4c6d7033cca7eb1cf",
      "parents": [
        "d0ffd62e89bf97fa20a63f282d034b6745328210",
        "44344b05261cb9ad46a43e635f637b89aecc7afe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 03:17:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 03:17:59 2017 +0000"
      },
      "message": "Merge \"audio policy: allows dumping Audio Policy Mix\""
    },
    {
      "commit": "060a6c53b5022c9e539a4c9b03b16da546964bec",
      "tree": "5c517aa0d24e519bb40dcd2431ffefa43959d4d7",
      "parents": [
        "d825ab9d5be990a6a7fb28033cfba84441100731",
        "49d3b5ee8e89e274a5c259dddb7cde38e98c2cde"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 59cfe7de39 am: c6d07e8230 am: 15b18326b6\nam: 49d3b5ee8e\n\nChange-Id: I87a85c85d3f509e0496f5946d6e9e58174398ea5\n"
    },
    {
      "commit": "15b18326b67cde4bfe1d71f7a4e703c411dec2e5",
      "tree": "630963d9c9ec2e087a14fe0373059103eb3c1b9a",
      "parents": [
        "4fdfda5cd2b1d8670bdcf6048028f28875710a69",
        "c6d07e82302322304c422b768af37255d4098134"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 23:49:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 12 23:49:37 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 59cfe7de39\nam: c6d07e8230\n\nChange-Id: Ia3c81c04b689ae06610df61d27627dd66d5f71bd\n"
    },
    {
      "commit": "e74bbf18a6595a914d3c771be08a72077465c51f",
      "tree": "67ecfbc9a118ea695beaf5536bcd3ea5e9cfe376",
      "parents": [
        "ce961d374f8436a50e63a081afa6b6c3185b2f90"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:10:27 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:10:27 2017 -0800"
      },
      "message": "liblog: use log/log.h for ALOG macros\n\nTest: compile\nBug: 34250038\nChange-Id: Ie3b92790df631dbacdd51053264dddeba66913c1\n"
    },
    {
      "commit": "44344b05261cb9ad46a43e635f637b89aecc7afe",
      "tree": "f088a40f3512f177136b78f02e091d42db7d0934",
      "parents": [
        "38267b773f2cdec4d684b12fde73179bcc66e0c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 13 11:21:02 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 13:19:26 2017 -0800"
      },
      "message": "audio policy: allows dumping Audio Policy Mix\n\nThis patch adds the dump of AudioPolicyMix if registered.\nIt also adds the required conversion map to human readable strings\nof the types involved in Mixes.\n\nAdapted for the development branch from the AOSP patch:\nhttps://android-review.googlesource.com/#/c/309127/\n\nChange-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89\nTest: build, dumpsys media.audio_policy\n"
    },
    {
      "commit": "d7c5ec857930496bb8a1045dc8b87b2fdd99899c",
      "tree": "1febd0054f7833de4bfd877faea92b6c66a3d89a",
      "parents": [
        "67d0d7eb36e7c36d0a9dec9264c0cab832196d57",
        "4b058e7e5d58fb1bc6ba82eba94f7664e5b85706"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Wed Jan 11 19:30:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 11 19:30:56 2017 +0000"
      },
      "message": "Merge \"Add missing nullptr checks for data.readCString() strings\" am: ce961d374f am: 238c48e42e am: 877f779979\nam: 4b058e7e5d\n\nChange-Id: Idc3298b161380e9ace8b7fcceb4339b0805a3123\n"
    },
    {
      "commit": "877f77997987212ae0fbfecb24b35c03a0573006",
      "tree": "784bda81ca3055da5341cb11f86e0e0fddc06d90",
      "parents": [
        "7ceeb44566c54be121136a456142143e6bc4c4ac",
        "238c48e42e9e4daafc4cde73bc5c1856e7c10614"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Wed Jan 11 19:20:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 11 19:20:24 2017 +0000"
      },
      "message": "Merge \"Add missing nullptr checks for data.readCString() strings\" am: ce961d374f\nam: 238c48e42e\n\nChange-Id: I2e9cb8ec6752506cc5445aee3d38ae92e4f5e514\n"
    },
    {
      "commit": "c694ff449bef4ca1e45a6506f34e66c613757311",
      "tree": "36f66657e3389dbb6b30b7e122ff415f9ce5f40c",
      "parents": [
        "20adbc00032d6df980a3300f1ae974610f16f81f"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Jan 09 23:27:29 2017 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Wed Jan 11 16:51:37 2017 +0000"
      },
      "message": "Add missing nullptr checks for data.readCString() strings\n\nProtect the Audio Policy Manager by adding extra checks\nfor data.readCString() strings when parsing / decoding\na Binder transaction.\n\nAlso:\n * Moved audio_is_output_device() / audio_is_input_device() checks\n   inside handleDeviceConfigChange()\n   from the AudioPolicyInterface to the AudioPolicyManager\n * Removed similar redundant checks inside\n    AudioPolicyService::setDeviceConnectionState()\n\nTest: code compilation\nChange-Id: Ib32a28ba2669b73aaf32b31bb18f41c8dd7d2605\n"
    },
    {
      "commit": "36867767ba86244b0d942255b9d241b092151309",
      "tree": "1fa1b0a4cf8fe6b7f780bb8950f6ad659ae7a5d5",
      "parents": [
        "af86dcee9d97e02e9069548684ef8c9db5190ff9"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 29 12:03:28 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 29 12:35:25 2016 -0800"
      },
      "message": "USAGE_ASSISTANT/ACCESSIBILITY in audio policy manager\n\nAdd support for USAGE_ASSISTANT.\nFix stream type for USAGE_ACCESSIBILITY.\n\nTest: enable Talkback, check volume; make\nBug: 30947943\n\nChange-Id: Ie35adf0115dce1fac6d3deddc1e57e36b36913f6\n"
    },
    {
      "commit": "5fd7ccaeba88da7e170f067bfd754b3f64ff5566",
      "tree": "5e2a0f1495c8ea9a68598cea2028e3c092049e3a",
      "parents": [
        "0ce91633d8a4f5dcb3706a7734c02ddb5099eefd",
        "c6fe843463abc965f3082738c8812506cf5ba232"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Thu Dec 29 00:25:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 00:25:36 2016 +0000"
      },
      "message": "Merge \"Add a mechanism for handling audio device configuration change\" am: 549e431947 am: a1b496ac35 am: fcc1132010\nam: c6fe843463\n\nChange-Id: I7812e3e4426e526b886c1a414ac8ddec7649291e\n"
    },
    {
      "commit": "fcc113201018703727a0d6b17dd165efce00db1a",
      "tree": "70eca9738ea18322a92ebc4bb94a0894e1735034",
      "parents": [
        "1121dfb5f30a04393ddce02fe7808589fa9e3e25",
        "a1b496ac35a8bbdcae6b0315e91a5cf52b2af00d"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Thu Dec 29 00:12:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 00:12:05 2016 +0000"
      },
      "message": "Merge \"Add a mechanism for handling audio device configuration change\" am: 549e431947\nam: a1b496ac35\n\nChange-Id: Ie8871fad611dc16d7cd08a85e4cd748cf3c4650d\n"
    },
    {
      "commit": "f862bc6a7a35054e38cb50fa16ae7a07f683ee01",
      "tree": "12f33970e876ba71df008d7e38a58984c5b357b5",
      "parents": [
        "a05da2eea41306d526ce645ea44aa2e05054f651"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Dec 26 18:57:22 2016 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Wed Dec 28 14:35:01 2016 -0800"
      },
      "message": "Add a mechanism for handling audio device configuration change\n\n* Added new call handleDeviceConfigChange() to the Media Framework.\n  That call can be used when there are device configuration changes\n  (e.g., Bluetooth A2DP codec configuration has changed).\n* Added new method AudioPolicyManager::handleDeviceConfigChange().\n  That method toggles the UNAVAILABLE/AVAILABLE connection state of the\n  device, so it can be reconfigured as appropriate - e.g., the audio\n  feeding parameters can be updated.\n* Fix ALOGVV compilation errors when extra logging is enabled.\n\nTest: A2DP streaming to headsets\nBug: 30958229\nChange-Id: I388abbbb3ec4d1a003b441cb0c77e00d80cad668\n"
    },
    {
      "commit": "32a5f5d53f9fe2ba584d2ecdf3edd487fb4146a7",
      "tree": "49e0e3a1b8302a9f7282b6bcab3c32ea3808ec23",
      "parents": [
        "105928c9d30ed4c697cc4cdd9e68d8d47a695133",
        "4532a36bf509d822a77cbc1b7837f9f1158c7796"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:47:40 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:48:15 2016 -0800"
      },
      "message": "resolve merge conflicts of 4532a36 to master\n\nTest: build\nChange-Id: I9b93c4a703c0ee16116be2bea0e6df0606d29363\n"
    },
    {
      "commit": "1121dfb5f30a04393ddce02fe7808589fa9e3e25",
      "tree": "4f0e9eb6547b0b16b0272cab044766162bb6a812",
      "parents": [
        "d76a98d5f4997868da1832ed239f67c9ae150ace",
        "9e97dc7832949a67dbae4e28d2ea261accd571b4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 19:24:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 22 19:24:18 2016 +0000"
      },
      "message": "Merge \"Replace cutils/log.h with either android/log.h or log/log.h\" am: a05da2eea4\nam: 9e97dc7832\n\nChange-Id: I414954c96ad8b803a0401d416887c9ce167db210\n"
    },
    {
      "commit": "60d02077d86d2d1092443519290101f503aa6f7a",
      "tree": "57992d2bd94784cd765729b806429928ead0d2e7",
      "parents": [
        "36a75eeb15e58726e8cbbfe9687975740133a11b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 29 08:48:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 08:25:58 2016 -0800"
      },
      "message": "Replace cutils/log.h with either android/log.h or log/log.h\n\nTest: compile\nBug: 31289077\nChange-Id: I795a76f978d2213737f1fa908da789c543219b75\n"
    },
    {
      "commit": "5b8655e002bd96b91907b68ebbf27b2b13503cdb",
      "tree": "7da805528773d37e612249b3f95b3dd278cc9423",
      "parents": [
        "5b4051afc26367d7accd06580c5135c8295759f9",
        "583b4130811d8c3b0c9b22aa1a947059a9ba5458"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 20 21:23:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 20 21:23:04 2016 +0000"
      },
      "message": "Merge \"default no ouput verbose message of APM::AudioPolicyEngine/PFWWrapper\" am: 36a75eeb15 am: c3b85c54db am: 48dd690be5\nam: 583b413081\n\nChange-Id: If3c7f2d1a820efe570ebe0a8d618902fe5a076c4\n"
    },
    {
      "commit": "48dd690be5bf590991858086f2db60ec925389b4",
      "tree": "39e67d8af0d61efbf9c74fe0ac5da89846014e2f",
      "parents": [
        "7944a0a546246275cbec67c4d079629a0ebc8418",
        "c3b85c54dbb8bcac4115a718f644f31625596fe9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 20 20:52:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 20 20:52:14 2016 +0000"
      },
      "message": "Merge \"default no ouput verbose message of APM::AudioPolicyEngine/PFWWrapper\" am: 36a75eeb15\nam: c3b85c54db\n\nChange-Id: I242b0c71d1b0ac66bc53fd6d1a02a721f8020619\n"
    },
    {
      "commit": "ae2026ecfe37e92b0a2ba5084a8ab9fe07b7134d",
      "tree": "dc047f0c254b2024d1ef57267b45d4c48db0e17c",
      "parents": [
        "a73f0b1dc067eb9249d2aef7f84158c1d3f4a921",
        "e4c3c4310f4e4a76195dc08323c4a26dd28ffd08"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 19 21:31:18 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 19 21:31:18 2016 +0000"
      },
      "message": "Merge \"Use libxml2 as shared lib.\""
    },
    {
      "commit": "6a308b02f138e358fb239ee2df5d54dd988f34fd",
      "tree": "730e19d7ae133e2086c37dcec42d0b88e77ba01b",
      "parents": [
        "0a2ea58394190408a3d532bfcc242ba64ca71538",
        "20b9ef0b55c9150ae11057ab997ae61be2d496ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 16 17:12:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 16 17:12:23 2016 +0000"
      },
      "message": "Merge \"Add unique audio port IDs to AudioTrack and AudioRecord\""
    },
    {
      "commit": "e4c3c4310f4e4a76195dc08323c4a26dd28ffd08",
      "tree": "17ad3264c033a26754c3cf4aed1e5d25ca4ab49c",
      "parents": [
        "0a2ea58394190408a3d532bfcc242ba64ca71538"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 12:13:40 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 15:10:26 2016 +0900"
      },
      "message": "Use libxml2 as shared lib.\n\nThe dependencies to static libraries in frameworks should be removed\nas many as possible to reduce a size of the system partition.\nAnd that will improve coverage of the VNDK libraries because this\neffort might find new necessary shared libs which were linked\nstatically before.\n\nSize diffs of affected binaries on sailfish-userdebug build are as\nfollows.\n\nlibaudiopolicymanagerdefault.so: 583440 -\u003e 267288 (-316152)\nlibaudiopolicymanager.so       : 16008 -\u003e 16004 (-4)\n\ntotal                          : (-316156)\n\nTest: building succeeded, and the image was tested on sailfish.\nBug: 33056637\nChange-Id: I51d98c5c2b5d94561190a1651063737fb1cb06ff\n"
    },
    {
      "commit": "72db998b4f41e795420055cda362847d5c5f8c92",
      "tree": "83e824d5f21d33051a683256f949d1f4c1b076e6",
      "parents": [
        "56d69ea84fb6c75cd5e855f067f90cae5a085d27",
        "993c09b27bc5b2b9f93b29fac8e212a196a52c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety am: b378b73dd7\nam: 993c09b27b\n\nChange-Id: Ib46c5c88aa112e819fe320857b2136f14f84db1a\n"
    },
    {
      "commit": "993c09b27bc5b2b9f93b29fac8e212a196a52c67",
      "tree": "2141cbd76b5b8725c2e713b335adf3144b71acd9",
      "parents": [
        "49209a36958218c6f51bb9a8e603a69e496481f0",
        "b378b73dd7480b584340b8028802c9ca2d625123"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 17:47:43 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 17:47:43 2016 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety\nam: b378b73dd7\n\nChange-Id: Ie7431955f75364bb7e450594387be41f669a98f0\n"
    },
    {
      "commit": "cc3237a31b293905423c7d71f5a3e8ea130e1a88",
      "tree": "024bfcdf659aa4c8dc8332a0b65def837653bb5d",
      "parents": [
        "8af5545d28f21ceeadd21113fe5b835c268ee49c",
        "f476960a2886e2a1c2a743aa235c868f01584f4d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 14 20:46:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 20:46:53 2016 +0000"
      },
      "message": "APM::updateCallRouting: ignore for stub output hal am: a76c7de622 am: 116160d668\nam: f476960a28\n\nChange-Id: Iaa58887ee83e5cb611d26bf61cadafb058245b03\n"
    },
    {
      "commit": "116160d6680a0eabeea6510463c863f9afbe2956",
      "tree": "cd06c867e8c3af531147739cf696933ee174c4bf",
      "parents": [
        "cffbc7d055bf70b233c042920aec9947f5d5cd24",
        "a76c7de622e6e29f8559921d8d2e9ef93eb37d1f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 14 20:34:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 20:34:22 2016 +0000"
      },
      "message": "APM::updateCallRouting: ignore for stub output hal\nam: a76c7de622\n\nChange-Id: Iee1637bcb01cd41daa70162684212c9eaf085763\n"
    },
    {
      "commit": "a76c7de622e6e29f8559921d8d2e9ef93eb37d1f",
      "tree": "11abc87a6a2041dba73ddc414c5317f908ed5248",
      "parents": [
        "a2e95f5c9b1613cce1d2bf0f0e35b0addd137906"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 13 19:14:31 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 14 11:18:28 2016 -0800"
      },
      "message": "APM::updateCallRouting: ignore for stub output hal\n\nBug: 33463233\nChange-Id: I9b6708bef087e3f4a97868b2d8f7a9b1558233d0\n"
    },
    {
      "commit": "20b9ef0b55c9150ae11057ab997ae61be2d496ef",
      "tree": "21bd57d748dd47600b1e62bfb18d4acb08e15438",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 05 11:03:16 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 12 12:29:41 2016 -0800"
      },
      "message": "Add unique audio port IDs to AudioTrack and AudioRecord\n\nThis will allow to track activity at the track level instead of\nat audio session level as only possible with current implementation.\n\nAudioTracks and AudioRecords will receive a unique audio port ID the\nfirst time they register to audio policy with\ngetOutputForAttr()/getInputForAttr() and keep this ID for their\nlifetime.\n\nThis CL is the first partial change and just updates the\naudio policy and audio flinger APIs used at track creation time.\n\nTest: basic regression test of audio playback and capture use cases\n\nChange-Id: I8d612e67738e120494f61e3f7c60bfd0b2c6a329\n"
    },
    {
      "commit": "b378b73dd7480b584340b8028802c9ca2d625123",
      "tree": "00439baacf771d5439c6ec1747cfcdff13eeb4e5",
      "parents": [
        "5ed0c9ffdae597a023bdcade0868566832a01c2b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 01 15:28:29 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 09 10:25:06 2016 -0800"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety\n\n- Reorganize handle effect creation code to make sure the effect engine\nis created with both thread and effect chain mutex held.\n- Reorganize handle disconnect code to make sure the effect engine\nis released with both thread and effect chain mutex held.\n- Protect IEffect interface methods in EffectHande with a Mutex.\n- Only pin effect if the session was acquired first.\n- Do not use strong pointer to EffectModule in EffectHandles:\nonly the EffectChain has a single strong reference to the EffectModule.\n\nBug: 32707507\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "b15ed7a197061d688e465ac4a0d489fed65b8ceb",
      "tree": "13eb9e8815735d3645d2bbb6bb63946d518f5627",
      "parents": [
        "353613ca6ec69e9663b7188305cdd46914dccfb4",
        "08dab5ae92ddd1f3b337b6e35f918fea8c284a56"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 09 03:59:00 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 09 03:59:01 2016 +0000"
      },
      "message": "Merge \"Use libmedia_helper as shared lib.\""
    },
    {
      "commit": "30cf41f2d7c35eef05654ea7493792a7bf1b6af7",
      "tree": "c45ec4b62b3a9df33e2d6944a04b92d9f51ba8df",
      "parents": [
        "1081e9ac62c7fb4998037272d47954fd62100016"
      ],
      "author": {
        "name": "Liu Changcheng",
        "email": "changcheng.liu@intel.com",
        "time": "Wed Dec 07 18:58:19 2016 +0800"
      },
      "committer": {
        "name": "Liu Changcheng",
        "email": "changcheng.liu@intel.com",
        "time": "Fri Dec 09 08:55:50 2016 +0800"
      },
      "message": "default no ouput verbose message of APM::AudioPolicyEngine/PFWWrapper\n\nThe verbose output consume much time. Change ALOGD to ALOGV in info\nfunction. Developer could define LOG_NDEBUG to be 0 if need verbose\nmessage to debug system\n\nChange-Id: Iecb621d0eb8ec6a058608bf1b695b5ebd889c802\nSigned-off-by: Liu Changcheng \u003cchangcheng.liu@intel.com\u003e\nSigned-off-by: Jerry Liu \u003cprimerlink@gmail.com\u003e\n"
    },
    {
      "commit": "b643627a557e44b9ab5879cf71e162af2d514ce3",
      "tree": "995bc0b0fa9a614687aa8df2f119ab7fff0c7a88",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 07 19:24:50 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 08 12:14:32 2016 -0800"
      },
      "message": "fix client pid for effects applied by audio policy\n\nTest: Hangouts call, Play Music with and w/o effects\n\nChange-Id: Ia9b20f94be667dd92e0497f8ef9c0dc0e95afe28\n"
    },
    {
      "commit": "08dab5ae92ddd1f3b337b6e35f918fea8c284a56",
      "tree": "4ebbef53fa801437efecb2de9135543c5f1326c6",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Dec 07 15:08:17 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Dec 08 18:13:28 2016 +0900"
      },
      "message": "Use libmedia_helper as shared lib.\n\nThe dependencies to static libraries in frameworks should be removed\nas many as possible to reduce a size of the system partition.\nAnd that will improve coverage of the VNDK libraries because this\neffort might find new necessary shared libs which were linked\nstatically before.\n\nSize diffs of affected binaries on angler-userdebug build are as\nfollows.\n\nlibmedia                    : 598056 -\u003e 547928 (-50128)\nlibstagefright              : 1496420 -\u003e 1492124 (-4296)\nlibaudiopolicyservice       : 75372 -\u003e 66940 (-8432)\nlibaudiopolicymanagerdefault: 613168 -\u003e 583516 (-29652)\nlibaudioflinger             : 397840 -\u003e 364380 (-33460)\nlibaudiohal                 : 114752 -\u003e 68684 (-46068)\nlibaudiopolicyenginedefault : 122096 -\u003e 71968 (-50128)\nlibmedia_helper             : 0 -\u003e 66288 (+66288)\n\ntotal                       : (-155876)\n\nTest: building succeeded, and the image was tested on angler.\nBug: 33056637\nChange-Id: I00a71e518337a1efcf7f55256145776311596991\n"
    },
    {
      "commit": "f10c709fda87d971a206eebd5df47356e7f2aa39",
      "tree": "98b1a47d6a12c11a4b5a02e2a7fb5129b2a6680f",
      "parents": [
        "7cdef381717e3a96acc6c5786c88bf1eaf03d2f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 06 17:09:56 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 07 09:40:43 2016 -0800"
      },
      "message": "audio policy: remove effects before releasing input\n\nmodify releaseInput() implementation so that effects added by policy\nrules are removed before closing the input stream to avoid\nfailure to destroy the effect chain\n\nmake sure that orphan effect chains are checked when an EffectHandle is\ndisconnected after thread destruction.\n\nTest: make and run Hangouts\nBug: 32707507\n\nChange-Id: I7833b4c5e42c0057a4477eb4485a20dd26ca2f90\n"
    },
    {
      "commit": "315031e04c6642c9a91de2e48053c82f78a2ea24",
      "tree": "b4e7b420bcfb7d6b8b3369e98bb5f6a3c199bd71",
      "parents": [
        "2c192ad2ef8474bf752a638e7adb49ef2011f548",
        "00072a89c00ecbd29ca9148996fef8138449327c"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Fri Dec 02 07:59:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 02 07:59:09 2016 +0000"
      },
      "message": "Merge \"Add a mechanism for Audio Feeding Parameters negotiation\" am: 653748414b am: 1081e9ac62 am: 5b2fa9ad09\nam: 00072a89c0\n\nChange-Id: I8ce7baf3bf6fca36d8e07db3d48b3eca98da54d5\n"
    },
    {
      "commit": "1081e9ac62c7fb4998037272d47954fd62100016",
      "tree": "f6d0b617e2ae5b54cfa9f28328ad893d370d7d63",
      "parents": [
        "1095908b3474ecee22764ec50200aa6d971d26a9",
        "653748414b0fd6056bcc3bd5b3917da4d1883531"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Fri Dec 02 07:37:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 02 07:37:05 2016 +0000"
      },
      "message": "Merge \"Add a mechanism for Audio Feeding Parameters negotiation\"\nam: 653748414b\n\nChange-Id: Id6855d139a248d15ec0ea0ee0f01cf7655862ac7\n"
    },
    {
      "commit": "4c9cd19bdb3186b7450dd9f33b6abcdd80088d1c",
      "tree": "ce855a5755db02f884ba20e51dee5d98ddf348be",
      "parents": [
        "b4d217ed0f54e480a7d30fc738506584fe32547b"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Tue Nov 22 12:13:59 2016 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Fri Dec 02 02:07:06 2016 +0000"
      },
      "message": "Add a mechanism for Audio Feeding Parameters negotiation\n\nPreviously, the Audio Feeding Parameters between the Media Framework\nand A2DP were hard-coded: 44.1 KHz sample rate, 16-bits per sample, Stereo.\nNow the Media Framework queries A2DP, and uses the returned values.\n\nBug: b/30958229\nTest: Manual testing: A2DP streaming to headphones. TestTracker/68727\nChange-Id: Ib86035814c49f773b7ed3d64da334ca9ea87eb14\n"
    },
    {
      "commit": "d3c61c2c74a9a83392ccaee17b6f1dd54492a530",
      "tree": "0da36bcf95e651598f57cdf040ae7cf958e0d184",
      "parents": [
        "d71f16268227c15a0ac2043e15900db5df2c417d",
        "8243fcd644bd4b4865c3977435bb758c981ccf65"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 29 21:04:48 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 21:04:49 2016 +0000"
      },
      "message": "Merge \"remove support for legacy audio policy manager\""
    },
    {
      "commit": "8243fcd644bd4b4865c3977435bb758c981ccf65",
      "tree": "82e0b1a2b2f0fa71b82e815a1f3df91b5cfb8d1d",
      "parents": [
        "bd54eef2d289f786a7ae02139ce3bb9db2b03b24"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 28 17:51:14 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 28 17:53:13 2016 -0800"
      },
      "message": "remove support for legacy audio policy manager\n\nTest: make\n\nChange-Id: I7294a52674abadfdbc4da40a72c8fe1a229d0815\n"
    },
    {
      "commit": "382bbc8fd1617e96881693c5f747def476c5786f",
      "tree": "129bba96367e1a89af182ba4cf847ed8d5678897",
      "parents": [
        "a447a0f52fff7f1cab3bbe7c0a2f9b96f8e3914e",
        "99bb2f9afd956174785051827aa96d008b33faee"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 28 22:24:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 28 22:24:37 2016 +0000"
      },
      "message": "Merge \"Do not hardcode media - a11y stream aliasing\""
    },
    {
      "commit": "99bb2f9afd956174785051827aa96d008b33faee",
      "tree": "f7e193c81b9a410b65b030760b20dbbf122ce58f",
      "parents": [
        "7fd5bdb5fa9db81f0293793b7b6d45dd833d05b2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Nov 23 15:52:07 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Nov 23 15:52:07 2016 -0800"
      },
      "message": "Do not hardcode media - a11y stream aliasing\n\nMedia and accessibility volume aliasing is now modal, and\n  now handled in AudioService.\n\nTest: see bug\nBug: 30448020\nChange-Id: Ie4e1775163fb65da2c0ed766b477cd9fc1c919d1\n"
    },
    {
      "commit": "3e9e728ef329e49424d5878c682bf82dac5009ef",
      "tree": "5a39f5853e58ef98692aca5a679120c15679c320",
      "parents": [
        "b620c0a38648f578ce3bfa77059295af79d0fa29",
        "504a885be0d8ca46c8787486f26d676648e21704"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Nov 23 04:33:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 23 04:33:19 2016 +0000"
      },
      "message": "Merge \"fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\" am: fa81ba8775 am: e16a2029e0 am: 228b9dec45\nam: 504a885be0\n\nChange-Id: Iba5669ae28b61114a9357291e9ff5ac63ba7ad63\n"
    }
  ],
  "next": "e16a2029e073d348f480665db799de5a922f43f8"
}
