)]}'
{
  "log": [
    {
      "commit": "6d1c8480c61c168e798876c0a3ef44ae17eb7630",
      "tree": "40499258fc5808d8f740d54620b55c67f64ea0ca",
      "parents": [
        "1a93f0cbb99fc5a59c92bd913f29409022ae236d",
        "1a1cba8f9a93db188b09d9754987354029129113"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 10 02:18:54 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 10 02:18:54 2014 +0000"
      },
      "message": "Merge \"sound trigger: stop recognition on sound model unload\""
    },
    {
      "commit": "1a1cba8f9a93db188b09d9754987354029129113",
      "tree": "29e1dae92ddbac430d3334cf6644f8109d27f599",
      "parents": [
        "7e45ef9db7446d33c941961c14555413641e444b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 09 16:20:05 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 09 16:20:05 2014 -0700"
      },
      "message": "sound trigger: stop recognition on sound model unload\n\nForce a stop recognition command to the HAL when\nunloading a sound model and recognition is still active.\n\nChange-Id: I7379a64a37bbc3eeea08e0e1d59e427de9544a10\n"
    },
    {
      "commit": "51fabcd581f293db52997b0d43b2ef606d5759ff",
      "tree": "9b31ce5e95bdcbcd62aa6bf2a555ba7971a0fe10",
      "parents": [
        "59a8923027d2d6a155c0fa434ae65559318da4b6",
        "546734b3ab577d46afe863515104a062e88a109b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 09 17:57:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 09 17:57:30 2014 +0000"
      },
      "message": "Merge \"Add tests directory for AudioFlinger\""
    },
    {
      "commit": "59a8923027d2d6a155c0fa434ae65559318da4b6",
      "tree": "abab0761e566b204ef399689ef6e1bd5004357b4",
      "parents": [
        "7e45ef9db7446d33c941961c14555413641e444b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jun 08 14:14:17 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jun 08 14:16:32 2014 -0700"
      },
      "message": "audio policy service: fix potential deadlock in destructor\n\nIn the AudioCommandThread loop, release mLock before releasing\nthe strong reference on the service as AudioPolicyService destructor\ncalls AudioCommandThread::exit() which acquires mLock.\n\nAlso check exiPending in thread loop before processing pending\ncommands or sleeping.\n\nBug: 15449050.\n\nChange-Id: I148bf21bd67ef721b5b5ee2c1a6afb185c59daa3\n"
    },
    {
      "commit": "7e45ef9db7446d33c941961c14555413641e444b",
      "tree": "b3e2dca352431bace292402d2498f888ebd7a377",
      "parents": [
        "3e648747e7e40752580ae7fd0ff2e803623680cd",
        "318cd78e3b8503113919191b3711eb8be5d23d35"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 07 10:01:16 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 07 10:01:16 2014 +0000"
      },
      "message": "am 318cd78e: Merge \"audio policy: added audio HAL version in audio_policy.conf\" into lmp-preview-dev\n\n* commit \u0027318cd78e3b8503113919191b3711eb8be5d23d35\u0027:\n  audio policy: added audio HAL version in audio_policy.conf\n"
    },
    {
      "commit": "eb108a4622825688b02d7afc981014d149913cd8",
      "tree": "73249a1268ee3228dffce25aa8eb15caabdc96c6",
      "parents": [
        "270facca297275a4889d1cc49ec4d2768ed38bb7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 06 14:56:52 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 06 16:03:28 2014 -0700"
      },
      "message": "audio policy: added audio HAL version in audio_policy.conf\n\nEach hardware module section in audio_policy.conf indicates\nthe audio HAL version it implements.\n\nAlso added a template audio_policy.conf file with examples\nof device and gain descriptors added for audio HAL version3.0.\n\nBug: 14815883.\nChange-Id: Id219d121f81f687363f6c18f2d1684b2448dcdf4\n"
    },
    {
      "commit": "6f264ac08317a27958f2b0d3c35133b368dd9f3c",
      "tree": "c63d0ac223050f31b72e579fc2f6da715a944b2b",
      "parents": [
        "a78df9591c698834f3d57f6e882e4b0af5f8f473",
        "ccd8e4a9da4d0bcc2c715452c5a18fabb23f86ac"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 06 17:57:44 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 06 17:57:45 2014 +0000"
      },
      "message": "Merge \"Audio policy: new media volume curve for speaker with DRC\""
    },
    {
      "commit": "32ff60c6ec297256b59b6ce4f3cb341a0f4638dd",
      "tree": "70be9da0b31f9d9822d25469bc987fb89a4664f4",
      "parents": [
        "5981fc5acb23eecf659bed49f29354b440cbb68e",
        "45df31f511ba9ae9b45c769fc546eca4bcf4bbdb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 05 23:41:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 05 23:41:06 2014 +0000"
      },
      "message": "am 45df31f5: Merge \"AudioFlinger: fix PatchPanel debug log.\" into lmp-preview-dev\n\n* commit \u002745df31f511ba9ae9b45c769fc546eca4bcf4bbdb\u0027:\n  AudioFlinger: fix PatchPanel debug log.\n"
    },
    {
      "commit": "ccd8e4a9da4d0bcc2c715452c5a18fabb23f86ac",
      "tree": "3bb21cccad3d17874ae31311ce8fabed5b873966",
      "parents": [
        "f3e7f11f419eef7cba752936e637b4f1b70267f4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 05 15:33:20 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 05 15:33:20 2014 -0700"
      },
      "message": "Audio policy: new media volume curve for speaker with DRC\n\nFor devices with DRC on speaker (using the flag \"speaker_drc_enabled\"\n in audio_policy.conf), set the speaker media volume to use a\n new curve with more aggressive attenuation in the upper range.\n\nBug 15318604\n\nChange-Id: Ia5fb9fdd608fddad22fadfb1065d35574030bb52\n"
    },
    {
      "commit": "45df31f511ba9ae9b45c769fc546eca4bcf4bbdb",
      "tree": "e89dda6d084ad3c844a15361309ec996b509433d",
      "parents": [
        "1a392aa114a7aeacc0464b56d4392449b8782542",
        "24478d47fc631ab33208f4dd9d034abb6839c992"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 05 17:26:30 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 05 17:26:31 2014 +0000"
      },
      "message": "Merge \"AudioFlinger: fix PatchPanel debug log.\" into lmp-preview-dev"
    },
    {
      "commit": "4fa0bb24d51a8af69db9796f909fee6b61428cf4",
      "tree": "2633c0de5a3851bdc783bf233377d7c524bb9558",
      "parents": [
        "03873edded28f88b5bdbe44fbf2e5ca071c6f10e",
        "b7a11d83f749ad0200778c4815e907d011d4b5d3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 05 15:32:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 05 15:32:54 2014 +0000"
      },
      "message": "Merge \"add sound trigger native service\""
    },
    {
      "commit": "c263ca0ad8b6bdf5b0693996bc5f2f5916e0cd49",
      "tree": "d513a586c518ed6f061cf446a5f2e3e18017b4f2",
      "parents": [
        "cc839bd4727be02d9352f46d043a7e9cc9c7d642"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 04 20:31:46 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 05 03:36:20 2014 +0000"
      },
      "message": "Squashed commit of the following:\n\ncommit 9128d6ffec43731d723f9b394f243d940f4c7e41\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Tue May 13 10:38:42 2014 -0700\n\n    Use of fast capture by normal capture\n\n    Will only configure fast capture path if the input buffer size is less than\n    10 ms and the input sample rate is same as the primary output sample rate.\n\n    Change-Id: I4a7cdc6069d750845412c626d27e83f72a1ab397\n\ncommit 2e5e0806a5abe7499848358ef5fde5c26405000d\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Mon Jun 2 08:29:22 2014 -0700\n\n    Add mPrimaryOutputSampleRate\n\n    Change-Id: I46b527fc3f2b5a5720a74b4f0b9a8f2e0d570b09\n\ncommit baf1d73467923996d1b1f2a9237260cc5697e050\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 30 10:42:03 2014 -0700\n\n    Change parameter type for volume to float in AudioMixer\n\n    Change-Id: I4da1505ce852505f86f8e5b87f60e8edceeb30e0\n\ncommit 40fe20fa9760cd03c69778c2021cf7a490d75ece\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 30 10:35:47 2014 -0700\n\n    Rename UNITY_GAIN to UNITY_GAIN_INT in AudioMixer\n\n    Change-Id: Ic040311305026f0b4c4280a5b3bef7a447ac1da3\n\ncommit 37c9a2b49f876abc5ff537a9ec036d7f0a423775\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Thu May 29 21:33:13 2014 -0700\n\n    Refactor setVolumeRampVariables in AudioMixer\n\n    Change-Id: I8fcf3101bcea292de7c65433fa578f1c9cdd0974\n\ncommit 397070eca31f121d5d3993de1bfea99aaea5d4f3\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Thu May 29 18:52:38 2014 -0700\n\n    Fix floating point output from mixer\n\n    A buffer pointer was being erroneously reset to buffer start,\n    potentially causing an audio glitch. The floating point\n    output mode is not enabled at this time, but will be in\n    the future.\n\n    Change-Id: If8b6414d232f064f3a2e2c5a6da889a91b27fb24\n\ncommit 2e61aa5b33b2247bbc5d4eaa0b519df9accd4bbc\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 23 21:22:17 2014 -0700\n\n    Add multiple format capability to FastMixer\n\n    Floating point data from MixerThread into FastMixer.\n    Multiple output format capability from FastMixer to Sink.\n\n    Change-Id: I0da17810ee71381a39a006c46faec71108d22c26\n\ncommit b9ea653c702a785bbd23a66c5e588d40b4192c4e\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Thu May 29 15:53:09 2014 -0700\n\n    Avoid resetting BufferProviders in mixer unnecessarily\n\n    Change-Id: Iad85c4dfd21be1dbf89dc11906106b34219376f8\n\ncommit 7f1a6d6da21c616f80cf9ba21bea11b419ec561b\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Tue May 27 12:32:17 2014 -0700\n\n    Update dynamic resampler buffer fetching\n\n    Make the criteria tight for fetching to avoid storing\n    excessive frame data internal to the resampler.\n    This should reduce jitter in frame delivery computation.\n\n    Bug: 14962343\n    Change-Id: I7adaf714d11c272696ccdbf218bda994c7217477\n\ncommit b5e4aac07b9a02f0c803c090058602b03ac09ebb\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Tue May 27 12:30:54 2014 -0700\n\n    Allow kFastTrackMultiplier to be specified per device\n\n    Change-Id: I4eaaaf038df720cec4f5d9221d1b632970f9e3dd\n\ncommit b93cd97a52af31122df2da2cc0415cda888c8c73\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 23 21:13:31 2014 -0700\n\n    Rename mixBuffer to mMixerBuffer in FastMixer\n\n    Likewise mixBufferState becomes mMixerBufferState.\n    This harmonizes with the naming in AF::MixerThread.\n\n    Change-Id: I1255d7c07cc2c6ee925d7430925236d2bd163122\n\ncommit 8340758622b9711365a8801806cbdf934803c63f\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Mon May 12 16:51:41 2014 -0700\n\n    Add multiple format capability to AudioMixer\n\n    Change-Id: I04ac1cafd90b6ed652f8d51888ad07576678f0bc\n    Signed-off-by: Andy Hung \u003chunga@google.com\u003e\n\ncommit 6b695b9d094820c232a897a3fabbe83d2b7193fe\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Thu Mar 13 14:59:31 2014 -0700\n\n    Start adding FastCapture based on FastThread WIP\n\n    This version supports at most one fast capture client.\n\n    Change-Id: Idf609bfc80ae22433433d66a5232c043c65506df\n\ncommit e951ad05a2c388471d7e2806d91e7d51325a150a\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Mon May 12 11:06:26 2014 -0700\n\n    Move validation of frameCount from set to openRecord_l\n\n    This move is needed because frameCount is validated on server side for\n    fast tracks (as should be done for normal tracks too).\n\n    Change-Id: I6d99e80869fd90fab373cf60ef348c01f075fbca\n\ncommit 73e76992dbba794894837c38e5472312ea829cf3\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Tue May 13 10:41:52 2014 -0700\n\n    Allow track buffer \"allocation\" to be from pipe\n\n    Change-Id: Ib9ac170f8e8b7746b3588157a56cbee3b753a1cb\n\ncommit 60de1d7ded05c6304037d4858b401094b1d2b4d3\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 9 15:02:21 2014 -0700\n\n    Add format parameter to getTrackName() and track_t\n\n    Change-Id: Ia152a839014e235fbfb656104c15d7c1b456d02e\n    Signed-off-by: Andy Hung \u003chunga@google.com\u003e\n\nChange-Id: Ied0ade8b25d23e89bb03319a7e3135c238f735b9\n"
    },
    {
      "commit": "24478d47fc631ab33208f4dd9d034abb6839c992",
      "tree": "386cecb452110d9959ce43eef557d05c822fea83",
      "parents": [
        "62aaabb3905c61bb7acd6037414c206240a31c32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 20:02:57 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 20:02:57 2014 -0700"
      },
      "message": "AudioFlinger: fix PatchPanel debug log.\n\nBug: 14815883.\nChange-Id: I71cf2ef74a96d3cdb27f2beb1b76b8979c738335\n"
    },
    {
      "commit": "f1caa55fbe2a32a27968d7be2f0cd134e412db4d",
      "tree": "801f5ed5e874a74a5b9ab75ad7fc032b1392a8c4",
      "parents": [
        "e40ed90293eeb0feecb5b7729cf24f8ecea9b412",
        "717007429a50c02d2acc704a8c1ebbe6760a2c22"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 05 02:17:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 05 02:17:40 2014 +0000"
      },
      "message": "Merge \"Update resampler to fetch exactly the frames needed\""
    },
    {
      "commit": "e40ed90293eeb0feecb5b7729cf24f8ecea9b412",
      "tree": "6b55972e93b923428542481d4d9078c98f533cb1",
      "parents": [
        "a408743e8a759b344ac95322ae336459a81edf24",
        "26594add1ec0b6255c96b39e43ccdc95b2c480aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 23:42:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 04 23:42:59 2014 +0000"
      },
      "message": "am 26594add: Merge \"audio policy: new setAudioPortConfig implementation\" into lmp-preview-dev\n\n* commit \u002726594add1ec0b6255c96b39e43ccdc95b2c480aa\u0027:\n  audio policy: new setAudioPortConfig implementation\n"
    },
    {
      "commit": "b7a11d83f749ad0200778c4815e907d011d4b5d3",
      "tree": "28c744c0e8fe9c1f198ddd0999b4c5d95de9610a",
      "parents": [
        "24c01a8417fe195e5ba2187dbbdf9bd1e3a6553f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 18 17:40:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 15:34:20 2014 -0700"
      },
      "message": "add sound trigger native service\n\nChange-Id: I0cd954c1c7d28a334e786d0004431d4f6a1227ec\n"
    },
    {
      "commit": "a408743e8a759b344ac95322ae336459a81edf24",
      "tree": "c36db0a504d7c4ff0dc1e983173e80c4c9f99ffc",
      "parents": [
        "aaaea95d23b78313b7ddf1f8f670c9b0110474ed",
        "4bd9d45230cd69c0409591874db3e6f2e3a226b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 21:31:53 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 04 21:31:53 2014 +0000"
      },
      "message": "am 4bd9d452: Merge \"audio policy: removed raw pointers.\" into lmp-preview-dev\n\n* commit \u00274bd9d45230cd69c0409591874db3e6f2e3a226b3\u0027:\n  audio policy: removed raw pointers.\n"
    },
    {
      "commit": "aaaea95d23b78313b7ddf1f8f670c9b0110474ed",
      "tree": "4578ba5d93614c020077dfd99fc28c9218779da3",
      "parents": [
        "8f4e502b372d06c718fb49c84201010e78a34e46",
        "83438ce6cbbff49ca26d4bd694ffdad4842ded5a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 21:31:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 04 21:31:52 2014 +0000"
      },
      "message": "am 83438ce6: Merge \"audio policy: add permission for routing APIs.\" into lmp-preview-dev\n\n* commit \u002783438ce6cbbff49ca26d4bd694ffdad4842ded5a\u0027:\n  audio policy: add permission for routing APIs.\n"
    },
    {
      "commit": "a121f90f388343dc48793cbc7eb899aba42e7664",
      "tree": "a35526f7ec819e7e539c537fcf4b1b3b5d06a6fc",
      "parents": [
        "1f2f2230900581e5de9cf01a883e5d9338f0df94"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 03 13:32:54 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 09:30:28 2014 -0700"
      },
      "message": "audio policy: new setAudioPortConfig implementation\n\nRewrite setAudioPortConfig() to take advantage of the new\nAudioPortConfig class.\n\nThe configuration is now checked against AudioPort capabilities\nand stored in the AudioPortConfig.\n\nFix a bug where the config mask was not set properly when calling\nsetAudioPortConfig at the PatchPanel interface.\n\nRemove debug log in IAudioPolicyService.\n\nBug: 14815883.\nChange-Id: I7eb7683a96e049581c13f2a212486507883d008d\n"
    },
    {
      "commit": "1f2f2230900581e5de9cf01a883e5d9338f0df94",
      "tree": "373772b95144b74c73bce02e05ba0026432cddea",
      "parents": [
        "5284ed53c14cd4d15bd793000ede7166d143e69a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 12:01:23 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 03 17:41:57 2014 -0700"
      },
      "message": "audio policy: removed raw pointers.\n\nUse only RefBase objects for the following classes:\n- AudioOutputDescriptor\n- AudioInputDescriptor\n- HwModule\n- EffectDescriptor\n\nCreate a common base class AudioPortConfig for:\nAudioOutputDescriptor, AudioInputDescriptor and DeviceDescriptor\n\nBug: 14815883.\n\nChange-Id: I1bd193ef1020780d8b94c13142029903615aba97\n"
    },
    {
      "commit": "717007429a50c02d2acc704a8c1ebbe6760a2c22",
      "tree": "5eca5ca9a10704a55774dd8a18006a19d1a99bd7",
      "parents": [
        "8f415570afb174f0781d8bf6b1c0fa6bdecca7cd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 02 18:54:08 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 03 11:47:15 2014 -0700"
      },
      "message": "Update resampler to fetch exactly the frames needed\n\nThis avoids unnecessary overfetching/releasing, which\ncould cause problems with the upstream AudioBufferProvider.\nA one input sample delay is placed on the stream compared\nwith the previous implementation.\n\nThis change only affects the Dynamic resampler.\n\nChange-Id: Ic7fcff130e0081b4724cfb5a00dc8e8b4a8b1af3\n"
    },
    {
      "commit": "8f415570afb174f0781d8bf6b1c0fa6bdecca7cd",
      "tree": "dd7c2bfd0a24375fd1d45e39676ad04ccfecdae8",
      "parents": [
        "93f87fe162f6c18a296451d388ea68e76fd67fb6",
        "6be494077f8d7970f3a88129c5d139c5a0c88f6d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 02 23:56:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 23:56:45 2014 +0000"
      },
      "message": "Merge \"Change parameter type for volume to float in AudioMixer\""
    },
    {
      "commit": "93f87fe162f6c18a296451d388ea68e76fd67fb6",
      "tree": "49af70dde3bd32cfbcc6c4a365b7a2ed73ebd0ee",
      "parents": [
        "9dc6699fd613c29fe08ef7bc0d32052c8ce297c1",
        "97ae82408469286426d8dc57a361350f74e24a8b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 02 23:32:27 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 23:32:27 2014 +0000"
      },
      "message": "Merge \"Rename UNITY_GAIN to UNITY_GAIN_INT in AudioMixer\""
    },
    {
      "commit": "9dc6699fd613c29fe08ef7bc0d32052c8ce297c1",
      "tree": "fdc8c8e89b41e62bf0b2d3eef5692bb5cfba0bdd",
      "parents": [
        "740a5ca81f6498b34baea04bb0fb3fc29fe1e135",
        "6dbb5e3336cfff1ad51d429fcb847307c06efd61"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 02 22:53:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 22:53:59 2014 +0000"
      },
      "message": "Merge \"Use of fast capture by normal capture\""
    },
    {
      "commit": "740a5ca81f6498b34baea04bb0fb3fc29fe1e135",
      "tree": "a80645fd6a39cd6b78cae517d4db62192e5eda2b",
      "parents": [
        "4ea00a25cf85877b48ebd1e15a657cfaab29af58",
        "5866a3b9689035580c31f1a02037b8176d7508a7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 02 22:36:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 22:36:48 2014 +0000"
      },
      "message": "Merge \"Refactor setVolumeRampVariables in AudioMixer\""
    },
    {
      "commit": "6dbb5e3336cfff1ad51d429fcb847307c06efd61",
      "tree": "1918b6cde40e188641e729b6bbde39cce81085bd",
      "parents": [
        "4ea00a25cf85877b48ebd1e15a657cfaab29af58"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 13 10:38:42 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 02 11:30:29 2014 -0700"
      },
      "message": "Use of fast capture by normal capture\n\nWill only configure fast capture path if the input buffer size is less than\n10 ms and the input sample rate is same as the primary output sample rate.\n\nChange-Id: I4a7cdc6069d750845412c626d27e83f72a1ab397\n"
    },
    {
      "commit": "4ea00a25cf85877b48ebd1e15a657cfaab29af58",
      "tree": "1f6d698e24a4907d269116d566488874c6a64089",
      "parents": [
        "43466a133984182b250453cea244eb146e83c010"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 02 08:29:22 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 02 11:29:42 2014 -0700"
      },
      "message": "Add mPrimaryOutputSampleRate\n\nChange-Id: I46b527fc3f2b5a5720a74b4f0b9a8f2e0d570b09\n"
    },
    {
      "commit": "5284ed53c14cd4d15bd793000ede7166d143e69a",
      "tree": "8a18ea6e8776d3118467d6491743edc97f231bf8",
      "parents": [
        "62aaabb3905c61bb7acd6037414c206240a31c32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 14:37:38 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 11:05:58 2014 -0700"
      },
      "message": "audio policy: add permission for routing APIs.\n\nAdd check for signature or system permission\n\"android.permission.MODIFY_AUDIO_ROUTING\" for routing\nAPIs.\n\nBug: 14815883.\nChange-Id: Iefa0b9d90127a53e03a2e6d50dc93d8f4ae63e2f\n"
    },
    {
      "commit": "43466a133984182b250453cea244eb146e83c010",
      "tree": "f886c3055b17c1f4b95fae4e7dc85d4520a83336",
      "parents": [
        "cc19c8b58a48a0d090ea9d9897664f9817e7bac1",
        "62aaabb3905c61bb7acd6037414c206240a31c32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 17:57:13 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 02 17:57:13 2014 +0000"
      },
      "message": "am 62aaabb3: audio policy: fix unitialized hw module in audio port\n\n* commit \u002762aaabb3905c61bb7acd6037414c206240a31c32\u0027:\n  audio policy: fix unitialized hw module in audio port\n"
    },
    {
      "commit": "62aaabb3905c61bb7acd6037414c206240a31c32",
      "tree": "55b1f59fa16bc0cf762c88a96e5a5f9a5d82d08c",
      "parents": [
        "e1715a465a29db625da9d0ea365edf371e39e201"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 10:40:54 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 10:40:54 2014 -0700"
      },
      "message": "audio policy: fix unitialized hw module in audio port\n\nThe hw module handle was not initialized when creating\nand audio port configuration from an input stream descriptor.\n\nBug 15376641.\n\nChange-Id: I6c784cded68a5c665fd22c3643765c63f70eb241\n"
    },
    {
      "commit": "d28148537693b19320f3c3b5b34816d45542e9bd",
      "tree": "83024443aa56ab67e402b3af0c7bb822ce6ffa6d",
      "parents": [
        "24c01a8417fe195e5ba2187dbbdf9bd1e3a6553f",
        "f8a106ae5c40735de6c75e7c12d5e0e2e22f12cf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 02 17:27:26 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 02 17:27:27 2014 +0000"
      },
      "message": "Merge \"Fix floating point output from mixer\""
    },
    {
      "commit": "e28456465fca86ed1b8b2225de073cfba64c7c42",
      "tree": "120bfbd459e4baecb28b73d7b7e2edb5a70b5750",
      "parents": [
        "481c8837c7f67852e06137d636915ea6e96247e3",
        "f91df1b368a140abd37c80b204bd48d78778cc43"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jun 01 19:39:54 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 01 19:39:54 2014 +0000"
      },
      "message": "Merge \"Start adding FastCapture based on FastThread WIP\""
    },
    {
      "commit": "481c8837c7f67852e06137d636915ea6e96247e3",
      "tree": "04503e831053d7a8df184ab5592ec4c7521d9671",
      "parents": [
        "68f5fb51f6ef2f54a0955bac98c16c2aa811f809",
        "e1715a465a29db625da9d0ea365edf371e39e201"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 31 01:55:53 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat May 31 01:55:53 2014 +0000"
      },
      "message": "am e1715a46: audio policy: add audio port gain control\n\n* commit \u0027e1715a465a29db625da9d0ea365edf371e39e201\u0027:\n  audio policy: add audio port gain control\n"
    },
    {
      "commit": "68f5fb51f6ef2f54a0955bac98c16c2aa811f809",
      "tree": "d7979d3a6bb0b3c988f00994a770f693101b2caf",
      "parents": [
        "72aa32f7dbbfb658097930b57659d8e50f24a953",
        "1afeecb88bea660b2c10b2096be0fd02433303ce"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 31 01:55:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat May 31 01:55:47 2014 +0000"
      },
      "message": "am 1afeecb8: audio policy: parse device descriptors in config file\n\n* commit \u00271afeecb88bea660b2c10b2096be0fd02433303ce\u0027:\n  audio policy: parse device descriptors in config file\n"
    },
    {
      "commit": "72aa32f7dbbfb658097930b57659d8e50f24a953",
      "tree": "7033c38865bfdb413c5ca891fd4f6d0a98a84d99",
      "parents": [
        "cf570853ee36eeb58be38ea3dac16a17c6a5d4ba",
        "b52c152d553556b2d227ffc943489de0c60b4b02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 18:51:48 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 18:53:14 2014 -0700"
      },
      "message": "resolved conflicts for merge of b52c152d to master\n\nChange-Id: I34869bda071d511c9595ea0a5ff6571eb34da059\n"
    },
    {
      "commit": "e1715a465a29db625da9d0ea365edf371e39e201",
      "tree": "771fdda7b99935e05e7b3c36487abf523930dd34",
      "parents": [
        "1afeecb88bea660b2c10b2096be0fd02433303ce"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:30:42 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 17:22:58 2014 -0700"
      },
      "message": "audio policy: add audio port gain control\n\nImplement setAudioPortConfig() API to configure an\naudio port.\nCurrently limited to gain control.\n\nBug: 14815883.\n\nChange-Id: Ic1b268e5ba5c277e9f5b8fa63c81dd7c0b250024\n"
    },
    {
      "commit": "6be494077f8d7970f3a88129c5d139c5a0c88f6d",
      "tree": "8c77f163bd84e808693832666d29b42f73361fc5",
      "parents": [
        "97ae82408469286426d8dc57a361350f74e24a8b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 10:42:03 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 17:07:44 2014 -0700"
      },
      "message": "Change parameter type for volume to float in AudioMixer\n\nChange-Id: I4da1505ce852505f86f8e5b87f60e8edceeb30e0\n"
    },
    {
      "commit": "97ae82408469286426d8dc57a361350f74e24a8b",
      "tree": "09d2ac62b57d06d0d100ce5bc93fb8a05a27398d",
      "parents": [
        "5866a3b9689035580c31f1a02037b8176d7508a7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 10:35:47 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 16:44:32 2014 -0700"
      },
      "message": "Rename UNITY_GAIN to UNITY_GAIN_INT in AudioMixer\n\nChange-Id: Ic040311305026f0b4c4280a5b3bef7a447ac1da3\n"
    },
    {
      "commit": "5866a3b9689035580c31f1a02037b8176d7508a7",
      "tree": "08a64587fe6bfe3947cb18409df9d2b812c9749f",
      "parents": [
        "f8a106ae5c40735de6c75e7c12d5e0e2e22f12cf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 29 21:33:13 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 15:14:13 2014 -0700"
      },
      "message": "Refactor setVolumeRampVariables in AudioMixer\n\nChange-Id: I8fcf3101bcea292de7c65433fa578f1c9cdd0974\n"
    },
    {
      "commit": "f8a106ae5c40735de6c75e7c12d5e0e2e22f12cf",
      "tree": "ae89a14bbedd04e58d6115ce550a7f462c3a53db",
      "parents": [
        "47aaf6da5d7ecc2ad28de004d1820b64b02dd344"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 29 18:52:38 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 14:50:20 2014 -0700"
      },
      "message": "Fix floating point output from mixer\n\nA buffer pointer was being erroneously reset to buffer start,\npotentially causing an audio glitch. The floating point\noutput mode is not enabled at this time, but will be in\nthe future.\n\nChange-Id: If8b6414d232f064f3a2e2c5a6da889a91b27fb24\n"
    },
    {
      "commit": "671714b80cad4725d07691fbd8284cb869a0c27f",
      "tree": "a7e8983cc01ab51f76ecb5e452b49a2ce8c166a9",
      "parents": [
        "47aaf6da5d7ecc2ad28de004d1820b64b02dd344",
        "6a94d69dc4f32abb53c466a96f905bb199be6417"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 21:32:33 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 30 21:32:33 2014 +0000"
      },
      "message": "am 6a94d69d: audio policy: implement routing control\n\n* commit \u00276a94d69dc4f32abb53c466a96f905bb199be6417\u0027:\n  audio policy: implement routing control\n"
    },
    {
      "commit": "47aaf6da5d7ecc2ad28de004d1820b64b02dd344",
      "tree": "3c2ed536ac9cd97d9278f6427ecaffd540c999d6",
      "parents": [
        "c0008d1146ccdeda0a4eb08f8225225b1b1237dc",
        "1258c1ab592a899fabb1e31eb5db2ef413b6f38a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 17:30:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 17:30:06 2014 +0000"
      },
      "message": "Merge \"Add multiple format capability to FastMixer\""
    },
    {
      "commit": "c0008d1146ccdeda0a4eb08f8225225b1b1237dc",
      "tree": "93f3dc49ecedc7d5368a4616aed9f0c3ea5feb75",
      "parents": [
        "0c2cb9bcfd30856ceb83544c04f47b52e8924c52",
        "b71e58b64cd4992355cf6afaf3f3530f723bc72c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 17:09:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 17:09:04 2014 +0000"
      },
      "message": "Merge \"handle in and out audio device connection separately\""
    },
    {
      "commit": "1258c1ab592a899fabb1e31eb5db2ef413b6f38a",
      "tree": "17bd7e0084b3089a8a66afeaf9a560a58ef4715d",
      "parents": [
        "798ce934571bc7eb5715bf1c03cbe5436a1220e3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 21:22:17 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 29 18:17:02 2014 -0700"
      },
      "message": "Add multiple format capability to FastMixer\n\nFloating point data from MixerThread into FastMixer.\nMultiple output format capability from FastMixer to Sink.\n\nChange-Id: I0da17810ee71381a39a006c46faec71108d22c26\n"
    },
    {
      "commit": "1afeecb88bea660b2c10b2096be0fd02433303ce",
      "tree": "51538ff8734b90c48dd477bfe88734784f5ec1f7",
      "parents": [
        "b52c152d553556b2d227ffc943489de0c60b4b02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 14 08:52:28 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 18:02:06 2014 -0700"
      },
      "message": "audio policy: parse device descriptors in config file\n\nImplement parsing of audio_policy.conf for device and gain\ncontroller definitions.\nCopy audio_policy_conf.h from hardware_legacy.\nNew syntax for devices and gain controllers description will not\nbe parsed by legacy audio policy manager.\n\nBug: 14815883.\n\nChange-Id: I7f1035d514dcf55fb3e45ed1f633a2f63ee398f5\n"
    },
    {
      "commit": "b52c152d553556b2d227ffc943489de0c60b4b02",
      "tree": "bcaca952efbd1ffa7eefa7251beafc3d2574a04a",
      "parents": [
        "6a94d69dc4f32abb53c466a96f905bb199be6417"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:27:36 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 18:01:58 2014 -0700"
      },
      "message": "audio policy: add routing update client interface\n\nAdded IAudioPolicyServiceClient client binder interface\nfor client process to receive notifications from AudioPolicyService\nwhen audio ports are added/removed or audio patches created/released.\n\nThe audio patches owned by a given client are automatically released when\nthis client binder dies.\n\nBug: 14815883.\n\nChange-Id: I6013f6aec03b50565cffb1ad2cd1f0f8852032c5\n"
    },
    {
      "commit": "6a94d69dc4f32abb53c466a96f905bb199be6417",
      "tree": "eef3552877f202429801a0b20f2ae31aad7801e7",
      "parents": [
        "32f93b7bedc44b425ba99d69dec998334e759532"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:18:06 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 17:57:55 2014 -0700"
      },
      "message": "audio policy: implement routing control\n\nAdd implementation of audio routing control via AudioSystem APIs.\n\nThe following APIs are implemented:\n- listAudioPorts(): return a list of devices and output/input mixers ports\nthat can be used as sources or sinks for audio patches.\n- createAudioPatch()/releaseAudioPatch(): create/release a connection patch between\ntwo audio ports (e.g. to connect input from an HDMI device to a speaker output device).\nOnly one client application can own a patch from a given source.\nWhen an audio port (device or mix) is part of an application created patch, its routing cannot\nnot be changed by a policy decision.\n- listAudioPatches(): return a list of existing patches.\n\nEach audio port addition/removal and each audio patch creation/release increments a generation count.\nThis generation count is used to ensure consistency betwen calls to\nlistAudioPorts() and listAudioPatches().\n\nBug: 14815883.\n\nChange-Id: I022b638c2f5f0bb41543c7cfca7488fb45cfdd80\n"
    },
    {
      "commit": "b71e58b64cd4992355cf6afaf3f3530f723bc72c",
      "tree": "5265fb32aadca2e2a3d1d83e4ba62c0ff0f83edb",
      "parents": [
        "5584c58c7c952b5ed891bbff3b00a0be3f96196d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 16:08:11 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 16:08:11 2014 -0700"
      },
      "message": "handle in and out audio device connection separately\n\nAudioService now indicates in and out device connection\nseparately in case of combined devices like wired headset\nor BT SCO headset.\n\nChange-Id: I97adf8343d0ce32c279ffc3cce5c84ca7a349e16\n"
    },
    {
      "commit": "1d26ddf715182d6082804ff70086c47fb8c354b8",
      "tree": "83c47b23e1ba0cd3180d5845746c83c6fba3c037",
      "parents": [
        "798ce934571bc7eb5715bf1c03cbe5436a1220e3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 29 15:53:09 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 29 15:56:33 2014 -0700"
      },
      "message": "Avoid resetting BufferProviders in mixer unnecessarily\n\nChange-Id: Iad85c4dfd21be1dbf89dc11906106b34219376f8\n"
    },
    {
      "commit": "7dac33136d71ea566de4531235f5fbbd28048f0c",
      "tree": "5113bed5243047973607aa79fe7dc76541efe038",
      "parents": [
        "52457fac03ef78aadd451f97a1f870c43b54d7d7",
        "411cb8e45442d16d983a38722c7c7bce487bde6b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 29 00:05:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 00:05:57 2014 +0000"
      },
      "message": "Merge \"Update dynamic resampler buffer fetching\""
    },
    {
      "commit": "1afdf38e0d8979e0a6bd5f3cc9b6751ca132753e",
      "tree": "6434583aecf561dc9dbed24e4167f654d50ff157",
      "parents": [
        "1e5308df326522ac925086bbd7396349bbe67505",
        "41b0e2421a0cf8dc22f224ea078678d7db651bda"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed May 28 21:54:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 21:54:02 2014 +0000"
      },
      "message": "Merge \"Add audio policy support for A2DP sink\""
    },
    {
      "commit": "203b1a18a806e2c56c701aac49cda963bccfad5b",
      "tree": "f8dd30db10c795c93582112bba8e037aa9ea78d4",
      "parents": [
        "951f455566775e5f01e67c5ee26863d7d19209d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 01 10:34:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:30:22 2014 -0700"
      },
      "message": "DO NOT MERGE - IAudioPolicyService interface extension for patch panel\n\nChange-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1\n"
    },
    {
      "commit": "951f455566775e5f01e67c5ee26863d7d19209d7",
      "tree": "39fc248f74f7585b7108c0cb00e2d36d22b3e1b7",
      "parents": [
        "1cda6afaf6207a41303e653a6ecd7909d73186eb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 10:48:17 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:29:47 2014 -0700"
      },
      "message": "DO NOT MERGE - audioflinger: first patch panel implementation.\n\nAdded a new PatchPanel subclass to AudioFlinger\nto handle audio ports and audio patches configuration\nand connection.\nThe first implementation does not add new functionnality.\nAudioPolicyManager uses patch panel interface to control\ndevice routing.\nAudioFlinger:\n- Added PatchPanel class. The first implementation does not\nadd new functionnality. PatchPanel handles routing commands\nfor audio HAL after 3.0 or converts to setParameters for audio\nHALs before 3.0.\n- Added config events to ThreadBase to control synchronized\naudio patch connection.\nAudioPolicyManager:\n- Use PatchPanel API to control device selection isntead of setParameters.\n- New base class AudioPort common to audio device descriptors\nand input output stream profiles. This class is RefBase and groups\nattributes common to audio ports.\n- Use same device selection flow for input as for outputs:\n getNewInputDevice -\u003e getDeviceForInptusiource -\u003e setInputDevice\n\nChange-Id: Idaa5a883b19a45816651c58cac697640dc717cd9\n"
    },
    {
      "commit": "1cda6afaf6207a41303e653a6ecd7909d73186eb",
      "tree": "f484bf583d64059960409689406e6541415e68f0",
      "parents": [
        "fe9adc4850572cb04a9cf7877d0e77d0c1fde84e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 11 09:22:20 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:28:41 2014 -0700"
      },
      "message": "DO NOT MERGE - IAudioFlinger interface extension for patch panel\n\nChange-Id: Iaabe0a7e315d5725e00a74a6ed40339b98f20330\n"
    },
    {
      "commit": "411cb8e45442d16d983a38722c7c7bce487bde6b",
      "tree": "e819e73fe603393fa8f80dc0c12be7e2434cd43b",
      "parents": [
        "498692535c7ceecb3434a99c47e4c90ba3fdd90e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 27 12:32:17 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 28 14:20:23 2014 -0700"
      },
      "message": "Update dynamic resampler buffer fetching\n\nMake the criteria tight for fetching to avoid storing\nexcessive frame data internal to the resampler.\nThis should reduce jitter in frame delivery computation.\n\nBug: 14962343\nChange-Id: I7adaf714d11c272696ccdbf218bda994c7217477\n"
    },
    {
      "commit": "fe9adc4850572cb04a9cf7877d0e77d0c1fde84e",
      "tree": "baba3971b7ddb48c8d5b4c7219a7761c60322a2d",
      "parents": [
        "e5cfbd53612f2383f2e32b7a2605628f3c7baf6e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 26 16:03:08 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:12:16 2014 -0700"
      },
      "message": "DO NOT MERGE - audioflinger: fix deadlock upon AudioRecord creation error\n\nAudioFlinger:openRecord() should not hold mClientLock when\nreleasing the local reference on AudioRecord as the destructor will\nalso lock mClientLock.\nSame fix for AudioFlinger::createTrack().\nAlso make sure that AudioFlinger::createEffect() holds mClientLock\nwhen clearing local reference to the Client in case of error.\n\nRegression introduced by 021cf9634ab09c0753a40b7c9ef4ba603be5c3da\n\nBug: 15118096.\nChange-Id: Ie961c398c8e0460bca9b95e2ee4ce6859316c275\n"
    },
    {
      "commit": "e5cfbd53612f2383f2e32b7a2605628f3c7baf6e",
      "tree": "62df53820427c82d845eb02bd1cd62ee085bb5a6",
      "parents": [
        "d6461906586032716fc5ff9970c8c6cacf235a20"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 17:30:48 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:09:49 2014 -0700"
      },
      "message": "DO NOT MERGE - audio policy: enable use of new AudioPolicyManager\n\nDo not define USE_LEGACY_AUDIO_POLICY by default.\nBy default, all devices will now use the new audio policy implementation\nin AudioPolicyManager.cpp\n\nTo continue using the legacy audio policy implemented by\nAudioPolicyManagerBase in libhardware_legacy a device should\ndefine USE_LEGACY_AUDIO_POLICY in its makefile.\n\nChange-Id: I7b8cac3cbb24b11105ba6233501c7212f5985727\n"
    },
    {
      "commit": "d6461906586032716fc5ff9970c8c6cacf235a20",
      "tree": "8c1a25556f56501729bd4d1b186535da9e14fc42",
      "parents": [
        "47ed7dfdae7a41a7532978bd799fa9defd2b9980"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 12:23:26 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:08:49 2014 -0700"
      },
      "message": "DO NOT MERGE - audioflinger: test min HAL version instead of current\n\nChange-Id: Ibce2353b4390329b4c1a453e829178e3986c25a7\n"
    },
    {
      "commit": "546734b3ab577d46afe863515104a062e88a109b",
      "tree": "a8f583b275ffeaf040f1f2cd31d877108f2be767",
      "parents": [
        "498692535c7ceecb3434a99c47e4c90ba3fdd90e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 01 18:31:42 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 28 12:02:29 2014 -0700"
      },
      "message": "Add tests directory for AudioFlinger\n\nNative tests for audio resampler through gtest framework.\n\nChange-Id: Ia340ca51f9b9b78d67e03e3541e4462b98578c95\n"
    },
    {
      "commit": "5584c58c7c952b5ed891bbff3b00a0be3f96196d",
      "tree": "ed423b5646d2c76ff00ac9e407761635923fc1f0",
      "parents": [
        "ecc03733bfd3262ffadef3166e6be23b539c505c",
        "8670c31fddbeadcf9627aa970c69a823f13939ff"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 16:13:30 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 16:13:31 2014 +0000"
      },
      "message": "Merge \"IAudioPolicyService interface extension for patch panel\""
    },
    {
      "commit": "ecc03733bfd3262ffadef3166e6be23b539c505c",
      "tree": "af2005c71dee57f43f99ce4c8b32245f5b2fc458",
      "parents": [
        "5e49780692b4f23966be89ac32b19c3c1ead4e85",
        "1c333e252cbca3337c1bedbc57a005f3b7d23fdb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 15:37:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 15:37:58 2014 +0000"
      },
      "message": "Merge \"audioflinger: first patch panel implementation.\""
    },
    {
      "commit": "5e49780692b4f23966be89ac32b19c3c1ead4e85",
      "tree": "d3a80af71bd1c7637040ec322a286e0b3e485dee",
      "parents": [
        "c9cd62bf52dd5ea8dc292fb7bc80ff51ed1a79bb",
        "4b123406c10c17852734a1b691bb9ce2a4cb7caf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 15:16:21 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 15:16:22 2014 +0000"
      },
      "message": "Merge \"IAudioFlinger interface extension for patch panel\""
    },
    {
      "commit": "41b0e2421a0cf8dc22f224ea078678d7db651bda",
      "tree": "dea96cac9989eaf8e88584dbbf40dd179333ff01",
      "parents": [
        "7ac0039611ea7ea18f9545f96a8f5cb31dcdebe5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue May 13 15:23:35 2014 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed May 28 07:23:24 2014 -0700"
      },
      "message": "Add audio policy support for A2DP sink\n\nChange-Id: Ifcad9c1d4bdb79668e03a31d843ec46670dd0bd8\n"
    },
    {
      "commit": "c9cd62bf52dd5ea8dc292fb7bc80ff51ed1a79bb",
      "tree": "fe24c297f73693c68c748e5aed81db67b8ac8db5",
      "parents": [
        "b9e722bdf00333557578497c5abfc77c5d779ecb",
        "0349009fd19f89f8414c428f6b71b369f7546085"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 27 23:19:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 23:19:30 2014 +0000"
      },
      "message": "Merge \"Allow kFastTrackMultiplier to be specified per device\""
    },
    {
      "commit": "0349009fd19f89f8414c428f6b71b369f7546085",
      "tree": "b8a005f8c9eb4fc582b1e7049ea899d6ba7f9967",
      "parents": [
        "7b2b401a1decf286890171a6791b7a6aa8b80ca7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 27 12:30:54 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 27 15:46:55 2014 -0700"
      },
      "message": "Allow kFastTrackMultiplier to be specified per device\n\nChange-Id: I4eaaaf038df720cec4f5d9221d1b632970f9e3dd\n"
    },
    {
      "commit": "b9e722bdf00333557578497c5abfc77c5d779ecb",
      "tree": "358849da7593a03312599c17cb2c970b92eccd09",
      "parents": [
        "7b2b401a1decf286890171a6791b7a6aa8b80ca7",
        "45d68d366d07b10733c1e8af6a6984befbc08ce1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 27 22:29:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 22:29:46 2014 +0000"
      },
      "message": "Merge \"Rename mixBuffer to mMixerBuffer in FastMixer\""
    },
    {
      "commit": "018d324dc599c5f4238a4cd631baac47c28d59fe",
      "tree": "3c45f7d16bb23590c06eae6fa59852882c16f897",
      "parents": [
        "1a83b736737e7f625371093519ff7a10b05e0c63",
        "ef7c7fbd0e3fb36af14cd7d39f64c949031516a5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 27 18:32:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 18:32:15 2014 +0000"
      },
      "message": "Merge \"Add multiple format capability to AudioMixer\""
    },
    {
      "commit": "8670c31fddbeadcf9627aa970c69a823f13939ff",
      "tree": "14f3f327e5b2ff589003eddab447971166710b14",
      "parents": [
        "1c333e252cbca3337c1bedbc57a005f3b7d23fdb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 01 10:34:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 27 10:54:00 2014 -0700"
      },
      "message": "IAudioPolicyService interface extension for patch panel\n\nChange-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1\n"
    },
    {
      "commit": "1c333e252cbca3337c1bedbc57a005f3b7d23fdb",
      "tree": "327f985a0db89dad8fc742baf5b198c3b78c429b",
      "parents": [
        "4b123406c10c17852734a1b691bb9ce2a4cb7caf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 10:48:17 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 27 10:53:51 2014 -0700"
      },
      "message": "audioflinger: first patch panel implementation.\n\nAdded a new PatchPanel subclass to AudioFlinger\nto handle audio ports and audio patches configuration\nand connection.\nThe first implementation does not add new functionnality.\nAudioPolicyManager uses patch panel interface to control\ndevice routing.\nAudioFlinger:\n- Added PatchPanel class. The first implementation does not\nadd new functionnality. PatchPanel handles routing commands\nfor audio HAL after 3.0 or converts to setParameters for audio\nHALs before 3.0.\n- Added config events to ThreadBase to control synchronized\naudio patch connection.\nAudioPolicyManager:\n- Use PatchPanel API to control device selection isntead of setParameters.\n- New base class AudioPort common to audio device descriptors\nand input output stream profiles. This class is RefBase and groups\nattributes common to audio ports.\n- Use same device selection flow for input as for outputs:\n getNewInputDevice -\u003e getDeviceForInptusiource -\u003e setInputDevice\n\nChange-Id: Idaa5a883b19a45816651c58cac697640dc717cd9\n"
    },
    {
      "commit": "1a83b736737e7f625371093519ff7a10b05e0c63",
      "tree": "aee16dba2767384169737f82d07435dcf1bb6669",
      "parents": [
        "5912117110ae6efadd862fcb0e395fdcd18aa00c",
        "fe1a94e68e173fe4dfe7699112422a94eddacb4e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 27 16:51:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 16:51:59 2014 +0000"
      },
      "message": "Merge \"audioflinger: fix deadlock upon AudioRecord creation error\""
    },
    {
      "commit": "4b123406c10c17852734a1b691bb9ce2a4cb7caf",
      "tree": "23cb27ad387a8a17b248b63b47f813e4a6b1dda8",
      "parents": [
        "5912117110ae6efadd862fcb0e395fdcd18aa00c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 11 09:22:20 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 27 09:09:51 2014 -0700"
      },
      "message": "IAudioFlinger interface extension for patch panel\n\nChange-Id: Iaabe0a7e315d5725e00a74a6ed40339b98f20330\n"
    },
    {
      "commit": "5912117110ae6efadd862fcb0e395fdcd18aa00c",
      "tree": "ffa3fa711d1eba4db9231c7d9e1ea91ed2f6c70a",
      "parents": [
        "c62476f0c0c1cf9283a38852bde0a4c9434df712",
        "29b703eec27b305e7b5b2343bf257643e38f6b68"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 27 14:35:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 14:35:49 2014 +0000"
      },
      "message": "Merge \"Move validation of frameCount from set to openRecord_l\""
    },
    {
      "commit": "fe1a94e68e173fe4dfe7699112422a94eddacb4e",
      "tree": "a9443f7cb6fb34bc5015cc26fd9257d5d559f7f9",
      "parents": [
        "c62476f0c0c1cf9283a38852bde0a4c9434df712"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 26 16:03:08 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 26 16:13:30 2014 -0700"
      },
      "message": "audioflinger: fix deadlock upon AudioRecord creation error\n\nAudioFlinger:openRecord() should not hold mClientLock when\nreleasing the local reference on AudioRecord as the destructor will\nalso lock mClientLock.\nSame fix for AudioFlinger::createTrack().\nAlso make sure that AudioFlinger::createEffect() holds mClientLock\nwhen clearing local reference to the Client in case of error.\n\nRegression introduced by 021cf9634ab09c0753a40b7c9ef4ba603be5c3da\n\nBug: 15118096.\nChange-Id: Ie961c398c8e0460bca9b95e2ee4ce6859316c275\n"
    },
    {
      "commit": "45d68d366d07b10733c1e8af6a6984befbc08ce1",
      "tree": "b79d525dc649db24fdbd4c11feb5f3d9eb12f17e",
      "parents": [
        "ef7c7fbd0e3fb36af14cd7d39f64c949031516a5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 21:13:31 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 22:13:50 2014 -0700"
      },
      "message": "Rename mixBuffer to mMixerBuffer in FastMixer\n\nLikewise mixBufferState becomes mMixerBufferState.\nThis harmonizes with the naming in AF::MixerThread.\n\nChange-Id: I1255d7c07cc2c6ee925d7430925236d2bd163122\n"
    },
    {
      "commit": "ef7c7fbd0e3fb36af14cd7d39f64c949031516a5",
      "tree": "94f9ef7ecba0cfdbfae659013923d261ccf19e40",
      "parents": [
        "e8a1ced4da17dc6c07803dc2af8060f62a8389c1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 12 16:51:41 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 22:11:16 2014 -0700"
      },
      "message": "Add multiple format capability to AudioMixer\n\nChange-Id: I04ac1cafd90b6ed652f8d51888ad07576678f0bc\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "c62476f0c0c1cf9283a38852bde0a4c9434df712",
      "tree": "6249b263dba1e91017e9debfe4c2e8f79b1be2c7",
      "parents": [
        "7a470c375c2cef8b186fbadd9915b30e5d757453",
        "e8a1ced4da17dc6c07803dc2af8060f62a8389c1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 23:51:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 23 23:51:17 2014 +0000"
      },
      "message": "Merge \"Add format parameter to getTrackName() and track_t\""
    },
    {
      "commit": "7a470c375c2cef8b186fbadd9915b30e5d757453",
      "tree": "bb985c4b1285ed583e1866ec04a980238c1108db",
      "parents": [
        "39cf5681975ec9097742c47de7c2d0f8c11248a2",
        "7a0aecb09a562fec144c07aeb7a3468a1e6da52e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 23 23:01:16 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 23 23:01:16 2014 +0000"
      },
      "message": "Merge \"audio policy: enable use of new AudioPolicyManager\""
    },
    {
      "commit": "39cf5681975ec9097742c47de7c2d0f8c11248a2",
      "tree": "c6f9775c65839d084d13a0bb1af1c84d14c0e760",
      "parents": [
        "24ffe7a9161943c8ba2353e956653a71af564b5d",
        "6181ffd90a436f333c43a7f812391eee2c35005a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 23 21:32:24 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 23 21:32:25 2014 +0000"
      },
      "message": "Merge \"Allow track buffer \"allocation\" to be from pipe\""
    },
    {
      "commit": "24ffe7a9161943c8ba2353e956653a71af564b5d",
      "tree": "8bcf08421a8dc8e92b61c5877a7378ef23a86098",
      "parents": [
        "d6b1efbc99de43d56aa6a4123126e994e7c2c30e",
        "79262cfc14a9d8b5aa29d43e84ea91eedb9492ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 23 19:34:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 23 19:34:00 2014 +0000"
      },
      "message": "am 79262cfc: am 5b756bfd: am 8b187f4a: Merge \"Move frameworks/av off \u003csys/atomics.h\u003e.\"\n\n* commit \u002779262cfc14a9d8b5aa29d43e84ea91eedb9492ba\u0027:\n  Move frameworks/av off \u003csys/atomics.h\u003e.\n"
    },
    {
      "commit": "7a0aecb09a562fec144c07aeb7a3468a1e6da52e",
      "tree": "02937428f5af51143cf12c70268be83805843cc5",
      "parents": [
        "d6b1efbc99de43d56aa6a4123126e994e7c2c30e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 17:30:48 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 19:56:15 2014 -0700"
      },
      "message": "audio policy: enable use of new AudioPolicyManager\n\nDo not define USE_LEGACY_AUDIO_POLICY by default.\nBy default, all devices will now use the new audio policy implementation\nin AudioPolicyManager.cpp\n\nTo continue using the legacy audio policy implemented by\nAudioPolicyManagerBase in libhardware_legacy a device should\ndefine USE_LEGACY_AUDIO_POLICY in its makefile.\n\nChange-Id: I7b8cac3cbb24b11105ba6233501c7212f5985727\n"
    },
    {
      "commit": "f91df1b368a140abd37c80b204bd48d78778cc43",
      "tree": "238d896ad29af48d8ee069e853ee9fa1035955cc",
      "parents": [
        "29b703eec27b305e7b5b2343bf257643e38f6b68"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 14:59:31 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 22 16:19:08 2014 -0700"
      },
      "message": "Start adding FastCapture based on FastThread WIP\n\nThis version supports at most one fast capture client.\n\nChange-Id: Idf609bfc80ae22433433d66a5232c043c65506df\n"
    },
    {
      "commit": "29b703eec27b305e7b5b2343bf257643e38f6b68",
      "tree": "0612b8e650dac1f4f7c2e51afa187b4601f113ca",
      "parents": [
        "6181ffd90a436f333c43a7f812391eee2c35005a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 12 11:06:26 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 22 16:19:05 2014 -0700"
      },
      "message": "Move validation of frameCount from set to openRecord_l\n\nThis move is needed because frameCount is validated on server side for\nfast tracks (as should be done for normal tracks too).\n\nChange-Id: I6d99e80869fd90fab373cf60ef348c01f075fbca\n"
    },
    {
      "commit": "6181ffd90a436f333c43a7f812391eee2c35005a",
      "tree": "16c5649fdb1d36a0ddc8e9eb0727e622b78aff16",
      "parents": [
        "77a3374a6170fb5f0168169bc4bc3fa9baf318eb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 13 10:41:52 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 22 16:19:03 2014 -0700"
      },
      "message": "Allow track buffer \"allocation\" to be from pipe\n\nChange-Id: Ib9ac170f8e8b7746b3588157a56cbee3b753a1cb\n"
    },
    {
      "commit": "5b756bfdaa27c8b606720544bf507213cf47376d",
      "tree": "7c6886aba2268ee29d8a7d9c025b259458022574",
      "parents": [
        "c10b874c4d0d6208fb93a7aa0dc8af4418faad45",
        "8b187f4acea8d7e517ff9ced32fc7368bdbaa6e0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 22:42:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 22:42:46 2014 +0000"
      },
      "message": "am 8b187f4a: Merge \"Move frameworks/av off \u003csys/atomics.h\u003e.\"\n\n* commit \u00278b187f4acea8d7e517ff9ced32fc7368bdbaa6e0\u0027:\n  Move frameworks/av off \u003csys/atomics.h\u003e.\n"
    },
    {
      "commit": "63492411cf4abff452b47f59ec7ff6f3e9925c84",
      "tree": "cc6cb58344fecd61be2dc08fac556340b4206ef2",
      "parents": [
        "d551633916d3677da4dda10aba6837bdc6803ee0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 14:20:39 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 14:20:39 2014 -0700"
      },
      "message": "Move frameworks/av off \u003csys/atomics.h\u003e.\n\nBug: 14903517\nChange-Id: I92cdfc618d83fd914cfb558a07b1deae0255fccb\n"
    },
    {
      "commit": "5806b3533437e3d83208e8e9d6bd74ed304e51ec",
      "tree": "cc9613e8ac7b52dac124f078497227881329de8e",
      "parents": [
        "ce8ae0f62a01cb3a390812db47bb08f29a8aee0d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 12:23:26 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 14:08:15 2014 -0700"
      },
      "message": "audioflinger: test min HAL version instead of current\n\nChange-Id: Ibce2353b4390329b4c1a453e829178e3986c25a7\n"
    },
    {
      "commit": "87cebadd48710e42474756fc3513df678de045ce",
      "tree": "6f8a07d9ec9b4ebad70367430190a689cb1a5db3",
      "parents": [
        "77a3374a6170fb5f0168169bc4bc3fa9baf318eb",
        "f285c91efbae23783fe94dc5ad19a2560e157685"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 10:14:43 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 10:14:43 2014 -0700"
      },
      "message": "resolved conflicts for merge of f285c91e to master\n\nChange-Id: I4c995e297d09c0854a42142cc57dce8b771acf65\n"
    },
    {
      "commit": "c10b874c4d0d6208fb93a7aa0dc8af4418faad45",
      "tree": "25b1fc40fe84e14778340c4e0005e14644d60d5f",
      "parents": [
        "9a59d411cbe68d6027c541854c6d7c1348e4ee3d",
        "d551633916d3677da4dda10aba6837bdc6803ee0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 22 13:40:35 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 13:40:35 2014 +0000"
      },
      "message": "am d5516339: Merge \"Move frameworks/av from fdprintf to POSIX dprintf.\"\n\n* commit \u0027d551633916d3677da4dda10aba6837bdc6803ee0\u0027:\n  Move frameworks/av from fdprintf to POSIX dprintf.\n"
    },
    {
      "commit": "8b5f642eb2364ea7fe46a5b3af51b48b58f12183",
      "tree": "3804f0168793993d3558bcb33970904f45db8949",
      "parents": [
        "85e6e87c41bba51729cee8958a5c30157c8dc674"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:22:06 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:22:06 2014 -0700"
      },
      "message": "Move frameworks/av from fdprintf to POSIX dprintf.\n\nBug: 11156955\nChange-Id: Ia98cd16b4c1f7be87cf060b7456de4f40896bacb\n"
    },
    {
      "commit": "77a3374a6170fb5f0168169bc4bc3fa9baf318eb",
      "tree": "38f2b63b0d112722cde2914676cfaeee66f0d52f",
      "parents": [
        "cbc09e47a6cd9164219948caf848303ba19efbb9",
        "b2119af7f4ced0ecfefd4c7388f86b4e3a3ea7d8"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu May 22 06:08:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 22 06:08:35 2014 +0000"
      },
      "message": "Merge \"camera2: Update CameraService for HAL1 shim.\""
    },
    {
      "commit": "9a59d411cbe68d6027c541854c6d7c1348e4ee3d",
      "tree": "d1dba2688eb058cf42c1bf23f100ed7653a7e78a",
      "parents": [
        "ad71caf25e31ecfc4ecf2c925e38fd87905fbc8e",
        "85e6e87c41bba51729cee8958a5c30157c8dc674"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:49:44 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 01:49:44 2014 +0000"
      },
      "message": "am 85e6e87c: Merge \"Restore accidentally-removed NULL timeout.\"\n\n* commit \u002785e6e87c41bba51729cee8958a5c30157c8dc674\u0027:\n  Restore accidentally-removed NULL timeout.\n"
    },
    {
      "commit": "e348c5b72ad889389c7c1c900c121f0fbee221b5",
      "tree": "9c77581ad7520309c0bb90f11bba766a6cd61b28",
      "parents": [
        "9382378b6b271949bdce527ea3da748c13c4c692",
        "c0bf836f8a4e34d66c10a2bb8b8cee0db04790cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:47:50 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:47:50 2014 -0700"
      },
      "message": "resolved conflicts for merge of c0bf836f to master\n\nChange-Id: I5cf238fa56d6fff443b212870cf9dd7f1110e7da\n"
    },
    {
      "commit": "22f22ffcb111b38eb7a303bfde39aed108b43e07",
      "tree": "c2a1d2f6aaf08d90b1efda93c66899b4f5add6af",
      "parents": [
        "3b6da6bfb50a1c0324fb4c87326d3a477944d5fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:44:27 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:44:27 2014 -0700"
      },
      "message": "Restore accidentally-removed NULL timeout.\n\nChange-Id: I933c80fea50950243f109acf8d6350013aaa811f\n"
    },
    {
      "commit": "ad71caf25e31ecfc4ecf2c925e38fd87905fbc8e",
      "tree": "74b759675cdc008e10e9b4fa94344e9dd54f8868",
      "parents": [
        "acbd9492996348bf4565fbaa5a14772f0f4ace38",
        "3b6da6bfb50a1c0324fb4c87326d3a477944d5fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:28:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 01:28:18 2014 +0000"
      },
      "message": "am 3b6da6bf: Merge \"Move frameworks/av off private API.\"\n\n* commit \u00273b6da6bfb50a1c0324fb4c87326d3a477944d5fe\u0027:\n  Move frameworks/av off private API.\n"
    },
    {
      "commit": "ee499291404a192b059f2e04c5afc65aa6cdd74c",
      "tree": "1c1537b599b21c331b15493f776adcbff307ac2f",
      "parents": [
        "d084206d5a4a5364211af46e4201311933e83bfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 17:55:51 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:15:33 2014 -0700"
      },
      "message": "Move frameworks/av off private API.\n\nBug: 11156955\nChange-Id: Ib3bb9d66a2bf92977c2445b62aa074a2d7a45aea\n"
    },
    {
      "commit": "b2119af7f4ced0ecfefd4c7388f86b4e3a3ea7d8",
      "tree": "a97770362fc690d625a0383597cb057d48737876",
      "parents": [
        "7ac0039611ea7ea18f9545f96a8f5cb31dcdebe5"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri May 09 19:57:56 2014 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed May 21 18:14:41 2014 -0700"
      },
      "message": "camera2: Update CameraService for HAL1 shim.\n\nUpdates the camera service to handle shim connections.\n\nChanges include:\n- Adds begin/end configure binder calls.\n- Adds cache for shim client static camera metadata.\n- Implements basic getCameraCharacteristic functionality for shim clients.\n\nBug: 15116722\nBug: 15117269\n\nChange-Id: I510c5888ca15f8e7d3b8ed1680ff1c7f8f514744\n"
    },
    {
      "commit": "9382378b6b271949bdce527ea3da748c13c4c692",
      "tree": "9b20c4e7b8e8dc733937f9125cd22b4c11c046a7",
      "parents": [
        "d83062287758be57d1d0908b30bb18aa9b367f38",
        "b108091734ee7668084cc1063187c2b10ddb7bb7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:01:17 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:01:17 2014 -0700"
      },
      "message": "resolved conflicts for merge of b1080917 to master\n\nChange-Id: Iabbe3e95e29f28461ff722b550e8a9f35bd2528f\n"
    },
    {
      "commit": "d83062287758be57d1d0908b30bb18aa9b367f38",
      "tree": "0efd8542cfb286a9d59c3c13ca455be14ba06f2f",
      "parents": [
        "7ac0039611ea7ea18f9545f96a8f5cb31dcdebe5",
        "98c6be0e30fa28e752b13f3dd5986d41710bb7ae"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 00:40:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 22 00:40:14 2014 +0000"
      },
      "message": "Merge \"audio policy: split audio policy library\""
    },
    {
      "commit": "acbd9492996348bf4565fbaa5a14772f0f4ace38",
      "tree": "396267d5b424f0335491e80a95920ae200b956d9",
      "parents": [
        "4c9bde7a3e636d3ecccd7905d142dbbb80e977a0",
        "d084206d5a4a5364211af46e4201311933e83bfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 00:39:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 00:39:10 2014 +0000"
      },
      "message": "am d084206d: Merge \"Move frameworks/av off __futex_syscall3.\"\n\n* commit \u0027d084206d5a4a5364211af46e4201311933e83bfc\u0027:\n  Move frameworks/av off __futex_syscall3.\n"
    },
    {
      "commit": "77e1512aee8092069514973379a59a318e721be3",
      "tree": "875411e1d44b2cf12e99134af2d7cfb7f9acceae",
      "parents": [
        "ce473c32705e2d1c5fcc817198101e1220b3c8f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 17:31:18 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 17:31:18 2014 -0700"
      },
      "message": "Move frameworks/av off __futex_syscall3.\n\nBug: 11156955\nChange-Id: I943080bc51b6efa781059b48b5b5ecc4fa287512\n"
    }
  ],
  "next": "98c6be0e30fa28e752b13f3dd5986d41710bb7ae"
}
