)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "cf31941ef4cf1a882cc23743ada41e49f8e1be03",
      "tree": "efeb057430dea9922e6421e65a76a963c76a57c4",
      "parents": [
        "af52793677e26d76788fc63d2df08d0c141013bc",
        "f097cae65bfce7200938c5bd89e7e9b61cba78b3"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Apr 14 00:23:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 00:24:01 2015 +0000"
      },
      "message": "Merge \"TimestretchBufferProvider integration with Sonic Library\""
    },
    {
      "commit": "f097cae65bfce7200938c5bd89e7e9b61cba78b3",
      "tree": "c69ed57deac44c243d914a3c8fa7b88bf3327ca6",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Apr 13 12:17:21 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Apr 13 17:20:19 2015 -0700"
      },
      "message": "TimestretchBufferProvider integration with Sonic Library\n\nUsing Sonic as backbone for time stretching algorithm.\nAdding libsonic to needed makefiles.\n\nbug: 19196501\nChange-Id: I1ea9221d2f56e4e79fba8746ce0ad350b5079e82\n"
    },
    {
      "commit": "4f9576bf48c5909782c12490e8a9faa974ae68d6",
      "tree": "9392dc3ff4216fd7bfa4e41ea7838ec6570bfcf7",
      "parents": [
        "a8ca9157d21510fbd474bd31748f4fe0d4635dd7"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Apr 10 17:26:56 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Mon Apr 13 16:55:41 2015 -0700"
      },
      "message": "camera: Fix client eviction/disconnect race.\n\n- Add blocking wait in camera service connect call to\n  prevent race when client has called disconnect while\n  eviction of that client is taking place, resulting\n  in early call of device initialization before all\n  HAL resources are available.\n\nBug: 20038135\nChange-Id: I7afc5bfa23612ba7f83293fa542ff983a5991230\n"
    },
    {
      "commit": "221a33890fa8b3c3c43c94327305b8e7717c412f",
      "tree": "6953a583833355b48db57da5d3a326e505f96aaa",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92",
        "ab300c8cbf5df98fddca39e8d1698b0307432152"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 22:43:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 22:43:07 2015 +0000"
      },
      "message": "Merge \"audio polciy: remove FM audio capture permission.\""
    },
    {
      "commit": "ab300c8cbf5df98fddca39e8d1698b0307432152",
      "tree": "083c508fb62b4456a2c903045a165d9ef001b8fb",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:47:33 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:47:33 2015 -0700"
      },
      "message": "audio polciy: remove FM audio capture permission.\n\nChange-Id: I2607d89b0bd87cdd2f4084dfdb55135509a824d5\n"
    },
    {
      "commit": "f945d614116015361e489634737b9f70b6c39e66",
      "tree": "41d4f2021bed280523444e5b7c9a8625c32f23f1",
      "parents": [
        "ed5554fb1c837f6b1008d3910018c979c57da502",
        "a8ca9157d21510fbd474bd31748f4fe0d4635dd7"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Apr 10 23:55:48 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 23:55:48 2015 +0000"
      },
      "message": "Merge \"camera: Update camera service logging and validation.\""
    },
    {
      "commit": "de5e5d7141e7816a006e9a890bb68fc2d6581e0e",
      "tree": "746e10786cdba136ac803b3e34e1f37eda70a1ee",
      "parents": [
        "7d014e50b3acd60e73ed7d7a74dc58485c7a413c",
        "23d8997f58bb9c59fa3a1b9a6b2edbf1b2b0f4c6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 10 16:22:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 16:22:36 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: more DTS passthrough support\""
    },
    {
      "commit": "8edb8dc44b8a2f81bdb5db645b6b708548771a31",
      "tree": "663bda0f8a3d43894fa6d3d3f4283ed0df427f03",
      "parents": [
        "c5656cc900aeb4a705e27508dd82c70030a97709"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:13:55 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 18:49:15 2015 -0700"
      },
      "message": "Add playback rate to AudioTrack\n\nBug: 19196501\nChange-Id: I6411e1d3ce652b711a71a6d9df020cb5f60d4714\n"
    },
    {
      "commit": "23d8997f58bb9c59fa3a1b9a6b2edbf1b2b0f4c6",
      "tree": "eed231c9bd5dc2523b7a0cf7c8b142810079dabc",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 06 16:22:23 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 09 16:18:34 2015 -0700"
      },
      "message": "AudioFlinger: more DTS passthrough support\n\nPass format for AC3 or DTS to SPDIF encoder.\n\nBug: 18292317\nChange-Id: I6d80eb548cb431bac3390ebb3235146171344291\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "a8ca9157d21510fbd474bd31748f4fe0d4635dd7",
      "tree": "5904d20173bb541063dd0ce47106768a21daaf40",
      "parents": [
        "f75c2fef14354024ec27bff1444f9e50b5ef55a9"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Apr 07 14:23:40 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Apr 09 14:19:17 2015 -0700"
      },
      "message": "camera: Update camera service logging and validation.\n\n- Expand the logging included by the camera service.\n- Update user validation checks in connect calls so that\n  these can be correctly called from the camera service.\n\nBug: 20063426\nChange-Id: I0a8cbe1ea2c0a652298e6b70c89705da174a50e1\n"
    },
    {
      "commit": "c5656cc900aeb4a705e27508dd82c70030a97709",
      "tree": "930d4266db7b4d93eb7ade5629812a722dc7920f",
      "parents": [
        "857d5a20a956ef61b64ae07b018ecc2f1eb0a503"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:04:33 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 12:37:01 2015 -0700"
      },
      "message": "Add playback rate to AudioMixer\n\nBug: 19196501\nChange-Id: I42d1f90e6297cf3f1304860d1691a5dfedd4c37d\n"
    },
    {
      "commit": "857d5a20a956ef61b64ae07b018ecc2f1eb0a503",
      "tree": "6b0e743b3c7f027aff568ac842c629291d1d4207",
      "parents": [
        "f129b03fa583d4cc26fd9c9171b8fb3b0ed8d4f4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 18:46:00 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 23:31:22 2015 -0700"
      },
      "message": "Factor out buffer provider code from AudioMixer\n\nIn preparation for playback rate support and timestretching.\n\nBug: 19196501\nChange-Id: I435accb852d32110dd0b3a9917488522c567ba80\n"
    },
    {
      "commit": "f129b03fa583d4cc26fd9c9171b8fb3b0ed8d4f4",
      "tree": "cc6ebb41d964a77f5fe5b29e8a360d1a1e4cf7b9",
      "parents": [
        "b6347ac62b36b4d9578d181ba83bf8e6446298e8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 13:45:50 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 18:47:28 2015 -0700"
      },
      "message": "Enable 8 bit and float pcm record formats for AudioPolicyManager\n\nAdd capability for handling different record channel masks.\n\nChange-Id: I63f6b029aca5cefff7adf26198a3b594a7ea2d71\n"
    },
    {
      "commit": "b6347ac62b36b4d9578d181ba83bf8e6446298e8",
      "tree": "fa04d4c41a7f661448668c01a056b9e71297cd16",
      "parents": [
        "17769490d499bc665ddfef83143ac1ed647fa0d4",
        "dacc06f5e8d00ace9d16a149fc41ff65323ffbb3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 09 01:33:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 01:33:20 2015 +0000"
      },
      "message": "Merge \"Fix AudioPolicyManager dynamic policy initialization\""
    },
    {
      "commit": "dacc06f5e8d00ace9d16a149fc41ff65323ffbb3",
      "tree": "66fc2772a1a663554e871dabc96f9e1cd5a740fc",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 08 18:16:39 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 08 18:19:16 2015 -0700"
      },
      "message": "Fix AudioPolicyManager dynamic policy initialization\n\nAudioPolicyManager::getInputForAttr() is initializing the AudioMix\n for the new AudioInputDescriptor.\nThe audio policy manager refactoring introduced a regression where\n the association of an existing AudioMix (registered when the\n associated AudioPolicy was registered) with the input descriptor\n copied a value of local scope, instead of referencing the\n AudioMix in the list of mixes.\n\nBug 20081375\n\nChange-Id: Iddd57fed8525880afd1d4a5493f97130aabe4816\n"
    },
    {
      "commit": "17769490d499bc665ddfef83143ac1ed647fa0d4",
      "tree": "b2d5bc5fe875be119ffd3ce3352a9444caf2d1e2",
      "parents": [
        "9c7f67264d3b3ace9703b3a96bd7bc4922111b4f",
        "ffbc80f5908eaf67a033c6e93a343c39dd6894eb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 09 01:12:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 01:12:06 2015 +0000"
      },
      "message": "Merge \"audio policy: volume in dBs\""
    },
    {
      "commit": "9c7f67264d3b3ace9703b3a96bd7bc4922111b4f",
      "tree": "42a08a11bf4d66aa8edc47f57e8912755bea76ef",
      "parents": [
        "3277877a576b079ebce444075735f45259660e58",
        "c75307b73d324d590d0dbc05b44bce9aa89b7145"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 09 01:11:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 01:11:37 2015 +0000"
      },
      "message": "Merge \"audio policy: volume control reorganization\""
    },
    {
      "commit": "ffbc80f5908eaf67a033c6e93a343c39dd6894eb",
      "tree": "c97aa681b8c70d7429f7be93f851f04e9dee5900",
      "parents": [
        "c75307b73d324d590d0dbc05b44bce9aa89b7145"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 18 18:30:19 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 18:08:24 2015 -0700"
      },
      "message": "audio policy: volume in dBs\n\nVolumes are now stored and exchanged in dBs to be\nconsistent with the volume tables.\n\nThey are converted if needed when applied to the target\ngain controller.\n\nChange-Id: I916cbb0bbe65c916444b8c65a2bdca9645c58399\n"
    },
    {
      "commit": "c75307b73d324d590d0dbc05b44bce9aa89b7145",
      "tree": "824a23a9ffbebb3ace63146c171e938df6630fdd",
      "parents": [
        "303db9de6506db0c2b300863c39ece81721dd4e9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 17 15:29:32 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 18:08:11 2015 -0700"
      },
      "message": "audio policy: volume control reorganization\n\nOutput volume and routing control by AudioOutputDescriptor\nis reorganized to prepare hardware source volume and routing\ncontrol.\nAudioOutputDescriptor contains all volume, device and activity\nstate common to software (audio flinger mixers) and\nhardware sources (tuners, A2DP, HDMI).\nA new class SwAudioOutputDescriptor is derived from\nAudioOutputDescriptor and is specific to software sources.\n\nLow level routing and volume control methods receive an\nAudioOutputDescriptor parameter instead of an IO handle.\n\nmPrimaryOutput is now an AudioOutputDescriptor.\n\nChange-Id: Ie90943ee3102cdb8adf89fdd2addd2c279b1e5bf\n"
    },
    {
      "commit": "3277877a576b079ebce444075735f45259660e58",
      "tree": "d81436236b20ce4fbe111913dc38af4d32e21a80",
      "parents": [
        "86f79e3f3bc1de7b4e4dd045de8962b8a62ab5d5",
        "6770c6faa3467c92eabc5ec9b23d60eb556a0d03"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 00:34:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 00:34:57 2015 +0000"
      },
      "message": "Merge \"Enable 8 bit and float pcm record formats for AudioFlinger\""
    },
    {
      "commit": "86f79e3f3bc1de7b4e4dd045de8962b8a62ab5d5",
      "tree": "222616b4bb2cb2cbfcc0d7c14581e182143e87cd",
      "parents": [
        "77a44e8d1f902a100500ea69a450e22889dcff31",
        "73c02e4277b399c2ec1555d32b6ad5df23bb83dc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 23:30:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 23:30:58 2015 +0000"
      },
      "message": "Merge \"Improve ResamplerBufferProvider\""
    },
    {
      "commit": "6770c6faa3467c92eabc5ec9b23d60eb556a0d03",
      "tree": "45470127b227dbda5a346bb1902f92f8998c25bb",
      "parents": [
        "73c02e4277b399c2ec1555d32b6ad5df23bb83dc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 13:43:36 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:58:56 2015 -0700"
      },
      "message": "Enable 8 bit and float pcm record formats for AudioFlinger\n\nUpdate sampling rate handling as well.\n\nBug: 19570772\nChange-Id: I872248e64c0578b2e48869a68fee0d51bd0640c3\n"
    },
    {
      "commit": "73c02e4277b399c2ec1555d32b6ad5df23bb83dc",
      "tree": "c42d75e42eda5b09915c0962107083f1c55dc74a",
      "parents": [
        "97a893eb34f8687485c88eaf15917974a203f20b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Mar 29 01:13:58 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:55:46 2015 -0700"
      },
      "message": "Improve ResamplerBufferProvider\n\nChange-Id: I3cc3af221ad5797ff219d75227350733afa180db\n"
    },
    {
      "commit": "77a44e8d1f902a100500ea69a450e22889dcff31",
      "tree": "0e1ca5b8a21f3d99141542b0d866e382db140591",
      "parents": [
        "0c0acdadc9ca961acd1f3b4b85c2befef2dc7161",
        "97a893eb34f8687485c88eaf15917974a203f20b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 22:54:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 22:54:39 2015 +0000"
      },
      "message": "Merge \"Add RecordBufferConverter for RecordThread data processing\""
    },
    {
      "commit": "97a893eb34f8687485c88eaf15917974a203f20b",
      "tree": "6a103ab6f76dcabb0416677055dab4a8454f9fd7",
      "parents": [
        "6b3b7e304e0f8f167241b2c75f1eb04a9ef192ec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Mar 29 01:03:07 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:23:30 2015 -0700"
      },
      "message": "Add RecordBufferConverter for RecordThread data processing\n\nChange-Id: Ia3aab8590cd41e8a7cba0a7345d70d2866d92045\n"
    },
    {
      "commit": "0c0acdadc9ca961acd1f3b4b85c2befef2dc7161",
      "tree": "7f0237c465a72f3a7e7f447835a7b558dc58a795",
      "parents": [
        "303db9de6506db0c2b300863c39ece81721dd4e9",
        "6b3b7e304e0f8f167241b2c75f1eb04a9ef192ec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 22:23:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 22:23:03 2015 +0000"
      },
      "message": "Merge \"Return number of frames output from resample method\""
    },
    {
      "commit": "6b3b7e304e0f8f167241b2c75f1eb04a9ef192ec",
      "tree": "1cec011ad26676dc9dc3eea778e18136c083e04f",
      "parents": [
        "25f82752942b1c78aec8ee303d61afff85cff9d1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Mar 29 00:49:22 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 14:31:58 2015 -0700"
      },
      "message": "Return number of frames output from resample method\n\nChange-Id: Ic297e2ed59839f1788c83e099ef1a9e4af29591f\n"
    },
    {
      "commit": "3bcf8597189c592713675ec58326ecbef0ac4ae9",
      "tree": "5656987c2e9d6fe9c99bb632865318489432fe36",
      "parents": [
        "322b4d25387a04c9afebe998326d005bbdf17ede"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 03 12:13:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 12:38:08 2015 -0700"
      },
      "message": "audio flinger: improve device to device audio patches\n\nAllow creation of audio patches between input and output\ndevices managed by the same audio HW module.\n\nChange-Id: I4b83268a4d5c41f3d5905d7581202cf5193efd32\n"
    },
    {
      "commit": "322b4d25387a04c9afebe998326d005bbdf17ede",
      "tree": "3cf0c2912dc7cb75acb60526bef382dd90e9a51d",
      "parents": [
        "6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 03 15:57:54 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 12:37:35 2015 -0700"
      },
      "message": "audio policy: fix unique audio port ID.\n\nRemove mId member from AudioPort as it was shadowed\nby mId in DeviceDescriptor.\n\nAdd getters for Id, and HW module name and version to device,\noutput and input descriptors.\n\nFix DeviceDescriptor name initialization.\n\nChange-Id: I4a69f385e40330954d9dad5f2926c521f60b2ec1\n"
    },
    {
      "commit": "6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15",
      "tree": "2ebe8fb3630e8e33baa66be39305df86eab83c7d",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2",
        "aa9811945f575614b3482d09e4d969792701cebb"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "message": "Merge \"Adding explicit routing API to AudioTrack\""
    },
    {
      "commit": "aa9811945f575614b3482d09e4d969792701cebb",
      "tree": "1744aa567efe78c3062ec80da19277d96def0725",
      "parents": [
        "41efeb2b477066d96ad34a048f34fb6fb34213ec"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Sat Mar 21 09:55:15 2015 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 09:51:07 2015 -0700"
      },
      "message": "Adding explicit routing API to AudioTrack\n\nChange-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc\n"
    },
    {
      "commit": "f2d1e4dfc14fd90e1256b3f6e96e69560f5d3b5e",
      "tree": "fbead296600a2de46a8adbdeb15f9d3b78140049",
      "parents": [
        "594eddf21facc3e84a4de912a0e2d45c880fd1ab"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Apr 07 13:02:41 2015 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Apr 07 13:02:41 2015 -0700"
      },
      "message": "Camera2Client: support HAL version 3.3\n\nChange-Id: Id018e3ce21b4344d09a877395eb355adba9e8fa2\n"
    },
    {
      "commit": "7d669b3551c20109f5544455ca1555499693e1e1",
      "tree": "12868d89982fe013e17c7f2544882704f486589d",
      "parents": [
        "41efeb2b477066d96ad34a048f34fb6fb34213ec"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 31 14:50:42 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 06 16:58:36 2015 +0000"
      },
      "message": "audiopolicy: add support for parsing AUDIO_FORMAT_DTS\n\nBug: 18292317\nChange-Id: Ic9a15fc09ce32021d12072fb71252d207deac30a\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "5c233f8b772719371475624edf1002ed80e1d0e8",
      "tree": "be755bf0280875c5f6087bc63fe921a7d46da53c",
      "parents": [
        "d4d55cdf31a3faa619bfa043f5b0f170f6ffd139"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 03 09:21:24 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 03 09:21:24 2015 -0700"
      },
      "message": "AudioPolicy: remove extraneous parentheses\n\nChange-Id: Ibcea37b90cc0aaacb3b6194745bf569edad8992a\n"
    },
    {
      "commit": "d4d55cdf31a3faa619bfa043f5b0f170f6ffd139",
      "tree": "e1931025bb3db237ddf60e352488b1c4b1c91eef",
      "parents": [
        "da2246b54e3eed9e9366c98688b19f997d869e79",
        "887a9ed4446cb451181c392a0e51a69914e58fbf"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:40:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:40:05 2015 +0000"
      },
      "message": "Merge \"Updates to AudioPolicyManager refactor\""
    },
    {
      "commit": "da2246b54e3eed9e9366c98688b19f997d869e79",
      "tree": "d771c73b97063bda218171afab8cb2303e1999f5",
      "parents": [
        "91b7a7b5343c5b6fccd9356449dfd393d0d66f35",
        "2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:39:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:39:52 2015 +0000"
      },
      "message": "Merge \"Split ManagerDefault into manager and engine\""
    },
    {
      "commit": "91b7a7b5343c5b6fccd9356449dfd393d0d66f35",
      "tree": "379aee73d370e4cc31447556376c5c036e7a41f4",
      "parents": [
        "d0fd7e82cf051cbde11091008ab90fde20d39964",
        "dfd7409c1b708f6c429aa43722ca8493a91d8df0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:39:24 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:39:27 2015 +0000"
      },
      "message": "Merge \"Create StreamDescriptor and associated collection within common\""
    },
    {
      "commit": "d0fd7e82cf051cbde11091008ab90fde20d39964",
      "tree": "f52dde1265444cefc10cbd1d08e73714b13eb179",
      "parents": [
        "9a224caa5af20c5b08d0725d6b95880a01ee9f71",
        "df37269852ea92bafd939fe793209d0581c4a574"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:39:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:39:11 2015 +0000"
      },
      "message": "Merge \"Create SoundTriggerSession and associated collection within common\""
    },
    {
      "commit": "9a224caa5af20c5b08d0725d6b95880a01ee9f71",
      "tree": "846f0697354ae1c62b0a872739f14f3bc379b267",
      "parents": [
        "f77236dc8560ffbdedd69163bf75a9ad7890d898",
        "45ed3b053d9af2250f5ece9ee4e826905c3763a7"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:38:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:38:57 2015 +0000"
      },
      "message": "Merge \"Add EffectDescriptor and associated collection to common elements\""
    },
    {
      "commit": "f77236dc8560ffbdedd69163bf75a9ad7890d898",
      "tree": "40ea5d98e4403b485a8d7cd2ab69ca61cd50a749",
      "parents": [
        "53d6802799da3dbd9b040278e8fbbf9200a91a2c",
        "036e1e9126dcd496203434aa69e52115d8e730cc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:38:28 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:38:28 2015 +0000"
      },
      "message": "Merge \"Add AudioMix and AudioMixCollection to common policy element\""
    },
    {
      "commit": "53d6802799da3dbd9b040278e8fbbf9200a91a2c",
      "tree": "a06f5416f749bcac34faa049d6846ed186d6a62f",
      "parents": [
        "5e600f4186207757d5b1a6bdec69c36af401ed02",
        "53615e29c99c5e9d2ca77aaefd7bf5c770513120"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:38:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:38:17 2015 +0000"
      },
      "message": "Merge \"Migrate helper functions from managerdefault to common\""
    },
    {
      "commit": "5e600f4186207757d5b1a6bdec69c36af401ed02",
      "tree": "27c88fb9fad07ae5f371fe54175f042d67cb9607",
      "parents": [
        "07a4422d8de776ec275215c0de645fda51bef89e",
        "98cc191247388132b6fd8a4ecd07abd6e4c5a0ed"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:38:02 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:38:02 2015 +0000"
      },
      "message": "Merge \"Split ManagerDefault into Manager and ManagerDefinitions\""
    },
    {
      "commit": "07a4422d8de776ec275215c0de645fda51bef89e",
      "tree": "8e2d70a0fe9cce57d75d5b8b7b132cfa7148d301",
      "parents": [
        "d618d8355e02de336ccd455d2f255957b8da913b",
        "ad3183e2d4cecd02f6261270a7ea1c68be0efa0f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 22:37:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 01 22:37:42 2015 +0000"
      },
      "message": "Merge \"Audio Policy Refactor: reorganise headers inclusion\""
    },
    {
      "commit": "887a9ed4446cb451181c392a0e51a69914e58fbf",
      "tree": "148916028dcdf5c2db173f62f1b063412d070124",
      "parents": [
        "2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 31 18:02:24 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 11:29:43 2015 -0700"
      },
      "message": "Updates to AudioPolicyManager refactor\n\nUse protected access in AudioPolicyManager class for\n - engine field\n - querying phone state\n - isStrategyActive\n\nFix inclusion of AudioPolicyManagerInterface header.\n\nUse \"APM_\" prefix in audio policy conf parsing code to avoid\n naming conflicts with some HALs.\n\nDeviceDescriptor and its collection class are good friends now.\n\nChange-Id: I236d62a2b8a4b6bf68dd515932650b912577c145\n"
    },
    {
      "commit": "2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb",
      "tree": "5051da296e1fbc067db7ac190334d7d98a4410eb",
      "parents": [
        "dfd7409c1b708f6c429aa43722ca8493a91d8df0"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Mar 24 08:41:51 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Split ManagerDefault into manager and engine\n\nThis patch defines an interface for a new component: policy engine.\nThe APIs found under this interface are the one we may want to customize\nand to configure easily.\nThis patch also split the current manager code into manager and engine to\nprovide a default version of the policy engine.\n\nChange-Id: I97cf59760b53d248fe9efe466ae5e73bd7e5cc06\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "dfd7409c1b708f6c429aa43722ca8493a91d8df0",
      "tree": "527972dbd2a5ad014137b57128ca5100d7ca07a2",
      "parents": [
        "df37269852ea92bafd939fe793209d0581c4a574"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 12:10:59 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Create StreamDescriptor and associated collection within common\n\nCreate StreamDescriptor and associated collection within common\ncommon policy pillar elements.\nIt moves the code from managerdefault and creates helpers function within\nthe collection.\nIt also split the AudioGain in a common volume header and AudioGain class.\n\nChange-Id: I1bb80e4219506f8c9042367085db328d317cb668\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "df37269852ea92bafd939fe793209d0581c4a574",
      "tree": "673a3e9838f06a33c6304942d8138b1eb224d348",
      "parents": [
        "45ed3b053d9af2250f5ece9ee4e826905c3763a7"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 10:43:27 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Create SoundTriggerSession and associated collection within common\n\nThis patch creates a SoundTriggerSession and associated collection within\ncommon policy pillar elements.\nIt moves the code from managerdefault and creates helpers function within\nthe collection.\n\nChange-Id: I83ea230573c05e8ab99f4489c20059ed27678221\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "45ed3b053d9af2250f5ece9ee4e826905c3763a7",
      "tree": "97926c3be950a64e504347c103fe41628b4939da",
      "parents": [
        "036e1e9126dcd496203434aa69e52115d8e730cc"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 10:35:14 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Add EffectDescriptor and associated collection to common elements\n\nThis patch adds EffectDescriptor and associated collection to common\npolicy pillar elements. It moves the code from the policy manager\nand creates helpers function in the collection.\n\nIt also factorize the RoutingStrategy structure within a separated header\nfile.\n\nChange-Id: I29964ff77564fadedf3237c8754240b21ae77297\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "036e1e9126dcd496203434aa69e52115d8e730cc",
      "tree": "028893f5dffed7b590638a52e32bd864eeb13954",
      "parents": [
        "53615e29c99c5e9d2ca77aaefd7bf5c770513120"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 10:16:24 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Add AudioMix and AudioMixCollection to common policy element\n\nThis patch adds AudioMix and associated collection to the common\npolicy pillar elements library.\nIt removes the code from the manager and creates also helpers function\nassociated to the mix collection.\n\nChange-Id: Ia3536fdef09da13734d2895030d736c701040237\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "53615e29c99c5e9d2ca77aaefd7bf5c770513120",
      "tree": "18a576affc2dcecdc1431027f6d348ef0678cae0",
      "parents": [
        "98cc191247388132b6fd8a4ecd07abd6e4c5a0ed"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 09:24:12 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Migrate helper functions from managerdefault to common\n\nThis patch moves from manager to common:\n\n-parse helper functions of the policy configuration file\n-collection helper function on\n\t-output / input descriptors\n\t-DeviceDescriptor\n\t-AudioPatch / Audio Port\n\t-IO Profile\n\t-HwModule\n\nChange-Id: If45e53418db75af1af198f43c4ef27884499055f\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "98cc191247388132b6fd8a4ecd07abd6e4c5a0ed",
      "tree": "b447149a320aabc6fb28f2522e6a55db835ce537",
      "parents": [
        "ad3183e2d4cecd02f6261270a7ea1c68be0efa0f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Mar 18 17:52:40 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:19:16 2015 -0700"
      },
      "message": "Split ManagerDefault into Manager and ManagerDefinitions\n\nThis patch splits the managerdefault into a manager and a manager\ndefintion library that contains all pillar elements of a policy manager.\n\nIt renames the file with the name of the main class they contains.\n\nIt splits the AudioPort into AudioPort and AudioPatch.\n\nChange-Id: I992cf0b8aed895805cc003ba0980d2c9e92c985b\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "ad3183e2d4cecd02f6261270a7ea1c68be0efa0f",
      "tree": "5c08be8ee10c2525c0df9dc42529d5fae0240b74",
      "parents": [
        "4de725a32a825bd26d9fc0ec6901ffffa92778e1"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Mar 18 16:55:35 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:19:16 2015 -0700"
      },
      "message": "Audio Policy Refactor: reorganise headers inclusion\n\nThis patch reoganises the headers inclusion in order to prepare\nthe split of managerdefault into a manager and a separated lib\nof pillar policy elements.\n\nIt also moves back the isStrategyActive to the manager to avoid\nany dependancies from this pillars to the manager.\n\nChange-Id: I1a35c45d86db7a3878a40dc7d6858dfea37c5ac9\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "b369cafd67beb63dd0278dba543f519956208a7f",
      "tree": "c50687a52df6b28cb071b36a5377cae9054bbefa",
      "parents": [
        "253930b927d375413a42f170fa1ef8d98b8f7cb4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 20:51:47 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 01 00:03:48 2015 +0000"
      },
      "message": "audio flinger: fix standby on output with HW A/V sync\n\nFix a bug in audio HAL pause logic on output threads with\nHW A/V sync preventing the HAL to enter standby when\nthe audio track is stopped and detroyed.\n\nBug: 19980184.\n\nChange-Id: Ia497dad23159038b447fcbc18a67bb61b70b79cc\n"
    },
    {
      "commit": "253930b927d375413a42f170fa1ef8d98b8f7cb4",
      "tree": "9fb8cd4d32f6889572d025468e327c389120bc92",
      "parents": [
        "41919bfa827b310d56e46fd1340494990ecde144",
        "36597b241c59eba7e55d5150092947a748c5e9cb"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Mar 31 22:28:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 31 22:28:12 2015 +0000"
      },
      "message": "Merge \"camera2: Enforce client eviction on user switch.\""
    },
    {
      "commit": "36597b241c59eba7e55d5150092947a748c5e9cb",
      "tree": "bf174c4f6c45a2a5abfb3852effb567d5b653843",
      "parents": [
        "ac41a6f253a69671f6e018fcc84daf0030615ca9"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Mar 20 22:15:57 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Mar 31 12:11:10 2015 -0700"
      },
      "message": "camera2: Enforce client eviction on user switch.\n\nBug: 19186859\nChange-Id: I172a2ce46c8e8a131ae7e8dd99d60c5f4f0d6668\n"
    },
    {
      "commit": "904edf8413039d816e5aaa0d4db51d34e08c232a",
      "tree": "4366f59b80703273555e94f16d2648c7c1a426e6",
      "parents": [
        "7699916e839f56fe827cc3d674f14a46b3e08a56",
        "44d842a762e463f0a29e95036e97fef2def4b8ea"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 31 18:24:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 31 18:24:57 2015 +0000"
      },
      "message": "Merge \"Camera: iterate through all encoders for finding max video size\""
    },
    {
      "commit": "44d842a762e463f0a29e95036e97fef2def4b8ea",
      "tree": "4207632235575adb437d1c39148e5e497bcd2bed",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Mar 27 11:35:31 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 31 11:24:04 2015 -0700"
      },
      "message": "Camera: iterate through all encoders for finding max video size\n\nBug: 19712132\nChange-Id: I5c1fc748fcc756f6665c31951f8af8a37ff4254d\n"
    },
    {
      "commit": "ac41a6f253a69671f6e018fcc84daf0030615ca9",
      "tree": "17fe629ef01986411dd6cfcae1552a3b0a02c8b7",
      "parents": [
        "765f27c2376e83766d9e1d8f8136025c5437ce49",
        "f5d144f7ca773750ea7be371f14f9fc975a15862"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 19:39:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 19:39:11 2015 +0000"
      },
      "message": "Merge \"audio policy: fix IOProfile::isCompatibleProfile()\""
    },
    {
      "commit": "f5d144f7ca773750ea7be371f14f9fc975a15862",
      "tree": "e43a14e4c74293289770e712fc8a81a47da9206b",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 26 19:00:00 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 10:58:50 2015 -0700"
      },
      "message": "audio policy: fix IOProfile::isCompatibleProfile()\n\nHandle composite devices in IOProfile::isCompatibleProfile()\nby just checking the type in this case, not the address which is relevant\nonly if a single device type is passed as input.\n\nAlso remove warning.\n\nBug: 19762960.\nChange-Id: Iaecb7fcfbf7ad39b1e33cb460922f7c069a34a00\n"
    },
    {
      "commit": "46bd6b5bb8f1dfd26977a04ee6fcf9641321ca29",
      "tree": "e694ef16af909dcfd1fb9a1e0efbd01ef9b26ef8",
      "parents": [
        "9bb23ff63e17b91a8480b142975067e8b6ab69ec",
        "4c91f90c72e74474fad7f6a99ae7926c8d1f2504"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 16:38:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 16:38:05 2015 +0000"
      },
      "message": "Merge \"audio policy: fix DeviceVector::getDevicesFromType()\""
    },
    {
      "commit": "4c91f90c72e74474fad7f6a99ae7926c8d1f2504",
      "tree": "8686614058927003da3349a93a87af3883df732b",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 25 18:15:31 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 26 18:33:19 2015 -0700"
      },
      "message": "audio policy: fix DeviceVector::getDevicesFromType()\n\nFix device type comparison in DeviceVector::getDevicesFromType():\nAUDIO_DEVICE_BIT_IN bit must be excluded from type comparison\nand used as an orthogonal match criterium.\n\nChange-Id: Ie7378723f5a3d613b1b045ccdda69650a9d655fc\n"
    },
    {
      "commit": "3e414355fbed266916b446eaabbb3f9c153635b2",
      "tree": "d4c642af7d125dddfadddba7acd81208c2c1bc9f",
      "parents": [
        "525907aa2cf2148186ed55e47e424395b9a43dca",
        "4c9736fbc82b8b76c996c966583d71ca1df17ca6"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Mar 25 00:17:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 25 00:17:50 2015 +0000"
      },
      "message": "Merge \"Camera: fix release fence logic\""
    },
    {
      "commit": "4c9736fbc82b8b76c996c966583d71ca1df17ca6",
      "tree": "0388c2ca426e1615052359f5ff65655705966e3f",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Mar 05 15:01:36 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 17:14:17 2015 -0700"
      },
      "message": "Camera: fix release fence logic\n\nAccording to spec, HAL will set release_fence to acquire_fence\nwhen error happened (usually during flush call). Camera service\nshould not refer to the acquireFence anyhow since per spec HAL\nneeds to set it to -1 if acquireFence has been waited on.\n\nChange-Id: I809355d0c8c71f78f657e37d19221fd1f5bdc90b\n"
    },
    {
      "commit": "525907aa2cf2148186ed55e47e424395b9a43dca",
      "tree": "947b98272d9e5956eb5c7e08b27895117e1488d2",
      "parents": [
        "ae9710473b88592c557488bfcae71616d9e9b75f",
        "54298b338cf9f782f2ac681a15e6cbbb99649350"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Mar 25 00:05:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 25 00:05:59 2015 +0000"
      },
      "message": "Merge \"Camera: fix metadata assertion\""
    },
    {
      "commit": "54298b338cf9f782f2ac681a15e6cbbb99649350",
      "tree": "ea9027bd6a83df8488aa7d16d237c51f3c93a269",
      "parents": [
        "676b21b30edbd74d7b9aae247961a1ffde1b8993"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 16:51:41 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 16:51:41 2015 -0700"
      },
      "message": "Camera: fix metadata assertion\n\nBug: 19897963\nChange-Id: I6b383c4750f31691a1c02e927bbeb0c1998a9eff\n"
    },
    {
      "commit": "ae9710473b88592c557488bfcae71616d9e9b75f",
      "tree": "40878341868ee948401ae73696fa857d1ce7a156",
      "parents": [
        "40272963eb8f8d8d7a1f39e6a25ae73bc755e553",
        "062e67a26e0553dd142be622821f493df541f0c6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 24 22:51:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 22:51:26 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: call SPDIF wrapper from AudioFlinger\""
    },
    {
      "commit": "40272963eb8f8d8d7a1f39e6a25ae73bc755e553",
      "tree": "a1d36d5b80c35f7168c592fb03c07f644b253970",
      "parents": [
        "1147314379fccebdb072cd0c1a246b505839a2b0",
        "676b21b30edbd74d7b9aae247961a1ffde1b8993"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 22:41:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 22:41:04 2015 +0000"
      },
      "message": "Merge \"camera: update CameraModule\""
    },
    {
      "commit": "1147314379fccebdb072cd0c1a246b505839a2b0",
      "tree": "2c91d537bfc2ade4684afec9d45f27197b639538",
      "parents": [
        "957af4cef721c1eec1606850e77ad2ef1fd0eb0a",
        "b7fbf7ecc6b034243ec64f79f3113675b5e3c941"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 21:48:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 21:48:04 2015 +0000"
      },
      "message": "Merge \"AudioRecord TRANSFER_OBTAIN can be used with FAST flag\""
    },
    {
      "commit": "343dad3c1ffdd780bbf247ceebb1f2fd344a5d51",
      "tree": "ceadcc9efcfd49c7f0674f9dae45d998508e52bc",
      "parents": [
        "82ceac025459b5b8887441d709081ec29c6b9416",
        "884de21ca32e4a47f77e541a7284d02054ff3349"
      ],
      "author": {
        "name": "Wally Yau",
        "email": "wyau@google.com",
        "time": "Tue Mar 24 20:32:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 20:32:28 2015 +0000"
      },
      "message": "Merge \"Make sure waitRelative is called when waitTime !\u003d INT64_MAX\""
    },
    {
      "commit": "062e67a26e0553dd142be622821f493df541f0c6",
      "tree": "125d28264adfc5b7bd993bb343569eea63bfb95d",
      "parents": [
        "21b51b61ee52e6aa74d98b138d3dd4f0e17b1441"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 11 13:40:50 2015 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 24 13:24:18 2015 -0700"
      },
      "message": "AudioFlinger: call SPDIF wrapper from AudioFlinger\n\nCreate an interface layer between the AudioFlinger and the HAL\nthat manages the wrapping and format conversion.\n\nRemoved unnecessary includes.\nHandle rate conversion in getRenderPosition().\nTry to open HAL with encoded format before wrapping with SPDIF.\n\nBug: 17566660\nChange-Id: I00ad888ca15ff0f85b85efb8167c7f5ea761a244\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "3fac40b9e80e7d27fa613afe22048872f2ff6d9e",
      "tree": "62e4f9248e3cf766ce0ee65d24538f9856e62d52",
      "parents": [
        "ebb80468d8e31e22b867744d86b57bd4bc3186fd",
        "6140c79c31f5dc237fba69554de5be641cedf113"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 24 19:00:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:00:08 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: prevent retrograde timestamps for direct mode\""
    },
    {
      "commit": "676b21b30edbd74d7b9aae247961a1ffde1b8993",
      "tree": "b75567ef13d0c3b235e94fcf3e38d576ab505f96",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Feb 24 10:28:19 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 11:52:20 2015 -0700"
      },
      "message": "camera: update CameraModule\n\n1. Add more accessor methods to CameraModule to prevent exposing\nraw module pointer\n2. Use KeyedVector to replace array\n\nBug: 19897963\n\nChange-Id: I111cc093f09f5fb3c4b13693d5d0687e1f441058\n"
    },
    {
      "commit": "ebb80468d8e31e22b867744d86b57bd4bc3186fd",
      "tree": "1871edf0c2c023d86ed394a66a0e63afb2a49fd5",
      "parents": [
        "6ce2ed7e9d003c4580e2813d657660ef18865df6",
        "231c3d169ad029689f9d688b68179af7e96b8d78"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Mar 24 16:47:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 16:47:10 2015 +0000"
      },
      "message": "Merge \"media: add ResourceManagerService\""
    },
    {
      "commit": "884de21ca32e4a47f77e541a7284d02054ff3349",
      "tree": "d7371afc5d731f607281909dc090cb36950911b2",
      "parents": [
        "ec648447b7dcab701c436a54bd38a1abd8037be1"
      ],
      "author": {
        "name": "Wally Yau",
        "email": "wyau@google.com",
        "time": "Tue Mar 24 09:10:58 2015 -0700"
      },
      "committer": {
        "name": "Wally Yau",
        "email": "wyau@google.com",
        "time": "Tue Mar 24 09:10:58 2015 -0700"
      },
      "message": "Make sure waitRelative is called when waitTime !\u003d INT64_MAX\n\nb/19870971\n\n(cherry picked from commit c600af1459c455583e071e653f0d998032aa423e)\n\nChange-Id: Ic6bb54067d76c96ff6fc45431dc2d72db9f0a3a8\n"
    },
    {
      "commit": "231c3d169ad029689f9d688b68179af7e96b8d78",
      "tree": "09dbf8d4dc47f5698c08190f498357b455a396c7",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Mar 11 15:10:32 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 23 17:02:28 2015 -0700"
      },
      "message": "media: add ResourceManagerService\n\nBug: 19620911\nChange-Id: Iea173d310d31781bc50effe3d9bd6553cb5139eb\n"
    },
    {
      "commit": "b7fbf7ecc6b034243ec64f79f3113675b5e3c941",
      "tree": "c90e057b2756c80dd371adc82e5431bb6e044236",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 18 12:57:28 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:50:42 2015 -0700"
      },
      "message": "AudioRecord TRANSFER_OBTAIN can be used with FAST flag\n\nChange-Id: I001ba1a88150dddf79d99baf5927f31799745eef\n"
    },
    {
      "commit": "6140c79c31f5dc237fba69554de5be641cedf113",
      "tree": "47bd7b5544c7e76f49956629f91168e3b493add7",
      "parents": [
        "377165c24968b044faccaf366a2377fa32143e2f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 19 14:30:21 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 23 12:49:00 2015 -0700"
      },
      "message": "AudioFlinger: prevent retrograde timestamps for direct mode\n\nPrevent retrograde motion in the HAL or drivers from making it\nup through the AudioFlinger to the app.\n\nBug: 19604395\nChange-Id: I11d6c0f7cab69e75fd4b4a2a90f64960b4bb6d5a\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "ad7345c0d3c4e3562a70ad89d797f7473c7be57a",
      "tree": "f52441979e6aebf9b1b618bc7f7b7c665f78a5b7",
      "parents": [
        "d34ed0f51697623456ddbca10ef9ccf5367ce952",
        "d198b85a163330b03e7507c9e8bfeb5f4d958a6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:30:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:30:42 2015 +0000"
      },
      "message": "Merge \"Fix typos\""
    },
    {
      "commit": "d198b85a163330b03e7507c9e8bfeb5f4d958a6c",
      "tree": "0c682560d50acec9efeca2a1d706b3a09c6ecdc5",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 16 14:55:53 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:41 2015 -0700"
      },
      "message": "Fix typos\n\nFix typos in comments\nAdd formal parameter name to declaration where it was missing\nFix out of order comments\n\nChange-Id: I1de81ae82af5ca507864e4c7b959111bac898b98\n"
    },
    {
      "commit": "9efdf956cc2eef63fef609375901d6c8df6351b6",
      "tree": "4e7cfe7a780397d9578bd7860023168ea62519a5",
      "parents": [
        "514d7af22c5d6526309e71fadcff42b072c30241"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Mar 18 23:11:57 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Mar 20 22:34:54 2015 -0700"
      },
      "message": "camera2: Remove ProCamera.\n\nBug: 19186859\nChange-Id: I4aaadb53db65b479f92cbb3c05329d1e40317900\n"
    },
    {
      "commit": "0e4421286b92a81e952f53210227adbf05d97c25",
      "tree": "e9a496cd2d5ec0bc2612e845732c2bbd5447d9fd",
      "parents": [
        "7c963e92bc11d4b6a22696c51f9abf42987a1f74",
        "5b8fde71e08f57478ef25d040fc5f66294011ac6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 01:52:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 01:52:16 2015 +0000"
      },
      "message": "Merge \"Enable full floating point path in AudioMixer\""
    },
    {
      "commit": "446ef2025374cee74ee6291b2a11bfa56017ea74",
      "tree": "52e9819b395aca9bed413d756278c54ff877e99d",
      "parents": [
        "1c15c670928bab5eef6b1a06cf49378abb1e70bf",
        "54b4246bb2025a5dcfdf1611c199998448d28424"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 19 21:18:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 21:18:17 2015 +0000"
      },
      "message": "Merge \"Fix link error of PROCESS_STATE_NONEXISTENT.\""
    },
    {
      "commit": "54b4246bb2025a5dcfdf1611c199998448d28424",
      "tree": "5dbf2230fe538c13d314b8bb9f9aed3077f94bdb",
      "parents": [
        "5a23aa949188fafe1d8d35966ff5a73974294dfd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 19 12:04:54 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 19 13:46:13 2015 -0700"
      },
      "message": "Fix link error of PROCESS_STATE_NONEXISTENT.\n\n* A reference to PROCESS_STATE_NONEXISTENT will cause link error with\n  clang or standard C++ compiler because there is no out-of-class definition,\n  although g++ is allowing it.\n  Use +PROCESS_STATE_NONEXISTENT to get the value instead of reference.\n\nChange-Id: I62049584b94e6847b64b572f6ef6c3e9dcc573eb\n"
    },
    {
      "commit": "1c15c670928bab5eef6b1a06cf49378abb1e70bf",
      "tree": "67a24b196e384cb507fd9a155dbff39638cb315e",
      "parents": [
        "ae21e335e392125168601dba4731c85b5c25f33f",
        "53810823a6613f54fc0b3c3bc0de267dc1f4e1e5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 17:58:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 17:58:27 2015 +0000"
      },
      "message": "Merge \"audio routing management for radio\""
    },
    {
      "commit": "53810823a6613f54fc0b3c3bc0de267dc1f4e1e5",
      "tree": "e65a116aa468a5dd5f1e60fc5ca4a84f949b3714",
      "parents": [
        "b89b86d48cd5a6258e24fefd0eab888062cbdfb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 12 09:12:01 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 10:53:21 2015 -0700"
      },
      "message": "audio routing management for radio\n\nAdded radio tuner device connection/disconnection\nindication to audio policy manager.\n\nAdded documentation and removed unused Module\nclass member.\n\nChange-Id: I92438c1ff212c4d76f008149554fa89e367fee42\n"
    },
    {
      "commit": "ae21e335e392125168601dba4731c85b5c25f33f",
      "tree": "9fc3c0737d1391aa6aa9417b212275688cd3bd00",
      "parents": [
        "5a23aa949188fafe1d8d35966ff5a73974294dfd",
        "b97babb8c08969b55af3b6456d15f764c8873d3f"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Mar 19 17:27:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 17:27:53 2015 +0000"
      },
      "message": "Merge \"Camera: plumbing rotation field through\""
    },
    {
      "commit": "5a23aa949188fafe1d8d35966ff5a73974294dfd",
      "tree": "51100d1057123aa3d7b6fd40a54c2b5611a82172",
      "parents": [
        "d58b2ac7244a964caa3f4e386b8280ae2f5d2125",
        "17c9c998afed5ed9df7495eeed5822f3ed53ebec"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 19 14:49:46 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 14:49:47 2015 +0000"
      },
      "message": "Merge \"Initial implementation of fast capture dump\""
    },
    {
      "commit": "d58b2ac7244a964caa3f4e386b8280ae2f5d2125",
      "tree": "84ef9b168bd3ab9e33c0532dabf33fe328eba334",
      "parents": [
        "377165c24968b044faccaf366a2377fa32143e2f",
        "cc776718c0be7c31fe5ab4fc1446d377be60369f"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Mar 19 05:55:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 05:55:16 2015 +0000"
      },
      "message": "Merge \"camera2: Add camera client eviction enforcement.\""
    },
    {
      "commit": "cc776718c0be7c31fe5ab4fc1446d377be60369f",
      "tree": "c5f0633e27f6c36b938f6a57fea544996ac3d5ae",
      "parents": [
        "f9d19514b3e620b6339c98a442da833a702915ed"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Feb 17 20:18:47 2015 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Mar 18 22:21:21 2015 -0700"
      },
      "message": "camera2: Add camera client eviction enforcement.\n\n- This updates the CameraService to implement client\n  eviction behavior based on process priority.\n\nBug: 19186859\n\nChange-Id: I646939b1cdf1a2237c4e5044164d55a2542cf36e\n"
    },
    {
      "commit": "b97babb8c08969b55af3b6456d15f764c8873d3f",
      "tree": "e972ec2e9ff83219464a753f4298aa37c3220e55",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Mar 12 13:42:44 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Mar 18 14:15:12 2015 -0700"
      },
      "message": "Camera: plumbing rotation field through\n\nChange-Id: I0f4343a0bfa7bf09ba887c78a1da1c08daa35333\n"
    },
    {
      "commit": "a1a847a509c5670276568d9945509677d92507ed",
      "tree": "040a4e6c97488ca5f775ce3395d719ea90d45b14",
      "parents": [
        "4604458dfe57b0e91a464aefafea50ae7b9876c1",
        "240934ba80d6c6165749db7681d243c6857a092f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 17 22:50:13 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 17 22:50:14 2015 +0000"
      },
      "message": "Merge \"audioflinger: refresh fast track underrun state upon start\""
    },
    {
      "commit": "74bebe401dd966308f29b0c4f42cf6946dc64582",
      "tree": "cc6666875298f58e252864f303c1736eea44f4e3",
      "parents": [
        "8952c68ecea34cd58245577636b51a5124706893",
        "f59497bd3c190e087202043de5450ef06e92b27d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 16 20:42:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 20:42:24 2015 +0000"
      },
      "message": "Merge \"Update comments\""
    },
    {
      "commit": "b89b86d48cd5a6258e24fefd0eab888062cbdfb0",
      "tree": "303d41e3b6c9bed19e795d8b660bf3cb26461945",
      "parents": [
        "0125d057ff7581c77f23c5d72a55f169b57abcc2",
        "4e09069a29fc18d0799808cc26f71e9b068e98ad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 16 18:27:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 18:27:59 2015 +0000"
      },
      "message": "Merge \"radio service initial implementation\""
    }
  ],
  "next": "240934ba80d6c6165749db7681d243c6857a092f"
}
