)]}'
{
  "log": [
    {
      "commit": "2b806406ac1ec680b6fe3aaa84c54bdc4e43ad8d",
      "tree": "b442aec39d3318a85e4eda692ced7fbc877df128",
      "parents": [
        "f10ffec18f930d92e1abe9200d60e746831841a7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 20 16:37:38 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 20 17:52:28 2013 -0800"
      },
      "message": "Change mActiveTrack to mActiveTracks vector\n\nThe size of mActiveTracks is still limited to 1 for now.\n\nChange-Id: Ia6b06b25d8c4709f087110ae29c589999407a2a2\n"
    },
    {
      "commit": "f10ffec18f930d92e1abe9200d60e746831841a7",
      "tree": "b4d4bb444323e32eff524a9858ac7147bd1b22eb",
      "parents": [
        "7ae751960d8b31e6e301c18122d1146da8fe5983"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 20 16:40:08 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 20 17:52:16 2013 -0800"
      },
      "message": "Code simplification and movement to prepare for mActiveTracks\n\nShare code to acquire wake lock at entry to loop\n\nChange-Id: I01fb645de9417055c0adfc6a4c4011bf22ea4f94\n"
    },
    {
      "commit": "b50df220ae76c7bb6e78b096ece06b2609cf4ffe",
      "tree": "2ec559fbf7b10fad83e011b778536d1b7bb8d252",
      "parents": [
        "00345c5541bd59c7018534313e9a82623133b3ec",
        "213ce79e943a3b51d7859a184d8211c859c960a0"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 19 18:45:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 19 18:45:46 2013 +0000"
      },
      "message": "Merge \"Camera3: add systraces for hal open/close\""
    },
    {
      "commit": "213ce79e943a3b51d7859a184d8211c859c960a0",
      "tree": "bf0dbb04265c9843e2d0dc1001d90d27d5ea78b0",
      "parents": [
        "377fce69297a0e5b7c3b266a7602b17146785635"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 19 08:45:15 2013 -0800"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 19 08:45:15 2013 -0800"
      },
      "message": "Camera3: add systraces for hal open/close\n\nBug: 10901465\nChange-Id: I32fb96aa0f9efd423bdb9a3d92c142a096a7a47f\n"
    },
    {
      "commit": "3bd2531ac7c87b85bc9f5abf558b5dc247caaa86",
      "tree": "466bede8d07edf66e2603d3b4dfb2a713ddcdce3",
      "parents": [
        "ca22dd5d69fdfa17e556839cff6c14e1287c0284",
        "054aab3479a094b0a04d48db9cb8f325ea5be162"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Nov 18 19:50:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 18 19:50:44 2013 +0000"
      },
      "message": "Merge \"camera3: Remove BufferQueue::MIN_UNDEQUEUED_BUFFERS references\""
    },
    {
      "commit": "054aab3479a094b0a04d48db9cb8f325ea5be162",
      "tree": "7293043e1ad928ae36e9a571950d52ec91472d85",
      "parents": [
        "2c165bad49eb3a04f901d2e6e87a80757fc97485"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Nov 18 11:39:27 2013 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Nov 18 11:39:27 2013 -0800"
      },
      "message": "camera3: Remove BufferQueue::MIN_UNDEQUEUED_BUFFERS references\n\nChange-Id: I4730ac7849e915e88d3b8fc8aa869f53a8242501\n"
    },
    {
      "commit": "731076cc7857fe322eed018569a2a67f6eac0e54",
      "tree": "1aa3b6cdcd6fde4ac68d632eb0d94b2f3e3a4307",
      "parents": [
        "b4213a1252c23115f3fac77101adb33a9c6b9423",
        "06d6254823b8f7a46690369e57b5f149c94c9f65"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 15 13:13:41 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 15 13:13:41 2013 -0800"
      },
      "message": "am 06d62548: am d7e59228: audioflinger: do not use raw pointer for tracks\n\n* commit \u002706d6254823b8f7a46690369e57b5f149c94c9f65\u0027:\n  audioflinger: do not use raw pointer for tracks\n"
    },
    {
      "commit": "d7e59228caad3867794d847f6bf163c6495e9506",
      "tree": "f09784ce425a6928c56a932101752b63b21d8f44",
      "parents": [
        "7dae71d606ded1dbc2aa9733c3d98ffac57988f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 15 12:02:28 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 15 12:11:39 2013 -0800"
      },
      "message": "audioflinger: do not use raw pointer for tracks\n\nCommit 9da3d95 surfaced a problem caused by the use of a raw\npointer to a track in offload thread implementation.\n\nPointers to tracks should always be weak or strong pointers.\n\nBug: 11708529.\nChange-Id: Ic48632532d186c9be8261f73cefdf824b9fbbd2b\n"
    },
    {
      "commit": "27c70d391da6fde79d2e03fb767f9913555c1e9c",
      "tree": "8257d28714264a6ba78a8db7ea1ec469b517eeef",
      "parents": [
        "561879df42b65f44b83c391d78d351e9ad4cb162",
        "0f1ecc2e2ff84144d5293f7f79ba895538d27f9b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Nov 14 15:49:21 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 14 15:49:21 2013 -0800"
      },
      "message": "am 0f1ecc2e: am d8a62e25: Camera2: Rework the FPS range vs. FPS single setting detection\n\n* commit \u00270f1ecc2e2ff84144d5293f7f79ba895538d27f9b\u0027:\n  Camera2: Rework the FPS range vs. FPS single setting detection\n"
    },
    {
      "commit": "d8a62e25ba6520c2531c7a3d32cc8066e1dab776",
      "tree": "dbf4856e2a0f6781f3287fed2534f7e358c6b053",
      "parents": [
        "4215e6166fca9f87a6e9e848b3dfd4ab0d25c954"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Nov 14 10:32:13 2013 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Nov 14 10:32:13 2013 -0800"
      },
      "message": "Camera2: Rework the FPS range vs. FPS single setting detection\n\nGive up on current approach of writing out consistent FPS values\ninto parameters that will be read back by the app.\n\n- Preserve app\u0027s latest set parameters exactly, and compare against\n  them when detecting if a new FPS range or single FPS value has been\n  selected.\n\n- Since get() returns exactly what was set(), it doesn\u0027t matter if the\n  app calls getParameters() before its next setParameters(), in terms\n  of retriggering FPS selection logic. Before, the behavior varied\n  depending on whether the app re-read the parameters.\n\n- As before, if app changes both range and single FPS in a single set\n  call, the range set wins. Otherwise, the value that has changed more\n  recently is used.\n\nBug: 11570973\nChange-Id: I72b5e60c3f60e88d55127dd1bda87e26eaf929c6\n"
    },
    {
      "commit": "561879df42b65f44b83c391d78d351e9ad4cb162",
      "tree": "919a28cf4f5c38963f82f8c1ac8c901cdcdc57e5",
      "parents": [
        "b04b25321dd323142eec7c5136c81dea3629cf14",
        "307aa87038017dff8ae1dd0262c0ff87723894d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 08:49:40 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 14 08:49:40 2013 -0800"
      },
      "message": "am 307aa870: am 4215e616: Merge \"audioflinger: fix offload track transition\" into klp-dev\n\n* commit \u0027307aa87038017dff8ae1dd0262c0ff87723894d7\u0027:\n  audioflinger: fix offload track transition\n"
    },
    {
      "commit": "b04b25321dd323142eec7c5136c81dea3629cf14",
      "tree": "99596e465d2fd7d2083613360762c3baac1b25e5",
      "parents": [
        "4f3f5e01208a547e8ea6ff6442a5a33e10748162",
        "b50fa77b2cc7dadae1b8ebb591d42976879ac43c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 08:49:39 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 14 08:49:39 2013 -0800"
      },
      "message": "am b50fa77b: am 9f357f31: Merge \"audioflinger: fix offload resume after drain\" into klp-dev\n\n* commit \u0027b50fa77b2cc7dadae1b8ebb591d42976879ac43c\u0027:\n  audioflinger: fix offload resume after drain\n"
    },
    {
      "commit": "9da3d9573a18ffe08365557c706cf52f09118d1c",
      "tree": "c30511f753f1b49d5519ba5249316b12f33bb29a",
      "parents": [
        "1b9f9b134e732a48198e51f16424f330cbf03143"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 12 19:25:43 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 12 19:32:36 2013 -0800"
      },
      "message": "audioflinger: fix offload track transition\n\nMake sure that when transitioning from one active\noffloaded track to the next we flush DSP content\nif both tracks are not on the same audio session.\nThis happens when switching between two applications\nplaying the same type of content (e.g MP3, stereo, 44.1).\nIn this case, we reuse the same output thread because the track\nformats are compatible.\n\nBug: 11247103.\nChange-Id: I2b9031591149adeb70766da5e0d21ff2933a37e8\n"
    },
    {
      "commit": "1b9f9b134e732a48198e51f16424f330cbf03143",
      "tree": "b51c0fd76cd949c420404ce221eae0ce9fad597e",
      "parents": [
        "22990fe1ee3531e84dbadb7ff9ffd68d5bbe9060"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 12 19:10:17 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 12 19:10:17 2013 -0800"
      },
      "message": "audioflinger: fix offload resume after drain\n\nWhen pausing and resuming during the drain,\nthe drain sequence number shuold not be modified\notherwise the drain callback will be ignored.\nThis causes failure to notify end of stream to audio\nplayer and transition to next song.\n\nBug: 11247103.\nChange-Id: I2a35c5cc3fd6aa667cdd257f9e9cc8715cef5159\n"
    },
    {
      "commit": "48da8933f18e7ebd5bccb8de04aada099ed99e74",
      "tree": "e5275eea80fef969889ba961ce948e896962eb55",
      "parents": [
        "d725d23ae67045c22003d419d5c31ca1d551da89",
        "5c2379fdf93029c683c8bcf41b7b663b9940c921"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Nov 12 10:48:12 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 12 10:48:12 2013 -0800"
      },
      "message": "am 5c2379fd: am 184dfe4e: Camera API2: Add support for partial result quirk\n\n* commit \u00275c2379fdf93029c683c8bcf41b7b663b9940c921\u0027:\n  Camera API2: Add support for partial result quirk\n"
    },
    {
      "commit": "184dfe4ea5e2ba33951bed2b1366007aee0ce3da",
      "tree": "ada678fb9d95fed7b4b25aead2615eaa4f003495",
      "parents": [
        "caee8747b7df3b1119426594d4ba1c0e300ff6db"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Nov 07 15:13:16 2013 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Nov 12 10:24:42 2013 -0800"
      },
      "message": "Camera API2: Add support for partial result quirk\n\n- Camera3Device: Include requestId in partial 3A results\n- FrameProcessorBase: Add support for partial result listeners\n- CameraDeviceClient: Listen and forward partial results to client\n\nBug: 11115603\nChange-Id: If1cc6bbc32932742ac142c058688761ebf6a8024\n"
    },
    {
      "commit": "579dd27d96497022e534e859c6ebbec675ee07aa",
      "tree": "eaf88af8813d48a52e6ff7094990a04010da228c",
      "parents": [
        "80e4b050774695b63ca82d009c7262c936fcc28f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 08 14:26:14 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 08 14:26:14 2013 -0800"
      },
      "message": "Fix build\n\nChange-Id: I1ecccada22047d9c828152a53ad68b5599ff8827\n"
    },
    {
      "commit": "8594843c15b4722ced39436fe9e64f3e57e7ace4",
      "tree": "9d8e4dcf8cf31ee119abe0872223a416e6418ec0",
      "parents": [
        "d8a1de6204829b0379bbd13042f1450bdb203f2b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 19 12:09:05 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 08 11:55:36 2013 -0800"
      },
      "message": "Pull HAL reads out of RecordThread resample\n\nPreviously, the resample was indirectly calling HAL read\nfrom within the BufferProvider\u0027s getNextBuffer.  Now the HAL\nread is done ahead of time into a circular buffer,\nand the getNextBuffer just reads out of that memory.\n\nThis change will permit some future planned features.\n\nAlso removed the mono to mono resampling optimization,\nas that optimization will no longer be valid in the future.\n\nChange-Id: I59f5016a2df91078d697c37a7dec2d9d9f44542e\n"
    },
    {
      "commit": "d8a1de6204829b0379bbd13042f1450bdb203f2b",
      "tree": "b7b513a563f76060ec82a73aa9ee9543a391b8db",
      "parents": [
        "2e70b42e2af66f4abb22a95c5d642175c007e256",
        "f551e9961a6f66d63bb57f288c4be01b00725289"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 08 19:19:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 08 19:19:00 2013 +0000"
      },
      "message": "Merge \"Channel counts are uint32_t\""
    },
    {
      "commit": "7bf17159f233111a21b293cde8e227231353cd75",
      "tree": "6c6288f61fe101a1299dbd355fd85ffb72144e37",
      "parents": [
        "09faf14b434bec0d184fecec947e3d750bcc64ff",
        "d9d8b7b63514ceea143968b3f114c52755dda9ef"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Nov 06 18:44:05 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 06 18:44:05 2013 -0800"
      },
      "message": "am d9d8b7b6: am fd6ecdd3: Camera HAL3/API1: Add support for the partial result quirk.\n\n* commit \u0027d9d8b7b63514ceea143968b3f114c52755dda9ef\u0027:\n  Camera HAL3/API1: Add support for the partial result quirk.\n"
    },
    {
      "commit": "fd6ecdd39bd83ea020f78b425e96310380d66c35",
      "tree": "74b1aaa8fdcbf75681f72fb93b96db4ab48fa34c",
      "parents": [
        "48b6cd98b23b2cf9dee88f075f7575ecb5aaf545"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 11 09:51:09 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Nov 06 18:22:22 2013 -0800"
      },
      "message": "Camera HAL3/API1: Add support for the partial result quirk.\n\n- Camera2Client:\n - Detect partial result quirk\n- Camera3Device:\n - Accumulate all partial results together\n - Fire off 3A-only result once all 3A states are available\n- FrameProcessorBase:\n - Filter out partials, don\u0027t send to listeners\n- FrameProcessor:\n - Skip face detect on partials\n - Make sure to only handle a 3A update for a given frame once\n - Trigger AF notifications when AF mode or trigger changes, to\n   properly detect all AF transitions.\n\nBug: 11115603\nChange-Id: Iea8aa73c568701562a46071f7ea100624251d10b\n"
    },
    {
      "commit": "f551e9961a6f66d63bb57f288c4be01b00725289",
      "tree": "1253e7bc4034a35606881fe75e6c22b3a8c602cc",
      "parents": [
        "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 19 18:45:42 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 15:49:00 2013 -0800"
      },
      "message": "Channel counts are uint32_t\n\nChange-Id: I5676b6a291b72d7db6326f7eaf6d17588de51b05\n"
    },
    {
      "commit": "09faf14b434bec0d184fecec947e3d750bcc64ff",
      "tree": "a598a00077e6ed9ca33ff3bb71f3b4faae8fa315",
      "parents": [
        "d6fadf0479b489b09b764070974d8a59855ede64",
        "93e471f620454f7de73d190521568b1e25879767"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 23:34:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 06 23:34:09 2013 +0000"
      },
      "message": "Merge \"Rename standby methods\""
    },
    {
      "commit": "d6fadf0479b489b09b764070974d8a59855ede64",
      "tree": "239aa64bd7cdc0e69b1ad8e1ef85be7e09176a56",
      "parents": [
        "8f32537d028231abed103c68705bc5d07cedf919"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 30 14:37:29 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 14:49:46 2013 -0800"
      },
      "message": "Simplify track \u0027needs\u0027 bits\n\nUse more standard coding convention for bit masks,\nand add a FIXME about max channel count.\n\nChange-Id: I856784016703417ee480b92ae73757c472f9cf95\n"
    },
    {
      "commit": "8f32537d028231abed103c68705bc5d07cedf919",
      "tree": "17eb75d6fc15e8494cb0049df39f2e971cbb8c77",
      "parents": [
        "e25b778b11183fda65418ab2142873a030521870"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 30 14:36:47 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 14:47:41 2013 -0800"
      },
      "message": "Remove redundant this-\u003e\n\nChange-Id: Id783201e802b6ce294fa92f4bbe492adfb446686\n"
    },
    {
      "commit": "e25b778b11183fda65418ab2142873a030521870",
      "tree": "f7e2a2751de63187e29d0597eb0324e23a062d98",
      "parents": [
        "5c6ba3ad8eed1d59e5e2ffe6b70ced2d582a9def"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 30 14:37:10 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 14:43:25 2013 -0800"
      },
      "message": "Remove dead code\n\nChange-Id: Ide9196aa348cd3846b5c71d51fe6538f38ea8dc2\n"
    },
    {
      "commit": "5c6ba3ad8eed1d59e5e2ffe6b70ced2d582a9def",
      "tree": "aef0e90aea00a9891fbb8c47d153098581142258",
      "parents": [
        "5307612c3f1164bea523f5e90300d3a8b8afd093",
        "49c34acbef91800930b0fe561e0787145a10cfcc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 22:06:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 06 22:06:58 2013 +0000"
      },
      "message": "Merge \"Fix race condition in initializing downmix\""
    },
    {
      "commit": "49c34acbef91800930b0fe561e0787145a10cfcc",
      "tree": "53e636df1a5868bbea112ec3bd36e19862208adf",
      "parents": [
        "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 30 14:37:01 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Nov 06 18:05:09 2013 +0000"
      },
      "message": "Fix race condition in initializing downmix\n\nThe code that initializes downmix GUID searches for an effect of\nthe right type.  If two or more AudioMixers are created, there is a\npossibility that the GUID will temporarily have the wrong value.\n\nNow the initialization is only done once, regardless of how many\nAudioMixers there are.\n\nOther minor changes:\n - use naming convention of leading \u0027s\u0027 for static member variables\n - log message for no downmix effect is now a warning instead of an error,\n   since it is not an error until there is actual content to downmix\n   without a downmix effect\n\nChange-Id: I33ab0e51cf9d24ecaf8ae868883736b0772178c4\n"
    },
    {
      "commit": "0699ed950b307663e0f7e01aecdfb505e62df7d6",
      "tree": "2d6ac287cdd321afe7f2fdd8d4fc9f8c55101f12",
      "parents": [
        "44f412a81dcca8f7149d483eeeee9057ad0101cf",
        "b91aa63779ad1ce1846fbc604f9ec935e0c67852"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 17:51:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 06 17:51:46 2013 +0000"
      },
      "message": "Merge \"Move local declarations to point of first use\""
    },
    {
      "commit": "44f412a81dcca8f7149d483eeeee9057ad0101cf",
      "tree": "029f381c2185dc354032859e9f3b03cdcda57a9f",
      "parents": [
        "7bb88779cdc1a1fe1445d6d1691fb7daac932e74",
        "44dc91554521eaab478674a7f812cb8a4fa4f809"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 06 09:46:53 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 06 09:46:53 2013 -0800"
      },
      "message": "am 44dc9155: am 48b6cd98: Merge \"audioflinger: fix direct output underrun\" into klp-dev\n\n* commit \u002744dc91554521eaab478674a7f812cb8a4fa4f809\u0027:\n  audioflinger: fix direct output underrun\n"
    },
    {
      "commit": "7bb88779cdc1a1fe1445d6d1691fb7daac932e74",
      "tree": "310ce2ff066a39fcb1d0ac72d480d8b48aef3275",
      "parents": [
        "1b3ec0f33cbdcac5e148c23abc5bc4f68d780ed4",
        "e6f35b13567d920af19f0b8dc35f9120b7cf1dc9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 17:38:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 06 17:38:02 2013 +0000"
      },
      "message": "Merge \"Rename TrackPaused to trackPaused\""
    },
    {
      "commit": "1b3ec0f33cbdcac5e148c23abc5bc4f68d780ed4",
      "tree": "de7124828b0dbd622cf58756508b0d2eb8163316",
      "parents": [
        "65f498e9f5de65135ae1954eca53de81817c8d6c",
        "b2737d0b33c17e408d96d6f9eeaa3381479c94c7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 06 17:13:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 06 17:13:16 2013 +0000"
      },
      "message": "Merge \"Use const more places\""
    },
    {
      "commit": "a23f17ac334ff20a11ee63dd177cb1080e44c483",
      "tree": "e15dc095de74afc97fc509aa855cedf010df6c1e",
      "parents": [
        "5c7ffaed6f04b844c2e4e2024bfb0203ac2233dd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 05 18:22:08 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 05 18:22:08 2013 -0800"
      },
      "message": "audioflinger: fix direct output underrun\n\nUnderruns on tracks handled by a direct or offloaded\nthreads were not properly reported to the applications\ncausing a failure to automatically recover.\n\nBug: 11535001.\nChange-Id: I7a8696b4d646f78b16710addfe7c108d0dd0038d\n"
    },
    {
      "commit": "93e471f620454f7de73d190521568b1e25879767",
      "tree": "42b6c50f27f85233ba0967619ce8a6eeebe11f3f",
      "parents": [
        "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 19 08:40:07 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 04 15:48:55 2013 -0800"
      },
      "message": "Rename standby methods\n\nThreadBase::standby() returns the value of mStandby.\n\nRecordThread::standby() \"overrode\" ThreadBase::standby(), but with a\ndifferent meaning and no return value.  This meant you couldn\u0027t\naccess the parent\u0027s class definition within RecordThread.\n\nThis could be confusing, so this CL renames RecordThread::standby()\nto standbyIfNotAlreadyInStandby().\n\nChange-Id: I9196ee12701dd2dccdfaed922af2d7b8e8774676\n"
    },
    {
      "commit": "b91aa63779ad1ce1846fbc604f9ec935e0c67852",
      "tree": "fbb8b1e0094a2399446ce36b686ff4531595bb06",
      "parents": [
        "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 19 08:40:21 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 04 15:34:23 2013 -0800"
      },
      "message": "Move local declarations to point of first use\n\nChange-Id: I8a078386e371caab5174fc07b47f48fb9f21609a\n"
    },
    {
      "commit": "e6f35b13567d920af19f0b8dc35f9120b7cf1dc9",
      "tree": "f70cbfa9c6334248416bae35886cb2cd7fdc2671",
      "parents": [
        "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 19 09:58:50 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 04 15:33:10 2013 -0800"
      },
      "message": "Rename TrackPaused to trackPaused\n\nChange-Id: I3b38e0c9a6bbb6e18cb5b1f72670139a3071cb8f\n"
    },
    {
      "commit": "b2737d0b33c17e408d96d6f9eeaa3381479c94c7",
      "tree": "212bbe5b52e7c83fad26315c5451e32c0043eecb",
      "parents": [
        "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 19 12:03:11 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 04 15:27:12 2013 -0800"
      },
      "message": "Use const more places\n\nChange-Id: Ibc068d319d6fff26f2d11248e17481d8f7f027e0\n"
    },
    {
      "commit": "1c7258b3c34b5656de92d845f6366a0f3ac1e0c6",
      "tree": "901ca137c788d55098e9bed21772ad4f225e0636",
      "parents": [
        "774eb18c40c3a7da0bc1636a9779f02315ddbad8",
        "4cf799fbbb74de102d34ccb014ba7fbd9bfa5e14"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 31 15:39:14 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 31 15:39:14 2013 -0700"
      },
      "message": "am 4cf799fb: am 5c7ffaed: Merge \"AudioFlinger: fix duplicating thread standby.\" into klp-dev\n\n* commit \u00274cf799fbbb74de102d34ccb014ba7fbd9bfa5e14\u0027:\n  AudioFlinger: fix duplicating thread standby.\n"
    },
    {
      "commit": "5c7ffaed6f04b844c2e4e2024bfb0203ac2233dd",
      "tree": "71dac4a8045e2c0eca9dfbd341936f731ffa0a9b",
      "parents": [
        "3ff5792adfdbf67662a5f8064315a55690d53944",
        "2c3740f01acca69c3e0bcc5e01bb0edc51b6777f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 31 22:29:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 31 22:29:50 2013 +0000"
      },
      "message": "Merge \"AudioFlinger: fix duplicating thread standby.\" into klp-dev"
    },
    {
      "commit": "2c3740f01acca69c3e0bcc5e01bb0edc51b6777f",
      "tree": "fafcc00b076ae05c67b4cd0d3cd7de406b418c09",
      "parents": [
        "fd4779740ec3e9e865d5514464df26d015354388"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 30 16:57:06 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 30 16:57:06 2013 -0700"
      },
      "message": "AudioFlinger: fix duplicating thread standby.\n\nCommit fd47797 fixing issue 11247103 introduced a regression\nwhere the duplicating thread does not exit standby state as\nexpected. This in turn prevents the tracks sending audio to\nother threads to complete their activity cycle normally.\n\nThe fix conists in clearing mStandby state also in the specialized\nthreadLoop_write() method of DuplicatingThread subclass.\n\nBug: 11451415.\nChange-Id: Ie8a92c819a56a2834ea25fa70a8b7b2125721775\n"
    },
    {
      "commit": "06b3aa2f8a431eba782aa8c8f5da19f945678983",
      "tree": "19377379c26f824694905457feb9b7a69bc80084",
      "parents": [
        "ed94a039088d2218cbc69e831f16f78db53d0c83",
        "34790c866cdc309e3779b811db43f63aa7eae7ef"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 30 14:18:45 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 30 14:18:45 2013 -0700"
      },
      "message": "am 34790c86: am 3ff5792a: Merge \"camera: Collect stack traces when bad things happen, print with dumpsys\" into klp-dev\n\n* commit \u002734790c866cdc309e3779b811db43f63aa7eae7ef\u0027:\n  camera: Collect stack traces when bad things happen, print with dumpsys\n"
    },
    {
      "commit": "3ff5792adfdbf67662a5f8064315a55690d53944",
      "tree": "ed42f922d8280b2464a0b5bfdd1b167220f32f32",
      "parents": [
        "c76b9f52cf4e39f6943c53f5b3657dfee65857ac",
        "ff3e31d2b100d8efd969b358b18e4405c49dd10d"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 30 21:09:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 30 21:09:49 2013 +0000"
      },
      "message": "Merge \"camera: Collect stack traces when bad things happen, print with dumpsys\" into klp-dev"
    },
    {
      "commit": "1fc6cb5be26734938b3999e6bf4ce0e625e7d284",
      "tree": "ceca20e265134ebd5158b56d9341301ffd4242cc",
      "parents": [
        "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d",
        "ce275b7dd20e3d4781a46126c753e6eb998e6c0f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 29 18:20:38 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 29 18:20:38 2013 -0700"
      },
      "message": "am ce275b7d: am 1c594b63: Merge \"audioflinger: enable effects after registration if needed\" into klp-dev\n\n* commit \u0027ce275b7dd20e3d4781a46126c753e6eb998e6c0f\u0027:\n  audioflinger: enable effects after registration if needed\n"
    },
    {
      "commit": "1c594b637df26499ce1dae2db34f2b3290efd838",
      "tree": "0d231e939a18d3f28f1e19658a7b7ed2e61ed1fb",
      "parents": [
        "fd4779740ec3e9e865d5514464df26d015354388",
        "d72b7c0180ee83fc3754629ed68fc5887a125c4c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 30 01:13:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 30 01:13:52 2013 +0000"
      },
      "message": "Merge \"audioflinger: enable effects after registration if needed\" into klp-dev"
    },
    {
      "commit": "ff3e31d2b100d8efd969b358b18e4405c49dd10d",
      "tree": "6d3bcd6772305f06fcf85c498365c8c198a7fbc9",
      "parents": [
        "95c03858e2ab4fb693a2bfe47b3caa806e43c044"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 23 16:40:06 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Oct 29 11:49:05 2013 -0700"
      },
      "message": "camera: Collect stack traces when bad things happen, print with dumpsys\n\nBug: 11324229\nChange-Id: Ic920e170a8f5a389fc139bbf5416c0e3186c7fb6\n"
    },
    {
      "commit": "d21952fe5bc94f7bb6ee729f806c0e641fdb1a0d",
      "tree": "cc3ae62392a01c054b61af9ef606245854090394",
      "parents": [
        "1dfca7775f0b8352a0fd6cfed1e70075e5fa4e75",
        "7f8f758506a95d6fe5c0e52aa7b5ef82fb18861a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 28 17:18:53 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 28 17:18:53 2013 -0700"
      },
      "message": "am 7f8f7585: am fd477974: AudioFlinger: more fixes for offload audio lost\n\n* commit \u00277f8f758506a95d6fe5c0e52aa7b5ef82fb18861a\u0027:\n  AudioFlinger: more fixes for offload audio lost\n"
    },
    {
      "commit": "fd4779740ec3e9e865d5514464df26d015354388",
      "tree": "11e6523dd9d2d04b6e0d3ea742968c6988646e2c",
      "parents": [
        "9cae217050aa1347d4ac5053c305754879e3f97f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 25 18:10:40 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 28 14:17:22 2013 -0700"
      },
      "message": "AudioFlinger: more fixes for offload audio lost\n\nmStandby being false was not a reliable indication that\nsomething had been written to audio HAL.\n\nConsidering the last track in mActiveTracks vector as the\nlatest activated track was wrong as this is a SortedVector.\n\nBug: 11247103.\nChange-Id: I397d011c5afcdd779def3fe25aaae7669a472cfc\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": "a153b68f2260a8ed7fbb236fa659b13264ac5ac0",
      "tree": "fde0bd5a83da59bde7dc9b146a8a8af48d911adc",
      "parents": [
        "6a7327f110b86613e6e8c7de105c49803acacc1d",
        "77177fa20773d02b4f9c4147ecb98107f019fa7d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 18 15:09:03 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 18 15:09:03 2013 -0700"
      },
      "message": "am 77177fa2: am 95c03858: Merge \"Allow releaseBuffer after flush\" into klp-dev\n\n* commit \u002777177fa20773d02b4f9c4147ecb98107f019fa7d\u0027:\n  Allow releaseBuffer after flush\n"
    },
    {
      "commit": "95c03858e2ab4fb693a2bfe47b3caa806e43c044",
      "tree": "f872e4b7570cf2f431cca474e47d9d10c6cbed66",
      "parents": [
        "6a51d7ed7062536ccc892c8850a34ed55cbc8d5c",
        "2e422c472c91aa7912befd0fc038d1e11f354bc1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 18 22:02:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 18 22:02:47 2013 +0000"
      },
      "message": "Merge \"Allow releaseBuffer after flush\" into klp-dev"
    },
    {
      "commit": "2e422c472c91aa7912befd0fc038d1e11f354bc1",
      "tree": "7583e04f353f9cadf5081fafdcb8042450e3c85c",
      "parents": [
        "dedc7b0fa23c21b525dc8abb572bb8161ad66a9b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 18 13:00:29 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 18 13:53:41 2013 -0700"
      },
      "message": "Allow releaseBuffer after flush\n\nAfter AudioTrack start checks for pending flush,\nallow releaseBuffer on any previously obtained buffer.\nFor example, this can happen if the resampler has obtained\na buffer but not released the whole buffer yet.\nNote that the resampler will be reading obsolete data.\n\nBug: 11285590\nChange-Id: I0614fbb62e43604aac3089cce4b7797c87a306b5\n"
    },
    {
      "commit": "6a7327f110b86613e6e8c7de105c49803acacc1d",
      "tree": "d1d175d63235d698e88ab4b3e24881b5654b70cf",
      "parents": [
        "9138d32050411c04cc45c25094352cf8b6e01df9",
        "6edd8ca5b7e3d169db4314d2b994bc9d48e9e082"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 18 13:03:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 18 13:03:34 2013 -0700"
      },
      "message": "am 6edd8ca5: am 6a51d7ed: audioflinger: fix track terminated before playing\n\n* commit \u00276edd8ca5b7e3d169db4314d2b994bc9d48e9e082\u0027:\n  audioflinger: fix track terminated before playing\n"
    },
    {
      "commit": "6a51d7ed7062536ccc892c8850a34ed55cbc8d5c",
      "tree": "95746546a67c27a04a0e5bd82f9760d80ad5f0d9",
      "parents": [
        "dedc7b0fa23c21b525dc8abb572bb8161ad66a9b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 17 18:59:26 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 17 18:59:26 2013 -0700"
      },
      "message": "audioflinger: fix track terminated before playing\n\nWhen a track is terminated before any audio was written,\nwe should not send a drain request to the HAL. The drain\nwill be ignored and we will wait the async callback for ever.\n\nAlso fix a potential deadlock by not deleting a track with the\nthread mutex held: mPreviousTrack changed from a sp to a raw pointer.\n\nBug: 11247103.\nChange-Id: I0a4b47b099204c7c326d45d700234ab8f72d8eae\n"
    },
    {
      "commit": "9138d32050411c04cc45c25094352cf8b6e01df9",
      "tree": "47baaae0e9ea8f737c8ce1af5a52e3872432df70",
      "parents": [
        "653edc77815c76769b6ac1871add6f47a95d1dc5",
        "e45796dee9c072cdb13a00b407e68be2cd55e2f2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 17 16:23:39 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 17 16:23:39 2013 -0700"
      },
      "message": "am e45796de: am dedc7b0f: Merge \"Fix flush() followed by start()\" into klp-dev\n\n* commit \u0027e45796dee9c072cdb13a00b407e68be2cd55e2f2\u0027:\n  Fix flush() followed by start()\n"
    },
    {
      "commit": "12022ff8d223ccf4dfae019c81e4a93a3f44985c",
      "tree": "ba799e32b0699249e7fb8e6f5d6fa4120b978d67",
      "parents": [
        "f8f15b05fe051009945c9042a1a9260280e0feb2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 17 11:32:39 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 17 11:33:31 2013 -0700"
      },
      "message": "Fix flush() followed by start()\n\nBug: 11259166\nChange-Id: I72526cdfd4e3ff4b06e6a317e577f57cc285205d\n"
    },
    {
      "commit": "d6c628f6db7e1b5079cb9a60cf84208891001ec4",
      "tree": "63b0822af3070bf67bf4ab0e841c9d7165ab9750",
      "parents": [
        "771f1b6d196b7924707fc44177ac3a88fc31fa9e",
        "dddafa84dcbd85c11a732e7553d0b884e5a08c27"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 16 18:02:14 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 16 18:02:14 2013 -0700"
      },
      "message": "am dddafa84: am 3defdab8: Merge \"Camera: don\\\u0027t do hw support check for ZSL\" into klp-dev\n\n* commit \u0027dddafa84dcbd85c11a732e7553d0b884e5a08c27\u0027:\n  Camera: don\u0027t do hw support check for ZSL\n"
    },
    {
      "commit": "afada1e56cf0f91be5e44678850fcead2a70cca2",
      "tree": "6d88090137f1b7129e0f953acecdb76760e4ef6e",
      "parents": [
        "014e7fa2e90827d911c37bb0ce4d2e10e14d0bb3"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 16 15:09:17 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 16 15:09:17 2013 -0700"
      },
      "message": "Camera: don\u0027t do hw support check for ZSL\n\nOnly use camera.disable_zsl_mode to control disable/enable ZSL.\n\nBug: 11258054\nChange-Id: Ibf10b959d0913f7dedb59d89b571e9bf66fe978a\n"
    },
    {
      "commit": "3278eed31fcf82045ac00dcd549dda5270c88971",
      "tree": "b5a5423ca7a4464afb8f4182dc22b72dcb7c1917",
      "parents": [
        "d5ce2091c7e11c4d869f11f22d8a38a1aedcf3ad",
        "8580679e1780617d978d28a43e932314b86608ce"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Oct 15 05:05:01 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 15 05:05:01 2013 -0700"
      },
      "message": "am 8580679e: am 014e7fa2: Make Audio wakelock names less unique.\n\n* commit \u00278580679e1780617d978d28a43e932314b86608ce\u0027:\n  Make Audio wakelock names less unique.\n"
    },
    {
      "commit": "987cd7c8b8697cd4f444135819c8608fe088260f",
      "tree": "f94a9be145823cad09c56d97a7acc1e7c3117206",
      "parents": [
        "6d2af34b7b2e3873de76f5834cd324c59a05e270",
        "1810a287ecc81c243983051f9b1e32ff92ef1365"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Oct 14 10:49:43 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 14 10:49:43 2013 -0700"
      },
      "message": "am 1810a287: am 15ad2470: Camera: Fix deadlock in Camera3OutputStream\n\n* commit \u00271810a287ecc81c243983051f9b1e32ff92ef1365\u0027:\n  Camera: Fix deadlock in Camera3OutputStream\n"
    },
    {
      "commit": "014e7fa2e90827d911c37bb0ce4d2e10e14d0bb3",
      "tree": "1eebc29942794f1688fde67b9056803b8194355a",
      "parents": [
        "b3cb72a17d9a472883e9e2faa18b42eac533fe99"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 14 15:03:38 2013 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 14 17:29:57 2013 +0100"
      },
      "message": "Make Audio wakelock names less unique.\n\nThese wakelocks now show up in the client process, where they\nmight cause wakelock overflows if AudioFlinger threads die often.\n\nThe client process should be agnostic of audio flinger threading,\nso don\u0027t make the wakelock names rely on audioflinger thread names.\n\nWakelock names now depend only on the audio flinger thread type, and\nnot the ID itself.\n\nbug: 11200551\n\nChange-Id: Ia1f71b569cb7502d617b77596abc245f461a6ec0\n"
    },
    {
      "commit": "d72b7c0180ee83fc3754629ed68fc5887a125c4c",
      "tree": "9c6bef31eaca96d7420a65fcdd2438666c5668dd",
      "parents": [
        "15ad2470b2f2ac34473eb568b606ad75e8e63ac6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Oct 12 16:17:46 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Oct 12 16:37:00 2013 -0700"
      },
      "message": "audioflinger: enable effects after registration if needed\n\nThis fixes a bug where effects were not properly reenabled after\nbeing moved from one playback thread to another. The effect\nis enabled but the audio policy manager sees it as disabled.\n\nBug: 11181933.\nChange-Id: I19cac7acbaf61c546e667fd85ed7d4eda1c716d8\n"
    },
    {
      "commit": "15ad2470b2f2ac34473eb568b606ad75e8e63ac6",
      "tree": "7b1785a6c1c284fc345e5e1d9722ea87432f8491",
      "parents": [
        "d5ed2263a485d6e633fe08f033d04fad75daec6f"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 11 16:21:11 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 11 16:48:16 2013 -0700"
      },
      "message": "Camera: Fix deadlock in Camera3OutputStream\n\nprocess capture request thread, process capture result and setParameter\nbinder threads can run into circular locking situation when acquiring\nStreamingProcessor lock, Camera3Stream lock, and bufferQueue lock.\nReleasing the Camera3Stream lock briefly in process capture request\nthread getbuffer call can break this deadlock.\n\nBug: 11016037\nChange-Id: If08d4b134c26be26039b1d5363759e60f911bad6\n"
    },
    {
      "commit": "6d2af34b7b2e3873de76f5834cd324c59a05e270",
      "tree": "09237bb52c84ddc65356235e8e134d8d6e03040b",
      "parents": [
        "a0c9584b6841831f1c75c27d027c939b2b4e0762",
        "92d275536ce3a7f1055627ac087b0f3a9957ad68"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 11 12:55:13 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 11 12:55:13 2013 -0700"
      },
      "message": "am 92d27553: am d5ed2263: Merge \"Camera: Skip AE precapture when possible\" into klp-dev\n\n* commit \u002792d275536ce3a7f1055627ac087b0f3a9957ad68\u0027:\n  Camera: Skip AE precapture when possible\n"
    },
    {
      "commit": "a0c9584b6841831f1c75c27d027c939b2b4e0762",
      "tree": "be259fa369274b5b66f9575983832a48c05363ef",
      "parents": [
        "f1a968c41875e9487c35e77778270eb24d2ddffb",
        "c989d2d4f6f7e63b1572673b390a5e89fa5c5702"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 11 12:55:13 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 11 12:55:13 2013 -0700"
      },
      "message": "am c989d2d4: am 1dd08b30: Merge \"Camera2/3: Add more tracing for API1\" into klp-dev\n\n* commit \u0027c989d2d4f6f7e63b1572673b390a5e89fa5c5702\u0027:\n  Camera2/3: Add more tracing for API1\n"
    },
    {
      "commit": "d5ed2263a485d6e633fe08f033d04fad75daec6f",
      "tree": "6122aedd6246cef0185d35d726ce1f6670a5d750",
      "parents": [
        "1dd08b30e2366cabc50d883885d6229dab8218f2",
        "b790abf4d17f1c6865af7eb1595ec94dc0306447"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 11 19:22:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 11 19:22:15 2013 +0000"
      },
      "message": "Merge \"Camera: Skip AE precapture when possible\" into klp-dev"
    },
    {
      "commit": "1dd08b30e2366cabc50d883885d6229dab8218f2",
      "tree": "9939b56d22eea0e02b14f7274f098bc6cfbea425",
      "parents": [
        "cc27e117ed01c9a2b4def5a9c7a3103af83ee47e",
        "2b07e0207da44d7b3cc63c369fd10c9f12a5e2cd"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 11 19:21:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 11 19:21:51 2013 +0000"
      },
      "message": "Merge \"Camera2/3: Add more tracing for API1\" into klp-dev"
    },
    {
      "commit": "b790abf4d17f1c6865af7eb1595ec94dc0306447",
      "tree": "af2b7e55f779d29f89fdc82cefba8f941928a440",
      "parents": [
        "cc27e117ed01c9a2b4def5a9c7a3103af83ee47e"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 11 10:26:52 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 11 12:03:36 2013 -0700"
      },
      "message": "Camera: Skip AE precapture when possible\n\nSkip AE precapture when AE is already converged for still capture use case. This\ncould save still capture latency 6-7 frame time for AE already converged case.\n\nBug: 10712902\nChange-Id: Ie5512618b76e5d87c62c57c3d96d2004c604e29e\n"
    },
    {
      "commit": "2b07e0207da44d7b3cc63c369fd10c9f12a5e2cd",
      "tree": "65036c507cfc269e59847bee8e359536e1af2ec2",
      "parents": [
        "b6028c4243fb7e4e16e41d893c1d48679d28ca6c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Oct 10 15:13:09 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Oct 10 22:48:43 2013 +0000"
      },
      "message": "Camera2/3: Add more tracing for API1\n\n- AF state\n- Async autofocus completion\n- Async takePicture completion\n- Stages of takePicture\n\nBug: 10570497\nChange-Id: Ida9fedd81aa4ee3ae3fb8dfada858a3bc3c213a3\n"
    },
    {
      "commit": "f1a968c41875e9487c35e77778270eb24d2ddffb",
      "tree": "88f8d8e98d2cec2c4d05f4ebfa2f2bebe3ca15a3",
      "parents": [
        "3a4b32e1c36da702cae29761e8c4fde78329533a",
        "b9c0bd8ac65e8984e63a7e170b198e638fd3467f"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 09 15:56:17 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 09 15:56:17 2013 -0700"
      },
      "message": "am b9c0bd8a: am cc27e117: Camera: Save 1 frame time for takePicture call\n\n* commit \u0027b9c0bd8ac65e8984e63a7e170b198e638fd3467f\u0027:\n  Camera: Save 1 frame time for takePicture call\n"
    },
    {
      "commit": "cc27e117ed01c9a2b4def5a9c7a3103af83ee47e",
      "tree": "25ffe85682c673330d8b806fdef1e9d978f6d698",
      "parents": [
        "b6028c4243fb7e4e16e41d893c1d48679d28ca6c"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Thu Oct 03 16:12:43 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 09 13:25:21 2013 -0700"
      },
      "message": "Camera: Save 1 frame time for takePicture call\n\nMove the latest request signal call right before submitting request to HAL,\nwhich avoids unnecessary 1 frame time wait.\n\nAlso fix request status constructor issue, and the log tag for Camera2Client.\n\nBug: 10570497\nChange-Id: I0b1818658bee9983b117e49a5a00f1aab515c567\n"
    },
    {
      "commit": "71d241c0e2092d6012ff28fecf5be0cba0cea4d8",
      "tree": "612e3c1d3632fc04ada5ec9244d87c7b079d8aca",
      "parents": [
        "318f7018f5fa8ce1db3cd53ab02498addeb8a1c5",
        "c55d9e72f8d12e42a1f036badacd245fa99680e6"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Oct 09 09:12:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 09 09:12:58 2013 -0700"
      },
      "message": "am c55d9e72: am 828363da: Merge \"camera2: Don\\\u0027t race while dumping last frame metadata\" into klp-dev\n\n* commit \u0027c55d9e72f8d12e42a1f036badacd245fa99680e6\u0027:\n  camera2: Don\u0027t race while dumping last frame metadata\n"
    },
    {
      "commit": "828363dada5878fca6e0cb1553fbea96f38671c8",
      "tree": "608bb4956dad2e8582fb874c350d40f7d3367cb9",
      "parents": [
        "a676e96c6ed71846bdf60448bd63100ee2b357fb",
        "215bb3499c7eeea6303e55fac66452f2574c022a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Oct 08 22:57:32 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 08 22:57:32 2013 +0000"
      },
      "message": "Merge \"camera2: Don\u0027t race while dumping last frame metadata\" into klp-dev"
    },
    {
      "commit": "f1d5450ca6442cb459827c8bb0bee28676e70ace",
      "tree": "57d0a176e2cd3709cd3730d116ed95721bad3c9a",
      "parents": [
        "921c55daae3b87482f02d85c4ea3737bd7da971a",
        "b488b25148b8e3814a6c4854e6e8cbea6ea33735"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Oct 08 11:54:02 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 08 11:54:02 2013 -0700"
      },
      "message": "am b488b251: am a5209c2e: Merge \"Camera3: Improve resilience to stream failures\" into klp-dev\n\n* commit \u0027b488b25148b8e3814a6c4854e6e8cbea6ea33735\u0027:\n  Camera3: Improve resilience to stream failures\n"
    },
    {
      "commit": "a5209c2e6a89ecd8d3bec79cb0e82a677301d794",
      "tree": "1ffffa90a5d70ef23fbd554f32cfa52bb5cc42df",
      "parents": [
        "aab5b08cb4a3b5a47daece6168f41ec918020739",
        "07d2169d46f3536add6044dbf106967a1982252f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Oct 08 18:46:21 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 08 18:46:21 2013 +0000"
      },
      "message": "Merge \"Camera3: Improve resilience to stream failures\" into klp-dev"
    },
    {
      "commit": "07d2169d46f3536add6044dbf106967a1982252f",
      "tree": "08090732d0c87e4dc781505e6396c33419b0ef62",
      "parents": [
        "ea0fadeb5d81ef3cb7f9db458c9033d628bdb86a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Sep 24 18:04:19 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Oct 08 11:21:06 2013 -0700"
      },
      "message": "Camera3: Improve resilience to stream failures\n\n- Handle binder connection drops (DEAD_OBJECT) for streams\n- Just log an error, don\u0027t go to an error state when queue/dequeue fails\n\nBug: 10347526\nChange-Id: Ib463ffe15d58db444cf5d8cad176a201c7d1facc\n"
    },
    {
      "commit": "215bb3499c7eeea6303e55fac66452f2574c022a",
      "tree": "4a42ea582e33d46c79c9a033ff8d10b14e4aad42",
      "parents": [
        "fee4ce338d78eeb58af1f66831ead53322d3859e"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Oct 07 18:01:46 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Oct 07 18:01:46 2013 -0700"
      },
      "message": "camera2: Don\u0027t race while dumping last frame metadata\n\nBug: 11095203\nChange-Id: Icfb31e1719634b62004d6c15a95a9316e9642e4c\n"
    },
    {
      "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": "61f58c0c8d02970ea6d94ff816c54bf606f755b7",
      "tree": "d18ab1a7d9ca3261b715c3b57b47dea2609f8ccf",
      "parents": [
        "1c7feca9cc3e408dfeb632e7060cf31e5015227e",
        "c22a1a495c26b8a36fa15233cc136cb6ce6d6bea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 04 18:01:25 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 18:01:25 2013 -0700"
      },
      "message": "am c22a1a49: am ea0fadeb: audioflinger: offload: fix pause/flush/resume\n\n* commit \u0027c22a1a495c26b8a36fa15233cc136cb6ce6d6bea\u0027:\n  audioflinger: offload: fix pause/flush/resume\n"
    },
    {
      "commit": "ea0fadeb5d81ef3cb7f9db458c9033d628bdb86a",
      "tree": "1650f71cf339cd9d561377e239e2a12f7b08cffc",
      "parents": [
        "026c5b07fefd36e0e2dd7035c2898d0e28596d0f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 04 16:23:48 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 04 16:37:07 2013 -0700"
      },
      "message": "audioflinger: offload: fix pause/flush/resume\n\nIf a pause/flush/resume sequence is fast enough, resume is received while\nwe are still in PAUSING state in which case it is a NOP. If this happens,\nflush is still forwarded to the audio HAL but is not preceeded by a pause\nwhich can cause problems to the audio DSP.\nIt is necessary to preserve the flush as this sequence is typical to a seek.\n\nThe fix consists in forcing a pause/resume when a flush request must be\nexecuted and the audio HAL has not been paused previously.\n\nBug: 11081559.\nChange-Id: Ib84ed26d503a61c05933b923ec556b10cedfe140\n"
    },
    {
      "commit": "1c7feca9cc3e408dfeb632e7060cf31e5015227e",
      "tree": "be699837f659d5736a37190b28c7658e65959bf8",
      "parents": [
        "140f08fea6a4ad97fa8446498c713412ac734b79",
        "6c48a01188746202164f8e10d63ff3775dfcf727"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 04 13:40:30 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 13:40:30 2013 -0700"
      },
      "message": "am 6c48a011: am 026c5b07: Merge \"audioflinger: fix wake lock acquisition check\" into klp-dev\n\n* commit \u00276c48a01188746202164f8e10d63ff3775dfcf727\u0027:\n  audioflinger: fix wake lock acquisition check\n"
    },
    {
      "commit": "547789d25dc6bd6561553bcf6b384fb0d4fee834",
      "tree": "767ae4b24b4fc71cc547cfa16898f5299d26a6cc",
      "parents": [
        "7bab024867996bec6dc4e3e31ed4570da9afbc25"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 04 11:46:55 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 04 11:46:55 2013 -0700"
      },
      "message": "audioflinger: fix wake lock acquisition check\n\nCommit e14a5d6 introduced a bug in ThreadBase::acquireWakeLock() where\nthe wake lock acquisition return code is not initialized before\nbeing checked causing the wake lock token to be sometines not set\nand potential failure to release the wake lock later.\n\nBug: 10985160.\nChange-Id: Iffd40e773ae3bcfec3c148a844d5dbebbf474eaf\n"
    },
    {
      "commit": "2efc2a5551dc8d48cc4fcec97b29e45eb38c6ee5",
      "tree": "aa94d290934ee08333e49695f36e6cc34c9402dc",
      "parents": [
        "5918e0cb64200f64632595f7aea6062c65d43353",
        "22077c5962dd2a435caa241cade297e2e3d8afc5"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 04 11:09:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:09:40 2013 -0700"
      },
      "message": "am 22077c59: am 19fffcbd: Merge \"Camera3: track request status in inflight queue\" into klp-dev\n\n* commit \u002722077c5962dd2a435caa241cade297e2e3d8afc5\u0027:\n  Camera3: track request status in inflight queue\n"
    },
    {
      "commit": "5918e0cb64200f64632595f7aea6062c65d43353",
      "tree": "510acab52ad88f9772fd072235993a01f8332023",
      "parents": [
        "02627597fc4951e16b9002601e4cf3b1cc234c4b",
        "b5677882cf9a34bd3f2daf76d10951282ea9b083"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 11:08:26 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:08:26 2013 -0700"
      },
      "message": "am b5677882: am 8097068d: Merge \"Better recording wake lock accounting\" into klp-dev\n\n* commit \u0027b5677882cf9a34bd3f2daf76d10951282ea9b083\u0027:\n  Better recording wake lock accounting\n"
    },
    {
      "commit": "4cde555e00a129f5684b1bdba1440fc89760383b",
      "tree": "16cdfad20156871578692c819acac7f521cb0e66",
      "parents": [
        "b7f82eaed2876bacc3a402182b75323026813c30",
        "38ea22bb3a841dd37cc2be0fdca8c5e4ba3cf6db"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 04 11:08:25 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 11:08:25 2013 -0700"
      },
      "message": "am 38ea22bb: am b2d71d3a: Merge \"Camera API 2, Device 2/3: Implement idle and shutter callbacks\" into klp-dev\n\n* commit \u002738ea22bb3a841dd37cc2be0fdca8c5e4ba3cf6db\u0027:\n  Camera API 2, Device 2/3: Implement idle and shutter callbacks\n"
    },
    {
      "commit": "19fffcbd89a51af797265af2e11c97be5820a07d",
      "tree": "c3a796d2b8aad1ea24158d22053a2524634de8f1",
      "parents": [
        "8097068de97c0cdab8150931f290edbd5b3721e5",
        "1d1f846c0dbaa36d0944e7b1e54cc07863e00a92"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Thu Oct 03 23:05:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 03 23:05:42 2013 +0000"
      },
      "message": "Merge \"Camera3: track request status in inflight queue\" into klp-dev"
    },
    {
      "commit": "1d1f846c0dbaa36d0944e7b1e54cc07863e00a92",
      "tree": "1e29ccb730ffb1fe799d3f55ccabf5579851fae5",
      "parents": [
        "6ea551fa13b69e5ce359a7dba7485d857a005304"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 02 16:29:51 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Thu Oct 03 15:14:34 2013 -0700"
      },
      "message": "Camera3: track request status in inflight queue\n\nBug: 9758581\nChange-Id: I1d7135cd0932bd6b453acabfeb9a553985c887bc\n"
    },
    {
      "commit": "8097068de97c0cdab8150931f290edbd5b3721e5",
      "tree": "953f68c84ab80ca4f899e88081768d81dd31c93e",
      "parents": [
        "580ed263a6ea6c766f9f715e101340c7fe26ab75",
        "e14a5d6d2cc91dd2fc09ffdf7aa670b37da0795d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 21:15:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 03 21:15:05 2013 +0000"
      },
      "message": "Merge \"Better recording wake lock accounting\" into klp-dev"
    },
    {
      "commit": "e14a5d6d2cc91dd2fc09ffdf7aa670b37da0795d",
      "tree": "ab8d3ea087c653c632068af36e443c5c3609cfe4",
      "parents": [
        "3d97e23fcd78f752443cb6c30a1ee39f49f1f987"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 08:51:24 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 13:54:53 2013 -0700"
      },
      "message": "Better recording wake lock accounting\n\nCount wake lock use against the app that initiated the recording,\nnot against the media server.\n\nb/10985160\n\nChange-Id: Iae6e6c030b7f1c6081d9c79725d6990f60dadaaa\n"
    },
    {
      "commit": "f1e98d857ec377f2c9b916073d40732e6ebb7ced",
      "tree": "2a435e723f17c0c7b3e6db323d68be6cfb7d5c66",
      "parents": [
        "f05e50eb06d3f70e50fa7f44c1fd32128033b49d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 06 09:32:43 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Oct 02 18:11:21 2013 -0700"
      },
      "message": "Camera API 2, Device 2/3: Implement idle and shutter callbacks\n\n- Update callback Binder interface\n- Rename frameId to be requestId to be consistent and disambiguate\n  from frameNumber.\n- Implement shutter callback from HAL2/3 notify()\n  - Add in-flight tracking to HAL2\n  - Add requestId to in-flight tracking\n  - Report requestId from shutter callback\n- Implement idle callback from HAL3 process_capture_result\n  - Add new idle tracker thread\n  - Update all idle waiting to use the tracker\n  - Add reporting from request thread, all streams to tracker\n  - Remove existing idle waiting infrastructure\n\nBug: 10549462\nChange-Id: I867bfc248e3848c50e71527e3561fe92dc037958\n"
    },
    {
      "commit": "e78d02aedcc4990365a0fd8d36c6de255cc6b431",
      "tree": "5bcae51c77a8cba5b6b6f63388179d241018a64c",
      "parents": [
        "911d5ce961e3ec82c0a189a171e60726cd3c5b23",
        "3d839a327a17262ada6dc002544209c9310f0c2b"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 02 09:56:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 02 09:56:55 2013 -0700"
      },
      "message": "am 3d839a32: am f05e50eb: Camera: only return static metadata for HAL3 device\n\n* commit \u00273d839a327a17262ada6dc002544209c9310f0c2b\u0027:\n  Camera: only return static metadata for HAL3 device\n"
    },
    {
      "commit": "911d5ce961e3ec82c0a189a171e60726cd3c5b23",
      "tree": "237ffd8fa8746eb69fd203e7d93db3da995e2394",
      "parents": [
        "2b9cbe9dcea41d687aa1d54bffb4e443e2101a35",
        "e0bd536878ed1bf78424990b54ba19d5038305e2"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@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 e0bd5368: am 26c1fb23: Merge \"Camera: drop stale callback buffer\" into klp-dev\n\n* commit \u0027e0bd536878ed1bf78424990b54ba19d5038305e2\u0027:\n  Camera: drop stale callback buffer\n"
    },
    {
      "commit": "cd0ea3624dd8b713e78a066852f668ace2bf43da",
      "tree": "fcba2debd33d580363831807887f3905ed5d5593",
      "parents": [
        "34717c83733def81287e2b4ba2f62b416325c7ae",
        "0fb0400bc54cd1d9ca67f1ba18db1238cded9a50"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Oct 01 23:10:27 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 01 23:10:27 2013 -0700"
      },
      "message": "am 0fb0400b: am 8b905e19: Merge \"Camera: Set default thumbnail size with matched aspect ratio\" into klp-dev\n\n* commit \u00270fb0400bc54cd1d9ca67f1ba18db1238cded9a50\u0027:\n  Camera: Set default thumbnail size with matched aspect ratio\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": "f05e50eb06d3f70e50fa7f44c1fd32128033b49d",
      "tree": "32263232ea4d6d250f6f14011461f8f1c6914b60",
      "parents": [
        "26c1fb23a1e2cc059aac42fd1814efba2a3e9640"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Oct 01 11:05:33 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Oct 01 11:14:06 2013 -0700"
      },
      "message": "Camera: only return static metadata for HAL3 device\n\nThis effectively disables the camera2 APIs for HAL2.x or lower HAL device.\n\nBug: 10360518\nChange-Id: I0f374ac533468c6181f5672c75088b7144b9c53d\n"
    },
    {
      "commit": "26c1fb23a1e2cc059aac42fd1814efba2a3e9640",
      "tree": "fa826d7d7161228093f99fbe85263f6663777c98",
      "parents": [
        "353fb9bf940ee34a3885bc85ec7891228e958a4b",
        "893068ad0ca0cce8428f5a358c86b81139399c07"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Oct 01 17:47:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 01 17:47:18 2013 +0000"
      },
      "message": "Merge \"Camera: drop stale callback buffer\" into klp-dev"
    },
    {
      "commit": "893068ad0ca0cce8428f5a358c86b81139399c07",
      "tree": "cc82f5bf690cecf792aed9fb9e8a0bbe957468c5",
      "parents": [
        "9fc79c6fccc41255bb4f3538e2a21b01db8dc2dc"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 30 19:31:39 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 30 20:59:50 2013 -0700"
      },
      "message": "Camera: drop stale callback buffer\n\nSometimes, when preview size is changed and preview callback is enabled, stale\ncallback buffer from previous size could be delivered to callback processor\nbecause stop preview doesn\u0027t guarantee consumer side buffers are properly\ncleaned up. We need drop these buffers to avoid sending wrong data to app side.\n\nBug: 11009183\nChange-Id: If9281e8c02481f883872ce58dfd8660a06d56a47\n"
    },
    {
      "commit": "8b905e19548248904ab0fd0b63c9adcab2331a1a",
      "tree": "1058d370b8fd4bbed5871498f060c659fd0faa22",
      "parents": [
        "1adf20ce868b80a24f7387daa6549364d5509c6a",
        "9fc79c6fccc41255bb4f3538e2a21b01db8dc2dc"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Oct 01 00:23:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 01 00:23:50 2013 +0000"
      },
      "message": "Merge \"Camera: Set default thumbnail size with matched aspect ratio\" into klp-dev"
    },
    {
      "commit": "98232ab7c20bfbdfe176d2c25bb810dbb5e7b4f1",
      "tree": "1c7a424cd5c6592a4253cb8b9f9779e193d61262",
      "parents": [
        "a6c7d98033c161592a062c61eaa6b7fd635e3006",
        "a2340b3059b9d6e4286d0db7069df477c164df0c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 30 14:13:39 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 14:13:39 2013 -0700"
      },
      "message": "am a2340b30: Merge \"Don\\\u0027t call audio effect process on offloaded playback threads\" into klp-dev\n\n* commit \u0027a2340b3059b9d6e4286d0db7069df477c164df0c\u0027:\n  Don\u0027t call audio effect process on offloaded playback threads\n"
    }
  ],
  "next": "a6c7d98033c161592a062c61eaa6b7fd635e3006"
}
