)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "e16a2029e073d348f480665db799de5a922f43f8",
      "tree": "90be8762869341a10bf1f3112b56f67f268a0843",
      "parents": [
        "c12499d5c646e79d6a91dddc44c79921d9967c8e",
        "fa81ba8775c497c229078c25bcf8374e8420ea18"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Nov 23 04:24:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 23 04:24:47 2016 +0000"
      },
      "message": "Merge \"fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\"\nam: fa81ba8775\n\nChange-Id: I7d261ceb8cfce3b3f56ed907e1e32d70e7a40d45\n"
    },
    {
      "commit": "fa81ba8775c497c229078c25bcf8374e8420ea18",
      "tree": "3e58fc2371a993c5bf0928fcdbac6c61341efb6a",
      "parents": [
        "955e85294dfff70ae7f4afff28ab408e6eb981ed",
        "cc7c0d6fff90c867f661b795e803043aee4d0bb8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 23 04:18:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 23 04:18:15 2016 +0000"
      },
      "message": "Merge \"fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\""
    },
    {
      "commit": "1adf7f847bf8ab20c89a5cc39545250112135e5c",
      "tree": "888d14db42e802eef198e825119e82852a1bd767",
      "parents": [
        "44a580a5262ba19c275aac3537b9306679819f94",
        "6371c4361b0f5f96dad40f1367fa975e4cfa9601"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Nov 18 23:42:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 18 23:42:45 2016 +0000"
      },
      "message": "Merge \"Remove LOCAL_COPY_HEADERS from libparameter\" am: 76321a335c am: d5eb866c53 am: 9708e85a18\nam: 6371c4361b\n\nChange-Id: Id6a027637ad27f7471b1aa07d6a788158549a8e3\n"
    },
    {
      "commit": "d5eb866c536c3497e778742e5fda22ac1def9fc6",
      "tree": "5cd69b0ff56891ca06e6374593a1c6d9908f3847",
      "parents": [
        "fa43b5468f93af356297b5e2f381274d4b484ece",
        "76321a335ccd1e810221e5ffbae2f045d4f397fa"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Nov 18 23:28:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 18 23:28:33 2016 +0000"
      },
      "message": "Merge \"Remove LOCAL_COPY_HEADERS from libparameter\"\nam: 76321a335c\n\nChange-Id: Ie99187aa91ddb1a9fa199dcf681edd4565cc0d1b\n"
    },
    {
      "commit": "4ffbc764411421a9a9cb73e21382ec711d21fc47",
      "tree": "a509c9777051648f0c4caba5d0b5a475b971cc24",
      "parents": [
        "11f51b046344c8e14ef764d755cae697f6bce4e8"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Nov 18 13:28:36 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Nov 18 13:28:36 2016 -0800"
      },
      "message": "Remove LOCAL_COPY_HEADERS from libparameter\n\nRequires the libaudiopolicypfwwrapper to depend on libparameter to get\nthe exported headers. Also fix the libaudiopolicyengineconfigurable\nbuild to resolve missing liblog symbols.\n\nTest: USE_CONFIGURABLE_AUDIO_POLICY\u003d1 mmma -j frameworks/av/services/audiopolicy\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": "cc7c0d6fff90c867f661b795e803043aee4d0bb8",
      "tree": "135370892a4372382e70aaec7c1017fc4a3dfa92",
      "parents": [
        "11f51b046344c8e14ef764d755cae697f6bce4e8"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Nov 15 17:55:57 2016 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Nov 15 17:55:57 2016 -0800"
      },
      "message": "fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\n\nBug: none\nTest: the warning is gone.\nChange-Id: I8fe9610e24e31e3f788d00fa7f594e1274771433\n"
    },
    {
      "commit": "0aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594",
      "tree": "8f4ba1cb7489b7842ff9d649f666d85c922b89e8",
      "parents": [
        "74d3601bea717111f77376cf1678d2bc65dd51a1"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 08 14:09:10 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 08 14:09:10 2016 -0800"
      },
      "message": "Add back AUDIO_DEVICE_*_STUB to the enum map.\n\nIt has been accidentally removed, and it is used in\naudio_policy.conf on certain devices.\n\nBug: 32740394\nChange-Id: I59a1b44472aeabc87f65c6cee6371ac3647ecf57\nTest: make \u0026 check on the device\n"
    },
    {
      "commit": "300379ab01ec4c5f9f538284dbb1e49ad012de29",
      "tree": "d72611a51551f9fce78a2eaf8b84e17fe17a75cf",
      "parents": [
        "925cad7e9697140fe296f9a87cfbd1cb86210db2",
        "913d06c099bd689375483a839e11057ccf284d1c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 20:45:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 07 20:45:24 2016 +0000"
      },
      "message": "Merge \"Move TypeConverter into a shared library\""
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "4ea929819e23ecd388e1edce25a10631ee53e9e3",
      "tree": "23738cbafefdd9f9dcc839a01525533e0045c554",
      "parents": [
        "5c4ca88476ea3c26b88fc13c281db9eb20913511",
        "795a2a75542d25eefa56bebc388340ee15fdff5c"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 07 17:21:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 07 17:21:49 2016 +0000"
      },
      "message": "Split libmedia into libmedia and libaudioclient\nam: 795a2a7554\n\nChange-Id: Ic08eddc5650d3f5d344ebcf93ad98ae5bb236c8c\n"
    },
    {
      "commit": "795a2a75542d25eefa56bebc388340ee15fdff5c",
      "tree": "5b595a348342c3ad28549329ba5653ad62db75d1",
      "parents": [
        "bf26c4eb629b514648420916fd1db40333c30ea5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 02 13:21:22 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 19:31:54 2016 -0700"
      },
      "message": "Split libmedia into libmedia and libaudioclient\n\nThis makes it so audioserver doesn\u0027t need to link against the entire libmedia,\nwhich has dependencies on camera, ICU, OpenGL and other things that aren\u0027t\nneeded for audio.\n\nTest: build/boot\n\nChange-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af\n"
    },
    {
      "commit": "4f197ec220d2c9634429692dd37896233273111d",
      "tree": "9ee3410c97a0375f18e05a0728643cfe587f0edc",
      "parents": [
        "68f9d0dc3b25c69eecccc9487319dd3343f0790b",
        "46d0a5b493dc7ef8cfd068c1b12d1d47d03d7884"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 22:52:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 04 22:52:20 2016 +0000"
      },
      "message": "Merge \"Remove unneeded links with dynamic libraries\"\nam: 46d0a5b493\n\nChange-Id: Ica6dd538c30b9aeccddad229cb24ade4d82d2e4c\n"
    },
    {
      "commit": "263506542fbe480ddb247597bdcef16c437b48dd",
      "tree": "1ad06b1495a50534199f1aa5068b8519dd5d50c5",
      "parents": [
        "712690b37495816a3f55e2d000f1f68caf1c20a4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 25 13:17:47 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 14:17:07 2016 -0700"
      },
      "message": "Remove unneeded links with dynamic libraries\n\nVarious media components were linking against dynamic libraries that weren\u0027t needed.\n\nTest: built and booted\n\nChange-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e\n"
    },
    {
      "commit": "538ec5e04f389cba637b030757be317fcb8677a8",
      "tree": "c9c576057efe1f6c0bdf1a4cbf6b58dce68f5e3f",
      "parents": [
        "e085c1072f017d4910f7e49741f72e8a722b8892"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 02 13:21:22 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 12:14:36 2016 -0700"
      },
      "message": "Split libmedia into libmedia and libaudioclient\n\nThis makes it so audioserver doesn\u0027t need to link against the entire libmedia,\nwhich has dependencies on camera, ICU, OpenGL and other things that aren\u0027t\nneeded for audio.\n\nTest: build/boot\n\nChange-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af\n"
    },
    {
      "commit": "c661ae6165338fd5f0bca50a63058b4bcd6def4b",
      "tree": "1fabefad176045b256eb3282f391b9e1ae4ee654",
      "parents": [
        "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 25 13:17:47 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 26 15:42:11 2016 -0700"
      },
      "message": "Remove unneeded links with dynamic libraries\n\nVarious media components were linking against dynamic libraries that weren\u0027t needed.\n\nTest: built and booted\n\nChange-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e\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"
    }
  ],
  "next": "9ee0540d3a61bff03d561ca431a371c3d9335d2b"
}
