)]}'
{
  "log": [
    {
      "commit": "ddfbfaeb00295fff7351711f0f044f17d6c40f3c",
      "tree": "550cf08c4c8b7d5393512d1a96661009be3e4de9",
      "parents": [
        "1c7f35d1f25eb7160314fdef536463fc34deb1ea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 20 12:27:32 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 15:29:55 2013 -0700"
      },
      "message": "fix oflload effect proxy commmand handling\n\nImplement a more generic command handling in offload effect\nproxy. All commands are sent to both sub effects but only the reply\nfrom the active one is returned to the caller.\n\nBug: 8174034.\nChange-Id: Ia45f9933b3bf338257ec70b37732fa1578d26b9f\n"
    },
    {
      "commit": "1c7f35d1f25eb7160314fdef536463fc34deb1ea",
      "tree": "6f57d8c8fd90159f90b0d2bae512f416b7cb9f1e",
      "parents": [
        "1ecd3dc4c779754e9d6603a17b9b3c6b709fb0cc",
        "3d00aa6de95fb46e36f2bab4e3facdf0b96acf06"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 21:05:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 24 21:05:14 2013 +0000"
      },
      "message": "Merge \"soundpool: allocate shared memory heap by client\" into klp-dev"
    },
    {
      "commit": "1ecd3dc4c779754e9d6603a17b9b3c6b709fb0cc",
      "tree": "52d5210dd0d111cd872e02288136615961449c95",
      "parents": [
        "664539d25180ab8f77e0521533ea2821cf28985f",
        "70b054021a3a22622c2710267362c5e235ed73bd"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 24 20:29:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 24 20:29:55 2013 +0000"
      },
      "message": "Merge \"Camera2/3: Properly disambiguate FPS range vs. single FPS setting\" into klp-dev"
    },
    {
      "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": "664539d25180ab8f77e0521533ea2821cf28985f",
      "tree": "19b1c2a62d44ac7199249825aec131c70f6801ca",
      "parents": [
        "402dfba6dcd68f5fd8d8921f9751f3e47eb1449d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 23 18:24:31 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 23 18:33:25 2013 -0700"
      },
      "message": "audioflinger: fix ro.audio.silent in offload again\n\nCommit 1abbdb4 was not working 100% of the times because\nit is possible that the offload thread loop never sleeps\nafter being created in which case the property is never read.\n\nThe loop now reads the property once when starting.\n\nBug: 10899309.\nChange-Id: I2e2ca332f2d7086e59d65f6010378c4d9618ba9e\n"
    },
    {
      "commit": "402dfba6dcd68f5fd8d8921f9751f3e47eb1449d",
      "tree": "169d2d0d7d3936e5f8749a1fd883edc886ceaed0",
      "parents": [
        "1d2536f460d4678770f423f50cbf6a61a13d4d11",
        "09647d29eaf429ce88c9c9709ff63dee62f2147a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 23 22:58:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 22:58:34 2013 +0000"
      },
      "message": "Merge \"Add support for level measurements in Visualizer\" into klp-dev"
    },
    {
      "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": "1d2536f460d4678770f423f50cbf6a61a13d4d11",
      "tree": "641ad685ab15e1794d3140149c9c2bf3122ea061",
      "parents": [
        "21e5456821e3c107d09b0629adbf23c9e06e7c0b",
        "9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 23 22:15:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 23 22:15:37 2013 +0000"
      },
      "message": "Merge \"AudioTrack: fix music resume\" into klp-dev"
    },
    {
      "commit": "21e5456821e3c107d09b0629adbf23c9e06e7c0b",
      "tree": "c2eef1ee9d591a96e88922b5061a861d8596c802",
      "parents": [
        "4b701cc041d635e5ec56e382043a4c5d01aedd80"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 23 12:08:05 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 23 12:38:11 2013 -0700"
      },
      "message": "fix incoming call audio start time.\n\ncommit cec4abb fixing issue 6720482 had a flaw that\nwould insert commmands at the wrong position in the\naudio policy service command thread queue causing other\ncommands to be delayed more than expected.\n\nA change in track stop timing introduced by commit bfb1b83\nmade this issue visible when answering a call.\n\nBug: 10860012.\nChange-Id: Iec769112f14e13d13b64628b808e43663e33771c\n"
    },
    {
      "commit": "9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da",
      "tree": "f81f585ba1aae36086bb9790b83de5673fdce14a",
      "parents": [
        "4b701cc041d635e5ec56e382043a4c5d01aedd80"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 23 12:29:42 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 23 12:32:34 2013 -0700"
      },
      "message": "AudioTrack: fix music resume\n\nFix regression introduced by commit 5a6cd22 in AudioTrack resume:\nthe callback thread was not signaled if paused internaly.\n\nBug: 10895013.\nChange-Id: Ic356b115132d6fccbcee2d9bb855e92671dc20c5\n"
    },
    {
      "commit": "70b054021a3a22622c2710267362c5e235ed73bd",
      "tree": "24341d0e6cc5882b0d105b1bda2969fedcf831f3",
      "parents": [
        "0181fde7bd20238cb13ae2665f0e5bfe7c2d9ac8"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 20 16:32:26 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 20 16:32:26 2013 -0700"
      },
      "message": "Camera2/3: Properly disambiguate FPS range vs. single FPS setting\n\nThe camera1 API allows for either setPreviewFrameRate or\nsetPreviewFPSRange, so both values may or may not change in a single\nsetParameter call.\n\nThe disambiguation of which setting has been changed since the last\nsetParameter() call was not fully correct, so a sequence of changes\nthat only changed setPreviewFPSRange or didn\u0027t change either could be\ninterpreted as as a change to setPreviewFrameRate.\n\nBug: 10842868\nChange-Id: I40baeced80a58f09f8a1742ece8dd5e141e9c1e3\n"
    },
    {
      "commit": "4b701cc041d635e5ec56e382043a4c5d01aedd80",
      "tree": "d4ac7bc04d6de49d02fa90eed1049120a7b3ac51",
      "parents": [
        "3b3cfcfa272c8e3e16c89765b8817f5a8de0c505",
        "e2773bb17bc5d01e05a77b8913539575ebd04500"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 22:05:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 22:05:39 2013 +0000"
      },
      "message": "Merge \"Revert \"Workaround slow AudioTrack destruction\"\" into klp-dev"
    },
    {
      "commit": "3b3cfcfa272c8e3e16c89765b8817f5a8de0c505",
      "tree": "dfe1a34b2ce1131f992ccdaf151c9c0042c81984",
      "parents": [
        "291a09c3537f2160ec2f1cac16a22212304c2cbf",
        "5a6cd224d07c05b496b6aca050ce5ecf96f125af"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 21:01:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 21:01:35 2013 +0000"
      },
      "message": "Merge \"Fix slow AudioTrack and AudioRecord destruction\" into klp-dev"
    },
    {
      "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": "e2773bb17bc5d01e05a77b8913539575ebd04500",
      "tree": "9c6752456812c4a927574a71e1d2ec2495ff6ce3",
      "parents": [
        "8bbbd7da02fac3de40139af19f7cf7a7cc3cc824"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 18:12:06 2013 +0000"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 18:12:06 2013 +0000"
      },
      "message": "Revert \"Workaround slow AudioTrack destruction\"\n\nThis reverts commit 8bbbd7da02fac3de40139af19f7cf7a7cc3cc824.\n\nChange-Id: I269a6c445cbce33451b6a9e74223e36e6abbdbe0\n"
    },
    {
      "commit": "291a09c3537f2160ec2f1cac16a22212304c2cbf",
      "tree": "5f44d9ae139a59f6f36b08816b131baae06cd6fc",
      "parents": [
        "a3b97ad288e6808c54c6275eaac1bd53108d8f11",
        "0181fde7bd20238cb13ae2665f0e5bfe7c2d9ac8"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 20 17:59:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 17:59:45 2013 +0000"
      },
      "message": "Merge \"Camera2/3: For still captures, use widest FPS range available.\" into klp-dev"
    },
    {
      "commit": "0181fde7bd20238cb13ae2665f0e5bfe7c2d9ac8",
      "tree": "64cdd48a007e26e3602bd467f5434e7870a95ec1",
      "parents": [
        "fbb2609f132f23a983d376dec9ae6bfebfcacc4c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 20 10:12:32 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 20 10:18:36 2013 -0700"
      },
      "message": "Camera2/3: For still captures, use widest FPS range available.\n\nInstead of using the application-selected preview FPS range for still\ncaptures, select the widest FPS range advertised by the device and use\nit for still captures instead, to give the HAL the widest range of exposure\nvalues to choose from possible.\n\nBug: 10842868\nChange-Id: I0e24f5eb713a4f8df116cd5979a84390cc0974d7\n"
    },
    {
      "commit": "a3b97ad288e6808c54c6275eaac1bd53108d8f11",
      "tree": "eb4ee28ecd01cf4a4548004e8a2d9154ce0f2c73",
      "parents": [
        "fbb2609f132f23a983d376dec9ae6bfebfcacc4c",
        "accc147666bfd37fc8b4ef745f18a8c751555ec2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 20 16:56:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 16:56:34 2013 +0000"
      },
      "message": "Merge \"audioflinger: implement getTimestamp() for offloaded tracks\" into klp-dev"
    },
    {
      "commit": "accc147666bfd37fc8b4ef745f18a8c751555ec2",
      "tree": "a091aa566ed09e8efe881a16e3806ee4169de3f0",
      "parents": [
        "5baf2af52cd186633b7173196c1e4a4cd3435f22"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 20 09:36:34 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 20 09:36:34 2013 -0700"
      },
      "message": "audioflinger: implement getTimestamp() for offloaded tracks\n\nBug: 9587132.\nChange-Id: Ie9d5f4cca96306d08bc9a2dbd6edd8953096702d\n"
    },
    {
      "commit": "fbb2609f132f23a983d376dec9ae6bfebfcacc4c",
      "tree": "df445957b7af9020660a3e4ee927807578dac685",
      "parents": [
        "cfca686ae8e64bda44a370232f3ba367e6e520d1",
        "ede6c3b8b1147bc425f7b923882f559a513fe23b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 20 00:48:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 20 00:48:39 2013 +0000"
      },
      "message": "Merge \"audioflinger: fix lost offload thread resume event\" into klp-dev"
    },
    {
      "commit": "ede6c3b8b1147bc425f7b923882f559a513fe23b",
      "tree": "ac3986f0521aa4a5af705299ab423ec9d5e98bfa",
      "parents": [
        "5baf2af52cd186633b7173196c1e4a4cd3435f22"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 19 14:37:46 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 19 15:53:20 2013 -0700"
      },
      "message": "audioflinger: fix lost offload thread resume event\n\nIt was possible that a resume request signaled by addTrack_l()\nwhile waiting for an async write callback is lost. This is because\nmSignalPending was not set and waitingAsyncCallback_l() would pause the\nthread loop before executing prepareTracks_l().\n\nThe fix consists in using signal_l() method to wake the thread\nloop o that mSignalPending is set.\n\nAlso make sure that sleepTime is reset to 0 when resuming to make sure\nthat we write any remaining bytes to the HAL.\n\nBug: 10810347.\n\nChange-Id: If9a3b22cc3b9e6eb384a56c48c40e6258d0896ad\n"
    },
    {
      "commit": "cfca686ae8e64bda44a370232f3ba367e6e520d1",
      "tree": "ac8299c0ae2fd5729ec6227d843c83d4cc4c60ed",
      "parents": [
        "b5bca3ff7784ce95431224482ec42a50261e04b2",
        "253dfdb983611b8375c9e0b0483eda03fa146028"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 19 21:23:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 21:23:28 2013 +0000"
      },
      "message": "Merge \"Rotate fallback size\" into klp-dev"
    },
    {
      "commit": "253dfdb983611b8375c9e0b0483eda03fa146028",
      "tree": "022b83177f4dcb12d554ea24175a38cd3df320d0",
      "parents": [
        "6cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 19 11:08:33 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 19 11:08:33 2013 -0700"
      },
      "message": "Rotate fallback size\n\nIf configuring the encoder for display-size recording fails, we drop\nback to 720p.  This was done a bit too literally, and didn\u0027t look\ngood in portrait mode.  Rotate the fallback size as needed.\n\nBug 10826876\n\nChange-Id: Id3130471fc1467afa8bf91d75c9d4a49245253c3\n"
    },
    {
      "commit": "b5bca3ff7784ce95431224482ec42a50261e04b2",
      "tree": "d35af34acab188022fa76b508813e52d287762af",
      "parents": [
        "feb6d27bf61cd266cf753215e9cae16b9bc9dbbd",
        "f8b2a6f7dea06234c7966798d9363d2d236488a6"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 19 17:09:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 17:09:03 2013 +0000"
      },
      "message": "Merge \"camera2: Tell all streams to ignore global device UI rotation\" into klp-dev"
    },
    {
      "commit": "feb6d27bf61cd266cf753215e9cae16b9bc9dbbd",
      "tree": "9d425293545679a0cf2cd56830eebfdee7606f73",
      "parents": [
        "d1b28d41dbda203ffb420ba2e36cbe736b163ff8",
        "8bbbd7da02fac3de40139af19f7cf7a7cc3cc824"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 19 16:28:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 19 16:28:24 2013 +0000"
      },
      "message": "Merge \"Workaround slow AudioTrack destruction\" into klp-dev"
    },
    {
      "commit": "f8b2a6f7dea06234c7966798d9363d2d236488a6",
      "tree": "0205ab0fe470d4020dee18db4c15a39ebc301b12",
      "parents": [
        "5baf2af52cd186633b7173196c1e4a4cd3435f22"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Sep 17 17:03:28 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 18 19:47:20 2013 -0700"
      },
      "message": "camera2: Tell all streams to ignore global device UI rotation\n\n- Also use android.sensor.orientation to set the right transform\n  flags automatically.\n\nBug: 10804238\nChange-Id: I10caf8331f19e107c461696963cc10f597c91d83\n"
    },
    {
      "commit": "d1b28d41dbda203ffb420ba2e36cbe736b163ff8",
      "tree": "8515326721a76081b458cce1329e13b7252d2fbe",
      "parents": [
        "5baf2af52cd186633b7173196c1e4a4cd3435f22"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 18 18:47:13 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 18 19:00:22 2013 -0700"
      },
      "message": "audioflniger: fix leaked audiosession references\n\nacquireAudioSessionId() should not create session references\nif the caller is not listed in the known notification clients.\nIt happens when the MediaPlayer or AudioTrack is created by the\nmediaserver on behalf of a client (e.g CameraService). In this case\nreleaseAudioSessionId() can be called from a different pid and\nthe session reference will not be removed.\nAlso we will not be able to remove the reference if the client\nprocess dies.\n\nBug: 10606426.\nChange-Id: Ibb5e27518daeb484a2e66302e4c6221cbaca5b70\n"
    },
    {
      "commit": "8bbbd7da02fac3de40139af19f7cf7a7cc3cc824",
      "tree": "855de6f669a3485740a7d38104725bad42848cbb",
      "parents": [
        "5baf2af52cd186633b7173196c1e4a4cd3435f22"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 18 14:15:42 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 18 14:55:30 2013 -0700"
      },
      "message": "Workaround slow AudioTrack destruction\n\nBug: 10809586\nChange-Id: I5f30d4deb1233e8ade8967568e40684ef680c395\n"
    },
    {
      "commit": "5baf2af52cd186633b7173196c1e4a4cd3435f22",
      "tree": "9c6752456812c4a927574a71e1d2ec2495ff6ce3",
      "parents": [
        "9a98b6de791aeb130192df10744f5b35f8b6ef1a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 12 17:37:00 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 18 11:52:40 2013 -0700"
      },
      "message": "more support for audio effect offload\n\nOffloading of audio effects is now enabled for offloaded\noutput threads. If an effect not supporting offload is enabled,\nthe AudioTrack is invalidated so that it can be recreated in PCM\nmode.\n\nFix some issues in effect proxy related to handling of effect\ncommands to offloaded and non offloaded effects.\n\nAlso fixed a bug on capture index in software Visualizer effect.\n\nBug: 8174034.\n\nChange-Id: Ib23d3c2d5a652361b0aaec7faee09102f2b18fce\n"
    },
    {
      "commit": "9a98b6de791aeb130192df10744f5b35f8b6ef1a",
      "tree": "9f1831027ba0c6b5b0ecf85eccbe418ef189ec7a",
      "parents": [
        "ab6c93b4bea96dc4f44a7acfefee1e11a3abda5b",
        "8d0fda9660aee7059f802f400875247b01226084"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 18 17:56:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 17:56:05 2013 +0000"
      },
      "message": "Merge \"Partial fix for SoundPool not terminating\" into klp-dev"
    },
    {
      "commit": "8d0fda9660aee7059f802f400875247b01226084",
      "tree": "57b68d45cbd4e4cafee6b19ae283e315341be3a1",
      "parents": [
        "6cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 18 10:33:39 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 18 10:36:19 2013 -0700"
      },
      "message": "Partial fix for SoundPool not terminating\n\nSoundPool was waiting for EVENT_UNDERRUN only to indicate end of clip.  In\nJ, AudioTrack delivered both EVENT_UNDERRUN followed by EVENT_BUFFER_END.\nHowever, as of K, AudioTrack is only delivering EVENT_BUFFER_END (this\nlack of EVENT_UNDERRUN is another bug which still needs to be fixed).\nThe workaround is to also respond to EVENT_BUFFER_END in SoundPool.\n\nBug: 10787103\nChange-Id: Id68a23bddd6dd9df6c49c55138197260d71ca468\n"
    },
    {
      "commit": "ab6c93b4bea96dc4f44a7acfefee1e11a3abda5b",
      "tree": "e04575d5872aaf0238d37397f55092c2b6dca96b",
      "parents": [
        "6cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3c",
        "530fdbdc1b5491f3fbf172752834d1515701e142"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 18 17:31:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 18 17:31:18 2013 +0000"
      },
      "message": "Merge \"Use changed MediaCodec.PARAMETER_KEY_VIDEO_BITRATE value\" into klp-dev"
    },
    {
      "commit": "530fdbdc1b5491f3fbf172752834d1515701e142",
      "tree": "6b99358ddc0317c9609d2ec818adcc8226e1a986",
      "parents": [
        "18f861404efc054da0a2ea6c582e293940f63bc8"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Sep 17 19:07:40 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Sep 17 19:09:23 2013 -0700"
      },
      "message": "Use changed MediaCodec.PARAMETER_KEY_VIDEO_BITRATE value\n\nChange-Id: I157bcafbf705865e66c81517b1eab10c3daa039e\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 10461617\n"
    },
    {
      "commit": "6cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3c",
      "tree": "5545a323750c07f0210f43f727e828ec7fa9f918",
      "parents": [
        "18f861404efc054da0a2ea6c582e293940f63bc8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Sep 10 09:15:18 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Sep 17 18:43:01 2013 -0700"
      },
      "message": "LoudnessEnhancer audio effect implementation\n\nImplementation based on DRC effect, controlled by a\n target gain.\n The target gain is used to amplify the signal at\n the input of the DRC, and to compute the knee\n of the DRC.\n\nBug 8413913\n\nChange-Id: I386d64793a9fa3f7218e053d6f0a99f6836c02bd\n"
    },
    {
      "commit": "18f861404efc054da0a2ea6c582e293940f63bc8",
      "tree": "e1c4cc80e19505e28e7922dd10f7be0aa2ad4e63",
      "parents": [
        "bc910e5c8d05f24531bd6b11379cf41cc73415ed",
        "ce8828a016b082f730152af2204b8ea3610dc1ec"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 17 22:03:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 22:03:01 2013 +0000"
      },
      "message": "Merge \"Fix underruns when fast track denied due to SRC\" into klp-dev"
    },
    {
      "commit": "ce8828a016b082f730152af2204b8ea3610dc1ec",
      "tree": "aad0c32a17516519b22bcea0d4f2fa7c81c61d28",
      "parents": [
        "d176ec1e371a686c58385692a28da677e398c302"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 16 18:07:38 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 17 11:24:02 2013 -0700"
      },
      "message": "Fix underruns when fast track denied due to SRC\n\nOpenSL ES requests a fast track.  If sample rate conversion is needed,\nthe request is denied by server, and a larger client buffer is used\nto handle the higher latency of a normal track.  However the client\nnotification period was calculated based on buffer being divided into\n2 sub-buffers.  That resulted in the notification period being too long.\nThe server pulls chunks that are smaller than half the total buffer.\nSo now the client uses 3 sub-buffers when there is SRC.\n\nAlso removed the \u0027defer wake\u0027 optimization because it was incorrect.\nThis optimization attempted to reduce the number of wakeups of client,\nwhen server releaseBuffer knows that another releaseBuffer will be\nfollowing.  But there is no way for the first releaseBuffer to predict\nhow soon the second releaseBuffer will occur.  In some cases it was\na long time, and the client underran.  So now the client is woken up\nimmediately if the total number of available frames to client is \u003e\u003d\nthe minimum number the client wants to see (the notification period).\n\nAlso fix bug where minimum frame count was not being used in the\ncalculation of notification period.\n\nBug: 10342804\nChange-Id: I3c246f4e7bc3684a344f2cf08268dc082e338e2a\n"
    },
    {
      "commit": "bc910e5c8d05f24531bd6b11379cf41cc73415ed",
      "tree": "48a82de7153143fd418c155207166e6e62eaa7c1",
      "parents": [
        "a099d1f6be3fbbb1af4c12b2ab627397f0826982",
        "ee08f7e36eeba80e005f9bdaebce635860a8f005"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 16 22:57:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 22:57:18 2013 +0000"
      },
      "message": "Merge \"Fix hang\" into klp-dev"
    },
    {
      "commit": "a099d1f6be3fbbb1af4c12b2ab627397f0826982",
      "tree": "c2f5f0fdd4cc49e201836323dde41145c4e7d315",
      "parents": [
        "72a2f171ddf5c1eab7d6ccd47ac2b7ac4fc9c087",
        "2f876f9ee63396e4e0117f85c5b3132cac7e2c9d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Sep 16 22:45:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 22:45:56 2013 +0000"
      },
      "message": "Merge \"Camera3: Always set a trigger ID for an active trigger\" into klp-dev"
    },
    {
      "commit": "ee08f7e36eeba80e005f9bdaebce635860a8f005",
      "tree": "00fce1d20b3f272bdbe39095ce749f666a0eea9d",
      "parents": [
        "99bf6267f0a4e2c3153be49ced59ae164d55ea6d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 16 13:30:01 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 16 13:30:01 2013 -0700"
      },
      "message": "Fix hang\n\nSpecify that the surface is controlled by the app, to avoid a hang.\nb/10531761\n\nChange-Id: Idccc2c73aa3d368d8e7fbdc071ce36e2382efea4\n"
    },
    {
      "commit": "72a2f171ddf5c1eab7d6ccd47ac2b7ac4fc9c087",
      "tree": "3b2e12db021c40434ed1d6a6b1b8e145b7576ceb",
      "parents": [
        "a5652e9cdaf6624e03a7e84c40590a42e44c5217",
        "527748abf04c0060894fd7aace54959a2c343435"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 16 18:23:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 18:23:35 2013 +0000"
      },
      "message": "Merge \"Camera: setCallBackWindow only if callback surface is used\" into klp-dev"
    },
    {
      "commit": "a5652e9cdaf6624e03a7e84c40590a42e44c5217",
      "tree": "87878aab0596e75c7ef295392baa9362febc01b6",
      "parents": [
        "66281c3a5d7eea486ddc6ad30088ba92956fd4fd",
        "4b7069dac546ad21cf62ca6132d50ea41857d08e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 16 18:14:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 18:14:01 2013 +0000"
      },
      "message": "Merge \"Add FLAG_CAN_SEEK_BACKWARD and FLAG_CAN_SEEK_FORWARD see flags\" into klp-dev"
    },
    {
      "commit": "2f876f9ee63396e4e0117f85c5b3132cac7e2c9d",
      "tree": "dbf8c6668faf4b7d3777692c06ecfdedbf49ba45",
      "parents": [
        "d176ec1e371a686c58385692a28da677e398c302"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 13 11:39:24 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Sep 16 09:33:36 2013 -0700"
      },
      "message": "Camera3: Always set a trigger ID for an active trigger\n\nThis is to work around HAL implementations that expect to see an\nID for every trigger.\n\nUse a dummy trigger ID of 1, since 0 has special meaning for older\nHALs.\n\nBug: 10720617\nChange-Id: I9cb1b8dbcb113cb9e737e5adb04032fd61a54c12\n"
    },
    {
      "commit": "527748abf04c0060894fd7aace54959a2c343435",
      "tree": "667faa9827035f34685c0525ccac1289c6d844f9",
      "parents": [
        "66281c3a5d7eea486ddc6ad30088ba92956fd4fd"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Sun Sep 15 21:06:10 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 16 09:23:58 2013 -0700"
      },
      "message": "Camera: setCallBackWindow only if callback surface is used\n\nCalling setCallBackWindow without checking the previewCallbackSurface could make\nthe stream to be deleted during callback stream operation, which is bad because\nthe preview is still active and the delete fails.\n\nBug: 10730496\nChange-Id: I8addac25e5aa7901bf200d730c749bee2c088090\n"
    },
    {
      "commit": "66281c3a5d7eea486ddc6ad30088ba92956fd4fd",
      "tree": "a796c6ea3a8eb4cf989efc6ecaf87d60083e008f",
      "parents": [
        "d176ec1e371a686c58385692a28da677e398c302"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Sep 13 17:59:59 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Sun Sep 15 11:19:17 2013 -0700"
      },
      "message": "Camera: Don\u0027t overwrite the error status\n\nBug: 10749544\nChange-Id: I6096effde03e18ee1b8c63cf3b36dce0344054c5\n"
    },
    {
      "commit": "d176ec1e371a686c58385692a28da677e398c302",
      "tree": "7c4f86f8060dbfb49d2c8c65e4b19af9b76175a8",
      "parents": [
        "7f91e5e09cf3bd8068894b2e54cbdaac70bf53a0",
        "8973c0439984f85870dffa7a100580271933c964"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Sep 14 00:08:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 14 00:08:55 2013 +0000"
      },
      "message": "Merge \"Fix SoundPool.play() looping\" into klp-dev"
    },
    {
      "commit": "7f91e5e09cf3bd8068894b2e54cbdaac70bf53a0",
      "tree": "d780b615c9e2ea42c5449ebfeb870b3c7bee7eb9",
      "parents": [
        "d4dadf23dd2dd8acd514d60d84475954070340b8",
        "1abbdb4429479975718421c4fef3f79ce7c820e3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Sep 14 00:07:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 14 00:07:29 2013 +0000"
      },
      "message": "Merge \"audioflinger: fix ro.audio.silent in offload mode\" into klp-dev"
    },
    {
      "commit": "1abbdb4429479975718421c4fef3f79ce7c820e3",
      "tree": "ac73fe0a2f36b66d9c33f22dd09ac76730beefce",
      "parents": [
        "99bf6267f0a4e2c3153be49ced59ae164d55ea6d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 13 17:00:08 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 13 17:00:08 2013 -0700"
      },
      "message": "audioflinger: fix ro.audio.silent in offload mode\n\nChange-Id: I5a1a79000d53146689b0a198cc5419c36509703f\n"
    },
    {
      "commit": "d4dadf23dd2dd8acd514d60d84475954070340b8",
      "tree": "8dd26a705e628a771866b84be1ef676b12ae337e",
      "parents": [
        "972a173d7d1de1a3b5a617aae3e2abb6e05ae02d",
        "3ef464e095da6c5d1acb5723dbc4b9f7cfd4ecf8"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Sep 13 23:04:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 13 23:04:17 2013 +0000"
      },
      "message": "Merge \"Camera: Limit supported preview sizes\" into klp-dev"
    },
    {
      "commit": "3ef464e095da6c5d1acb5723dbc4b9f7cfd4ecf8",
      "tree": "3e801feba6fe18a8a4852e97be5d89e3d4c9ff11",
      "parents": [
        "dc33c542351449ceee95cc50a9009f495e7c72ba"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Sep 11 22:58:17 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Sep 13 14:12:43 2013 -0700"
      },
      "message": "Camera: Limit supported preview sizes\n\nThe ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES can provide sizes as large\nas jpeg sizes, which could cause potential issues when trying to do\nfull size still capture and full size preview. This is not supported\nby many devices due to hardware limitation. This change limits the\npreview (as well video) size to no more than 1080p.\n\nBug: 10625115\nChange-Id: I9467ab843553ec06e8249b4a17c0ecf4c6d6f04e\n"
    },
    {
      "commit": "972a173d7d1de1a3b5a617aae3e2abb6e05ae02d",
      "tree": "f506c9ef80a8a31bfd58a254617fdecb26dbbcf5",
      "parents": [
        "99bf6267f0a4e2c3153be49ced59ae164d55ea6d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 04 09:42:59 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 13 12:14:07 2013 -0700"
      },
      "message": "audioflinger: longer offload thread standby delay\n\n- Increase offloaded output thread standby delay to 1 second\nto allow transition between tracks with going to stanby\nif reusing the same audio track (gapless)\n\n- Make sure pause/flush/resume sequence is sent to the HAL\nin the right order\n\n- Fix format display in track dump\n\nBug: 8174034.\nChange-Id: I43ef6f8fdbf7427e4eff6cc2d0665d7d1463ea8a\n"
    },
    {
      "commit": "99bf6267f0a4e2c3153be49ced59ae164d55ea6d",
      "tree": "a5a71c10005e7bc8b66b88ffd0268ed8c627aa8a",
      "parents": [
        "877c673c3d3794e89e4677d448f38f77bdee7fdb",
        "34486800a022857b45c3882624449980c5cb6907"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Sep 12 21:58:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 12 21:58:15 2013 +0000"
      },
      "message": "Merge \"Fix MediaDrm cts tests\" into klp-dev"
    },
    {
      "commit": "877c673c3d3794e89e4677d448f38f77bdee7fdb",
      "tree": "4530300a3cf3f0bab8bd3c12b569a735eb8c01cf",
      "parents": [
        "dc33c542351449ceee95cc50a9009f495e7c72ba",
        "c38fcfba95f711e5738e4c72bd5499317a2f30d9"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Sep 12 21:16:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 12 21:16:57 2013 +0000"
      },
      "message": "Merge \"ACodec: fix flush/resume for decoder-output-meta-data mode\" into klp-dev"
    },
    {
      "commit": "c38fcfba95f711e5738e4c72bd5499317a2f30d9",
      "tree": "480143734121726c9d02b74ce2fc5c7dff76f59a",
      "parents": [
        "efc4d4899e03fb8464017dd48539106cec2163de"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Sep 12 09:12:54 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Sep 12 10:58:46 2013 -0700"
      },
      "message": "ACodec: fix flush/resume for decoder-output-meta-data mode\n\nWhen in decoder-output-meta-data mode, ACodec does not hold onto\nbuffers, but they are either with the native window, or with the\ncomponent/client.  However, for flushing we did not release the\ndiscarded buffers back to native window (this makes sense because\nthey will be resubmitted shortly.)  This logic can be handled by\nthe normal resubmission.\n\nChange-Id: Ic472b386422251515ef12f426e187f208f14decc\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 10621959\nBug: 10192533\n"
    },
    {
      "commit": "dc33c542351449ceee95cc50a9009f495e7c72ba",
      "tree": "0f44c9770a45605876de1e051801bee5781a56ad",
      "parents": [
        "efc4d4899e03fb8464017dd48539106cec2163de",
        "0c72b24f91c68442eb374bd1b338c394105b8262"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 12 15:13:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 12 15:13:45 2013 +0000"
      },
      "message": "Merge \"Fix AudioTrack shared memory leak\" into klp-dev"
    },
    {
      "commit": "34486800a022857b45c3882624449980c5cb6907",
      "tree": "06e1a76a831666df008d5ba344b2c8e34bce27ef",
      "parents": [
        "fe346c707f59d763ded93bc3d27b51f0c0408258"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Sep 11 18:40:44 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Sep 11 18:40:44 2013 -0700"
      },
      "message": "Fix MediaDrm cts tests\n\nMoving the build of the mock MediaDrm plugin back to\nframeworks/av since it can\u0027t be installed by cts.\n\nb/10668350\n\nChange-Id: Id662bdb0775389b458f86a299392217f2d959422\n"
    },
    {
      "commit": "4b7069dac546ad21cf62ca6132d50ea41857d08e",
      "tree": "a692fbb194536dcd7ee4f8e7681e7a36143267d5",
      "parents": [
        "c728c580fc512b50604f33f1c4581c500062b245"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 11 12:52:43 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 11 17:58:54 2013 -0700"
      },
      "message": "Add FLAG_CAN_SEEK_BACKWARD and FLAG_CAN_SEEK_FORWARD see flags\n\nAlso update seek flag in NuPlayerDriver, otherwise MediaPlayer will\nget wrong flags.\n\nBug: 10676387\n\nChange-Id: Ice30f27a9a04e37b4718d26228a407fea8d9e4fc\n"
    },
    {
      "commit": "efc4d4899e03fb8464017dd48539106cec2163de",
      "tree": "40e6503137bc0720b515c05b2d39771d1d25c7c7",
      "parents": [
        "a911f51c21430ac92f1d796b2338878fd98382e9",
        "9a54bc27876acd5d8be5b1fc3dc46701fe76fbb3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 12 00:15:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 12 00:15:15 2013 +0000"
      },
      "message": "Merge \"audioflinger: add HOTWORD audio source.\" into klp-dev"
    },
    {
      "commit": "a911f51c21430ac92f1d796b2338878fd98382e9",
      "tree": "8bf7f7c99f88c36d63a98e1ef1a1dd5666e41346",
      "parents": [
        "c728c580fc512b50604f33f1c4581c500062b245"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Sep 06 15:34:50 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 11 14:55:52 2013 -0700"
      },
      "message": "Pass subtitle track properties to getTrackInfo\n\nBug: 10326117\n\nChange-Id: I15fcc49ad02e26d7cc92e82ee670bafca62a09a7\n"
    },
    {
      "commit": "8973c0439984f85870dffa7a100580271933c964",
      "tree": "e664169db8c5c6a24e723e58b30b3feebafbf7d0",
      "parents": [
        "c728c580fc512b50604f33f1c4581c500062b245"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 11 14:35:16 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 11 14:36:52 2013 -0700"
      },
      "message": "Fix SoundPool.play() looping\n\nThis is done by configuring SoundPool for shared memory and fast track.\nPreviously SoundPool used a streaming track, and looping in streaming\nmode relied on the ability to loop the most recently enqueued data.\nThat \u0027feature\u0027 was lost in the new implementation of streaming, so we\u0027re\nnow switching from streaming mode to shared memory mode.  Shared memory\nmode had always been desired, but was blocked by bug 2801375 which is fixed now.\n\nBug: 10171337\nChange-Id: I2a938e3ffafa2a74d5210b4198b50db20ad5da0e\n"
    },
    {
      "commit": "0c72b24f91c68442eb374bd1b338c394105b8262",
      "tree": "d5b7396b593f2157fead8f0c5c41d45c1c236009",
      "parents": [
        "6220f993541b0317e6ace3c410dd35a8d76e30bc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 11 09:14:16 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 11 12:47:29 2013 -0700"
      },
      "message": "Fix AudioTrack shared memory leak\n\nBug: 2801375\nChange-Id: I50e15164fe310f69ea019dca5b49171a02bc6992\n"
    },
    {
      "commit": "9a54bc27876acd5d8be5b1fc3dc46701fe76fbb3",
      "tree": "15f25097fc7fc2548d41a29c94c22710472f01ca",
      "parents": [
        "84b7fb0c88ddd05ed7c148c82fe1691040a9404d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 09 09:08:44 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 10 14:39:28 2013 -0700"
      },
      "message": "audioflinger: add HOTWORD audio source.\n\nHOTWORD is a special capture audio source that uses\nthe same audio tuning as VOICE_RECOGNITION but allows an\nactive capture to be preempted.\n\nBug: 10640877.\n\nChange-Id: Iea09a11cbcdbacc8d434e5230e7559dcd1b44ac0\n"
    },
    {
      "commit": "c728c580fc512b50604f33f1c4581c500062b245",
      "tree": "ad21347137a394b82325a2497a2c6d7cb655413f",
      "parents": [
        "7f9551f75eedb3e4e1fe8feaaba48d8080635fc4",
        "e6d5794b2173ffe4e7509203a91778b19eafcebf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 10 19:10:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 10 19:10:50 2013 +0000"
      },
      "message": "Merge \"Make sure the encoder instance is safely release()\u0027d before its\" into klp-dev"
    },
    {
      "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": "6220f993541b0317e6ace3c410dd35a8d76e30bc",
      "tree": "63c4375921b7b02153b652691196364ae64d9955",
      "parents": [
        "6ca83fad0c32f8d9c81c9e16b4f87025d1abbda1",
        "1e479c0f4cb3e2174dde0b02e5656fb658f73495"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Sep 09 23:07:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 09 23:07:23 2013 +0000"
      },
      "message": "Merge \"camera3: Dump latest request sent with dumpsys\" into klp-dev"
    },
    {
      "commit": "6ca83fad0c32f8d9c81c9e16b4f87025d1abbda1",
      "tree": "f06c243c6bf52b42b01c42abe51cb5b0a8ef663c",
      "parents": [
        "d1d6467d3bcbc1305eeba0176a2edf04925c368e",
        "813e2a74853bde19e37d878c596a044b3f299efc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 09 20:19:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 09 20:19:47 2013 +0000"
      },
      "message": "Merge \"audioflinger: no effects on offloaded tracks\" into klp-dev"
    },
    {
      "commit": "813e2a74853bde19e37d878c596a044b3f299efc",
      "tree": "b95aa8b59f49b4348b2112047ee80e572637d706",
      "parents": [
        "84b7fb0c88ddd05ed7c148c82fe1691040a9404d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Aug 31 12:59:48 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 09 09:09:21 2013 -0700"
      },
      "message": "audioflinger: no effects on offloaded tracks\n\nInvalidate offloaded tracks when an effect is enabled\nso that the track is recreated in PCM mode and the effect\ncan be applied.\nThis is temporary until effect offloading is implemented.\n\nBug: 8174034.\n\nChange-Id: I77b8b54a10db6cb8334be76d863ea7e720eaad09\n"
    },
    {
      "commit": "d1d6467d3bcbc1305eeba0176a2edf04925c368e",
      "tree": "b79d4ac9bc0293a29ce391f3fb611d7ea8f30eb3",
      "parents": [
        "84b7fb0c88ddd05ed7c148c82fe1691040a9404d"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Sep 06 15:00:01 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Sun Sep 08 09:58:11 2013 -0700"
      },
      "message": "Camera: Correct stream id types\n\nBug: 10604704\nChange-Id: I223ac5d200eb6439c08955fb7ad586592099fbae\n"
    },
    {
      "commit": "1e479c0f4cb3e2174dde0b02e5656fb658f73495",
      "tree": "605aa966ab9e139ec32df02757569843bebc9ce8",
      "parents": [
        "3b4529e03c5fc7a44c22f9091ad15a269bfca3a8"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 06 16:55:14 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 06 17:50:12 2013 -0700"
      },
      "message": "camera3: Dump latest request sent with dumpsys\n\nBug: 10606535\nChange-Id: I0dd5ca3e09f45701659ab9ebd3b51939a2f6e6ba\n"
    },
    {
      "commit": "84b7fb0c88ddd05ed7c148c82fe1691040a9404d",
      "tree": "41dc8df17d0f040c4a021e0a221ac0202aab5ae2",
      "parents": [
        "3b4529e03c5fc7a44c22f9091ad15a269bfca3a8"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Sep 06 11:46:01 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Sep 06 16:36:19 2013 -0700"
      },
      "message": "Camera: Send VIDEO_SNAPSHOT intent for video snapshot case\n\nBug: 9924539\nChange-Id: Ief39eff79c31f2c2aa5df2fe1a0f04c4afc74690\n"
    },
    {
      "commit": "e6d5794b2173ffe4e7509203a91778b19eafcebf",
      "tree": "a2f6d729e72a7386220b8c38099f47fe54e0c21c",
      "parents": [
        "36a8b33a23dca49c9617e97e22e5d67f7d25c268"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 06 12:03:26 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 06 12:03:26 2013 -0700"
      },
      "message": "Make sure the encoder instance is safely release()\u0027d before its\n\nreference count drops to 0.\n\nChange-Id: I6601226e2754f17e964125cacf02dc02cfbf6231\nrelated-to-bug: 10150263\n"
    },
    {
      "commit": "3b4529e03c5fc7a44c22f9091ad15a269bfca3a8",
      "tree": "552d810348dc2ffd6018e58970a4cbbb39eceb5e",
      "parents": [
        "60c60df7db278d2fa5c90b0fa14f99a61d50272b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 05 18:09:19 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 18:09:03 2013 +0000"
      },
      "message": "audioflinger: remove async write race conditions\n\nRemove possible race conditions between async callback\nthread and offload thread when clearing and setting the\ndraining and write blocked flags.\n\nBug: 8174034.\nChange-Id: I7af10491f39dc0e7d7414862a9d8e763daa2e2b7\n"
    },
    {
      "commit": "60c60df7db278d2fa5c90b0fa14f99a61d50272b",
      "tree": "1b687d31467576d5fce79d4646917652fa8ed9dc",
      "parents": [
        "a82975e02ccf78fd9c4dd2f7c1a66c254b52fe3b"
      ],
      "author": {
        "name": "jpadmana",
        "email": "rpadmanaban.jayashree@gmail.com",
        "time": "Tue Jun 04 16:03:29 2013 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 17:36:29 2013 +0000"
      },
      "message": "Effect Offload Proxy for effects offload\n\nEffect Proxy abstracts the sub effects to the upper layers.\nIt has the following functionalities:\n- creation and release of sub effects\n- routing the effect commands and process to the appropriate sub effect\n\nBug: 8174034.\n\nChange-Id: I22d8136636048e7fe8f8807cbc6e348ffa200a22\nSigned-off-by: jpadmana \u003crpadmanaban.jayashree@gmail.com\u003e\n"
    },
    {
      "commit": "a82975e02ccf78fd9c4dd2f7c1a66c254b52fe3b",
      "tree": "f98f5da066db046df3c016888e618dd7b86e8de3",
      "parents": [
        "c23981d9375d4a55f5701a4090b36deecda92f92",
        "284c17e73bbff51cb5b1adcee98386d47733757a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 17:34:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 06 17:34:56 2013 +0000"
      },
      "message": "Merge \"Effects Factory changes for effects offload\" into klp-dev"
    },
    {
      "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": "c23981d9375d4a55f5701a4090b36deecda92f92",
      "tree": "e8c15d600856ea80b91ad4ffd38c8ea79c71e46e",
      "parents": [
        "36a8b33a23dca49c9617e97e22e5d67f7d25c268",
        "6f9439efd2a6004b588605f6a9d4af20c98e8e80"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 06 16:58:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 06 16:58:25 2013 +0000"
      },
      "message": "Merge \"Better workaround for slow decoders.\" into klp-dev"
    },
    {
      "commit": "36a8b33a23dca49c9617e97e22e5d67f7d25c268",
      "tree": "259ccf6447eeb22fb45240665ac1620eadd420c5",
      "parents": [
        "72119ce833d4f0e1c0342f1722d1433f2ba12b87",
        "a27c4aa222c8dd1712617dad954c5f3aa68d5427"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Sep 06 01:21:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 06 01:21:52 2013 +0000"
      },
      "message": "Merge \"camera: Fix race condition between setParameters() and stopPreview().\" into klp-dev"
    },
    {
      "commit": "a27c4aa222c8dd1712617dad954c5f3aa68d5427",
      "tree": "bf70a487ec2ca5b69f216796ceaf6e822daf0b6c",
      "parents": [
        "c85d61964cb6f9b23cd2e82e43d7052b3e7d4fbc"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Sep 04 18:18:26 2013 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Sep 05 18:37:49 2013 +0000"
      },
      "message": "camera: Fix race condition between setParameters() and stopPreview().\n\nBug: 10414772\nChange-Id: I928cb3935afb101da8a7931f88c27dccdb03b4a9\n"
    },
    {
      "commit": "72119ce833d4f0e1c0342f1722d1433f2ba12b87",
      "tree": "5e6e3b2fa2c45573550b99766f92e6e5fd4fe32e",
      "parents": [
        "a19912554f3779fac0c341ac702227bf4b5fe399",
        "f74ccdb61627421bccfdbc479ffdc06ced717db4"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Sep 05 17:00:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 05 17:00:16 2013 +0000"
      },
      "message": "Merge \"Start \u0027am\u0027 with exec()\" into klp-dev"
    },
    {
      "commit": "f74ccdb61627421bccfdbc479ffdc06ced717db4",
      "tree": "674daeefece2063d57863021f0d6991445fabacb",
      "parents": [
        "e45a767e13fe3396185c9d378a70f7f11eb881d0"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Sep 04 15:54:07 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Sep 04 15:54:07 2013 -0700"
      },
      "message": "Start \u0027am\u0027 with exec()\n\nWe were using system() to run \u0027am broadcast\u0027.  Switch to\nfork()+exec().\n\nBug 10606037\n\nChange-Id: Ifae1a2b4f1914f015d09f2cac8cd0b1896d87a84\n"
    },
    {
      "commit": "6f9439efd2a6004b588605f6a9d4af20c98e8e80",
      "tree": "33e81b2244ff78d4735170362fb37ddafd4542c5",
      "parents": [
        "491211b87dd38357d37ece687cf8795bff8996a5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 04 15:00:07 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 04 15:36:42 2013 -0700"
      },
      "message": "Better workaround for slow decoders.\n\nThis is more in the spirit of the original code. Now it checks\nwhether a codec instantiated by name is a video codec, and enables\nthe extra looper if so.\n\nb/10528409\n\nChange-Id: Ia253c04c1283d4ecf66f213ef4bf523279ad7cca\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": "7a4c2711d7a85ce962b9d18fee41975f9c574c0b",
      "tree": "f3dc18135a26e3ae73fb6de6924ea54fc4bb682e",
      "parents": [
        "c85d61964cb6f9b23cd2e82e43d7052b3e7d4fbc",
        "17963d16d66526288ed66c91a6744daf3acfd731"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Sep 04 21:48:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 04 21:48:14 2013 +0000"
      },
      "message": "Merge \"Fix CameraService error flag when running HAL1 with API2.\" into klp-dev"
    },
    {
      "commit": "17963d16d66526288ed66c91a6744daf3acfd731",
      "tree": "8248514bf96576188d868ee91bd57fd11740d134",
      "parents": [
        "df60eff872f276c1a94ab0355b252b73fe61faa9"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Mon Aug 19 15:21:19 2013 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Sep 04 11:57:45 2013 -0700"
      },
      "message": "Fix CameraService error flag when running HAL1 with API2.\n\nBug: 10620944\n\nChange-Id: I44c0d09a3d313ae8f724fbe61fa5f36cf5b38b6d\n"
    },
    {
      "commit": "c85d61964cb6f9b23cd2e82e43d7052b3e7d4fbc",
      "tree": "cf2acf7760e9285c884732f5b2bdd2947c32f106",
      "parents": [
        "df60eff872f276c1a94ab0355b252b73fe61faa9",
        "fa51e09b30e884fed20b141783a7447599a6563e"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Wed Sep 04 16:21:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 04 16:21:35 2013 +0000"
      },
      "message": "Merge \"  Fixed timestamp handling in ESQueue Access Unit parser.   This fixes bug b/10294801\" into klp-dev"
    },
    {
      "commit": "df60eff872f276c1a94ab0355b252b73fe61faa9",
      "tree": "16025b56826506c195c80033ad048b2f2ef38953",
      "parents": [
        "fe346c707f59d763ded93bc3d27b51f0c0408258",
        "491211b87dd38357d37ece687cf8795bff8996a5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 04 01:35:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 04 01:35:40 2013 +0000"
      },
      "message": "Merge \"Work around decoder slowness\" into klp-dev"
    },
    {
      "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": "491211b87dd38357d37ece687cf8795bff8996a5",
      "tree": "5d5fc16f8ad06e6f5f74c050395251e0e0b75a54",
      "parents": [
        "d656a4be3c3b6bc249b06599c2b02c2863d2c47f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 03 15:29:33 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 03 15:29:33 2013 -0700"
      },
      "message": "Work around decoder slowness\n\nb/10528409\n\nChange-Id: Ifcaf0488d63e87676b1e9382437943138deb76a6\n"
    },
    {
      "commit": "fe346c707f59d763ded93bc3d27b51f0c0408258",
      "tree": "3e6f12ac7b37bc8ef10845c4c7ccdcfef4b51cd5",
      "parents": [
        "4d0815d694e5a2edb3ce48427de50f55d0f84c0b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 30 13:28:22 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:19:03 2013 -0700"
      },
      "message": "Fix miscellanous AudioTrack::getTimestamp() bugs\n\nCheck that get_presentation_position is non-NULL before calling.\n\nAudioTrack::getTimestamp not implemented for fast tracks.\n\nFix typo in Track::getTimestamp().\n\nFix bugs in AudioTrack::getTimestamp after stop:\n - getTimestamp while stopped is not allowed.\n - stop, start, getTimestamp now returns the correct value.\n\nChange-Id: Ie8d9dc1f28d8927634e04175a68b147ffc2ea8eb\n"
    },
    {
      "commit": "4d0815d694e5a2edb3ce48427de50f55d0f84c0b",
      "tree": "446da0a3f51945bcfc0de108c169eab70a652674",
      "parents": [
        "732845c7e8d294bb1aaa4cd9687da62b51f1f6e6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 14:40:55 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:31 2013 -0700"
      },
      "message": "Implement MonoPipe::getTimestamp\n\nusing SingleStateQueue observer\n\nChange-Id: I7b1928b087f1e676c7b291df6cefa7707301662c\n"
    },
    {
      "commit": "732845c7e8d294bb1aaa4cd9687da62b51f1f6e6",
      "tree": "775ccbda50c8bb2403af5cb52b8891a6130ded5d",
      "parents": [
        "6466c9e6e6278c740aed77f695f679be9f5db478"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 09:26:31 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:20 2013 -0700"
      },
      "message": "FastMixer computes presentation timestamps for fast tracks\n\nand forwards them to each track\u0027s ExtendedAudioBufferProvider::onTimestamp().\n\nChange-Id: I06fb9586bb7e20d5c0289abdc8cac6cd3fd2f6e8\n"
    },
    {
      "commit": "6466c9e6e6278c740aed77f695f679be9f5db478",
      "tree": "cd987ec819ddecba0665cd692285069c083fb19b",
      "parents": [
        "894d6be4f9b4721c77a01919ecf03b27cec90cc9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 10:54:07 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:11 2013 -0700"
      },
      "message": "Add ExtendedAudioBufferProvider::framesReleased and onTimestamp\n\nand implement them in SourceAudioBufferProvider using the associated NBAIO_Source,\nand in Track using the associated AudioTrackServerProxy.\n\nChange-Id: I60dc4adba63fc1dc452ff16caf347e4a7c8242c2\n"
    },
    {
      "commit": "894d6be4f9b4721c77a01919ecf03b27cec90cc9",
      "tree": "c0356613af3c5dc3451197f8781a43c5d9d4d36c",
      "parents": [
        "a07a1c2c91dc7ee6ded319262499f20cd01edcf7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 26 10:29:28 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:03 2013 -0700"
      },
      "message": "Add NBAIO_Source::onTimestamp()\n\nwith dummy default implementation, and implement in MonoPipeReader.\nonTimestamp is meant to be called by the corresponding sink when it has\na new timestamp available.\n\nChange-Id: I8a90d24d1061e4a592ce5bd8ee1c9fce6bdd8a84\n"
    },
    {
      "commit": "a07a1c2c91dc7ee6ded319262499f20cd01edcf7",
      "tree": "2d7b01150635952af8d8d9e4f1a0d0d48ccfa874",
      "parents": [
        "943ba3cca8df0da24db38e97e43aaacb5b788a21"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 10:54:35 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:11:39 2013 -0700"
      },
      "message": "Instantiate SingleStateQueue\u003cAudioTimestamp\u003e\n\nas typedef AudioTimestampSingleStateQueue and use it in MonoPipe.\n\nChange-Id: Idaebb362bd9d0a81a7ed83792ab9369dc37c0e74\n"
    },
    {
      "commit": "943ba3cca8df0da24db38e97e43aaacb5b788a21",
      "tree": "f0e19f47cec090e2795df2df75b91c88c935ec01",
      "parents": [
        "572864b94e7882c2d23537525c708abcacde43b0",
        "767094dd98b01baf21de2ad09c27b3c98776cf73"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 22:08:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 22:08:53 2013 +0000"
      },
      "message": "Merge \"Add NBAIO_Sink::getTimestamp()\" into klp-dev"
    },
    {
      "commit": "572864b94e7882c2d23537525c708abcacde43b0",
      "tree": "a2beee7eb30d0945d0ab894138fa6d75a7da59e0",
      "parents": [
        "0a4df03542e7d7aab716a60e206dceaf5da178f3",
        "1b02586f0f41d82c80619cfc0d16cd3feb5eaec7"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Sep 03 21:43:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 21:43:49 2013 +0000"
      },
      "message": "Merge \"AAC encoder: handle missing object types\" into klp-dev"
    },
    {
      "commit": "0a4df03542e7d7aab716a60e206dceaf5da178f3",
      "tree": "a95c5df29592ac85f4ea8f65bcd7456e3d5e0c93",
      "parents": [
        "4585e8f0ff47580fdb81ed8652bde32db1770050"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 03 13:29:28 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 03 13:32:53 2013 -0700"
      },
      "message": "Camera2/3: Increase precapture start timeout\n\nCurrently, we only wait 200 ms for the HAL to switch to the precapture\nstate.  This is insufficient at low preview frame rates (dark\nconditions, ~10 fps), where a 3-request-deep HAL pipeline will take\n300 ms to produce a precapture trigger output. In those cases, we\nwould prematurely skip the precapture sequence, causing bad quality\npictures.\n\nSince this is a fallback timeout to prevent deadlock in case of a bad\nHAL or framework implementation, increase the timeout to 1 second. Has\nno impact on correctly-working implementations\n\nBug: 10430191\nChange-Id: I08e99f8e7f3beb8f15dcee32632cdebfe3dca8b3\n"
    },
    {
      "commit": "767094dd98b01baf21de2ad09c27b3c98776cf73",
      "tree": "57b1a9c3b3d794bac2e1922b314046f02df18e7e",
      "parents": [
        "e45a767e13fe3396185c9d378a70f7f11eb881d0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 13:51:43 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 11:24:02 2013 -0700"
      },
      "message": "Add NBAIO_Sink::getTimestamp()\n\nwith a real implementation in AudioStreamOutSink\nfor dummy implementation initially in MonoPipe.\n\nUse in AudioFlinger::PlaybackThread::threadLoop_write()\nto keep the input to the timestamp latch up-to-date.\n\nChange-Id: I10ef277991b63bb43d55d6f3df75116ef32246cd\n"
    },
    {
      "commit": "4585e8f0ff47580fdb81ed8652bde32db1770050",
      "tree": "6aa5196aef1b75edc79199065ad825c26da64533",
      "parents": [
        "e45a767e13fe3396185c9d378a70f7f11eb881d0"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 30 23:05:00 2013 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Sep 03 10:15:01 2013 -0700"
      },
      "message": "Revert \"Enhancement for OnInfo callback on DRM Framework\"\n\nThis reverts commit 5ff7836da0220b3097f36c8a5e82111816ebca62.\n\nFixes Fatal signal 6 (SIGABRT)\" when playing or downloading a video\nbug: 10542864\n\nChange-Id: I7f81a41c3acdbeb571a514b3f65e7ba37d403cca\n"
    },
    {
      "commit": "e45a767e13fe3396185c9d378a70f7f11eb881d0",
      "tree": "53ead38de52c275657078d16d2bc46b67524e021",
      "parents": [
        "6bf9ae20b3bd2dbb8f2e89ee167a6785222301cf",
        "b6209a3d4c29bbb88de5a77546f4d545883cc484"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Aug 31 17:14:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 31 17:14:04 2013 +0000"
      },
      "message": "Merge \"Revert \"Fix decoder EOS handling\"\" into klp-dev"
    },
    {
      "commit": "b6209a3d4c29bbb88de5a77546f4d545883cc484",
      "tree": "d8ba78a8d94ca3c0b205faa98e840303b346349c",
      "parents": [
        "d656a4be3c3b6bc249b06599c2b02c2863d2c47f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 30 19:22:29 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 30 19:26:54 2013 -0700"
      },
      "message": "Revert \"Fix decoder EOS handling\"\n\nThis reverts commit 9da36a6c8df70a5c8179ac78fab33cfbb5078cb2.\n\nBug: 10571297.\nChange-Id: I76f20fe34872ea54fce626077462fb86c8c3f02e\n"
    }
  ],
  "next": "fa51e09b30e884fed20b141783a7447599a6563e"
}
