)]}'
{
  "log": [
    {
      "commit": "8140a2b7ef0650e8cce6be16efcbfce56d0ed1e4",
      "tree": "2af3abd74b8195764c076dac76940e8073a55277",
      "parents": [
        "7ae3dfabb40d061aa613b255cba65ee35567f323"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Jan 06 15:56:39 2015 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Jan 06 16:41:13 2015 -0800"
      },
      "message": "stagefright: report crop rectangle as codec resolution if exists\n\nBug: 18789054\nChange-Id: I08b82a400541b5e09580801473c34ce56bfef5db\n"
    },
    {
      "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": "ea7fba9abadcc3aae9c9b71bf67f2dd657c5b5dd",
      "tree": "df0ffbb41220270e726bc95e1148bae7a370473a",
      "parents": [
        "3190e67d5c80c1e39e3be91784110af1180cd182",
        "36d15776c37a6512d452628673e6286f8d9cf89c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 00:09:52 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 06 00:09:52 2015 +0000"
      },
      "message": "am 36d15776: (-s ours) audio policy: validate stream type received from binder calls.\n\n* commit \u002736d15776c37a6512d452628673e6286f8d9cf89c\u0027:\n  audio policy: validate stream type received from binder calls.\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": "0d19abb440c7e62e944efbeadf02299990f9a589",
      "tree": "77638d29013a8bae57a7232e4aa5ea71baadc341",
      "parents": [
        "f580806d893c4631f5324ff0af5c2db68a40ef42",
        "f0e83644637bd05852c244df481f21a0d435ff66"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 23 00:27:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 23 00:27:46 2014 +0000"
      },
      "message": "Merge \"NuPlayer: Do not recreate AudioTrack if not needed\" into lmp-mr1-dev"
    },
    {
      "commit": "f580806d893c4631f5324ff0af5c2db68a40ef42",
      "tree": "bcb818e65e7702333bfb70103b63cf19ec90455f",
      "parents": [
        "5886252a7b08fb5c5d8829443e56a63956986148"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Dec 22 11:46:50 2014 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Dec 22 11:50:26 2014 -0800"
      },
      "message": "HLS: QCom enhancements\n\nThis commit consists of:\n\nhttp://go/pag/c/188753 Add NULL check for empty playlist\nhttp://go/pag/c/188754 Fix deadlock for low duration clips\nhttp://go/pag/c/188757 Create a copy of last enqueued metadata\nhttp://go/pag/c/188755 Propagate target duration to LiveSession\nhttp://go/pag/c/188762 Decouple block size from bandwidth estimate\nhttp://go/pag/c/188756 Reduce memcpy calls for chunked content\nhttp://go/pag/c/188758 Dont resume if we have almost fetched till stop time\n\nBug: 18821145\nChange-Id: I7fd650999c6c50bbadffd65adee9020e669dfe62\n"
    },
    {
      "commit": "f0e83644637bd05852c244df481f21a0d435ff66",
      "tree": "1906a30a9d09e3def397d39fba5d64deadc78ae5",
      "parents": [
        "e48cf5b8f823c30af93577c1e380d752ac69b871"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 19 17:55:56 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 19 18:15:33 2014 -0800"
      },
      "message": "NuPlayer: Do not recreate AudioTrack if not needed\n\nOn output format change from the decoder, check if a new audio\ntrack is really needed. This prevents excessive track\ncreation/destruction during seeks.\n\nBug: 18817027\nChange-Id: I4290dcb90cb35bc1303b025e162f6b813d49a05b\n"
    },
    {
      "commit": "5886252a7b08fb5c5d8829443e56a63956986148",
      "tree": "5f59ad8973bf6caeee2182f07a5cc8edb0aa7ef0",
      "parents": [
        "0a0662ea48b060716e0e982661836df9a0958111",
        "a34c9ce292ea984e92d8f70d2c056e5372c4f452"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 20 01:37:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 20 01:37:11 2014 +0000"
      },
      "message": "Merge \"audio policy: fix isSourceActive() for hotword\" into lmp-mr1-dev"
    },
    {
      "commit": "0a0662ea48b060716e0e982661836df9a0958111",
      "tree": "51b2a1fa1c4650e77eb07d7448c2b0da3906e07b",
      "parents": [
        "ad019236b9bc4a030c2740fd9cfdd0670b118d5c",
        "2cbe89a82d4167c5d5bcf3024edc22ab6874143a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 20 00:27:24 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 20 00:27:25 2014 +0000"
      },
      "message": "Merge \"audio policy: improve accessibility routing\" into lmp-mr1-dev"
    },
    {
      "commit": "ad019236b9bc4a030c2740fd9cfdd0670b118d5c",
      "tree": "0ed6c5d9be18759948a97807f2bcd2f46e9e7778",
      "parents": [
        "d4b056da7cbf1adb2a5f668e4425def3754a9c09",
        "d4cdba18ba7d0057ae54ec7efa5871b1a9d8beca"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Dec 19 22:18:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 19 22:18:10 2014 +0000"
      },
      "message": "Merge \"NuPlayer: reports paused position in paused state.\" into lmp-mr1-dev"
    },
    {
      "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": "d4b056da7cbf1adb2a5f668e4425def3754a9c09",
      "tree": "2f8a28d6432e8a6607fc55391e93031cbec82d97",
      "parents": [
        "89ee55cb01f6e230990eb344718627c8fcbec349",
        "3491232a7c0d953fa021f6a81baee64c44f364f3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 19 19:57:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 19 19:57:48 2014 +0000"
      },
      "message": "Merge \"NuPlayer: Fix failure to stop audio playback\" into lmp-mr1-dev"
    },
    {
      "commit": "d4cdba18ba7d0057ae54ec7efa5871b1a9d8beca",
      "tree": "6a8a44525450cb0a0d13ab0c60ad31c47bed9f1b",
      "parents": [
        "e48cf5b8f823c30af93577c1e380d752ac69b871"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 18 10:44:17 2014 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Dec 19 11:29:30 2014 -0800"
      },
      "message": "NuPlayer: reports paused position in paused state.\n\nBug: 18733773\nChange-Id: I993a4bf108913ab98a0294d7dcf7605349f7029b\n"
    },
    {
      "commit": "89ee55cb01f6e230990eb344718627c8fcbec349",
      "tree": "49e5d788da1d1c9096f34c22fb65e77130a880d7",
      "parents": [
        "1391f933b49cfb56da9aa63f723de83b076cf888",
        "9fc1bf138ed0b2b375a5d71e9d9e661ff30b49f5"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Dec 19 18:54:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 19 18:54:47 2014 +0000"
      },
      "message": "Merge \"OggExtractor: ignore timestamp calculation for configuration packets\" into lmp-mr1-dev"
    },
    {
      "commit": "3491232a7c0d953fa021f6a81baee64c44f364f3",
      "tree": "974b02384d160e7baad77f93ed9ab2ba38209134",
      "parents": [
        "e48cf5b8f823c30af93577c1e380d752ac69b871"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 18 18:48:39 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 18 18:48:39 2014 -0800"
      },
      "message": "NuPlayer: Fix failure to stop audio playback\n\nDon\u0027t stop audio sink if gapless - it\u0027s not necessary and has\na side effect of resetting the AudioTrack frames written\nwithout resetting the AudioSink frames written.\n\nBug: 18787619\nChange-Id: I71063b9e3aad9a6dfd7d46ea614e107c815e4c57\n"
    },
    {
      "commit": "9fc1bf138ed0b2b375a5d71e9d9e661ff30b49f5",
      "tree": "b38d0a0b87e5f32b5c47400fd9e7613ad0ae8e1e",
      "parents": [
        "e48cf5b8f823c30af93577c1e380d752ac69b871"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Dec 18 11:58:50 2014 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Dec 18 15:32:27 2014 -0800"
      },
      "message": "OggExtractor: ignore timestamp calculation for configuration packets\n\nBug: 18801155\nChange-Id: Ib0b5a03fa4cf2c75d79be2df939257835259deed\n"
    },
    {
      "commit": "1391f933b49cfb56da9aa63f723de83b076cf888",
      "tree": "3c6b03cc66cb484787baf322482214a4e1a32e13",
      "parents": [
        "e48cf5b8f823c30af93577c1e380d752ac69b871"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Dec 17 17:06:37 2014 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Dec 17 17:09:47 2014 -0800"
      },
      "message": "MPEG4Extractor: null check in MPEG4Source::parseChunk\n\nBug: 18771789\nChange-Id: Ic12bf565be23eba39b49930c7ce43372fce4f826\n"
    },
    {
      "commit": "e48cf5b8f823c30af93577c1e380d752ac69b871",
      "tree": "e4c28928702a1b75d4a67958bdccdca0d7e73c61",
      "parents": [
        "145cf5d885c238b690ab8240137934327b85c427"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Dec 17 12:22:36 2014 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Dec 17 12:22:36 2014 -0800"
      },
      "message": "Fix bounds checking for GetPartialObject command\n\nGetPartialObject has only 3 arguments, whereas the 64 bit version takes 4.\n\nBug: 18786282\nChange-Id: I4376962769ed0eae2f4991c2569244db22509204\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": "184e63ffcdd5654eb8e132346d2736dc9a9c7b01",
      "tree": "b0b78a12ad7ccd282bdf99ca1454b63be4d407aa",
      "parents": [
        "be845fce36a65139eb353ba7442eba951b1ebee3",
        "f247eef54c58ee1b7c13a3f6888b6374e9bea66f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 16 23:20:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 16 23:20:51 2014 +0000"
      },
      "message": "Merge \"ESQueue: change warning message of one buffer containing multiple ADTS frames into verbose.\" into lmp-mr1-dev"
    },
    {
      "commit": "f247eef54c58ee1b7c13a3f6888b6374e9bea66f",
      "tree": "18f3f9a5278666e0fc2c87ce71056deb102b0c80",
      "parents": [
        "8ddb02230d02968d471aa41b22433957c38827c0"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 16 15:10:29 2014 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 16 15:13:43 2014 -0800"
      },
      "message": "ESQueue: change warning message of one buffer containing multiple ADTS frames into verbose.\n\nBug: 18741580\nChange-Id: I35b38e106c3ca5421e0985d5e7feeaafe773ed6d\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": "8975220e28f632c5db4d89c798384d7635228bbc",
      "tree": "5958d59957ed406d34759bc06af2d11938bd4e6e",
      "parents": [
        "6eac9e2f04480e80adca05347ae69919037c968e",
        "02521e37c0494b83947c35160f3669de8adc9e5b"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Dec 16 17:16:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 16 17:16:59 2014 +0000"
      },
      "message": "Merge \"Fix for Bundled Effects level compensation\" into lmp-mr1-dev"
    },
    {
      "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": "6eac9e2f04480e80adca05347ae69919037c968e",
      "tree": "61c748999827befc634605283eb9112b41eea2f1",
      "parents": [
        "9f932418856844c6b8242d4c921654d0cc6af754",
        "2cec0dfa9f97b87733b8b250b49729fc6bb3a60a"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Dec 15 23:00:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 15 23:00:18 2014 +0000"
      },
      "message": "Merge \"Camera2Client: flush requests in stopPreviewL\" into lmp-mr1-dev"
    },
    {
      "commit": "9f932418856844c6b8242d4c921654d0cc6af754",
      "tree": "359457f5fadee5eeb72f600e0a74a597724a16de",
      "parents": [
        "2aa82e786be2e986be1ecb48d72b095b040efe9a",
        "661a5270303392bbf22eaa459961e6ab7b26b529"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Dec 15 21:21:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 15 21:21:41 2014 +0000"
      },
      "message": "Merge \"Fix for apps that forget to use widevine:// urls\" into lmp-mr1-dev"
    },
    {
      "commit": "2aa82e786be2e986be1ecb48d72b095b040efe9a",
      "tree": "e2e8358ae1fa9e904bcf76879b0c4d790d1c1b29",
      "parents": [
        "6e430fbd927b9cc043639eb728ddc921392a60e8",
        "eee82e44548f17253c2e06b25725f91c7b549ec2"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Dec 15 20:21:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 15 20:22:00 2014 +0000"
      },
      "message": "Merge \"MediaCodecList: handle binder death\" into lmp-mr1-dev"
    },
    {
      "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": "6e430fbd927b9cc043639eb728ddc921392a60e8",
      "tree": "ecc06c27de37c7b561e86e90a9a996617a9454dc",
      "parents": [
        "8ddb02230d02968d471aa41b22433957c38827c0",
        "895651b07fec30b0f9b0d2499599a179d95c9be4"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Dec 15 19:15:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 15 19:15:09 2014 +0000"
      },
      "message": "Merge \"NuPlayer: send NOT_SEEKABLE media info to client when the source is not seekable.\" into lmp-mr1-dev"
    },
    {
      "commit": "661a5270303392bbf22eaa459961e6ab7b26b529",
      "tree": "da831271890b6b0d615128a4cdace36a1e6487c6",
      "parents": [
        "8cffa91a76d3fa4c96268fc40fc8722a0d33dc8d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Dec 12 15:24:46 2014 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Dec 15 18:28:54 2014 +0000"
      },
      "message": "Fix for apps that forget to use widevine:// urls\n\nbug: 18554455\n\nChange-Id: I8ff08e7270c65c375205169eb068f361f2a4a727"
    },
    {
      "commit": "eee82e44548f17253c2e06b25725f91c7b549ec2",
      "tree": "cf936ad01c06be9f7e8fe80cf83f73b630de4db7",
      "parents": [
        "8ddb02230d02968d471aa41b22433957c38827c0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 12 12:27:54 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 12 20:18:35 2014 -0800"
      },
      "message": "MediaCodecList: handle binder death\n\nBug: 18691591\nChange-Id: Icc402d6ea9b0de4ac642c3b403fb64e865481b2e\n"
    },
    {
      "commit": "8ddb02230d02968d471aa41b22433957c38827c0",
      "tree": "3030b6e69d70a5a9b7250460f4a70b77dda95155",
      "parents": [
        "554016a37167fc5cb449be3d93a9290e4a0dac21",
        "d0b9a2b8538c9e4538d92fd675cf6786644ccb85"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Sat Dec 13 02:15:13 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 13 02:15:13 2014 +0000"
      },
      "message": "Merge \"Tunneled video Playback/Max resolution: Call mOmx-\u003eprepareForAdaptivePlayback() to provide max resolution information to tunneled OMX component.\" into lmp-mr1-dev"
    },
    {
      "commit": "d0b9a2b8538c9e4538d92fd675cf6786644ccb85",
      "tree": "9f59612b10e68b13f94a86d337d970324a17719a",
      "parents": [
        "c73ca6ef04136f28306784ad35f444538f081957"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Fri Dec 12 17:41:36 2014 -0800"
      },
      "committer": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Fri Dec 12 18:06:59 2014 -0800"
      },
      "message": "Tunneled video Playback/Max resolution:\nCall mOmx-\u003eprepareForAdaptivePlayback() to provide max resolution information\nto tunneled OMX component.\n\nbug: 17883772\nChange-Id: I8f634824103e66483527828993bb24f65e68e419\n"
    },
    {
      "commit": "554016a37167fc5cb449be3d93a9290e4a0dac21",
      "tree": "c96fd4d2fbef3d49a7b6f109c3707f8a3667140b",
      "parents": [
        "c73ca6ef04136f28306784ad35f444538f081957",
        "30b865a2cfb508cd91d7403b7bf6ebcf34189c00"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Sat Dec 13 01:48:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 13 01:48:10 2014 +0000"
      },
      "message": "Merge \"stagefright: advertise 8kHz AAC decoder support\" into lmp-mr1-dev"
    },
    {
      "commit": "30b865a2cfb508cd91d7403b7bf6ebcf34189c00",
      "tree": "26dfc13e7cefa8445735bc806bff7bdf6516087a",
      "parents": [
        "a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Dec 09 19:35:16 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Sat Dec 13 01:25:27 2014 +0000"
      },
      "message": "stagefright: advertise 8kHz AAC decoder support\n\nBug: 18738266\nChange-Id: I1e5a1dc04b4deabfac069e70e4f730be6023a8ef"
    },
    {
      "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": "895651b07fec30b0f9b0d2499599a179d95c9be4",
      "tree": "bd1a9d42072c8db53dcd72aa3f7392f520b1f4fe",
      "parents": [
        "82a69ea8b090d57bff5e02774688b546a711bbb8"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 10 17:31:52 2014 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Dec 12 14:34:50 2014 -0800"
      },
      "message": "NuPlayer: send NOT_SEEKABLE media info to client when the source is not seekable.\n\nLiveSession: return -1 for duration when it\u0027s not available.\n\nBug: 18599325\nChange-Id: Iecd040f48750806f98d1799e2aaab2f90c6f3887\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": "a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5",
      "tree": "913e39ed6eff31c956135701290e1a5af21fd0f8",
      "parents": [
        "94a92c69af528edf6ec17d7978a0c3bb6ab51e63"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 24 13:57:35 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Dec 10 18:04:14 2014 -0800"
      },
      "message": "stagefright: misc fixes to software video encoders (and decoders)\n\n- move logic to set encoder parameters to common encoder class\n  (similarly to what was done for decoders)\n- set compressed buffer size based on frame size and compression ratio,\n  and codec-specific minimum size\n- set raw buffer size based on frame size and metadata mode\n- do not set stride and slice height on compressed ports\n- advertise only QCIF support for google H263 encoder\n- set large-enough input size for video decoders to support adaptive\n  playback\n- do not change input buffer size on output port reconfiguration, as\n  no input buffer reallocation takes place\n- do not return empty buffers with EOS after EOS has been signaled\n\nBug: 18513091\nBug: 18639027\nChange-Id: Ib13492ef66adf331aa4572c67d2b283ea020cb41\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": "f484952edd94c1b7ee82d7b108edc1ce08671cc4",
      "tree": "cff6a131fad2248c456eee1618849df35bcae67e",
      "parents": [
        "7e45789f5fbcbe68075f57b6d17f72b7b48df546"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Dec 10 16:58:57 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Dec 10 16:59:39 2014 -0800"
      },
      "message": "mediaplayer: allow setVideoSurface before setDataSource\n\nBug: 18709604\nChange-Id: I41e4734faed48b5583feb29896cd5783b8cd7e33\n"
    },
    {
      "commit": "7e45789f5fbcbe68075f57b6d17f72b7b48df546",
      "tree": "982ee79f135306f5396f31cd219003996cfd17a4",
      "parents": [
        "1767df778e20c1395afc63b3a0479bd903e7b9f0"
      ],
      "author": {
        "name": "Bernhard Rosenkränzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Thu Nov 20 13:18:24 2014 +0100"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Dec 09 19:48:00 2014 -0800"
      },
      "message": "Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions\n\nAn overloaded function should take the same parameters as the function\nit is overloading.\n\nBug: 18639027\nChange-Id: I8327fe1b363917515cf76c8f76bdbc05b2c0fbf0\nSigned-off-by: Bernhard Rosenkränzer \u003cBernhard.Rosenkranzer@linaro.org\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": "02521e37c0494b83947c35160f3669de8adc9e5b",
      "tree": "b1da6be2aaee6e241bae52e10170f2a7b936f03d",
      "parents": [
        "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Nov 20 08:54:51 2014 -0800"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Dec 09 14:13:09 2014 -0800"
      },
      "message": "Fix for Bundled Effects level compensation\n\nFrom the bundled effects, only the EQ had some sort of level compensation\nbased on the settings of the effect.  This patch takes into account all\nthe status and levels of EQ, BassBoost and Virtualizer bundled effects\nand makes an informed decision on the overall level compensation.\n\nbug: 18213779\nChange-Id: I23c7b94fe7da5482f0bbef0cbe715ea464631420\n"
    },
    {
      "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": "f6a364ed92945bf8a39dbadddb674c3f2e3b7d53",
      "tree": "b4b39f66861f6122918f8bc4e98f9964683ba789",
      "parents": [
        "82a69ea8b090d57bff5e02774688b546a711bbb8",
        "9fa3db9a8c164daaf0d7334595dbd0ca24fe97bf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 09 18:17:52 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 09 18:17:53 2014 +0000"
      },
      "message": "Merge \"Fix AAC recording issue\" into lmp-mr1-dev"
    },
    {
      "commit": "9fa3db9a8c164daaf0d7334595dbd0ca24fe97bf",
      "tree": "3e264e87fd961e7d59c3545bf1bda629a72ada7f",
      "parents": [
        "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 09 08:06:26 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 09 08:06:26 2014 -0800"
      },
      "message": "Fix AAC recording issue\n\nFix uninitialized variable that caused ADTS recording to incorrectly\nspecify LTP object in the header.\n\nBug: 17895547\nChange-Id: I75650f4963f4f371cd191bc635e32c9ab17fa8c9\n"
    },
    {
      "commit": "82a69ea8b090d57bff5e02774688b546a711bbb8",
      "tree": "b4712a7df9c4431103b1d1a4a77ad5b237703637",
      "parents": [
        "ca7b4bc40604ae4f06718cb34945fdab278987ae"
      ],
      "author": {
        "name": "zunkyu.lee",
        "email": "zunkyu.lee@lge.com",
        "time": "Fri Nov 07 15:47:32 2014 +0900"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 08 16:04:24 2014 -0800"
      },
      "message": "Prevent ANR when AudioTrack is paused or re-routed\n\nIf ClientProxy was interrupted by AudioTrack::pause() just before futex syscall() in obtainBuffer() was called,\nIt will not call releaseBuffer to wake up AudioTrackThread.\nIt puts the AudioTrackThread to sleep and then a deadlock occurs.\n\nIn this case, CBLK_INTERRUPT flags can\u0027t prevent a deadlock,\nso this patch set mFutex to FUTEX_WAKE during interrupt() to avoid deadlock.\n\nA similar problem could occur due to re-route or recovery after mediaserver death.\n\nBug: 18641665\nChange-Id: I66fcae43af9a91eb55f6cdb52c644ee6c0999772\n"
    },
    {
      "commit": "ca7b4bc40604ae4f06718cb34945fdab278987ae",
      "tree": "3a39c3a4dc6aa2a9107737042efec05b000742d8",
      "parents": [
        "a9d2f9fbbfa6e8daa3252e88e9861d7f80a974ff"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 05 17:14:54 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 05 18:35:35 2014 -0800"
      },
      "message": "mediaplayerservice: add support for legacy DRM\n\nLegacy DRM uses AwesomePlayer for widevine content.\n\nBug: 18006370\nChange-Id: I1de9e33de51b60352a9c79c2dcedec330160abe4\n"
    },
    {
      "commit": "a9d2f9fbbfa6e8daa3252e88e9861d7f80a974ff",
      "tree": "29e9c1941cc7caee766ad72f85dd1818af0c6a01",
      "parents": [
        "80c57d570238f9f213ccfe818e285090daeafd63",
        "4e865a3cfe4c955e0890321a6b488cf661808b63"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Sat Dec 06 02:18:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 06 02:18:39 2014 +0000"
      },
      "message": "Merge \"stagefright: preserve output format flags on format change\" into lmp-mr1-dev"
    },
    {
      "commit": "80c57d570238f9f213ccfe818e285090daeafd63",
      "tree": "95ff9139a96af8181ff7ef9f33245512d450d4b5",
      "parents": [
        "18265202049bfa53fe5b18a95d956325acca9c7b",
        "474d7c778b63aa33dcf25a92e23a52c1c47f0ac1"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sat Dec 06 01:20:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 06 01:20:39 2014 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Update mAnchorMaxMediaUs when anchor time is changed to fix pause-seek-getCurrentPosition.\" into lmp-mr1-dev"
    },
    {
      "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": "474d7c778b63aa33dcf25a92e23a52c1c47f0ac1",
      "tree": "4b6553cfc31df91a1c304061113172904d4bd768",
      "parents": [
        "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 04 15:12:13 2014 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Dec 05 16:51:38 2014 -0800"
      },
      "message": "NuPlayerRenderer: Update mAnchorMaxMediaUs when anchor time is changed to fix pause-seek-getCurrentPosition.\n\nNuPlayerDecoder: Notify resume is done when EOS is reached.\n\nGenericSource: add code to signal pre-roll for seek so that it will seek to the requested position,\nnot only I-frame. This code is disabled temporarily till we have a full solution to handle both\nsingle seek and continous seek gracefully.\n\nBug: 18625723\nChange-Id: I99a54d4d549e0d805e3abcc227fbf96c16405af0\n"
    },
    {
      "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": "4e865a3cfe4c955e0890321a6b488cf661808b63",
      "tree": "468dc095999eef48d402e92af1b6b80eaed36333",
      "parents": [
        "a147c17adabaab819ac108fbc448c49525cf74bc"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 05 15:54:51 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 05 16:05:58 2014 -0800"
      },
      "message": "stagefright: preserve output format flags on format change\n\nSome flags are only set in configure, and get lost when output\nformat changes.\n\nBug: 17383204\nChange-Id: I2011bce70920c4ee46fccc378da3b428f3395c11\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": "a147c17adabaab819ac108fbc448c49525cf74bc",
      "tree": "58ed3b8def60d56e659ada7ca09a0f5ca82450d7",
      "parents": [
        "cbbe1ccc41a86fbf009767bbdab43232e6c369c0",
        "42e8153cf7271b572e4a94ade332b68521977f36"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Dec 05 23:31:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 23:31:49 2014 +0000"
      },
      "message": "Merge \"fixes for non-secure widevine playback\" into lmp-mr1-dev"
    },
    {
      "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": "42e8153cf7271b572e4a94ade332b68521977f36",
      "tree": "ac5b53bbf3c36b916bda20b397dd91de2b262056",
      "parents": [
        "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Dec 01 13:44:26 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Dec 05 15:21:48 2014 -0800"
      },
      "message": "fixes for non-secure widevine playback\n\n- separate secure decoding from widevine\n\n- use non-blocking mode when reading from widevine source\n\n- schedule buffer read when packet source is empty\n\nbug: 18536934\nChange-Id: I65a8e5e819975ca6900ed8e887a442940f2d5d38\n"
    },
    {
      "commit": "57216ca41b2d7e35bda01ce910ae6e72ed01bfae",
      "tree": "ea084b4e5befb3ba62cb18234279df7fd3fcb73f",
      "parents": [
        "597ce69a77636eab073fc83ded01e8af51e887e2",
        "be837c328ae1ea2b193d05aaa3d4214c263b5b77"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 05 21:00:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 21:00:04 2014 +0000"
      },
      "message": "Merge \"Track volume should be maintained even if track is restored\" 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": "be837c328ae1ea2b193d05aaa3d4214c263b5b77",
      "tree": "e57cdef76f6936c4506d270dff4f59d72d202528",
      "parents": [
        "d6e7f1e1f8b1dfa6a87c7c0b1a5c68d435096b01"
      ],
      "author": {
        "name": "seunghak.han",
        "email": "seunghak.han@lge.com",
        "time": "Sat Nov 22 15:22:35 2014 +0900"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 05 10:52:34 2014 -0800"
      },
      "message": "Track volume should be maintained even if track is restored\n\nIf track is restored when it set its volume to a non-unity value (such as mute),\nthe volume was forced to unity again.  Now, the previous volume is restored.\n\nBug: 18570664\nChange-Id: I79f34c6c7d6f535baba813fd3b8ba8e55cac8ad7\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": "d6e7f1e1f8b1dfa6a87c7c0b1a5c68d435096b01",
      "tree": "33fd881be3965b2e670b5cbf08abe4dac768cb69",
      "parents": [
        "b65842dd9447a7925046b2285b2aa8459dc63ed3",
        "47d4c9a4d53ed014b520edbda2edc3e280efb8a5"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri Dec 05 13:46:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 13:46:58 2014 +0000"
      },
      "message": "Merge \"Fix for AOSP force virtualization mode\" into lmp-mr1-dev"
    },
    {
      "commit": "b65842dd9447a7925046b2285b2aa8459dc63ed3",
      "tree": "9e9f3e43b5ab1e741dace7a3b005589fd4eb17e3",
      "parents": [
        "76c156f71f398d08fd88100f499a8a41ddfd3808",
        "202bce11a7f66f27e6dbb6d154ddc123aa62513d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 05 04:52:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 04:52:41 2014 +0000"
      },
      "message": "Merge \"Fix NuPlayer assertion on failure to create AudioTrack\" into lmp-mr1-dev"
    },
    {
      "commit": "76c156f71f398d08fd88100f499a8a41ddfd3808",
      "tree": "38c95cb6344fffb86be9866f0574dd38fa5b17dc",
      "parents": [
        "852dc963a53487f2e2f197ab095299aed9c60a5e",
        "180d1b96ee2312f1056a58e26884a89d25ab62c8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Dec 05 03:38:55 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 03:38:56 2014 +0000"
      },
      "message": "Merge \"fix threading in RTSPSource and StreamingSource\" 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": "852dc963a53487f2e2f197ab095299aed9c60a5e",
      "tree": "8bb5fe9cb0061af9733cd41626bbafbc1d113872",
      "parents": [
        "db995fe3239276be9dfd9e446b10417e07948acc",
        "15ebd70bdb7aeb3d5ce309710dbd64c0ea038113"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Dec 05 02:44:16 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 02:44:17 2014 +0000"
      },
      "message": "Merge \"avc_util: try to find the first start code prefix 0x000001 even though there is non-zero byte at the beginning of the buffer.\" into lmp-mr1-dev"
    },
    {
      "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": "47d4c9a4d53ed014b520edbda2edc3e280efb8a5",
      "tree": "5970b2b39c01cb5deb5d98c6b88db0202500dfe8",
      "parents": [
        "f1828910d48bbd22e1392e6ab0ce31298d1f115c"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Dec 04 17:47:19 2014 -0800"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Dec 04 17:47:19 2014 -0800"
      },
      "message": "Fix for AOSP force virtualization mode\n\nForcing virtualization mode with AOSP code might erroneously return\na failed code, whilst it was correct.  Fixing the condition for\nAutomatic mode.\n\nbug: 18538537\nChange-Id: I5837ff40cfed04c99889813cd56ebe3d90793e74\n"
    },
    {
      "commit": "15ebd70bdb7aeb3d5ce309710dbd64c0ea038113",
      "tree": "a652122861b7fe962d95b4571d60da4be0cf7440",
      "parents": [
        "814cbb4e33396fce559475270d6f6c0bd7c43fc5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 03 14:10:16 2014 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 04 15:14:08 2014 -0800"
      },
      "message": "avc_util: try to find the first start code prefix 0x000001 even though there is non-zero byte at the beginning of the buffer.\n\nESQueue: allow one PES playload contains multiple ADTS AAC frames.\n\nBug: 18532335\nChange-Id: I1f42017cff139d5e932e0aaa3e7d33164d1a48e7\n"
    },
    {
      "commit": "8790740d6bb1546dee6c87270976415503283820",
      "tree": "aa2d7342403015a1870b7cb01ff639c5fd7f2f22",
      "parents": [
        "814cbb4e33396fce559475270d6f6c0bd7c43fc5"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Dec 04 09:53:50 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Dec 04 09:54:46 2014 -0800"
      },
      "message": "media_codecs.xml: extend vorbis sample rate to 8-96kHz\n\nBug: 18615604\nChange-Id: I0245556b8164959dd52fe677901cbfc517627cb4\n"
    },
    {
      "commit": "814cbb4e33396fce559475270d6f6c0bd7c43fc5",
      "tree": "050dac9b8386db6b656f2153b328c663195caf42",
      "parents": [
        "18f2f90cff65c384a4e8292cc3296dafafb43d52",
        "4d23645c8d3d93c91967a5494473b4a8b5d10d9c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 04 05:22:24 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 04 05:22:25 2014 +0000"
      },
      "message": "Merge \"ESQueue: add frame length checking in validation of ADTS header.\" 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": "180d1b96ee2312f1056a58e26884a89d25ab62c8",
      "tree": "429e10ae941b02a4f3c6e18227c79cd5592b83fb",
      "parents": [
        "ab05b4ccb8ea59079d7f773aa0e090029c479bad"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Dec 02 18:35:35 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Dec 03 16:53:21 2014 -0800"
      },
      "message": "fix threading in RTSPSource and StreamingSource\n\nBug: 18532335\n\nChange-Id: I9c34401a928dc0ddbd0923aa5f127dc628efbb92\n"
    },
    {
      "commit": "4d23645c8d3d93c91967a5494473b4a8b5d10d9c",
      "tree": "76578051f547b86611a5fb5cfe5f004247d521dc",
      "parents": [
        "ab05b4ccb8ea59079d7f773aa0e090029c479bad"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 03 13:18:23 2014 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 03 16:49:03 2014 -0800"
      },
      "message": "ESQueue: add frame length checking in validation of ADTS header.\n\nThis allows an invalid ADTS buffer to be abandoned when frame length in\nthe header exceeds buffer size.\n\nBug: 18532335\nChange-Id: I8057db525d06ff00ca24afd075a7c6c17b87eaa8\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": "202bce11a7f66f27e6dbb6d154ddc123aa62513d",
      "tree": "390b83dacc286717243ba6e3c1173c9e2f01b376",
      "parents": [
        "9a1c8892f6835325db6931529dc74bf98cf0aee8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 03 11:47:36 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 03 16:13:50 2014 -0800"
      },
      "message": "Fix NuPlayer assertion on failure to create AudioTrack\n\nUnder heavy media load or monkey/stress testing, more than\n32 AudioTracks may be created or memory resources may be scarce.\nRemove the assertion on failure to create AudioTrack\nand signal MEDIA_ERROR.\n\nBug: 17319843\nChange-Id: I5d4e200b5f50d800046851a33e035cdc6ff10075\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": "ab05b4ccb8ea59079d7f773aa0e090029c479bad",
      "tree": "71c6ac716e4845c6bab413c4e55dd60631be4a96",
      "parents": [
        "f1828910d48bbd22e1392e6ab0ce31298d1f115c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 02 09:41:21 2014 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 02 17:43:39 2014 -0800"
      },
      "message": "StreamingSource: check mTSParser before dereferencing it.\n\nBug: 18532335\nChange-Id: I7819d8d359fe75ea4c827138e9aaa2454ccfe3b1\n"
    }
  ],
  "next": "f1828910d48bbd22e1392e6ab0ce31298d1f115c"
}
