)]}'
{
  "log": [
    {
      "commit": "4aa73099649056a39bd37e090c1fedd07c1ccbd5",
      "tree": "c5029af24115fba7e9ea55afd77e2da96bf099ed",
      "parents": [
        "445e9d6da8a953492af126e2e1406dedda3b4343",
        "916ecd0acb4c12568d029c027a7626fc422bd84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 22 11:09:58 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 22 11:09:58 2012 -0700"
      },
      "message": "am 916ecd0a: am 0c676cd0: Make tee sink compile OK again\n\n* commit \u0027916ecd0acb4c12568d029c027a7626fc422bd84c\u0027:\n  Make tee sink compile OK again\n"
    },
    {
      "commit": "0c676cd04ff15cc7eacf6144b4aead6deaccf60c",
      "tree": "aa78389096aa639ab092b38eb2e58db1a2971567",
      "parents": [
        "30e65e7e2ec01e13e45b5e38552a34d2fbb3f866"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 22 09:27:41 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 22 09:28:22 2012 -0700"
      },
      "message": "Make tee sink compile OK again\n\nChange-Id: Ie865ceeabaeb698a62c11eac9f96e303c44c28ae\n"
    },
    {
      "commit": "445e9d6da8a953492af126e2e1406dedda3b4343",
      "tree": "93150ac65653cba8a3a72ffae9d2054f78f8d6fa",
      "parents": [
        "ac07bcbb71469ee7b966f0eff159f436f46fdf5c",
        "d2cdedb4342cb016ef62d4b1a1d05a7d70c73e3a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 21 17:50:47 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 21 17:50:47 2012 -0700"
      },
      "message": "am d2cdedb4: am 30e65e7e: Camera2: Replace MediaConsumer with BufferItemConsumer.\n\n* commit \u0027d2cdedb4342cb016ef62d4b1a1d05a7d70c73e3a\u0027:\n  Camera2: Replace MediaConsumer with BufferItemConsumer.\n"
    },
    {
      "commit": "30e65e7e2ec01e13e45b5e38552a34d2fbb3f866",
      "tree": "f028cfdc6fc9d8309a5ba1cb0cb6eb020bbc3964",
      "parents": [
        "76dc8dacbb3e2a8c91cb526293270f9093cf8f8b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 21 13:30:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 17:45:25 2012 -0700"
      },
      "message": "Camera2: Replace MediaConsumer with BufferItemConsumer.\n\nGet rid of MediaConsumer, which was largely duplicated code, and\nreplace it with the simpler BufferItemConsumer.\n\nBug: 6243944\nChange-Id: I242d80c5fe39f2ee581ec8bb46f362997d994b0a\n"
    },
    {
      "commit": "ac07bcbb71469ee7b966f0eff159f436f46fdf5c",
      "tree": "90e3c2b31332da0016a47120a8317658b4925dac",
      "parents": [
        "b903dcc107c80feb5aac913a632516bef8fafac1",
        "6ada80824da25f3622dc497d332cb4ef7e56d845"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 21 17:44:24 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 21 17:44:24 2012 -0700"
      },
      "message": "am 6ada8082: am 76dc8dac: Camera2: Ignore NOT_FOUND errors for face detect mode on frame receipt.\n\n* commit \u00276ada80824da25f3622dc497d332cb4ef7e56d845\u0027:\n  Camera2: Ignore NOT_FOUND errors for face detect mode on frame receipt.\n"
    },
    {
      "commit": "76dc8dacbb3e2a8c91cb526293270f9093cf8f8b",
      "tree": "7d74c6729903711a4506d0cef8eadc252bccf5c6",
      "parents": [
        "cd3ed11664d16939f1f5763a896d7fc75dd3642e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 21 16:09:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 21 17:41:13 2012 -0700"
      },
      "message": "Camera2: Ignore NOT_FOUND errors for face detect mode on frame receipt.\n\nReduce log spamming due to incomplete implementations.\n\nChange-Id: I6eb9d657591bd5f1476dd8c96e4a00b8a03e2a5e\n"
    },
    {
      "commit": "e1fbc3c974e9802371d6c9cc47766543b7d31487",
      "tree": "ddfe08a94b008174581f4bd32720b252da168fbb",
      "parents": [
        "4324ecc672696040c3784effef330542d20a4d6d",
        "4b3d6d881be4caba2c2a3b7cbbcb36d618aeee43"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 20 16:31:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 20 16:31:49 2012 -0700"
      },
      "message": "am 4b3d6d88: am 164c75d4: Merge \"Camera2: Add support for preview callbacks\" into jb-mr1-dev\n\n* commit \u00274b3d6d881be4caba2c2a3b7cbbcb36d618aeee43\u0027:\n  Camera2: Add support for preview callbacks\n"
    },
    {
      "commit": "228a53805808a24cb19fcf13b1f0bdc2ed89bbe1",
      "tree": "96b41c80d1080b83e286d450daf161782fe66627",
      "parents": [
        "3cc89794d92b833feff15ca76dfa196cc886e43f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 13 12:16:06 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 20 16:08:00 2012 -0700"
      },
      "message": "Camera2: Add support for preview callbacks\n\n- Move camera overall state enum to be part of parameters\n- No longer use ICameraLock to guard access to overall state enum\n- Add callback flag management\n- Add callback stream and management\n\nBug: 6243944\n\nChange-Id: Ideb3dc523a23c05e440e429ebf838b1900a96573\n"
    },
    {
      "commit": "fcae2155ead72db76686b427565aaed71431ddd7",
      "tree": "94f07626e11e03f2f70c964e50aa34de85ff96fe",
      "parents": [
        "3f4e81f45d30986f62439ad8fadb6a468969555e",
        "9b9b8a9ece1c4e05f04f04b1fff63236fb3067f7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 16 17:24:28 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 16 17:24:28 2012 -0700"
      },
      "message": "am 9b9b8a9e: am 08ebb6b1: Merge \"Camera2: Fix SCENE_MODE\" into jb-mr1-dev\n\n* commit \u00279b9b8a9ece1c4e05f04f04b1fff63236fb3067f7\u0027:\n  Camera2: Fix SCENE_MODE\n"
    },
    {
      "commit": "3cc89794d92b833feff15ca76dfa196cc886e43f",
      "tree": "d9b54775638b0b4c6aec370485c9bc7f62e14244",
      "parents": [
        "ce088d274b4530fb813a030216d675b0e7262711"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 16 16:03:59 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 16 17:11:01 2012 -0700"
      },
      "message": "Camera2: Fix SCENE_MODE\n\nNow can set scene mode back to auto.\n\nBug: 7001465\n\nChange-Id: Ia25ba54d13de662bef5bf79957987513a7313c18\n"
    },
    {
      "commit": "ce7db89c3521f46522bca415bb771edce33af5f6",
      "tree": "5c7c557fa174ab1a8d59f4711460da48c7f09223",
      "parents": [
        "ea28831238e4c629b704f77c7e9d369bf2d3da5c",
        "86e2067c41b4ec0fdeae1c09a22610ffed9e2fe5"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 14 11:58:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 14 11:58:40 2012 -0700"
      },
      "message": "am 86e2067c: am f363ec55: Merge \"Camera2: Skeleton for output frame processing, plus face detect\" into jb-mr1-dev\n\n* commit \u002786e2067c41b4ec0fdeae1c09a22610ffed9e2fe5\u0027:\n  Camera2: Skeleton for output frame processing, plus face detect\n"
    },
    {
      "commit": "8ce89d9e2b132bf58a030acec88acf0a998926a1",
      "tree": "00a9c5d1799d3ef29365c5c5596797dadf09a079",
      "parents": [
        "93b68548124ec9b01b9bf4ddf010afa06a503547"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 10 08:40:26 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 14 11:31:27 2012 -0700"
      },
      "message": "Camera2: Skeleton for output frame processing, plus face detect\n\n- Plumbing for processing output metadata frames from the HAL\n- Support for passing face detection metadata from said frames\n  to the application.\n- Switch calls on ICameraClient interface to use separate mutex to\n  avoid deadlock scenarios with messages being communicated from the\n  HAL to the camera user while calls from the user to the service are\n  active.\n\nBug: 6243944\n\nChange-Id: Id4cf821d9c5c3c0069be4c0f669874b6ff0d1ecd\n"
    },
    {
      "commit": "b45786becf800ae7c36939c7bc92f54fe8253147",
      "tree": "4ddda2dab5c6c55745dfd2896b1b967603fee9a6",
      "parents": [
        "2ef6e196198b3c2961e7fbf4637a70d6b38085ca",
        "a6a266d0e148f085ac1f83c4a36d3cf940c59e24"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:44:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 11:44:40 2012 -0700"
      },
      "message": "am a6a266d0: am 106e8a42: const methods\n\n* commit \u0027a6a266d0e148f085ac1f83c4a36d3cf940c59e24\u0027:\n  const methods\n"
    },
    {
      "commit": "2ef6e196198b3c2961e7fbf4637a70d6b38085ca",
      "tree": "373463abd597604e9fca9d0ce7e66725b486ac8a",
      "parents": [
        "bfb3fec3341889226c66d72ab926c7de9553a125",
        "0319e9e31cb7b0033a3026b0305b78e2d48c6ec8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:41:09 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 11:41:09 2012 -0700"
      },
      "message": "am 0319e9e3: am 0dbb3560: Simplify AudioFlinger::PlaybackThread::isValidSyncEvent()\n\n* commit \u00270319e9e31cb7b0033a3026b0305b78e2d48c6ec8\u0027:\n  Simplify AudioFlinger::PlaybackThread::isValidSyncEvent()\n"
    },
    {
      "commit": "106e8a42038f9e90d5ff97f8ab6f1a42258bde9e",
      "tree": "af631b5e756cf711d5d9d34db2dffe02cf64e7e3",
      "parents": [
        "0dbb356050d0db9e0043dd43045c1864a933332b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 02 13:37:12 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:38:18 2012 -0700"
      },
      "message": "const methods\n\nChange-Id: I92e32ee16274c032c9d0ce910676be2a7fa52471\n"
    },
    {
      "commit": "bfb3fec3341889226c66d72ab926c7de9553a125",
      "tree": "5320b0e366a97dd05a0853ba342d598a54cbb713",
      "parents": [
        "2917080826e0d7cec47e8ec8891e9ee1c2535d6a",
        "b2f2d1644b9d1a823fc3b78a59893652b080b35d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:38:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 11:38:12 2012 -0700"
      },
      "message": "am b2f2d164: am d23eedca: Discard setSyncEvent() return value\n\n* commit \u0027b2f2d1644b9d1a823fc3b78a59893652b080b35d\u0027:\n  Discard setSyncEvent() return value\n"
    },
    {
      "commit": "0dbb356050d0db9e0043dd43045c1864a933332b",
      "tree": "4fe3b2ab60f96691faaaf50f163c92946954e6de",
      "parents": [
        "d23eedca9b5a1812891c05d89850ab7ee707040d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 02 16:36:50 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:35:47 2012 -0700"
      },
      "message": "Simplify AudioFlinger::PlaybackThread::isValidSyncEvent()\n\nChange-Id: I3e4af69b929d4ca04afaac26c7e41c89fce25b9c\n"
    },
    {
      "commit": "2917080826e0d7cec47e8ec8891e9ee1c2535d6a",
      "tree": "9bfe82cfffb47a63bb365e8f38aeaf1379fb1a58",
      "parents": [
        "bf4c5d9f3bdb6fd3889afdeb0312d54f6f2e8de3",
        "f02356254262ec4a56e5ec1b1abefe1849ba9f9d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:33:42 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 11:33:42 2012 -0700"
      },
      "message": "am f0235625: am a9599049: Merge \"Replace hard-coded \"2\" by a constant and comment\" into jb-mr1-dev\n\n* commit \u0027f02356254262ec4a56e5ec1b1abefe1849ba9f9d\u0027:\n  Replace hard-coded \"2\" by a constant and comment\n"
    },
    {
      "commit": "d23eedca9b5a1812891c05d89850ab7ee707040d",
      "tree": "9f0c4309ded6a390c49bbe70590ea568a7167307",
      "parents": [
        "a959904968f1d300fe86334bf5099ae2dc39ee28"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 02 13:35:47 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:31:55 2012 -0700"
      },
      "message": "Discard setSyncEvent() return value\n\nsetSyncEvent() returns a status_t which is sometimes ignored.\nEmphasize this is intentional by casting to void.\n\nChange-Id: Ic614988347cba36bd2504d7ad321594a355b0d9d\n"
    },
    {
      "commit": "a959904968f1d300fe86334bf5099ae2dc39ee28",
      "tree": "bf95afcaab7a56642d1bf6b88ad2699eeaf5af04",
      "parents": [
        "bd828233d3eda966bf7145108dde74616abd97fb",
        "3ed292031dc50c56110cdadb1e3778117e3be76a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 13 11:30:17 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 13 11:30:17 2012 -0700"
      },
      "message": "Merge \"Replace hard-coded \"2\" by a constant and comment\" into jb-mr1-dev"
    },
    {
      "commit": "037ac53aac0f51f2ccfaaa91822365c1c73c4365",
      "tree": "6552c46685738bf5baf41d8708066b823aaf64f5",
      "parents": [
        "7f3a8e4cb89fadffe31a12859721866d5ca02353",
        "0efd035854ad2c8d20100a740e054c4bf7b3e9a4"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 12:48:51 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 12:48:51 2012 -0700"
      },
      "message": "am 0efd0358: am fcfc61da: am ff4c64d6: am c64a1787: Merge \"Fix initialization of audio mixer track resources for MIPS.\"\n\n* commit \u00270efd035854ad2c8d20100a740e054c4bf7b3e9a4\u0027:\n  Fix initialization of audio mixer track resources for MIPS.\n"
    },
    {
      "commit": "fcfc61da927e98d18cdcb53da8fa0a8a32ee1422",
      "tree": "7dd8aadcffc35c98504f35d69fe467c0a8e8f397",
      "parents": [
        "7edbacf24e60c01e2d3b10715ec8f9cc2f55c11a",
        "ff4c64d6b1b58494a1b15f1a664e5c421d095d15"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 12:44:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 12:44:02 2012 -0700"
      },
      "message": "am ff4c64d6: am c64a1787: Merge \"Fix initialization of audio mixer track resources for MIPS.\"\n\n* commit \u0027ff4c64d6b1b58494a1b15f1a664e5c421d095d15\u0027:\n  Fix initialization of audio mixer track resources for MIPS.\n"
    },
    {
      "commit": "caab7b1686b754427243d18dfeac119658e83744",
      "tree": "a0f6e14ddd52e191095b513da9c8b29e4275b16a",
      "parents": [
        "a253877eb94ea4551b54bd91a1fbaed09dc0cb02",
        "c0810621b8db2b5ca3012e7ad87e4ccb074100d2"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 10 10:12:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 10:12:25 2012 -0700"
      },
      "message": "am c0810621: am 603b12ef: Camera2: Swap AF notification order, minor bug fix.\n\n* commit \u0027c0810621b8db2b5ca3012e7ad87e4ccb074100d2\u0027:\n  Camera2: Swap AF notification order, minor bug fix.\n"
    },
    {
      "commit": "a253877eb94ea4551b54bd91a1fbaed09dc0cb02",
      "tree": "a61e61afc959fc86c61d1532ffc6c0d0ae76b8b7",
      "parents": [
        "27cfc5b48ff6861e54c987ab1303894836c1e3b0",
        "1a1fb540cb1a6c6b33790fa08cc66d2f33b3eea4"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 10 10:12:23 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 10:12:23 2012 -0700"
      },
      "message": "am 1a1fb540: am 174181ee: Camera2: Add trigger support, and implement autofocus\n\n* commit \u00271a1fb540cb1a6c6b33790fa08cc66d2f33b3eea4\u0027:\n  Camera2: Add trigger support, and implement autofocus\n"
    },
    {
      "commit": "603b12efa16e7afb4e6c75f6b353216c83e8e135",
      "tree": "feb2ae7d5cfc866f62c331db8bc7b63c766b4065",
      "parents": [
        "174181eec57c963a2a17bd156d81c3f18b3ba75c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 08 09:25:58 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 10 09:24:52 2012 -0700"
      },
      "message": "Camera2: Swap AF notification order, minor bug fix.\n\nIn continuous AF modes, when an AF trigger/cancel is received in the\nmiddle of a passive AF scan, we want to send both an AF move stop\ncallback and an AF done callback. Swap the order of sending to\nsimplify life when the app just wants to pay attention to the AF done\ncallback during an active AF trigger.\n\nBug: 6243944\nChange-Id: I127d1675bc37ef828ef89c70b8cfab75f9428a2f\n"
    },
    {
      "commit": "174181eec57c963a2a17bd156d81c3f18b3ba75c",
      "tree": "9eea6b8bf3577f1f24d80b5d37d714fe6374a734",
      "parents": [
        "a59bf2c58311dfc28f46220383d66869e8f3f57f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 03 13:53:39 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 10 09:19:18 2012 -0700"
      },
      "message": "Camera2: Add trigger support, and implement autofocus\n\n- Add skeletons for all triggering actions into Camera2Device\n- Add support for AF triggers to HAL\n- Add support for AF notifications from HAL\n\nBug: 6243944\nChange-Id: I21025440849ae41f7083e1dcb72c99f8e5b2d5f7\n"
    },
    {
      "commit": "27cfc5b48ff6861e54c987ab1303894836c1e3b0",
      "tree": "4912c8c7c8b9fb4c8abec91e9f19f60be6e1920f",
      "parents": [
        "29152617e8bb445521b7fd2b1bcce88b9ecf48cc",
        "8ade1e7b505d6bc9721cdfe16d000ebd23aedbf2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 10 09:17:31 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 09:17:31 2012 -0700"
      },
      "message": "am 8ade1e7b: am a59bf2c5: Merge \"Update state only if calls to native window are successful\" into jb-mr1-dev\n\n* commit \u00278ade1e7b505d6bc9721cdfe16d000ebd23aedbf2\u0027:\n  Update state only if calls to native window are successful\n"
    },
    {
      "commit": "31d377b7622279034326fbd8b9803a738a39fb30",
      "tree": "e9bec6bf0588eb4fbb68a84a0a7720d20e90001c",
      "parents": [
        "9352d1168c09903d4ea27b695ef683316c544ae5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 09 17:43:46 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 09 17:46:53 2012 -0700"
      },
      "message": "Update state only if calls to native window are successful\n\nChange-Id: I7a20f3ca787e11ca9c8c904b257e3c8a4e529136\n"
    },
    {
      "commit": "3ed292031dc50c56110cdadb1e3778117e3be76a",
      "tree": "7aee0b1a5f518733eebcca574807d4de62066c06",
      "parents": [
        "0d27c65ddb5c968baa6db0c26e80f5c451bc52bc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 07 15:24:44 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 09 15:34:46 2012 -0700"
      },
      "message": "Replace hard-coded \"2\" by a constant and comment\n\nBug: 6679403\nChange-Id: I6c2701f9afedc26540dfad0b4e23348bbc4cb01a\n"
    },
    {
      "commit": "e75640c4b06a5715622eeffd8d204f811284fd8c",
      "tree": "ca1f546b5da34856c906a736c0eb7942bf9b3b22",
      "parents": [
        "f768ada0f9eeaaaf9847da7a432375aed4d95828",
        "638f936d4dd0d4afdc952988ac6b6a9dcbb577e7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 08 15:11:50 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 15:11:50 2012 -0700"
      },
      "message": "am 638f936d: am 0d27c65d: Tune the overrun correction\n\n* commit \u0027638f936d4dd0d4afdc952988ac6b6a9dcbb577e7\u0027:\n  Tune the overrun correction\n"
    },
    {
      "commit": "3c507a754788872bdc19aa651180447c5456f191",
      "tree": "ed6d6a85a55ad3ec4a5879ee4c2e4dabc8ff515a",
      "parents": [
        "0d8b4d87a797963c0549284251a179b66da56316",
        "acc5c275f6affe789184436b7d40fb1656a4596f"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Aug 08 15:10:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 15:10:49 2012 -0700"
      },
      "message": "am acc5c275: am f6a35760: Merge \"AudioFlinger: fix timed audio\" into jb-mr1-dev\n\n* commit \u0027acc5c275f6affe789184436b7d40fb1656a4596f\u0027:\n  AudioFlinger: fix timed audio\n"
    },
    {
      "commit": "0d27c65ddb5c968baa6db0c26e80f5c451bc52bc",
      "tree": "62cdadd7e272d5f5f5f187767984ecb0c12b5080",
      "parents": [
        "e983aa4ff4d80af7702888e230b9aaa93a7b7e57"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 07 10:38:59 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 08 14:28:42 2012 -0700"
      },
      "message": "Tune the overrun correction\n\nThe new overrun correction is: if the previous write() cycle time is \u003c\n50% of expected, then sleep enough extra to make the total cycle time \u003d\n95% of expected.  This should help compensate for HAL implementations\nthat have uneven cycle times due to sample rate conversion.\n\nBug: 6881638\nChange-Id: I5ab58afdfceee7ac523177f021fbf62d743d571a\n"
    },
    {
      "commit": "2c3b2da3049627264b7c6b449a1622f002210f03",
      "tree": "f99fadbfef22ff3b7709a505623371c22e39566c",
      "parents": [
        "ee578c0330319f04a48bccbdb26b53fea0388d04"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Aug 02 17:08:54 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Aug 08 11:28:15 2012 -0700"
      },
      "message": "AudioFlinger: fix timed audio\n\n(cherry picked from commit e20ac92c564a2f4e8123885807abdf0a78de0dd7)\n\n\u003e AudioFlinger: fix timed audio\n\u003e\n\u003e Addresses Bug 6900517.\n\u003e\n\u003e Finish up support for timed audio in the new FastMixer world.  Pay special\n\u003e attention to remaining lock-less and voluntary yield free on the FastMixer\n\u003e thread.  This fixes audio playback for Q on JB.\n\u003e\n\u003e Change-Id: Iaf815e58a1b1d0a0190051794bec8dc5c9231785\n\u003e Signed-off-by: John Grossman \u003cjohngro@google.com\u003e\n\nChange-Id: I9bd687acc345a05867af48e71116690fdb0ce1b5\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "ee578c0330319f04a48bccbdb26b53fea0388d04",
      "tree": "883382e0eabdcdff6c04a7df4b50d9cebffaf1c7",
      "parents": [
        "d8f178d613821c3f61a5c5e391eb275339e526a9"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Jul 23 17:05:46 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Aug 08 11:28:15 2012 -0700"
      },
      "message": "AudioFlinger: Better handling for master volume/mute\n\n(cherry picked from commit 93d906837e0e89aa1d9c913ab2b531b809f9bb9e)\n\n\u003e AudioFlinger: Better handling for master volume/mute\n\u003e\n\u003e Changes to address bug 6842827.\n\u003e\n\u003e When a HAL is loaded, cache whether or not the HAL supports\n\u003e set_master_volume/mute in the AudioHwDevice structure.  Store an\n\u003e AudioHwDevice in AudioStream(In|Out) structures instead of just an\n\u003e audio_he_device_t.  This give threads (PlaybackThreads in\n\u003e particular) access to the cached capabilities.\n\u003e\n\u003e When setting master volume/mute, change the system to always set the\n\u003e setting on all HAL which support it and also to set the setting on all\n\u003e PlaybackThreads.  Change PlaybackThreads to apply the setting at the\n\u003e in SW mix stage of the pipeline if its assigned HAL does not support\n\u003e the setting, or to ignore the setting of the assigned HAL does support\n\u003e it.\n\u003e\n\u003e Change-Id: Ia14137a30b4c3ee6f2d7ddcc8cba87bf5eec87f4\n\u003e Signed-off-by: John Grossman \u003cjohngro@google.com\u003e\n\nChange-Id: Icb6bc13764e100a2003eb1dee2231132ab287d98\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "d8f178d613821c3f61a5c5e391eb275339e526a9",
      "tree": "93038d06c70535eeebc364e9f86cedbec074802c",
      "parents": [
        "3478eaa23c19dbbe473be70e8f3cc0c904d2465c"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Jul 20 14:51:35 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Aug 08 11:28:15 2012 -0700"
      },
      "message": "Change audio flinger to user HAL master mute if available\n\n(cherry picked from commit 91de9b56282d126ffb36344266af5fee3cefcfdd)\n\n\u003e Change audio flinger to user HAL master mute if available\n\u003e\n\u003e Hand merge from ics-aah\n\u003e\n\u003e \u003e Change audio flinger to user HAL master mute if available: DO NOT MERGE\n\u003e \u003e\n\u003e \u003e Replicate the pattern used for HAL master volume support to make use\n\u003e \u003e of master mute support if the HAL supports it.  This is part of the\n\u003e \u003e change needed to address bug 6828363.  Because of the divergences\n\u003e \u003e between ICS and master, this change will need to be merged by hand.\n\u003e \u003e\n\u003e \u003e Signed-off-by: John Grossman \u003cjohngro@google.com\u003e\n\u003e \u003e Change-Id: I6d83be524021d273d093bcb117b8f2fe57c23685\n\u003e\n\u003e Change-Id: I32280582905c969aaec2bb166ec5c61df82d737a\n\u003e Signed-off-by: John Grossman \u003cjohngro@google.com\u003e\n\nChange-Id: I5cd709187221d307fe25c5117ccaadca5f6b197b\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "0ae81b65f28ebbd2d713d66ef59e7cf0d99e60a1",
      "tree": "22c74d0e15568fa6982e17cd8a1156d9c13a6339",
      "parents": [
        "b57981c665cd5e369e880dc942d6adcbb746547c",
        "cb6687718a8952afb26e5084da3f23ac972b04a1"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 06 16:01:47 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 06 16:01:47 2012 -0700"
      },
      "message": "am cb668771: am 97197157: Camera2: Reduce redundant device dumpsys\n\n* commit \u0027cb6687718a8952afb26e5084da3f23ac972b04a1\u0027:\n  Camera2: Reduce redundant device dumpsys\n"
    },
    {
      "commit": "97197157cf619fb716710eb67915fdfa93502750",
      "tree": "2226298f6d10b7744b1808308a89b77f03653e3e",
      "parents": [
        "8da4cd7d706d9f551bf2d08cd8b61907a10cd38d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 06 14:25:19 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 06 14:27:11 2012 -0700"
      },
      "message": "Camera2: Reduce redundant device dumpsys\n\nBug: 6243944\nChange-Id: Ifdc15ee62156a7adfd133f0d0d8b772dd1e9d5a3\n"
    },
    {
      "commit": "ce818f883a094483f823cffd45106e1603ac5805",
      "tree": "a352c67d0eacc19da2c51d35a6882835de418507",
      "parents": [
        "c01e93e4534ddb45c9897192c2ef3a1be8c51943",
        "da608d59a12509835ecd097ecc0abb2f7ab16a26"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Aug 05 16:14:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Aug 05 16:14:03 2012 -0700"
      },
      "message": "am da608d59: am 8da4cd7d: Fix a deadlock in commandSetVideoBufferCountL()\n\n* commit \u0027da608d59a12509835ecd097ecc0abb2f7ab16a26\u0027:\n  Fix a deadlock in commandSetVideoBufferCountL()\n"
    },
    {
      "commit": "8da4cd7d706d9f551bf2d08cd8b61907a10cd38d",
      "tree": "d859052f6839fedf654ce8cea7dea2d567ad710f",
      "parents": [
        "d9f0253353db0b859c0ca2b32eddc24e3e9d4d86"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Aug 04 19:58:07 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Aug 04 20:46:14 2012 -0700"
      },
      "message": "Fix a deadlock in commandSetVideoBufferCountL()\n\no The lock to be acquired in recordingEnabled() has aleady been acquired in sendCommand()\n  before the call to commandSetVideoBufferCountL().\n\nChange-Id: I664d51ef449c9eb3576d5d56f73f29c98444ff3f\n"
    },
    {
      "commit": "c01e93e4534ddb45c9897192c2ef3a1be8c51943",
      "tree": "7cfce17210e424bfba8530ed5c26461031e6f2a0",
      "parents": [
        "98f12500dbcb34335392f5177048b7b0f69741ab",
        "7dad0e96cf7a9e9933aeac69623be8c31497e656"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 03 23:25:34 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 03 23:25:34 2012 -0700"
      },
      "message": "am 7dad0e96: am d9f02533: Merge \"Camera2: Add notification handling skeleton.\" into jb-mr1-dev\n\n* commit \u00277dad0e96cf7a9e9933aeac69623be8c31497e656\u0027:\n  Camera2: Add notification handling skeleton.\n"
    },
    {
      "commit": "160d4af9d933fe9461bb213e5876fc5c8c2178c2",
      "tree": "b69bfc44345106f724d8fe5febd48762720fe164",
      "parents": [
        "36cdfb185877a7f573621d19ed2b2e1cac13d62e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 03 09:40:16 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 03 14:31:38 2012 -0700"
      },
      "message": "Camera2: Add notification handling skeleton.\n\nWire up skeleton methods for handling all currently defined\nnotifications.\n\nBug: 6243944\nChange-Id: I84b3f60111416ba6fbcdb086f1310225142e2b70\n"
    },
    {
      "commit": "27644634ea54d48863e765d87e24d60153a6e795",
      "tree": "23b16a7935ee56467a3f4d10fbee8877e6fc6223",
      "parents": [
        "4b5412b6fe136a7391076c53eea6974c664ead91",
        "8e888ec75718db90d2e6b7e0ab3bea814e2dd3f0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 03 10:10:00 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 03 10:10:00 2012 -0700"
      },
      "message": "am 8e888ec7: am 36cdfb18: Camera2: Break out individual commands\n\n* commit \u00278e888ec75718db90d2e6b7e0ab3bea814e2dd3f0\u0027:\n  Camera2: Break out individual commands\n"
    },
    {
      "commit": "36cdfb185877a7f573621d19ed2b2e1cac13d62e",
      "tree": "dbb4713666c0f6cd1de3b1400325fada0fe05c1d",
      "parents": [
        "983cf231ab2d176a14595cdae46ff1b0c239af47"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 17:34:15 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 17:49:48 2012 -0700"
      },
      "message": "Camera2: Break out individual commands\n\n- List all commands that need implementing in sendCommand\n- Write skeleton methods for each one\n- Implements playRecordingSound command\n- Partially implements enableShutterSound command\n\nBug: 6243944\nChange-Id: I7866df75adca09483f407d3a4f630e847dbc7721\n"
    },
    {
      "commit": "4b5412b6fe136a7391076c53eea6974c664ead91",
      "tree": "faa2244bb1f59ec711247d1e45ee6048c01be15d",
      "parents": [
        "76a794f66595390c21639b6af89a6efbfd564e06",
        "903f037ae7e6161818cb3b2d662fd380a9d02499"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 02 17:24:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 02 17:24:14 2012 -0700"
      },
      "message": "am 903f037a: am 983cf231: Dynamically configure the number of video buffers used by camera source, if supported\n\n* commit \u0027903f037ae7e6161818cb3b2d662fd380a9d02499\u0027:\n  Dynamically configure the number of video buffers used by camera source, if supported\n"
    },
    {
      "commit": "983cf231ab2d176a14595cdae46ff1b0c239af47",
      "tree": "01942a13a082e2116f8df5dbaca1a902ac52a299",
      "parents": [
        "15d7245ed2193e4956ea87998321cbc16a3b0a46"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 01 16:39:55 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 02 17:06:05 2012 -0700"
      },
      "message": "Dynamically configure the number of video buffers used by camera source, if supported\n\no related-to-bug: 6920805\n\nChange-Id: I413bb50954cc84e32ed40bcb713842dc7b58e2b6\n"
    },
    {
      "commit": "76a794f66595390c21639b6af89a6efbfd564e06",
      "tree": "90c4ca73164311eeb3b45603960080d0a19a369a",
      "parents": [
        "4d6a71d41a6bef57cc9ab81a95cfa975241486c8",
        "22c875ae3b06597dabf82e6464a36a82967a4e83"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 17:04:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 02 17:04:06 2012 -0700"
      },
      "message": "am 22c875ae: am 15d7245e: Merge \"Camera2: Fix exposure compensation step value.\" into jb-mr1-dev\n\n* commit \u002722c875ae3b06597dabf82e6464a36a82967a4e83\u0027:\n  Camera2: Fix exposure compensation step value.\n"
    },
    {
      "commit": "4d6a71d41a6bef57cc9ab81a95cfa975241486c8",
      "tree": "a781fd06952d4d8f71d480650326a19b95bfb3c6",
      "parents": [
        "27170d87c8fa4a730eb246868539660a060d0c4a",
        "3b1069c5e5b70cefc185d7ea498b15e8b12e8807"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 17:04:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 02 17:04:03 2012 -0700"
      },
      "message": "am 3b1069c5: am 1bf1c000: Merge \"Camera2: Minor logging updates.\" into jb-mr1-dev\n\n* commit \u00273b1069c5e5b70cefc185d7ea498b15e8b12e8807\u0027:\n  Camera2: Minor logging updates.\n"
    },
    {
      "commit": "27170d87c8fa4a730eb246868539660a060d0c4a",
      "tree": "213e1dd390af00df6f0c4a9524b074490f98f312",
      "parents": [
        "24c80c49eb55c7727af54d3a70206fd5341abe41",
        "028488ecb9bc16482e94beca8e27a2d409126648"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 17:04:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 02 17:04:02 2012 -0700"
      },
      "message": "am 028488ec: am 4a76bcea: Merge \"Camera2: Check PIDs to ensure camera exclusive access.\" into jb-mr1-dev\n\n* commit \u0027028488ecb9bc16482e94beca8e27a2d409126648\u0027:\n  Camera2: Check PIDs to ensure camera exclusive access.\n"
    },
    {
      "commit": "15d7245ed2193e4956ea87998321cbc16a3b0a46",
      "tree": "18f36b8fc450f4a0784bade5771b5bc20fbe9c94",
      "parents": [
        "1bf1c000be916b5e3388ef9039beedda01fa2bdd",
        "d6f8e08a9ca7f2fe41717acd351426a7ecb0c175"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 17:01:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 17:01:07 2012 -0700"
      },
      "message": "Merge \"Camera2: Fix exposure compensation step value.\" into jb-mr1-dev"
    },
    {
      "commit": "1bf1c000be916b5e3388ef9039beedda01fa2bdd",
      "tree": "d45f3a7e978671fe9097bc93f8c8ff42693bee0a",
      "parents": [
        "4a76bcea7a23356185c4fa9491d5a73256b80cd0",
        "750d74b0b64470dccdb7310bf33e0d0e582f2059"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 17:00:19 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 17:00:20 2012 -0700"
      },
      "message": "Merge \"Camera2: Minor logging updates.\" into jb-mr1-dev"
    },
    {
      "commit": "4a76bcea7a23356185c4fa9491d5a73256b80cd0",
      "tree": "ff109075175e3c1a8200fea09b2d3b28129ad21f",
      "parents": [
        "ac9b96003da5dad9ae6fc8d054d7b24ef24693fe",
        "3a609147811105d40766f8f8f5904bf71cb123cb"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 16:59:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 16:59:41 2012 -0700"
      },
      "message": "Merge \"Camera2: Check PIDs to ensure camera exclusive access.\" into jb-mr1-dev"
    },
    {
      "commit": "d6f8e08a9ca7f2fe41717acd351426a7ecb0c175",
      "tree": "721dabfcc1ce1ea6dba72ce475e8940965a274be",
      "parents": [
        "750d74b0b64470dccdb7310bf33e0d0e582f2059"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 16:00:35 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 16:51:48 2012 -0700"
      },
      "message": "Camera2: Fix exposure compensation step value.\n\nFix floating-point divide error.\n\nChange-Id: I61b140c1090d6773b9b530d19a2ec03cf784b85e\n"
    },
    {
      "commit": "750d74b0b64470dccdb7310bf33e0d0e582f2059",
      "tree": "b03bcb7d01335be267b46e1851e5e0c392fff4d9",
      "parents": [
        "3a609147811105d40766f8f8f5904bf71cb123cb"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 01 09:05:04 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 16:51:48 2012 -0700"
      },
      "message": "Camera2: Minor logging updates.\n\nImprove double-verbose logging, report a few more errors/startup\nconditions.\n\nBug: 6243944\nChange-Id: I2e814f786b35f57b63220d1b7c39f39cb6c3ace3\n"
    },
    {
      "commit": "3a609147811105d40766f8f8f5904bf71cb123cb",
      "tree": "27cc2e751e60d6daf4960efe47a3bc035376887c",
      "parents": [
        "428b77a2b94b74665a47375b3fdb893b98d71269"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 31 14:36:26 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 02 16:51:48 2012 -0700"
      },
      "message": "Camera2: Check PIDs to ensure camera exclusive access.\n\nBug: 6243944\nChange-Id: I4b36af2c92b7266a4aa896a2b048c56b6406cb9a\n"
    },
    {
      "commit": "22651d2b681f3f75e2a1e73daede1b94e998cc6f",
      "tree": "292e80eb8ca1accf9c62bac46e61dbac57075723",
      "parents": [
        "bdce245042dab808cb9062d9161256f01b03a79c",
        "174e8f67cf909ca293d45face46bd0a65199e211"
      ],
      "author": {
        "name": "Patric Frederiksen",
        "email": "patric.frederiksen@sonymobile.com",
        "time": "Thu Aug 02 15:08:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 02 15:08:11 2012 -0700"
      },
      "message": "am 174e8f67: Shutter sound is heard at the end of the recorded video\n\n* commit \u0027174e8f67cf909ca293d45face46bd0a65199e211\u0027:\n  Shutter sound is heard at the end of the recorded video\n"
    },
    {
      "commit": "3c0a0e8541846427db0587c2fffb90f60ee680b0",
      "tree": "5ec5cfb29970fe635f34145ba9642f96fd91e9b7",
      "parents": [
        "ffd99cb795c92caee7f4bd0b26af9ae37b100fc3"
      ],
      "author": {
        "name": "Paul Lind",
        "email": "plind@mips.com",
        "time": "Wed Aug 01 18:49:49 2012 -0700"
      },
      "committer": {
        "name": "Paul Lind",
        "email": "plind@mips.com",
        "time": "Wed Aug 01 18:49:49 2012 -0700"
      },
      "message": "Fix initialization of audio mixer track resources for MIPS.\n\nThe value 1 \u003c\u003c 32 (maxNumTracks defaults to 32) is surprisingly not defined\nin C, and differs on MIPS than the other arch.\n\nTherefore the track resources were not initialized properly, resulting\nin failure to play any audio.\n\nThe fix allows the mConfiguredNames bitmask to be correctly set to all\n1\u0027s in the 32-track case, for all arch.\n\nChange-Id: Ied3e1305952e9567602e2cd76c5ef3acb0809ee0\nSigned-off-by: Paul Lind \u003cplind@mips.com\u003e\n"
    },
    {
      "commit": "174e8f67cf909ca293d45face46bd0a65199e211",
      "tree": "dd3f273e129ea9864e87d4df79eb78dab157744e",
      "parents": [
        "b2676a2920c6514ae9405cc56dfa2db49f096016"
      ],
      "author": {
        "name": "Patric Frederiksen",
        "email": "patric.frederiksen@sonymobile.com",
        "time": "Tue Jul 10 13:38:35 2012 +0200"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 01 16:25:51 2012 -0700"
      },
      "message": "Shutter sound is heard at the end of the recorded video\n\nOn fast hardware, which is more common, the shutter sound is\nplayed and recorded before video recording is stopped.\n\nBefore we call play shutter sound before calling stop recording.\nWith this fix we call play shutter sound after calling stop recording.\n\nChange-Id: I06a3e65fd2700f1d2457fea5ff0f64500eac436f\n"
    },
    {
      "commit": "9007619d1f786a75dae0fff31feadbf9aed9cfb8",
      "tree": "dd3f273e129ea9864e87d4df79eb78dab157744e",
      "parents": [
        "44cda3a4e7ca3de0db9cb49145def3803b03ebb4",
        "35f859b338c0922094ecfc37fb8157530df6b305"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 01 16:15:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 01 16:15:36 2012 -0700"
      },
      "message": "Merge \"Shutter sound is heard at the end of the recorded video\" into jb-mr1-dev"
    },
    {
      "commit": "35f859b338c0922094ecfc37fb8157530df6b305",
      "tree": "62fc06cc2c07cd7e7a559f0f3b744ce30a24fdd1",
      "parents": [
        "25f0d7ba1987de61c75f8c68b19de48e0ad9736c"
      ],
      "author": {
        "name": "Patric Frederiksen",
        "email": "patric.frederiksen@sonymobile.com",
        "time": "Tue Jul 10 13:38:35 2012 +0200"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 01 15:54:55 2012 -0700"
      },
      "message": "Shutter sound is heard at the end of the recorded video\n\nOn fast hardware, which is more common, the shutter sound is\nplayed and recorded before video recording is stopped.\n\nBefore we call play shutter sound before calling stop recording.\nWith this fix we call play shutter sound after calling stop recording.\n\nChange-Id: I06a3e65fd2700f1d2457fea5ff0f64500eac436f\n"
    },
    {
      "commit": "bdce245042dab808cb9062d9161256f01b03a79c",
      "tree": "b904ef8480cf657e3717c5142a26f4ba5af38caf",
      "parents": [
        "ee0e8696befb9d229eebc180060d728849db1b69",
        "b2676a2920c6514ae9405cc56dfa2db49f096016"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 01 14:52:59 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 01 14:52:59 2012 -0700"
      },
      "message": "am b2676a29: am 44cda3a4: Don\\\u0027t wait for presentation complete if terminated\n\n* commit \u0027b2676a2920c6514ae9405cc56dfa2db49f096016\u0027:\n  Don\u0027t wait for presentation complete if terminated\n"
    },
    {
      "commit": "44cda3a4e7ca3de0db9cb49145def3803b03ebb4",
      "tree": "2ed0b1d13971820bd5dcd80ece0f7ab05150e2a8",
      "parents": [
        "3788a393bbcadebf38ac01ef9b2ecc46f07db011"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 01 09:40:18 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 01 10:46:10 2012 -0700"
      },
      "message": "Don\u0027t wait for presentation complete if terminated\n\nChange-Id: Ia04cf6c620693457dca87b4ffea5dd0fe71efdce\n"
    },
    {
      "commit": "d4b5f7213911636a26a43127eb6ea139f403f558",
      "tree": "95a3484c6672131c15cc8541815b2f0a1db9171c",
      "parents": [
        "20d36d0c2f4ed99be6d9c0973ac4e833b04576ec",
        "8d058d89fd4d46bbacbb8f2dc9bd52e94cd69e56"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 01 09:52:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 01 09:52:40 2012 -0700"
      },
      "message": "am 8d058d89: am 5665fde6: Merge \"Start adding support for multiple record tracks\" into jb-mr1-dev\n\n* commit \u00278d058d89fd4d46bbacbb8f2dc9bd52e94cd69e56\u0027:\n  Start adding support for multiple record tracks\n"
    },
    {
      "commit": "5665fde6d4520c8e6cec81a4e1e9c86f1537f689",
      "tree": "774c48425035787b816a743cefd39ba86d1a2145",
      "parents": [
        "428b77a2b94b74665a47375b3fdb893b98d71269",
        "510a3d6b8018a77683dac466127ffd0af34bef6e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 01 09:48:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 01 09:48:27 2012 -0700"
      },
      "message": "Merge \"Start adding support for multiple record tracks\" into jb-mr1-dev"
    },
    {
      "commit": "510a3d6b8018a77683dac466127ffd0af34bef6e",
      "tree": "1f3410b20a4dcbe77dd9b40800bdd569ceaff384",
      "parents": [
        "25f0d7ba1987de61c75f8c68b19de48e0ad9736c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 16 14:24:34 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 01 09:11:11 2012 -0700"
      },
      "message": "Start adding support for multiple record tracks\n\nReplace single mTrack by vector mTracks.\nDestroy record tracks similarly to playback tracks.\nDump all record tracks, in addition to the active record track.\n\nChange-Id: I503f10b51928b6b92698fe1c51a9ddd3215df1f4\n"
    },
    {
      "commit": "20d36d0c2f4ed99be6d9c0973ac4e833b04576ec",
      "tree": "2b4c7755f639c657f2911521ab900f1c061b90cd",
      "parents": [
        "1b88304c41db6efc43869cfd978a633a7b30f433",
        "f0f4a0abe917fc9f18566fd67ef43e79b711134f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 31 16:51:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 31 16:51:48 2012 -0700"
      },
      "message": "am f0f4a0ab: am 428b77a2: Camera2: Improve formatting of debugging dump\n\n* commit \u0027f0f4a0abe917fc9f18566fd67ef43e79b711134f\u0027:\n  Camera2: Improve formatting of debugging dump\n"
    },
    {
      "commit": "1b88304c41db6efc43869cfd978a633a7b30f433",
      "tree": "3850e6060c279d9682741b64e6a201f456036b40",
      "parents": [
        "c4202aeb6ef9d0aa334c7c2b8f76dd815760b1d6",
        "637a3676b1936d5202da5be6d38ccda5e6ac4aae"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 31 16:51:47 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 31 16:51:47 2012 -0700"
      },
      "message": "am 637a3676: am 836b81f3: Camera2: Improve threading safety\n\n* commit \u0027637a3676b1936d5202da5be6d38ccda5e6ac4aae\u0027:\n  Camera2: Improve threading safety\n"
    },
    {
      "commit": "428b77a2b94b74665a47375b3fdb893b98d71269",
      "tree": "63a1133d9c9d92592786a3d0680ac197f14daab8",
      "parents": [
        "836b81f3c5a5bacb800f698f90ded6bd6e6bc5ce"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jul 30 09:55:30 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 31 14:53:42 2012 -0700"
      },
      "message": "Camera2: Improve formatting of debugging dump\n\nBug: 6243944\nChange-Id: Id8730357f3adcd96923132f9f702e296e0dfd357\n"
    },
    {
      "commit": "836b81f3c5a5bacb800f698f90ded6bd6e6bc5ce",
      "tree": "f3a29d05d3d6c8b49a46887a20d268641419e48e",
      "parents": [
        "25f0d7ba1987de61c75f8c68b19de48e0ad9736c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 27 11:35:21 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 31 14:53:42 2012 -0700"
      },
      "message": "Camera2: Improve threading safety\n\nMerge mutex lock for accessing internal parameters with the parameter\nstructure, forcing a lock to be held before the parameters can be accessed.\n\nBug: 6243944\nChange-Id: I86e44f395de0d80ff7c3ff3530f25b60015512d2\n"
    },
    {
      "commit": "05144f1d68c5240a1fedd42ac83814f3ecf70dfd",
      "tree": "06d978724b8e3423f7a7086547fd49e1726acd29",
      "parents": [
        "93d906837e0e89aa1d9c913ab2b531b809f9bb9e",
        "52008f821a5202502a82a8ba2c024e69bd336350"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 30 10:55:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 30 10:55:59 2012 -0700"
      },
      "message": "Merge \"Share local time frequency for all tracks \u0026 mixers\""
    },
    {
      "commit": "93d906837e0e89aa1d9c913ab2b531b809f9bb9e",
      "tree": "9e0fdd3b9cb2fb72263ca425e6cbd9403ebee372",
      "parents": [
        "91de9b56282d126ffb36344266af5fee3cefcfdd"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Jul 23 17:05:46 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Jul 30 10:36:28 2012 -0700"
      },
      "message": "AudioFlinger: Better handling for master volume/mute\n\nChanges to address bug 6842827.\n\nWhen a HAL is loaded, cache whether or not the HAL supports\nset_master_volume/mute in the AudioHwDevice structure.  Store an\nAudioHwDevice in AudioStream(In|Out) structures instead of just an\naudio_he_device_t.  This give threads (PlaybackThreads in\nparticular) access to the cached capabilities.\n\nWhen setting master volume/mute, change the system to always set the\nsetting on all HAL which support it and also to set the setting on all\nPlaybackThreads.  Change PlaybackThreads to apply the setting at the\nin SW mix stage of the pipeline if its assigned HAL does not support\nthe setting, or to ignore the setting of the assigned HAL does support\nit.\n\nChange-Id: Ia14137a30b4c3ee6f2d7ddcc8cba87bf5eec87f4\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "91de9b56282d126ffb36344266af5fee3cefcfdd",
      "tree": "0c934d29385a85c6e0d020398905a7a3dd47e69a",
      "parents": [
        "8bdac969e500bc61320a216539e840fe8ad78bb4"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Jul 20 14:51:35 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Jul 30 10:36:27 2012 -0700"
      },
      "message": "Change audio flinger to user HAL master mute if available\n\nHand merge from ics-aah\n\n\u003e Change audio flinger to user HAL master mute if available: DO NOT MERGE\n\u003e\n\u003e Replicate the pattern used for HAL master volume support to make use\n\u003e of master mute support if the HAL supports it.  This is part of the\n\u003e change needed to address bug 6828363.  Because of the divergences\n\u003e between ICS and master, this change will need to be merged by hand.\n\u003e\n\u003e Signed-off-by: John Grossman \u003cjohngro@google.com\u003e\n\u003e Change-Id: I6d83be524021d273d093bcb117b8f2fe57c23685\n\nChange-Id: I32280582905c969aaec2bb166ec5c61df82d737a\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "0ec23ce0d1ff79566c402bc30df3074f6e25a22b",
      "tree": "8925eca2b9f4b9bccb7fa4d032ab80070179912d",
      "parents": [
        "e4e2a37dbe2a4d923232305549101f779a2e3638"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 10 12:56:08 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 27 14:54:48 2012 -0700"
      },
      "message": "Clean up start() parameters\n\nDocument where int is used instead of AudioSystem::sync_event_t\n  (probably because of a header file dependency).\nTrackBase::start() and RecordTrack::start() don\u0027t need default parameters.\n\nChange-Id: I82f4a4d078be900f3aa4bd926697e32f5ed68ec8\n"
    },
    {
      "commit": "e4e2a37dbe2a4d923232305549101f779a2e3638",
      "tree": "7038669149e9478745fbb5e05f320cee8fd5cb88",
      "parents": [
        "3dca4c7a5622fc6aa03397d749c4b4c1201cc4f3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 23 12:55:09 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 27 14:49:58 2012 -0700"
      },
      "message": "Extract methods to enter standby and standby mode\n\nAlso move initial standby from to threadLoop to avoid a race condition.\n\nChange-Id: I65afca83c36fb41b983b3b1d3dab35d4029560e3\n"
    },
    {
      "commit": "52008f821a5202502a82a8ba2c024e69bd336350",
      "tree": "5daaddaa46d47bec27af0bc5350f414452710b00",
      "parents": [
        "0a7af18d0308295405491f86603e3d119450aba0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Mar 18 09:34:41 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 25 18:49:08 2012 -0700"
      },
      "message": "Share local time frequency for all tracks \u0026 mixers\n\nChange-Id: I5e6f0e371f728a5225c2fa6f778c109449d33602\n"
    },
    {
      "commit": "28567defef0ba95cb38f2d80eba30b01db207a77",
      "tree": "4a8ca4bafe5e754fe76266c0a947de84624d94f7",
      "parents": [
        "82f517ba654ca4891b82ebe604dbd004b66a7b2d",
        "803cbf6190f16f7b2c43cbc51d0df21ec888abdd"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 25 16:09:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 25 16:09:34 2012 -0700"
      },
      "message": "Merge \"Camera2: Use more buffers for video encoding.\""
    },
    {
      "commit": "82f517ba654ca4891b82ebe604dbd004b66a7b2d",
      "tree": "3f4daa2e10e5bd1c69f6b0de86b5227ee8f728fe",
      "parents": [
        "0a7af18d0308295405491f86603e3d119450aba0",
        "78822d73af1e7f6b8b297fc7f98ef7f8257cc10a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 25 16:08:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 25 16:08:40 2012 -0700"
      },
      "message": "Merge \"Camera2: Revamp recording support to allow opaque formats.\""
    },
    {
      "commit": "803cbf6190f16f7b2c43cbc51d0df21ec888abdd",
      "tree": "59dfc0f1cadc394645ee8bd0547aebf4a8c28604",
      "parents": [
        "78822d73af1e7f6b8b297fc7f98ef7f8257cc10a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 25 15:23:36 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 25 15:23:36 2012 -0700"
      },
      "message": "Camera2: Use more buffers for video encoding.\n\nTo avoid starvation, set the number of simultaneously available buffers\nto the encoder to 8.\n\nBug: 6243944\nChange-Id: I6d0e9f3c0426d62d374c0ae0d427bf5189141adf\n"
    },
    {
      "commit": "0a7af18d0308295405491f86603e3d119450aba0",
      "tree": "bed6e2fe6df1d948db29bc84ff5d0a3bee02d6a6",
      "parents": [
        "58e5aa34f01d663654d8bafad65db1dda42161ff"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 09 16:09:19 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 25 14:48:11 2012 -0700"
      },
      "message": "Use valueAt instead of editValueAt when possible\n\nChange-Id: I885b169f4b176a6b5c2ca9a534214b4ffff1700e\n"
    },
    {
      "commit": "58e5aa34f01d663654d8bafad65db1dda42161ff",
      "tree": "706a80113457f48feae3eab9f8720bcc3da2b397",
      "parents": [
        "1d491ff06f4b9c90ff24fe953b90d0843eaf1c04"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 20 14:08:14 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 25 14:43:19 2012 -0700"
      },
      "message": "effect_descriptor_t const correctness\n\nChange-Id: Iad008f20d35a18acf500f773900164552fd0c19e\n"
    },
    {
      "commit": "1d491ff06f4b9c90ff24fe953b90d0843eaf1c04",
      "tree": "006faa29a2ad0ca2ea18c8e876c43749d72d138d",
      "parents": [
        "bf5bea96f236adb5eef78c2f414ef82b3602a0f7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 16 14:28:13 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 25 14:41:03 2012 -0700"
      },
      "message": "Fix races in AudioRecord stop()\n\nChange-Id: Id0ac1915f57fef4a938c7f90989c1162a8b6c51c\n"
    },
    {
      "commit": "78822d73af1e7f6b8b297fc7f98ef7f8257cc10a",
      "tree": "bb28c6e7d7affcf849f862c42c6664fc67eefd81",
      "parents": [
        "bf5bea96f236adb5eef78c2f414ef82b3602a0f7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 18 17:52:18 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 24 16:59:22 2012 -0700"
      },
      "message": "Camera2: Revamp recording support to allow opaque formats.\n\n- Avoid memcpy of buffer data by using metadata mode\n- Temporarily add MediaConsumer BufferQueue class\n\nBug: 6243944\nChange-Id: I7a8c4222b7dbd14f1b1d86fda06d38eb640e87c1\n"
    },
    {
      "commit": "69d799679c8c0308e42057e7b5ad63a7ae806480",
      "tree": "fd433daeb23326b7818031fcca0f8b87f77dbc3e",
      "parents": [
        "f1b3ee26cafc80900bae681bddf47446a6a3733f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 19 14:02:22 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 23 10:56:34 2012 -0700"
      },
      "message": "Use upmix/downmix utility routines\n\nChange-Id: I9ae2ec938fb695ec576ea008a42205325af7bbf1\n"
    },
    {
      "commit": "e78d5c7bfda1e80223436df3faeb4a9e2e719bcf",
      "tree": "6aa675b9bac094a8af8f7d5b7a931c0c2c21f6d9",
      "parents": [
        "789e325341e73743630f45e92b77d07e31c3957e",
        "2267106c98f461b730c772a913da946c391a178c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 18:39:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 18:39:33 2012 -0700"
      },
      "message": "Merge \"Camera2: Stop preview: Wait until HAL is drained\""
    },
    {
      "commit": "789e325341e73743630f45e92b77d07e31c3957e",
      "tree": "f1212122587a95153efd013b483cceb1ca1618ca",
      "parents": [
        "afa1669ef8b3cf172a695f8959d94849cb9f7195",
        "9e4c3db01ba4eb1e5acbed113f78a31374900df6"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 18:39:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 18:39:22 2012 -0700"
      },
      "message": "Merge \"Camera2: Add more verbose logging\""
    },
    {
      "commit": "afa1669ef8b3cf172a695f8959d94849cb9f7195",
      "tree": "51ff5a99dcc7d91d53dbcab1a3d857d1fe19dc74",
      "parents": [
        "f5545b962794b78a97cafa73d0b592f55ffe06d8",
        "898a9a9b867e5d209671feee4c92266f90a55aa3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 18:38:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 18:39:00 2012 -0700"
      },
      "message": "Merge \"Camera2: Fix recording bugs\""
    },
    {
      "commit": "2267106c98f461b730c772a913da946c391a178c",
      "tree": "64c4fe71a71405291467077ddceda6df768d2d92",
      "parents": [
        "9e4c3db01ba4eb1e5acbed113f78a31374900df6"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 18:30:37 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 18:30:37 2012 -0700"
      },
      "message": "Camera2: Stop preview: Wait until HAL is drained\n\nOnce camera returns from stopPreview, all preview activity needs to\nhave stopped. So wait until that\u0027s true.\n\nBug: 6243944\nChange-Id: Ifa6cf171bd69015883e26dafb1e49e5ac098025a\n"
    },
    {
      "commit": "e65c89113232d070dd9153c54ca19301bca7a162",
      "tree": "09997cb32d82da8d2549044a95eb31c8c35cf39d",
      "parents": [
        "76da2635edbe0e6d023c665d5c344a3b7e070d73"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 20 15:57:23 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 20 15:57:23 2012 -0700"
      },
      "message": "fix audio effect not destroyed when needed.\n\ncommit a5f44eba contained an error which made that audio effect\nmodules where not destroyed but left in the destroyed state\nrendering them unuseable after being released.\n\nBug 6805168.\n\nChange-Id: Ia4e683b3c970ffd01846c482fde73d799ff219de\n"
    },
    {
      "commit": "33e6e35b03a726e35203e97550f32154c91d5f13",
      "tree": "2648568f97f1b3f13335a044d267caa15d1d4e78",
      "parents": [
        "cd2d61016527bf48bd2e9a920bb3fdbb875eb3e4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 16 15:56:57 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 20 12:33:33 2012 -0700"
      },
      "message": "Miscellaneous audio record fixes\n\nCall AudioSystem::stopInput() if exitPending() after wait() returns.\n\nAcquire lock before clearing mActiveThread.\n\nChange-Id: Ia55e4c4b3accc65ad5479cbdc094fd919152af9f\n"
    },
    {
      "commit": "cd2d61016527bf48bd2e9a920bb3fdbb875eb3e4",
      "tree": "17db61cdcaeda8479f9f523c7689727a5b979470",
      "parents": [
        "a08412711b3266d336134b16a45e98baa8d11b9d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 18 16:49:32 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 20 12:27:12 2012 -0700"
      },
      "message": "Use constructor to initialize instead of memcpy\n\nAlso don\u0027t check for thread parameter as it\u0027s always non-NULL\n\nChange-Id: Id23ded1370556ef3f76f81f5f0c6fa644bcba681\n"
    },
    {
      "commit": "be5f05e0fdfc4e3799653702187861a2afa072ee",
      "tree": "1cc15fea099c579aded967ec174f00307b2517eb",
      "parents": [
        "cf9465b83405a1ec26a164b079d9898c09d87fcd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 18 15:24:02 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 20 11:08:14 2012 -0700"
      },
      "message": "Internal dump methods return void not status_t\n\nOnly the IAudioFlinger::dump() needs to return a status_t.\n\nChange-Id: Iffeb2a7db4846df850b6b2ed960276f1fd75dba0\n"
    },
    {
      "commit": "9e4c3db01ba4eb1e5acbed113f78a31374900df6",
      "tree": "a8548d961144da923801f77ab621748530d81d22",
      "parents": [
        "898a9a9b867e5d209671feee4c92266f90a55aa3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 11:07:52 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 11:07:52 2012 -0700"
      },
      "message": "Camera2: Add more verbose logging\n\nUntil ATRACE works in emulator, add more verbose logs to help debugging\n\nBug: 6243944\nChange-Id: Ic5fbf764f2717e5edd05d37e0f7d826f1d494179\n"
    },
    {
      "commit": "898a9a9b867e5d209671feee4c92266f90a55aa3",
      "tree": "f27edb5a194a91270307f3289fd8ef6ac392b99d",
      "parents": [
        "4865aa8a84465108e044480c1d976677f138fca6"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 11:05:20 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 11:05:20 2012 -0700"
      },
      "message": "Camera2: Fix recording bugs\n\n - Release recording stream on shutdown\n - Return recording gralloc buffers to queue when they are received by\n   camera service after recording has been stopped (which is normal\n   behavior thanks to pipeline latencies in camera pipelines)\n\nBug: 6243944\nChange-Id: Ia13a501c726613fd1e404733456dbd10d7b00132\n"
    },
    {
      "commit": "5ad92f620fbbb6a8281f10169a23d38e3601e07a",
      "tree": "c7b3d9ada1999b57f72e02e1e63ad062260d18f1",
      "parents": [
        "bb4350d3b9e9485ae59e084de270f86aecef8066"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 19 10:02:15 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 19 10:02:15 2012 -0700"
      },
      "message": "Revert 94479fd5405642c67efd14cebe722feb9cbe6e77\n\nChange-Id: I5ca78d5462badf541868785b2ba2e3f6d0cf492a\n"
    },
    {
      "commit": "bb4350d3b9e9485ae59e084de270f86aecef8066",
      "tree": "2f38f108eb3dd420695cd07cd47a55ea030d51b5",
      "parents": [
        "cb4184c917f88a3c8d70c8bc6b99fc951b11cc37"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 15:56:38 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 19 09:05:12 2012 -0700"
      },
      "message": "Use audio_devices_t more places\n\nChange-Id: Id0ace02ca6f480a6c46e11880acf6cdc66d83184\n"
    },
    {
      "commit": "ea682976030a3930f6ee49b33b7e21abfc68174a",
      "tree": "24bb02a54f694b57a7c7b2d30c5f7e9949c6e6cf",
      "parents": [
        "a189a6883ee55cf62da1d7bf5bf5a8ab501938a4",
        "f5926136ad328e95a79336b051d6f853443eaab9"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 17 14:13:34 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 17 14:13:34 2012 -0700"
      },
      "message": "Merge \"CameraService: Add more information to service dump.\""
    },
    {
      "commit": "f5926136ad328e95a79336b051d6f853443eaab9",
      "tree": "196d7d93abbd276f70839291eb711094d345f8c7",
      "parents": [
        "dcda3b325f465aa6ec2be11db1c56c8a5e867f33"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 17 13:54:20 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 17 13:54:20 2012 -0700"
      },
      "message": "CameraService: Add more information to service dump.\n\nAdd dumpsys information even when there\u0027s no active client. Including:\n- Camera module version / name / author\n- Number of camera devices\n- Static information for each device\n\nChange-Id: Ib97e325f6be5f989b342d24f1ae17aa9e796f8ed\n"
    },
    {
      "commit": "a189a6883ee55cf62da1d7bf5bf5a8ab501938a4",
      "tree": "7ab4133c0ce507e289baacf76d745de27f9e8136",
      "parents": [
        "28b76b334f92a15a2be3cc9e2f7d229a3275d1ac"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 20 12:16:30 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 17 11:35:16 2012 -0700"
      },
      "message": "Use struct assignment instead of explicit memcpy\n\nfor POD structs effect_descriptor_t and effect_config_t\n\nChange-Id: Ib2fc47f85fb65ed91b0abb1f87217c49b5eb571d\n"
    },
    {
      "commit": "fd4e20c226eca185fc789de761beae64855bfbbb",
      "tree": "7f752ff15fa1f70181281b5dad8c7c987c559b60",
      "parents": [
        "d96c5724818fb47917bb5e7abe37799735e1ec0e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 04 11:51:12 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 16 16:49:01 2012 -0700"
      },
      "message": "Run audio at priorities 2 and 3 above kernel 1\n\nAlso run the watchdog at same priority as the fast mixer.\nrequestPriority() originally used only the caller\u0027s pid to decide which\ncgroup to assign, but in the future it might look at the priority also.\nSo it\u0027s safer to use same priority as the fast mixer to be sure we\nrun in the same cgroup.\n\nBug: 6461925\nChange-Id: Ia59c93e4b22dacbb6746bfa6ad491be7b72f2b8d\n"
    },
    {
      "commit": "d96c5724818fb47917bb5e7abe37799735e1ec0e",
      "tree": "e7cc73da27068c8c770e53fe0ed00bf7276aea5f",
      "parents": [
        "dcda3b325f465aa6ec2be11db1c56c8a5e867f33"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 25 13:44:49 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 16 11:57:11 2012 -0700"
      },
      "message": "Don\u0027t call virtual methods in destructor\n\nThe result of calling virtual methods from a destructor is undefined.\n\nChange-Id: I0fd4a19626e5ae564a60b753315b5f6c4b8d1f2c\n"
    },
    {
      "commit": "1ea6d23396118a9cfe912b7b8a4e6f231e318ea2",
      "tree": "31327ae0fe7ad1e34a3766bf6246c26752704ce7",
      "parents": [
        "68337edf595a0c345ba4b8adcd4f1e541a1d7eb7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 09 14:31:33 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 13 16:35:52 2012 -0700"
      },
      "message": "Use atomic ops for thread suspend count\n\nThere was a theoretical but unlikely race if two binder threads\nexecuted suspend() or restore() concurrently.  Also added comments.\n\nChange-Id: I0908acc810b83bdd66455b27ca3429de1662a2cd\n"
    }
  ],
  "next": "9cca4c6d976d2d4127286e9eaa54d1b99880c25c"
}
