)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "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\""
    }
  ],
  "next": "062e67a26e0553dd142be622821f493df541f0c6"
}
