)]}'
{
  "log": [
    {
      "commit": "424314382b6e2064df1c7c445038a11104be84c7",
      "tree": "095ad0c7a005c20887665ee5ec243e692bac6834",
      "parents": [
        "c42c4b526422fada02f3522a08143f738e9e60af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 18:59:03 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 31 15:47:09 2015 +0000"
      },
      "message": "DO NOT MERGE - audio policy: fix DeviceVector::getDevicesFromType()\n\nFix device type comparison in DeviceVector::getDevicesFromType():\nAUDIO_DEVICE_BIT_IN bit must be excluded from type comparison\nand used as an orthogonal match criterium.\n\nManual cherry-pick from master 4c91f90\n\nBug: 19957479\n\nChange-Id: Ica9f440384bcb85e669864bd29504a4fda862ce7\n"
    },
    {
      "commit": "3ae5f31393609b7fa92f24132c66e9a8c9244a45",
      "tree": "059dbae05f8fdaaa3cf3dd68b246deb2cebeea76",
      "parents": [
        "efbb61950db36a5eb789be83f077246172507c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 03 17:12:08 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 08:56:31 2015 -0800"
      },
      "message": "audiopolicy: send device connect notification to HALs\n\nDevice disconnect notifications are sent from audiopolicy to\nthe HALs. Send connect notifications as well.\n\nBug: 19249796.\nBug: 17785277.\n\nChange-Id: Ia823ed154d6a0c7ceb84b0a94f0c3b78392faaf6\n"
    },
    {
      "commit": "1bf8a21018cc1d95dc3c28b5044aeda327c7b54e",
      "tree": "8a4be46e5650fa435176aaa2e5ce95b8e146de8c",
      "parents": [
        "d99c6855901e4b2625aaad3fc24cff5ecf675fa3",
        "a82797faddb37adb2d441737884576684c8515cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 20:27:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 30 20:27:44 2015 +0000"
      },
      "message": "Merge \"audio policy: add fallback for output selection\" into lmp-mr1-dev"
    },
    {
      "commit": "a82797faddb37adb2d441737884576684c8515cb",
      "tree": "68f6794347c78e26ec90a25373f6efb7894ba4fe",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 11:49:43 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 11:49:43 2015 -0800"
      },
      "message": "audio policy: add fallback for output selection\n\nWhen getOutputForDevice() finds a matching direct output profile\nbut fails to open it, try to fallback to downmix on mixer output\nwhen format is PCM and sampling rate allows it.\n\nBug: 19197137.\nChange-Id: I197b9b202504265b6928e69740875cb7aba5c2c5\n"
    },
    {
      "commit": "d99c6855901e4b2625aaad3fc24cff5ecf675fa3",
      "tree": "9f48f6a001a4fd4b0a097d6c64ed128b91f4abfe",
      "parents": [
        "0d84ba3fd82038cb721ffae234a99e6751ed7fbe",
        "a1d525fbf2c1e0b2c61e5d29f338b0a0d8823436"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 16:33:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 30 16:33:21 2015 +0000"
      },
      "message": "Merge \"audio policy: match attached device to declared devices\" into lmp-mr1-dev"
    },
    {
      "commit": "a1d525fbf2c1e0b2c61e5d29f338b0a0d8823436",
      "tree": "58ca0bd223daf403b1e18f29dc3dc2966f2c5478",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 13:36:45 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 13:36:45 2015 -0800"
      },
      "message": "audio policy: match attached device to declared devices\n\nMake sure that when a new audio device is connected,\nand a specific profile for this device is listed in\naudio_policy.conf, this particular profile is used instead\nof a default generic profile.\n\nBug: 19188567.\nChange-Id: I5f576fcd697adc041b2cfbd2bac7a51bcc2143b9\n"
    },
    {
      "commit": "0d84ba3fd82038cb721ffae234a99e6751ed7fbe",
      "tree": "6242a784e02b2001232ef67593cd9aabb5606c3b",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562",
        "79ad438ed25c59a37244a48899263bbc4bc92f5d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 20:22:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 29 20:22:58 2015 +0000"
      },
      "message": "Merge \"Fix FLAG_BEACON regression\" into lmp-mr1-dev"
    },
    {
      "commit": "79ad438ed25c59a37244a48899263bbc4bc92f5d",
      "tree": "d54e5f2d9b1fef107e37bf2fe2b87aa44a16d8bb",
      "parents": [
        "64c496c8d51c71605cd34a510da2ecd8180656ec"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 10:49:39 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 10:49:39 2015 -0800"
      },
      "message": "Fix FLAG_BEACON regression\n\nFix regression where FLAG_BEACON is not honored anymore in terms\n of routing and muting behavior\nWhen converting from AudioAttributes to stream types, also look\n at FLAG_BEACON for mapping to STREAM_TTS\n\nBug 19185342\n\nChange-Id: I5871c1b94480ae3da544aef99ea9ab4dff97443d\n"
    },
    {
      "commit": "1db89b9c2692fd70eb1cc98b7db2f9beed81e66e",
      "tree": "beb7c19359bcc63ef6bbf918bf3b4a6ffe2a3003",
      "parents": [
        "64c496c8d51c71605cd34a510da2ecd8180656ec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 27 18:21:09 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 27 18:21:09 2015 -0800"
      },
      "message": "Audio policy: fix device gain initialization\n\nFix initilization of default gain configuration for\naudio devices loaded from audio_policy.conf.\n\nInitialization cannot be done in constructor as the possible\ngain configurations are not loaded yet.\n\nBug: 19120566.\nChange-Id: I78f057ecfa1a121365ac3d8f317912a6f1647627\n"
    },
    {
      "commit": "7ccc6b9baf2f568a0a8c6e27dcd4195645a6361d",
      "tree": "b4d2dfaf0b4fb59655c34d21ca61a890f594f83d",
      "parents": [
        "4d4ea7f7ca04cfe70ecf6f35658389f52ae6d3c1",
        "aa79befb301bc3451a19021b3fc9e9e6a1f231e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 20 21:09:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 20 21:09:54 2015 +0000"
      },
      "message": "Merge \"fix audio patch leak.\" into lmp-mr1-dev"
    },
    {
      "commit": "aa79befb301bc3451a19021b3fc9e9e6a1f231e8",
      "tree": "d55a9b5ccde8671e9126ced03a963a70891ae1e8",
      "parents": [
        "5f3194c9efeadc200c89d9e2b00a19f1afeac55d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:33:51 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 18:56:26 2015 -0800"
      },
      "message": "fix audio patch leak.\n\nAlways wait for status when executing a create audio patch\ncommand in audio policy service command thread.\nThe returned patch handle must be passed back to audio policy manager\nso that the patch can be modified later.\nFailing to do so causes a leak of patch descriptors in audio flinger.\n\nBug: 19032387.\nChange-Id: I5462d1437fac244d9c5e38f2c7b8e1a4c01d2b75\n"
    },
    {
      "commit": "21291a420e11ccdf23e955c3dc390304230ddce3",
      "tree": "5d3495362261003fb53836cf541467e65b1a0b39",
      "parents": [
        "5b578beca7c835c0c49f8f93219cf4d2f82057e3",
        "182c2f5e48f46c11dbcb5eecb46268dff4ad4797"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 23:00:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 15 23:00:46 2015 +0000"
      },
      "message": "Merge \"fix leak in audio policy effect config parser\" into lmp-mr1-dev"
    },
    {
      "commit": "182c2f5e48f46c11dbcb5eecb46268dff4ad4797",
      "tree": "b1a7e63012b5e2ee6b6975baae5c0726e4376397",
      "parents": [
        "5f3194c9efeadc200c89d9e2b00a19f1afeac55d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:29:19 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:29:19 2015 -0800"
      },
      "message": "fix leak in audio policy effect config parser\n\nFree temporary effect descriptors created in\nloadAudioEffectConfig().\n\nBug 19021726.\n\nChange-Id: Icd44216e25df3fe683a01763d7e8a7b84f367a1a\n"
    },
    {
      "commit": "e6b8b27088f461957b4cbc51adbc8b01c41e9de2",
      "tree": "efe600104c76312a94c06c58a0e16f2b8e42a2d5",
      "parents": [
        "0b460ad7557f6be56aad3fa027d93b38d5995ac4"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Tue Jan 13 20:27:13 2015 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Tue Jan 13 11:12:50 2015 -0800"
      },
      "message": "    [FM]There is no sound output from BT earphone while BT earphone is connected\n\n    Bug: 18847131\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/193318\n\n    Signed-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n\nChange-Id: I79703ba4ceb67ca3b95fbc71444dd3b116ba4131\n"
    },
    {
      "commit": "cfa5bf04ff250a14b11a75bcfa35ee2d6dbab4e9",
      "tree": "b985df2fc3985bfe5589cb6955ed3369d7d9feef",
      "parents": [
        "610255e8f2d02cb3513695eacf1c37d66b3553d6",
        "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:19:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 19:19:33 2015 +0000"
      },
      "message": "Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev"
    },
    {
      "commit": "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a",
      "tree": "e586c65974e885af85d209c811acb3d3cd592736",
      "parents": [
        "71d13d4c94cea2113d074cf0d0c6e07ad68ff3ec"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:42:33 2015 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:50:09 2015 -0800"
      },
      "message": "make libserviceutility a shared lib\n\nso that we have only one getpid_cached in mediaserver process\n\nbug: 18919657\n\nChange-Id: Iff3cd932c9110e874b3885f79705f49bf3e3f1fc\n"
    },
    {
      "commit": "c447ded04f11169e9b96b31cd196b2c4ffa9f31c",
      "tree": "77fedcbb54431d1d432d9bdcc58791ec5418c413",
      "parents": [
        "3190e67d5c80c1e39e3be91784110af1180cd182"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 08:47:05 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 08:55:25 2015 -0800"
      },
      "message": "fix record from default input source\n\nCommit caf7f48a0e broke capture from default\ninput source on some devices: the input source is now specified as part of\nthe audio attributes and the default source was not remapped to mic source.\n\nBug: 18736417.\nChange-Id: I3f5da33cdb56f959aaef68ed1952342babc63aa0\n"
    },
    {
      "commit": "3190e67d5c80c1e39e3be91784110af1180cd182",
      "tree": "df0ffbb41220270e726bc95e1148bae7a370473a",
      "parents": [
        "0d19abb440c7e62e944efbeadf02299990f9a589"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Tue Dec 30 13:00:52 2014 -0800"
      },
      "committer": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Mon Jan 05 13:27:42 2015 -0800"
      },
      "message": "close remote submix\u0027s output when device is not available.\n\n- change output close logic to find the device from IOProfile rather than\n  AudioPatch as AudioPatch handle can be cleared before disconnect.\n- Otherwise, remote submix can be stuck as output is never closed and does not\n  work any more as subsequent open fails as output is already taken.\n\nbug: 18733215\n\nChange-Id: Iddb481c91e81070e6be18996a4c8837dabd7ebdb\n"
    },
    {
      "commit": "a34c9ce292ea984e92d8f70d2c056e5372c4f452",
      "tree": "cea445f4cdb835a54814ea93da1d2452869800fd",
      "parents": [
        "2cbe89a82d4167c5d5bcf3024edc22ab6874143a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 11:16:32 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 12:01:31 2014 -0800"
      },
      "message": "audio policy: fix isSourceActive() for hotword\n\nOnly condider AUDIO_SOURCE_HOTWORD equivalent to\nAUDIO_SOURCE_VOICE_RECOGNITION if the active capture\nwas triggered by a hardware hotword recognition.\n\nAlso fix activeInputsCount().\n\nBug: 18802896.\nChange-Id: I471aafcae29a76e9c323c6c0c314ef083991476b\n"
    },
    {
      "commit": "2cbe89a82d4167c5d5bcf3024edc22ab6874143a",
      "tree": "a11134b8f4bda628079a21ed2d0e31923950cecb",
      "parents": [
        "d4b056da7cbf1adb2a5f668e4425def3754a9c09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 11:49:08 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 12:01:31 2014 -0800"
      },
      "message": "audio policy: improve accessibility routing\n\nForce re-evaluating accessibility use case routing\nwhen a condition affecting it (ringtone, alarm, call state)\nis changing.\n\nBug: 18761698.\nChange-Id: I42ac3a9fdc80bce11cf0a7fc76f680af4271abc9\n"
    },
    {
      "commit": "71b52b5bb3be81bffa320241ca486fbf964d743e",
      "tree": "39c9146e8b3a4721bcafbc4b2f19158176ff00cc",
      "parents": [
        "277c7b8c41436125742339d8c80bccf0f2b086d9",
        "fe472e292ab50c121ff93dffa3b54c96feedcfef"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:31:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 17:31:33 2014 +0000"
      },
      "message": "Merge \"Fix routing not happening after change in output device list\" into lmp-mr1-dev"
    },
    {
      "commit": "277c7b8c41436125742339d8c80bccf0f2b086d9",
      "tree": "bbb776ccbbd2e1ea760e1bbd95c5c96f4adbcfe6",
      "parents": [
        "045e710f8ce7ce1679b9b5f0adbd3290c4cc6f54",
        "97bb33f58d742539f3382583d7978fca71ffa2d5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:30:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 17:30:50 2014 +0000"
      },
      "message": "Merge \"Fix permission check for audio recording\" into lmp-mr1-dev"
    },
    {
      "commit": "045e710f8ce7ce1679b9b5f0adbd3290c4cc6f54",
      "tree": "200ec96de2053f8733f4ba26639b3457df444a70",
      "parents": [
        "184e63ffcdd5654eb8e132346d2736dc9a9c7b01"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Wed Dec 10 22:03:37 2014 +0800"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Wed Dec 17 05:10:37 2014 +0000"
      },
      "message": "[FM] Fix notification routing when FM enable\n\nhttps://partner-android-review.git.corp.google.com/#/c/188454/\n\nBug: 18727227\n\nChange-Id: I74856ede5999cfc8a6932a99855d468cccd6f51c\nSigned-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n"
    },
    {
      "commit": "fe472e292ab50c121ff93dffa3b54c96feedcfef",
      "tree": "010d112dc7177e68d475686476e4f92c8e8f95a8",
      "parents": [
        "97bb33f58d742539f3382583d7978fca71ffa2d5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 16 14:23:13 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 16 14:23:13 2014 -0800"
      },
      "message": "Fix routing not happening after change in output device list\n\nIf an output stream is active while rerouting rules are installed\n  and recording starts, the list of outputs is not updated and\n  therefore the stream is not rerouted to the new virtual device.\nThe fix consists in also taking into account all the policy-related\n  outputs when evaluating the before and after list of outputs\n  following a connection state event.\n\nBug 18736417\n\nChange-Id: I6697976b3f89e2c0995e888e9046a2273361bb97\n"
    },
    {
      "commit": "be845fce36a65139eb353ba7442eba951b1ebee3",
      "tree": "50416eb5c99ea123f82235f443d57464356e41ba",
      "parents": [
        "cd71a69d922eab2929faf8f5652fcd1b9a29cbe8",
        "dc136ffee31f21da3b31240f8a22d4d08a658d0d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 21:32:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 16 21:32:55 2014 +0000"
      },
      "message": "Merge \"audiopolicy : Fix for incorrect input device selection\" into lmp-mr1-dev"
    },
    {
      "commit": "dc136ffee31f21da3b31240f8a22d4d08a658d0d",
      "tree": "6e93a02e8ad6db27672a8cc3d4c9e4bd75179a61",
      "parents": [
        "8975220e28f632c5db4d89c798384d7635228bbc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:24:18 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:24:18 2014 -0800"
      },
      "message": "audiopolicy : Fix for incorrect input device selection\n\nSome VoIP applications do not use source as VOICE_COMM\nbut MIC and policy manager ignores the force usage in that\ncase and selects handset-mic as input device even when\nBT-SCO headset is connected.\nCheck the force usage for the AUDIO_SOURCE_MIC as well.\n\nBug: 18606571\n\nChange-Id: I5d5010ab396f85bf58573943c91fd815f39f57c1\n"
    },
    {
      "commit": "cd71a69d922eab2929faf8f5652fcd1b9a29cbe8",
      "tree": "bbfebd1725b93f6dfe90bf23b64ae17be6f0776f",
      "parents": [
        "8975220e28f632c5db4d89c798384d7635228bbc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:01:12 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:01:48 2014 -0800"
      },
      "message": "audio: Force audio to Speaker if requested during VOIP call\n\ngetDeviceForStrategy is returning AUDIO_DEVICE_OUT_USB even\nwhen setForceUse is called with Speaker during VOIP call.\nActual Intention is to route audio for phone strategy to USB\ndevice even after setForceUse is called with Speaker when not\nin voice call. It is supposed to exclude VOIP call too\n\nAdded additional check for MODE_IN_COMMUNICATION so that\nit returns SPEAKER when setForceUse is called with speaker\n\nBug: 18758599\n\nChange-Id: I1c51128cc1c7bfce1cf6f1fde60b428d3a9379fc\n"
    },
    {
      "commit": "97bb33f58d742539f3382583d7978fca71ffa2d5",
      "tree": "be3e26027b66bfc605a45af032fb91de1bdb7c7a",
      "parents": [
        "6e430fbd927b9cc043639eb728ddc921392a60e8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 12 16:23:43 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Dec 15 18:13:39 2014 -0800"
      },
      "message": "Fix permission check for audio recording\n\nDefine input types covering the different usecases for audio\n  recording, and check the corresponding permissions when\n  starting to record.\nMove the permission check from audio flinger to audio policy,\n  as only the policy has the information to determine which\n  permission to enforce.\nFix missing permission when an application records audio\n  and the audio is injected by an external policy.\n\nBug 18736417\n\nChange-Id: If7ec040502242c990ac8ea464db484339bdce573\n"
    },
    {
      "commit": "c73ca6ef04136f28306784ad35f444538f081957",
      "tree": "ff92912a23c52d8b32186b6404af0b8342005699",
      "parents": [
        "8cffa91a76d3fa4c96268fc40fc8722a0d33dc8d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 12 14:34:22 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 12 14:54:57 2014 -0800"
      },
      "message": "audio policy: fix remote mic capture\n\ncommit 275e8e9de introduced a regression for platforms\noverriding AudioPolicyManager::getDeviceForInputSource() method.\n\nFixed by defining specific non virtual methods when overiding would\nbreak remote submix implementation.\n\nBug: 18736417.\n\nChange-Id: Id4d0a6c48da987e6fb24422f2d61c7ab0fbfc921\n"
    },
    {
      "commit": "c722f30eef03e77054395ae122470cf8dba93937",
      "tree": "dd70514cd24a44a12dfb43f0123b1e6255a70e57",
      "parents": [
        "7e45789f5fbcbe68075f57b6d17f72b7b48df546"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 10 11:21:49 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 10 20:03:41 2014 -0800"
      },
      "message": "audio policy: suppport for dynamic source\n\nCompleted support for dynamic sources:\n- remote submix input device is dynamically connected/disconnected\nwhen corresponding AudioTrack starts/stops.\n\nAlso do not create a duplicated output for mixes used by dynamic policies.\n\nBug: 16006090.\nChange-Id: Ib5b5a2159fcac9d9f410a5a2f1c64d7ebad79f72\n"
    },
    {
      "commit": "1767df778e20c1395afc63b3a0479bd903e7b9f0",
      "tree": "13cc4ca445421ccc4679f03262098bbfe1043027",
      "parents": [
        "1487d270e86845e93a9abd1af020b45d6799b257"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 09 18:11:49 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 09 18:46:19 2014 -0800"
      },
      "message": "AudioPolicyManager: distinguish between mirroring and rerouting\n\nIn the screen mirroring case, the notification manager queries\n the policy to see if media \"is playing remotely\": if yes, it\n will not request audio focus before playing a notification.\nThis is the correct behavior for screen mirroring, but doesn\u0027t\n work when audio is rerouted to an external policy.\nThis change consists in not reporting \"remote\" activity when\n playing to a mix of an external policy by looking at the address\n of the output on which playback is active for the given stream\n type.\n\nBug 16009464\n\nChange-Id: Iebbf5a8c738ab36c1cf2055e921c0a3472503125\n"
    },
    {
      "commit": "baac183f3808d7b68f184647a97bd381620415fe",
      "tree": "af81e602db02f55eb35852e3d0851499199166ed",
      "parents": [
        "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 01 17:52:59 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 09 15:47:30 2014 -0800"
      },
      "message": "audio policy: binder calls for dynamic audio policy mixes\n\nAdd binder calls to register and unregister dynamic mixes\nto AudioPolicyManager.\n\nBug: 16009464.\n\nChange-Id: I4ef38166d0cfc88c984970969380d0cd6eb083ac\n"
    },
    {
      "commit": "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c",
      "tree": "c22e1c0b8541aa04fd6c8d803e4fa6704a84e6e2",
      "parents": [
        "82a69ea8b090d57bff5e02774688b546a711bbb8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Nov 30 15:14:47 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 09 15:47:19 2014 -0800"
      },
      "message": "audio policy: add support for custom mixes\n\nAdd support for custom mixes in AudioPolicyManager.\n\nTwo methods are added to register or unregister a list of custom mixes\nwith their attributes and format.\n\ngetOutputForAttr() and getInputForAttr() first look for a match in\nregistered mixes before defaulting to normal output/input selection\n\nRemote submix device connection disconnection now takes address into\naccount to identify the correspnoding custom mix.\n\nBug: 16009464.\n\nChange-Id: I3f1c2a485a0fb71b1f984ed0adc9b68aa971e408\n"
    },
    {
      "commit": "18265202049bfa53fe5b18a95d956325acca9c7b",
      "tree": "5260bab90009d52dacdd82cad7d59630fadd0b64",
      "parents": [
        "a147c17adabaab819ac108fbc448c49525cf74bc",
        "0add0fd07401c507a77b37868f46a2ae587c30df"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 06 01:04:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 06 01:04:52 2014 +0000"
      },
      "message": "Merge \"audio policy: fix inifinite loop in clearAudioPatches()\" into lmp-mr1-dev"
    },
    {
      "commit": "0add0fd07401c507a77b37868f46a2ae587c30df",
      "tree": "9059f3b9d504aed17bc52ea3efb398129d16ecba",
      "parents": [
        "d6e7f1e1f8b1dfa6a87c7c0b1a5c68d435096b01"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 04 18:58:14 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 05 16:25:23 2014 -0800"
      },
      "message": "audio policy: fix inifinite loop in clearAudioPatches()\n\nreleaseAudioPatch() does not necessarily remove the audio patch\nfrom the list.\nScan the list from the top down to avoid adjusting the index.\n\nBug: 18621514.\nChange-Id: I58787154680f7cb1818509017835b1693d62190f\n"
    },
    {
      "commit": "cbbe1ccc41a86fbf009767bbdab43232e6c369c0",
      "tree": "a424935deb591440f89d9ad91d2e24e90c6532f8",
      "parents": [
        "57216ca41b2d7e35bda01ce910ae6e72ed01bfae",
        "0daea39f02fb1ba60a7b351bb5859e407f9f090b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 05 23:30:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 23:30:01 2014 +0000"
      },
      "message": "Merge \"audio policy: fix AudioPort parameter checks\" into lmp-mr1-dev"
    },
    {
      "commit": "0daea39f02fb1ba60a7b351bb5859e407f9f090b",
      "tree": "a09f1bb4d2e6263b5d571e71353feca501fc8304",
      "parents": [
        "f1828910d48bbd22e1392e6ab0ce31298d1f115c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 04 19:14:54 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 04 19:14:54 2014 -0800"
      },
      "message": "audio policy: fix AudioPort parameter checks\n\nAccept any value for sampling rate, format or channel mask\nif the list of supported values is empty in the AudioPort.\n\nBug: 18575607.\nChange-Id: I93e1942b89c630e3fee490799a8f8d79f7831ab7\n"
    },
    {
      "commit": "18f2f90cff65c384a4e8292cc3296dafafb43d52",
      "tree": "f46ced785a3d7cee9370476b9fc0255d3280b9a4",
      "parents": [
        "ab05b4ccb8ea59079d7f773aa0e090029c479bad"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Wed Dec 03 15:23:36 2014 +0800"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Thu Dec 04 00:34:19 2014 +0000"
      },
      "message": "[FM] Fix Buganizer ID: 18456930  - FM radio audio got routed to loudspeaker unexpectedly\n\nhttps://partner-android-review.git.corp.google.com/#/c/187894/\n\nChange-Id: I3f9175bbc302e382155e568e66b88400ec05ffa5\nSigned-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n"
    },
    {
      "commit": "caf7f48a0ef558689d39aafd187c1571ff4128b4",
      "tree": "7a2c90732783e2c90cabb6045c4ab0dcea842bf1",
      "parents": [
        "087eb332cdd64026de27c914194127f8fda1a846"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 17:50:47 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 17:50:47 2014 -0800"
      },
      "message": "AudioRecord: use audio attributes instead of audio source.\n\nAdded AudioRecord constructor with audio attributes.\nReplaced AudioPolicymanager::getInput() by getInputForAttr().\n\nNo new functionality for now.\n\nAlso:\n\n- Fixed warnings in AudioPolicyManager\n- Allocate audio session ID before calling getOutputForAttr() in\nAudioTrack.\n\nBug: 16006090.\nChange-Id: I15df21e4411db688e3096dd801cf579d76d81711\n"
    },
    {
      "commit": "066ceecf4c6ed5ce26c5ddf00d7d9097d560b7a2",
      "tree": "b68469123118b1f6a66ef44d3fb4a5fcfe637cc5",
      "parents": [
        "e83b55dc29ca16092ba02f36f55fa6e0e37fd78c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:35:01 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:48:26 2014 -0800"
      },
      "message": "audio policy: do not route accessibility prompts to compressed output\n\nWhen a digital output (HDMI or S/PDIF) is configured with\na non linear PCM audio format it is likely that the audio HAL\nor HW will not be able to mix other sounds with the main\nmedia stream being played.\n\nIn this case, do not condider HDMI or S/PDIF as a valid route for\naccessibilty strategy so that accessibility prompts are always audible.\n\nBug: 18067208.\nChange-Id: If20603a1dc1dc470f206f841308bed2b87daf21c\n"
    },
    {
      "commit": "e83b55dc29ca16092ba02f36f55fa6e0e37fd78c",
      "tree": "f8232611b6372b74579e3ed03dfbeb167011d257",
      "parents": [
        "0f78eabb733e1413d7febd00c0bad0f0add02314"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 14 10:06:21 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:48:19 2014 -0800"
      },
      "message": "audio policy: new getOutputForAttr() prototype.\n\nUpdate getOutputForAttr() prototype and group all logic\ndealing with audio attributes to stream type conversion in\naudio policy manager.\n\ngetOutputForAttr():\n- specifies the audio session (for future use)\n- returns a status code\n- receives either stream type (for legacy) or audio attributes\n- returns an updated streamtype\n\nRemove logic dealing with legacy stream types to attributes conversion\nfrom AudioTrack.\n\nUse correct type for audio sessions in other APIs (startOutput() ...).\n\nreleaseOutput() specifies the audio session (for future use).\n\nBug: 18067208.\n\nChange-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817\n"
    },
    {
      "commit": "0f78eabb733e1413d7febd00c0bad0f0add02314",
      "tree": "1d1f34324ca995581c4c64c0379fa488f6507547",
      "parents": [
        "223fd5c9738e9665e495904d37d4632414b68c1e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 11:01:34 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 11:01:34 2014 -0800"
      },
      "message": "fix the build.\n\nChange-Id: Iab6b65327ae1adbf0b3a6da5a23b8107468f533e\n"
    },
    {
      "commit": "223fd5c9738e9665e495904d37d4632414b68c1e",
      "tree": "33e0afab9a7479cdc4c688a742a8977c8ead21e4",
      "parents": [
        "bc0f452b9a76dd8c8244e775bc9c5aa85cae3ddf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 11 13:43:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 21 10:41:13 2014 -0800"
      },
      "message": "audio: new routing strategies and stream types\n\nAdded new routing strategies and stream type for internal use\nby audio policy manager and audio flinger:\n- One for accessibility to allow different routing than media\n- One for re-routing (remote submix) in preparation of dynamic\npolicies\n- Added stream type for \"internal\" audio flinger tracks used\nfor audio patches and duplication.\n\nBug: 18067208.\nChange-Id: I88f884b552e51e4a49c29125e5a1204cf58ff434\n"
    },
    {
      "commit": "0ebd5f95b68a3a5c9e5509f21938c9e51e74d71b",
      "tree": "0a2939a70644eb37c401705c8211d65bac553743",
      "parents": [
        "18899808001ddaea13fa4c5277502c96351f69a5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 19 19:04:52 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 09:15:02 2014 -0800"
      },
      "message": "AudioSystem: fix cross deadlock\n\nDo not hold gLockAPS when calling\nAudioPolicyService::registerClient() in get_audio_policy_service().\nregisterClient() will need to acquire the AudioPolicyService mutex and\nif at the same time a method called from AudioPolicyService\n(with mutex held) calls back into AudioSystem and get_audio_policy_service()\na cross deadlock occurs.\n\nSame preventive fix for get_audio_flinger().\n\nUse a separate mutex for notification client list in AudioPolicyService.\nThis prevents deadlocking if registerClient() is called as a consequence of\nAudioFlinger calling back into AudioPolicyManager while executing a method\nwith AudioPolicyService locked\n\nBug: 18403952.\nBug: 18450065.\nChange-Id: Ia832e41aede8bc6c843fc615508fbdd74e0863b5\n"
    },
    {
      "commit": "29e6cecdd8562700ab625c5645ddd6a7753789f1",
      "tree": "e6b4da8119778e487653f7d74e087228e0b79e80",
      "parents": [
        "88ec9e992af75f9783794df5d7be31c3b018ad09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 13 18:17:55 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 17 18:48:08 2014 -0800"
      },
      "message": "audio policy: do not prevent routing to A2DP when suspended.\n\nAllow A2DP sink selection even if A2DP is suspended.\nIt is not because use of A2DP is temporarily disabled by SCO\nselection that the policy rule routing a given use case\nto A2DP should be altered. The source will be routed to A2DP\nbut it will remain silent until suspend condition is cleared\nwhich is the purpose of suspend mode.\n\nAlso make sure that accessibility prompts are audible while in call\nby forcing stream type to STREAM_VOICE_CALL.\nFix inconsistent logic between AudioTrack::setStreamTypeFromAttributes()\nand AudioPolicyManager::getStrategyForAttr()\n\nBug: 18095151.\nChange-Id: I1c75dd8288ed3dd494eb942060eac9c9660dca50\n"
    },
    {
      "commit": "ddbc6657fa0c55166148ca597980edbaafc418bf",
      "tree": "4d8439693a03c04b9d4ab8fc5cf3ef5785a3d4ef",
      "parents": [
        "e0b7ddcda9b4fb493cc365c92293ed7d12c3208a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 13 15:13:44 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 17 00:19:32 2014 +0000"
      },
      "message": "audiopolicy: Update input device check in checkInputsForDevice\n\n- When an input device is disconnected, checkInputsForDevice clears\n  dynamic fields of input profiles that are supporting the disconnected\n  device. AUDIO_DEVICE_BIT_IN mask is missing while comparing with the\n  supported input devices of a profile which is resulting in clearing\n  wrong fields\n\n- Fix is to include AUDIO_DEVICE_BIT_IN in this comparison\n\n- also fix two other places where comparison with input device was not\nmasked with AUDIO_DEVICE_BIT_IN.\n\nBug: 18367045\n\nChange-Id: Icc94b8353bc49567d8a6d6a75293c3b0dd42d83c"
    },
    {
      "commit": "d9cfeb447356cb6334379eaf5da1e49424eb5979",
      "tree": "5bae7d5985563f2cbbf9cc9cc1a5fca422cb8390",
      "parents": [
        "20f51b1ea04c410a25f214e37bcdb586e2a028cc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 22 16:51:34 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Oct 31 14:12:20 2014 -0700"
      },
      "message": "Support speaker routing for FLAG_BEACON\n\nAdd support for routing audio stream to the speaker when audio\n  attributes carry the FLAG_BEACON value:\n- associate streams with FLAG_BEACON to the up-to-now unused\n  STREAM_TTS (\"Transmitted Through Speaker\").\n  The remapping happens in AudioTrack.\n- AudioPolicyManager: define new strategy for handling the Beacon\n  behavior, that only goes to speaker. Define new volume curves\n  for STREAM_TTS that are not silence only for the speaker device\n  category. Keep ref count of other streams and never play Beacon\n  streams when anything else is playing: either don\u0027t start playback\n  if something else is playing, or unmute STREAM_TTS when it\u0027s\n  allowed to play and mute when it\u0027s done.\n- Take into account muting latency when starting an output.\n\nBug 15415971\n\nChange-Id: I26539c7ec1a486accd85bbeb1623e9c7d3a1192f\n"
    },
    {
      "commit": "b1322c78b035c9f47ebe57a39799d7a0e13bf57f",
      "tree": "eb4177002d445d59b1d20afa5a31f72ac2838d24",
      "parents": [
        "8e05b5f5f45b8d6931ff830969125a42428c6830"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 30 14:59:13 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 30 15:04:19 2014 -0700"
      },
      "message": "audio policy: fix commit dea1541f\n\nFix return types in early returns added by\ncommit dea1541f in AudioPolicy binder call methods.\n\nAlso fix former similar mistakes found nearby.\n\nBug: 18001784.\nBug: 18002005.\n\nChange-Id: I088c6029ca04e2c2c2f78e560c9cb6b9576dd88f\n"
    },
    {
      "commit": "8e05b5f5f45b8d6931ff830969125a42428c6830",
      "tree": "aafb77c92888ebee066d61a1736fa3e5cbb61444",
      "parents": [
        "7011ee31d65917a9e15b271942e863f06eee2da1",
        "dea1541fc0042abf05674b19c2f94ca086945dfd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 30 16:45:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 30 16:45:09 2014 +0000"
      },
      "message": "Merge \"audio policy: validate stream type received from binder calls.\" into lmp-mr1-dev"
    },
    {
      "commit": "dea1541fc0042abf05674b19c2f94ca086945dfd",
      "tree": "997d41dea43d2d59bda4f4124a0fd6be372dec76",
      "parents": [
        "701b96474dc8afd16046e440975e00be57cc4874"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 15:46:45 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 15:46:45 2014 -0700"
      },
      "message": "audio policy: validate stream type received from binder calls.\n\nBug: 18001784.\nBug: 18002005.\nChange-Id: I8efa674dceff5a6e10251b1c7a55e9bb2d532395\n"
    },
    {
      "commit": "6e8212b2a02685e50d0c093a6f44d9af636261d9",
      "tree": "f741511b37434a49626b039b94a5e1f82d0f5170",
      "parents": [
        "eac3f36c5d22ca28890fe4258987ded5ac0666dc",
        "fd4c14883b268a0bc5514da135fe6b7d1ce2071b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Oct 28 22:09:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 22:09:40 2014 +0000"
      },
      "message": "Merge \"Always use an address for remote submix\" into lmp-mr1-dev"
    },
    {
      "commit": "b80a2a8871d3af8619bf774a0c9ddbac8d598bf9",
      "tree": "c3922d648914fd6f02d34f16712f76906f6ecdc9",
      "parents": [
        "701b96474dc8afd16046e440975e00be57cc4874"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 27 16:07:59 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 09:14:37 2014 -0700"
      },
      "message": "audio policy: fix output device command after clearing audio patch\n\nMake sure that a valid audio patch is created again on an output stream\nfollowing the disconneciton and reconnection of the same output device.\n\nBug: 18144611.\nChange-Id: I72387ad8e93f8fb2571da2a6c58a6e167ac7fc4d\n"
    },
    {
      "commit": "fd4c14883b268a0bc5514da135fe6b7d1ce2071b",
      "tree": "29e4594fffdc70dc7d51a3abd7586a556df1e448",
      "parents": [
        "31551f8dd625b8d40961e141d2913b0073f852ab"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Aug 06 16:02:28 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Oct 27 16:03:09 2014 -0700"
      },
      "message": "Always use an address for remote submix\n\nUsage of remote submix device for audio rerouting (e.g. wifi display)\n didn\u0027t mandate the use of addresses. Use \"0\" as the default address\n when none is specificed.\nIn logs, only use hex format for audio devices\n\nBug 16009464\n\nChange-Id: Ibfb1ce6881eba8b7e34420293b8a7077a6e659e6\n"
    },
    {
      "commit": "31551f8dd625b8d40961e141d2913b0073f852ab",
      "tree": "4d461207f87281f7a320fd27fa8dd156c65c4eea",
      "parents": [
        "8bfa96c2f7c098550b00b84677088f84e81f4ed4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 18:21:56 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 27 12:38:32 2014 -0700"
      },
      "message": "audio policy: fix multiple device volume\n\nWhem multiple devices are selected by a strategy,\napply volume to all these devices when one of them is changed by\nsetStreamVolumeIndex() API.\n\nAlso only consider devices supported by current output profile\nin checkDeviceMuteStrategies() to avoid muting a stream because of\ndevices connected to another output stream.\n\nBug: 17507571.\n\nChange-Id: I83ef9fb7f294214d30f7f890db44c64ece3be387\n"
    },
    {
      "commit": "964b73121a634921f000ef3f877a7546f65bb700",
      "tree": "d9debc2a9fd6fb8eb744799271c6faa29cf5da50",
      "parents": [
        "9bbccd13231fbf30e466efedacec5ac03690701b",
        "7de5ac1f067ec61f7ea424d5534cfd40987b11fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 18:13:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 21 18:13:25 2014 +0000"
      },
      "message": "am 7de5ac1f: audio policy: fix effect handle leak\n\n* commit \u00277de5ac1f067ec61f7ea424d5534cfd40987b11fa\u0027:\n  audio policy: fix effect handle leak\n"
    },
    {
      "commit": "7de5ac1f067ec61f7ea424d5534cfd40987b11fa",
      "tree": "93d7a87cd7462d484b4ee882a70c3163ce2f73ac",
      "parents": [
        "d5923409bbcbb22954a92c2b497ef4492d7cb6a5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 09:07:11 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 09:56:18 2014 -0700"
      },
      "message": "audio policy: fix effect handle leak\n\nFix ref counting error in AudioPolicyEffect::addInputEffects()\nand addOutputSessionEffects()\n\nBug: 17675112.\nChange-Id: I5267d1024a585919f66ead83662e57b78ba53540\n"
    },
    {
      "commit": "f4c58707b511af4c9f55c25781304172964107cb",
      "tree": "6dd4492352aaea60308e2341dbadcc627e6b9340",
      "parents": [
        "f1b6516f6c7a6d9c8c7230a99e389bb07f1fe383",
        "a2d4a6dac432f0c4f543d79b9a63c55ae91f81d6"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Thu Oct 16 00:49:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 16 00:49:25 2014 +0000"
      },
      "message": "am a2d4a6da: audio policy: Fix for voice call audio loss\n\n* commit \u0027a2d4a6dac432f0c4f543d79b9a63c55ae91f81d6\u0027:\n  audio policy: Fix for voice call audio loss\n"
    },
    {
      "commit": "a2d4a6dac432f0c4f543d79b9a63c55ae91f81d6",
      "tree": "501b884b67bceb06a4d5ab01ecd519560fd14290",
      "parents": [
        "05c0d7d71be9578ad59d71f07f84e08c09e8d73a"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon Oct 13 13:05:22 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Oct 15 16:42:11 2014 -0700"
      },
      "message": "audio policy: Fix for voice call audio loss\n\nAudio Policy service filters out one of the create patch\ncommands when it finds two pending commands with the same\npatch handles. Due to this routing command is not received\nto audio HAL and the voice call set up fails.\nFix this by filtering create patch commands only when\nthey are issued on the same output.\n\nauthored-by: Karthik Reddy Katta \u003ca_katta@codeaurora.org\u003e\n\nBug: 17787282\nChange-Id: If36f0ab71e9b72d6a8eb61d31f762bc5e1683b89\n"
    },
    {
      "commit": "f53eaf49df1e1e1c01708919e9e0a046543de9b6",
      "tree": "01274169d31d750a0a0e08c59aa56bd5b84f3ff2",
      "parents": [
        "e86f4be598b1d2c521e2b3fcd05101c3848e93e2"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Thu Oct 09 11:36:22 2014 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Tue Oct 14 10:38:08 2014 -0700"
      },
      "message": "    fix FM no sound issue\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/184276\n\n    Signed-off-by: Carson Liao \u003ccarson.liao@mediatek.com\u003e\n\nChange-Id: I0847c8a6e6d054a9258b52402c914105d902c573\n"
    },
    {
      "commit": "fa845267f7cb5aede69ff1f62db99e8478db170d",
      "tree": "31b037a6393b0a980cf6a96de42d674e8f7d8bbb",
      "parents": [
        "6337f6032e7bdbf0b4654fb07512a00bd33ef696",
        "9286354c0a864ce2348cc7dfc6ca81e84a15f8e2"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Sun Oct 12 12:19:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 12 12:19:52 2014 +0000"
      },
      "message": "am 9286354c: Merge \"Revert \"audio policy: add support for ro.audio.media_deep_buffer\"\" into lmp-dev\n\n* commit \u00279286354c0a864ce2348cc7dfc6ca81e84a15f8e2\u0027:\n  Revert \"audio policy: add support for ro.audio.media_deep_buffer\"\n"
    },
    {
      "commit": "f2ab2191387ce7902c730cc68314ea5fdc4a9237",
      "tree": "7c96b4c90e05dedccb318ca43fd4c3bf82e7204b",
      "parents": [
        "95511add8ad4d440c67272503559f5042c4e6f1f"
      ],
      "author": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Sat Oct 11 21:59:36 2014 +0000"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Sat Oct 11 21:59:36 2014 +0000"
      },
      "message": "Revert \"audio policy: add support for ro.audio.media_deep_buffer\"\n\nThis reverts commit 95511add8ad4d440c67272503559f5042c4e6f1f.\n\nChange-Id: I76a8b86790b06b08d8ca0f8d374e585f964ffba8\n"
    },
    {
      "commit": "6337f6032e7bdbf0b4654fb07512a00bd33ef696",
      "tree": "292f01377a5807e796639b99de5fa392b688616c",
      "parents": [
        "92ab9962203f72c69308b0c2a3fed0702f6e1192",
        "ffd5cdbd3e3faa203539e26adc755f860c8cac80"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Oct 11 00:23:54 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 11 00:23:54 2014 +0000"
      },
      "message": "am ffd5cdbd: Merge \"audio policy: add support for ro.audio.media_deep_buffer\" into lmp-dev\n\n* commit \u0027ffd5cdbd3e3faa203539e26adc755f860c8cac80\u0027:\n  audio policy: add support for ro.audio.media_deep_buffer\n"
    },
    {
      "commit": "95511add8ad4d440c67272503559f5042c4e6f1f",
      "tree": "a605077307327ac30bf9b553ad4e48bfa300e8cf",
      "parents": [
        "f5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 15:31:38 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 15:39:14 2014 -0700"
      },
      "message": "audio policy: add support for ro.audio.media_deep_buffer\n\nBug: 17931716.\nChange-Id: Ife170f20f5d02b71059fbd384bd29759fafee826\n"
    },
    {
      "commit": "733ee8aaf2a91ac98cc7cfae5b98164d3aefab2a",
      "tree": "47b6e6083833b8f760405e05b8f9c1f010b440b8",
      "parents": [
        "6f559515c4edca867dbf2dbf6015e42c44ee3871",
        "f5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 19:24:44 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 10 19:24:44 2014 +0000"
      },
      "message": "am f5ada6ed: audio policy: move intializations to onFirstRef()\n\n* commit \u0027f5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d\u0027:\n  audio policy: move intializations to onFirstRef()\n"
    },
    {
      "commit": "f5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d",
      "tree": "7c96b4c90e05dedccb318ca43fd4c3bf82e7204b",
      "parents": [
        "a4c3d8f0f9aab53b106d95e6139e0465908909f4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 09 17:49:00 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 10:51:37 2014 -0700"
      },
      "message": "audio policy: move intializations to onFirstRef()\n\nBug: 17896324.\n\nChange-Id: I3bb74f5397142ac354bd815eb362e5ddacdcb463\n"
    },
    {
      "commit": "7c6977c42da29bf47e44aab55d3b2044bf9b442d",
      "tree": "8d3cc9f3e52201a8fcfe56df5a1add6f40009517",
      "parents": [
        "8610f49c1a14c91550c8abde27bda59ac6526b23",
        "07811789ebf31f5317403356f624d04282e666aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 20:51:53 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 07 20:51:53 2014 +0000"
      },
      "message": "am 07811789: Merge \"audio policy: fix build with USE_LEGACY_AUDIO_POLICY\" into lmp-dev\n\n* commit \u002707811789ebf31f5317403356f624d04282e666aa\u0027:\n  audio policy: fix build with USE_LEGACY_AUDIO_POLICY\n"
    },
    {
      "commit": "8610f49c1a14c91550c8abde27bda59ac6526b23",
      "tree": "f039ce2aafc9c8ccb509a0d79d79345ade3a4c50",
      "parents": [
        "595a5c7062c2d7b6cee4251e5e50766ca166f103",
        "5bee844fd8c2f6d9fa78ed5e063a8e3df9f2f7b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 20:51:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 07 20:51:52 2014 +0000"
      },
      "message": "am 5bee844f: Merge \"audio policy: fix lockup during mediaserver restart\" into lmp-dev\n\n* commit \u00275bee844fd8c2f6d9fa78ed5e063a8e3df9f2f7b6\u0027:\n  audio policy: fix lockup during mediaserver restart\n"
    },
    {
      "commit": "f380677f21240ffb78bcdf7c804fe0a7807fb08d",
      "tree": "9116f900580b1926e511970340ca97a7e717811a",
      "parents": [
        "8b1e80bf1e9f214feea219cfe981ba533b806003"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 09:19:31 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 12:25:01 2014 -0700"
      },
      "message": "audio policy: fix build with USE_LEGACY_AUDIO_POLICY\n\nBug: 17894512.\nChange-Id: I6431c0b03ba02cf561413c34848a334caa0261fa\n"
    },
    {
      "commit": "8b1e80bf1e9f214feea219cfe981ba533b806003",
      "tree": "0d6b46a05d685e02750433f6779eb1ce09d84294",
      "parents": [
        "f0011d49c0f08753dc2dc254c5a70885a9986602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 09:08:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 12:24:30 2014 -0700"
      },
      "message": "audio policy: fix lockup during mediaserver restart\n\nWhen pre or post processing effects are applied by audio policy service\nautomatically there is a potential lockup if the first call into\nAudioPolicyService is made while creating one of those effects.\nThis is because effects are created with AudioPolicyService mutex held and\neffect creation calls into methods (e.g registerClient()) which also acquire\nthe mutex.\n\nThe fix consists in adding a new mutex to AudioPolicyEffects class and not\nhold the AudioPolicyService mutex when calling methods in of class.\n\nBug: 17830596.\nChange-Id: Ie61c3671d3147f46e99ba208f39c1a3bf180779f\n"
    },
    {
      "commit": "23fe3c0a05fcb619eeb5b0c2ece02cdadab2df6e",
      "tree": "60a2e248649f12b798353be7b016f4bc6e961505",
      "parents": [
        "acc8918e034e4715319f388f2c214118671aa674"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Fri Oct 03 09:09:30 2014 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Fri Oct 03 16:27:51 2014 -0700"
      },
      "message": "    [AU] Import gain setting into ports\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/183780\n\n    Signed-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n\nChange-Id: I415d0b494b9bfadf783280aeea6ad46e0a242cfb\n"
    },
    {
      "commit": "79e687edb9bd7e2fcc60e06dd779f98c75511045",
      "tree": "d6dc7f22973f89d7eb61a926c6afa825386a176c",
      "parents": [
        "1f4b162e0bee6bcb0c9de464087db286270f5525",
        "327cb70dcbf3a1f1679aeafaaa62d8532abea86d"
      ],
      "author": {
        "name": "Nicholas Sauer",
        "email": "nicksauer@google.com",
        "time": "Wed Oct 01 17:30:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 01 17:30:04 2014 +0000"
      },
      "message": "Merge \"[AU] Update volume setting and Audio Device API 3.0\" into lmp-sprout-dev"
    },
    {
      "commit": "327cb70dcbf3a1f1679aeafaaa62d8532abea86d",
      "tree": "5c82c0c4c0d384add6f2f87fefb7427e1fb7f9a9",
      "parents": [
        "4379c03433e4613c417998ca7917059ef17dc3a9"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Sun Sep 21 09:47:31 2014 +0800"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Tue Sep 30 19:01:22 2014 +0000"
      },
      "message": "[AU] Update volume setting and Audio Device API 3.0\n\n    Signed-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n    Review: https://partner-android-review.git.corp.google.com/#/c/182522\n\nChange-Id: Ida2dfedc6eaa3204354cdc182e0ee13a35472661"
    },
    {
      "commit": "c260784e37dea73a2090d4ccd91472d61d3b6230",
      "tree": "2f6ffba5fe828dc4143db34e7b05b98f27d52567",
      "parents": [
        "dc2e6ddc933e40632e79a866d9ece870db1a975e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 29 09:43:03 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 29 17:40:36 2014 -0700"
      },
      "message": "audio policy: fix HW A/V sync output selection\n\ncommit b732cf5a broke the selection mechanism for the\nHW A/V sync direct output.\nAdd a rule to only select a mixed output for basic PCM\nstereo content when a direct output is not explicitly requested.\n\nBug: 17702382.\n\nChange-Id: I1387690ace77cd4d6a8faf0b525c3d1008fba3f1\n"
    },
    {
      "commit": "a8a4eeb95988e6bb73f7a742c8dd238c1f96c5c4",
      "tree": "5460fb6c8718f868c4138d9d5142ea1ae48f7593",
      "parents": [
        "504de531a08facd130fa00f64fdc00521a975175",
        "b732cf5af93c33fa183769210ce9954521fb68cd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 26 23:34:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 26 23:34:07 2014 +0000"
      },
      "message": "Merge \"audio policy: favor mixed over direct output for PCM format\" into lmp-dev"
    },
    {
      "commit": "b732cf5af93c33fa183769210ce9954521fb68cd",
      "tree": "f7b469e86dbf5fc673937a917a151c0c8daeecfb",
      "parents": [
        "80ec934ae7d4e3a78af87554fdb77a58f6386ba0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 24 19:08:21 2014 -0700"
      },
      "committer": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Fri Sep 26 23:05:10 2014 +0000"
      },
      "message": "audio policy: favor mixed over direct output for PCM format\n\nmodify getOutputForDevice() to skip direct output selection\nif the request can obviously be attached to a mixed output\nThis prevents from selecting a direct output profile that\ncan manage stereo PCM format if a mixer output is available\nto reach the same device.\n\nBug: 17628413.\nChange-Id: I02e9a0b02c9ae5f44ff5768ac4ed02ce84d521c5\n"
    },
    {
      "commit": "bb6c9a05840d924b502ce0f1868fca4881ada1ed",
      "tree": "aec6d28b7ab31fec27416c6e853c94c2eedfcd9b",
      "parents": [
        "a935c76f96b066941b34f81c42b3fe9d00db98c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 14:11:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 16:44:07 2014 -0700"
      },
      "message": "audio: fix stream type for accessibility usage\n\nMake sure that accessibility prompts are heard when\na ringtone is active by forcing stream type\nto AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE.\n\nBug: 17558149.\nChange-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628\n"
    },
    {
      "commit": "5dbe47139713292bf45bbf4f1a7af0835a5ff368",
      "tree": "5d87cfe65614e4f10adabc0dad3e9f1a3ff64673",
      "parents": [
        "b0ed4e3e482cbdc2fa6c7853526597f4ae3f0972"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 19 19:04:57 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 19 19:04:57 2014 -0700"
      },
      "message": "audio policy: add hw hotword flag for inputs\n\nAudio input profiles can indicate flag AUDIO_INPUT_FLAG_HW_HOTWORD\nmeaning they allow capture from the same source as HW hotword\ndetection.\n\nWhen a client requests capture with this flag, the policy will\ntry to find an input profile matching this request first and\nfallback to a regular input if not found.\n\nBug: 17575019.\nChange-Id: Ia463211597d7fa363527d776389f2257f0ced9a2\n"
    },
    {
      "commit": "d78f153a21868d870b14169a6928d991e4b82e73",
      "tree": "6740ad0e8681294c3c1d5e01e6c74715769c8998",
      "parents": [
        "086c1e3f41a92aa0025a1da1db5dabbfdffaf129"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 16 16:38:20 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 16 17:03:03 2014 -0700"
      },
      "message": "audio policy: fix attached devices validation\n\nConsider all supported devices in an io profile and\nnot only the first one when looking for a match with attached\ndevices.\nFailing to do so would cause the device validation to fail\nif supported devices are not declared in a specific order\nin the io profile descriptor in audio_policy.conf\n\nBug: 17532764.\nChange-Id: Id27c9192e21de7f075076e17eb8c48e7e42847f6\n"
    },
    {
      "commit": "966095ea014bc0f6ae9f523ee7f37f2fed2faeb5",
      "tree": "c8dc3ceb36773b287242ee9e9b16734542aa7e64",
      "parents": [
        "de7e2ae67f198b3dcc861b0908ca099db10dab6f"
      ],
      "author": {
        "name": "Jon Eklund",
        "email": "jeklund@motorola.com",
        "time": "Tue Sep 09 15:39:49 2014 -0500"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 19:31:59 2014 -0700"
      },
      "message": "audio policy: fix relative priorities of PHONE and ENFORCED_AUDIBLE\n\nENFORCED_AUDIBLE should only be highest priority if system tones\nare being forced.  Otherwise it should behave like SONIFICATION.\n\nBug: 17474485.\n\nChange-Id: Ia651779870d51100cc3179c96fa09694bc691ba7\n"
    },
    {
      "commit": "58f8eb7ae0ee400585bce6682a7212575115e758",
      "tree": "0ae4991790b2292ba84f05085cdfa2db0a9f3761",
      "parents": [
        "7c12b0358b6d3b66e231fe4a67bb55f424b3857e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 16:19:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 16:22:00 2014 -0700"
      },
      "message": "audio policy: fix check in creaateAudioPatch()\n\nBug: 17488759.\nChange-Id: I9dd2c3ca7f83de4b3573f4fb0e9934e1bc37c3bc\n"
    },
    {
      "commit": "11c9fb1f90cc786485a53aeb1d31ec1ad1dbf840",
      "tree": "fbd0fb098133f66a3ce0e51947d8964bc9699104",
      "parents": [
        "4bcbb07be57947ea1421519094f73577b1e263e6"
      ],
      "author": {
        "name": "Jon Eklund",
        "email": "jeklund@motorola.com",
        "time": "Mon Jun 23 14:47:03 2014 -0500"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 10 15:53:59 2014 -0700"
      },
      "message": "AudioPolicyManager: Use \"safe\" speaker for notifications if available\n\nOn particularly loud devices, unexpected audio bursts can be harmful.\nFor longer audio events, the conventional mitigation strategy is to\nsomehow soft-start (ramp) the loudspeaker volume, but this strategy\ncan severely impact the audibility of short audio events.\n\nUse of the \"safe\" speaker path hints to AudioHAL to immediately output\nat best allowable level for transient audio events.\n\nSPEAKER_SAFE is aliased to SPEAKER for purposes of volume control.\n\nBug: 17319721\nChange-Id: I75187c23f3d1f18e9f638c5d14e7b0bf805a67bc\n"
    },
    {
      "commit": "8838a3895c365d443ee22e169ccf45956780c081",
      "tree": "6f8d8de1cd91a541e67102078b7fe2f1c303009f",
      "parents": [
        "2e97b01cecec65e690ac7da5df9433c52ff75bd8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 08 16:44:28 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 08 16:44:28 2014 -0700"
      },
      "message": "audio policy: fix output stream selection\n\nMake sure that all outputs considered by selectOutput()\nwhen called from AudioPolicyManager::getOutputForDevice()\nsupport the requested audio format.\n\nBug: 17340382.\nChange-Id: I76520ce60e9a8fe4d2d23125d6143bb016522754\n"
    },
    {
      "commit": "2e97b01cecec65e690ac7da5df9433c52ff75bd8",
      "tree": "360368ac998f1df1d588ec153aa090016e699b1d",
      "parents": [
        "835ae86b49da5e15a501cb12c25458f8b63e38be",
        "828bcffa0d5f73461c6c1ba4ef6d3da704c27b7e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 08 15:37:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 08 15:37:46 2014 +0000"
      },
      "message": "Merge \"audiopolicy: fix direct output profile probing\" into lmp-dev"
    },
    {
      "commit": "828bcffa0d5f73461c6c1ba4ef6d3da704c27b7e",
      "tree": "a696fddc14a1355bd6b16345457b02a62176f552",
      "parents": [
        "2adb3f32d152c567a3538a709c47d9bd6cf05bc4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Sep 07 12:26:06 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Sep 07 23:15:40 2014 +0000"
      },
      "message": "audiopolicy: fix direct output profile probing\n\nDo not select maximum sampling rate and channel count\nwhen opening a direct output for the first time\nto make sure that the combination of sampling rate\nand channel count is supported by the connected sink.\n\nBug: 17047809.\nChange-Id: I077a3c1436158378f2762343469ceb39fab9775e"
    },
    {
      "commit": "cb16968f593e4d58857c693c8ec6f2d2337f5512",
      "tree": "7f0b246c9fc3ff951fa4943e4d586ff628c0f384",
      "parents": [
        "ea477effb909089401f6d1ec40fd495757d75021",
        "a1f9917243caafd1da5fa743c6fda1d0614ed167"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Sat Sep 06 02:58:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 06 02:58:40 2014 +0000"
      },
      "message": "Merge \"Fix \"invalid device combination\" in system audio mode.\" into lmp-dev"
    },
    {
      "commit": "e45b48aba115f4daf4a4aad31b6a95df9b79f463",
      "tree": "f261d0a3777adba4f70d8f41168ef25b708cb39c",
      "parents": [
        "b72726bad6c9253c26c82fea76bdf99e18b8ba6d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 04 16:40:57 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 05 16:35:54 2014 +0000"
      },
      "message": "audio policy service: filter out delayed audio patch commands if needed.\n\nAs for set parameters commands, create or release audio patch commands\nmodifying the same patch handle should be filtered by the audio policy service\ncommand thread so that an immediate command is not overridden by\na pending delayed command.\n\nBug: 17379728.\n\nChange-Id: I6aa4652b4bfec59eebd3c3cb7d1d9ac1bc1d6e49"
    },
    {
      "commit": "a1f9917243caafd1da5fa743c6fda1d0614ed167",
      "tree": "5ffd1f439162dab1f76b6b1bb51b03aa8f3901a8",
      "parents": [
        "6a548e9114c4a283a6e08a2d35540f8549f44b82"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Fri Sep 05 21:25:48 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Fri Sep 05 21:25:48 2014 +0900"
      },
      "message": "Fix \"invalid device combination\" in system audio mode.\n\nHDMI-CEC system audio mode removes speaker from output\nlist. It also has multiple outputs by connected outputs.\nHowever, getDeviceForVolume() doesn\u0027t cover multiple\noutput with no speaker or bluetooth case.\nThis change picks one of system audio outputs in order.\n\nBug: 17400026\nChange-Id: I102fd0052c9c4c9543f9e8f3b16ec6815d7485d8\n"
    },
    {
      "commit": "9a63396f70880772e551e1e4c38f27c635612083",
      "tree": "06cb1bc892ad47fc1219594b6b9fb179a048676d",
      "parents": [
        "7fa4207870344d6773b077d13e08267986801f18",
        "1c9c2cc4b170b79a83433749808e286eb0fcc449"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 29 18:29:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 29 18:29:37 2014 +0000"
      },
      "message": "Merge \"audio policy: fix input source passed to openInput()\" into lmp-dev"
    },
    {
      "commit": "1c9c2cc4b170b79a83433749808e286eb0fcc449",
      "tree": "806b0c03d38c4d68c1571e2bf6def83431957fc9",
      "parents": [
        "890a5637b3e3eb197fd2c7f5deec816c7feb13fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 19:37:25 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 19:37:25 2014 -0700"
      },
      "message": "audio policy: fix input source passed to openInput()\n\nThe input source passed to openInput() must be\nmodified from HOTWORD to VOICE_RECOGNITION if the capture does not\ncorrespond to a sound trigger session.\n\nBug: 16731718.\nChange-Id: I48aa4180e75dd5335cd096b48da1c15f2236e6ed\n"
    },
    {
      "commit": "f5e7e79bf88b0c08c73262e7992634797a4f81a1",
      "tree": "df685f1dfae541ef19ab8551372b3c67c420ac7f",
      "parents": [
        "890a5637b3e3eb197fd2c7f5deec816c7feb13fc"
      ],
      "author": {
        "name": "bryant_liu",
        "email": "bryant_liu@htc.com",
        "time": "Tue Aug 19 20:07:05 2014 +0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Thu Aug 28 18:13:57 2014 -0700"
      },
      "message": "audiopolicy: Indicate output device change to all input threads for pre-processing\n\nBug: 17129715\n\nChange-Id: I1fd938cce0b85241c80ea00f3d013a98948d3975\n"
    },
    {
      "commit": "890a5637b3e3eb197fd2c7f5deec816c7feb13fc",
      "tree": "71a722cfba64b26c6f4d09b0e353986928d12d3d",
      "parents": [
        "8b250cb67d0cab6234c0e8e0e21342d03c1eca5d"
      ],
      "author": {
        "name": "bryant_liu",
        "email": "bryant_liu@htc.com",
        "time": "Wed Aug 20 18:06:13 2014 +0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Thu Aug 28 17:45:55 2014 -0700"
      },
      "message": "frameworks: av: AudioPolicyEffect: Add refCount for each session\n\nAudio framework stops and restarts AudioTracks on same audio session.\nSometimes the AudioTrack start() comes before a stop(). As effects\nare linked to the session, they should only be created on the last\nstop() related to that session.\n\nBug: 17201117\n\nChange-Id: I19343e293d6b7b6b794fe05ebd0dd239ed3b075c\n"
    },
    {
      "commit": "8962e08c4989368d2c821b64f42632b6f5fb016e",
      "tree": "75860946cf504bbc07193f1000799025aaa07dfe",
      "parents": [
        "47f64f2ed14839a00b3b148d490dc0394282eb54",
        "5c477aa6205e2ebafec237411900d89a510cc105"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Aug 28 20:44:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 20:44:57 2014 +0000"
      },
      "message": "Merge \"Fix audio dropouts with multiple playback streams.\" into lmp-dev"
    },
    {
      "commit": "47f64f2ed14839a00b3b148d490dc0394282eb54",
      "tree": "d3112e02518a611d7e9e421c49848ca319fa73cf",
      "parents": [
        "01b9256a1358110ed718c1a83c2a1808d4afbb92",
        "05b90f833337ab5f7b16509e5f1d339a04eb5bf6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 15:32:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 15:32:54 2014 +0000"
      },
      "message": "Merge \"audio policy: remove audio patch when closing input or output\" into lmp-dev"
    },
    {
      "commit": "05b90f833337ab5f7b16509e5f1d339a04eb5bf6",
      "tree": "d78fd01541fe617b2ef1753dade9955463d5f006",
      "parents": [
        "9dd4a2ddd7caf8cbe50d8a76e0ec3e0274d2bce6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 27 15:32:29 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 27 18:17:08 2014 -0700"
      },
      "message": "audio policy: remove audio patch when closing input or output\n\nMake sure that an audio patch having an output as source or input as sink\nis removed when this input or output is closed.\n\nBug: 17303725.\n\nChange-Id: I234d54a25ce0b579eeeafdcfda3a0594f048768c\n"
    },
    {
      "commit": "5c477aa6205e2ebafec237411900d89a510cc105",
      "tree": "b62a1e44d2296d2f0a1e6aefe90e4c04722cca59",
      "parents": [
        "1754351d9199721e7e7943461689e399ef015260"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Aug 20 16:47:57 2014 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Aug 27 16:38:27 2014 -0700"
      },
      "message": "Fix audio dropouts with multiple playback streams.\n\nBug 17136569\n\nChange-Id: I7f69cb24168c7d27ce28679735f53c1ece4014c1\n"
    },
    {
      "commit": "961ec21a5878517ce6db27bad8da269637c45a44",
      "tree": "73d1f567c2d82197186f9f11141d4767040a405f",
      "parents": [
        "d42173a44721af1a600b9c8599bc736394fcc724"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Aug 25 15:58:39 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 26 16:07:45 2014 -0700"
      },
      "message": "Fix memory leak in getConnectionState\n\nTurns out having an sp\u003c\u003e point at the containing object doesn\u0027t really\nwork so well.\n\nBug: 17210991\nChange-Id: I4bcb0c38adffc574d661f0772583357868f6c5b4\n"
    },
    {
      "commit": "47bf8d8f0242bbe9cfa777c96e41e5fcd5294ee4",
      "tree": "0f792b2461a42d2e166de7b68e3df0a1e36fe54c",
      "parents": [
        "e6e18e8de729316b3fac7733f9ebc7f1b3feba95",
        "4d41695d45e2c7211899afa94b20e32120b2b7e0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Aug 13 16:04:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 13 01:30:28 2014 +0000"
      },
      "message": "Merge \"audiopolicy: add dump for audio patches\" into lmp-dev"
    },
    {
      "commit": "edf103987d71f09dc2acb0a971cb40ff6608f1a5",
      "tree": "94e22d3b8a0ea060abe33016bb14cb896ca17636",
      "parents": [
        "2dfe8ea7c131a045067c123efc934ef6ccdb8821",
        "f17026dfef596cf1c8008fda20f1f2ad23a3df3a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Aug 11 17:22:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 11 17:09:02 2014 +0000"
      },
      "message": "Merge \"Update audio ports with profile capabilities\" into lmp-dev"
    },
    {
      "commit": "f17026dfef596cf1c8008fda20f1f2ad23a3df3a",
      "tree": "b11728521202f20039b7b34e11aa66d979e871ff",
      "parents": [
        "317bb9163befccd87348c11bdfc0044e629b362b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Aug 10 14:30:48 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Aug 10 15:46:24 2014 -0700"
      },
      "message": "Update audio ports with profile capabilities\n\nWhen opening an output, import the profile capabilities associated\n  with the device into the AudioPort.\n\nBug 10549017\n\nChange-Id: If102f5623457542d2c1407ada303c71e43d19a08\n"
    },
    {
      "commit": "4d41695d45e2c7211899afa94b20e32120b2b7e0",
      "tree": "8a8d01388796c4371921039e6ea0ee78ad97f8ec",
      "parents": [
        "2dfe8ea7c131a045067c123efc934ef6ccdb8821"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Aug 10 14:07:09 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Aug 10 14:07:09 2014 -0700"
      },
      "message": "audiopolicy: add dump for audio patches\n\nBug: 10549017.\nChange-Id: I896c8e16c8cf7490bab75295903620a76236f571\n"
    }
  ],
  "next": "874c4287a4e49c59ac88767751dce00fcd3edb73"
}
