)]}'
{
  "log": [
    {
      "commit": "ff2116e805a3d72cf8bdb07fb47554b93faa93fa",
      "tree": "16c01dbc7b0f194415e45d63b0ef14c67250a3ed",
      "parents": [
        "d9f493ebcd1830c76d7b1782e64c7ba9ad8ab4bd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu May 14 10:51:23 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri May 15 16:01:20 2015 -0700"
      },
      "message": "Enable clang compilation.\n\nPrevious clang/llvm bug was fixed.\n\nBUG: 18373866\nChange-Id: I10888d0bc1cf8f621c719a705b1f77ff0d0ecca5\n(cherry picked from commit 1ab4ff2355e934517751e40573e4163cb49b1676)\n"
    },
    {
      "commit": "d9f493ebcd1830c76d7b1782e64c7ba9ad8ab4bd",
      "tree": "1d075b113943a8e3a032b9162100f05490213250",
      "parents": [
        "69dce3343ffe33d2ba60ab4c6755953a7ec96899",
        "db4c031f518ae5806af73756273ff32cd8d0e4f8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 18:42:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 18:43:00 2015 +0000"
      },
      "message": "Merge \"Update sampling rate to 192kHz for devices\" into mnc-dev"
    },
    {
      "commit": "69dce3343ffe33d2ba60ab4c6755953a7ec96899",
      "tree": "71e7ceb677e83c6496e4d87bc578d3203858e1b9",
      "parents": [
        "d0e25a2529584b07e4fe3544f973c6b0ebda7fc3",
        "078538cfc6c4682889ed52de460d29c0d15bb9eb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue May 12 17:40:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 17:40:18 2015 +0000"
      },
      "message": "Merge \"Work around bug in offload driver\" into mnc-dev"
    },
    {
      "commit": "078538cfc6c4682889ed52de460d29c0d15bb9eb",
      "tree": "80c1fcdd039f5ab2481f6fb93077176d6d9331d8",
      "parents": [
        "3af8a321d06b3ee59afe159479c58e6b549c7b8f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue May 12 09:17:57 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue May 12 10:35:39 2015 -0700"
      },
      "message": "Work around bug in offload driver\n\nThere is a bug in the offload driver that causes the last offload buffer(s)\nto be dropped unless the device is on power or holding a wake lock.\nTo avoid truncated playback, we now hold a wake lock during the drain phase\nof offloaded playback.\n\nBug: 19928717\nChange-Id: I8df22e965ec791448aa5d9b74e743f48ef886fc4\n"
    },
    {
      "commit": "d0e25a2529584b07e4fe3544f973c6b0ebda7fc3",
      "tree": "e59d9497976b71d5860f5939a7e4f6f9e7e7a0ee",
      "parents": [
        "28e8ef72dab287af59663b89b12507e43f760701",
        "022ed72e650f756288492ac7a10a7b41e0b14f82"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue May 12 17:10:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 17:10:04 2015 +0000"
      },
      "message": "Merge \"mediaresourcemanager: change resource manager service log to use ring buffer.\" into mnc-dev"
    },
    {
      "commit": "db4c031f518ae5806af73756273ff32cd8d0e4f8",
      "tree": "62f9e0541acccc3acacf808d2a3cdad130eb819b",
      "parents": [
        "18aa27016a94d0fee243637a80fd0741f89e08f2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 08:46:52 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 09:30:51 2015 -0700"
      },
      "message": "Update sampling rate to 192kHz for devices\n\nChange-Id: I0a83206be51d7ae18ccf85b94b2127356307be69\n"
    },
    {
      "commit": "28e8ef72dab287af59663b89b12507e43f760701",
      "tree": "00aa103533ce393977def221c5a642716ef0fec1",
      "parents": [
        "7e31a87177740d06c4a1bc81369d3cfb9e013ad9"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon May 11 19:21:31 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 12 03:47:31 2015 +0000"
      },
      "message": "Fail gracefully when camera app op is not enabled.\n\nChange-Id: I0c7c1dca1c0966efaf30bcfe12636953683712ab\n"
    },
    {
      "commit": "7e31a87177740d06c4a1bc81369d3cfb9e013ad9",
      "tree": "396858f5a823e9e13313dc91c820a2fe77cf8aed",
      "parents": [
        "fedef1384d5ff758285fb19161a0348e1e32ab3f",
        "280405a138a0068694f3c39b4290f510173133d9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 12 02:20:24 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 02:20:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Add camera app op - camera\"\" into mnc-dev"
    },
    {
      "commit": "280405a138a0068694f3c39b4290f510173133d9",
      "tree": "691b6bc4e9a5011b38233f01df9e0486d9ce759a",
      "parents": [
        "32fa6d0e65dbf956e253a1006e9419dce2fe75c9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 12 02:19:27 2015 +0000"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue May 12 02:19:27 2015 +0000"
      },
      "message": "Revert \"Add camera app op - camera\"\n\nThis is not needed duplication of work\n\nThis reverts commit 32fa6d0e65dbf956e253a1006e9419dce2fe75c9.\n\nChange-Id: I2c81b0dacb2ed99c408c79c1f9e22a4baa564494\n"
    },
    {
      "commit": "fedef1384d5ff758285fb19161a0348e1e32ab3f",
      "tree": "659818942c7df772681839a0fbdc0aefe6b69c0e",
      "parents": [
        "af49160aa75d4e1750f3ed56b812ec9cc448fa46",
        "18aa27016a94d0fee243637a80fd0741f89e08f2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 00:36:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 00:36:07 2015 +0000"
      },
      "message": "Merge \"Support channel index masks for output hal\" into mnc-dev"
    },
    {
      "commit": "af49160aa75d4e1750f3ed56b812ec9cc448fa46",
      "tree": "28be21137eef5113692cbf9f6ab904c7f476b1c4",
      "parents": [
        "1ea0262553d7b88849c6392585e7173d8dc4bde6",
        "d1abb8f94d7ed749ee959655db1e07d26dad074d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 00:30:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 00:30:52 2015 +0000"
      },
      "message": "Merge \"Allow 8 channels in RecordThread\" into mnc-dev"
    },
    {
      "commit": "022ed72e650f756288492ac7a10a7b41e0b14f82",
      "tree": "6c07c47b9b3c2d0b68eb9b989a879065a96f15bc",
      "parents": [
        "9ba21b9418d10ddcc39f08901e24fbf43d82b2bc"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon May 11 15:15:09 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon May 11 15:16:54 2015 -0700"
      },
      "message": "mediaresourcemanager: change resource manager service log to use ring buffer.\n\nmove the ring buffer implementation from libcameraservice to media include.\n\nalso add line prefix support to the service log.\n\nBug: 20637674\nChange-Id: Ib6b32f31abe92c42644ef7012f1e3d46220ccfbd\n"
    },
    {
      "commit": "c36a8897ff877f4c5b2e0580830faef8b87dd74a",
      "tree": "3bc502e47b787ba704de74d5cd08c77ac64e3e04",
      "parents": [
        "804a77d1045c6c4023f73a0975a09025b2e8eef2"
      ],
      "author": {
        "name": "Ravi Kumar Alamanda",
        "email": "ralama@codeaurora.org",
        "time": "Fri Apr 24 16:35:49 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon May 11 15:06:35 2015 -0700"
      },
      "message": "audiopolicy: Use AUDIO_OUTPUT_FLAG_TTS for TTS stream\n\nUse AUDIO_OUTPUT_FLAG_TTS by default for TTS stream to see\nif the HW supports a dedicated output for the same. If not,\nfallback to primary output as it is done currently.\n\nChange-Id: Ifb2ef7066e75c61fe4c1b9783c12627386a00ea5\n"
    },
    {
      "commit": "badb2c466b9a9e84ad1cd794c52052a436b661fa",
      "tree": "22774d5c856e0d3e6be731ad84abc691c852a4bf",
      "parents": [
        "ef2c7aa096d95bbc74a75078c07f300fb2d94172",
        "43412fc79ceda964cf9d16e3b4c563849db57d3a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 09 00:34:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 09 00:34:23 2015 +0000"
      },
      "message": "Merge \"AudioMixer: fix for volume ramp in float mode\" into mnc-dev"
    },
    {
      "commit": "ef2c7aa096d95bbc74a75078c07f300fb2d94172",
      "tree": "5d603278cc8934d3aa7a5826e09ea0349ad432c7",
      "parents": [
        "70f0d62d5f9b81d53f4ca28cd5dbb39ca0a2cdc2",
        "1924c9b12eae39d074235a3ec25770795d220157"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 09 00:34:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 09 00:34:15 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable full floating point path in AudioMixer\"\"\" into mnc-dev"
    },
    {
      "commit": "43412fc79ceda964cf9d16e3b4c563849db57d3a",
      "tree": "98c5f3ccebfd54d45ed631256b47febfe03c3505",
      "parents": [
        "70c75d8c15707d5eade38fe3e622f8500c29556b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 16:14:36 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 16:29:24 2015 -0700"
      },
      "message": "AudioMixer: fix for volume ramp in float mode\n\nBug: 20912450.\nBug: 19952126.\nChange-Id: I1ff3c3f4c0dd673bbbc17ce8da14d446fdb7e8a8\n"
    },
    {
      "commit": "1924c9b12eae39d074235a3ec25770795d220157",
      "tree": "2db493f9d8a10aece6aded5af55afb782f2bb389",
      "parents": [
        "5dcaebbea5dca62ca55d6137777caa67fc757dd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 23:18:07 2015 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 23:18:07 2015 +0000"
      },
      "message": "Revert \"Revert \"Enable full floating point path in AudioMixer\"\"\n\nThis reverts commit 5dcaebbea5dca62ca55d6137777caa67fc757dd6.\n\nChange-Id: I8bfc668baf53dc03a9516c50e2a4d625ec767d0a\n"
    },
    {
      "commit": "70f0d62d5f9b81d53f4ca28cd5dbb39ca0a2cdc2",
      "tree": "7899aff1381807be15a46d38e9f653e38ba06ce8",
      "parents": [
        "8bae3aa349f9d03934a170d3bafbf0008bfc3a9d",
        "f6870aefc5e31d4220f3778c4e79ff34a61f48ad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 21:17:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 21:17:44 2015 +0000"
      },
      "message": "Merge \"audio flinger: fix fuzz test crash\" into mnc-dev"
    },
    {
      "commit": "f6870aefc5e31d4220f3778c4e79ff34a61f48ad",
      "tree": "6943c86c7143ffc113d91b8ed7a34d75ab183434",
      "parents": [
        "70c75d8c15707d5eade38fe3e622f8500c29556b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 10:50:03 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 13:23:51 2015 -0700"
      },
      "message": "audio flinger: fix fuzz test crash\n\nClear output stream pointer in duplicating thread\nwhen the main output to which it is attached is closed.\n\nAlso do not forward master mute and volume commands to\nduplicating threads as this is not applicable.\n\nAlso fix logic in AudioFlinger::primaryPlaybackThread_l()\nthat could accidentally return a duplicating thread.\nThis never happens because the primary thread is always\nfirst in the list.\n\nBug: 20731946.\nChange-Id: Ic8869699836920351b23d09544c50a258d3fb585\n"
    },
    {
      "commit": "9ba21b9418d10ddcc39f08901e24fbf43d82b2bc",
      "tree": "363f0598085516cf16ddd4ee5df2d1043e2955da",
      "parents": [
        "ba21a9ac7b6b76f85681cfb5e756e947c0ae3b53"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 21 14:23:06 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri May 08 09:51:26 2015 -0700"
      },
      "message": "libstagefright: config resource manager with secure codec co-existing policy.\n\nBug: 19620911\nChange-Id: I0d729782c1622f23e9c37b7a9231e58e3f807470\n"
    },
    {
      "commit": "7fcda0f1678b3efd2b3d965b38ba334c3e5f5329",
      "tree": "d3a0c3809e5b57248f1117f18a383d9fbd915b61",
      "parents": [
        "f9d108cec6710dd35baaa8573eb6d38161240b98",
        "a9b84966942fc4e7ab100376a4c5c41271fede8e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri May 08 06:05:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 06:05:01 2015 +0000"
      },
      "message": "Merge \"Kill a new user of stlport.\" into mnc-dev"
    },
    {
      "commit": "cf85459e2f8cb2873fffc4e8fd05a5ba6c149972",
      "tree": "8ea267c2a6ea647dfb5ff0509f70143abd2c342f",
      "parents": [
        "22bd7a63667893255b7b7714246084d0cf654cb8",
        "a8ec8fcf6982ef158daf897faaab3e45285d0bf1"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri May 08 03:20:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 03:20:15 2015 +0000"
      },
      "message": "Merge \"mediaresourcemanager: add ServiceLog to track the calling history for dumpsys.\" into mnc-dev"
    },
    {
      "commit": "6ff06612638a13faa85c6219d42a9c4b645003d9",
      "tree": "5e9c9d52a5c51491e8d88abfe77cc9b31c4a0dec",
      "parents": [
        "e5e9a0df67ae23d16bf48e4a8fd652684434a3b6",
        "5dcaebbea5dca62ca55d6137777caa67fc757dd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 23:36:02 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 23:36:02 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable full floating point path in AudioMixer\"\" into mnc-dev"
    },
    {
      "commit": "5dcaebbea5dca62ca55d6137777caa67fc757dd6",
      "tree": "47925f1faeaf80e4c257da583c390d897872a159",
      "parents": [
        "49822fe2aa38cab4a8cdf2221480181ae7a5f9d0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 15:35:42 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 15:35:42 2015 -0700"
      },
      "message": "Revert \"Enable full floating point path in AudioMixer\"\n\nThis reverts commit 5b8fde71e08f57478ef25d040fc5f66294011ac6.\n\ntemporary revert while we investigate.\n\nBug: 20912450.\n"
    },
    {
      "commit": "a9b84966942fc4e7ab100376a4c5c41271fede8e",
      "tree": "598c0914fe1bdb8bbdd96ca75e3fdff8b7497cac",
      "parents": [
        "f52b2284405ec1d8941334718f580157417f9d60"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 12:29:05 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 21:52:46 2015 +0000"
      },
      "message": "Kill a new user of stlport.\n\nBug: http://b/15193147\nChange-Id: I20d21a040f0c2c6c291053fe02fdf82e33ed56a0\n(cherry picked from commit 1b5a73358b72b8ff1bee05cc44d94b47b73ede44)\n"
    },
    {
      "commit": "a8ec8fcf6982ef158daf897faaab3e45285d0bf1",
      "tree": "fe427de81c8f25b5dfd56406a8ed5aa7381a8045",
      "parents": [
        "78d9a2e77e8ee153945d93624b01f0525f979299"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu May 07 13:58:22 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu May 07 14:10:19 2015 -0700"
      },
      "message": "mediaresourcemanager: add ServiceLog to track the calling history for dumpsys.\n\nBug: 20637674\nChange-Id: I9d74d98f8eb729a8681877f86419aa2c979f3b7c\n"
    },
    {
      "commit": "5da9f8450c8d91ec91b79a74542f997a4bbb2f27",
      "tree": "7402598de498ba1dfd93c0ebcfef7ca45f6a35a3",
      "parents": [
        "d975e98aac096b8b0ed600f39c18630ba234ef7d",
        "ed0412ed78321bf9d35537626e33115862f7c805"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu May 07 20:24:48 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 20:24:49 2015 +0000"
      },
      "message": "Merge \"Camera2: allow mixing regular/reprocess requests\" into mnc-dev"
    },
    {
      "commit": "49822fe2aa38cab4a8cdf2221480181ae7a5f9d0",
      "tree": "2db493f9d8a10aece6aded5af55afb782f2bb389",
      "parents": [
        "831352e926c2896996df285b343cc06f39053499",
        "7288ab87a7aa730ffe97d7dc7e118123107bfcea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 15:51:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 15:51:46 2015 +0000"
      },
      "message": "Merge \"audio policy: clarify use of mName field for audio devices\" into mnc-dev"
    },
    {
      "commit": "7288ab87a7aa730ffe97d7dc7e118123107bfcea",
      "tree": "c12aa50cbf887e27579bdf4bb79d170f51dcebf1",
      "parents": [
        "464c7e085b68dd63ce8cdbb2c389d3827f8d586a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 18:44:02 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 18:44:02 2015 -0700"
      },
      "message": "audio policy: clarify use of mName field for audio devices\n\nThe audio port field mName was used for two different purposes\nwhich caused a problem when exposing this information at the SDK API.\n\nCreate a new \"mTag\" field storing the audio_policy.conf device tag\nif needed.\nField \"mName\" is now used to store any additional name associated to\na given device when available (e.g Manufacturer and model name for a USB device).\n\nChange-Id: I17fa872e4a3a2e1b7cbb807c6f72e095a8a2c9c5\n"
    },
    {
      "commit": "5603d28707ef0f19b2b915756809424698e93d9c",
      "tree": "311bb61b9d80ba3ec231a8c22bc7d44d1518b6ab",
      "parents": [
        "7b4df6a3c4016d3f4f481af46d4e0d19fa48ad06"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 04 17:14:15 2015 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 06 21:09:45 2015 +0000"
      },
      "message": "Make header functions \"inline\" to avoid warning when unused.\n\nChange-Id: Iefac44f3c0e1c3fd4b19833d9692744100f92e00\n(cherry picked from commit 5e9febef197a9852c833a0aedc6bfee179c4ae9e)\n"
    },
    {
      "commit": "d7ab7afa57ed1fa6fb9c4ce18ea0df3ec939c067",
      "tree": "ed0fd03c176ba5ae421795f4665d47faec653c52",
      "parents": [
        "eb58c6d9ee8eac81864aaecb38a1831014ebf152",
        "296fb13dd9b5e90d6a05cce897c3b1e7914a478a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 17:51:41 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 17:51:42 2015 +0000"
      },
      "message": "Merge \"Implement audio device callback\" into mnc-dev"
    },
    {
      "commit": "18aa27016a94d0fee243637a80fd0741f89e08f2",
      "tree": "35a0e32b3d526daba44572ff9516076ad43d4974",
      "parents": [
        "d1abb8f94d7ed749ee959655db1e07d26dad074d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 23:48:38 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 10:28:06 2015 -0700"
      },
      "message": "Support channel index masks for output hal\n\nChange-Id: Ib3e61ff6faf91c71b85102b5d77f90f124c08220\n"
    },
    {
      "commit": "296fb13dd9b5e90d6a05cce897c3b1e7914a478a",
      "tree": "d3ed4e6ff2902da6f556d038c71605c091b75f64",
      "parents": [
        "32fa6d0e65dbf956e253a1006e9419dce2fe75c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 11:38:42 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 10:14:42 2015 -0700"
      },
      "message": "Implement audio device callback\n\nAdd class AudioSystem::AudioDeviceCallback notifying\nAudioSystem clients upon device selection change on a given\ninput or output thread.\nMaintain a list of installed callback per I/O handle in AudioSystem\nand call registered callbacks when an OPEN of CONFIG_CHANGED event\nis received on IAudioFlingerClient::ioConfigChanged().\nAdd methods to AudioTrack and AudioRecord to add and remove device\nchange callbacks.\nAdd methods to AudioTrack and AudioRecord to query currently selected\ndevice.\nioConfigChanged() events now convey the audio patch describing\nthe input or output thread routing.\n\nFix AudioRecord failure to start when invalidation is\nhandled by start().\n\nChange-Id: I9e938adf025fa712337c63b1e02a8c18f2a20d39\n"
    },
    {
      "commit": "d1abb8f94d7ed749ee959655db1e07d26dad074d",
      "tree": "19df13c5fcba2ebca2793ab5ac1570348b7e42af",
      "parents": [
        "8b07404cfe564885045a63bb592d6b6dc838b408"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 23:42:34 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 23:42:34 2015 -0700"
      },
      "message": "Allow 8 channels in RecordThread\n\nChange-Id: I738d4975188695e568015e1bc64d160550e958f5\n"
    },
    {
      "commit": "ed0412ed78321bf9d35537626e33115862f7c805",
      "tree": "b581ebde8b57ebf5fac45e5b9d24926f9786594f",
      "parents": [
        "466dc8ed6ca6b7f585104806c48613dd34e608c9"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Apr 27 15:04:22 2015 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue May 05 14:02:01 2015 -0700"
      },
      "message": "Camera2: allow mixing regular/reprocess requests\n\nAllow mixing regular and reprocess requests in a capture burst. Also\ncall abandon() when deleting an input stream.\n\nBug: 20537735\nChange-Id: If8c7781038173ab21c73f5ddc32f53793cf86fd9\n"
    },
    {
      "commit": "a627e3df129c4a502368ee861b1e5831ecae174a",
      "tree": "ceccaf8f44ec8c5eb8203895e98a0180dc647773",
      "parents": [
        "9f578d3297782be6de5373e171f3b4af49726709",
        "9c5af614aac9d9ffeee9124ce10f0f4bc025398d"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue May 05 16:49:41 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:49:42 2015 +0000"
      },
      "message": "Merge \"CameraService: update android.control.availableModes\" into mnc-dev"
    },
    {
      "commit": "9f578d3297782be6de5373e171f3b4af49726709",
      "tree": "d6063a06edf2c17868195472d63869c069dbfbb8",
      "parents": [
        "c8a70d340f0ce610dfb8bd44d833708269484e99",
        "4cb668392ee0433462251afbee109405c6efacc8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 05 15:55:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 15:55:08 2015 +0000"
      },
      "message": "Merge \"AudioRecord keeps track of UID\" into mnc-dev"
    },
    {
      "commit": "9c5af614aac9d9ffeee9124ce10f0f4bc025398d",
      "tree": "54545beb7f18c90248d355e287fba3a69e1726f0",
      "parents": [
        "c8a70d340f0ce610dfb8bd44d833708269484e99"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon May 04 16:34:37 2015 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue May 05 08:50:28 2015 -0700"
      },
      "message": "CameraService: update android.control.availableModes\n\nOnly advertise CONTROL_MODE_OFF when manual 3A controls are supported.\nAlso fixed some bug regarding static metadata update.\n\nBug: 20734940\nChange-Id: I5061f3c49ec20dc8cf5d849771c000fb82543e8f\n"
    },
    {
      "commit": "4cb668392ee0433462251afbee109405c6efacc8",
      "tree": "50e324bd1af8951136ec9b7c4a7538e514490e80",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 01 18:34:17 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 05 02:04:33 2015 +0000"
      },
      "message": "AudioRecord keeps track of UID\n\nBug 20832981\n\nChange-Id: If5f3c61fae02d86b9d6fdf411711f854fd56c77d\n"
    },
    {
      "commit": "32fa6d0e65dbf956e253a1006e9419dce2fe75c9",
      "tree": "35bdbc743172f28de3167d7b800a6084e5c9c58d",
      "parents": [
        "4068b1392b18d9f0d9e866b50d716e2ef8dfa37c"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 01 20:47:20 2015 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat May 02 17:18:47 2015 -0700"
      },
      "message": "Add camera app op - camera\n\nChange-Id: I26570cc0a23fdea740b416a26838d40cac296c85\n"
    },
    {
      "commit": "8ce74c3c11458faa34395591a3424e90db856bfc",
      "tree": "e3e1f5120c35890402528e2959e77be85aaa1bfd",
      "parents": [
        "8651c6f5069cca40ef805b800a9730617ff7f9b8",
        "6fc2a7c81f62b1e21487ae37e11aae6241bc3ead"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat May 02 02:31:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 02 02:31:20 2015 +0000"
      },
      "message": "Merge \"AudioTrack: fix direct tracks not pausing\" into mnc-dev"
    },
    {
      "commit": "6fc2a7c81f62b1e21487ae37e11aae6241bc3ead",
      "tree": "2b8396ccca007dfb36b825df49d4a430b3dd3d1c",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 30 16:08:10 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 01 17:17:44 2015 -0700"
      },
      "message": "AudioTrack: fix direct tracks not pausing\n\nWhen a Direct Track is paused and the HAL does not support\npause() and resume() then the HW never gets paused.\nThe app can just keep writing data, which gets played.\n\nBug: 18899620\nChange-Id: Ice0f360956ff7ca425f6f24a0a2a8640d8b43fa8\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "cc85abcf4ac398dca240db356b8b4db052b415a4",
      "tree": "65f9eccab6b0d9b9f3dcee48e2c44326b0edbef4",
      "parents": [
        "0bbf8b213ad96051357e3ad6d6d2808bfa31a59a",
        "73e26b661af50be2c0a4ff6c9ac85f7347a8b235"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 19:10:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:10:26 2015 +0000"
      },
      "message": "Merge \"AudioSystem: refactor audio config cache and callbacks\" into mnc-dev"
    },
    {
      "commit": "73e26b661af50be2c0a4ff6c9ac85f7347a8b235",
      "tree": "7290cb83e5f7df830447fe2badf99c43e0afc020",
      "parents": [
        "054d9d3dea1390294650ac704acb4aa0a0731217"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 27 16:55:58 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 11:45:07 2015 -0700"
      },
      "message": "AudioSystem: refactor audio config cache and callbacks\n\nClean up implementation of audio configuration cache and\ncallback events from AudioFlinger:\n\n- Define class AudioIoDescriptor for audio input and output\nconfigurations outside of AudioSystem class.\n- Do not use void * but an AudioIoDescriptor as argument to\naudio config callbacks from AudioFlinger.\n- Remove unused configuration events.\n- Move AudioSystem audio input and output cache from static singletons to\nmembers of AudioFlingerClient subclass.\n\nChange-Id: I67c196c32c09ce2756af0755ee1fe631040c3270\n"
    },
    {
      "commit": "0bbf8b213ad96051357e3ad6d6d2808bfa31a59a",
      "tree": "17da4c285aa0b41a76123dbbf2c47b7018d41444",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Apr 30 14:35:42 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri May 01 18:26:52 2015 +0000"
      },
      "message": "camera2: Fix fuzztesting segfault in connect.\n\nBug: 20721655\nChange-Id: I0d974cad19683a8c86a76dac7f61ac0010bd977a\n"
    },
    {
      "commit": "850206ed9ebc6c663a957a656966bce2604dc170",
      "tree": "e7b0bdb5dee5a44524afc0f9c89e4bba878bfbb4",
      "parents": [
        "94ce218596a88cc6d37098cce4e17e68f7405603",
        "054d9d3dea1390294650ac704acb4aa0a0731217"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 01:03:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 01:03:59 2015 +0000"
      },
      "message": "Merge \"PatchPanel: do not use setParameters() internally.\" into mnc-dev"
    },
    {
      "commit": "a8df0b716bdfda1e10790e6f7297eeff83d2e52a",
      "tree": "d4a3380de6d739613b6f1b9822ff92b7e5e8be36",
      "parents": [
        "5aab9254a5c4f1951c12216a71550ab95b4adeaa",
        "d48521fc2f7c34623a745728a07dad728da49254"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Apr 30 23:07:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 23:07:25 2015 +0000"
      },
      "message": "Merge \"Camera: API1 shim: Don\u0027t tightly apply crop region\" into mnc-dev"
    },
    {
      "commit": "d48521fc2f7c34623a745728a07dad728da49254",
      "tree": "6a13d3322a6ecf2583b1227932f11220983216c5",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Apr 29 17:36:58 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Apr 30 15:52:21 2015 -0700"
      },
      "message": "Camera: API1 shim: Don\u0027t tightly apply crop region\n\nDue to older HAL compatibility, we have been setting a tight crop region\nthat just bounds the current output streams. However, this did not take\ninto account any possible ZSL output stream, so correct application of\nour stream cropping rules to ZSL results in double-crop scenarios, if\nthe ZSL stream aspect ratio does not match the aspect ratio of the other\noutput streams.\n\nSince all current HALs follow the correct stream cropping rules (or\nat least sufficiently ignore them for ZSL), simplify the cropping\nsubstantially - now either calculate the crop region based purely\noff the active array dimensions and zoom factor, or purely off\nthe preview stream and zoom factor. The former is used for setting\nthe request crop, and the latter is used for converting coordinates\nfor metering regions.\n\nBug: 20316691\n\nChange-Id: I5a0bc2e7c09cf60fbae4220566540ca9e674d652\n"
    },
    {
      "commit": "dc0ac804721efff054ec9720d53e93ecca86cf5e",
      "tree": "8560f730cb37dddfccc6ea2a513d99889998e2c2",
      "parents": [
        "5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc",
        "1b42097f38e72574ed853a35f4e8a66e4739c421"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 30 20:48:54 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 20:48:55 2015 +0000"
      },
      "message": "Merge \"AudioTrack: fix spurious retrograde messages\" into mnc-dev"
    },
    {
      "commit": "5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc",
      "tree": "f69b635690cbc2cff9e5cfb8843e4473cc327208",
      "parents": [
        "1471e7a112aed5ff120c2b97bced9523ed39fe6c",
        "8c7e6dac6f5eb38cef627dab92eac8b38513450c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 19:50:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 19:50:55 2015 +0000"
      },
      "message": "Merge \"audio policy: session routes continued.\" into mnc-dev"
    },
    {
      "commit": "8c7e6dac6f5eb38cef627dab92eac8b38513450c",
      "tree": "6aede3a6ac013462a117ffb181d93439525eebeb",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 21 17:37:00 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 12:43:06 2015 -0700"
      },
      "message": "audio policy: session routes continued.\n\n- Clear session routes when client process dies.\n- Enforce the route only when the requesting session is active.\n- Fix requested route not working if an output mix change is required\n(e.g forcing to SPEAKER when the default route is USB or A2DP).\n- Make sure all sessions sharing the strategy with a rerouted session\nhave the same route (needed for volume control consistency)\n\nChange-Id: I0ab347a8fb97e73e2c5965374544c5f4fe509ef1\n"
    },
    {
      "commit": "d641af3e9faf6c053ccbeea1bc20790021e57a11",
      "tree": "f2c1fa01f2321024396ac4bda949d74965a547f9",
      "parents": [
        "d707ac5a0494398cb1306ead0ba587034f610f30",
        "f613d42b12389335b2ecf06df18d0d095d6bfd44"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 30 16:43:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 16:43:21 2015 +0000"
      },
      "message": "Merge \"AudioSystem callback for dynamic policy mix activity\" into mnc-dev"
    },
    {
      "commit": "f613d42b12389335b2ecf06df18d0d095d6bfd44",
      "tree": "b36177007932b781d9db2bb973cb2feaab3cde13",
      "parents": [
        "dae24729d0b3ced8c4a7d7f9b631e852f564db4f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 23 18:41:29 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 29 17:54:12 2015 -0700"
      },
      "message": "AudioSystem callback for dynamic policy mix activity\n\nAdd method to AudioPolicyServiceClient for dynamic policy mix\n activity notification.\nPropagate notification to a dedicated callback.\n\nBug 20226914\n\nChange-Id: I37928ed38e15ea2b8fed022cccadeca8c4d6c876\n"
    },
    {
      "commit": "1b42097f38e72574ed853a35f4e8a66e4739c421",
      "tree": "e708293755e42bca48d47380b8b8568cfc3d2f1f",
      "parents": [
        "5f88cdae61079be7920aee166eaac4941f65fb9f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 22 10:52:21 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 29 23:36:01 2015 +0000"
      },
      "message": "AudioTrack: fix spurious retrograde messages\n\nThe retrograde motion was confused by some positions coming from\nthe DSP on offloaded tracks. So the retrograde check was moved up\ninto AudioTrack.cpp. This allows us to take advantage of the checks\nfor invalid positions based on timing.\n\nBug: 2047891\nChange-Id: Ifcad2349201443a7f1711347c203297100449536\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "be71aa29a3c86d2e01cd17839d2a72ab09a1bce5",
      "tree": "ca29cd10f78ff053761eb809c391019180836742",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 28 12:06:02 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 29 19:06:41 2015 +0000"
      },
      "message": "Respect the record audio app op - media\n\nChange-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b\n"
    },
    {
      "commit": "054d9d3dea1390294650ac704acb4aa0a0731217",
      "tree": "4d67c48a2cf367d661f1e33a6670cda052a569a3",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 24 08:48:48 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 19:05:19 2015 -0700"
      },
      "message": "PatchPanel: do not use setParameters() internally.\n\nDo not use setParameters() with AUDIO_PARAMETER_STREAM_ROUTING\nwhen communicating the input or output device selected to playback or\nrecord threads, even for HAL version less than 3.0.\nUse createAudioPatch()/releaseAudioPatch() instead.\nThis allows to send more information on the output or input device being\nselected.\n\nAlso fix a regression introduced in L where the output device selection\nwas not communicated to effects on record threads.\n\nChange-Id: I4780ada53241d56694b005c992171e173c3bf8f5\n"
    },
    {
      "commit": "f62a067a5b21c840c915d36392679346ac0abfd7",
      "tree": "249e05d9912666ee8bb435b2b2ee62c08462e9e3",
      "parents": [
        "466dc8ed6ca6b7f585104806c48613dd34e608c9",
        "27b0159fa29b85b63f7bcad83bd13c70355a7bcd"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Apr 28 17:50:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 28 17:50:20 2015 +0000"
      },
      "message": "Merge \"DO NOT MERGE: The preview frame data is broken when sending via Binder\" into mnc-dev"
    },
    {
      "commit": "27b0159fa29b85b63f7bcad83bd13c70355a7bcd",
      "tree": "0be4e3147ec03f3f5a49b4f9ec952f619f41ae74",
      "parents": [
        "dae24729d0b3ced8c4a7d7f9b631e852f564db4f"
      ],
      "author": {
        "name": "daisuke jinno",
        "email": "daisuke.x.jinno@sonymobile.com",
        "time": "Wed Apr 22 15:28:12 2015 +0900"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Apr 28 10:49:19 2015 -0700"
      },
      "message": "DO NOT MERGE: The preview frame data is broken when sending via Binder\n\n[Cause]\nCallbackProcessor uses always same buffer to send preview data.\nA buffer is written before it is read by user process.\n\n[Solution]\nIncrement buffer index correctly.\n\nChange-Id: I87a7e3dc6546448a419c96aa58ace3b7d086bf70\n"
    },
    {
      "commit": "466dc8ed6ca6b7f585104806c48613dd34e608c9",
      "tree": "086bbd91d48e366377c02df8a65a5e2bad8675a6",
      "parents": [
        "dae24729d0b3ced8c4a7d7f9b631e852f564db4f"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Apr 17 13:15:36 2015 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Apr 28 10:46:14 2015 -0600"
      },
      "message": "Explicit routing in AudioRecord\n\nChange-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5\n"
    },
    {
      "commit": "6fc6a64fa3b0a9e4577eb763590f531c0a50a27b",
      "tree": "2c51b5f8ffe7015ffdc3fdaf19bd36982546bf89",
      "parents": [
        "65c3781db3443531deacecfbda5c7e7e82868a34"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Apr 25 05:18:59 2015 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Apr 25 05:18:59 2015 +0000"
      },
      "message": "Revert \"Add a configurable version of the policy engine based on PFW\"\n\nThis reverts commit 65c3781db3443531deacecfbda5c7e7e82868a34.\n\nChange-Id: Ib61cd70f97c4c4f4b503fb845643627d6896f4f9\n"
    },
    {
      "commit": "65c3781db3443531deacecfbda5c7e7e82868a34",
      "tree": "5560072d1f61a9d76e437ef311ef282976fc253d",
      "parents": [
        "21db57282da8b3daba1549f3a8e41c4fbaf80059"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Mar 24 09:01:14 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 24 14:57:55 2015 -0700"
      },
      "message": "Add a configurable version of the policy engine based on PFW\n\nThis patch adds a configurable version of the policy engine\nbased on the parameter framework.\nThis configurable engine shall be activated with a flag\nUSE_CONFIGURABLE_AUDIO_POLICY within BoardConfig.mk\n\nThis patch provides the generic configuration as an example.\nThis configuration provides the same user experience as the default\npolicy engine.\n\nChange-Id: Ic8217333ae370b89bfdd2ad11320c5f14ea4da34\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "21db57282da8b3daba1549f3a8e41c4fbaf80059",
      "tree": "2c51b5f8ffe7015ffdc3fdaf19bd36982546bf89",
      "parents": [
        "7d7ea036436320b03bef826d78c4c035b67edbd0",
        "8f9dd872366f54b6260506c75c3d0cc3f9f73f81"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Apr 24 21:35:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 21:35:38 2015 +0000"
      },
      "message": "Merge \"mediaresourcemanager: add dumpsys support.\""
    },
    {
      "commit": "7d7ea036436320b03bef826d78c4c035b67edbd0",
      "tree": "35c3322983d83f97abcde43da37329ac98f6b122",
      "parents": [
        "11f88677e9a9405d2b5d7f7bf9b6eec035b6331d",
        "2b0c1fc0d0ad3744a32d48234f255d82a5c80ded"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 24 21:09:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 21:09:05 2015 +0000"
      },
      "message": "Merge \"AudioPolicyManager: notification of dynamic policy mix activity (input)\""
    },
    {
      "commit": "8f9dd872366f54b6260506c75c3d0cc3f9f73f81",
      "tree": "6b20eb7ca59c4c40936e27806f5d76bce005b146",
      "parents": [
        "1ac91ed2c67245ea5052182212463d3f0afe8b5a"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 23 15:24:25 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 23 18:03:30 2015 -0700"
      },
      "message": "mediaresourcemanager: add dumpsys support.\n\nBug: 20233206\nChange-Id: Ic253985e408b05b488e87cd5c50c0d619ac568ef\n"
    },
    {
      "commit": "3fa46d8bb636aeba420ebb2f454205d509f1af29",
      "tree": "ecbbf14a73040166df6f5d7a0037bf6e9036657e",
      "parents": [
        "138f77425a0956d867f078881f91628518ae8258",
        "f2f79cfcdec89052f49b74f9aab48e58daf606c6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 24 00:17:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 00:17:51 2015 +0000"
      },
      "message": "Merge \"RadioService: fix error handling in attach().\""
    },
    {
      "commit": "f2f79cfcdec89052f49b74f9aab48e58daf606c6",
      "tree": "e78c065329ef4f6258285c4955ae2ded5101b46d",
      "parents": [
        "1ac91ed2c67245ea5052182212463d3f0afe8b5a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 23 17:10:50 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 23 17:13:45 2015 -0700"
      },
      "message": "RadioService: fix error handling in attach().\n\nFix typo causing tuner open error to be ignored.\n\nChange-Id: I10735f0cf6ae64ff9c4efa2eb4b20d94d3597ae5\n"
    },
    {
      "commit": "138f77425a0956d867f078881f91628518ae8258",
      "tree": "a8e3afaf98d7d32d04d5aab3a72354e04334614b",
      "parents": [
        "1ac91ed2c67245ea5052182212463d3f0afe8b5a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 10:17:59 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 23 13:52:46 2015 -0700"
      },
      "message": "Fix format sorting order in AudioPort\n\nOtherwise AUDIO_FORMAT_DEFAULT (used for dynamic formats)\nis no longer the first entry.\n\nChange-Id: I23869a9ca2ed138759d722e7c9838497f640921a\n"
    },
    {
      "commit": "d330ee46022f34da76d14d0c4d2910526ecc2321",
      "tree": "05df908a6cd115a92eb1e15a2daa191c14a441b2",
      "parents": [
        "f27e2fbfc3284c00a60fa68edc51d436f75b1e32"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 20 13:23:41 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 12:42:52 2015 -0700"
      },
      "message": "Add floating and multichannel record to AudioFlinger\n\nChange-Id: Ia388fb012a0b6d81613ef87142a97d76836338f9\n"
    },
    {
      "commit": "f27e2fbfc3284c00a60fa68edc51d436f75b1e32",
      "tree": "46d089a6f5e37a3ee692679216b351299cc94bc4",
      "parents": [
        "04f07fd61022dac46ddda9c815d65bc3d3278b84"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Apr 19 22:35:08 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 12:41:57 2015 -0700"
      },
      "message": "Add channel index record to AudioPolicyManager\n\nChange-Id: Ic534bee084108a68c7818600df6e1c9dc9258a0d\n"
    },
    {
      "commit": "04f07fd61022dac46ddda9c815d65bc3d3278b84",
      "tree": "d7d4a83f5190b4f917a608de504814e824862569",
      "parents": [
        "20bd9bfc3ae429412c8eb98619b40fb8e3671bbc",
        "5744661e85981f8a9456bf470e2761235fc026da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 19:16:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 19:16:26 2015 +0000"
      },
      "message": "Merge \"Make record buffer in RecordThread variable format\""
    },
    {
      "commit": "20bd9bfc3ae429412c8eb98619b40fb8e3671bbc",
      "tree": "fd3901e733e87aeac5ec506070f66a2702c30a7c",
      "parents": [
        "983f2e02b342ef3ac4004471cbfd4cd8d5aecf7d",
        "73e62e2ea12e46825958eba718bd8d5e23064ec5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 19:16:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 19:16:16 2015 +0000"
      },
      "message": "Merge \"Fix single channel playback that does not use AUDIO_CHANNEL_OUT_MONO\""
    },
    {
      "commit": "983f2e02b342ef3ac4004471cbfd4cd8d5aecf7d",
      "tree": "7c2ec64cc3034b84348e96cfe120a9c87efe92e3",
      "parents": [
        "d54514d5e4b326e5dcaaf8b3f336ef31e447f355",
        "5a8a95de6dad1a3bcf3da5a37b35766e89086e13"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Apr 22 18:47:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 18:47:33 2015 +0000"
      },
      "message": "Merge \"Use AudioPlaybackRate to hold TimestretchBufferProvider parameters\""
    },
    {
      "commit": "5a8a95de6dad1a3bcf3da5a37b35766e89086e13",
      "tree": "64b82016eaef26f51b75470714172c06287c9c56",
      "parents": [
        "ea44f41bb142555e747cc11382296e94af99d312"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Sat Apr 18 14:47:04 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Apr 22 10:57:24 2015 -0700"
      },
      "message": "Use AudioPlaybackRate to hold TimestretchBufferProvider parameters\n\nUse this struct to handle the parameters for TimestretchBufferProvider all\nacross the system.\nAdd stretch mode and fallback mode to TimestretchBuffer Provider.\n\nChange-Id: I19099924a7003c62e48bb6ead56c785cb129fba2\n"
    },
    {
      "commit": "493404d8c396e15ed73455acd39aa0f1940996e2",
      "tree": "a07080e7733732fd7273963cca1c93436b86b997",
      "parents": [
        "c9c3804a2caf3c0f96e7a8985f82db7ceef490df"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 21 15:07:36 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 22 08:12:53 2015 -0700"
      },
      "message": "audio policy: fix AudioTrack output device selection\n\nHave AudioTrack::setOutputDevice() set CBLK_INVALID flag instead\nof calling restoreTrack_l(). This allows restoreTrack_l() to be called in\na safe context.\n\nAllow device change while the AudioTrack is active by forcing a new\ndevice selection in startOutput() if the output route for this\nsession was changed.\n\nRemove some warnings.\n\nChange-Id: I2d921a63c9bfa0e122233645e2d6d39f95f5f17d\n"
    },
    {
      "commit": "5744661e85981f8a9456bf470e2761235fc026da",
      "tree": "ff5478072359cf1a910140000fa844322004c1f0",
      "parents": [
        "73e62e2ea12e46825958eba718bd8d5e23064ec5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Apr 19 23:56:46 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 21 15:30:49 2015 -0700"
      },
      "message": "Make record buffer in RecordThread variable format\n\nChange-Id: Id4bb9b973eeea16946fba3bc084c7ac270d9fa33\n"
    },
    {
      "commit": "73e62e2ea12e46825958eba718bd8d5e23064ec5",
      "tree": "db5c4e3ffa06df9196ebbc4e5d3dff90e3c81b6a",
      "parents": [
        "7184bab920699d49718e8fc3cf8a23d3c9d8d54a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 20 12:06:38 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 21 15:28:48 2015 -0700"
      },
      "message": "Fix single channel playback that does not use AUDIO_CHANNEL_OUT_MONO\n\nMono channel playback without resampling and not using\nAUDIO_CHANNEL_OUT_MONO can show low frequency garbling.\n\nBug: 20463456\nChange-Id: I0c1bbf957ea439bb8d8da57b9e78938e1acb4793\n"
    },
    {
      "commit": "2b0c1fc0d0ad3744a32d48234f255d82a5c80ded",
      "tree": "cc3528a394494724bba3443b92faa8a1bd7c6846",
      "parents": [
        "3249558196082087fb8bd0a847ef5c6000c8b925"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 15 17:29:28 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 21 14:15:54 2015 -0700"
      },
      "message": "AudioPolicyManager: notification of dynamic policy mix activity (input)\n\nUse ref counting on start/stop inputs to notify audio policy client\n of mix activity changes.\n\nBug 20226914\n\nChange-Id: Ic4f9c91301d0bcbc0ff749acebdc3b2300309c38\n"
    },
    {
      "commit": "a7401cc5e781da150b46e7ae37905ab9ca2aa758",
      "tree": "4bbbdd8effa6c7a88707a7bd0b34c074bdcfe490",
      "parents": [
        "a7346034d597c18b63bc63fdfea8360f8b6c1283"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 17:22:01 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 17:23:22 2015 -0700"
      },
      "message": "audio policy: remove permission check for ports and patches getters\n\nRemove check for MODIFY_AUDIO_ROUTING permission in\naudio policy methods just getting devices or patches state.\n\nChange-Id: Id3bafc5ad0d0bd96210822243139898e314327d8\n"
    },
    {
      "commit": "f2326ac96366ec4d05f470cc4a0b407e7805bab7",
      "tree": "3e2e98a2faa3454b9850d0b8ce902f3c8832f25a",
      "parents": [
        "ffb9710d2c6a323519f499e5900b16cd3cd067bd",
        "1527f07eb2b2b40f6b8f53a4644e6a400bddb460"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Apr 16 16:24:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 16 16:25:01 2015 +0000"
      },
      "message": "Merge \"CameraService: Add support for module init, some logging updates\""
    },
    {
      "commit": "3bf628dc0f4b0ca2c5188652072d5814625f85ae",
      "tree": "06a6f7bfee08e08f52f7f93cfa7c42bf9fbca830",
      "parents": [
        "09f02e55ec4227a29662e7f6ab07fe7d09d9eba0",
        "f6463fc62a09b8aad8e811a9abbe9f4d9f2688f9"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Apr 16 00:35:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 16 00:35:08 2015 +0000"
      },
      "message": "Merge \"camera2: remove unnecessary flashlight error messages\""
    },
    {
      "commit": "f6463fc62a09b8aad8e811a9abbe9f4d9f2688f9",
      "tree": "c13c1d8ab68d7e6e49f420dc79e9d7de7edda097",
      "parents": [
        "3249558196082087fb8bd0a847ef5c6000c8b925"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Apr 07 15:11:31 2015 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Apr 15 16:32:59 2015 -0700"
      },
      "message": "camera2: remove unnecessary flashlight error messages\n\nBug: 20069129\nChange-Id: I0e721bfad1f0218744d3554397e3ec9b8bc07a19\n"
    },
    {
      "commit": "09f02e55ec4227a29662e7f6ab07fe7d09d9eba0",
      "tree": "04badaa41ad21dd4a45df377ba1248333136c178",
      "parents": [
        "554a277d4e42a3d3df3d90ba0e7dfa2d31690e32",
        "90746f4203989fceb0f2131163435644040218d3"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Apr 15 23:26:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 23:26:05 2015 +0000"
      },
      "message": "Merge \"Camera3: allow reconfiguring the input stream\""
    },
    {
      "commit": "554a277d4e42a3d3df3d90ba0e7dfa2d31690e32",
      "tree": "3647500470a7eca8095102a0e2818acb848cdf6a",
      "parents": [
        "3249558196082087fb8bd0a847ef5c6000c8b925"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 11:29:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 15 23:15:38 2015 +0000"
      },
      "message": "audio policy: add binder calls for audio source control\n\nAdd binder methods to IAudioPolicyService to control activity\nof external audio sources (e.g FM tuner).\n\nChange-Id: I2008308a6a996baeae502b68a790d87281efe2ff\n"
    },
    {
      "commit": "1527f07eb2b2b40f6b8f53a4644e6a400bddb460",
      "tree": "7b9bf4c2bdbb76d4d81942fab8b345f6430c3f38",
      "parents": [
        "c44111b22c26236cb0b32d3fbd1cc9fad3fb28ff"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Apr 07 15:55:31 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Apr 15 15:29:41 2015 -0700"
      },
      "message": "CameraService: Add support for module init, some logging updates\n\n- Add support for camera HAL module init() method on v2.4\n- Add logging for service errors such as failure to init\n- Minor cleanup to dumping of event log\n\nBug: 20016050\nChange-Id: I94e18b52c186f16fb096457015f7ae761e867fd8\n"
    },
    {
      "commit": "cfdd52423cee9efea73023feeaa74279ebd45b7c",
      "tree": "154c4ea34b3fc95dbde268fb24be2f2915438c78",
      "parents": [
        "5e1c007038df74b389018e762d5059cacecff59e",
        "de80105c3f2db0eabd47640c49387ea3b44d4782"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 15 21:11:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 21:12:01 2015 +0000"
      },
      "message": "Merge \"AudioPolicyManager: notification of dynamic policy mix activity\""
    },
    {
      "commit": "90746f4203989fceb0f2131163435644040218d3",
      "tree": "a5a482af51247342f20e349dec7d44bcb2e9bac3",
      "parents": [
        "2f33dbc6ca08d45efea2df775c158e2a11e07ab6"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Apr 15 13:50:13 2015 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Apr 15 13:59:05 2015 -0700"
      },
      "message": "Camera3: allow reconfiguring the input stream\n\nChange-Id: Ia9d0db1f3378264fc9173bfc8706c8f955b79182\n"
    },
    {
      "commit": "5e1c007038df74b389018e762d5059cacecff59e",
      "tree": "0c20828f7a07efbf2ee611d6c4767fa54ebdfa3b",
      "parents": [
        "6a07a72588c99d01df9d2c4bcd5bdb15db8937c9",
        "0336d3649f13506a7daf425690d225beac9d214f"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Apr 15 20:58:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 20:58:13 2015 +0000"
      },
      "message": "Merge \"Camera: allow non-supported template\""
    },
    {
      "commit": "6a07a72588c99d01df9d2c4bcd5bdb15db8937c9",
      "tree": "f9edec9dcab8ccaf80f04d90c127a4abbff7f64b",
      "parents": [
        "38bdc85356aa7ba8c3c3cff46efd71fc6ef5beb1",
        "7768dedbce78e0bdbed014debd90faef88e9dacb"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Apr 15 20:28:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 20:28:36 2015 +0000"
      },
      "message": "Merge \"Camera: fix invalid access of static_camera_characteristics\""
    },
    {
      "commit": "7768dedbce78e0bdbed014debd90faef88e9dacb",
      "tree": "b30d60ae6c030dffcc11a75f7bbc26bb722c1674",
      "parents": [
        "cc0cb8a14acc8ed1760b929fd7f706d800a6ff99"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Apr 15 12:16:02 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Apr 15 13:03:02 2015 -0700"
      },
      "message": "Camera: fix invalid access of static_camera_characteristics\n\nBug: 20260866\nChange-Id: Ib2b9ef807d66989515ac1a2e9f623fdd226a665a\n"
    },
    {
      "commit": "d6b01f26a826d10912be4b34bbd2438e97c871e4",
      "tree": "550332908e374f17d72f0637cd667c32d6bc3610",
      "parents": [
        "c44111b22c26236cb0b32d3fbd1cc9fad3fb28ff",
        "a485dfec4ad98283b911cf983566b0ce947343b6"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Apr 15 19:16:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 19:16:11 2015 +0000"
      },
      "message": "Merge \"camera: Actually pass device errors to client for Camera2Device.\""
    },
    {
      "commit": "a485dfec4ad98283b911cf983566b0ce947343b6",
      "tree": "5702364ebfaa73e3b4956260ae623587272bc74e",
      "parents": [
        "4f9576bf48c5909782c12490e8a9faa974ae68d6"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Apr 14 13:43:47 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Apr 15 12:15:30 2015 -0700"
      },
      "message": "camera: Actually pass device errors to client for Camera2Device.\n\nBug: 19186859\nChange-Id: Ib58588dfd99956b719c34e62c596ea604d97edcb\n"
    },
    {
      "commit": "c44111b22c26236cb0b32d3fbd1cc9fad3fb28ff",
      "tree": "3eae04149058cd321b732fb201efb1c2d3e465b4",
      "parents": [
        "a5bf4e0339a10b7db936c739fbfd6cf3cb00fbb8",
        "4d44cad22ea925a651463f2d51d6586c14d4b787"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Apr 15 17:56:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 17:56:26 2015 +0000"
      },
      "message": "Merge \"Camera2: Add prepare for output streams\""
    },
    {
      "commit": "4d44cad22ea925a651463f2d51d6586c14d4b787",
      "tree": "3e9fa49f6f98a8deee591f58054488ddc6e46505",
      "parents": [
        "4123d6db0642cd13e69230705b12d6b6fee6f73f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sat Apr 11 13:15:45 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Apr 15 10:51:33 2015 -0700"
      },
      "message": "Camera2: Add prepare for output streams\n\nThe prepare call asynchronously pre-allocates buffers for a given\noutput stream, and then fires the onPrepared callback.\n\nNot implemented for Camera2Device or used in Camera2Client.\n\nChange-Id: I1cccdfff846dd6985133c591dbdceed823929ade\n"
    },
    {
      "commit": "de80105c3f2db0eabd47640c49387ea3b44d4782",
      "tree": "9775c7bbe30ef1ab13a888def8531cb0f87b1756",
      "parents": [
        "079e121934106860af5ff5491bd3884453d1fdb3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:10:14 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:20:20 2015 -0700"
      },
      "message": "AudioPolicyManager: notification of dynamic policy mix activity\n\nImplement non-stream type specific ref counting in output\n  descriptors to keep track of mix activity.\nNotify audio policy client of mix activity changes.\n\nBug 20226914\n\nChange-Id: Iec939cb640c58056f88947b611d23b4bb6d8a11b\n"
    },
    {
      "commit": "7233234a32d22d2ffb63ed4e92df339458047887",
      "tree": "807509f7cba92cf490d3c82da300a9d686eea02d",
      "parents": [
        "be39e102a64f48fb3afe6ca412231f17df3c3c87",
        "67e7f543c7f1c4fe4ee1989ceb0aebe44a63b49e"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 15 01:41:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 01:41:58 2015 +0000"
      },
      "message": "Merge \"media: use ResourceManagerService with MediaCodec\""
    },
    {
      "commit": "67e7f543c7f1c4fe4ee1989ceb0aebe44a63b49e",
      "tree": "7de894fc9626b36de6eed70812962380ca217f22",
      "parents": [
        "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Mar 13 10:47:08 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 14:16:12 2015 -0700"
      },
      "message": "media: use ResourceManagerService with MediaCodec\n\nBug: 19620911\nChange-Id: I235a97e5195b28645b7834dda0dd77307d93f4a8\n"
    },
    {
      "commit": "0336d3649f13506a7daf425690d225beac9d214f",
      "tree": "3d932a776ac7fb3064e3ced5e96bcffde8600aac",
      "parents": [
        "cc0cb8a14acc8ed1760b929fd7f706d800a6ff99"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Apr 14 12:34:22 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Apr 14 12:34:22 2015 -0700"
      },
      "message": "Camera: allow non-supported template\n\nBug: 19395059\nChange-Id: I42bbd99fef6055173062266c1a490311105c6814\n"
    },
    {
      "commit": "2f33dbc6ca08d45efea2df775c158e2a11e07ab6",
      "tree": "b465e416af6302e7e0dda0826c9766f33bbc2cfc",
      "parents": [
        "b23cabdb71b98dc5e852f5d06be271696fea92c7",
        "618ff8a48a0c895a78f91f5692510c2a809425c3"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Apr 14 17:29:40 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 17:29:41 2015 +0000"
      },
      "message": "Merge \"camera2: add reprocess support\""
    },
    {
      "commit": "4264bbd7af97aeae87f1907b96f62e4025c989d0",
      "tree": "2581a864c2deb9eb9c5b8db4c52c7fb0ed0a6c0a",
      "parents": [
        "cf31941ef4cf1a882cc23743ada41e49f8e1be03",
        "4f9576bf48c5909782c12490e8a9faa974ae68d6"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Apr 14 00:38:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 00:38:14 2015 +0000"
      },
      "message": "Merge \"camera: Fix client eviction/disconnect race.\""
    },
    {
      "commit": "618ff8a48a0c895a78f91f5692510c2a809425c3",
      "tree": "9473236e1e759aecf921b87e50302d933bae041d",
      "parents": [
        "25f82752942b1c78aec8ee303d61afff85cff9d1"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Fri Mar 13 11:27:17 2015 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Apr 13 17:25:36 2015 -0700"
      },
      "message": "camera2: add reprocess support\n\nAdd support to create input stream, submit reprocess capture requests,\nand receive reprocess capture results.\n\nChange-Id: Iee2d4313f3d52616a484eaea7a28f5ef9d8a674b\n"
    }
  ],
  "next": "cf31941ef4cf1a882cc23743ada41e49f8e1be03"
}
