)]}'
{
  "log": [
    {
      "commit": "22167855ff9af7b13fda669ca27c67a037a7d585",
      "tree": "173d9cb6b65734e259df2b311a4e3e18956fe49b",
      "parents": [
        "5f12136299918ea30555f3481668ec0dbb775e5f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 20 12:26:32 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 20 12:26:32 2012 -0700"
      },
      "message": "audioflinger: fix setStreamOutput()\n\nAudioFlinger::setStreamOutput() should also work for direct outputs.\nAlso ignore the destination output specified to match the expected\nbehavior which is to invalidate all tracks using the specified stream\ntype so that they can be re created on the correct ouput thread.\n\nDo not send STREAM_CONFIG_CHANGED event wich is ignored by AudioSystem\nanyway since the stream to output cache has been removed.\n\nChange-Id: I13d9d47922923b630dd755717875424c16be4637\n"
    },
    {
      "commit": "5f12136299918ea30555f3481668ec0dbb775e5f",
      "tree": "69acc85f312c0bf1577eeccf16e31e0ecd226269",
      "parents": [
        "1222bb9d9551cdf84923ea342ca3f4210867bd9a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 15 14:45:03 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 19 08:35:34 2012 -0700"
      },
      "message": "audio policy: acquire lock for volume functions\n\nAcquire the AudioPolicyService mutex when executing\nsetStreamVolumeIndex() and getStreamVolumeIndex().\n\nThese functions have become more complex and iterate on the\nlist of opened outputs and it is safer to acquire the\nAudioPolicyService mutex to avoid concurrency with other\nfunctions.\n\nBug 6626532.\n\nChange-Id: Ifdcbbbf13338fd9a59f694d43faa7ade143f94bf\n"
    },
    {
      "commit": "5b42ee8124ffc7f95d5a8a433b5df0e18d847635",
      "tree": "94d47409ab7374b4f9f4496ac0d77b26b483d75f",
      "parents": [
        "ff3e9fa062e2afb2b8ebb0f47c8ad90fdd890dbd",
        "4862d1eaa6b3b2bad040d01fe090e8616685c12b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 18 10:52:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 18 10:52:41 2012 -0700"
      },
      "message": "am 4862d1ea: am eb15716b: Change definition of warmup period\n\n* commit \u00274862d1eaa6b3b2bad040d01fe090e8616685c12b\u0027:\n  Change definition of warmup period\n"
    },
    {
      "commit": "ff3e9fa062e2afb2b8ebb0f47c8ad90fdd890dbd",
      "tree": "7a686dda701ec11ce0e6f8954cd982f77acc4242",
      "parents": [
        "2c08dc66c2980a50e90befe84f836b7ebf17fe94",
        "16f07fb7bb4c284cc0b16f55fe5eabd4a4802590"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 18 10:52:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 18 10:52:41 2012 -0700"
      },
      "message": "am 16f07fb7: am 972af221: FastMixer compensates for SRC jitter in audio HAL\n\n* commit \u002716f07fb7bb4c284cc0b16f55fe5eabd4a4802590\u0027:\n  FastMixer compensates for SRC jitter in audio HAL\n"
    },
    {
      "commit": "2c08dc66c2980a50e90befe84f836b7ebf17fe94",
      "tree": "2044dfd736a94c1a24020eece437a132ac0f88ba",
      "parents": [
        "74cfa5b792fc17d7afd3e833d552fa0ec45ea977"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 12:49:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 18 08:40:58 2012 -0700"
      },
      "message": "Camera2: Move per-frame verbose logs to separate log enable\n\nBug: 6243944\nChange-Id: I5850f8ceb2e603aa555cc71328f64d6a928694a0\n"
    },
    {
      "commit": "74cfa5b792fc17d7afd3e833d552fa0ec45ea977",
      "tree": "6493a8551b1dc700b93107361670dc86a0aeb57f",
      "parents": [
        "e4aacc3be5f9a7128a0865a6878b644a05d25616",
        "c94cd19694ea0befe2eb22735c50b00070f006d9"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jun 18 08:40:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 18 08:40:39 2012 -0700"
      },
      "message": "Merge \"Camera2: Handle preview orientation changes.\""
    },
    {
      "commit": "e4aacc3be5f9a7128a0865a6878b644a05d25616",
      "tree": "6283169a6daebfa59b230aee66bf81a2649eabfa",
      "parents": [
        "f6dca9f9101cac0fb2488b8f7691d4381476cab9",
        "be0573b93e2d6fa133579c885583af9ed16bc29d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jun 18 08:40:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 18 08:40:32 2012 -0700"
      },
      "message": "Merge \"Camera2: Connect camera parameters to HAL request entries.\""
    },
    {
      "commit": "c94cd19694ea0befe2eb22735c50b00070f006d9",
      "tree": "5b0907d23acdd02c89c88599da7d8cc8a8d7459c",
      "parents": [
        "be0573b93e2d6fa133579c885583af9ed16bc29d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 12:47:42 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 15:42:17 2012 -0700"
      },
      "message": "Camera2: Handle preview orientation changes.\n\n- Process sendCommand(CAMERA_CMD_SET_DISPLAY_ORIENTATION)\n\nBug: 6243944\nChange-Id: I92d3bb13312d475703325230487d660a1cb7e0e5\n"
    },
    {
      "commit": "be0573b93e2d6fa133579c885583af9ed16bc29d",
      "tree": "0d5b7421b1f66ff2c4f6e1f97e2d7a835267cc65",
      "parents": [
        "11b7cdef9726f8270f12f6c393600e8fb3c469de"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 12:42:30 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 15:42:17 2012 -0700"
      },
      "message": "Camera2: Connect camera parameters to HAL request entries.\n\n- All fields in Camera.Parameters are mapped to HAL2 entries, and\n  communicated to the HAL.\n\n- Preview stream properly updated on parameter changes\n\n- Slight code rearrangment for improved clarity\n\nBug: 6243944\nChange-Id: I2a1db5c148809a62ba3524fb659dd6065affff8e\n"
    },
    {
      "commit": "eb15716b59020f342df62bce5b293f0603b94861",
      "tree": "d230ab42f45394837dffc52deb8d31c8fef9c1c1",
      "parents": [
        "972af221ae7253e406e0e1ea853e56a3010ed6b1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 14:59:07 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 15 14:53:31 2012 -0700"
      },
      "message": "Change definition of warmup period\n\nPreviously, warmup was considered done as soon as any write() took\nmore than 0.5 nominal cycle time.  In practice, this was always the\nfirst write() that turned on power to the output path, and it didn\u0027t\naccurately account for filling the full kernel buffer queue, or for\nbuffering in the HAL sample rate conversion.\n\nNow warmup is considered done when a write() _after_ the first write\ntakes more than 0.5 nominal cycle time.\n\nThis will throttle the initial pull rate after coming out of standby.\nWhen combined with another change to throttle the pull rate for\ndevices with HAL sample rate conversion, it may help reduce some of the\nnotification glitches.  The only downside is that it will increase the\nwarmup time a bit.\n\nBug: 6508317, 6650846, 6607056\nChange-Id: I39f324c5195578170a55308e9601d3a1b41db3e0\n"
    },
    {
      "commit": "f6dca9f9101cac0fb2488b8f7691d4381476cab9",
      "tree": "bc57c0ae2340747dc8bc696d26cdc3b3a5776495",
      "parents": [
        "6ff7918ba1c8b6b53c777dcb0b64992b5dd2a1f1",
        "11b7cdef9726f8270f12f6c393600e8fb3c469de"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 13:19:26 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 15 13:19:26 2012 -0700"
      },
      "message": "Merge \"Camera2: Minor parameter restructuring\""
    },
    {
      "commit": "11b7cdef9726f8270f12f6c393600e8fb3c469de",
      "tree": "15c08ffc53afeadc609262525763e9c049077502",
      "parents": [
        "3297daae9681004775012faba9181d65e097e00c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 12:37:35 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 15 12:37:35 2012 -0700"
      },
      "message": "Camera2: Minor parameter restructuring\n\nWill make it easier to update HAL-level parameters.\n\nBug: 6243944\nChange-Id: I3acac3c532de440d46755ce3e1d819ad5ed2e106\n"
    },
    {
      "commit": "972af221ae7253e406e0e1ea853e56a3010ed6b1",
      "tree": "77175ced586c67275d09b73524b935b15eab3090",
      "parents": [
        "fc42e16d96b7e1b18b573f40df1319c56f8ab933"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 17:14:03 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 15 10:21:47 2012 -0700"
      },
      "message": "FastMixer compensates for SRC jitter in audio HAL\n\nForce a sleep if audio HAL write() returns too quickly.\n\nBug: 6661275\nChange-Id: Ie810f5a087b89fb24dab229a0e500af1dee53571\n"
    },
    {
      "commit": "4bb2253be6855ab2446fe2344a8a57487e3f5024",
      "tree": "b88eecb057039f850dfd4862c453126e19a6f30b",
      "parents": [
        "e5a9440ca8308e7591cae76e3ba0903cbd10e0f8",
        "ff0fcb2628613953f454875006bfb78c3fc087d3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 15 08:26:53 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 15 08:26:53 2012 -0700"
      },
      "message": "am ff0fcb26: am 0a14c4ce: Make CPU frequency statistics optional\n\n* commit \u0027ff0fcb2628613953f454875006bfb78c3fc087d3\u0027:\n  Make CPU frequency statistics optional\n"
    },
    {
      "commit": "0a14c4ce1a41bc09eb7855fa531a3af629a69139",
      "tree": "dfde5cdadeea7bbbdb8e50477ca35ac4768693f0",
      "parents": [
        "362ebcbf100f7fccd37551c77e67c4faa7241b63"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 14:58:49 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 14 17:49:31 2012 -0700"
      },
      "message": "Make CPU frequency statistics optional\n\nCertain CPUs with dynamic cluster swapping and hotplug\ndon\u0027t report CPU frequency accurately.  The file descriptors\nused to read the frequency become stale and report bogus data.\nSo make this feature a build time option for debugging only.\nThis will also improve performance of the fast mixer loop.\n\nChange-Id: I602f81ec3281a37992769208be08084ed1469e8c\n"
    },
    {
      "commit": "362ebcbf100f7fccd37551c77e67c4faa7241b63",
      "tree": "62291e1b6f9940cec2b8e6a67357744cd1ee134f",
      "parents": [
        "7b4de10199f3a1803350e9a65baa671874d9c2f1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 24 08:44:00 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 14 15:34:17 2012 -0700"
      },
      "message": "DO NOT MERGE Remove log spam for fast track denied\n\nBug: 6531054\nChange-Id: Iedf58e810a157aae88b5900da27c81054c437058\n"
    },
    {
      "commit": "3297daae9681004775012faba9181d65e097e00c",
      "tree": "9c99905de0aae2a0f8f6a4be0e65971929ca0ba5",
      "parents": [
        "886e589546b71aad51e9260105d7752ce78ca942"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 14 10:49:45 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 14 11:49:26 2012 -0700"
      },
      "message": "Camera2: Add more dump information, connect HAL device dump\n\nBug: 6243944\nChange-Id: I79a302f68786d815b9ab9984dbb31d237522416b\n"
    },
    {
      "commit": "430aa1506245c42fa7106f3ee269b83143d53f34",
      "tree": "3572777ee021779c9257799c517663a34ff7a8d5",
      "parents": [
        "1d6573032ecde54a466ca32951e101b41a05c797",
        "ea1d16da8e28b30a58090e6372ce12d40b99c21f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 14 10:34:36 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 14 10:34:36 2012 -0700"
      },
      "message": "am ea1d16da: am e6adde40: Merge \"Shorten dumpsys media.audio_flinger output\" into jb-dev\n\n* commit \u0027ea1d16da8e28b30a58090e6372ce12d40b99c21f\u0027:\n  Shorten dumpsys media.audio_flinger output\n"
    },
    {
      "commit": "1d6573032ecde54a466ca32951e101b41a05c797",
      "tree": "967756aaa55eca58bc2cec8ed8843a180a5b81b2",
      "parents": [
        "bfe00d2e46531ef546cd9422a4d533070cbed8af",
        "48a0bfa6f731386f2794ff36d6677d56e98fc6ea"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 14 10:34:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 14 10:34:35 2012 -0700"
      },
      "message": "am 48a0bfa6: am 49dd5cf3: Merge \"Log track name on obtain/releaseBuffer warnings\" into jb-dev\n\n* commit \u002748a0bfa6f731386f2794ff36d6677d56e98fc6ea\u0027:\n  Log track name on obtain/releaseBuffer warnings\n"
    },
    {
      "commit": "bfe00d2e46531ef546cd9422a4d533070cbed8af",
      "tree": "0f15236a8b10ac0a7b4da9b59f03807df38c3966",
      "parents": [
        "382c24a607857e644035dcf92e412c8044e75b81",
        "cc0df657cdc8316c2b816c562f269be1706f00ea"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 14 10:33:38 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 14 10:33:38 2012 -0700"
      },
      "message": "am cc0df657: am e20435de: Merge \"Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/\" into jb-dev\n\n* commit \u0027cc0df657cdc8316c2b816c562f269be1706f00ea\u0027:\n  Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/\n"
    },
    {
      "commit": "e6adde403480333b613452ae0df442df9da4a5b2",
      "tree": "f32738e98444c0eaa7d696306d6bf5f850524f30",
      "parents": [
        "49dd5cf3469cd755321f8ec10013ad4fcfaf723d",
        "868c0abe9f26852c217bc201b337e72c68f829b8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 14 08:41:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 14 08:41:54 2012 -0700"
      },
      "message": "Merge \"Shorten dumpsys media.audio_flinger output\" into jb-dev"
    },
    {
      "commit": "49dd5cf3469cd755321f8ec10013ad4fcfaf723d",
      "tree": "2f849ff8d42627300eb0cd221e3bc04716db889e",
      "parents": [
        "e20435de10f63af812da9d4f801b61a8817733a0",
        "0c9d26d187017f7fb028ab52a0fbc6395142faa4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 14 08:41:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 14 08:41:38 2012 -0700"
      },
      "message": "Merge \"Log track name on obtain/releaseBuffer warnings\" into jb-dev"
    },
    {
      "commit": "ed790412320527bf61798559ccf5e0ff8cb827ae",
      "tree": "952c00f2b786b5391e25ce0814aa1e22cba1fa38",
      "parents": [
        "239c0ddb4a783e4264537358b071637f0a9a6197",
        "4ecfec32aca8749baeb634f7c961f804cb1e8f3e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 14 08:38:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 14 08:38:07 2012 -0700"
      },
      "message": "Merge \"Camera2: Improve error checking and debug logs.\""
    },
    {
      "commit": "239c0ddb4a783e4264537358b071637f0a9a6197",
      "tree": "5ed71d382ac38a252ccadc7eb8df631593a35258",
      "parents": [
        "b5a640652ced298deff033cea82dcee95095f2c9",
        "d4bcfde6bf3e7b28e36f6ec66e6d9e5adebfa949"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 14 08:38:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 14 08:38:03 2012 -0700"
      },
      "message": "Merge \"Camera2: Still image support\""
    },
    {
      "commit": "3d51d5cb53cc630709a0ba78d0e60501a675f2d5",
      "tree": "c01dc8011b4e0061343c8b60b0da3508c63ae822",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 12 18:10:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 13 15:18:29 2012 -0700"
      },
      "message": "Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/\n\nChange-Id: I0a3af3e2abdedebd5934f3d941d01c32cfc75e26\nrelated-to-bug: 6647465\n"
    },
    {
      "commit": "868c0abe9f26852c217bc201b337e72c68f829b8",
      "tree": "1ffcd485ce7c69bc424fc7fafb00412effd9c126",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 14:59:17 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 15:14:16 2012 -0700"
      },
      "message": "Shorten dumpsys media.audio_flinger output\n\nDon\u0027t include in FastMixer if it\u0027s not present.\nThis removes confusing clutter especially for devices\nwith a separate deep buffer output thread, or for the\nduplicating thread and A2DP output thread.\n\nChange-Id: I84933f5555593256f11ba0895ec915c09cf16963\n"
    },
    {
      "commit": "0c9d26d187017f7fb028ab52a0fbc6395142faa4",
      "tree": "35fd2f6babef082b85058fd27a69bda048687295",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 31 14:35:01 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 15:12:42 2012 -0700"
      },
      "message": "Log track name on obtain/releaseBuffer warnings\n\nThis should help diagnose problems by allowing us to correlate\nthe logs with the dumpsys media.audio_flinger output.\n\nChange-Id: I8c7c592b4f87d13b0f29c66ce7a2f301a0f063c9\n"
    },
    {
      "commit": "4ecfec32aca8749baeb634f7c961f804cb1e8f3e",
      "tree": "620a79ac1956957b6a1ef71818f16c81a9158e75",
      "parents": [
        "d4bcfde6bf3e7b28e36f6ec66e6d9e5adebfa949"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jun 12 17:13:48 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 13 12:03:29 2012 -0700"
      },
      "message": "Camera2: Improve error checking and debug logs.\n\nBug: 6243944\nChange-Id: Ie61d89b733af7d1f653443bf64b767456127a455\n"
    },
    {
      "commit": "d4bcfde6bf3e7b28e36f6ec66e6d9e5adebfa949",
      "tree": "9a7809d649c25ee5bb30bd7dd46da7753b59fa1a",
      "parents": [
        "a9300fd3d84cc07bbfa702e2fad3b32a5ebfd337"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 17:12:38 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 13 12:03:28 2012 -0700"
      },
      "message": "Camera2: Still image support\n\n- Add stream / request creation for still image capture\n- Add takePicture call\n- Add callback handler\n- Fix shutdown bugs (wait until requests have drained)\n\nBug: 6243944\n\nChange-Id: Id73eb7090e61b40b90348d1eb262f641ea5f3229\n"
    },
    {
      "commit": "8cc3651c04e48b755dcc579bfa4f9a7e9391d6e7",
      "tree": "c9a3c38ba62d6b72979e976b4021a5d593e08524",
      "parents": [
        "a4419420b0598413314a79c7ce3954a2e27686aa",
        "57d9b72812d25dff1c33e37b8475a469accd0919"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 12 12:50:44 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 12 12:50:44 2012 -0700"
      },
      "message": "am 57d9b728: am c15d6657: Add audio watchdog thread\n\n* commit \u002757d9b72812d25dff1c33e37b8475a469accd0919\u0027:\n  Add audio watchdog thread\n"
    },
    {
      "commit": "c15d6657a17d7cef91f800f40d11760e2e7340af",
      "tree": "c4346cb0fcde7483e42900aecce64df96250889b",
      "parents": [
        "b7acdfb8068bf408ed859dfdd441b4a8722eb12a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 30 14:52:57 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 11 11:39:54 2012 -0700"
      },
      "message": "Add audio watchdog thread\n\nChange-Id: I4ed62087bd6554179abb8258d2da606050e762c0\n"
    },
    {
      "commit": "796078f96c8a15fefcea70e666b22ea67cc35301",
      "tree": "eb61745fbd99644b96ff751b2df1ebe06b177cad",
      "parents": [
        "a9300fd3d84cc07bbfa702e2fad3b32a5ebfd337",
        "ea5008d8abfdf1479b4efa266cdb7c842d168aa9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 08 10:30:31 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 10:30:31 2012 -0700"
      },
      "message": "am ea5008d8: am 28ed2f93: Reduce underruns in screen off, esp. with EQ\n\n* commit \u0027ea5008d8abfdf1479b4efa266cdb7c842d168aa9\u0027:\n  Reduce underruns in screen off, esp. with EQ\n"
    },
    {
      "commit": "28ed2f93324988767b5658eba7c1fa781a275183",
      "tree": "07ba39f61d41aa6ff2af76dc2c9122a102c92059",
      "parents": [
        "a4f7e0e9a0e92a063f1b3a08988cf46e2cf1fa94"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 07 10:17:54 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 08 10:09:22 2012 -0700"
      },
      "message": "Reduce underruns in screen off, esp. with EQ\n\nAdd MonoPipe APIs to specify setpoint.\nUse screen state to configure pipe setpoint.\nFix a long-standing bug where pipe sleep time was excessive,\n  which interacted poorly with governor and low clock frequencies.\n  Now it deducts the elapsed time since last write(),\n  which was significant when there was EQ and low clock frequency.\n\nBug: 6618373\nChange-Id: I6f3b0072c2244aeb033ef0795ad164491a164ff5\n"
    },
    {
      "commit": "a9300fd3d84cc07bbfa702e2fad3b32a5ebfd337",
      "tree": "5a3ed9751c1c22f1c3dff5c08772d5825f6c59c3",
      "parents": [
        "0e0dc7a60d605648ba11af4a55e2b99d4a544c50",
        "6ed1ed1b3aa6fe01a72fa1c9fea3d6946adc3048"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 08 09:31:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 09:31:54 2012 -0700"
      },
      "message": "Merge \"Camera2: Copy metadata buffers for streaming.\""
    },
    {
      "commit": "0e0dc7a60d605648ba11af4a55e2b99d4a544c50",
      "tree": "d2932d911e90d2a7cfefc022afb3b772b753b2c1",
      "parents": [
        "da953c31c084d03fb964cb487134a363f97d2823",
        "bd4976a1651d5973836454f8a56871226ec000b5"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 08 09:31:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 09:31:51 2012 -0700"
      },
      "message": "Merge \"Camera2: Improve ANativeWindow handling\""
    },
    {
      "commit": "da953c31c084d03fb964cb487134a363f97d2823",
      "tree": "3021972a00a2b424ed2c8fb8cbae1650b3e64983",
      "parents": [
        "e9fd4e80c965b77c8d196f2624a2604f44463df6",
        "bd47b7bcfe7f5a97fef81143f4282c41590626fe"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 08 09:31:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 09:31:48 2012 -0700"
      },
      "message": "Merge \"Camera2: Minor bugfixes and cleanup\""
    },
    {
      "commit": "e9fd4e80c965b77c8d196f2624a2604f44463df6",
      "tree": "6019303355b9eee5eb5593f3040143d8b82ad7bb",
      "parents": [
        "02c892280bed166745ff36809da5b802e71c4aeb",
        "6861a4e9f929c2cb4a3131244e01e676c5b28f55"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 08 09:31:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 09:31:46 2012 -0700"
      },
      "message": "Merge \"Camera2: Add setParameters call\""
    },
    {
      "commit": "02c892280bed166745ff36809da5b802e71c4aeb",
      "tree": "16b93a604292eda405f2d25d037f905c1ff12ab3",
      "parents": [
        "4ab2d8d734cafe4942c006544558266d4e55340c",
        "ac45eb3dfa7347f7b8c98be1111b2a5f9e344c46"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 08 09:31:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 09:31:39 2012 -0700"
      },
      "message": "Merge changes I82c9811c,Id0294300\n\n* changes:\n  Camera2: Add basic concurrency guards.\n  Camera2: Add internal parameter state to dump.\n"
    },
    {
      "commit": "4ab2d8d734cafe4942c006544558266d4e55340c",
      "tree": "111eecc6f23e08685bb0f12bfad1a0c247f1ae0f",
      "parents": [
        "bdbf0c6f1a11d6fd9b71aa765f7de39e248557ba",
        "3cca136b73b0f4d058019230eb2070cc23e2bbb0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 08 09:31:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 08 09:31:31 2012 -0700"
      },
      "message": "Merge \"Camera2: Use new param structure, improve static camera info queries\""
    },
    {
      "commit": "bdbf0c6f1a11d6fd9b71aa765f7de39e248557ba",
      "tree": "194524008993958cc8d8eb2bf3163bc3a03a220d",
      "parents": [
        "349d79668ea4ca078400995c70d5d3201e8d9ea1",
        "98e2e030231ce99a4796d34d39a7517078d6735e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 17:45:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 07 17:45:55 2012 -0700"
      },
      "message": "am 98e2e030: am a4f7e0e9: audioflinger: fix duplicating thread standby\n\n* commit \u002798e2e030231ce99a4796d34d39a7517078d6735e\u0027:\n  audioflinger: fix duplicating thread standby\n"
    },
    {
      "commit": "a4f7e0e9a0e92a063f1b3a08988cf46e2cf1fa94",
      "tree": "007deb0f276a01d2276a953d2a493cf4f7d11d50",
      "parents": [
        "e35a55fbdff5a695ee35ff43f1466a62fb75662b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 17:16:09 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 17:16:09 2012 -0700"
      },
      "message": "audioflinger: fix duplicating thread standby\n\nThe code that waits for a track presentation to be complete\nbefore disabling it caused a regression for duplicating threads.\nBecause of the way output tracks activity is managed, the number\nof frames output by the duplicating thread would never\nreach the target set for a track to be considered presented.\nThe track would not be removed from active list and the thread would\nnot go to standby and keep its wakelock held.\n\nBug 6606922.\n\nChange-Id: I4b46b420ac4cbf79a86b6791ae6589d407b01c92\n"
    },
    {
      "commit": "6ed1ed1b3aa6fe01a72fa1c9fea3d6946adc3048",
      "tree": "e14265a33f1039712a6c850147413f08a5c8fc40",
      "parents": [
        "bd4976a1651d5973836454f8a56871226ec000b5"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:46:38 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 12:04:12 2012 -0700"
      },
      "message": "Camera2: Copy metadata buffers for streaming.\n\nUsing the passed-in buffer directly is incorrect; copy them so that\nconcurrent access can be controlled, and ownership is clear.\n\nBug: 6243944\nChange-Id: Iad22c0dc166b7739e6c5dbfa39aac631b974c95a\n"
    },
    {
      "commit": "bd4976a1651d5973836454f8a56871226ec000b5",
      "tree": "47ee8905d761332d17a0d1a4da1c14842beaee37",
      "parents": [
        "bd47b7bcfe7f5a97fef81143f4282c41590626fe"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:40:25 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 12:04:12 2012 -0700"
      },
      "message": "Camera2: Improve ANativeWindow handling\n\n- Properly set up scaling mode and transform on stream create\n- More error checking/verbose logs on enqueue/dequeue\n\nBug: 6243944\nChange-Id: Ic814e7f84a2016ed46ee2eb6832474f741f7cfd1\n"
    },
    {
      "commit": "bd47b7bcfe7f5a97fef81143f4282c41590626fe",
      "tree": "257411619c7fea24b864fe294fe666bf1b3f1563",
      "parents": [
        "6861a4e9f929c2cb4a3131244e01e676c5b28f55"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:34:20 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 12:04:12 2012 -0700"
      },
      "message": "Camera2: Minor bugfixes and cleanup\n\n- Use CameraParameter-defined enum strings instead of writing our own\n- Remember last window binder sent properly\n\nBug: 6243944\nChange-Id: I68b1d042becaa6ebb4776fd2865dc0a29db7b87e\n"
    },
    {
      "commit": "6861a4e9f929c2cb4a3131244e01e676c5b28f55",
      "tree": "b0d4919e162c3504869a5d7aaa7196198fd5931f",
      "parents": [
        "ac45eb3dfa7347f7b8c98be1111b2a5f9e344c46"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:32:12 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 12:04:12 2012 -0700"
      },
      "message": "Camera2: Add setParameters call\n\n- Validate new parameters and transfer to internal parameters\n\n- Add several utility functions to convert between CameraParameter\n  strings and camera2/internal parameter enums\n\nBug: 6243944\nChange-Id: I323798dbfa028066f4963a6357766a781dde7cb6\n"
    },
    {
      "commit": "349d79668ea4ca078400995c70d5d3201e8d9ea1",
      "tree": "2b69f653abc60aa4801d6a35a921ca01c8e73c6e",
      "parents": [
        "6685cf4fdfe4b9bdfd8e87c04165c08a436abcf7",
        "d89dea161ff3c3da515c02928cad4a9c73b23312"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jun 07 11:13:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 07 11:13:19 2012 -0700"
      },
      "message": "am d89dea16: am e35a55fb: Merge \"Take latency and current time into account for visualization\" into jb-dev\n\n* commit \u0027d89dea161ff3c3da515c02928cad4a9c73b23312\u0027:\n  Take latency and current time into account for visualization\n"
    },
    {
      "commit": "e35a55fbdff5a695ee35ff43f1466a62fb75662b",
      "tree": "97d542ca3fcf24a4ab55747fe0bb27e379ad59dd",
      "parents": [
        "9a0d82df8fd681257bc5b29fb5e6c65fcc7cef5a",
        "f06c2ed50e1db871ae9eb2bd15a196064f8c278c"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jun 07 11:08:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 07 11:08:15 2012 -0700"
      },
      "message": "Merge \"Take latency and current time into account for visualization\" into jb-dev"
    },
    {
      "commit": "ac45eb3dfa7347f7b8c98be1111b2a5f9e344c46",
      "tree": "b6ff408c4e05ca1714cbd64b029de981f70d36c0",
      "parents": [
        "7f61084a428a5c7afbeff2fa9e9839baf9018020"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:24:51 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:24:51 2012 -0700"
      },
      "message": "Camera2: Add basic concurrency guards.\n\n- Serialize access through ICamera interface\n- Serialize access to internal parameter structure\n\nBug: 6243944\nChange-Id: I82c9811c1d059b2bca5cca7e3d73890120dbbe59\n"
    },
    {
      "commit": "7f61084a428a5c7afbeff2fa9e9839baf9018020",
      "tree": "d65ebb3b01ca2cbfde25849372a2e57f95f649c8",
      "parents": [
        "3cca136b73b0f4d058019230eb2070cc23e2bbb0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:20:51 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:20:51 2012 -0700"
      },
      "message": "Camera2: Add internal parameter state to dump.\n\nBug: 6243944\nChange-Id: Id02943001ef92a9c5717b295eb4af1a18669b08b\n"
    },
    {
      "commit": "3cca136b73b0f4d058019230eb2070cc23e2bbb0",
      "tree": "1ffe815d439cf1c5acd3aefd49faa8235b499e15",
      "parents": [
        "a7daa16ee5c2ec9cbb1b4c9dd195cbf9bb0173f7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:07:18 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 07 10:15:06 2012 -0700"
      },
      "message": "Camera2: Use new param structure, improve static camera info queries\n\n- Stop using CameraParameters for internal parameter storage, use a\n  straightforward structure instead.\n\n- Improve querying for camera static characteristics for creating\n  defaults for API-facing CameraParameters.\n\nBug: 6243944\n\nChange-Id: I965cdca7b242ef10ac1be931ebe7c186f997bb63\n"
    },
    {
      "commit": "6685cf4fdfe4b9bdfd8e87c04165c08a436abcf7",
      "tree": "d946b2779e60488d2798e46227ad385af99328f4",
      "parents": [
        "38a5e7d1d5c86d6c0ed706d6cf4e52c6892ec331",
        "6a070e7941d3a521680116bfa2d0c99cd90c7502"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 09:24:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 07 09:24:03 2012 -0700"
      },
      "message": "am 6a070e79: am 9a0d82df: audioflinger: modify fast mixer overrun management\n\n* commit \u00276a070e7941d3a521680116bfa2d0c99cd90c7502\u0027:\n  audioflinger: modify fast mixer overrun management\n"
    },
    {
      "commit": "f06c2ed50e1db871ae9eb2bd15a196064f8c278c",
      "tree": "a6e809ffab6281359f5c22166113cb2039579f68",
      "parents": [
        "67c0a58e05f4c19d4a6f01fe6f06267d57b49305"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jun 06 09:52:31 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jun 07 09:16:27 2012 -0700"
      },
      "message": "Take latency and current time into account for visualization\n\nBuffer more data, and return the data that is currently being\noutput from the audio output, to ensure that visualizations are\nsmooth and responsive even when the audio output has a large\nlatency and/or large buffers.\nb/6522728\n\nChange-Id: I401637f01be7600b3c594a55c869036c13b206c0\n"
    },
    {
      "commit": "9a0d82df8fd681257bc5b29fb5e6c65fcc7cef5a",
      "tree": "9e31aa4a1c1a6b52b24c124eab362b4b4a67fb4f",
      "parents": [
        "67c0a58e05f4c19d4a6f01fe6f06267d57b49305"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 05 18:12:11 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 06 09:23:31 2012 -0700"
      },
      "message": "audioflinger: modify fast mixer overrun management\n\nDo not force sleep when an overrun occurs. This was for non\nblocking audio HAL and is unused.\nKeep statistics on overruns.\n\nBug 6605215.\n\nChange-Id: I295455d4562201aa3814c88bdd6e52c9226712af\n"
    },
    {
      "commit": "a88ed026402d92d699c336aa11267616007e4a9d",
      "tree": "bf66a778ed05602d37965316eaa91b48a9064f52",
      "parents": [
        "b86f92d552c391f5d2471bd4f979135be2578578",
        "717f9b7392b0fc3ba15b018c923b85e64c0662b5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 05 13:35:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 05 13:35:45 2012 -0700"
      },
      "message": "am 717f9b73: am 67c0a58e: audioflinger: various fixes on direct output\n\n* commit \u0027717f9b7392b0fc3ba15b018c923b85e64c0662b5\u0027:\n  audioflinger: various fixes on direct output\n"
    },
    {
      "commit": "67c0a58e05f4c19d4a6f01fe6f06267d57b49305",
      "tree": "0bfb89de1a57ad53abbd6314e6352538ab1a6317",
      "parents": [
        "ab9071b8d1b375418eb797c9a790da71de644344"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 01 19:31:12 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 05 12:50:16 2012 -0700"
      },
      "message": "audioflinger: various fixes on direct output\n\nVarious fixes in direct output playback thread implementation:\n- threadLoop_write() was broken for playback threads that do not\nuse a pipe sink.\n- output buffer size calculation was hard coded for stereo.\n- removed software volume that was implemented for PCM stereo\nformat only: the audio HAL has to implement volume if needed\nfor direct outputs.\n\nChange-Id: If211b4489be9af395435707b8cf0388cce1347b2\n"
    },
    {
      "commit": "b86f92d552c391f5d2471bd4f979135be2578578",
      "tree": "a7148fd9374e0b4d450792a82c3eadc8cf2f346d",
      "parents": [
        "24a2fd0113da60785ce5af5dd905f8aaf9e0f0a1",
        "e506084e1c22f8f1797b9dc3eb789a699efd45c3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 05 09:21:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 05 09:21:55 2012 -0700"
      },
      "message": "am e506084e: am ab9071b8: audioflinger: fix active sleep time calculation.\n\n* commit \u0027e506084e1c22f8f1797b9dc3eb789a699efd45c3\u0027:\n  audioflinger: fix active sleep time calculation.\n"
    },
    {
      "commit": "ab9071b8d1b375418eb797c9a790da71de644344",
      "tree": "637a5322ed80b9de92433ed9851302e45d78b727",
      "parents": [
        "399930859a75d806ce0ef124ac22025ae4ef0549"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 04 13:45:29 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 04 14:27:56 2012 -0700"
      },
      "message": "audioflinger: fix active sleep time calculation.\n\nWhen an audioTrack underruns, the audioflinger mixer thread\nsleeps for a certain time to give the app a chance to recover.\nThis time is based on the reported audio HAL latency.\nSome audio HALs implementing deep buffering have a variable\nlatency and this creates a problem if the sleep time is cached\nwhen the output stream is opened and not updated afterwards.\n\nThis change derives the active sleep time from the mix buffer\nframecount instead of the latency. This is more conservative\nbut works for variable latency.\n\nBug 6588525.\n\nChange-Id: Ia892fc290fe06f836565c3ae15f7a2ce026c88c6\n"
    },
    {
      "commit": "24a2fd0113da60785ce5af5dd905f8aaf9e0f0a1",
      "tree": "17424c05e4cdf34e2a680a760cc7285f99b1051f",
      "parents": [
        "5385b7b0f5d922ee38f8a54f11ee4462ef4b5e29",
        "f335f182e4b50249ac34b41da3566ddb016cc816"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 04 12:54:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 12:54:15 2012 -0700"
      },
      "message": "am f335f182: am 39993085: State queue dump\n\n* commit \u0027f335f182e4b50249ac34b41da3566ddb016cc816\u0027:\n  State queue dump\n"
    },
    {
      "commit": "5385b7b0f5d922ee38f8a54f11ee4462ef4b5e29",
      "tree": "d0a64b6a13c62f31b842e3d03565fd2ca5a57904",
      "parents": [
        "510ba8b812d88f62968a2c9b0b638fff6d99ee84",
        "2c00676cd34d78460ad610a4a4fd7a68544a7b7d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 04 08:30:39 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 04 08:30:39 2012 -0700"
      },
      "message": "am 2c00676c: am 1295bb4d: Fast track dumpsys\n\n* commit \u00272c00676cd34d78460ad610a4a4fd7a68544a7b7d\u0027:\n  Fast track dumpsys\n"
    },
    {
      "commit": "399930859a75d806ce0ef124ac22025ae4ef0549",
      "tree": "2471b70dedc0bb33f7310de8ae0e5622344c6f82",
      "parents": [
        "1295bb4dcff7b29c75cd23746816df12a871d72c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 31 13:40:27 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 04 08:27:25 2012 -0700"
      },
      "message": "State queue dump\n\nBug: 6591648\nChange-Id: Iac75e5ea64e86640b3d890c46a636641b9733c6d\n"
    },
    {
      "commit": "510ba8b812d88f62968a2c9b0b638fff6d99ee84",
      "tree": "e708da6b87725f7ab21ff2d0ef9e40514d471204",
      "parents": [
        "ad2c249a660f8ff81597dab00aaba1118b4a4342",
        "f45dc2f1751d9ac19826b99fab0b226f5c84570a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jun 03 14:52:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 03 14:52:15 2012 -0700"
      },
      "message": "am f45dc2f1: am bf0d21fb: Count underruns for normal tracks also\n\n* commit \u0027f45dc2f1751d9ac19826b99fab0b226f5c84570a\u0027:\n  Count underruns for normal tracks also\n"
    },
    {
      "commit": "1295bb4dcff7b29c75cd23746816df12a871d72c",
      "tree": "81cf673d36c8aaf3d9d51a9f372a8425ee5fa49b",
      "parents": [
        "bf0d21fb1310e8677caa53b90e8c3aecebc7fc13"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 31 07:43:43 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jun 03 14:49:11 2012 -0700"
      },
      "message": "Fast track dumpsys\n\nBug: 6591648\nChange-Id: I696f51c682e7233ba690d97da26012084989b412\n"
    },
    {
      "commit": "ad2c249a660f8ff81597dab00aaba1118b4a4342",
      "tree": "e3ab0c741db91c9bc57e5abef6db86090a3c4a95",
      "parents": [
        "35d7bfc359b3aa87ade92d1ab55c6992418cad48",
        "333505280fd86cf91bd97096bfa5a3fb524d84c1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jun 03 14:49:01 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jun 03 14:49:01 2012 -0700"
      },
      "message": "am 33350528: am 81787e56: Merge \"Was calculating measured warmup time wrong\" into jb-dev\n\n* commit \u0027333505280fd86cf91bd97096bfa5a3fb524d84c1\u0027:\n  Was calculating measured warmup time wrong\n"
    },
    {
      "commit": "bf0d21fb1310e8677caa53b90e8c3aecebc7fc13",
      "tree": "247c7705394820c7cb84899343bf7a9b834bbda6",
      "parents": [
        "81787e56f8f21407eade5accc50c6da39b8af9b2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 31 14:59:29 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jun 03 14:42:51 2012 -0700"
      },
      "message": "Count underruns for normal tracks also\n\nBug: 6591648\nChange-Id: Iff9cabe392bb2ce97062603adb9c9dc7aa4170d5\n"
    },
    {
      "commit": "81787e56f8f21407eade5accc50c6da39b8af9b2",
      "tree": "1d33021d28ad0c469e5a6adc98e7a7d097a65ad5",
      "parents": [
        "7dc5b165d4f98a2059eaf1c7fec20b3b5773cd4c",
        "04a4ca4217e9b30342d5865024c340013d7184e8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jun 03 14:40:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 03 14:40:55 2012 -0700"
      },
      "message": "Merge \"Was calculating measured warmup time wrong\" into jb-dev"
    },
    {
      "commit": "35d7bfc359b3aa87ade92d1ab55c6992418cad48",
      "tree": "ba0172953505aa2b83b51ad6e7af0c19b7c1372c",
      "parents": [
        "68edcad7d1619a648e0988ac40cc23e61200c2a2",
        "92e5ee9548542513791a70c81e0cd3fd70397269"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 01 11:11:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 01 11:11:25 2012 -0700"
      },
      "message": "am 92e5ee95: am 7dc5b165: Merge \"Fix fast track leak if out of normal track names\" into jb-dev\n\n* commit \u002792e5ee9548542513791a70c81e0cd3fd70397269\u0027:\n  Fix fast track leak if out of normal track names\n"
    },
    {
      "commit": "68edcad7d1619a648e0988ac40cc23e61200c2a2",
      "tree": "e66a86bc2e119c4724106723cf8116b64d06beca",
      "parents": [
        "a7daa16ee5c2ec9cbb1b4c9dd195cbf9bb0173f7",
        "a0991fea7b7047206ba8da573952d0c19d1bc4e7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 01 11:09:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 01 11:09:20 2012 -0700"
      },
      "message": "am a0991fea: am 0c22272f: Merge \"Pipe throttle based on requested frame count\" into jb-dev\n\n* commit \u0027a0991fea7b7047206ba8da573952d0c19d1bc4e7\u0027:\n  Pipe throttle based on requested frame count\n"
    },
    {
      "commit": "7dc5b165d4f98a2059eaf1c7fec20b3b5773cd4c",
      "tree": "fdbdaa7545921e7ec3079f39013c3943dd22a376",
      "parents": [
        "0c22272f1c97fd4b7e106030a1fd5e6b50680b61",
        "893a05479c96f911d02beb0443da3ed6508143a7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 01 11:06:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 01 11:06:28 2012 -0700"
      },
      "message": "Merge \"Fix fast track leak if out of normal track names\" into jb-dev"
    },
    {
      "commit": "0c22272f1c97fd4b7e106030a1fd5e6b50680b61",
      "tree": "0b27f53c60c0e20d3e06d0fa7eb1f8e04ff6697f",
      "parents": [
        "dadc0ddbfe309086801b479ddc91c55eeb2a9cbb",
        "820ba70df8ba595ae9055dfd34fdbfa32f70f14d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 01 11:04:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 01 11:04:43 2012 -0700"
      },
      "message": "Merge \"Pipe throttle based on requested frame count\" into jb-dev"
    },
    {
      "commit": "04a4ca4217e9b30342d5865024c340013d7184e8",
      "tree": "5e212501d1b93a5eedad01410dc863fef49ec258",
      "parents": [
        "dadc0ddbfe309086801b479ddc91c55eeb2a9cbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 01 10:49:51 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 01 10:51:34 2012 -0700"
      },
      "message": "Was calculating measured warmup time wrong\n\nBug: 6592923\nChange-Id: I980c6fc69d78c569147ea44ce33a7f8a41739c91\n"
    },
    {
      "commit": "a189097d0c96fac9afa86e644312ffbb0027b124",
      "tree": "6f1b57686b9a7763a7bb1208827f5c0e56bc9176",
      "parents": [
        "6db981c45a964f0d9df4c3451f064dff7954d78e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu May 31 11:18:52 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu May 31 15:52:14 2012 -0700"
      },
      "message": "Camera2: Switch to using ATRACE\n\nBug: 6243944\nChange-Id: Ib2aa1875c72b20ae764d9de95b4122b736738df2\n"
    },
    {
      "commit": "893a05479c96f911d02beb0443da3ed6508143a7",
      "tree": "ba9fba13c28e13b555313231bfb4cbaba39d81b1",
      "parents": [
        "83410a85993ad6f5f0c122036ff0bda42bf1d4f7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 30 10:32:06 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 31 14:39:20 2012 -0700"
      },
      "message": "Fix fast track leak if out of normal track names\n\nBug: 6580402\nChange-Id: I3ac7f012062c35833147f47ba822eb4bf532a824\n"
    },
    {
      "commit": "6db981c45a964f0d9df4c3451f064dff7954d78e",
      "tree": "44842725c8aed171117d6aa37ad059277f50068d",
      "parents": [
        "611f61998863d3a3ffae4e5f2b723b7319c59ddf"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon May 21 18:54:30 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu May 31 12:43:17 2012 -0700"
      },
      "message": "Camera service: Minimally functional preview for camera 2 devices.\n\n- Camera app starts up\n- Basic preview operation with defaults\n- Shutdown sequence is very minimal\n\nBug: 6243944\n\nChange-Id: I67673b7c1fc08956d218d99f9171e74a7a82bf07\n"
    },
    {
      "commit": "611f61998863d3a3ffae4e5f2b723b7319c59ddf",
      "tree": "05a534a25b5e52f1a61f79eca67c329dab327ac6",
      "parents": [
        "a383a7e03686d746612007e58a894779ae63e994"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu May 31 12:28:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 31 12:38:53 2012 -0700"
      },
      "message": "Add basic Camera2Client dump, minor fixes to CameraService dump.\n\nBug: 6243944\nChange-Id: I52caaa6146050c38976768e99b0eeea1d13a3f51\n"
    },
    {
      "commit": "820ba70df8ba595ae9055dfd34fdbfa32f70f14d",
      "tree": "e97d469bcac8dc241ed7f6690db31035a6f1493b",
      "parents": [
        "4364d2d1fd712faed7e839b58fedba3f48f626d0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 30 16:34:17 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 30 17:39:45 2012 -0700"
      },
      "message": "Pipe throttle based on requested frame count\n\nNow does throttling based on the requested frame count, but\nstill permits overfilling pipe up to the rounded-up frame count.\nAlso still uses the larger frame count for non-blocking arithmetic.\n\nBug: 6585323\nChange-Id: Ic2420a071419905524a14c22ebe1ce0e32d70a9d\n"
    },
    {
      "commit": "529e888738a91ca70cbdeeabd982f8fb2947780c",
      "tree": "09558a3153e26e706ac69b46f1b1ed9e6db04253",
      "parents": [
        "c65abc64bff11b194a0b416ec66e44f5ed957dcf",
        "8c07f7599a757fe51dc54253c480067cf01f13d3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 30 14:13:01 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 30 14:13:01 2012 -0700"
      },
      "message": "am 8c07f759: am 3bdb4fbf: Merge \"audioflinger: fix effect problem during underrun\" into jb-dev\n\n* commit \u00278c07f7599a757fe51dc54253c480067cf01f13d3\u0027:\n  audioflinger: fix effect problem during underrun\n"
    },
    {
      "commit": "3bdb4fbfc6730b6edc0b1ee980141574ed54ed8d",
      "tree": "0629fb88ed24815990afca3e04f4821e7b974336",
      "parents": [
        "cc9833b5db0e96f12daddb90a747fd146627377d",
        "91b14c4c144d0cc957a427cffc02ba10d0615677"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 30 14:07:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 30 14:07:38 2012 -0700"
      },
      "message": "Merge \"audioflinger: fix effect problem during underrun\" into jb-dev"
    },
    {
      "commit": "91b14c4c144d0cc957a427cffc02ba10d0615677",
      "tree": "dd7c1027319b6783cdc493bf4d37afb2537a2879",
      "parents": [
        "91b0d43a27b3a1cebd75270f953f3fb9fa4f2047"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 30 12:30:29 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 30 12:38:27 2012 -0700"
      },
      "message": "audioflinger: fix effect problem during underrun\n\nWhen an audio track underruns, the input buffer of the\ncorresponding effect chain (if any) must be cleared, otherwise\naudio from previous mixer run will be fed again to the effect process\nfunction.\n\nBug 6551652.\n\nChange-Id: I5cd02196745f756c85af82d6937e9dc54369b37f\n"
    },
    {
      "commit": "f69c70ded4316ea3ee504ac779bd024433ed4ef7",
      "tree": "35a9f7b23fff4fb40321cf4c009d268bed27bea8",
      "parents": [
        "dd72c3017aef65d099460cfc6c0402bc2ba85bc3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sun May 20 15:59:14 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 29 13:47:50 2012 -0700"
      },
      "message": "Camera service: Initialization for camera2 clients and devices\n\n- Refactor initialization code to hide device type from CameraService\n- Add metadata queue class to Camera2Device\n- Initialization of Camera2Device, Camera2Client\n- Conversion from HAL2 device static metadata to camera API\n  parameters.\n\nBug: 6243944\nChange-Id: I524145b45438e906d8493dae202704ce8f090aeb\n"
    },
    {
      "commit": "09cf462a265c3e9bc84c518cc75d77a5b1d69012",
      "tree": "9d3ae70459a1a6bf1aa6d3377e3f6dd1413b055b",
      "parents": [
        "6350e21e8947398a94402bc2969d13d407fbc3fb"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 29 11:17:48 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 29 11:28:51 2012 -0700"
      },
      "message": "DO NOT MERGE: Minimal fix for takePicture/previewCallback deadlock\n\n- Caused by already held lock in camera service\n\n- Introduce one more lock, mICameraLock, to control access to camera\n  client through ICamera binder interface.\n\n- mLock is released before calling HAL takePicture, allowing HAL\n  callbacks to access camera client during takePicture processing.\n\nBug: 5804701\nChange-Id: Ibcef4857a2c844c964afefa70f9cdccdd0a55fd0\n"
    },
    {
      "commit": "6d80297a55ab12759ee00b7f99fa97584b430da0",
      "tree": "a936d42443306cc034a709e77397873fd2a0d611",
      "parents": [
        "3545690e39ff7033c906d12d8bb77a06013d3f3c",
        "0cc6257030d3e6c649ea3ad807ecb9327ceb5b3e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 24 11:45:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 24 11:45:25 2012 -0700"
      },
      "message": "am 0cc62570: am f436fdcf: audioflinger: change session check in createTrack.\n\n* commit \u00270cc6257030d3e6c649ea3ad807ecb9327ceb5b3e\u0027:\n  audioflinger: change session check in createTrack.\n"
    },
    {
      "commit": "f436fdcf93bd417fd3c9d2a8b19fd221d894b5e3",
      "tree": "930951e6490510ef9eeab7210c8f729950783bd5",
      "parents": [
        "e737cda649acbfa43fc1b74612a83f2fac9aa449"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 24 11:07:14 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 24 11:07:14 2012 -0700"
      },
      "message": "audioflinger: change session check in createTrack.\n\nDo not refuse to create a track on an output thread if the same session\nis present on another thread. It is now possible that two tracks\nwith the same session ID are on different threads if one can use deep\nbuffering and the other can\u0027t.\n\nIn this case, move effects attached to this session to the output\nthread ion which the new track is created.\n\nBug 6530324.\n\nChange-Id: I9019b3ee382e374c89d2319033afcfa7f886e4c4\n"
    },
    {
      "commit": "852fca99e25db8d2180c2622ca55fca676490a08",
      "tree": "3f17c0f378e0d191d4ad961d3421ef6809a3f7e6",
      "parents": [
        "a6d7da4e897d5201423f7c205d48c1c1a4a07e17"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 24 08:44:00 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 24 08:44:48 2012 -0700"
      },
      "message": "Remove log spam for fast track denied\n\nBug: 6531054\nChange-Id: Iedf58e810a157aae88b5900da27c81054c437058\n"
    },
    {
      "commit": "90886550eaf41e2255c99065667ac40b812b1c1b",
      "tree": "6c4a9b7f9c3529b84650da5ef20597e1d3942fd7",
      "parents": [
        "4417ec0bed2575853b3ef904b105e954e3e5756d",
        "cf0bf78c28cf25c30c42c784c1dc5bc094e6035d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 22 21:15:46 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 22 21:15:46 2012 -0700"
      },
      "message": "am cf0bf78c: am e737cda6: audioflinger: refine latency latency calculation.\n\n* commit \u0027cf0bf78c28cf25c30c42c784c1dc5bc094e6035d\u0027:\n  audioflinger: refine latency latency calculation.\n"
    },
    {
      "commit": "e737cda649acbfa43fc1b74612a83f2fac9aa449",
      "tree": "01ac3aaf0b68473c7e21c3056547b87a54f89f0f",
      "parents": [
        "8d9846c0693b7651b243f0161caa86be506f764a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 22 18:55:44 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 22 19:06:51 2012 -0700"
      },
      "message": "audioflinger: refine latency latency calculation.\n\nThere is an audio pipe between the normal mixer output and the fast\nmixer to cope for scheduling delays and buffer size difference.\nThis pipe depth was not taken into account in latency calculation.\n\nAdding the pipe contribution to the latency significantly improves A/V sync.\n\nBug 6520569.\n\nChange-Id: I5584908e8aa8a02170eb38b22b4370eea800a235\n"
    },
    {
      "commit": "ea1151ac33f9327a44a6c7b80c1c15586c0f380c",
      "tree": "c3e1fe65af31865c0c9fdde3cc693f7276c546ef",
      "parents": [
        "5f325ffb086e86f7f3ef5ff84db2ba156d6514af",
        "25a25ebdd1cca5fa42ef20d4d55c3e49da294380"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 22 14:20:38 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 22 14:20:38 2012 -0700"
      },
      "message": "am 25a25ebd: am 67e54402: Merge \"Keep a copy of most recent audio played\" into jb-dev\n\n* commit \u002725a25ebdd1cca5fa42ef20d4d55c3e49da294380\u0027:\n  Keep a copy of most recent audio played\n"
    },
    {
      "commit": "2c19f57f03a6fda28d763c8c65ac5740977e33ec",
      "tree": "3ae644b1ab620e27d90ea1cfc5b9192d0145fcf7",
      "parents": [
        "631d31a4002091503acf11d9aa6c59b3b6693266",
        "11a4b98d26dbce03ed2e97f4b1121995a09ed519"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 21 14:10:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 21 14:10:49 2012 -0700"
      },
      "message": "am 11a4b98d: am 7c2af29e: Merge \"Add throttle to have pipe fill at more stable rate\" into jb-dev\n\n* commit \u002711a4b98d26dbce03ed2e97f4b1121995a09ed519\u0027:\n  Add throttle to have pipe fill at more stable rate\n"
    },
    {
      "commit": "0dedfa41684a88440b71a81fa1f5b4215eb5c75e",
      "tree": "44db7b4d9f8f5cf39954f11aa07d41bf0fe4f8a1",
      "parents": [
        "c2e70e40d8459f9e0094614e7c2e780afbbbd386",
        "4e11a1ffa708965cf91ea210daa5675a82149213"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 21 14:10:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 21 14:10:48 2012 -0700"
      },
      "message": "am 4e11a1ff: am 874a897f: Merge \"systrace for audio\" into jb-dev\n\n* commit \u00274e11a1ffa708965cf91ea210daa5675a82149213\u0027:\n  systrace for audio\n"
    },
    {
      "commit": "aaf249522ab16636afe23c65e829e1ee31ff03c3",
      "tree": "ab52d144acea8034df1d099ee8dc423c2c91fa3e",
      "parents": [
        "aa014234be3c99f8de5ade596f54d674f7cf509e",
        "2123ae8c171250950e5e4c51ec5afe6e61760e38"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 21 12:42:34 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 21 12:42:34 2012 -0700"
      },
      "message": "am 2123ae8c: am 55247760: Merge \"Display pipe underrun counters in dumpsys\" into jb-dev\n\n* commit \u00272123ae8c171250950e5e4c51ec5afe6e61760e38\u0027:\n  Display pipe underrun counters in dumpsys\n"
    },
    {
      "commit": "aa014234be3c99f8de5ade596f54d674f7cf509e",
      "tree": "fb53ea50931582c69b715a1835ec7026514f3bda",
      "parents": [
        "75b43f13e1bbf4f8462b97b7cc01ff08a1f924ce",
        "06d9729b00e9157440ea485faf2ea38e6d2eb23f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 21 12:42:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 21 12:42:33 2012 -0700"
      },
      "message": "am 06d9729b: am c059bd42: Skip bad kHz values, and display them accurately\n\n* commit \u002706d9729b00e9157440ea485faf2ea38e6d2eb23f\u0027:\n  Skip bad kHz values, and display them accurately\n"
    },
    {
      "commit": "fbae5dae5187aca9d974cbe15ec818e9c6f56705",
      "tree": "101ef33da2a18e0cb1c70a0e1ae085450dc60396",
      "parents": [
        "cd8a36fdc49a823f78d45e8e1a464dc261553b26"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 21 09:17:20 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 21 12:36:06 2012 -0700"
      },
      "message": "Keep a copy of most recent audio played\n\nChange-Id: I6b2f97881c39998a2fae9ab79d669af6c0a37e94\n"
    },
    {
      "commit": "6d8aabe8a3be1ac0789d00b82c3ca8b81381f5ab",
      "tree": "1f621b7f3f61ede29474f1d2c3802ecffa1df4c7",
      "parents": [
        "874a897f09dc7b06679bb273506d7e0fa0152220"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 18 10:47:28 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 18 11:44:27 2012 -0700"
      },
      "message": "Add throttle to have pipe fill at more stable rate\n\nChange-Id: Ibff9ab62764e2acd04518a4a00e25f19e28aff4a\n"
    },
    {
      "commit": "61ab9f93315ea817cd1ac110e2a95da4dab6b4d1",
      "tree": "595ab34a38c8ece6155608553f7cba196a036786",
      "parents": [
        "44631c2939369e66df7021b1f359ded319971d26"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu May 17 10:30:54 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu May 17 16:58:04 2012 -0700"
      },
      "message": "Camera service: Add skeleton support for camera2 devices.\n\n- Add Camera2Client, which maps the current android.hardware.Camera\n  API to the new camera2 semantics\n- Add Camera2Device, a C++ wrapper for the HAL camera 2 device\n\nNo functionality besides create/destroy; all client methods return\nerror or null.\n\nBug: 6243944\nChange-Id: I6bd5136fa1efd8279b8cd2d9847d9b0bb2862294\n"
    },
    {
      "commit": "99c99d00beb43b939dedc9ffb07adb89f6a85ba5",
      "tree": "a93aeb409fa2399bf552ea901793514f0cf79f6b",
      "parents": [
        "552477608b137fb66af126655c6865207a82d888"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 14 16:37:13 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 17 16:29:07 2012 -0700"
      },
      "message": "systrace for audio\n\nTrace fast track buffer fill status for underruns etc.\n\nMove the definition of macro to Android.mk.\n\nNo overhead if disabled.\n\nChange-Id: If0e83e21b61b059ca38f543f8a6ffb58e08c79ee\n"
    },
    {
      "commit": "552477608b137fb66af126655c6865207a82d888",
      "tree": "a0c3c8704d8a5dffc900a01255acd63e648e15c4",
      "parents": [
        "c059bd4246c1b3944965be921e5b334d51cd236c",
        "88cbea8a918bbaf5e06e48aadd5af5e81d58d232"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 17 15:47:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 15:47:18 2012 -0700"
      },
      "message": "Merge \"Display pipe underrun counters in dumpsys\" into jb-dev"
    },
    {
      "commit": "88cbea8a918bbaf5e06e48aadd5af5e81d58d232",
      "tree": "add79cd641d5e2ab4be79f49ca63680fa0e86962",
      "parents": [
        "e00e0485b0aa1e432be8c639da0eb5285942777b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 15 07:39:27 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 17 15:04:31 2012 -0700"
      },
      "message": "Display pipe underrun counters in dumpsys\n\nThe normal mixer writes it\u0027s submix to a pipe, which is read by the fast\nmixer.  Now dumpsys media.audio_flinger display the raw underrun counters\nwhen fast mixer tries to pull from the pipe but doesn\u0027t get enough frames.\n\nChange-Id: I72505f149f9e12802784da654a651d43734e1c79\n"
    },
    {
      "commit": "c059bd4246c1b3944965be921e5b334d51cd236c",
      "tree": "d1c5ee08f63985bc15c2d4ad9025ee6631667663",
      "parents": [
        "e00e0485b0aa1e432be8c639da0eb5285942777b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 14 17:41:09 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 17 15:01:45 2012 -0700"
      },
      "message": "Skip bad kHz values, and display them accurately\n\nOne device reports zero CPU kHz occasionally, so skip those values.\n\nPreserve accuracy of the low-order 4 bits of the the CPU frequency.\n\nChange-Id: I7d934f697412277462464fca82d112d0306a214e\n"
    },
    {
      "commit": "44631c2939369e66df7021b1f359ded319971d26",
      "tree": "42029a0db4f3ee1791678e13842c6f4bda61bc24",
      "parents": [
        "ba3c33da6a8ecda13e584c617f3ae9a06a27fbaf",
        "5e08d60617fc63c2e41f9069ff89f5c00db2617d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu May 17 10:55:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 10:55:43 2012 -0700"
      },
      "message": "Merge \"Break out CameraClient from CameraService.\""
    },
    {
      "commit": "5e08d60617fc63c2e41f9069ff89f5c00db2617d",
      "tree": "31a5cd4e2d204973c265fc0efc07e77d5c5720d3",
      "parents": [
        "8ceaedfe124f6c9e51610a7dc2270579f8264fa7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed May 16 14:59:25 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed May 16 16:17:06 2012 -0700"
      },
      "message": "Break out CameraClient from CameraService.\n\nTo allow for different low-level implementations of the current camera\nAPI, the Client class inside CameraService has to be inheritable. This\nchange breaks it up into the common section accessed by the camera\nservice, and the full implementation for camera device HAL version 1.\n\nThe full implementation is moved out to CameraClient.h/.cpp.\n\nThere are no functionality changes, just code reorganization.\n\nBug: 6243944\nChange-Id: I8a79b31a3ae3617198dc6bb5576a9f2e2d9c95de\n"
    },
    {
      "commit": "ba3c33da6a8ecda13e584c617f3ae9a06a27fbaf",
      "tree": "cea6d0cfb19ce358b809d0639ddaf90313d194e6",
      "parents": [
        "8ceaedfe124f6c9e51610a7dc2270579f8264fa7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed May 16 15:34:52 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed May 16 15:39:52 2012 -0700"
      },
      "message": "Remove old fake camera.\n\nThe fake camera implementation was moved to the emulator a while back.\nNo reason to keep around this old broken code that\u0027s not used\nanywhere.\n\nChange-Id: I5dd87f766821d6e85c5eefb7122047d4ec4a3225\n"
    }
  ],
  "next": "9017e5e0ebad9664bb7b6f2057e5bb29c852c64f"
}
