)]}'
{
  "log": [
    {
      "commit": "bc167f832db091e490b552a147ec73412241e1e5",
      "tree": "86972791c54bc87fe26cab132734a24971c8f0c8",
      "parents": [
        "bfadec126c43cff30aa8445d8d42265c39a03ad5",
        "84fb58bdf6bfb5bf362c0e1cc6a5bad41e8554f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 18:27:54 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 18:27:54 2015 -0700"
      },
      "message": "resolved conflicts for merge of 84fb58bd to lmp-mr1-dev\n\nChange-Id: I9b2b1ff690d35e0da644bdb52c8c42a72e5fd4f6\n"
    },
    {
      "commit": "84fb58bdf6bfb5bf362c0e1cc6a5bad41e8554f5",
      "tree": "d86313cb7e53e112ce872189cec811c7aec89e3b",
      "parents": [
        "25c00122a640ee311e6e72df401c362ec798617d",
        "bdb5e49787dcb56fec68a2410a0985bfe388cd14"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 21:52:31 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 21:52:31 2015 +0000"
      },
      "message": "am bdb5e497: Merge \"DO NOT MERGE - audio flinger: fix fuzz test crash\" into lmp-dev\n\n* commit \u0027bdb5e49787dcb56fec68a2410a0985bfe388cd14\u0027:\n  DO NOT MERGE - audio flinger: fix fuzz test crash\n"
    },
    {
      "commit": "b97ee930e4f7ed1587b869c92b4aa1dc90b641cc",
      "tree": "b4917494c7a99ff9d4ed9552d2a5f205931593ca",
      "parents": [
        "65842db06c2d77e53cc5ac61692160d844cc7d0a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 10:50:03 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 11:25:37 2015 -0700"
      },
      "message": "DO NOT MERGE - audio flinger: fix fuzz test crash\n\nClear output stream pointer in duplicating thread\nwhen the main output to which it is attached is closed.\n\nAlso do not forward master mute and volume commands to\nduplicating threads as this is not applicable.\n\nAlso fix logic in AudioFlinger::primaryPlaybackThread_l()\nthat could accidentally return a duplicating thread.\nThis never happens because the primary thread is always\nfirst in the list.\n\nBug: 20731946.\nChange-Id: Ic8869699836920351b23d09544c50a258d3fb585\n(cherry picked from commit f6870aefc5e31d4220f3778c4e79ff34a61f48ad)\n"
    },
    {
      "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": "0c4e56d0baaa19fcf17234b38d634b7281e2ae37",
      "tree": "54ee27c5dece90449af6924cc787af655346b201",
      "parents": [
        "7ccc6b9baf2f568a0a8c6e27dcd4195645a6361d"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Jan 09 15:21:27 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 20 13:40:53 2015 -0800"
      },
      "message": "Camera: make sure jpeg buffer size isn\u0027t too small\n\nAssuming the jpeg header can take up to 256KB, make sure we always\nallocate enough size for the image data.\n\nBug: 18962703\nChange-Id: I08eb3d198d12f71f3ab7266324e80fe7410bdc89\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": "610255e8f2d02cb3513695eacf1c37d66b3553d6",
      "tree": "de334953c45a0c9f692a83d3ac97b33cd6ffae1d",
      "parents": [
        "8140a2b7ef0650e8cce6be16efcbfce56d0ed1e4",
        "0f7b5f2b231caf87da9b20b74d086e5a9d6f4a9d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 15:47:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 15:47:54 2015 +0000"
      },
      "message": "Merge \"audioflinger: pause HW A/V sync output when AudioTrack underruns\" into lmp-mr1-dev"
    },
    {
      "commit": "7ae3dfabb40d061aa613b255cba65ee35567f323",
      "tree": "cb68266686a4fb4d6bc15eef8fa9247a6ccd5de4",
      "parents": [
        "aee1c89f3d1868e77208bc64f9f1b2fc5c4a3514",
        "c447ded04f11169e9b96b31cd196b2c4ffa9f31c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 00:05:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 00:05:26 2015 +0000"
      },
      "message": "Merge \"fix record from default input source\" into lmp-mr1-dev"
    },
    {
      "commit": "aee1c89f3d1868e77208bc64f9f1b2fc5c4a3514",
      "tree": "9ef5f83a7a1072e1450c0d7a1ad12a00beea254d",
      "parents": [
        "ea7fba9abadcc3aae9c9b71bf67f2dd657c5b5dd",
        "e443ffac2a09b69470c4663ee031a527c53738d9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 23:12:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 06 23:12:07 2015 +0000"
      },
      "message": "Merge \"DO NOT MERGE - fix memory leak in PatchPanel\" into lmp-mr1-dev"
    },
    {
      "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": "e443ffac2a09b69470c4663ee031a527c53738d9",
      "tree": "7db596e90207472c7ff018f4778d16de8c806e62",
      "parents": [
        "0d19abb440c7e62e944efbeadf02299990f9a589"
      ],
      "author": {
        "name": "soon1.choi",
        "email": "soon1.choi@lge.com",
        "time": "Mon Jan 05 14:27:42 2015 +0900"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 05 15:34:15 2015 -0800"
      },
      "message": "DO NOT MERGE - fix memory leak in PatchPanel\n\nBefore the audio patch is created, audio patch with same handle is\nremoved from vector for patches. At this time, Patch allocated in the\nheap is not freed. This causes memory leaks in the mediaserver.\n\nBug: 18904322.\n\nChange-Id: Id0d28c36a7e7fbf473753bf4ead7518f28c1b998\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": "0f7b5f2b231caf87da9b20b74d086e5a9d6f4a9d",
      "tree": "f6f15345f054cdc13116a1443b80454e256b7c71",
      "parents": [
        "e48cf5b8f823c30af93577c1e380d752ac69b871"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 10:43:21 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 16:41:52 2014 -0800"
      },
      "message": "audioflinger: pause HW A/V sync output when AudioTrack underruns\n\nDo not standby, starve or feed 0s to the audio HAL on direct\noutput using HW A/V sync mode.\n\nBug: 17883772.\n\nChange-Id: I11e6c97ec24360d75f9b602814d40a54b60cb7a7\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": "145cf5d885c238b690ab8240137934327b85c427",
      "tree": "f9e3e2f23e92f7ba7c98f0f09a9a4cfb6b40cd47",
      "parents": [
        "71b52b5bb3be81bffa320241ca486fbf964d743e",
        "d1f69b0b17acbd96987ecb2f3378abd394d05903"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 17 17:55:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 17:55:26 2014 +0000"
      },
      "message": "Merge \"audioflinger: implement pause/resume for direct outputs\" into lmp-mr1-dev"
    },
    {
      "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": "d1f69b0b17acbd96987ecb2f3378abd394d05903",
      "tree": "e3061c609dfaa2c217bb79a8d85e4571e8bd0d3d",
      "parents": [
        "8ddb02230d02968d471aa41b22433957c38827c0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 15 14:33:13 2014 -0800"
      },
      "committer": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Tue Dec 16 01:38:34 2014 +0000"
      },
      "message": "audioflinger: implement pause/resume for direct outputs\n\nExtend pause/resume support to direct output threads\n(was only for offload threads).\n\nIf the HAL implements pause/resume, track pause/resume is forwarded to\nthe HAL.\n\nPause, flush, resume sequence is respected by executing the HAL\ncalls in the playback thread (same as offload).\n\nMake sure the track flags on client side are consistent with the\nflags on server side.\n\nBug: 17883772.\nChange-Id: I89b360d69818f7a9204bd36e3ec63a79e106ecf1\n"
    },
    {
      "commit": "2cec0dfa9f97b87733b8b250b49729fc6bb3a60a",
      "tree": "32dc6deae539198198775b871dec33a5b7d65902",
      "parents": [
        "8ddb02230d02968d471aa41b22433957c38827c0"
      ],
      "author": {
        "name": "Ruchit Sharma",
        "email": "ruchits@nvidia.com",
        "time": "Wed Aug 20 16:02:08 2014 -0400"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Dec 15 11:54:41 2014 -0800"
      },
      "message": "Camera2Client: flush requests in stopPreviewL\n\nRequests queued in the pipeline have little meaning after the app\ncalls stopPreview(). Flushing will help improve the switch KPI.\n\nbug 17340914\n\nChange-Id: I899d69aa3b0fd41f028760290a81013297712fed\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": "8cffa91a76d3fa4c96268fc40fc8722a0d33dc8d",
      "tree": "03613c8ef0812c8c9bc4f5d5acc482f95dc24143",
      "parents": [
        "a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5",
        "c722f30eef03e77054395ae122470cf8dba93937"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 11 16:40:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 11 16:40:37 2014 +0000"
      },
      "message": "Merge \"audio policy: suppport for dynamic source\" into lmp-mr1-dev"
    },
    {
      "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": "94a92c69af528edf6ec17d7978a0c3bb6ab51e63",
      "tree": "409f45229ea21089bdfb2aadd131288383581b07",
      "parents": [
        "f484952edd94c1b7ee82d7b108edc1ce08671cc4",
        "99adee3c3d9cde6819741a38163954808fea270a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 11 01:59:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 11 01:59:40 2014 +0000"
      },
      "message": "Merge \"[audio][audioflinger] Consume all frames when a DirectThread is done.\" into lmp-mr1-dev"
    },
    {
      "commit": "99adee3c3d9cde6819741a38163954808fea270a",
      "tree": "b877a4a43bd36864d8109a42ecdc6b337e6838d1",
      "parents": [
        "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 10 16:46:30 2014 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 10 17:00:18 2014 -0800"
      },
      "message": "[audio][audioflinger] Consume all frames when a DirectThread is done.\n\nThis bug was causing movies to think there was still data left to play so they never finished.\n\nBug: 18360054\nChange-Id: If7aee81d62b7af8532abd14579677848a06fe2b1\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\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": "1487d270e86845e93a9abd1af020b45d6799b257",
      "tree": "c3b2799ea3c9dde23cad788ef2be4be661d5dde9",
      "parents": [
        "2dda40d638138c426cf4a66ddd0da8794c87f5c7",
        "baac183f3808d7b68f184647a97bd381620415fe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 10 01:32:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 10 01:32:53 2014 +0000"
      },
      "message": "Merge \"audio policy: binder calls for dynamic audio policy mixes\" into lmp-mr1-dev"
    },
    {
      "commit": "2dda40d638138c426cf4a66ddd0da8794c87f5c7",
      "tree": "fde01dcd3d550a8b1b34d2a264ab8bd912064852",
      "parents": [
        "9cea7aa494f6f93a473cab936af79868fc8efea6",
        "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 10 01:32:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 10 01:32:43 2014 +0000"
      },
      "message": "Merge \"audio policy: add support for custom mixes\" into lmp-mr1-dev"
    },
    {
      "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": "9cea7aa494f6f93a473cab936af79868fc8efea6",
      "tree": "5fe4dffd3b11240e9e786ee7a2aeca33c9aae7fc",
      "parents": [
        "6533dc1c576af241c9c1753f29d6777802d4c496",
        "43e69a6792f01b86b4aaf2314534f637e11c5843"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Dec 09 23:10:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 09 23:10:28 2014 +0000"
      },
      "message": "Merge \"Camera3Device: support shutter after result\" into lmp-mr1-dev"
    },
    {
      "commit": "6533dc1c576af241c9c1753f29d6777802d4c496",
      "tree": "b3ed0bbd725f504413a658e8c26ff4a25d52d8d4",
      "parents": [
        "f6a364ed92945bf8a39dbadddb674c3f2e3b7d53",
        "bba75576c3bc5a90cd8e14bd053ab2d74a6c7e9d"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Dec 09 23:09:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 09 23:09:34 2014 +0000"
      },
      "message": "Merge \"Camera2: Round unsupported surface sizes in configure.\" into lmp-mr1-dev"
    },
    {
      "commit": "43e69a6792f01b86b4aaf2314534f637e11c5843",
      "tree": "7478eaca83d995977d5b691eedbe0eac3ee0aff8",
      "parents": [
        "f6a364ed92945bf8a39dbadddb674c3f2e3b7d53"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Nov 25 16:38:33 2014 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Dec 09 13:18:21 2014 -0800"
      },
      "message": "Camera3Device: support shutter after result\n\nMove the code to remove in-flight requests from processCaptureResult\nto a separate function so it can be called when the framework\nreceives a result or a shutter event. An in-flight request will only\nbe removed when both results and the shutter event arrive in the\ncase of a successful request.\n\nAlso send out results only after the shutter event receives.\n\nBug: 18135776\nChange-Id: I340db1a495c711b0913784d43fd0f144871e4420\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": "bba75576c3bc5a90cd8e14bd053ab2d74a6c7e9d",
      "tree": "c210ab590315731ca591d1bb211de72ced864cf1",
      "parents": [
        "18899808001ddaea13fa4c5277502c96351f69a5"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Nov 20 17:29:50 2014 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Dec 05 15:54:50 2014 -0800"
      },
      "message": "Camera2: Round unsupported surface sizes in configure.\n\nBug: 16030677\nChange-Id: Ida04e04f41983b9126609522dd12064a7bf9645f\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": "597ce69a77636eab073fc83ded01e8af51e887e2",
      "tree": "ea54cadd615f86ced040e3fff06f6a8f9e8637a5",
      "parents": [
        "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183",
        "af2645a679a61c8e8199d43d29b8b5ead5723b25"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Dec 05 20:54:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 20:54:12 2014 +0000"
      },
      "message": "Merge \"Camera: Add support for SCENE_MODE_HDR for newer HALs\" into lmp-mr1-dev"
    },
    {
      "commit": "af2645a679a61c8e8199d43d29b8b5ead5723b25",
      "tree": "e40230f2b33a9cb44f204b98c42465dc68a70244",
      "parents": [
        "d6e7f1e1f8b1dfa6a87c7c0b1a5c68d435096b01"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Dec 05 11:23:55 2014 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Dec 05 11:42:43 2014 -0800"
      },
      "message": "Camera: Add support for SCENE_MODE_HDR for newer HALs\n\nBug: 18640480\nChange-Id: I7b772d10b2bd136c78395fd2816114b27bb48d00\n"
    },
    {
      "commit": "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183",
      "tree": "ff39be5d77cd87e41e8ec611e7a66057c2e23e4a",
      "parents": [
        "d6e7f1e1f8b1dfa6a87c7c0b1a5c68d435096b01"
      ],
      "author": {
        "name": "Ruchit Sharma",
        "email": "ruchits@nvidia.com",
        "time": "Tue Nov 04 12:17:27 2014 -0500"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Dec 05 17:37:22 2014 +0000"
      },
      "message": "camera: fix logging in ZslProcessor to avoid spam\n\nAF state mismatch while selecting ZSL candidate should not be treated\nas a warning. This results into undesriable spam in the logs.\n\nALso, using ALOGVV is consistent with how AE state mismatch is handled\nin ZslProcessor3.cpp\n\nBug: 18634318\nChange-Id: Ia9d7f2bb98f784990b1a6f923983c35f622c3791"
    },
    {
      "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": "db995fe3239276be9dfd9e446b10417e07948acc",
      "tree": "ded3c6a20c5f3395dfc680951754df7625d95675",
      "parents": [
        "8790740d6bb1546dee6c87270976415503283820",
        "9a1c8892f6835325db6931529dc74bf98cf0aee8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 05 02:38:41 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 02:38:42 2014 +0000"
      },
      "message": "Merge \"Fix getTimestamp if offload thread is not initialized.\" into lmp-mr1-dev"
    },
    {
      "commit": "36d15776c37a6512d452628673e6286f8d9cf89c",
      "tree": "6524422fc3b4c8db62f9fa69ae0f650d779dda08",
      "parents": [
        "98356ada9146e8630821b760b161cbd9993f1228"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 15:46:45 2014 -0700"
      },
      "committer": {
        "name": "Joe LaPenna",
        "email": "jlapenna@google.com",
        "time": "Thu Dec 04 01:55:46 2014 +0000"
      },
      "message": "audio policy: validate stream type received from binder calls.\n\nBug: 18001784.\nBug: 18002005.\nChange-Id: I8efa674dceff5a6e10251b1c7a55e9bb2d532395\n(cherry picked from commit dea1541fc0042abf05674b19c2f94ca086945dfd)\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": "9a1c8892f6835325db6931529dc74bf98cf0aee8",
      "tree": "8b6d6b4dcaf964cf16c68bdc5080239126d2caac",
      "parents": [
        "ab05b4ccb8ea59079d7f773aa0e090029c479bad"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 03 11:37:42 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 03 16:12:35 2014 -0800"
      },
      "message": "Fix getTimestamp if offload thread is not initialized.\n\nReturns INVALID_OPERATION.\n\nBug: 18605649\nChange-Id: I440fb687fbf9249098e049982fa83bcd1515fd80\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": "087eb332cdd64026de27c914194127f8fda1a846",
      "tree": "88ac956fa695022d8b41db578ea77ad74571b5f9",
      "parents": [
        "72bf901ca905ce154fe7866f06d25a01aadcf974",
        "066ceecf4c6ed5ce26c5ddf00d7d9097d560b7a2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 00:41:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 26 00:41:20 2014 +0000"
      },
      "message": "Merge \"audio policy: do not route accessibility prompts to compressed output\" into lmp-mr1-dev"
    },
    {
      "commit": "72bf901ca905ce154fe7866f06d25a01aadcf974",
      "tree": "0293ab3f6cdbec518913187d77c6d13d1c47a321",
      "parents": [
        "d325005e4a3be45c57e950f8c18b329c968602ce",
        "e83b55dc29ca16092ba02f36f55fa6e0e37fd78c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 00:21:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 26 00:21:20 2014 +0000"
      },
      "message": "Merge \"audio policy: new getOutputForAttr() prototype.\" into lmp-mr1-dev"
    },
    {
      "commit": "512dd849d0ef9e9988fedfbaf951b4b82523957c",
      "tree": "00235660c86a2494c245b51084ea13cbc51e11d0",
      "parents": [
        "b2cf160fef5071183d52ad85b49892e23b790e8a",
        "31867b30d3144decd42de0214d8b71c45a2c8cc1"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 25 22:41:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 25 22:41:15 2014 +0000"
      },
      "message": "Merge \"camera: fix frame deletion logic in mInFlightMap\" into lmp-mr1-dev"
    },
    {
      "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": "31867b30d3144decd42de0214d8b71c45a2c8cc1",
      "tree": "1b08391b48c58e42a1d4a60a39b3d2af9ba3b30e",
      "parents": [
        "bc0f452b9a76dd8c8244e775bc9c5aa85cae3ddf"
      ],
      "author": {
        "name": "Ruchit Sharma",
        "email": "ruchits@nvidia.com",
        "time": "Fri Nov 14 13:18:16 2014 -0500"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 25 01:47:05 2014 +0000"
      },
      "message": "camera: fix frame deletion logic in mInFlightMap\n\nFor per-frame error notifications, camera3.h requirements state that all the\nbuffer handles for a failed frame capture must be returned via\nprocess_capture_result() call(s). Hence, Camera3Device needs to ensure that\nthe frame entry is not deleted from mInFlightMap until all buffers for that\nframe have been returned by HAL.\n\nBug: 17757940\n\nChange-Id: I2579ca7980d2fd67d53abc530e2706538f7d3d3a"
    },
    {
      "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": "bc0f452b9a76dd8c8244e775bc9c5aa85cae3ddf",
      "tree": "a061c36a4392000a1d7d5a9b4db5de0ec63e644f",
      "parents": [
        "3a8d7d1064a665a8a348710c7d27b31642f7f624",
        "5fc9d902510ccd04db80e0bc6aa679a4317a51b2"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Nov 21 17:43:56 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 21 17:43:57 2014 +0000"
      },
      "message": "Merge \"Camera2: Fix CameraParameters parse segfault.\" into lmp-mr1-dev"
    },
    {
      "commit": "8052d933822e51dec3b096cb5fc8a9fbdc076bdc",
      "tree": "77a908537a54a717aed896a185b0990b9a18ec3a",
      "parents": [
        "f50db74f4efa2f689711bd2e2ff3d88b7426f107",
        "02eb47cf18793effe9fc7ab34e1b0fe9ea6635bc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 23:20:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 20 23:20:54 2014 +0000"
      },
      "message": "Merge \"SoundTrigger: allow sound model reloading\" into lmp-mr1-dev"
    },
    {
      "commit": "02eb47cf18793effe9fc7ab34e1b0fe9ea6635bc",
      "tree": "2e133219ce8c75a56dc19ba73795f7e6dab69370",
      "parents": [
        "ec9459c63d1c2969505ffdc4a100646fd07223bd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 10:10:20 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 14:27:00 2014 -0800"
      },
      "message": "SoundTrigger: allow sound model reloading\n\nAllow reloading a sound model without unloading it before.\n\nBug: 18308781.\nChange-Id: I31c83b81a03ee1c1e80f4339ca62e6d06fb1a33b\n"
    },
    {
      "commit": "5fc9d902510ccd04db80e0bc6aa679a4317a51b2",
      "tree": "7cc5cb5e5b3b62fef7cd5392ab35f81731ec9853",
      "parents": [
        "18899808001ddaea13fa4c5277502c96351f69a5"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Nov 20 13:34:36 2014 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Nov 20 13:34:36 2014 -0800"
      },
      "message": "Camera2: Fix CameraParameters parse segfault.\n\nBug: 18331142\nChange-Id: I41feec93f753f97b3e6bf963deb4a42b73406421\n"
    },
    {
      "commit": "ec0eeafa8a7fd882e8206e9cf8c4c7e1db81857b",
      "tree": "a40aab7cb04a88cc63a45cffa376ec12ce5bc3b9",
      "parents": [
        "ec9459c63d1c2969505ffdc4a100646fd07223bd"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Thu Nov 20 11:32:27 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 20 13:04:15 2014 -0800"
      },
      "message": "Fix format conversion in DuplicatingThread\n\nDuplicatingThread converts PCM data from the format of the source thread\nto PCM_16BIT before writing to all connected output tracks.\nThis needs to be done just once before writing to all tracks.\n\nBug: 18461844\nChange-Id: If05254f87f9198e09a0fa3c4e857afbb53ae7073\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": "03181012beab17e145ca8b9bedbcc08d117df1cb",
      "tree": "3daf671d6fa40318dee8fb5d0ee73eab2fe68ffe",
      "parents": [
        "bbda5ce4782b20f3ed75482e5f73b8d999223438",
        "092d49c26d77fafad5170bf709c2a716ec335855"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Nov 19 18:09:30 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 19 18:09:31 2014 +0000"
      },
      "message": "Merge \"Camera2Client: remove recording stream if necessary\" into lmp-mr1-dev"
    },
    {
      "commit": "092d49c26d77fafad5170bf709c2a716ec335855",
      "tree": "8c5836fee7848f7d63a074e52e5dd5ec57e16f11",
      "parents": [
        "990dad996b748fdaa2041cc6d039e96ccfeae6fb"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Nov 06 15:40:13 2014 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Nov 18 13:46:29 2014 -0800"
      },
      "message": "Camera2Client: remove recording stream if necessary\n\nBug: 17495165\nChange-Id: I11b763fde8f9448f4bddec3fe6c81581e7699edb\n"
    },
    {
      "commit": "8cd37d677f10a7718c9247830652a588ea4600de",
      "tree": "ab4d591b6073e9d021108db68a974e0e4cd4496c",
      "parents": [
        "35b0f7095fac4f2cc112edd4b0298a9cb1ee394f",
        "29e6cecdd8562700ab625c5645ddd6a7753789f1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 18 20:11:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 18 20:11:24 2014 +0000"
      },
      "message": "Merge \"audio policy: do not prevent routing to A2DP when suspended.\" into lmp-mr1-dev"
    },
    {
      "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": "4d0a5985fb5e7ea5a1f9a605afea2b7534ebc16b",
      "tree": "ab6390e2954dba0c3d03188f0fe8420978f13e51",
      "parents": [
        "88ec9e992af75f9783794df5d7be31c3b018ad09",
        "27876c02c21cd3ab7ef01bdd1fc5400c5143584a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 18 02:25:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 18 02:25:19 2014 +0000"
      },
      "message": "Merge \"Prevent stopped audio tracks from mixing data\" into lmp-mr1-dev"
    },
    {
      "commit": "27876c02c21cd3ab7ef01bdd1fc5400c5143584a",
      "tree": "3c096ec71dfdb81fcafe4a68165006f1371fdf5d",
      "parents": [
        "97e6ca1a0be83e420ab238d9a1c31d3112126646"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 09 18:07:55 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 17 18:06:10 2014 -0800"
      },
      "message": "Prevent stopped audio tracks from mixing data\n\nStatic tracks should have zero framesReady when stopping or stopped,\nto prevent mixer from running potentially indefinitely with loop mode.\n\nBug: 16070883\n\nChange-Id: Iab9968044d1a6f8543bbcbfb246f49f27d68cace\n"
    },
    {
      "commit": "f89f2ff4df0855eb56d95a02ab29d856e0ffa858",
      "tree": "20c77336bae74d05d654d17b1eb5ce79fda0ada4",
      "parents": [
        "3171f4e12e5cabb2b496be6aa660aaa83e8fe77d",
        "ddbc6657fa0c55166148ca597980edbaafc418bf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 17 19:57:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 17 19:57:07 2014 +0000"
      },
      "message": "Merge \"audiopolicy: Update input device check in checkInputsForDevice\" into lmp-mr1-dev"
    },
    {
      "commit": "3171f4e12e5cabb2b496be6aa660aaa83e8fe77d",
      "tree": "2a7457d5c3822951d182d4371cd9d62e61e7f9c3",
      "parents": [
        "addfc718ff85115355060d6b07ca67b41a3765c2",
        "5e15b80e801a0110bc1bad1190f02cb9c7d22e37"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Nov 17 18:51:44 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 17 18:51:44 2014 +0000"
      },
      "message": "Merge \"CameraService: normalize face rectangles properly\" into lmp-mr1-dev"
    },
    {
      "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": "5e15b80e801a0110bc1bad1190f02cb9c7d22e37",
      "tree": "3a4bb1ea7edcad06d5a5895f31fa395df4bfdbe2",
      "parents": [
        "745602d87607521f4fe84c4f3a6388fbdb6a867c"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Nov 13 13:41:23 2014 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Nov 13 14:54:57 2014 -0800"
      },
      "message": "CameraService: normalize face rectangles properly\n\nUse android.scaler.cropRegion reported in the capture result to\nnormalize face rectangles instead of using the one in current capture\nrequest.\n\nBug: 11460393\nChange-Id: Id21834bf6ae1f7cc106b4dffb98f9f249a75034b\n"
    },
    {
      "commit": "7c77c75d43ac2a40f2b5ce98085ef68f8ba3b4f2",
      "tree": "dc10409d4e835869e86359b52e9cde2667c7f75a",
      "parents": [
        "538596f71dc667b2f39c27d0bc9bbf119b0e6d58",
        "80de5dca0b8e04f81da0d15dff957f82551eaafc"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Nov 12 20:40:52 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 12 20:40:53 2014 +0000"
      },
      "message": "Merge \"Camera2Device: fix camera metadata leaks\" into lmp-mr1-dev"
    },
    {
      "commit": "80de5dca0b8e04f81da0d15dff957f82551eaafc",
      "tree": "28c0144bbb06dfb2a17920d4c06399447579048f",
      "parents": [
        "9c0c41ff36926030778a8a41210d02602c5a9f62"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Fri Nov 07 17:45:00 2014 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Nov 10 12:28:35 2014 -0800"
      },
      "message": "Camera2Device: fix camera metadata leaks\n\nbug 11132653\n\nChange-Id: I5445b020c3aeaac9a556c023568adac635834356\n"
    },
    {
      "commit": "2dca6f6826c81372e67625024bbe7fa00c02b708",
      "tree": "ceeef428c0e49b6757c9b3f1edaddf5206d19ebc",
      "parents": [
        "10e898cc583473d4c3604456b48e008f90d82f70",
        "995599cbd6ada739c257716a6d8b90eee6d61473"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 17:14:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 17:14:58 2014 +0000"
      },
      "message": "am 995599cb: audioflinger: fix duplicating thread output buffers clear\n\n* commit \u0027995599cbd6ada739c257716a6d8b90eee6d61473\u0027:\n  audioflinger: fix duplicating thread output buffers clear\n"
    },
    {
      "commit": "995599cbd6ada739c257716a6d8b90eee6d61473",
      "tree": "88b7f8beeb6c560f5868e7f254d8b2e097caceea",
      "parents": [
        "9c0c41ff36926030778a8a41210d02602c5a9f62"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 07 17:28:28 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 17:03:11 2014 +0000"
      },
      "message": "audioflinger: fix duplicating thread output buffers clear\n\nAlso clear mix buffer in DuplicatingThread::threadLoop_mix()\ninstead of just sink buffer when output threads are not\nready.\n\nBug: 18262127.\nChange-Id: I4c22bbeaccdcc8d7c10c5882dde3439eb73d6ede\n(cherry picked from commit 02b5708776ba2a9b4ff8c09008483aef7dbe38c7)\n"
    },
    {
      "commit": "02b5708776ba2a9b4ff8c09008483aef7dbe38c7",
      "tree": "4b94a6347b1f33b8a9c0966fac8d37019d818219",
      "parents": [
        "e662cd5cdbe1312d6b74754d2945fffe99e4fe2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 07 17:28:28 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 07 17:28:28 2014 -0800"
      },
      "message": "audioflinger: fix duplicating thread output buffers clear\n\nAlso clear mix buffer in DuplicatingThread::threadLoop_mix()\ninstead of just sink buffer when output threads are not\nready.\n\nBug: 18262127.\nChange-Id: I4c22bbeaccdcc8d7c10c5882dde3439eb73d6ede\n"
    },
    {
      "commit": "1609e451cf6101efe6aeaaa2da61db2cb095c9e8",
      "tree": "f09b7bb9b88d37985ca41e255f4efc8ffa769905",
      "parents": [
        "c339a921642c38621f57e95b4ec41cfaa99c7a63",
        "04f101c35eaa90b1f95939afac30674ec1611e6f"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Fri Nov 07 19:44:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 19:44:30 2014 +0000"
      },
      "message": "Merge \"Add a BufferItem parameter to onFrameAvailable\" into lmp-mr1-dev"
    },
    {
      "commit": "04f101c35eaa90b1f95939afac30674ec1611e6f",
      "tree": "638649883fdc1e7329b9334b5a1a7461b7421942",
      "parents": [
        "151b3f41ffcdf187580542ba0c0d3b84df16beed"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Tue Nov 04 11:32:52 2014 -0800"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Tue Nov 04 11:32:52 2014 -0800"
      },
      "message": "Add a BufferItem parameter to onFrameAvailable\n\nPasses the BufferItem for the queued buffer to the onFrameAvailable\ncallback so the consumer can track the BufferQueue\u0027s contents.\n\nBug: 18111837\nChange-Id: If9d07229c9b586c668e5f99074e9b63b0468feb0\n"
    },
    {
      "commit": "ed1e55c5276a1c031e9b2f016387c7d2fe7bc47f",
      "tree": "daa44e7941703765a4d37c0207df8e12959b66c8",
      "parents": [
        "461b02d3eccefea48fa15c67a9cd3a5895bd2765",
        "b10352f4bc11ae6f3d93e464074709555ecf9e06"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 04 02:37:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 04 02:37:03 2014 +0000"
      },
      "message": "Merge \"remove some restrictions on effect output channels\" into lmp-mr1-dev"
    },
    {
      "commit": "b10352f4bc11ae6f3d93e464074709555ecf9e06",
      "tree": "52187ad264691c11e3d1efc541fe791568a33d69",
      "parents": [
        "b1322c78b035c9f47ebe57a39799d7a0e13bf57f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 03 16:25:39 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 03 16:25:39 2014 -0800"
      },
      "message": "remove some restrictions on effect output channels\n\nDo not prevent from attaching effects to a non stereo\noutput thread, unless the output thread is a mixer thread.\n\nBug: 18157592.\nChange-Id: I6ac3187187a1b8aade7db04ea6dfbc47dacc25c3\n"
    },
    {
      "commit": "3736dbc5c4ef7c0e0cf81ff3fc73579527cad50a",
      "tree": "e02f98e76d6eb7ef6c3a90a8c07eb59405c42776",
      "parents": [
        "0c629a3857c31bee6fa39ba7a9a8cbcabeb383fd",
        "1bbc1c93b5db545e503dc27c262eef38685d0726"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Nov 03 22:00:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 03 22:00:11 2014 +0000"
      },
      "message": "Merge \"CameraService: API1: fix picture FOV\" into lmp-mr1-dev"
    }
  ],
  "next": "d9cfeb447356cb6334379eaf5da1e49424eb5979"
}
