)]}'
{
  "log": [
    {
      "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": "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": "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": "9a2a29ce9ea69382aafd8b895b80f7bbd028cb00",
      "tree": "2c927ccf503d820a28915f5b0d19ac84e4a11e28",
      "parents": [
        "1071915ad4ffb47825a946706f8fa73c0d22d7f8",
        "d631d962a831de8b7614b14d7368eae60c816893"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 21:13:05 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 17 21:13:06 2014 +0000"
      },
      "message": "Merge \"Document the reference count rules for I/O handles\""
    },
    {
      "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": "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": "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": "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": "d631d962a831de8b7614b14d7368eae60c816893",
      "tree": "b60bef3f42918b00bd022cfd4e8e9585d687d34d",
      "parents": [
        "b5ccb2d99b2af400c70777a6452f090ac14f5a96"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 12:31:12 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 17:23:52 2014 -0800"
      },
      "message": "Document the reference count rules for I/O handles\n\nChange-Id: Ia7cd27ad84bbd7bf2657011057f89386f938a807\n"
    },
    {
      "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": "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": "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": "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": "18a3609d6611714059ef8a75a0106c6be6341748",
      "tree": "e584f50beb01c638839d18a075aafa8f1e8c86ed",
      "parents": [
        "41721bb796da589f8a669d1db7687a0da8f88761",
        "1c5977d03935be8c385e90501b34083714fbdab1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 14 17:11:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 14 17:11:52 2014 +0000"
      },
      "message": "Merge \"Remove obsolete AudioTrack::processStreamEnd()\""
    },
    {
      "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": "1c5977d03935be8c385e90501b34083714fbdab1",
      "tree": "eacd5ae9191d7f05d79c836abdc4cf9bc7f30533",
      "parents": [
        "aaa42e57797db140ead1068dce6340ffd33fa005"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 10:22:41 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 13 11:43:59 2014 -0800"
      },
      "message": "Remove obsolete AudioTrack::processStreamEnd()\n\nChange-Id: I7c01b9d2e109acf8c393d2c3b7b1985f6647d96c\n"
    },
    {
      "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": "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": "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": "4d973f3894a50413f21e7db284e96afc87f57698",
      "tree": "b78b0b2a741527513258ff0cbc991c11d6b21d2a",
      "parents": [
        "c475546b6df3b8febc0191e5895f4546a0abd52f",
        "6a5e79733c760d7555aacec53c8bd21e8516c0a1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 08 00:21:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 08 00:21:03 2014 +0000"
      },
      "message": "Merge \"Remove unnecessary defaults for parameters in AudioSystem\""
    },
    {
      "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": "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": "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": "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": "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": "6a5e79733c760d7555aacec53c8bd21e8516c0a1",
      "tree": "7ce9f73d42d72446a588bee157424dee9f1c862a",
      "parents": [
        "bd72d22097f78f5bd668b223bc8c94e351311e31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 16:35:06 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 19 17:09:50 2013 -0800"
      },
      "message": "Remove unnecessary defaults for parameters in AudioSystem\n\nChange-Id: I0ee7bc13cf64f50b1ea780f4d99899aed20421a0\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": "47f3f5a119194d4c06815453be9950ba112c8e3e",
      "tree": "60f1d74de1ab21c097002b76fbedf30a4fce2608",
      "parents": [
        "bd72d22097f78f5bd668b223bc8c94e351311e31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 17 16:14:04 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 17 16:16:24 2013 -0800"
      },
      "message": "Fix bug in test-resample\u0027s AudioBufferProvider\n\nThe contract for AudioBufferProvider::releaseBuffer() was missing.\n\nBug: 12194314\nChange-Id: I2fcf75e7b8eaf6db34f360206d79457a04a73565\n"
    },
    {
      "commit": "51d166ec7985949fa69262f213a4162708ebe81e",
      "tree": "f2fb149165426fbc8e1805b8c8516f7353e8e126",
      "parents": [
        "5893736dc1776008026e660526d34943ea888fd6",
        "9060d498be0c54d3caf84e2dbf1ba62516b3e76e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 17 14:11:13 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 17 14:11:13 2013 -0800"
      },
      "message": "am 9060d498: Merge \"update offloaded audio track sampling rate\"\n\n* commit \u00279060d498be0c54d3caf84e2dbf1ba62516b3e76e\u0027:\n  update offloaded audio track sampling rate\n"
    },
    {
      "commit": "5e49afd05566820517747b9a8071c99ec0918328",
      "tree": "0dd9697822c0bd70f03bb776bc78e2da60f28991",
      "parents": [
        "a67c76538fff102cd44b2f38dd073df5f2a33605"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 17:16:50 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 17 13:41:37 2013 -0800"
      },
      "message": "update offloaded audio track sampling rate\n\nAudioPlayer must read the sampling rate from offloaded audio sinks\nwhenever a new time position is computed as the decoder can update\nthe sampling rate on the fly.\n\nChange-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88\n"
    },
    {
      "commit": "544ad2be674423238c47650d2c8588ba7dfc9ed2",
      "tree": "1167d14b0e345cd7ad6c2a415a7134c915507b86",
      "parents": [
        "35a9e7d49ff5ff99fedb0bf2a35c39f7ea5a2f9e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 13 14:18:21 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 11 10:28:44 2013 -0800"
      },
      "message": "Better character set encoding detection\n\nId3 tags are supposed to be ISO-8859-1 or unicode, but often aren\u0027t.\nTo better detect the real encoding we now use ICU to detect possible\nencodings for a given byte sequence, then apply additional heuristics\nto determine the most likely one.\nb/5564857\n\nChange-Id: I53bc83b006433da5c2f2ccfcd770ddb3a26b64d0\n"
    },
    {
      "commit": "7e3c19fbead7af39b3c0ca3d170406a98f97dbd0",
      "tree": "c27b504b5ea16bd1d895c9ae4379b850640cba49",
      "parents": [
        "87b009dec36f8dea6e804ae7dee9d6fc0c661af6",
        "9bb976e1c78048081cf9df4d8a1db67311413e5b"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Nov 26 06:03:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 26 06:03:21 2013 +0000"
      },
      "message": "Merge \"Avoid the call to CameraSourceTimeLapse::trySettingVideoSize if initialization failed in the parent class ctor CameraSource::CameraSource.\""
    },
    {
      "commit": "9bb976e1c78048081cf9df4d8a1db67311413e5b",
      "tree": "90f633078dd96d51cf05b28c3bf8d69b3ca0bda9",
      "parents": [
        "0f3984ed3271484e223826e8a2e5f70c4111e08f"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Nov 22 12:58:43 2013 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Nov 22 17:29:02 2013 -0800"
      },
      "message": "Avoid the call to CameraSourceTimeLapse::trySettingVideoSize if initialization\nfailed in the parent class ctor CameraSource::CameraSource.\n\nBug: 11636771\nChange-Id: I5e6bffc1ebeeb1c2b84d6ed2049b2b3676ac046a\n"
    },
    {
      "commit": "6f59db12a64f4496866952a251122ccb77a36c6b",
      "tree": "29fcb69aa1f491974ec2b2ea5a01155b53940be5",
      "parents": [
        "23700debf767ef7fdfc30d96612771c3a03ad40d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 17:16:50 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 22 09:09:51 2013 -0800"
      },
      "message": "update offloaded audio track sampling rate\n\nAudioPlayer must read the sampling rate from offloaded audio sinks\nwhenever a new time position is computed as the decoder can update\nthe sampling rate on the fly.\n\nChange-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88\n"
    },
    {
      "commit": "704287d1b9427cc39e7be2fc44b0ae21840831e4",
      "tree": "c070a1ef475304c4517d1792b20d3332e544bcce",
      "parents": [
        "3bd2531ac7c87b85bc9f5abf558b5dc247caaa86",
        "72afcd5da296b1f5fb38ef037054855aaea88054"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 18 17:37:08 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 18 17:37:08 2013 -0800"
      },
      "message": "am 72afcd5d: am 5ea5b020: Merge \"WA: Queue extra buffers on output port during reconfig if input EOS-ed\" into klp-dev\n\n* commit \u002772afcd5da296b1f5fb38ef037054855aaea88054\u0027:\n  WA: Queue extra buffers on output port during reconfig if input EOS-ed\n"
    },
    {
      "commit": "5ea5b020b311a68f513d4a40aca5551abc6a07d8",
      "tree": "b55283398ed05da2ed07b3ce50e0575483b9a447",
      "parents": [
        "246053380a9f628405a29a055a3f1f4fba13ed5b",
        "4dd0a8a3d66c2853faf2834565b3c5df4f68734d"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Nov 19 01:28:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 19 01:28:28 2013 +0000"
      },
      "message": "Merge \"WA: Queue extra buffers on output port during reconfig if input EOS-ed\" into klp-dev"
    },
    {
      "commit": "b4213a1252c23115f3fac77101adb33a9c6b9423",
      "tree": "1477fe0312af38a2a24e655f7d62d7c1b9b1f38f",
      "parents": [
        "b5099903c059dc913e0e592969c10d15fac0c14c",
        "576e89b523d7705545032edc67d98d9ab1dedbd2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 15 08:27:06 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 15 08:27:06 2013 -0800"
      },
      "message": "am 576e89b5: am 7dae71d6: Merge \"AwesomePlayer: correct stream type for offload\" into klp-dev\n\n* commit \u0027576e89b523d7705545032edc67d98d9ab1dedbd2\u0027:\n  AwesomePlayer: correct stream type for offload\n"
    },
    {
      "commit": "22612345ae97648d5b6db43cc1aa30aad77f7bba",
      "tree": "73b47a621118d0fa56d27929a9447e90ca27c97d",
      "parents": [
        "4215e6166fca9f87a6e9e848b3dfd4ab0d25c954"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 17:28:47 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 17:36:42 2013 -0800"
      },
      "message": "AwesomePlayer: correct stream type for offload\n\ncanOffloadStream() function in stagefright utils forces the\nstream type to AUDIO_STREAM_MUSIC when querying the audio policy\nmanager if a particular track is offloadable or not.\nThis causes MP3 ringtones to be offloaded which is not a validated use case.\n\nThe fix consists in using the actual stream type read from the AudioSink.\n\nBug: 11410937.\nChange-Id: I44b8e033a8e785a79cdc291b142f80b5580bdc4d\n"
    },
    {
      "commit": "4dd0a8a3d66c2853faf2834565b3c5df4f68734d",
      "tree": "4cc6ee6dc0c7f72f5ae0facfd84b0342c5f87afe",
      "parents": [
        "4215e6166fca9f87a6e9e848b3dfd4ab0d25c954"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Nov 06 21:04:34 2013 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Nov 14 13:53:56 2013 -0800"
      },
      "message": "WA: Queue extra buffers on output port during reconfig if input EOS-ed\n\nSome codecs may return input buffers before having them processed.\nThis causes a halt if we already signaled an EOS on the input\nport.  For now keep submitting output meta buffers one at a time if\nthe input EOS-ed, but the output not yet.\n\nNormally, we submit an output buffer for each input buffer that is\nwith the component (waiting to be processed).\n\nChange-Id: I8a1251bfb504f40f1e4085a1e220bf9a4d0b05d9\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 11433909\n"
    },
    {
      "commit": "5595f6de606f51ec61fbf40a269b52312507aded",
      "tree": "e76298c16e9a54166661d417012eb996e3e7f73d",
      "parents": [
        "26c8f714361bfb6403a7c457adfb8b55c89a634a",
        "e3067743d6ef2c6c1aac4361b6ed65e6d7bbe3e3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 13 18:11:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 13 18:11:54 2013 +0000"
      },
      "message": "Merge \"Only initialize sniffers once, don\u0027t hold mutex while sniffing\" into klp-dev"
    },
    {
      "commit": "d725d23ae67045c22003d419d5c31ca1d551da89",
      "tree": "90f924edca9558e33c6576b49af0ca5f4ae9b116",
      "parents": [
        "41e7ae8f7f1ec93f8473142d1f3bfe07b22c5c51",
        "db50cb5f7ae6d2beacd8a4fa4a8991035b3c88e7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 11 20:52:05 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 11 20:52:05 2013 -0800"
      },
      "message": "am db50cb5f: am caee8747: Merge \"configure bitrate and bitrate mode at encoder initialization for VP8/9\" into klp-dev\n\n* commit \u0027db50cb5f7ae6d2beacd8a4fa4a8991035b3c88e7\u0027:\n  configure bitrate and bitrate mode at encoder initialization for VP8/9\n"
    },
    {
      "commit": "41e7ae8f7f1ec93f8473142d1f3bfe07b22c5c51",
      "tree": "5617abecb89dfaddc547f4c73d8363d9d7f92ce6",
      "parents": [
        "0f3984ed3271484e223826e8a2e5f70c4111e08f",
        "cc5aeced30609326c7495eca1286163af3933fe1"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 11 20:50:31 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 11 20:50:31 2013 -0800"
      },
      "message": "am cc5aeced: am e100b813: Merge \"StageFrightRecorder: do not use meta-data mode for software encoders\" into klp-dev\n\n* commit \u0027cc5aeced30609326c7495eca1286163af3933fe1\u0027:\n  StageFrightRecorder: do not use meta-data mode for software encoders\n"
    },
    {
      "commit": "caee8747b7df3b1119426594d4ba1c0e300ff6db",
      "tree": "72ea1e3c92a17f003907943f1c8929ee136f0c79",
      "parents": [
        "e100b813c4d833b48b48b74100ad0b9a82c46954",
        "89b31a3f670d8bec87bed50aaad9bcd8edec66b6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 12 00:21:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 12 00:21:51 2013 +0000"
      },
      "message": "Merge \"configure bitrate and bitrate mode at encoder initialization for VP8/9\" into klp-dev"
    },
    {
      "commit": "e3067743d6ef2c6c1aac4361b6ed65e6d7bbe3e3",
      "tree": "4ea5d1b5c2574b9e5f9f0a50452d1419f39bb1d6",
      "parents": [
        "e100b813c4d833b48b48b74100ad0b9a82c46954"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 06 10:50:17 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 11 23:43:22 2013 +0000"
      },
      "message": "Only initialize sniffers once, don\u0027t hold mutex while sniffing\n\nb/11482896\n\nChange-Id: Ie036554b4c9e7e8863cb07901d414ea457f1b2f1\n(cherry picked from commit 377fce69297a0e5b7c3b266a7602b17146785635)"
    },
    {
      "commit": "377fce69297a0e5b7c3b266a7602b17146785635",
      "tree": "6d058f3a073da4331ce39fb015d1a1adebc1c495",
      "parents": [
        "579dd27d96497022e534e859c6ebbec675ee07aa"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 06 10:50:17 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 11 18:05:12 2013 +0000"
      },
      "message": "Only initialize sniffers once, don\u0027t hold mutex while sniffing\n\nb/11482896\n\nChange-Id: Ie036554b4c9e7e8863cb07901d414ea457f1b2f1\n"
    },
    {
      "commit": "d3c079ae9859011d118f94616d0069c2987013ed",
      "tree": "69668a1ce099bbf64afd43b9fa60be1fa1af7485",
      "parents": [
        "97358c3e1adaf4a744cad78891a16d12e3e9c88e"
      ],
      "author": {
        "name": "Changwan Ryu",
        "email": "changwan@google.com",
        "time": "Mon Oct 28 11:08:44 2013 +0900"
      },
      "committer": {
        "name": "Changwan Ryu",
        "email": "changwan@google.com",
        "time": "Wed Nov 06 09:28:11 2013 +0900"
      },
      "message": "Support TS + AC3 for ATSC standard\n\nChange-Id: I141667f3f54b242bafdf0ab9db86852c56f49ffa\n"
    },
    {
      "commit": "97358c3e1adaf4a744cad78891a16d12e3e9c88e",
      "tree": "585f91ad6f4929d4f34abf43964de13a7c2e3fde",
      "parents": [
        "774eb18c40c3a7da0bc1636a9779f02315ddbad8"
      ],
      "author": {
        "name": "Changwan Ryu",
        "email": "changwan@google.com",
        "time": "Mon Oct 28 10:53:48 2013 +0900"
      },
      "committer": {
        "name": "Changwan Ryu",
        "email": "changwan@google.com",
        "time": "Wed Nov 06 09:14:51 2013 +0900"
      },
      "message": "Support AC3 in stagefright\n\nChange-Id: I12016b424bd069413bd6e380ff11484e175e05f3\n"
    },
    {
      "commit": "89b31a3f670d8bec87bed50aaad9bcd8edec66b6",
      "tree": "281e16d135a6c47364ca3ce8d4a4ed66e89cee9f",
      "parents": [
        "3ff5792adfdbf67662a5f8064315a55690d53944"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 05 12:36:17 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 05 12:36:17 2013 -0800"
      },
      "message": "configure bitrate and bitrate mode at encoder initialization for VP8/9\n\nChange-Id: I0389264db4102cabb0c6fcb4ca223d85cc9e86fb\nrelated-to-bug: 11536167\n"
    },
    {
      "commit": "9c7f845780d62ea09469a8dac7117cc01adfea5c",
      "tree": "1c69c580de33cf8dc15a5060447e4d9109181fbe",
      "parents": [
        "1c594b637df26499ce1dae2db34f2b3290efd838"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 30 10:02:12 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 30 11:29:29 2013 -0700"
      },
      "message": "StageFrightRecorder: do not use meta-data mode for software encoders\n\nCamera HAL v1 uses vendor-specific camera-source meta-data mode, but\nsoftware encoders use generic gralloc-source mode, so they are not\ncompatible.\n\nChange-Id: I0d1bab8eada26dcb70c97b1eec83f06d1f331239\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 11446505\n"
    },
    {
      "commit": "9cae217050aa1347d4ac5053c305754879e3f97f",
      "tree": "dff82f277cba8f34af39eaeeb00adec01bbda26c",
      "parents": [
        "be567be3f92026f5964c1c9ecce00e30bb7df412"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 14 14:12:05 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 14:06:03 2013 -0700"
      },
      "message": "Assign blame for playback wakelocks.\n\nSet a work source for the playback wakelock, so that playback is\ncounted against the requesting app instead of the media server.\n\nCherrypicked from master.\n\nb/9464621\n\nChange-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31\n"
    },
    {
      "commit": "462fd2fa9eef642b0574aa7409de0bde3fec8d43",
      "tree": "65446a138d197f062bf199480b96cca4df560fcf",
      "parents": [
        "f7d89bd79d170be3b299717ac11aff62909314c5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 14 14:12:05 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 11:13:17 2013 -0700"
      },
      "message": "Assign blame for playback wakelocks.\n\nSet a work source for the playback wakelock, so that playback is\ncounted against the requesting app instead of the media server.\n\nChange-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31\n"
    },
    {
      "commit": "abe0948c7b9aa32dceb82cebbfca52beb782754b",
      "tree": "a9018d0695d2a0221b8ce5e2dca84eb6bdec92e1",
      "parents": [
        "85b56a702f155cda9b945bcbadaa89e0f9ecc4a8",
        "b2059ff384eee8ffb70a7ec8fc5570405201c734"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 16 18:12:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 16 18:12:55 2013 -0700"
      },
      "message": "am b2059ff3: am f8f15b05: Merge \"Fix race condition in AudioTrack::pause followed by start\" into klp-dev\n\n* commit \u0027b2059ff384eee8ffb70a7ec8fc5570405201c734\u0027:\n  Fix race condition in AudioTrack::pause followed by start\n"
    },
    {
      "commit": "598de6c701e989385eeffa7c5dfd61f0459a2631",
      "tree": "090b30e255f0aed57a73ca6c9252e19da162fd97",
      "parents": [
        "014e7fa2e90827d911c37bb0ce4d2e10e14d0bb3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 16 17:02:13 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 16 17:20:11 2013 -0700"
      },
      "message": "Fix race condition in AudioTrack::pause followed by start\n\nBug: 11148722\nChange-Id: Iec88f00c8510363d4418e4b8d5b34feb06ecf04d\n"
    },
    {
      "commit": "e2b082dde607df6250879df45d61e82e0cf64edf",
      "tree": "2c42845e7f04de3dc2954c0fe146a062a622745d",
      "parents": [
        "35295078ab59c8c5d143a54d5a55557c3ca62c51",
        "71de2f20e884a380de58148ccdfc8ee70f2d5974"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 07 19:06:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 07 19:06:29 2013 +0000"
      },
      "message": "Merge \"Add missing namespace for AudioTimestamp\""
    },
    {
      "commit": "35295078ab59c8c5d143a54d5a55557c3ca62c51",
      "tree": "ebe936c19f0de4024fa1982fcd286a803bc3b951",
      "parents": [
        "61f58c0c8d02970ea6d94ff816c54bf606f755b7",
        "9a7d11f07dc19327892915f0bfecce758d2f4098"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 07 09:27:06 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 07 09:31:15 2013 -0700"
      },
      "message": "resolved conflicts for merge of 9a7d11f0 to master\n\nChange-Id: Ie4d101185a93d37ec280f608813ad62a077a584e\n"
    },
    {
      "commit": "fee4ce338d78eeb58af1f66831ead53322d3859e",
      "tree": "f90931a7c5c4628b0e8e47976d68a9d586802b53",
      "parents": [
        "ea0fadeb5d81ef3cb7f9db458c9033d628bdb86a",
        "e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 07 16:16:06 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 07 16:16:06 2013 +0000"
      },
      "message": "Merge \"Cleanup openRecord error handling\" into klp-dev"
    },
    {
      "commit": "b7f82eaed2876bacc3a402182b75323026813c30",
      "tree": "5d3fac942cf221ea9b0c9ddbb975f299b64adab6",
      "parents": [
        "6101f9562ac14b167a1ad6d6bc8d61a8407bc668",
        "aa50cc78be8a1067a0694a97b04d5a24b80af475"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Oct 04 11:08:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:08:24 2013 -0700"
      },
      "message": "am aa50cc78: am 56ce7260: IOMX: Add prepareForAdaptivePlayback method\n\n* commit \u0027aa50cc78be8a1067a0694a97b04d5a24b80af475\u0027:\n  IOMX: Add prepareForAdaptivePlayback method\n"
    },
    {
      "commit": "56ce726019f700a95ce5b45beebceadae4836e30",
      "tree": "4ad17b9ec996277e80861895fb1b20f2dc408b9d",
      "parents": [
        "a306ee6bc1aef463f8984be26b8a4214490b6c55"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu May 02 16:30:48 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Oct 03 16:12:45 2013 +0000"
      },
      "message": "IOMX: Add prepareForAdaptivePlayback method\n\nprepareForAdaptivePlayback is the fallback mechanism to support\nseamless resolution change for devices that do not support dynamic\noutput buffers.  It is up to the codecs to handle this appropriately,\nbut codecs that do not handle dynamic output buffers would\nrequest enough buffers up to the requested size in this method\nto avoid port reconfiguration on resolution changes.\n\nChange-Id: I58d4aa8ef1359ea3472735bbe9140c3132039b3d\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 10192531\nRelated-to-bug: 7093648"
    },
    {
      "commit": "2b9cbe9dcea41d687aa1d54bffb4e443e2101a35",
      "tree": "d4c1ce7a9217939235b169ad5cb0febc7b132aa2",
      "parents": [
        "770433ca4506d51ba5b08b20e0cfad8e74bbd55c",
        "6ec564aca718b4d01543ded38d47e1e6c0ae05d5"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 02 09:56:54 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 09:56:54 2013 -0700"
      },
      "message": "am 6ec564ac: am 353fb9bf: Merge \"MediaTimeProvider support fixes\" into klp-dev\n\n* commit \u00276ec564aca718b4d01543ded38d47e1e6c0ae05d5\u0027:\n  MediaTimeProvider support fixes\n"
    },
    {
      "commit": "34717c83733def81287e2b4ba2f62b416325c7ae",
      "tree": "bdc06557b16690a491298f6a73653bae249a6c84",
      "parents": [
        "cff0d41463dfa0bcb33805794f1341d029e86f04",
        "3424d6e17637e0743ddf3bf4688af8ee36e69264"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 01 20:58:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 01 20:58:58 2013 -0700"
      },
      "message": "am 3424d6e1: am 1adf20ce: Merge \"fix volume and effect enable delay on offloaded tracks\" into klp-dev\n\n* commit \u00273424d6e17637e0743ddf3bf4688af8ee36e69264\u0027:\n  fix volume and effect enable delay on offloaded tracks\n"
    },
    {
      "commit": "353fb9bf940ee34a3885bc85ec7891228e958a4b",
      "tree": "10970a60eeeef1af0170cab7bf0937a465851c21",
      "parents": [
        "5fd39f777d54368a93fc9d8a6a24da0239d41fcf",
        "6218fdc2bef7b9c912bc4d132c12ee43b7b2dd37"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Oct 01 16:36:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 01 16:36:52 2013 +0000"
      },
      "message": "Merge \"MediaTimeProvider support fixes\" into klp-dev"
    },
    {
      "commit": "6218fdc2bef7b9c912bc4d132c12ee43b7b2dd37",
      "tree": "5ef5c0ecca29a36a6ebb3cc8569ff6ef4cac8c50",
      "parents": [
        "3d97e23fcd78f752443cb6c30a1ee39f49f1f987"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 25 08:09:41 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Sep 30 15:12:23 2013 -0700"
      },
      "message": "MediaTimeProvider support fixes\n\nAdd MEDIA_SKIPPED event when resuming at a different time than\nseeked to.\n\nSend MEDIA_STARTED/PAUSED events only when playing (vs. when doing seek\npreviews)\n\nChange-Id: I243ebf054303755ea8863229c3211694f2c204a7\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 10954008\n"
    },
    {
      "commit": "c30acb663946cdbe85a3010945f782e0dc717ee6",
      "tree": "8f7360eadb5463b8327fdc509339c4d3f33042ca",
      "parents": [
        "3cc5436d23ec7568d199d7a73299501c9647a742",
        "2eab94f7dfd41a65e13aca379a1aed97447f8884"
      ],
      "author": {
        "name": "jpadmana",
        "email": "jayashree.r.padmanaban@intel.com",
        "time": "Mon Sep 30 14:17:21 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 14:17:21 2013 -0700"
      },
      "message": "am 2eab94f7: Effects Factory changes for effects offload\n\n* commit \u00272eab94f7dfd41a65e13aca379a1aed97447f8884\u0027:\n  Effects Factory changes for effects offload\n"
    },
    {
      "commit": "3cc5436d23ec7568d199d7a73299501c9647a742",
      "tree": "10a1e5b14f901d9191f460f48a1bdf468957d679",
      "parents": [
        "bb75e4c85acc6ad859e6643241db6a0adbe618d5",
        "83f400056ac913250f0926326ff78697c68d18a1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 30 14:17:20 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 14:17:20 2013 -0700"
      },
      "message": "am 83f40005: Revert \"Effects Factory changes for effects offload\"\n\n* commit \u002783f400056ac913250f0926326ff78697c68d18a1\u0027:\n  Revert \"Effects Factory changes for effects offload\"\n"
    },
    {
      "commit": "59fe010bcc072597852454a2ec53d7b0a2002a3b",
      "tree": "b6b42e04a89ead77c9ecd9635a328686a8bb9863",
      "parents": [
        "5d6d86a4d102704f49b9235eaf282c428d7100b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 18:48:26 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 30 12:05:38 2013 -0700"
      },
      "message": "fix volume and effect enable delay on offloaded tracks\n\nVolume: add a method to wake up the mediaserver playback\nthread when a volume command is received on an offloaded track.\n\nEffects: call effect chain process on offloaded playback threads\nasynchronously from writes to allow effect state updates while\nwaiting for async write callback.\n\nBug: 10796540.\n\nChange-Id: Id2747ae88783575d1d7ffd6fc86fbd054ab2c739\n"
    },
    {
      "commit": "71de2f20e884a380de58148ccdfc8ee70f2d5974",
      "tree": "7f61d81b9e3dfc9f097b65f6c973a61cb4a4f144",
      "parents": [
        "3c928c3a7a9684501664a59082a2583347e47664"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 23 14:30:36 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Sep 29 14:48:04 2013 -0700"
      },
      "message": "Add missing namespace for AudioTimestamp\n\nChange-Id: I775624b71b4446ee6d1599c6614ab8a8340bbfdb\n"
    },
    {
      "commit": "2eab94f7dfd41a65e13aca379a1aed97447f8884",
      "tree": "bdd573d7a104c25ad6951dcfd58ee37ff2c03760",
      "parents": [
        "83f400056ac913250f0926326ff78697c68d18a1"
      ],
      "author": {
        "name": "jpadmana",
        "email": "jayashree.r.padmanaban@intel.com",
        "time": "Tue Jun 04 16:08:29 2013 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 16:03:30 2013 -0700"
      },
      "message": "Effects Factory changes for effects offload\n\naudio_effects.conf - commented changes to illustrate the\naddition of Proxy and sub effects to the conf file\n\nAdded an effectFactoryApi - EffectGetSubEffects for querying the\nsub effect descriptors from the factory. This api is used by the Proxy\nto get the sub effects\n\nAdded functions and data structures in factory code for\nloading the sub effects\n\ngSubEffectList - has the Proxies and their corresponding sub effects\n\n- addSubEffect() - reads a sub effect node and adds to the gSubEffectList\n- findSubEffect() - searches through the gSubEffectList to find a SubEffect\n\nBug: 8174034.\n\nChange-Id: Id7f6aa67c41db370d32beaf43a979ba4ac925928\nSigned-off-by: jpadmana \u003cjayashree.r.padmanaban@intel.com\u003e\n"
    },
    {
      "commit": "83f400056ac913250f0926326ff78697c68d18a1",
      "tree": "4dcd3ee8df9d39701190664ce5d0e9b4bb5b7cc9",
      "parents": [
        "5b8ce24b849f6cd5629b4ba508f7c78d6227d250"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 14:53:24 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 16:03:26 2013 -0700"
      },
      "message": "Revert \"Effects Factory changes for effects offload\"\n\nThis reverts commit 284c17e73bbff51cb5b1adcee98386d47733757a.\n\nChange-Id: I31db21e1ad4758b21356bfe4c4c64f15b2da8737\n"
    },
    {
      "commit": "c666b8f16310fc826471c0fb6ee3f7e4d3a2d067",
      "tree": "50aff85e062cf2016ed3a835a02350dc8e420635",
      "parents": [
        "aab58d138ab3baccbf1badd6cfda1de1bfc24681",
        "8ee02943b61e0a7dd78e5596720261b185a223d5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 14:11:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 14:11:46 2013 -0700"
      },
      "message": "am 8ee02943: am 1c7f35d1: Merge \"soundpool: allocate shared memory heap by client\" into klp-dev\n\n* commit \u00278ee02943b61e0a7dd78e5596720261b185a223d5\u0027:\n  soundpool: allocate shared memory heap by client\n"
    },
    {
      "commit": "e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f",
      "tree": "4de6f04ad4abc14bb0e777bcb02863196c59e34b",
      "parents": [
        "402dfba6dcd68f5fd8d8921f9751f3e47eb1449d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 24 11:52:37 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 24 12:12:47 2013 -0700"
      },
      "message": "Cleanup openRecord error handling\n\nBug: 10888816\nChange-Id: I84897dd7d30b370640b54e928f230604b873cb68\n"
    },
    {
      "commit": "3d00aa6de95fb46e36f2bab4e3facdf0b96acf06",
      "tree": "1ad12df4c11ca37280cbe6850eed9bff1e0a2f35",
      "parents": [
        "402dfba6dcd68f5fd8d8921f9751f3e47eb1449d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 09:53:27 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 11:59:59 2013 -0700"
      },
      "message": "soundpool: allocate shared memory heap by client\n\nCurrent SoundPool implementation allocates the shared memory heap\ncontaining decoded PCM samples in mediaserver process.\nWhen mediaserver process crashes, the shared memory heaps allocated by\nAudioCache cannot be mapped anymore in the new instance of mediaserver.\nThis causes a silent failure to end playback of new sounds because\nAudioFlinger believes the new AudioTracks are opened in streaming mode\nand not static mode: it sees a NULL shared memory pointer when the track\nis created.\n\nThe fix consists in allocating the memory heap in the client process. Thus\nthe heap is not lost when mediaserver restarts. The global memory usage is\nthe same as this is shared memory.\n\nAlso added a way to detect that a shared memory is passed when the track is\ncreated but cannot be mapped on mediaserver side.\n\nAlso fix a crash in SoundPool when ALOGV is enabled.\n\nBug: 10894793.\nChange-Id: Ice6c66ec3b2a409d75dc903a508b6c6fbfb2e8a7\n"
    },
    {
      "commit": "20fb283150ddbcf362c764d7b822f54e5bcdd457",
      "tree": "651ad75b0a23e08ec92a1c9eef31657550a5a456",
      "parents": [
        "2e3dcb8a00b0b151a548bfa6e61547a9dce51d72",
        "c7b2f9dce911026fa13854b49aa2bb5353f68499"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Sep 24 10:25:35 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 10:25:35 2013 -0700"
      },
      "message": "am c7b2f9dc: am 402dfba6: Merge \"Add support for level measurements in Visualizer\" into klp-dev\n\n* commit \u0027c7b2f9dce911026fa13854b49aa2bb5353f68499\u0027:\n  Add support for level measurements in Visualizer\n"
    },
    {
      "commit": "09647d29eaf429ce88c9c9709ff63dee62f2147a",
      "tree": "3626eb231080732d92a0b1bdfbd1710b52e36aa6",
      "parents": [
        "4b701cc041d635e5ec56e382043a4c5d01aedd80"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 20 11:58:40 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 23 15:53:53 2013 -0700"
      },
      "message": "Add support for level measurements in Visualizer\n\nNew commands to set a measurement mode and perform peak + RMS\n measurements.\n\nBug 8413913\n\nChange-Id: Ib25254065c79d365ebb34f9dc9caa0490e2d300d\n"
    },
    {
      "commit": "dd0a81253bcf4daef56e991c94dc3c0d1124ef90",
      "tree": "78964e9809df16c448d0fadf5f3b654845b1d901",
      "parents": [
        "b0a5e24d162f6ff55aca720c3562556b87d69637",
        "f2c643c89e405b57c7ce42067b876fb80031e5fa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 14:06:35 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 14:06:35 2013 -0700"
      },
      "message": "am f2c643c8: am 3b3cfcfa: Merge \"Fix slow AudioTrack and AudioRecord destruction\" into klp-dev\n\n* commit \u0027f2c643c89e405b57c7ce42067b876fb80031e5fa\u0027:\n  Fix slow AudioTrack and AudioRecord destruction\n"
    },
    {
      "commit": "5a6cd224d07c05b496b6aca050ce5ecf96f125af",
      "tree": "c5d2fe55f0080c9660d283d040616d9a9fb6decc",
      "parents": [
        "a3b97ad288e6808c54c6275eaac1bd53108d8f11"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 09:20:45 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 12:22:29 2013 -0700"
      },
      "message": "Fix slow AudioTrack and AudioRecord destruction\n\nThere were two causes for the slowness:\n\nWhen thread was paused, it used nanosleep and sleep.  These usually\nrun to completion (except for POSIX signal, which we avoid because it\nis low-level).  Instead, replace the nanosleep and sleep by condition\ntimed wait, as that can be made to return early by a condition signal.\nAnother advantage of condition timed wait is that a condition wait was\nalready being used at top of thread loop, so it is a simpler change.\n\nThe AudioRecord destructor was missing a proxy interrupt that was correct\nin AudioTrack.  This proxy interrupt is needed in case another thread\nis blocked in proxy obtainBuffer.\n\nDoes not address the 1 second polling for NS_WHENEVER.\n\nBug: 10822765\nChange-Id: Id665994551e87e4d7da9c7b015f424fd7a0b5560\n"
    },
    {
      "commit": "a6cdabf38b29ee98bdb3e874b4e2978dbc409624",
      "tree": "985df4b227bd20fa87c0b709c90fb06f08e80cdf",
      "parents": [
        "28ff83a9bd6c331fb29dac9f1b7905aec306f9b5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 18 12:46:59 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 18 12:46:59 2013 -0700"
      },
      "message": "Fully reset SkipCutBuffer state in clear()\n\nb/8543366\n\nChange-Id: I1b90d56ba3d672fd12b4ee91fa9ba24c665126ed\n"
    },
    {
      "commit": "b4e04abed8d82d3bb31861740542e161df91321a",
      "tree": "feff444ef6c898fa503edd90d8bf66af30f23c19",
      "parents": [
        "f18224ea830d6740ca195232d3492412d5bdab67",
        "1024ffd706ca10591e4cc8ebcd92605a00b516d0"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 10 12:05:35 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 10 12:05:35 2013 -0700"
      },
      "message": "am 1024ffd7: am 7f9551f7: MediaMuxer: Hook up setLocation method\n\n* commit \u00271024ffd706ca10591e4cc8ebcd92605a00b516d0\u0027:\n  MediaMuxer: Hook up setLocation method\n"
    },
    {
      "commit": "7f9551f75eedb3e4e1fe8feaaba48d8080635fc4",
      "tree": "2723b3ac82ab83025a52fbc8462f58875df0d94c",
      "parents": [
        "6220f993541b0317e6ace3c410dd35a8d76e30bc"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 09 15:48:58 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 09 17:24:06 2013 -0700"
      },
      "message": "MediaMuxer: Hook up setLocation method\n\nThis method is needed when mediamuxer is used for camera video recording.\n\nBug: 10594784\nChange-Id: I9bd006a07e5e2ac7019849e3f4f7cf7b8356d669\n"
    },
    {
      "commit": "499ab9e17d8bd8b521b567e47c9a1b9421567e2a",
      "tree": "a50e386dc948e35559d6c27bd0c299747c323634",
      "parents": [
        "f040fec6317c04ab4f91315e4c46f51e47788238",
        "c2cfaf78f93361e2edb4af9930a73904d261d198"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 13:33:00 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 06 13:33:00 2013 -0700"
      },
      "message": "am c2cfaf78: am a82975e0: Merge \"Effects Factory changes for effects offload\" into klp-dev\n\n* commit \u0027c2cfaf78f93361e2edb4af9930a73904d261d198\u0027:\n  Effects Factory changes for effects offload\n"
    },
    {
      "commit": "284c17e73bbff51cb5b1adcee98386d47733757a",
      "tree": "d400f398fd4f2e8e383256973185b7dae243f92f",
      "parents": [
        "a19912554f3779fac0c341ac702227bf4b5fe399"
      ],
      "author": {
        "name": "jpadmana",
        "email": "rpadmanaban.jayashree@gmail.com",
        "time": "Tue Jun 04 16:08:29 2013 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 10:33:03 2013 -0700"
      },
      "message": "Effects Factory changes for effects offload\n\naudio_effects.conf - commented changes to illustrate the\naddition of Proxy and sub effects to the conf file\n\nAdded an effectFactoryApi - EffectGetSubEffects for querying the\nsub effect descriptors from the factory. This api is used by the Proxy\nto get the sub effects\n\nAdded functions and data structures in factory code for\nloading the sub effects\n\ngSubEffectList - has the Proxies and their corresponding sub effects\n\n- addSubEffect() - reads a sub effect node and adds to the gSubEffectList\n- findSubEffect() - searches through the gSubEffectList to find a SubEffect\n\nBug: 8174034.\n\nChange-Id: I25b0c62b2ad523a52337128b51469e628209ea3e\nSigned-off-by: jpadmana \u003crpadmanaban.jayashree@gmail.com\u003e\n"
    },
    {
      "commit": "83da1fcb120a2d09642be74cf9091ab321a60c8f",
      "tree": "65347c418aed813190c0e265838933ff2e055c38",
      "parents": [
        "4167457a22f311fea2bd94c0916607eed0541b0b",
        "c74630bcbdc6f9a88a019b7ced6fbe7a58675ea2"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 04 15:14:33 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 04 15:14:33 2013 -0700"
      },
      "message": "am c74630bc: am a1991255: Merge \"wifi-display: do not use HDCP\\\u0027s encryptNative method if its unsupported\" into klp-dev\n\n* commit \u0027c74630bcbdc6f9a88a019b7ced6fbe7a58675ea2\u0027:\n  wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\n"
    },
    {
      "commit": "a19912554f3779fac0c341ac702227bf4b5fe399",
      "tree": "eae1ed9c538fb796181f512770d0cb0796915e7d",
      "parents": [
        "7a4c2711d7a85ce962b9d18fee41975f9c574c0b",
        "ec3acca4a75fc4adc076b56751124f507b419622"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 04 22:08:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 04 22:08:00 2013 +0000"
      },
      "message": "Merge \"wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\" into klp-dev"
    },
    {
      "commit": "1462a2b84a578b5541683c824e0f77ebf2aa82ae",
      "tree": "a8d522f1f7fe438432bacb0b3f6eacaae2257e20",
      "parents": [
        "f701ddad1a4f58c368e3b642530849dcb57bb22c",
        "a4a82c5f8f3eccfa10ce30a52cbb4b1c5c983282"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 16:11:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 16:11:24 2013 -0700"
      },
      "message": "am a4a82c5f: am 6466c9e6: Add ExtendedAudioBufferProvider::framesReleased and onTimestamp\n\n* commit \u0027a4a82c5f8f3eccfa10ce30a52cbb4b1c5c983282\u0027:\n  Add ExtendedAudioBufferProvider::framesReleased and onTimestamp\n"
    },
    {
      "commit": "f701ddad1a4f58c368e3b642530849dcb57bb22c",
      "tree": "f35277a5d4de1d7d48e74737bfcf5bd1e6d3f71e",
      "parents": [
        "fe582a379aa775b34b6aba387eea046b6c4632f1",
        "a071bf884605f7bb34b45ee9f21476c9757c6d5b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 16:11:23 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 16:11:23 2013 -0700"
      },
      "message": "am a071bf88: am 894d6be4: Add NBAIO_Source::onTimestamp()\n\n* commit \u0027a071bf884605f7bb34b45ee9f21476c9757c6d5b\u0027:\n  Add NBAIO_Source::onTimestamp()\n"
    },
    {
      "commit": "fe582a379aa775b34b6aba387eea046b6c4632f1",
      "tree": "d523a98bcba494354d6101ec37f1a3320f04b760",
      "parents": [
        "a7fef85e7d419a4f5d6a3144f9ba70ceff2f122a",
        "1a3a8078462e52b450dbad7443abaca1ca9cbfb8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 16:11:22 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 16:11:22 2013 -0700"
      },
      "message": "am 1a3a8078: am a07a1c2c: Instantiate SingleStateQueue\u003cAudioTimestamp\u003e\n\n* commit \u00271a3a8078462e52b450dbad7443abaca1ca9cbfb8\u0027:\n  Instantiate SingleStateQueue\u003cAudioTimestamp\u003e\n"
    },
    {
      "commit": "ec3acca4a75fc4adc076b56751124f507b419622",
      "tree": "d8e15b4acf4de74c3edcdad49f3528ca668fc2a1",
      "parents": [
        "4585e8f0ff47580fdb81ed8652bde32db1770050"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 14:35:37 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 16:02:35 2013 -0700"
      },
      "message": "wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\n\nBug: 10609422\nChange-Id: I005f1d04a4191b1503b5f3e895a98b8d6560c402\n"
    },
    {
      "commit": "a7fef85e7d419a4f5d6a3144f9ba70ceff2f122a",
      "tree": "348d7a274670b5c32a40e34d7dfa93dbc0f84a2f",
      "parents": [
        "859a0f197e0c565d62d233c97ef8088c8eb4d0ac",
        "f81d5fc1d67a5252d0da1a45274460c4dd33b87b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:16:03 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 15:16:03 2013 -0700"
      },
      "message": "am f81d5fc1: am 943ba3cc: Merge \"Add NBAIO_Sink::getTimestamp()\" into klp-dev\n\n* commit \u0027f81d5fc1d67a5252d0da1a45274460c4dd33b87b\u0027:\n  Add NBAIO_Sink::getTimestamp()\n"
    }
  ],
  "next": "6466c9e6e6278c740aed77f695f679be9f5db478"
}
