)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "05b345e504a0affd24eefa12686812c554b294ff",
      "tree": "a83b3f6cdd2f56fd9d3564c811923a0ea427345c",
      "parents": [
        "6507185f5c59d39deeda6598ce50ee4900723501"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 18 12:36:27 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 18 12:44:27 2016 -0800"
      },
      "message": "audio policy: fix sound trigger capture disabling in startInput()\n\nFix test on number of active sessions in startInput()\ndeciding of overall capture state indication to sound trigger service.\nAs session active count is incremented before the test, the count indicating\nthe first active session is 1 and not 0.\n\nBug: 3289438\nTest: verify OK google detection on Angler\n\nChange-Id: I0a6c5d6240942e978fefffb536577b9d7dc29961\n"
    },
    {
      "commit": "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49",
      "tree": "c7630795f1623d784fb17e1e129fdd93bdabea6e",
      "parents": [
        "1e4d737fcd3129f3b3cf29499f344b42219c6bc7",
        "559d439c6fe8679e3c52f1cf265d46d7d2e65b68"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "message": "Merge \"Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\""
    },
    {
      "commit": "559d439c6fe8679e3c52f1cf265d46d7d2e65b68",
      "tree": "9e23625c0b55e45e79842d6605e027dba01f0fe0",
      "parents": [
        "bd0f59e493dbd67d1871b243ddad9cce3b50d7ce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:42:57 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 19 18:19:29 2016 +0000"
      },
      "message": "Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\n\nBug: 27903060\nChange-Id: Iafc2095f484b74978c6f080c54f548e293bf945e\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "commit": "388360c786cdcbec650b79db65c734b8952dfec0",
      "tree": "a3ba18b19471046dddb8218a1461269b101bd1e0",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "message": "Brush up audio parameters usage\n\nIt is preferred to use the constants from AudioParameter\n(which can now serve as an abstraction layer similar to libaudiohal).\n\nGrepped for usages of defines and just string values\nand replaced with references to AudioParameter.\n\nSince the parameter definitions are being moved to system/audio.h,\nupdate includes in AudioParemeter and stagefright Utils.\n\nChange-Id: I2addb983707d866b16f39d45d0e14b802595e292\nTest: make\n"
    },
    {
      "commit": "00260b5e6996b0a4b12f71c5b84e44adea040534",
      "tree": "7e93a2e3cc5f918d8f7a7409d9c98712eed0d2fe",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 12:54:24 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 14:02:38 2016 -0700"
      },
      "message": "Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h\n\nAlso remove some outstanding dependencies on hardware/audio.h.\n\nMost of the time, only constants and structs from audio_effects.h\nare used, and no actual calls into HAL are made. Move these\ndefinitions into system/audio_effect.h, and generate constants\nfrom TREBLE HAL definition.\n\nFor parameters, always use values from AudioParameter class.\n\nThere are still some outstanding includes of hardware/audio.h\nin code that directly deals with audio modules. Need to extend\nlibaudiohal interfaces to support required functionality.\n\nTest: make\n\nChange-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6\n"
    },
    {
      "commit": "cbc8f617c1aebef5d041fa40dcd38a5466690b99",
      "tree": "525470607c3e6436c5a73caac90830104fcde9ac",
      "parents": [
        "0c739c59dd1a3d52beb82a353c13b6c853d93f5f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "message": "Eliminate dependencies on hardware/audio.h (trivial cases)\n\nframeworks/av must not depend on hardware/ (except for the code\nfrom libaudiohal that actually calls into HAL).\n\nThis CL deals with simple cases where depending on system/audio.h\nis enough.\n\nChange-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4\nTest: make\n"
    },
    {
      "commit": "f7c50104b07091880019f4ecc70d977961148268",
      "tree": "4e6d9fe3a5b9d66723385205ef54afd845e183be",
      "parents": [
        "00c553db3e9c486b016fa030be00f5b53c6b0b8e",
        "a3de77f1a7c994cdf53d10889d78d69c36fc85f3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 15:19:43 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 15:21:20 2016 -0700"
      },
      "message": "resolve merge conflicts of a3de77f to master\n\nChange-Id: Idb3346465ee7f47d95fd24e2dafdd66f3759c1be\n"
    },
    {
      "commit": "a3de77f1a7c994cdf53d10889d78d69c36fc85f3",
      "tree": "d7d7160dc9e267941fae40d7db40a091e6927edf",
      "parents": [
        "6011acd88b95931f8c5ed471f479c8ae18435eea",
        "9080e1791189a56c042286c5908760e4a46446b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 19:35:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 19:35:18 2016 +0000"
      },
      "message": "audio policy: fix capture indication to sound trigger service. am: 271a93e924\nam: 9080e17911\n\nChange-Id: I2131473eb29d7896cad0d1459807214d89b0d754\n"
    },
    {
      "commit": "271a93e924f46ccaf3f76a8fc38685afea40d3ee",
      "tree": "04c7e4d6c5315966d32b5c991ec9faba70cd77cd",
      "parents": [
        "429a052c35e3cca601889b12dd34edbd61eda61d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 14:47:06 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 14:47:06 2016 -0700"
      },
      "message": "audio policy: fix capture indication to sound trigger service.\n\nOnly indicate active capture to sound trigger service\nwhen capturing from primay HW module.\n\nBug: 31826453\nBug: 31771879\nChange-Id: Idf92393d3e7dbf926b847ab23f670e7ab5dd5248\n"
    },
    {
      "commit": "ee4b2c9b3f63ed8a7acb7c6bba68dcd40b77bf8d",
      "tree": "90fe45b98a74bd4e123c0a676ce4e07213beb6a4",
      "parents": [
        "616445eaa07885173767544d3c5a61ad652d1171",
        "809acee9e27acd2ce69b3f8324b30a96782d0444"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 16:06:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 29 16:06:16 2016 +0000"
      },
      "message": "audio policy: fix media volume after ringtone am: 57de36ccd1 am: f3ef8248a7\nam: 809acee9e2\n\nChange-Id: I69beb8361d17fb215cf1d3d04faa97b25e78d371\n"
    },
    {
      "commit": "809acee9e27acd2ce69b3f8324b30a96782d0444",
      "tree": "662294b5aee007f7dc23819b557c01c6855f9bb8",
      "parents": [
        "7ab345b9f8b043a23648f24fd72ae5c14836a1d1",
        "f3ef8248a7b1419d52fcdb23ac07df3781a2db6e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 16:01:43 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 29 16:01:43 2016 +0000"
      },
      "message": "audio policy: fix media volume after ringtone am: 57de36ccd1\nam: f3ef8248a7\n\nChange-Id: I7893c08978caf6ada73b5449ec3e1bcead96f9c1\n"
    },
    {
      "commit": "57de36ccd1f524d602d267884bdcfae8559a6e6a",
      "tree": "1579ecee7caacc909ffeb24488a12a936c9fc6b9",
      "parents": [
        "08e1f41731ad95a0019b3733b999958a07f705ac"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 28 16:59:11 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 00:49:54 2016 +0000"
      },
      "message": "audio policy: fix media volume after ringtone\n\nFix regression introduced by commit 11c499a5 causing\nmusic volume not to be restored after ringtone playback\nover duplicated output (speaker + A2DP).\n\nBug: 31539910\n\nChange-Id: I1c4eebea1f1a8f82ae2acfeecb9a61c437a74e25\n"
    },
    {
      "commit": "7c9c33abb1ad874a277b17ceab91464966754926",
      "tree": "7539333060fcb3ee8b65804585c1296837aae438",
      "parents": [
        "9e75537cbc2f7c040d0c2f1dfcae39898f729ea8",
        "47406b64704137703f3d0ebe304a7286153d435a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 21 00:34:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 21 00:34:53 2016 +0000"
      },
      "message": "AudioPolicyManager: fix setStreamVolumeIndex(). am: e76f29cbde am: fa94796ebb\nam: 47406b6470\n\nChange-Id: I2692aa7dc3dc206ba6aa6d30bc0064699059dad0\n"
    },
    {
      "commit": "47406b64704137703f3d0ebe304a7286153d435a",
      "tree": "abe1a39f8b8a433c943ad8a92f62f5c27528a8f4",
      "parents": [
        "abc97dee27bdf8c909cfc8a3d1d27adad5e6fa39",
        "fa94796ebba3d4813364c4b22a441d8544dce6c6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 21 00:00:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 21 00:00:26 2016 +0000"
      },
      "message": "AudioPolicyManager: fix setStreamVolumeIndex(). am: e76f29cbde\nam: fa94796ebb\n\nChange-Id: I15e9ff87ddd180eb6d5c3fc9dcdd3bd2be92d55f\n"
    },
    {
      "commit": "fa94796ebba3d4813364c4b22a441d8544dce6c6",
      "tree": "f59ce27da958cc7f11968188a1d471d0aa9a7500",
      "parents": [
        "14d8147645aa571c5a3a316f235926b18255da55",
        "e76f29cbde016e2a5e76e308f946644adae10a17"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 20 23:57:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 23:57:16 2016 +0000"
      },
      "message": "AudioPolicyManager: fix setStreamVolumeIndex().\nam: e76f29cbde\n\nChange-Id: I6eb6dbbea93321f366bea7fa39925bcac03225c2\n"
    },
    {
      "commit": "3b0515db3405df2e759984aff7ac59aed0b16a98",
      "tree": "f59ce27da958cc7f11968188a1d471d0aa9a7500",
      "parents": [
        "2b676113cf2fa7ca2d3765a8b9c2914661aeedc8",
        "e76f29cbde016e2a5e76e308f946644adae10a17"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 20 23:53:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 20 23:53:08 2016 +0000"
      },
      "message": "Merge \"AudioPolicyManager: fix setStreamVolumeIndex().\" into nyc-mr1-dev"
    },
    {
      "commit": "e76f29cbde016e2a5e76e308f946644adae10a17",
      "tree": "8467cc192d7fed5caf659f5a5f4ab5db6e265fdd",
      "parents": [
        "7c6bd7b17835cfa615d1f74aa7fe7c45c7190e4d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 14 17:17:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 10:00:12 2016 -0700"
      },
      "message": "AudioPolicyManager: fix setStreamVolumeIndex().\n\nFix bug in setStreamVolumeIndex causing default volume not\nbeing applied on active streams.\n\nBug: 31489345\n\nChange-Id: I7d54ab63a7473b211c26c28099fbe8d9440fced3\n"
    },
    {
      "commit": "8e1d94daf47a3b2b9358c82b26590cc995233681",
      "tree": "8286856a849d4e31fe2274aa04aba542dee740bc",
      "parents": [
        "fb2892b95ae67bad217a8c8c5e00ff21eec1d875",
        "4c455ebfe643dbe1e5fbccd68f7e3ad48841d58a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 15 18:08:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 15 18:08:21 2016 +0000"
      },
      "message": "Address the concurrency of accessibility and ringtone am: 3d8b4a450b am: 7eaff48959\nam: 4c455ebfe6\n\nChange-Id: Ice70f9e97a19fef9960c6660095f6bf4b438766c\n"
    },
    {
      "commit": "4c455ebfe643dbe1e5fbccd68f7e3ad48841d58a",
      "tree": "85c750562a5316b3b884d0a46e24405dae53dcf2",
      "parents": [
        "b94455630c86f6bc4d0dbd94d70f367a7b3fe22d",
        "7eaff48959d03e9b1dfc2399c00fcbd3093a184d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 15 17:56:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 15 17:56:40 2016 +0000"
      },
      "message": "Address the concurrency of accessibility and ringtone am: 3d8b4a450b\nam: 7eaff48959\n\nChange-Id: Ie26f87a6e62b9b2bf7368afad8c4a5b14722186d\n"
    },
    {
      "commit": "3d8b4a450b451183b4eaba321b594df4a4ae9948",
      "tree": "2f107882deec0cab095798200c0b33a471bc98ca",
      "parents": [
        "41f2c47c0019b2a979ebe79241c5eb6ce14c0a3f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Sep 14 18:37:46 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Sep 14 18:37:46 2016 -0700"
      },
      "message": "Address the concurrency of accessibility and ringtone\n\nUse ringtone level -4dB for accessibility when an accessibility\n  prompt is played while the ringtone is playing, and the\n  accessibility level is lower than the ringtone level.\n\nBug 30754235\n\nChange-Id: I5f044c3bddabca45528292846a378be13d73ff6c\n"
    },
    {
      "commit": "15c1225da92bdae3c96a064fefbe745dd267185a",
      "tree": "9ef6b5e6579aa04b4c84dc78b16db2db1bb01809",
      "parents": [
        "c7239f10fafe26e948d8505554f4f0f113395a93",
        "61f87168e91363d086ebbb5100c8684097681bc1"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Sep 02 15:54:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 02 15:54:44 2016 +0000"
      },
      "message": "audiopolicy: Avoid spurious routing in APM::stopSource am: 11c499a59e am: 5c261a2189\nam: 61f87168e9\n\nChange-Id: I0f97c34e0d8abb1ec130f6db781fbcfe2a455324\n"
    },
    {
      "commit": "61f87168e91363d086ebbb5100c8684097681bc1",
      "tree": "854fe5d2213f28997561f60ffafb267be6560ed2",
      "parents": [
        "3c96a7253fbdadf27c6ebcea1e28d5c903b3d69c",
        "5c261a21898e086f4a1dbb503690f3d7018ea48b"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Sep 02 15:51:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 02 15:51:18 2016 +0000"
      },
      "message": "audiopolicy: Avoid spurious routing in APM::stopSource am: 11c499a59e\nam: 5c261a2189\n\nChange-Id: I31ff3ac4e07d072b1756fa333057f67ecaf4285f\n"
    },
    {
      "commit": "11c499a59eb8effc59209f6c06df3ed78c2998a8",
      "tree": "dca4ba5b10684ee27f161eefb1915822cdcb338a",
      "parents": [
        "8e7b58c0aeb6d106d9f83ff0048c30849f12df82"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Aug 26 12:08:25 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 30 13:27:24 2016 -0700"
      },
      "message": "audiopolicy: Avoid spurious routing in APM::stopSource\n\nOn AudioOutput::stopSource, ignore routing calls\non an output descriptor to the same device\n\nBug: 31185954\nChange-Id: I80f442982f7e66efb59b639a7ca9424745dbd70a\n"
    },
    {
      "commit": "7b946f1102a90dd1735b334a77243f4f8126bd70",
      "tree": "5657a0a8c639a61fd9fa8c1bf093e6cb7a91a137",
      "parents": [
        "f6aa33f6d89643fa52be1475d92c722623f2d76c",
        "f732e0726c5e0c4a1460e2dfa8c39e7a9a697ae9"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Aug 23 00:16:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 23 00:16:36 2016 +0000"
      },
      "message": "Merge \"audiopolicy: modify A2DP suspend logic\""
    },
    {
      "commit": "44f13b94ec6cc55923dc350561db96b194c9bd0f",
      "tree": "f51f83290c8b29650af58a62255a0df8d06c54c6",
      "parents": [
        "16a811140d8591eb33a3d50b1542461fef3a06ff",
        "37ddbb43721947d6cb5246ec2cf2a6bd8fc28bcb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 11 15:31:01 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 15:31:01 2016 +0000"
      },
      "message": "Merge \"audiopolicy: fix very verbose logging build\""
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "37ddbb43721947d6cb5246ec2cf2a6bd8fc28bcb",
      "tree": "a5c6ac041cedcfd26207e0ff01b2b421fed8248f",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 10 16:19:14 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 10 16:19:14 2016 -0700"
      },
      "message": "audiopolicy: fix very verbose logging build\n\nChange-Id: I3a90ba55f85e11c9c2b986479c1dd0fda9059f81\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "e964d4e421e2d1ca937227a580c0c837091a11e3",
      "tree": "876478fb4d5b18ddf8ba3b761440e46651b45ecb",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 11:35:57 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "f732e0726c5e0c4a1460e2dfa8c39e7a9a697ae9",
      "tree": "94f5aab5c3eab7965d9dfb6cba23b7015b4e8529",
      "parents": [
        "d38432e4253c397cbd12d70ad1c0b68fd7a660df"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 03 19:30:28 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 09 18:31:19 2016 -0700"
      },
      "message": "audiopolicy: modify A2DP suspend logic\n\nDo not suspend A2DP output if no SCO device is connected.\nThis allows playing ringtones on devices with A2DP profile only.\n\nBug: 29913018\nChange-Id: I93bf2d3491c634a5fb2b8ac8283ef26faaf1ab53\n"
    },
    {
      "commit": "f8194ffb1c4b1fa1b94294191aee8ba12a3633d4",
      "tree": "dc4784d10947d2a7b8b19cd69c729f1445189f33",
      "parents": [
        "d8f72540a4a792718cd7a46a9348c3face19baf6",
        "9d838d70e129eee4eb66202731c436152f9de304"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 04 22:22:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 04 22:22:07 2016 +0000"
      },
      "message": "audio policy: fix call volume over USB am: 5f5fca540c am: 8c3c46b795\nam: 9d838d70e1\n\nChange-Id: I205db77eafdccc69c345e048a87e093c2af4f220\n"
    },
    {
      "commit": "9d838d70e129eee4eb66202731c436152f9de304",
      "tree": "f68f90da732f112d09f9e5e89f46f4b5573b9aff",
      "parents": [
        "631a40a343fb4bf21414fd5b62ef59590e6cdcdc",
        "8c3c46b79524ee9eb096e458f1713c4def04a3f0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 04 22:11:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 04 22:11:53 2016 +0000"
      },
      "message": "audio policy: fix call volume over USB am: 5f5fca540c\nam: 8c3c46b795\n\nChange-Id: I4d2f4aac4328831730d38699dc540cef15e8b32f\n"
    },
    {
      "commit": "5f5fca540ce22d2f9caff1c823b2d5b637904729",
      "tree": "8a926fe9262b081413e0fe1882a5327e7dc9aead",
      "parents": [
        "fa1e123f3fffe1eb3d6c284e19014815835e22d6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 04 11:48:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 04 11:48:57 2016 -0700"
      },
      "message": "audio policy: fix call volume over USB\n\nMake sure the cache of output device selection per strategy is updated\nalso when an input device is connected or disconnected as the list of\ninput devices sometimes impacts the output device selection in\ngetDeviceForStrategy().\n\nBug: 30659619\nChange-Id: Ie9f7bafda0074afcc803f309379c35b538f50170\n"
    },
    {
      "commit": "f484d53675efb09b72fdf0d543b4e35dceceb2cf",
      "tree": "9a24c9475d875a85cbf0840389957643f7e16004",
      "parents": [
        "79897fad23dd22937d1e5a961b3c6044e091fe13",
        "e45b4d49d3fe299d6975f6b943858f46992bee8b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 27 01:54:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 27 01:54:14 2016 +0000"
      },
      "message": "audio policy: reduce audio routing commands trafic. am: 77305a6730\nam: e45b4d49d3\n\nChange-Id: I65cea7e3fee974c76d0afc13c4498eda7621016e\n"
    },
    {
      "commit": "e45b4d49d3fe299d6975f6b943858f46992bee8b",
      "tree": "a4ca8e05bab95d51c8a181400aba91e44498de09",
      "parents": [
        "19d4e77f1f44aa15c6301b43b9db63ab9f3e2076",
        "77305a67301c74438ee09fdb8f80b89a43712951"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 27 01:49:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 27 01:49:33 2016 +0000"
      },
      "message": "audio policy: reduce audio routing commands trafic.\nam: 77305a6730\n\nChange-Id: I786ba21caef6d2c3c1142701337295de5565260c\n"
    },
    {
      "commit": "77305a67301c74438ee09fdb8f80b89a43712951",
      "tree": "990f7bc1bff42f0c22ae3e730d1b80e3333cf4f1",
      "parents": [
        "35b3e0cad6efe0b0d9143e6cc218d5750d03e909"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 16:39:22 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 26 15:25:37 2016 -0700"
      },
      "message": "audio policy: reduce audio routing commands trafic.\n\nRestrict conditions under which we force a routing change\nwhen an output becomes active to reduce the number of useless\nbinder calls, context switches and pausing of fast mixer thread.\n\nBug: 29345846\nChange-Id: I492412f0475d6f3d1882af0b85ee0efcfac2b5e5\n"
    },
    {
      "commit": "a4c20889fee2290539ef1f8318f50abf62c52dfc",
      "tree": "b5371efe9fe19511ffabf649d79dd2d0ce2e925c",
      "parents": [
        "eb0010f91904c5d2e36d178e708cf9cdde3cc3c3",
        "afaf9cd17b01b6dd0d19dee96aa6cab03f4acf69"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 21 00:57:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 21 00:57:12 2016 +0000"
      },
      "message": "Merge \\\\\"audio policy: workaround for truncated touch sounds\\\\\" into nyc-mr1-dev am: 0493cca1ba\nam: afaf9cd17b\n\nChange-Id: Ie88e2b2fa5150d6768ec41c1d872e3d417b1c2e4\n"
    },
    {
      "commit": "afaf9cd17b01b6dd0d19dee96aa6cab03f4acf69",
      "tree": "84bca4a0746b4e7c8f302282a04cd620b3fb7a1b",
      "parents": [
        "400eb12253d91e29f26f76e660c2a07fc78fcfbe",
        "0493cca1ba6c59a2da08555fbc1aa67860bdcb3f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 21 00:52:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 21 00:52:05 2016 +0000"
      },
      "message": "Merge \\\"audio policy: workaround for truncated touch sounds\\\" into nyc-mr1-dev\nam: 0493cca1ba\n\nChange-Id: Ifc7988fe9bf93ce9dd3197ce6f841e133abbada4\n"
    },
    {
      "commit": "dc46286bf57fefc9f08ece3018b91acec7687f85",
      "tree": "228814e8b9e3c9c8fd098829ae4965b59b0385e6",
      "parents": [
        "de25663ffc36936569e04fd4d4442121be07ca9b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 19 12:29:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 20 16:07:02 2016 -0700"
      },
      "message": "audio policy: workaround for truncated touch sounds\n\nImplement workaround to avoid touch sound truncation when\naudio path or volume changes are triggered by user actions.\n\nAlso:\n- Fix regression introduced by commit c75307b7 causing failure\nto honor playback start delay in case of path change.\n- Fix failure to report path switch delay in updateCallRouting().\n- Make sure we delay temporary mute according to requested device\nswitch delay in checkDeviceMuteStrategies().\n\nBug: 29528161\nBug: 27535199\nChange-Id: Id729579b6623ee67a767055b9aca7d2e2dde8491\n"
    },
    {
      "commit": "d91a420f234e2ec0ccc4d156a56297832e21d4a6",
      "tree": "b9ef2d51e03939fee2f880d2008dbbf005c5c1fb",
      "parents": [
        "f9eb4d2ca8eee725a33618da104f843acd3b6ff5",
        "edab4257fa821c91c6e5a64cda78c9c38ea905c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "message": "Merge commit \\\u0027885dd7136a999d21219a4cc9034f20ef688c0625\\\u0027 into manual_merge_885dd71\nam: edab4257fa\n\nChange-Id: I04abc72767b31fbdfd6ee82c239fbc4a94421a82\n"
    },
    {
      "commit": "edab4257fa821c91c6e5a64cda78c9c38ea905c0",
      "tree": "856ba650f36f697025823f6a0140ab41e420e942",
      "parents": [
        "5691e5400a9cf7aee4c76ded5db7eed53bfb9c8d",
        "885dd7136a999d21219a4cc9034f20ef688c0625"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "message": "Merge commit \u0027885dd7136a999d21219a4cc9034f20ef688c0625\u0027 into manual_merge_885dd71\n\nChange-Id: I871b103643cabab183bc24c1ce40930c7a083c79\n"
    },
    {
      "commit": "fcddb0b73931d207b21bd281a7df3ba2f230a607",
      "tree": "f9b35ea1d18407f17cd1fd10d9365867abbed823",
      "parents": [
        "f81362f6cd1bb22f988c30e6b552e6a2d95c4de7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "message": "Enable strict warning checks and fix\n\nChange-Id: Id401a937911eb418e93314812f2f7c2b5ecff8d6\n"
    },
    {
      "commit": "998ab5218bfef34f9c5e23c750199aaa7c9e29ef",
      "tree": "4dc9e6b3008e5c935426ca5be2ad21f03011ad92",
      "parents": [
        "90f8c621d893cae5d8f1f3a4a3a1ecb4c5a2c7db",
        "b44eb7edc85ad6e5305a6f582ea28e6988556744"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 08 15:52:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 15:52:34 2016 +0000"
      },
      "message": "Merge \\\\\"AudioPolicyManager: fix music volume following alarm\\\\\" into nyc-mr1-dev am: f81362f6cd\nam: b44eb7edc8\n\nChange-Id: I53f868ed86819a2e1cff52e69547c384569a50fd\n"
    },
    {
      "commit": "b44eb7edc85ad6e5305a6f582ea28e6988556744",
      "tree": "41efafada6a507d778c433b58319124ec520404f",
      "parents": [
        "85d42d4bd91b4622815ef80ef67377996ced572c",
        "f81362f6cd1bb22f988c30e6b552e6a2d95c4de7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 08 15:48:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 15:48:36 2016 +0000"
      },
      "message": "Merge \\\"AudioPolicyManager: fix music volume following alarm\\\" into nyc-mr1-dev\nam: f81362f6cd\n\nChange-Id: If23dda76fd11bc25ee1adf7b069df732cfce87f4\n"
    },
    {
      "commit": "447a87bbfe11cc85123ddd94551c3a5ede54ea20",
      "tree": "5f40a548c09c750b3c96108e2b810ea69df0a802",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 17:32:10 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 17:32:10 2016 -0700"
      },
      "message": "AudioPolicyManager: fix music volume following alarm\n\nUsing stale device selection for accessibility strategy\nfrom cache was causing the wrong device to be returned\nby getDevicesForStream() for music stream.\nThis caused speaker volume to be changed while playing\nmusic over headset after playing an alarm over headset + speaker.\n\nBug: 29518506.\nChange-Id: I06617976e209f6483ea0df1d0a6acb05de7c5cba\n"
    },
    {
      "commit": "4cfa355eedae56e047b63b1b02fc6d789e21980d",
      "tree": "a45aeb0a86de3ecfb921666924ca3ea99cd79ce1",
      "parents": [
        "49a8a948be610444667ad98a816abe868bdb38d9",
        "b70868bb337f0b12f993494f4d110979a33ddd24"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 04 01:24:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 04 01:24:18 2016 +0000"
      },
      "message": "Merge \"Add AudioTrack and AudioRecord flag checks\" into nyc-mr1-dev am: 2f8e63b5be\nam: b70868bb33\n\n* commit \u0027b70868bb337f0b12f993494f4d110979a33ddd24\u0027:\n  Add AudioTrack and AudioRecord flag checks\n\nChange-Id: Ia6ab9998dcaa065d18fc048ae5ea6bb3e087ba62\n"
    },
    {
      "commit": "b70868bb337f0b12f993494f4d110979a33ddd24",
      "tree": "bde43cc6ef3f51829fd1875013e0191ffa2b4915",
      "parents": [
        "fa877e53915259d8288fa6cf16d9ebe68d4a806d",
        "2f8e63b5be5b0160302cffe1f1f18e560d31d3e7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 04 01:21:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 04 01:21:52 2016 +0000"
      },
      "message": "Merge \"Add AudioTrack and AudioRecord flag checks\" into nyc-mr1-dev\nam: 2f8e63b5be\n\n* commit \u00272f8e63b5be5b0160302cffe1f1f18e560d31d3e7\u0027:\n  Add AudioTrack and AudioRecord flag checks\n\nChange-Id: If9043721f4763ce0f4db96c63595f92c5ba22556\n"
    },
    {
      "commit": "050677873c10d4da308ac222f8533c96cca3207e",
      "tree": "fa2d3e91f74c5d838330f52cf158be8c774eec7f",
      "parents": [
        "53c87d5bb06a168290575099378bc7bfe1dca02b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 01 18:27:28 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 03 16:46:38 2016 -0700"
      },
      "message": "Add AudioTrack and AudioRecord flag checks\n\nVerify that the requested flags are compatible with the input\nor output flags when creating and AudioRecord or AudioTrack\n\nGet rid of IAudioFlinger::track_flags_t which was redundant\nwith audio_input_flags_t and audio_output_flags_t.\n\nChange-Id: I0dd9232f857b2737e99a8c668806e45bce09cdbd\n"
    },
    {
      "commit": "06d169a0495ec26edb8daa46b7b7fbfa8a7852ce",
      "tree": "5ad721c1e26e7e004b24c30990526946bea84e24",
      "parents": [
        "5782210778ce5e3e0be68e2f4fcb79e1118e743a",
        "58d8f01b7dcec13cbb2db574b73de7483796202e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 26 18:35:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 26 18:35:56 2016 +0000"
      },
      "message": "Merge \"Audio policy: volume computation improvement on A2DP for notifications\" into nyc-dev am: 5d364cac29 am: 7ef5bb92f7\nam: 58d8f01b7d\n\n* commit \u002758d8f01b7dcec13cbb2db574b73de7483796202e\u0027:\n  Audio policy: volume computation improvement on A2DP for notifications\n\nChange-Id: I7cebf025dfec1e2c1c970590e75f0af7d84646b4\n"
    },
    {
      "commit": "58d8f01b7dcec13cbb2db574b73de7483796202e",
      "tree": "8bc8616d908313491ef7891fa4ef388ff1a54604",
      "parents": [
        "8b5fe1d16ee63b38ffeb9dbfb6283039539931e3",
        "7ef5bb92f7169b5fa385c16d905265f99879cfae"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 26 18:29:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 26 18:29:27 2016 +0000"
      },
      "message": "Merge \"Audio policy: volume computation improvement on A2DP for notifications\" into nyc-dev am: 5d364cac29\nam: 7ef5bb92f7\n\n* commit \u00277ef5bb92f7169b5fa385c16d905265f99879cfae\u0027:\n  Audio policy: volume computation improvement on A2DP for notifications\n\nChange-Id: I0cbc1533393a2eaa5cd19a55f43af1054ab9bb5a\n"
    },
    {
      "commit": "de3c46b84849c83c0cac890f0c668d74ab4f9800",
      "tree": "bc76387cf7342f3c6f6316958b89858b57ac81b6",
      "parents": [
        "d0b2548c6fa8c61822fc9d0dfdca998df1c2e072",
        "5d364cac2911bf7d479af0d508576d4078d04961"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 26 18:24:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 26 18:24:05 2016 +0000"
      },
      "message": "Merge \"Audio policy: volume computation improvement on A2DP for notifications\" into nyc-dev\nam: 5d364cac29\n\n* commit \u00275d364cac2911bf7d479af0d508576d4078d04961\u0027:\n  Audio policy: volume computation improvement on A2DP for notifications\n\nChange-Id: Ibbefead821d690ad6dfc9ba806178bc8c27cd500\n"
    },
    {
      "commit": "00a2096f3bd6f938216b3691c0b581d64df52999",
      "tree": "0a1aa328602f48be60087756734852ea8edb0d42",
      "parents": [
        "f3d9908a888203e7e70b8c2d43ee741a95e154ed"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 25 19:11:01 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 25 19:16:26 2016 -0700"
      },
      "message": "Audio policy: volume computation improvement on A2DP for notifications\n\nWhen playing STRATEGY_SONIFICATION* streams, or system sounds or\n  enforced sounds on A2DP during media playback, ensure the\n  difference between the media volume and the notification\n  is no more than 12dB\n\nBug 28288132\n\nChange-Id: If5cb7979dd76a0d624e8aeff9126ff56bfd7366b\n"
    },
    {
      "commit": "7b5ee5765f5632c36932d4630891936efd255270",
      "tree": "00803c93f0f1e912a106dbb0d7ab8088643c27bf",
      "parents": [
        "f23148a358aeb8f8f76d9568134ff79cf4aa0890",
        "6b6f366cb1daacbce97b865515e839a0fcc9da53"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "message": "Merge \"Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev am: f3aaf48fe2 am: 19665dc930\" into nyc-mr1-dev-plus-aosp\nam: 6b6f366cb1\n\n* commit \u00276b6f366cb1daacbce97b865515e839a0fcc9da53\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8f0318371882609d0da69c64de2a4e053177a9b3\n"
    },
    {
      "commit": "19665dc9307e9b18f188dea4001fe24adbda4500",
      "tree": "f6230e84031e9cdb8fb505510301e343d258de32",
      "parents": [
        "2362982a1d5ec938a296d7ec2c247490f0db5dc3",
        "f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "message": "Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev\nam: f3aaf48fe2\n\n* commit \u0027f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8274672487d9f627277edd379b7f4b04d94749a5\n"
    },
    {
      "commit": "634b71478742310960f3fdb4241e70a0735712c4",
      "tree": "7a44f5a447a8b37db668b6b88b8d3a29d0e85c95",
      "parents": [
        "eb7f3940044effc6a8b313a73134b5cc2156068c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 13:48:02 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 16:45:57 2016 -0700"
      },
      "message": "audio policy: fix regression in getDeviceConnectionState().\n\nFix problem in DeviceVector() device search logic causing\nfailure to report connection of devices when no address is provided\n(e.g when called from AudioManager.isBluetoothA2dpOn()).\n\nBug: 28286051\nChange-Id: I7ca732e195d2ddcdc1a93b78aed21523b3461aa9\n"
    },
    {
      "commit": "fc5826376a3e770fbc23ceff7e2e20168938668b",
      "tree": "61013d799513dbc6e21f85da7fc00b7e8eed5e6e",
      "parents": [
        "e20f16419638161b035a8609bdf940c8474e03cc",
        "f4393e4b88bbb2f8910d59ed64a4ececf23b29d2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 22:53:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 20 22:53:14 2016 +0000"
      },
      "message": "resolve merge conflicts of 06c38ca to nyc-dev-plus-aosp am: dcddb00\nam: f4393e4\n\n* commit \u0027f4393e4b88bbb2f8910d59ed64a4ececf23b29d2\u0027:\n  audio policy: broadcast device connect event before refreshing profiles\n\nChange-Id: I2ff190d3764e8406b20fb0ab3459e9397bd1fc4f\n"
    }
  ],
  "next": "dcddb00907ee226796163cd91901139f8532c8d7"
}
