)]}'
{
  "log": [
    {
      "commit": "0f11b51a57bc9062c4fe8af73747319cedabc5d6",
      "tree": "3a9156d700b18a53f856ac8ae51a44604af36fe1",
      "parents": [
        "0520e05f9083cf13fa7062629bc6606f4b39f08a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 31 16:18:54 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 03 07:48:43 2014 -0800"
      },
      "message": "Fix unused parameter warnings in audio\n\nChange-Id: I665ba3358dd9502f0adec70d486e7bf8a2e1b0fe\n"
    },
    {
      "commit": "94ee4b708acfa941581160b267afb79192b1d816",
      "tree": "f3ca1c40cd0853dca0812650448c534133f34d6f",
      "parents": [
        "49270665e7a20cd120724fc388da8b166ff0b4f1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jan 10 17:36:57 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jan 30 16:37:42 2014 -0800"
      },
      "message": "Cap pts gap between adjacent frames to specified value\n\n- In the scenario of cast mirroring, encoding could be suspended\n  for prolonged periods. Limiting the pts gap to workaround the\n  problem where encoder\u0027s rate control logic produces huge frames\n  after a long period of suspension.\n\n- Repeat last frame a couple more times to get better quality\n  on static scenes.\n\n- Fix the timestamp on repeat frames (it was not set)\n\nBug: 11971963\nChange-Id: I1d68ab3d269874bf3921aa429a985c5f63e428c7\n"
    },
    {
      "commit": "49270665e7a20cd120724fc388da8b166ff0b4f1",
      "tree": "82dec8714e89ef1dcee94641bed0123899e9ff5c",
      "parents": [
        "3136b33e92a870496dcdd949768751efa4b37106"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jan 17 16:29:59 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jan 28 11:57:38 2014 -0800"
      },
      "message": "save mGraphicBuffer pointer even when we\u0027re suspended\n\nBug: 12609966\nChange-Id: Ifd41fd973876da69039113fcaeacdccf39472b37\n"
    },
    {
      "commit": "3136b33e92a870496dcdd949768751efa4b37106",
      "tree": "770609e073a45f6344b8f39a98a5241622b8b9c8",
      "parents": [
        "9be49c915852b592a881be3905658e4fc698749d",
        "df576995a5aad3428aeeef765387d650945c161d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 28 16:53:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 28 16:53:58 2014 +0000"
      },
      "message": "Merge \"AudioTrack: fix obtainBuffer timeout calculation\""
    },
    {
      "commit": "df576995a5aad3428aeeef765387d650945c161d",
      "tree": "51ee9bf8e0ac8b559547d4b12cd531ac037ae0e7",
      "parents": [
        "b2b9b2dbdbc0445080d3c2d15212a43ba1f9cff1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 18:13:39 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 18:13:39 2014 -0800"
      },
      "message": "AudioTrack: fix obtainBuffer timeout calculation\n\nAudioTrack::obtainBuffer() passes a pointer to a timeout\nvariable that has gone out of scope when calling\nClientProxy::obtainBuffer().\n\nSame fix for AudioRecord.\n\nBug: 11968591.\nChange-Id: I22af8f94fa2f8cc54ab5c25c89167c805e754317\n"
    },
    {
      "commit": "9be49c915852b592a881be3905658e4fc698749d",
      "tree": "043ffa8d835b63a41af470fdb51d580774b0008e",
      "parents": [
        "5f44635dc35814b98b4dc2b255355a93122fec59",
        "bb9e396d311ea38e958fb5b56efff7aea4eaed82"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 28 01:08:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 28 01:08:42 2014 +0000"
      },
      "message": "am bb9e396d: am 06f7d151: am 06da69d5: Merge \"frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH\"\n\n* commit \u0027bb9e396d311ea38e958fb5b56efff7aea4eaed82\u0027:\n  frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH\n"
    },
    {
      "commit": "06f7d1513ee325b5792ef26b77aeaae373f83ddc",
      "tree": "00b97910b926304a4ce189b751fd9c4ee8563a64",
      "parents": [
        "fe6db33a4b6454f441c6f0f5ff622d7527c5680c",
        "06da69d57d90e180e1165905e6c703227a06f041"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 28 00:51:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 28 00:51:41 2014 +0000"
      },
      "message": "am 06da69d5: Merge \"frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH\"\n\n* commit \u002706da69d57d90e180e1165905e6c703227a06f041\u0027:\n  frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH\n"
    },
    {
      "commit": "7d6fc5ebc8718ebb5bf505d9bda83ab63741a545",
      "tree": "3dff65731f7dcb75e20974287e8008c7048ca86f",
      "parents": [
        "4ef1dc2d5b5f5df93b173b0b4c4719d4484e031d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 24 21:00:32 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 27 12:39:29 2014 -0800"
      },
      "message": "frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH\n\nLOCAL_MODULE_PATH doesn\u0027t work for multiarch builds, replace it\nwith LOCAL_MODULE_RELATIVE_PATH.\n\nChange-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e\n"
    },
    {
      "commit": "b2b9b2dbdbc0445080d3c2d15212a43ba1f9cff1",
      "tree": "c779ec77b2b38a183a2f5e012dbd03a7380af528",
      "parents": [
        "8e26486d2d811f94118381a163178078a3eee6c0",
        "1ae4b6ce27dca66ef9158abdd4744cb9b8d57c02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 19:55:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 27 19:55:29 2014 +0000"
      },
      "message": "am 1ae4b6ce: am fe6db33a: am 4ef1dc2d: Merge \"Only increase the counter when we do take a wakelock\"\n\n* commit \u00271ae4b6ce27dca66ef9158abdd4744cb9b8d57c02\u0027:\n  Only increase the counter when we do take a wakelock\n"
    },
    {
      "commit": "8e26486d2d811f94118381a163178078a3eee6c0",
      "tree": "39895891373dc0a7dcdce65fbd06ed79e104fa28",
      "parents": [
        "4bbf8ea1f17e85123abd2b037d357e2a89664511",
        "9f875b2717b683cc61e3fa4ba24b3693fab5b46a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 19:55:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 27 19:55:28 2014 +0000"
      },
      "message": "am 9f875b27: am 8ba3192f: am d0e7e801: Merge \"Do partial reads in MemoryLeakTrackUtil\"\n\n* commit \u00279f875b2717b683cc61e3fa4ba24b3693fab5b46a\u0027:\n  Do partial reads in MemoryLeakTrackUtil\n"
    },
    {
      "commit": "fe6db33a4b6454f441c6f0f5ff622d7527c5680c",
      "tree": "b2b7920d97df54457aadc1de109d86f2268d0f1f",
      "parents": [
        "8ba3192fc5f3fd72217f5946e8bd1831f0854749",
        "4ef1dc2d5b5f5df93b173b0b4c4719d4484e031d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 11:20:16 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 27 11:20:16 2014 -0800"
      },
      "message": "am 4ef1dc2d: Merge \"Only increase the counter when we do take a wakelock\"\n\n* commit \u00274ef1dc2d5b5f5df93b173b0b4c4719d4484e031d\u0027:\n  Only increase the counter when we do take a wakelock\n"
    },
    {
      "commit": "8ba3192fc5f3fd72217f5946e8bd1831f0854749",
      "tree": "cfb93dbce1ed083aac4627a1bf0c9d34b210e83e",
      "parents": [
        "1526c2e1d7be6b942859c68c509493d3636bca43",
        "d0e7e8012e19ac750e7858756247be1036da32c4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 11:20:15 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 27 11:20:15 2014 -0800"
      },
      "message": "am d0e7e801: Merge \"Do partial reads in MemoryLeakTrackUtil\"\n\n* commit \u0027d0e7e8012e19ac750e7858756247be1036da32c4\u0027:\n  Do partial reads in MemoryLeakTrackUtil\n"
    },
    {
      "commit": "4ef1dc2d5b5f5df93b173b0b4c4719d4484e031d",
      "tree": "3f9e4f1d3664df715787a327dbcf8d4ad2cb48b0",
      "parents": [
        "d0e7e8012e19ac750e7858756247be1036da32c4",
        "5163c2ef5fe11c9b10d230691ef429035da4c788"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 17:19:48 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 27 17:19:48 2014 +0000"
      },
      "message": "Merge \"Only increase the counter when we do take a wakelock\""
    },
    {
      "commit": "363fb75db26698cbb50065506e0c80b61d1fbf92",
      "tree": "9c2e92f3780c2885233fe117018cdbbde3997dc9",
      "parents": [
        "38e905b3cbba4da443d799b16999989781afc6d8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 15 12:27:31 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 24 13:22:57 2014 -0800"
      },
      "message": "Remove the redundant parameters from createTrack_l()\n\nAudioRecord::openRecord_l() code was refactored earlier to\nremove the redundant parameters:\n    \u003e Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2\n\nThis changelist refactors AudioTrack similarly.\n\nChange-Id: Iefd2bd662870ea81d04eff7b7c26f9c8b0dadd26\n"
    },
    {
      "commit": "38e905b3cbba4da443d799b16999989781afc6d8",
      "tree": "47b872b97f1af95c3e0ceefb1f8d56c9ae7a67fc",
      "parents": [
        "f0002d142e6d24c5438600b2c259679de710f8ac"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 10:21:48 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 24 13:19:59 2014 -0800"
      },
      "message": "Refactor code related to I/O handles to reduce chance for leaks\n\nThe AudioRecord input handle code was refactored earlier\nto fix a potential handle leak, and to simplify the code:\n    \u003e Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2\n\nThis changelist refactors AudioTrack similarly,\nand adds further cleanup of both AudioTrack and AudioRecord.\n\nWe attempt to implement the rules for referencing counting I/O handles,\nbut there is still the possibility of a handle leak if the client process\ndies after allocating the handle reference but before releasing it.\nThat issue is being tracked separately.\n\nDetails:\n - AudioSystem::getOutput() is now called within createTrack_l\n - restoreTrack_l was missing offload info\n   now it has the info available,\n   but is not yet being called for offloaded tracks\n - AudioTrack::getOutput() is now const\n - Remove getOutput_l()\n\nChange-Id: I44a0a623d24fc5847bcac0939c276400568adbca\n"
    },
    {
      "commit": "f0002d142e6d24c5438600b2c259679de710f8ac",
      "tree": "20e5013fa14f2d5339868c1b08396f7b852a2123",
      "parents": [
        "c69b91ceae6255e41c5413796fb0ed4f7af45b15",
        "74935e44734c1ec235c2b6677db3e0dbefa5ddb8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 24 16:13:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 24 16:13:51 2014 +0000"
      },
      "message": "Merge \"Replace control block frameCount_ by explicit in/out parameter\""
    },
    {
      "commit": "6d39eb9d7da2ca8eb733f2d2eba686c56b24885b",
      "tree": "dc68f714fc4ecb87102ca9d52a29346be7bd60b4",
      "parents": [
        "96a7b5a9c87ec3f8cadad5bffc06a82f9f4d86d8"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonymobile.com",
        "time": "Tue Jan 22 11:09:54 2013 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Thu Jan 23 18:40:31 2014 +0900"
      },
      "message": "Do partial reads in MemoryLeakTrackUtil\n\nDo partial read in MemoryLeakTrackUtil dumpMemoryAddresses\nto avoid using more memory than what is allocated.\n\nChange-Id: I94feb4e00647407f938571167b981c7371f39e3d\n"
    },
    {
      "commit": "5163c2ef5fe11c9b10d230691ef429035da4c788",
      "tree": "951999fe49578daaa7386193849b578c3fa6c9ab",
      "parents": [
        "96a7b5a9c87ec3f8cadad5bffc06a82f9f4d86d8"
      ],
      "author": {
        "name": "Jimmy Dalqvist",
        "email": "jimmy.dalqvist@sonymobile.com",
        "time": "Tue Jan 14 14:13:52 2014 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Wed Jan 22 15:47:38 2014 +0900"
      },
      "message": "Only increase the counter when we do take a wakelock\n\nWe keep track on how many wakelocks we have taken. We always\njust take one real wakelock but increase / decrease the\ncounter every time we try to acquire / release a wakelock.\nThe counter is always increased even if the power manager is\nnot ready, leading to an incorrect counter that could cause a\ncrash when we try to release it.\nMake sure we only increase the counter when a wakelock, real\nor counted, is taken.\n\nChange-Id: Iad940e052694932f1dad8a1a71fa63601d289d6a\n"
    },
    {
      "commit": "650da5f420b9ea39d1242eca60e9fec7a2448d29",
      "tree": "4217e075c6db77e2f7f96991b73a692ae57b8236",
      "parents": [
        "3a0b6bd22aa32daa729b05c33896400807027eee",
        "7226c059cda892ffa384b455ecfc49989e9bf6f0"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Jan 17 22:49:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 22:49:01 2014 +0000"
      },
      "message": "Merge \"Fix build. Missing vendor_tag header.\""
    },
    {
      "commit": "7226c059cda892ffa384b455ecfc49989e9bf6f0",
      "tree": "10e13405a2bd59737a6e2ab41c52317e058d0621",
      "parents": [
        "269a7e210949c4b28ba84dc71b9f99f6ef14f94e"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Jan 17 14:46:21 2014 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Jan 17 14:46:21 2014 -0800"
      },
      "message": "Fix build. Missing vendor_tag header.\n"
    },
    {
      "commit": "3a0b6bd22aa32daa729b05c33896400807027eee",
      "tree": "40f7c15432daa0160142e4c529eea5dbf9af7cc3",
      "parents": [
        "76508a7e3751f9cb4210afa4416f1f0d9ba172f7",
        "8ff50e7526d24aca11713006933b8dcb64ef6be9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 21:53:55 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 21:53:56 2014 +0000"
      },
      "message": "Merge \"Use uint32_t sequence numbers for IAudioRecord\""
    },
    {
      "commit": "76508a7e3751f9cb4210afa4416f1f0d9ba172f7",
      "tree": "b6035024a9175fd6c2ac53d37d13d897dfe87d2a",
      "parents": [
        "9a2a29ce9ea69382aafd8b895b80f7bbd028cb00",
        "4f8bb114b7180fb1c4e418223b3a608b467d23a2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 21:33:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 21:33:50 2014 +0000"
      },
      "message": "am 4f8bb114: am 1526c2e1: am 96a7b5a9: Merge \"Long mp3 metadata displays as corrupted file after transfer\"\n\n* commit \u00274f8bb114b7180fb1c4e418223b3a608b467d23a2\u0027:\n  Long mp3 metadata displays as corrupted file after transfer\n"
    },
    {
      "commit": "1526c2e1d7be6b942859c68c509493d3636bca43",
      "tree": "e75976984a39c3031bfbf8dcc0f12810468d79e5",
      "parents": [
        "319c5640ca2e5838e35faaddc47df00174dac1b5",
        "96a7b5a9c87ec3f8cadad5bffc06a82f9f4d86d8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 13:27:19 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 13:27:19 2014 -0800"
      },
      "message": "am 96a7b5a9: Merge \"Long mp3 metadata displays as corrupted file after transfer\"\n\n* commit \u002796a7b5a9c87ec3f8cadad5bffc06a82f9f4d86d8\u0027:\n  Long mp3 metadata displays as corrupted file after transfer\n"
    },
    {
      "commit": "96a7b5a9c87ec3f8cadad5bffc06a82f9f4d86d8",
      "tree": "4539c9f38c84a9121a12674731ca29cb8191f419",
      "parents": [
        "07a017d3ff9cb36e47649a9de28e469415eb8103",
        "014897f5aece2c6212418934bd4618326979f17a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 21:23:17 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 17 21:23:17 2014 +0000"
      },
      "message": "Merge \"Long mp3 metadata displays as corrupted file after transfer\""
    },
    {
      "commit": "1071915ad4ffb47825a946706f8fa73c0d22d7f8",
      "tree": "a67c0a6d91515f0fffb90e102d4897626c5f5d79",
      "parents": [
        "9c1aaa7fee4b17d3675af6108c5ff28f3a84c8ec",
        "b5ccb2d99b2af400c70777a6452f090ac14f5a96"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 20:15:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 20:15:08 2014 +0000"
      },
      "message": "Merge \"Make copy of audio_offload_info_t for future use\""
    },
    {
      "commit": "9c1aaa7fee4b17d3675af6108c5ff28f3a84c8ec",
      "tree": "49864dc7455fbd99a3ff468180742a046bbf697f",
      "parents": [
        "8b567a219c3c7673d0b17e2a4da7e9ac4e984c3c",
        "6146f60c87a8a9c66036325c66dea826d2e98f6f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 20:11:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 20:11:42 2014 +0000"
      },
      "message": "am 6146f60c: am 319c5640: am 07a017d3: Merge \"Added support for ID3v2 meta data in 3gp files\"\n\n* commit \u00276146f60c87a8a9c66036325c66dea826d2e98f6f\u0027:\n  Added support for ID3v2 meta data in 3gp files\n"
    },
    {
      "commit": "8b567a219c3c7673d0b17e2a4da7e9ac4e984c3c",
      "tree": "6164dc629c28f24af2cb84861976be127ff7724b",
      "parents": [
        "543140eb709a07bc386eb5f667a4a72e31dba56c",
        "fea77cb3c22dcb691f44b939c626ae3070212b73"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 20:11:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 20:11:41 2014 +0000"
      },
      "message": "am fea77cb3: am fd0daeb3: am 4cc47940: Merge \"Fix compile error in NuPlayerRenderer debug print\"\n\n* commit \u0027fea77cb3c22dcb691f44b939c626ae3070212b73\u0027:\n  Fix compile error in NuPlayerRenderer debug print\n"
    },
    {
      "commit": "543140eb709a07bc386eb5f667a4a72e31dba56c",
      "tree": "b48f2d74e75f6de5a8db09ac47eaf9caefc089ff",
      "parents": [
        "0ce5ca5e113d58cbcb7cb48615d6dbbf3fbe7c66",
        "dd5f4c8c4059f890e81b28b026a688febb4e1dd9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 20:00:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 20:00:48 2014 +0000"
      },
      "message": "Merge \"Move up initialization of mFormat, mStreamType, and mSharedBuffer earlier\""
    },
    {
      "commit": "319c5640ca2e5838e35faaddc47df00174dac1b5",
      "tree": "db03d45d4594d030509635bb678c0909150d9ede",
      "parents": [
        "fd0daeb3fd20ba1c0a0fae530ea263e382a811e5",
        "07a017d3ff9cb36e47649a9de28e469415eb8103"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 11:19:50 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 11:19:50 2014 -0800"
      },
      "message": "am 07a017d3: Merge \"Added support for ID3v2 meta data in 3gp files\"\n\n* commit \u002707a017d3ff9cb36e47649a9de28e469415eb8103\u0027:\n  Added support for ID3v2 meta data in 3gp files\n"
    },
    {
      "commit": "fd0daeb3fd20ba1c0a0fae530ea263e382a811e5",
      "tree": "c3086b6fd843643df992471390c686f622154745",
      "parents": [
        "cbf9e91a5ab186904d3dad21eae416c23ee13668",
        "4cc4794029998b21a1689794cd5bcbd5e4480ef6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 11:19:49 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 11:19:49 2014 -0800"
      },
      "message": "am 4cc47940: Merge \"Fix compile error in NuPlayerRenderer debug print\"\n\n* commit \u00274cc4794029998b21a1689794cd5bcbd5e4480ef6\u0027:\n  Fix compile error in NuPlayerRenderer debug print\n"
    },
    {
      "commit": "0ce5ca5e113d58cbcb7cb48615d6dbbf3fbe7c66",
      "tree": "b5f59ae15e5f5ea59a171f7677e2a8403361f80a",
      "parents": [
        "d0b33f63a9364364a827e77da26b112edf3c4d6e",
        "0cde076ddb283c84c3801a2df4cc3df99bd1577f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 19:15:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 19:15:57 2014 +0000"
      },
      "message": "Merge \"Cleanup createTrack error handling\""
    },
    {
      "commit": "d0b33f63a9364364a827e77da26b112edf3c4d6e",
      "tree": "2fc99dd12b5b0a261f880c926a3e903177cb7550",
      "parents": [
        "269a7e210949c4b28ba84dc71b9f99f6ef14f94e",
        "7103d9671ded507fd3f6938297019a32f71ea5a0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 18:54:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 18:54:09 2014 +0000"
      },
      "message": "Merge \"Remove dead code in AudioTrack::processAudioBuffer\""
    },
    {
      "commit": "269a7e210949c4b28ba84dc71b9f99f6ef14f94e",
      "tree": "a13375a41b19b19104625782f77b4f3ea3571410",
      "parents": [
        "a1ebc3b03d4dca534374c19e3c4f32ee687942e3",
        "d8a9d0220e84ae0b5049385aa9b1a0d8ea02b5bb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 18:11:54 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 18:11:54 2014 +0000"
      },
      "message": "Merge \"Cleanup loop termination logic in AudioRecord::obtainBuffer()\""
    },
    {
      "commit": "a1ebc3b03d4dca534374c19e3c4f32ee687942e3",
      "tree": "2efa82e62c51647410cb473392e811da6c4c4e0d",
      "parents": [
        "6d88aaf9cd810d96a4888dff8bd33d44cd01ccaa",
        "70c0bfbe5ec88dcc3efa2bd8df26f36cff1cf03a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 17:52:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 17:52:53 2014 +0000"
      },
      "message": "Merge \"Improve logs in AudioTrack::getMinFrameCount\""
    },
    {
      "commit": "6d88aaf9cd810d96a4888dff8bd33d44cd01ccaa",
      "tree": "4d40dd6357b17be74765038f349e1f917d499baf",
      "parents": [
        "6a507298357c9ff869b97db57a890e58bd6bdec0",
        "5e1f79baa5c7355effbd2c9183787d6604487908"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 17:10:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 17:10:47 2014 +0000"
      },
      "message": "Merge \"AudioRecord: fix unwanted overrun when restarting\""
    },
    {
      "commit": "07a017d3ff9cb36e47649a9de28e469415eb8103",
      "tree": "f712c1c4c38b3b23966f8cabed7ed37ed4194b5c",
      "parents": [
        "4cc4794029998b21a1689794cd5bcbd5e4480ef6",
        "328abde67f57c026ac44e927f9244c40832499c8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 17:08:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 17 17:08:51 2014 +0000"
      },
      "message": "Merge \"Added support for ID3v2 meta data in 3gp files\""
    },
    {
      "commit": "6a507298357c9ff869b97db57a890e58bd6bdec0",
      "tree": "7063a78765b7fd214a747fda6a7cfa4eaa939b89",
      "parents": [
        "32a7e0a5f7b000951b9adb80b17796f35b024816",
        "5f972c031d4061f4f037c9fda1ea4bd9b6a756cd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 16:33:35 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 16:33:35 2014 +0000"
      },
      "message": "Merge \"AudioRecord::getInputFramesLost() cleanup\""
    },
    {
      "commit": "4cc4794029998b21a1689794cd5bcbd5e4480ef6",
      "tree": "36f68dbc3e31c5f1a651b1842638dbe2fcbd2d1b",
      "parents": [
        "1e8a57c212d26c41325e950ed629244071acc326",
        "d6074f08cc37843e8c599b2ab4b16d87c3bc67eb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 16:04:36 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 17 16:04:36 2014 +0000"
      },
      "message": "Merge \"Fix compile error in NuPlayerRenderer debug print\""
    },
    {
      "commit": "32a7e0a5f7b000951b9adb80b17796f35b024816",
      "tree": "75d9dd61e3e3abe0c459650a97c57bac3780f8ca",
      "parents": [
        "a238b9b43a2b8dac60e0fd8700daa6cd4f644547",
        "2b2165c75790050810460c8de3f414876bce4c0e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 15:36:52 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 15:36:53 2014 +0000"
      },
      "message": "Merge \"Unify comments between AudioTrack and AudioRecord\""
    },
    {
      "commit": "b5ccb2d99b2af400c70777a6452f090ac14f5a96",
      "tree": "2285b78fd6e07eaf38b6e48e149fca91c2acc481",
      "parents": [
        "dd5f4c8c4059f890e81b28b026a688febb4e1dd9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 14:42:43 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 17:03:16 2014 -0800"
      },
      "message": "Make copy of audio_offload_info_t for future use\n\nChange-Id: I515970aa0660418d5d1640fb1bf477e112c89bdd\n"
    },
    {
      "commit": "dd5f4c8c4059f890e81b28b026a688febb4e1dd9",
      "tree": "f109b6d755352250744e91b22ca1eb567aeacd25",
      "parents": [
        "0cde076ddb283c84c3801a2df4cc3df99bd1577f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 10:26:32 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 17:03:08 2014 -0800"
      },
      "message": "Move up initialization of mFormat, mStreamType, and mSharedBuffer earlier\n\nThis will allow removal of most of the parameter list to createTrack_l.\n\nAlso check for valid stream type at client so we can log a better error\nmessage.\n\nChange-Id: Ia7176896d47fbb49106119fca26d9de8e7efe859\n"
    },
    {
      "commit": "0cde076ddb283c84c3801a2df4cc3df99bd1577f",
      "tree": "9f1d49f9fc52a5cedea8e0bd14555a70ab5772b0",
      "parents": [
        "a238b9b43a2b8dac60e0fd8700daa6cd4f644547"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 15:06:36 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 17:01:04 2014 -0800"
      },
      "message": "Cleanup createTrack error handling\n\nSimilar to cleanup done earlier for openRecord in this CL:\n    \u003e Change-Id: I84897dd7d30b370640b54e928f230604b873cb68\n\nBug: 10888816\nChange-Id: I804a47f898e0319a60a9bd58906bbb037e45cc25\n"
    },
    {
      "commit": "5e1f79baa5c7355effbd2c9183787d6604487908",
      "tree": "bec5fbb865e9c840a092ab18e0872f72ac787288",
      "parents": [
        "a238b9b43a2b8dac60e0fd8700daa6cd4f644547"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 15:45:21 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 11:53:03 2014 -0800"
      },
      "message": "AudioRecord: fix unwanted overrun when restarting\n\nApply the same fix to AudioRecord as this CL did for AudioTrack:\n    \u003e Change-Id: Id703f8dc092a6f07c905eee194054b4a978f979d\n\nDetails:\nWhen restarting an AudioRecord from stopped state, it is necessary\nto force refresh of mRemainingFrames by processAudioBuffer() as\nthe last read before stop() could be partial. No doing so will lead\ninto unnecessary sleep before filling the non contiguous part\nof the buffer returned by obtainBuffer() when processAudioBuffer()\nis executed for the first time after start().\n\nChange-Id: I0ff04648e990e97bad5ea3db5be0c4151250d5e1\n"
    },
    {
      "commit": "d8a9d0220e84ae0b5049385aa9b1a0d8ea02b5bb",
      "tree": "b5d225289ed7b931c53bd555999fdfa23b8df694",
      "parents": [
        "a238b9b43a2b8dac60e0fd8700daa6cd4f644547"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 15:46:38 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 11:51:05 2014 -0800"
      },
      "message": "Cleanup loop termination logic in AudioRecord::obtainBuffer()\n\nApply the same change to AudioRecord, that was already done for AudioTrack in this CL:\n    \u003e Change-Id: I0fc48117946364cb255afd653195498891f622bd\n\nIf the proxy-\u003eobtainBuffer at the end of the \"do\" loop fails with status\nDEAD_OBJECT, and the restoreRecord_l during the next trip of the \"do\"\nloop also fails, then the value of the buffer fields will be based on\nthe previous proxy-\u003eobtainBuffer that returned DEAD_OBJECT.  This will\nhave cleared the buffer, but it\u0027s tricky.  So instead explicitly clear\nthe buffer after restoreRecord_l, before breaking out of the loop.\n\nChange-Id: Ifc97f2ab7b8195d6b149502bb5d765d2983b07be\n"
    },
    {
      "commit": "70c0bfbe5ec88dcc3efa2bd8df26f36cff1cf03a",
      "tree": "f9a044e3ca073fb760e1d8f470f219bc2a307065",
      "parents": [
        "a238b9b43a2b8dac60e0fd8700daa6cd4f644547"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 15:47:01 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 11:46:40 2014 -0800"
      },
      "message": "Improve logs in AudioTrack::getMinFrameCount\n\nChange-Id: I8b478e6abdded26a43f32c131931939e9ae36fd7\n"
    },
    {
      "commit": "7103d9671ded507fd3f6938297019a32f71ea5a0",
      "tree": "5b5bb74201f1d035113988d177d14b27ca455981",
      "parents": [
        "a238b9b43a2b8dac60e0fd8700daa6cd4f644547"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 15:47:52 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 11:45:10 2014 -0800"
      },
      "message": "Remove dead code in AudioTrack::processAudioBuffer\n\nChange-Id: I0baefe9dc08bb5ec45d34698fc764caa160789d2\n"
    },
    {
      "commit": "8ff50e7526d24aca11713006933b8dcb64ef6be9",
      "tree": "ee376b9c28f6e18af6ef5c7772bef751d40a888e",
      "parents": [
        "a238b9b43a2b8dac60e0fd8700daa6cd4f644547"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 15:44:30 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 11:43:09 2014 -0800"
      },
      "message": "Use uint32_t sequence numbers for IAudioRecord\n\nThis makes it the same as for IAudioTrack.\n\nPreviously we had a mix of int, int32_t and uint32_t,\nwhich could cause comparisons to fail.\n\nChange-Id: Ic72ef650ee81f65db11e42ed16d818fdf3e310f4\n"
    },
    {
      "commit": "328abde67f57c026ac44e927f9244c40832499c8",
      "tree": "6a5fac74c193cc93afbfc20cf792eafd22da49a7",
      "parents": [
        "1e8a57c212d26c41325e950ed629244071acc326"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonyericsson.com",
        "time": "Thu Jan 27 14:01:24 2011 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Thu Jan 16 10:25:28 2014 +0900"
      },
      "message": "Added support for ID3v2 meta data in 3gp files\n\nAdded support for parsing ID3v2 meta data from\nthe ID32 chunk in 3gp files. The priority will be\n3gpp -\u003e ID3v2 -\u003e iTunes per field.\n\nChange-Id: I0282ecab58e3e5fa6bd738078d562c8bb8ce00ed\n"
    },
    {
      "commit": "a238b9b43a2b8dac60e0fd8700daa6cd4f644547",
      "tree": "7b3de67dfb786341e7d8e7518edf9616cbb56737",
      "parents": [
        "b1c8d9fbc69e2f103699d24a81c2406e52a94c9f",
        "07634f1f8f8a899eefba978945b482dd15dabdb8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jan 15 22:26:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 15 22:26:06 2014 +0000"
      },
      "message": "am 07634f1f: am cbf9e91a: am 1e8a57c2: Merge \"Avoid jumps to faulty position after seeks\"\n\n* commit \u002707634f1f8f8a899eefba978945b482dd15dabdb8\u0027:\n  Avoid jumps to faulty position after seeks\n"
    },
    {
      "commit": "cbf9e91a5ab186904d3dad21eae416c23ee13668",
      "tree": "7437b797bddaa76d461a5f0a7a1c64c8ee0b6ee3",
      "parents": [
        "3eccdde99f7063eba4e2788aa7c8c290f7a24120",
        "1e8a57c212d26c41325e950ed629244071acc326"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jan 15 14:18:14 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 15 14:18:14 2014 -0800"
      },
      "message": "am 1e8a57c2: Merge \"Avoid jumps to faulty position after seeks\"\n\n* commit \u00271e8a57c212d26c41325e950ed629244071acc326\u0027:\n  Avoid jumps to faulty position after seeks\n"
    },
    {
      "commit": "1e8a57c212d26c41325e950ed629244071acc326",
      "tree": "70380f1951c7dcb22a8a1d6aae23c30b4db02eb0",
      "parents": [
        "c7614eb7cf2e3e121baa3de26e3622974a163786",
        "5432aea4b1b107b722ddb507c610bdfc4c61c8aa"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jan 15 22:12:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 15 22:12:04 2014 +0000"
      },
      "message": "Merge \"Avoid jumps to faulty position after seeks\""
    },
    {
      "commit": "ac1954cb9a480a409e8cee4193fc534a6a29fbb6",
      "tree": "fd15f328d3a8df1f62d1cd85f3d5b73b4ea38623",
      "parents": [
        "dbed8955148dd2fe39584007c528e3a532f1a04e",
        "396fabdb6efcdac5aea3d9f559d1beedf6a4cedc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 15 18:51:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 15 18:51:03 2014 +0000"
      },
      "message": "Merge \"Document AudioTrack mFrameCount and mReqFrameCount better\""
    },
    {
      "commit": "dbed8955148dd2fe39584007c528e3a532f1a04e",
      "tree": "68eaa7a98f0b899f8afb52c3c74798287a69c4e1",
      "parents": [
        "5b27ccd67c845aa20a12a1fb58339e7e81e3d536",
        "efa6ea97022780b68e595e5326e30dbe2a799202"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 15 18:31:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 15 18:31:48 2014 +0000"
      },
      "message": "Merge \"Fix error handling in AudioSystem::getOutputForEffect\""
    },
    {
      "commit": "5f972c031d4061f4f037c9fda1ea4bd9b6a756cd",
      "tree": "f70d82aa480a0cbe854395362aba76fbb58315dc",
      "parents": [
        "5b27ccd67c845aa20a12a1fb58339e7e81e3d536"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 09:59:31 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 18:12:46 2014 -0800"
      },
      "message": "AudioRecord::getInputFramesLost() cleanup\n\nFixed bug that if the binder call failed (for example if the\nIAudioFlinger binder is dead), then getInputFramesLost was returning\ngarbage.  Now it correctly returns zero, which is the error value for\nthis method.\n\nThe type declarations for getInputFramesLost were inconsistent:\na mixture of unsigned int, size_t, and uint32_t.  Now it returns uint32_t\neverywhere, which is what the underlying HAL API returns.\n\nAdded a FIXME about the side effect behavior.  This will need review\nfor multi-client.\n\nChange-Id: Ifa2e117a87dbd0c1f2c892a31d1c3dd919bf1a0a\n"
    },
    {
      "commit": "5b27ccd67c845aa20a12a1fb58339e7e81e3d536",
      "tree": "8ffb3c26081bcc880ed7e651e5927b7e51aeaf56",
      "parents": [
        "23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9",
        "aea7ea06394bcb155972d82055d4ea59962e4051"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 15 01:36:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 15 01:36:48 2014 +0000"
      },
      "message": "Merge \"Use AUDIO_SESSION_ALLOCATE instead of 0\""
    },
    {
      "commit": "2b2165c75790050810460c8de3f414876bce4c0e",
      "tree": "d0051f908567bbd815ae5a163443f1f5809493ba",
      "parents": [
        "23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 08:53:36 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 16:01:20 2014 -0800"
      },
      "message": "Unify comments between AudioTrack and AudioRecord\n\nChange-Id: I00a1025e2891a1c96218b3c2187eaddda6614ebc\n"
    },
    {
      "commit": "23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9",
      "tree": "13f9b25c2dcc70506e3c743c817fce0998021be9",
      "parents": [
        "84fba38b60c2ddb02b9a787f56be88fc084b4a16"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 10:37:17 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 14:20:18 2014 -0800"
      },
      "message": "Document locking rules for mFlags, and fix discrepancies\n\nChange-Id: Id45ba544cc84133ed5e578fb4fd8a11b62211dc1\n"
    },
    {
      "commit": "84fba38b60c2ddb02b9a787f56be88fc084b4a16",
      "tree": "93537d89d01de689dd05d21d52181a6faf06950a",
      "parents": [
        "7e47f25f9031e231f5fdbbb789435485d1af45af",
        "2c6c5294388e251ebc1e00d6c8785190561c27fc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 20:36:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 14 20:36:18 2014 +0000"
      },
      "message": "Merge \"Fix race in AudioTrack::getParameters()\""
    },
    {
      "commit": "7e47f25f9031e231f5fdbbb789435485d1af45af",
      "tree": "89986e4eb1e02714758e391b5cc0ce8223cb1b29",
      "parents": [
        "18a3609d6611714059ef8a75a0106c6be6341748",
        "b1bef51fec06e8bceec914d1b48b411d3ff2adff"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 17:33:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 14 17:33:33 2014 +0000"
      },
      "message": "Merge \"Improve error logging for getOutputSamplingRate\""
    },
    {
      "commit": "41721bb796da589f8a669d1db7687a0da8f88761",
      "tree": "1b96e9960396c6a8aed03afe63911c721e30a132",
      "parents": [
        "aaa42e57797db140ead1068dce6340ffd33fa005"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 09:59:51 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 13:58:58 2014 -0800"
      },
      "message": "Fix race condition in AudioRecord::pause followed by start\n\nBug: 11148722\nChange-Id: Ia1e14133d73ac301fe06a047e70a573911822630\n"
    },
    {
      "commit": "b1bef51fec06e8bceec914d1b48b411d3ff2adff",
      "tree": "983ad9a9d60191bb82b3537280229312bd6c0554",
      "parents": [
        "aaa42e57797db140ead1068dce6340ffd33fa005"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 10:25:53 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 12:05:17 2014 -0800"
      },
      "message": "Improve error logging for getOutputSamplingRate\n\nChange-Id: I3b52402a663b27efe1d7c6a4f684521f33f3ff8f\n"
    },
    {
      "commit": "2c6c5294388e251ebc1e00d6c8785190561c27fc",
      "tree": "9f61bedb0d81ee785c2ea86e198d4c18d6bc84b7",
      "parents": [
        "aaa42e57797db140ead1068dce6340ffd33fa005"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 10:29:08 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 11:48:33 2014 -0800"
      },
      "message": "Fix race in AudioTrack::getParameters()\n\nmOutput is protected by mLock.\n\nChange-Id: Id02e627062855ca60f28bd8961b1d5f44939c727\n"
    },
    {
      "commit": "aaa42e57797db140ead1068dce6340ffd33fa005",
      "tree": "3a42c6ef70959a6528b2706f06d517cf767ca8db",
      "parents": [
        "03f696e3eb89c0642f9a2b761ff2cfc6af003d16",
        "081559cc5afb6c8f2f9847e1de739f66a5a07a6b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 11 05:51:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 11 05:51:27 2014 +0000"
      },
      "message": "am 081559cc: am 514ac2ba: am e311b15c: Merge \"Fix c++11 narrowing\"\n\n* commit \u0027081559cc5afb6c8f2f9847e1de739f66a5a07a6b\u0027:\n  Fix c++11 narrowing\n"
    },
    {
      "commit": "514ac2bae9fc32327cac3ba22c4862e8b5ef259e",
      "tree": "d777d2a54e0fb1654fe81e186b0168ddf4c1f857",
      "parents": [
        "d8d45edf6a2714fff051d67aa1ac83d74bb0c6e0",
        "e311b15cf821f65f68af2cdfe01e864cbc9a86ce"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 10 20:25:46 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 10 20:25:46 2014 -0800"
      },
      "message": "am e311b15c: Merge \"Fix c++11 narrowing\"\n\n* commit \u0027e311b15cf821f65f68af2cdfe01e864cbc9a86ce\u0027:\n  Fix c++11 narrowing\n"
    },
    {
      "commit": "e311b15cf821f65f68af2cdfe01e864cbc9a86ce",
      "tree": "442e530b17dc541fbff5b00427859f5c50bccd16",
      "parents": [
        "61540b5fe82cad1c6baa018f02bd2554e62e4364",
        "3b546caeb0a576c4d7d7f1e8d2fdfed2bb8bdeed"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 11 04:20:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 11 04:20:11 2014 +0000"
      },
      "message": "Merge \"Fix c++11 narrowing\""
    },
    {
      "commit": "396fabdb6efcdac5aea3d9f559d1beedf6a4cedc",
      "tree": "28a5b52e5cb0632088d48cafff65cd271518b183",
      "parents": [
        "6340829ffb9ff7586ffb88a214f56340d4c70d60"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 08:54:23 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 10 10:53:22 2014 -0800"
      },
      "message": "Document AudioTrack mFrameCount and mReqFrameCount better\n\nand remove unnecessary initialization of mFrameCount in set().\n\nChange-Id: I9effeb0a6dd035ca02fe77f6992c55d9515b4df6\n"
    },
    {
      "commit": "efa6ea97022780b68e595e5326e30dbe2a799202",
      "tree": "72c95e364d998d95a26aa5b3812e0cb57d48b07f",
      "parents": [
        "4d973f3894a50413f21e7db284e96afc87f57698"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 09:10:43 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 09 15:27:09 2014 -0800"
      },
      "message": "Fix error handling in AudioSystem::getOutputForEffect\n\nand AudioPolicyService::getOutputForEffect.\nThe conventional error value for audio_io_handle_t is 0,\nnot a status_t cast to audio_io_handle_t.\n\nChange-Id: I34b3fd1a50f3fa1cbf39f32eea1911112a4e094a\n"
    },
    {
      "commit": "0e94bd33901715bee1200a3c69d1a36d4d008b79",
      "tree": "46961c7a4cfd35672600399d07f58a8c79e73a89",
      "parents": [
        "e2b2858b6ff0249b0c3bd6cb042afc8cf1fd78cf",
        "9dfe2ae13ef557a3b6c245bc02be8b5c71ef3fa9"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 09 17:56:45 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 09 17:56:45 2014 +0000"
      },
      "message": "am 9dfe2ae1: am 586dda1d: am 5ca94d2f: Merge \"HLS: Fixed rounding error with decimal segment duration\"\n\n* commit \u00279dfe2ae13ef557a3b6c245bc02be8b5c71ef3fa9\u0027:\n  HLS: Fixed rounding error with decimal segment duration\n"
    },
    {
      "commit": "586dda1d0845612af88e3f4ffc46ed38e304ef85",
      "tree": "9328d0a0984226824c21559eaf571af1f7f4f79d",
      "parents": [
        "f60cfa7faa0bdde0a4f302f1272d6aa869588cc4",
        "5ca94d2f3c4662aed7b66a97b77eb2d1948464ad"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 09 09:50:14 2014 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 09 09:50:14 2014 -0800"
      },
      "message": "am 5ca94d2f: Merge \"HLS: Fixed rounding error with decimal segment duration\"\n\n* commit \u00275ca94d2f3c4662aed7b66a97b77eb2d1948464ad\u0027:\n  HLS: Fixed rounding error with decimal segment duration\n"
    },
    {
      "commit": "e2b2858b6ff0249b0c3bd6cb042afc8cf1fd78cf",
      "tree": "1a60304c4f891f1f76d4b0fe2ce610a6a38f3d81",
      "parents": [
        "f344c6cef51df9974640557f7baccb537492fa54",
        "66a0467fdddada4caabd0f0a999fbb367fea7bee"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 09 17:44:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 09 17:44:58 2014 +0000"
      },
      "message": "Merge \"Cleanup AudioTrack::getMinFrameCount error handling\""
    },
    {
      "commit": "5ca94d2f3c4662aed7b66a97b77eb2d1948464ad",
      "tree": "71cc1406de9a2a4be94e052a00f2f2ad2dd7638c",
      "parents": [
        "99044adc6e209d31e9c5308d960e2bd5f6999f85",
        "abd5feeea499ee7337125223df4ea22cae19cd20"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 09 17:43:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 09 17:43:41 2014 +0000"
      },
      "message": "Merge \"HLS: Fixed rounding error with decimal segment duration\""
    },
    {
      "commit": "f344c6cef51df9974640557f7baccb537492fa54",
      "tree": "6917f715f8c2919de8998b6e94a792c251e14b31",
      "parents": [
        "9d37ea95c51157cfc493409d18ab07df0ec0ad58",
        "5446e541367061b53f45f3fd4600f9060680bca3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 09 17:41:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 09 17:41:03 2014 +0000"
      },
      "message": "Merge \"Cleanup AudioSystem::getInputBufferSize error handling and caching\""
    },
    {
      "commit": "9d37ea95c51157cfc493409d18ab07df0ec0ad58",
      "tree": "77137cb7df76c7cdf38e6321dcf4e308d62d3883",
      "parents": [
        "0bcfa88149e2404b34d13c622e3921e1b846cdf8",
        "f94006ca0f30c27868c284e553f57bf467ae92bc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 09 17:31:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 09 17:31:14 2014 +0000"
      },
      "message": "Merge \"Cleanup error handling in AudioSystem get methods\""
    },
    {
      "commit": "66a0467fdddada4caabd0f0a999fbb367fea7bee",
      "tree": "eec798c0690b0be60c3e9dd4bb2d691901855e9f",
      "parents": [
        "4d973f3894a50413f21e7db284e96afc87f57698"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 08:53:44 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 11:56:05 2014 -0800"
      },
      "message": "Cleanup AudioTrack::getMinFrameCount error handling\n\nGuarantee to return a non-zero frameCount for return status NO_ERROR;\n\nReturn the correct specific status_t if any of the AudioSystem APIs fail,\ninstead of the generic NO_INIT.\n\nAPI change: getMinFramCount no longer defaults to zero on error, so\ncallers _must_ check the return status.  This change makes\ngetMinFrameCount more like other APIs.  All known callers were reviewed,\nand they do check the return status.\n\nChange-Id: I4a8342a75ee89a068c23c84b8380ed9d1b968507\n"
    },
    {
      "commit": "f94006ca0f30c27868c284e553f57bf467ae92bc",
      "tree": "9e164b25b8db71ce5b970307d05979e8cdf9e2bd",
      "parents": [
        "4d973f3894a50413f21e7db284e96afc87f57698"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 08:56:06 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 11:05:41 2014 -0800"
      },
      "message": "Cleanup error handling in AudioSystem get methods\n\nDon\u0027t return zero sample rate or frame count without an error.\n\nChange-Id: I052d841080ed33e4f081ae9825a2f33dff444fb9\n"
    },
    {
      "commit": "5446e541367061b53f45f3fd4600f9060680bca3",
      "tree": "aab5a964fa730bc79bad87c2904177019e856827",
      "parents": [
        "4d973f3894a50413f21e7db284e96afc87f57698"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 08:58:53 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 10:05:05 2014 -0800"
      },
      "message": "Cleanup AudioSystem::getInputBufferSize error handling and caching\n\nPreviously, if the IAudioFlinger::getInputBufferSize failed,\nit would return NO_ERROR but a zero buffer size value, which could\nconfuse the caller.  Now it returns BAD_VALUE in this case.\n\nAlso it would still cache the zero buffer size.  Now it does\nnot cache on failure.\n\nRemoved over-initialization of the cache globals.\n\nChange-Id: I6835fcb56fe52535e018fc8c0c242115221b5d85\n"
    },
    {
      "commit": "f4512c9672110c11b7bdeea0073a54bfae9c8f87",
      "tree": "ef0de5a6ea12b1b5495c854a18922902b0a2f257",
      "parents": [
        "c21623371d947b2c0bf9c4029bcc8d33c590a8ef"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 18 15:47:49 2013 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jan 08 09:50:40 2014 -0800"
      },
      "message": "Support more channel configurations in MPEG4Extractor\n\nAdd support for streams having an audio specific configuration with the\n  channel_configuration equal to zero.\nAdd support for 6.1 and 7.1 channel configurations.\n\nBug 9428126\n\nChange-Id: Iaac2516139093579c52095d4f74ae4428f8e368a\n"
    },
    {
      "commit": "d6074f08cc37843e8c599b2ab4b16d87c3bc67eb",
      "tree": "b9efca36c8d9890fcd86b33be746548a67e907c3",
      "parents": [
        "8115f4b206dbd04c620f062feb3c7785e2732ab3"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonymobile.com",
        "time": "Tue Oct 15 09:54:08 2013 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Fri Jan 03 13:58:02 2014 +0100"
      },
      "message": "Fix compile error in NuPlayerRenderer debug print\n\nWhen activating verbose log prints in NuPlayerRenderer the build\nfails because a variable have changed but the log print hasn\u0027t been\nupdated.\n\nChange-Id: I3089b087d296c37dfe6379d7e75d5892912fef96\n"
    },
    {
      "commit": "c21623371d947b2c0bf9c4029bcc8d33c590a8ef",
      "tree": "3ee14a53e99d92e1e9eac455b64bc69dcd4c8eaf",
      "parents": [
        "554a69a80db4a1f146f53d5ab525cc74c7b64330"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 18 09:43:21 2013 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 27 09:54:14 2013 -0800"
      },
      "message": "Update AAC decoder wrapper to latest FDK API for output channel count\n\nRename decoder parameter for the maximum number of PCM output channels,\n according to FDK AAC decoder interface, as defined in aacdecoder_lib.h\n\nBug 9428126\n\nChange-Id: I2f0f6ca848bdbc8657d8dea589b03238245c0eaf\n"
    },
    {
      "commit": "e6144d7a558c74e508a5c103cdc462c3cd7cf508",
      "tree": "33c25fba8c56455027abbc775361f9e2864b9a97",
      "parents": [
        "864866a6530c37f2f138d78343dc03bf0d2ef9b4",
        "42d89e5de5f401c7e81e1961061d07ae490c9d29"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 21 01:37:03 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 21 01:37:03 2013 +0000"
      },
      "message": "am 42d89e5d: am b904d53f: am 8115f4b2: Merge \"stagefright: do not offload LD-AAC decoding\"\n\n* commit \u002742d89e5de5f401c7e81e1961061d07ae490c9d29\u0027:\n  stagefright: do not offload LD-AAC decoding\n"
    },
    {
      "commit": "864866a6530c37f2f138d78343dc03bf0d2ef9b4",
      "tree": "933798de3677efb227a7f2495d9c031b1b1cffac",
      "parents": [
        "a36ff9fdf912b54f639118578e8d9582e1d70dca",
        "5f7483eb6a03b3a14283c1ef09ed65bd3e015b96"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 21 01:30:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 21 01:30:20 2013 +0000"
      },
      "message": "am 5f7483eb: am 5a086733: am 1777ed30: Merge \"stagefright: fix offloading HE-AAC sampling rate.\"\n\n* commit \u00275f7483eb6a03b3a14283c1ef09ed65bd3e015b96\u0027:\n  stagefright: fix offloading HE-AAC sampling rate.\n"
    },
    {
      "commit": "b904d53ffaaafddb2f9b6f469b73d2a3bec3dd0d",
      "tree": "22e1841807882f29e91c14bc49815e4305337d0e",
      "parents": [
        "5a086733f8a7472bee85b371e9d02874c9317f3b",
        "8115f4b206dbd04c620f062feb3c7785e2732ab3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 20 17:26:47 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 20 17:26:47 2013 -0800"
      },
      "message": "am 8115f4b2: Merge \"stagefright: do not offload LD-AAC decoding\"\n\n* commit \u00278115f4b206dbd04c620f062feb3c7785e2732ab3\u0027:\n  stagefright: do not offload LD-AAC decoding\n"
    },
    {
      "commit": "5a086733f8a7472bee85b371e9d02874c9317f3b",
      "tree": "a79b4612342c38b8cd1a07d5ef40872ab92685f0",
      "parents": [
        "d497b648ccb316e3fbda4c081f7c3010318bbcd9",
        "1777ed30bfb3b9c1edc037a1b5482d5ab8f28b9b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 20 17:23:27 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 20 17:23:27 2013 -0800"
      },
      "message": "am 1777ed30: Merge \"stagefright: fix offloading HE-AAC sampling rate.\"\n\n* commit \u00271777ed30bfb3b9c1edc037a1b5482d5ab8f28b9b\u0027:\n  stagefright: fix offloading HE-AAC sampling rate.\n"
    },
    {
      "commit": "db170bb1cae145d07efc803a3c208963de0c6087",
      "tree": "bc7f1dedcbebc5aef585e66c2baa67df8d1d8bf4",
      "parents": [
        "1777ed30bfb3b9c1edc037a1b5482d5ab8f28b9b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 11:51:42 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 21 01:19:06 2013 +0000"
      },
      "message": "stagefright: do not offload LD-AAC decoding\n\nFor now, do not offload LD and ELD AAC decoding because there\nis no way to know if it is supported by the audio DSP implementation.\nThe longer term fix will be to have mapMimeToAudioFormat() use the\naudio object type in track metadata to refine the AAC format and the\naudio HAL list supported AAC profiles.\n\nChange-Id: Iaa88ecf3f4ae42ad48c1b42a9b007dd80eb88147\n"
    },
    {
      "commit": "a36ff9fdf912b54f639118578e8d9582e1d70dca",
      "tree": "a0dbef5641c2e6e51fdc09503f3a26cbade6d748",
      "parents": [
        "73b61d3c2906d6d70a0843c1f0470f514c312956",
        "7c7be1e05634d96d08210efb4bdeb012ffba440d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 20 23:47:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 20 23:47:09 2013 +0000"
      },
      "message": "Merge \"Fix some (but not all) unused parameter warnings\""
    },
    {
      "commit": "73b61d3c2906d6d70a0843c1f0470f514c312956",
      "tree": "2e95efe147e7c01ac59421a5b4e55b26853457c7",
      "parents": [
        "8b07579bc94d10a39eb86dccec7f31981a53283a",
        "c23885ebb142b9da31543789ecc3f7cf7111bc67"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 20 23:45:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 20 23:45:55 2013 +0000"
      },
      "message": "Merge \"Add versions of get/SetParameters without I/O handle\""
    },
    {
      "commit": "aea7ea06394bcb155972d82055d4ea59962e4051",
      "tree": "dd806ad4f77dc62e4fbd0b88022ee5b8b2403802",
      "parents": [
        "bd72d22097f78f5bd668b223bc8c94e351311e31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 26 09:25:47 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 20 12:30:29 2013 -0800"
      },
      "message": "Use AUDIO_SESSION_ALLOCATE instead of 0\n\nAlso fix a couple of places where we were using AUDIO_SESSION_OUTPUT_MIX,\nwhich happens to also be equal to 0, but has a different meaning.\n\nChange-Id: I90e39be3b89f5021a96d9e3b8d10929013ca977f\n"
    },
    {
      "commit": "014897f5aece2c6212418934bd4618326979f17a",
      "tree": "7875866e28fecefccf204bfcfe157e4ed0e74552",
      "parents": [
        "1f95555c69219180f792ac742cc0e386496c29e6"
      ],
      "author": {
        "name": "Yin Liu",
        "email": "yin2.liu@sonymobile.com",
        "time": "Tue Dec 04 09:19:53 2012 +0100"
      },
      "committer": {
        "name": "Zoran Jovanovic",
        "email": "zoran.jovanovic@sonymobile.com",
        "time": "Fri Dec 20 20:56:12 2013 +0100"
      },
      "message": "Long mp3 metadata displays as corrupted file after transfer\n\nCut the metadata to 1 Byte and return in function\ngetObjectPropertyList in order to show it properly on a PC.\n\nChange-Id: Iefacf9fa86c20ece2572e6d95d35877a94066fe7\n"
    },
    {
      "commit": "74935e44734c1ec235c2b6677db3e0dbefa5ddb8",
      "tree": "dc7bc2c9f496097e95ff36440fcd79886517ba53",
      "parents": [
        "bd72d22097f78f5bd668b223bc8c94e351311e31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 08:56:45 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 20 08:40:55 2013 -0800"
      },
      "message": "Replace control block frameCount_ by explicit in/out parameter\n\nin IAudioFlinger::createTrack and IAudioFlinger::openRecord\n\nChange-Id: I09c644c80e92c8e744b1b99055988a2588b2a83d\n"
    },
    {
      "commit": "8b07579bc94d10a39eb86dccec7f31981a53283a",
      "tree": "a295783e6f786d68492b42df32b212ab587b6e03",
      "parents": [
        "a9fa836ddfcb0cc91d1ff9edeeba4c8b8047bd8a",
        "be08f6a6688f3b1ae6914fbe800953c9bfb13c45"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 20 15:35:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 20 15:35:48 2013 +0000"
      },
      "message": "Merge \"Fix compile warning / incomplete initialization\""
    },
    {
      "commit": "7c7be1e05634d96d08210efb4bdeb012ffba440d",
      "tree": "662376e86a6d2890e18066065fd8cb031bcb6be4",
      "parents": [
        "bd72d22097f78f5bd668b223bc8c94e351311e31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 16:34:04 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 17:17:58 2013 -0800"
      },
      "message": "Fix some (but not all) unused parameter warnings\n\nChange-Id: Ia99e23a0b46db3f3e6aa46f9018e63c14f4af369\n"
    },
    {
      "commit": "c23885ebb142b9da31543789ecc3f7cf7111bc67",
      "tree": "d9efe1cf2119c46e5822c5bb47881e9446f200fb",
      "parents": [
        "bd72d22097f78f5bd668b223bc8c94e351311e31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 16:35:18 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 17:00:04 2013 -0800"
      },
      "message": "Add versions of get/SetParameters without I/O handle\n\nThis is a step towards hiding I/O handles from application level,\nas much as possible.\n\nChange-Id: I30f4171d5dcf77f8e8eb332ce2e9245b30f5f2e1\n"
    },
    {
      "commit": "be08f6a6688f3b1ae6914fbe800953c9bfb13c45",
      "tree": "9b7564fafb53a10010310140a31b3e0fa5f97c16",
      "parents": [
        "bd72d22097f78f5bd668b223bc8c94e351311e31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 09:09:33 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 16:26:26 2013 -0800"
      },
      "message": "Fix compile warning / incomplete initialization\n\nChange-Id: Ib4accf99be800988e081f96222e1ee73538221ec\n"
    },
    {
      "commit": "00307ade843ac9219ffb9a351a3145ec2927ea51",
      "tree": "f45ddac110417238522526b14a8b0bd7d6493150",
      "parents": [
        "1f95555c69219180f792ac742cc0e386496c29e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 11:16:54 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 19 11:53:12 2013 -0800"
      },
      "message": "stagefright: fix offloading HE-AAC sampling rate.\n\nFix HE AAC SBR sampling rate reading for explicit\nsignaling.\n\nBug: 11697128.\nChange-Id: Ifec0ab9d48d9293f6774ec1efd9da9445994cb7c\n"
    },
    {
      "commit": "abd5feeea499ee7337125223df4ea22cae19cd20",
      "tree": "cafee3ff937b8af763d12bce413563df1dda8837",
      "parents": [
        "1f95555c69219180f792ac742cc0e386496c29e6"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonymobile.com",
        "time": "Tue Dec 17 09:53:18 2013 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Thu Dec 19 13:48:04 2013 +0900"
      },
      "message": "HLS: Fixed rounding error with decimal segment duration\n\nIf segment duration is specified with decimal value only the\ninteger value will be used, causing the stream duration to\nbe wrong.\n\nReported to Android public issue tracker:\nhttps://code.google.com/p/android/issues/detail?id\u003d56223\n\nChange-Id: I34fb7a81af6ad3d9a214228cfe3724636ebf5ab5\n"
    },
    {
      "commit": "5432aea4b1b107b722ddb507c610bdfc4c61c8aa",
      "tree": "4114d0788ef523b2aab2838d182c8d0a2dcfb5eb",
      "parents": [
        "1f95555c69219180f792ac742cc0e386496c29e6"
      ],
      "author": {
        "name": "Roger1 Jonsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Thu Oct 11 10:32:33 2012 +0200"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Wed Dec 18 17:39:24 2013 +0900"
      },
      "message": "Avoid jumps to faulty position after seeks\n\nWhen seeking multiple times it is possible that some seeks\nare discarded in AwesomePlayer, which causes unwanted jumps\nto faulty positions.\nThe reason is that a seek flag is reset twice in AwesomePlayer.\nAt first when the video seek is completed and then again when the\naudio seek is completed. If a new seek is made after the previous\nvideo seek completed but before the previous audio seek completed,\nthe new seek position is discarded by the previous audio seek\ncompletion.\n\nThis fix makes sure that the seek flag is reset only when video\nhas completed the seek.\n\nChange-Id: I8f8741d4cb8682345f1d1855bbad57c05f4e3c8d\n"
    },
    {
      "commit": "785411486ac326f28ad629ccd08b030345fbb575",
      "tree": "a6bfd9b255278f4c88443061efc91b085a05c18c",
      "parents": [
        "b69e0c3976144a7e297b5cb1823c6a67bc88bcf8",
        "33425f660affa39da98aeb9735b82cc00dbd47a0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Dec 18 05:54:13 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 18 05:54:13 2013 +0000"
      },
      "message": "am 33425f66: am d497b648: am 1f95555c: Merge \"libeffects: do not use GNU old-style field designators\"\n\n* commit \u002733425f660affa39da98aeb9735b82cc00dbd47a0\u0027:\n  libeffects: do not use GNU old-style field designators\n"
    },
    {
      "commit": "d497b648ccb316e3fbda4c081f7c3010318bbcd9",
      "tree": "d548165a6107cdcb5423adac3ff2610c2dff5a73",
      "parents": [
        "35da47e5d55392e6adbc97efaf181cb1dd259c04",
        "1f95555c69219180f792ac742cc0e386496c29e6"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Dec 17 20:17:23 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 17 20:17:23 2013 -0800"
      },
      "message": "am 1f95555c: Merge \"libeffects: do not use GNU old-style field designators\"\n\n* commit \u00271f95555c69219180f792ac742cc0e386496c29e6\u0027:\n  libeffects: do not use GNU old-style field designators\n"
    },
    {
      "commit": "9803acb6b2c1b9c01444e0c8c0124adbe9a7157a",
      "tree": "45a994000490f3ec7a346c673dfaf21228c8b025",
      "parents": [
        "274cc85dcb255185838705a91dba00efa52bf436"
      ],
      "author": {
        "name": "synergy dev",
        "email": "synergye@codefi.re",
        "time": "Tue Dec 17 17:48:51 2013 -0800"
      },
      "committer": {
        "name": "synergy dev",
        "email": "synergye@codefi.re",
        "time": "Tue Dec 17 17:59:49 2013 -0800"
      },
      "message": "libeffects: do not use GNU old-style field designators\n\nAvoiding the use of GCC extensions improves code portability\n\nChange-Id: I9edbedc5c8ad4aa46ca54bc2e28280441431a530\n"
    },
    {
      "commit": "fd9b01b92a95f94d2d3a8b0ee5973756784fe05f",
      "tree": "5f50d11e73f6264bab28bfea76afc3973bf13e8d",
      "parents": [
        "98147613fd3b1dc2938e3f658641c9f2139eb9ec"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Dec 17 14:10:46 2013 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Dec 17 14:27:17 2013 -0800"
      },
      "message": "stagefright: Fix issue with tracking media format in packet source\n\nMedia format in AnotherPacketSource is now tracked across discontinuities.\nThis fixes a bug where format was set on queueAccessUnit and cleared on\ndequeueAccessUnit, thereby allowing it to remain cleared.\n\nChange-Id: I20975a630443f4a223a2b4344e8244f34b9560b9\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 12060952\n"
    }
  ],
  "next": "35da47e5d55392e6adbc97efaf181cb1dd259c04"
}
