)]}'
{
  "log": [
    {
      "commit": "a0c91339814f37ea78365afb436c9f3d1f0a0090",
      "tree": "b0075232d68758a314754a9293c65ea15091ca95",
      "parents": [
        "5090f7d3211b5517a7602c910c04462f7eee0727"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 19 10:01:12 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 26 14:53:38 2016 -0700"
      },
      "message": "Update NBAIO to use the new audio HAL abstraction layer\n\nMoved the HAL access abstraction layer to a separate library so it\ncan be used both by audioflinger and libnbaio.\n\nBug: 30222631\nTest: manual with Loopback app, Hangouts, YouTube\n\nChange-Id: Id622c2f1aa8f55a775d34f369a596c2c4d29d5be\n"
    },
    {
      "commit": "1dc98674f701dada94143b4d31b7221c58346c6c",
      "tree": "44f80a66fdff774d2229ca3aaabdd614ed1f8013",
      "parents": [
        "9debf8f6d26f7aa12c68ddfb6cdb1323d4b5adbf"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:50:29 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 21 15:58:24 2016 -0700"
      },
      "message": "Abstract away access to audio streams HAL in AudioFlinger\n\nIn this CL all direct access to audio_stream_t, audio_stream_out_t, and\naudio_stream_in_t their functions is encapsulated within the new\nhierarchy of Stream[In|Out]HalLocal classes.  AudioFlinger uses\ninterface classes Stream[In|Out]HalInterface to access these functions.\n\nNote that NBAIO still receives raw HAL stream handles and needs to be\nconverted separately.\n\nBug: 30222631\nTest: manual with Loopback app\n\nChange-Id: I6388cfa2006791c9c0aa7bb186719209726a2d48\n"
    },
    {
      "commit": "e4f1f63a2c54ee8687ad8cca18df0f6639ad7c81",
      "tree": "941cdb35111e5e01ece553475e5bbf7841a7116c",
      "parents": [
        "1724ee3caa5f0b4e73979036073f0b71a115083a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 31 11:35:10 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 13 16:27:15 2016 -0700"
      },
      "message": "Abstract away access to audio devices HAL\n\nIn this CL all direct access to audio_hw_device_t and its functions is\nencapsulated within the new class DeviceHalLocal. Loading of hardware\nmodules is encapsulated withing DevicesFactoryHalLocal.  AudioFlinger\nuses interface classes DevicesFactoryHalInterface and DeviceHalInterface\nto access these functions.\n\nBug: 30222631\nChange-Id: Ic88b20c55813a24b898f4a832e082c17d81935b7\n"
    },
    {
      "commit": "1724ee3caa5f0b4e73979036073f0b71a115083a",
      "tree": "ed3f80e0897daacd2a40121e82256a4f717c49f7",
      "parents": [
        "9727b5b68137d8b03d3a163fc364c5ae8e06db2b",
        "92cd1cd127082f85cefad6fffe6671a991a52fe9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 02:30:38 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 02:30:38 2016 +0000"
      },
      "message": "audioflinger: fix error reporting in setParameters() am: d21bcd272d am: 2e992bd188\nam: 92cd1cd127\n\nChange-Id: I7bccd116e024720dbb50e9b8e9e52144b7a1b54e\n"
    },
    {
      "commit": "92cd1cd127082f85cefad6fffe6671a991a52fe9",
      "tree": "0366243c5bdd96b4b27e149364c12bc8fd593b43",
      "parents": [
        "6aff3e90f4d23991c17525e7e38510aab81fbcf6",
        "2e992bd18881c84b3977ea0b1b282701038a2339"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 02:28:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 02:28:44 2016 +0000"
      },
      "message": "audioflinger: fix error reporting in setParameters() am: d21bcd272d\nam: 2e992bd188\n\nChange-Id: I7669ac1ca3a37d0c11e6c15c72c26666cd14e227\n"
    },
    {
      "commit": "d21bcd272d43285baa32ffd48c909b4a29c614a4",
      "tree": "22a5a9306341fb54dc7f580fe41db9e89603fe7b",
      "parents": [
        "c1bcfe988278896d301291dbd1a4fad7196d97fd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 08 18:25:54 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 12 17:51:27 2016 -0700"
      },
      "message": "audioflinger: fix error reporting in setParameters()\n\nReturn NO_ERROR if at least one audio HAL module returns NO_ERROR\nas not all HALs are requested to support all parameters.\n\nBug: 31258387\nChange-Id: Ia509c272f150afe7f56c699553f2e8782d69fd9b\n"
    },
    {
      "commit": "598857bdcfc99e8afc597ea815a9b93aa81fe0c4",
      "tree": "fa472a6907c1ec935df2a8b1c3399edf5d827b82",
      "parents": [
        "30b42b8d961b765e8c77ab8724636e98372fbf80",
        "9b7a8f94619b6847db7dc37deb5918b6f3439a43"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 31 01:32:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 01:32:49 2016 +0000"
      },
      "message": "AudioFlinger: Disable (revert) LockWatch am: deb0335714 am: d8d2728947 am: 5d819b4794\nam: 9b7a8f9461\n\nChange-Id: I1840bd725020242337af910ea3f51cd094e3c937\n"
    },
    {
      "commit": "9b7a8f94619b6847db7dc37deb5918b6f3439a43",
      "tree": "e920fdbc711e0b3dc0963a737ee2a8185ab9c944",
      "parents": [
        "0be566804e6f5c453e6fb45a876366d92fc3701f",
        "5d819b47946b936f22a45783137f246d93c81b39"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 31 00:05:25 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:05:25 2016 +0000"
      },
      "message": "AudioFlinger: Disable (revert) LockWatch am: deb0335714 am: d8d2728947\nam: 5d819b4794\n\nChange-Id: I4754604909ec4658aa3d12e70dbb735e34955901\n"
    },
    {
      "commit": "deb0335714cabc906098fb1d971d992027267fc6",
      "tree": "91cb7cecab0980afbd73e44f78ee13c319a0f7fa",
      "parents": [
        "d60bac90266f3862ed60852b6de5b00cab389fb7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 29 14:40:14 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Aug 30 02:24:58 2016 +0000"
      },
      "message": "AudioFlinger: Disable (revert) LockWatch\n\n    Revert \"audioflinger: add watchdog on main mutex\"\n    This reverts commit 17a58b2560c38a8e31a38186f9ab6eb98a38e229.\n\n    Revert \"LockWatch: Update to Mutex::timeLock specs\"\n    This reverts commit 51a6319111df875710dab25a1a99b10d002c4869.\n\nBug: 30936184\nChange-Id: I0f6df6c98c06e161038b1bf0aae5912619cb4066\n"
    },
    {
      "commit": "4a3d5c23f79189eb7ab9f31c440c7da5b15947a2",
      "tree": "6417b4b0425ae73ba9e7c7ce3e17e7dc499e0fec",
      "parents": [
        "ecb008139a952a7e5d812e7eb0f5af0f9466d25d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 15 13:47:42 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 29 10:22:35 2016 -0700"
      },
      "message": "Abstract away access to audio effects HAL and factory\n\nIn this CL all direct calls to functions from EffectsFactoryApi.h\nand hardware/audio_effect.h are encapsulated within two new\nclasses: EffectsFactoryHalLocal and EffectHalLocal. AudioFlinger\nuses interface classes EffectsFactoryHalInterface and\nEffectHalInterface to access these functions.\n\nBug: 30222631\nChange-Id: Id64b9c5529319077f6f968921489a13f60daa977\n"
    },
    {
      "commit": "82f5b811b2767289ebb8a9e6af1919c3b72b5121",
      "tree": "c1bff8e75017ef08e74973413f88d1d89cb78a1a",
      "parents": [
        "1d320b9d14f7e136b3d1a94e977ce2a08459f49b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 17 13:53:12 2016 +0200"
      },
      "committer": {
        "name": "Adam Seaton",
        "email": "aseaton@google.com",
        "time": "Sat Aug 20 23:25:34 2016 +0000"
      },
      "message": "DO NOT MERGE ANYWHERE (nyc-dr1-dev) audioflinger: add watchdog on main mutex\n\nCheck every 10 seconds if main audioflinger mutex can be acquired and\ntrigger audioserver process restart if not.\nThis will allow to capture tombstones of locked up situations and avoid\nthe disruption of a system_server restart.\n\nBug: 30737845\nBug: 30388410\nChange-Id: I8a78b8cf813982f70ea598a6d42affc0ecaa76c9\n(cherry picked from commit 17a58b2560c38a8e31a38186f9ab6eb98a38e229)\n"
    },
    {
      "commit": "85d5dffa0a8f523bd577296c3759479f7db2ddec",
      "tree": "b220b70accf81ebaedcb2154b111d4733c12ab19",
      "parents": [
        "67b5bb745b1eb502cf6cfcd4fc8f7b2e4dccff59",
        "ed315827348ea496e2a8d280f743302337550fc4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 18 15:22:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 18 15:22:21 2016 +0000"
      },
      "message": "audioflinger: add watchdog on main mutex am: 17a58b2560\nam: ed31582734\n\nChange-Id: I9d5d0573220ba5811d06f2aa2217919a68d8529b\n"
    },
    {
      "commit": "17a58b2560c38a8e31a38186f9ab6eb98a38e229",
      "tree": "70f3a93d1c866bbafefdc5ed6647d007bbb01689",
      "parents": [
        "eb2c7c372615427b3b6350f1f563382b0b70917e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 17 13:53:12 2016 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 17 19:17:04 2016 +0200"
      },
      "message": "audioflinger: add watchdog on main mutex\n\nCheck every 10 seconds if main audioflinger mutex can be acquired and\ntrigger audioserver process restart if not.\nThis will allow to capture tombstones of locked up situations and avoid\nthe disruption of a system_server restart.\n\nBug: 30737845\nBug: 30388410\nChange-Id: I8a78b8cf813982f70ea598a6d42affc0ecaa76c9\n"
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "b78d2df84cfc926142ad95ba35e8ec6ab2f74eb3",
      "tree": "551884410cde7b0f40f6d99df504224643b511d5",
      "parents": [
        "97f8d49b55ab06be340bb869356be038c35acf33",
        "542cb3f42970275b9d6828d409ba697dab202861"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 19 01:47:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 19 01:47:04 2016 +0000"
      },
      "message": "Merge \\\"Fix build error in tee sink\\\" into nyc-mr1-dev\nam: 542cb3f429\n\nChange-Id: Ib37734943602043786c9674e9ff5bf802864aa39\n"
    },
    {
      "commit": "fbd87e8b685d1b1511bc40e232f9e7674271d57b",
      "tree": "f75848c228b04122b5957420a547b00082d17720",
      "parents": [
        "9f6392250bf6d02a514bd83b743906dda748dee9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 18 15:45:56 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 18 16:08:49 2016 -0700"
      },
      "message": "Fix build error in tee sink\n\nBug: 30203029\nChange-Id: I4b595c81f570fd12f7a1c7deb6db7e3139276481\n"
    },
    {
      "commit": "f517d276a8bfe4034106abf8009fcd6cc28a0838",
      "tree": "2d77ea833d13daaa1712efd3bc9d950fbf205165",
      "parents": [
        "55943ae68e72b362ba701f9e39e3dd50167a9e9c",
        "5cc2e814acac142c77eed4e9b8d954623be8965c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "message": "Merge \\\"Add Dolby TrueHD audio format\\\" into nyc-mr1-dev\nam: 5cc2e814ac\n\nChange-Id: Ib3561d806b00c949789f463c4609844399bb7095\n"
    },
    {
      "commit": "e30f20963751c07860bfbc92b5ff8948fc55797f",
      "tree": "fbff4f6bdf23e1ca3a7fc8270559dfe4f3a62eac",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "message": "Add Dolby TrueHD audio format\n\nAlso add missing formats in AudioFlinger string conversion\nutility.\n\nBug: 30024357\nChange-Id: I75bdb54daeb786543f545ec3a772121055e01cdb\n"
    },
    {
      "commit": "6a013ba332a00b684d48e77db2fce5802170e580",
      "tree": "58fa454855d362ee8b0243fa6e961063911a4d72",
      "parents": [
        "92623bbc771693f5e8a110e31763b08120d669d8",
        "3f69461e78fb74211847c3bab161bcad7ae81398"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 21 19:12:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 19:12:36 2016 +0000"
      },
      "message": "Merge \\\"getPrimary APIs now examine all non-duplicating output threads\\\" into nyc-mr1-dev\nam: 3f69461e78\n\nChange-Id: I76898dd3427d8e8b3a9d64bd01b60f137c7cb91f\n"
    },
    {
      "commit": "3f69461e78fb74211847c3bab161bcad7ae81398",
      "tree": "451a20481cb6b78d4cfeb038703c3ce921e7be0a",
      "parents": [
        "606997af6f4d3a498cebeae589417f5cb7e065dd",
        "a73356393315ad3ad7cd9196640823d1a9a620dd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 21 19:09:06 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 21 19:09:07 2016 +0000"
      },
      "message": "Merge \"getPrimary APIs now examine all non-duplicating output threads\" into nyc-mr1-dev"
    },
    {
      "commit": "ad67b138fcec25ba99254e826c559778adf0e7f3",
      "tree": "50b77768f0aa13f2e91c530eb0297105db626fe6",
      "parents": [
        "07303a000714949a7c3240b0a62216eac4d49ac5",
        "4c415062ad1bb53e9af8f644d8215837262b79bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 20 22:20:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 20 22:20:00 2016 +0000"
      },
      "message": "audioflinger: add check for effect vs thread compatibility\nam: 4c415062ad\n\nChange-Id: Idbdb7591b291c09ced94d4eabae0edc3581e1bcd\n"
    },
    {
      "commit": "4c415062ad1bb53e9af8f644d8215837262b79bb",
      "tree": "ef03f2781c22f245b13404d321f8f1bac9e24912",
      "parents": [
        "e8a984e43504890e0f676256a0445b9917a2af91"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 17 16:14:16 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 20 12:26:30 2016 -0700"
      },
      "message": "audioflinger: add check for effect vs thread compatibility\n\nMake sure that only HW accelerated effects are added on FAST\nplayback or record threads and no effect is added on threads with\nRAW flag.\n\nMake sure that tracks with RAW and FAST flags are compatible with exiting\neffects on a playback or record threads and clear flags accordingly.\n\nBug: 4999001\n\nChange-Id: I0c060f1ee4dfb9f1e206633536e67f7c3b7b3788\n"
    },
    {
      "commit": "a73356393315ad3ad7cd9196640823d1a9a620dd",
      "tree": "8a06b39cd4ea62cd17113f1e03bd279410f3e05b",
      "parents": [
        "e8a984e43504890e0f676256a0445b9917a2af91"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 09 17:09:53 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 20 11:47:01 2016 -0700"
      },
      "message": "getPrimary APIs now examine all non-duplicating output threads\n\nand return the value corresponding to the thread with minimum frame count,\nwith a preference for a thread with fast mixer if there are multiple\noutput threads with the same minimum frame count.\nThis is in keeping with the expectation by apps that the getPrimary APIs\nwill return a value for the lowest available latency path.\n\nBug: 29164107\nChange-Id: I8ae9bcad2d48185d7717ccf96085834c0ce00e37\n"
    },
    {
      "commit": "b70868bb337f0b12f993494f4d110979a33ddd24",
      "tree": "bde43cc6ef3f51829fd1875013e0191ffa2b4915",
      "parents": [
        "fa877e53915259d8288fa6cf16d9ebe68d4a806d",
        "2f8e63b5be5b0160302cffe1f1f18e560d31d3e7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 04 01:21:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 04 01:21:52 2016 +0000"
      },
      "message": "Merge \"Add AudioTrack and AudioRecord flag checks\" into nyc-mr1-dev\nam: 2f8e63b5be\n\n* commit \u00272f8e63b5be5b0160302cffe1f1f18e560d31d3e7\u0027:\n  Add AudioTrack and AudioRecord flag checks\n\nChange-Id: If9043721f4763ce0f4db96c63595f92c5ba22556\n"
    },
    {
      "commit": "050677873c10d4da308ac222f8533c96cca3207e",
      "tree": "fa2d3e91f74c5d838330f52cf158be8c774eec7f",
      "parents": [
        "53c87d5bb06a168290575099378bc7bfe1dca02b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 01 18:27:28 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 03 16:46:38 2016 -0700"
      },
      "message": "Add AudioTrack and AudioRecord flag checks\n\nVerify that the requested flags are compatible with the input\nor output flags when creating and AudioRecord or AudioTrack\n\nGet rid of IAudioFlinger::track_flags_t which was redundant\nwith audio_input_flags_t and audio_output_flags_t.\n\nChange-Id: I0dd9232f857b2737e99a8c668806e45bce09cdbd\n"
    },
    {
      "commit": "e34a44ff6cb12e65736c09e1baab1823de190e03",
      "tree": "fd6027a086dc6e2f4cd4dacb5cd9b7317a78f3e4",
      "parents": [
        "a15b56e48406d8242e91629e748a1b90d5977381",
        "ce2b51c91f431be6a62b2fed746650d18499cb83"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 24 20:46:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 24 20:46:52 2016 +0000"
      },
      "message": "Merge \"Add memory heap checks for mediaserver and audioserver\" into nyc-dev am: f3d9908a88\nam: ce2b51c91f\n\n* commit \u0027ce2b51c91f431be6a62b2fed746650d18499cb83\u0027:\n  Add memory heap checks for mediaserver and audioserver\n\nChange-Id: If5a9216ef18a9af22154d1510f835e0b3fafa651\n"
    },
    {
      "commit": "5cb96b83e6bff91a5ab006ff542dc32031be9087",
      "tree": "94fee5c9f5cb6130a87d0e4cecbae27dd5abd2be",
      "parents": [
        "4d1522bdc7efaa9677ac92b620cea9e9110ec2a4",
        "f3d9908a888203e7e70b8c2d43ee741a95e154ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 24 20:41:03 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 24 20:41:03 2016 +0000"
      },
      "message": "Merge \"Add memory heap checks for mediaserver and audioserver\" into nyc-dev\nam: f3d9908a88\n\n* commit \u0027f3d9908a888203e7e70b8c2d43ee741a95e154ed\u0027:\n  Add memory heap checks for mediaserver and audioserver\n\nChange-Id: I8b5dda2e29da8651cbd9dbc77fa9ca6211b1a47d\n"
    },
    {
      "commit": "f3d9908a888203e7e70b8c2d43ee741a95e154ed",
      "tree": "d19638ca4ece2ea0f7f60c851b7970b6d4178ba4",
      "parents": [
        "b2379ba0a32638bae2ea0460644f68cf5a0967ce",
        "07b745e166ee62030960ccea37e117caadf71c32"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 24 20:38:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 24 20:38:23 2016 +0000"
      },
      "message": "Merge \"Add memory heap checks for mediaserver and audioserver\" into nyc-dev"
    },
    {
      "commit": "8b269a1708b95d5f31ea59afb36bb42c26f91961",
      "tree": "26bed40714d9c75ae6e843c36299b6836c4ef938",
      "parents": [
        "4fce50b0b30d583909cef1610957bf33a3aa3ac7",
        "a0e10ff02b156738c0e5441104821b220eea3d68"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Tue May 24 17:27:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 24 17:27:05 2016 +0000"
      },
      "message": "Merge \"audioflinger: Pass pid of process creating track or opening record\" into nyc-dev\nam: a0e10ff02b\n\n* commit \u0027a0e10ff02b156738c0e5441104821b220eea3d68\u0027:\n  audioflinger: Pass pid of process creating track or opening record\n\nChange-Id: I728ffba8938a82f8b8f7b773febafd5e466c8e4d\n"
    },
    {
      "commit": "9ea77cdba8c422940adb57a790b44ac04fe0353f",
      "tree": "1e7c588ce1add16e6991eaae918d38414b17d879",
      "parents": [
        "f0f4f1e494a80ce300a68cfce0e1dc627c09c29a"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Apr 06 17:07:48 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 24 00:48:20 2016 +0000"
      },
      "message": "audioflinger: Pass pid of process creating track or opening record\n\nAudioFlinger allocates a Client heap for each unique pid.\nIf two applications use mediaplayer APIs, the same Client heap\nis reused as the pid used is not the application pid but that\nof mediaserver. With this change, the pid of the application\npid is used to decide the heap to be used.\n\nBug: 23525542\nBug: 28772898\nChange-Id: I31a695b0b321eff6e2aca80c3bc4aeb3e1cd9ac7\n"
    },
    {
      "commit": "07b745e166ee62030960ccea37e117caadf71c32",
      "tree": "a370227e0d195f58a4e7797d8a70933730970907",
      "parents": [
        "d4c4d2248bdfd06dc7b23dd2d81541d3941f8bf9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 23 16:21:07 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 23 16:55:08 2016 -0700"
      },
      "message": "Add memory heap checks for mediaserver and audioserver\n\nMemory heap check updated and restored to mediaserver,\nadded as new option to audioserver.\n\nRequires properties to be set (example for audioserver):\n\n$ adb shell setprop libc.debug.malloc.program audioserver\n$ adb shell setprop libc.debug.malloc.options backtrace\u003d8\n$ adb shell pkill audioserver\n\n...\n\nand to dump:\n\n$ adb shell dumpsys media.audio_flinger -m\n\nBug: 28909124\nBug: 27500825\nChange-Id: Ifa8c2c02b022daf1a799ee4a1d75282a3c921763\n"
    },
    {
      "commit": "b9987ad06d8298cde7b28bb214ac10777bcf8102",
      "tree": "82598f2e3650cf2a0536b469dcc1abb42da296b1",
      "parents": [
        "ee77653487915b890785764198f4d953c2ff0126",
        "8b43838c4872af3e9f47846e2618461af2d8d346"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 11 22:11:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 11 22:11:28 2016 +0000"
      },
      "message": "Merge \"audioflinger: various offload playback fixes\" into nyc-dev\nam: 8b43838c48\n\n* commit \u00278b43838c4872af3e9f47846e2618461af2d8d346\u0027:\n  audioflinger: various offload playback fixes\n\nChange-Id: I1954e445630309c039ade92e545479245de095be\n"
    },
    {
      "commit": "e93cc03da360a1a0d2ad937c745ce8c8e8be81c2",
      "tree": "9deae98570f41fdec272a863a2e84c7828af1a64",
      "parents": [
        "038ccfd6ff5a32d6f559e5b479d6f8e55d0b5133"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 05 10:15:10 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 11 11:38:01 2016 -0700"
      },
      "message": "audioflinger: various offload playback fixes\n\nRevert underrun sleep time optimization added for\noffload by commit 51716185 which can cause music to pause for a few\nseconds in some corner cases.\n\nAllow underruns in STOPPING_1 state to avoid dropping last buffer\nreceived by the AudioTrack callback after stop() is called by the\nclient.\n\nAllow interruption of thread loop sleep if a command is pending to\nspeed up track start sequence.\n\nDo not wait for a full AudioTrack buffer before writing to audio HAL\nwhen resuming playback or transitioning to next track.\n\nAlso moved log level for underruns in AudioSink from I to D to reduce\nspam on user builds.\n\nBug: 28545177\nBug: 27682362\nBug: 28347796\n\nChange-Id: I05b651b7878a2d2eedcac43cd669e32add171d40\n"
    },
    {
      "commit": "eb7fc0bd619064d334d1a87a4c9cd07c862499b5",
      "tree": "8c485341712f565d98718889edb4ca3ffa2fe5fa",
      "parents": [
        "a3e5d028f5257f6a81335766672a85da95ff647d",
        "a605dafc27f69b37eca60579b34e97145f3caca3"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Fri May 06 17:20:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 06 17:20:48 2016 +0000"
      },
      "message": "Merge \"audioflinger: extend max i/p channel to 8 channels\" into nyc-dev\nam: a605dafc27\n\n* commit \u0027a605dafc27f69b37eca60579b34e97145f3caca3\u0027:\n  audioflinger: extend max i/p channel to 8 channels\n\nChange-Id: Iefd24213da12d8635d2672454c2cd40fb6ba96a4\n"
    },
    {
      "commit": "753466603a88f1ea3d966d17ab79256519553759",
      "tree": "42864de8966f6226ab648ef3c4faebac7dbecc70",
      "parents": [
        "5bdfad1a45a7d5fd03732c75768eef65975660dc"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Wed May 04 18:45:46 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 05 18:12:34 2016 -0700"
      },
      "message": "audioflinger: extend max i/p channel to 8 channels\n\n- on open_input stream max channel check is for 2 (FCC_2),\n  extend this to 8 (FCC_8)\n\nBug: 27348418\n\nChange-Id: I0d7e5a101dee0a2effabc3637a1fb73e7ea78ffd\n"
    },
    {
      "commit": "5fb71f62474c92206dd068b725dab0572c9ede95",
      "tree": "0aa3115a652b64dccbb5a7a8a62268e4039e9ea2",
      "parents": [
        "e2a5d52e83cc26be29cac7f4efa49bd1b4f99fe1",
        "eb7f3940044effc6a8b313a73134b5cc2156068c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 20 00:01:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 20 00:01:20 2016 +0000"
      },
      "message": "Merge \"Add AudioSystem::getFrameCountHAL()\" into nyc-dev\nam: eb7f394004\n\n* commit \u0027eb7f3940044effc6a8b313a73134b5cc2156068c\u0027:\n  Add AudioSystem::getFrameCountHAL()\n\nChange-Id: Ib82d6e8fb760a90e47a374cd1d10f5a956ea1a9c\n"
    },
    {
      "commit": "4a8308b11b92e608cdaf29f73f7919e75706f9a2",
      "tree": "2358eaecf7bb7beafd3341927c1621ac1a594ed3",
      "parents": [
        "88bd61e31184a72e34e5a8c2ae11d034e01845aa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 18 14:10:01 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 19 13:01:54 2016 -0700"
      },
      "message": "Add AudioSystem::getFrameCountHAL()\n\nAnd add comments about declaring methods in binder opcode order.\n\nBug: 28117362\nChange-Id: I3c4426fa4bb3ce9c4a207a44d3bb1103d7fef160\n"
    },
    {
      "commit": "eb059113754c54b178d6de6feec13daadd244672",
      "tree": "024a13e22bc041a0892c7b6f20741fe7ae606f6f",
      "parents": [
        "bb4c624a6e68cc1926987b71f7d100a9d7e36cc3",
        "88bd61e31184a72e34e5a8c2ae11d034e01845aa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 19 15:07:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 15:07:34 2016 +0000"
      },
      "message": "Merge \"Reduce rollovers of unique ID generator\" into nyc-dev\nam: 88bd61e\n\n* commit \u002788bd61e31184a72e34e5a8c2ae11d034e01845aa\u0027:\n  Reduce rollovers of unique ID generator\n\nChange-Id: I424811996d1dd9f6ee71ceda4fff515c7698334f\n"
    },
    {
      "commit": "d2e67e1ef59921101fd7b047e2acf84e5d16d66e",
      "tree": "72883cf95314261924d58d5f36e409eb3863b3eb",
      "parents": [
        "5cc32c5ee9caa11a3c9cd205c42463ead28ec87e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 11 08:26:37 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 18 11:14:10 2016 -0700"
      },
      "message": "Reduce rollovers of unique ID generator\n\nBug: 28119934\nChange-Id: I6c57d5555f6c5ddc4d4eee1e6f27fc4aaeb31c83\n"
    },
    {
      "commit": "043470de221152557286d0b7aa0536ea165c268a",
      "tree": "c911b73a5687de23750aa40d5cd953c7897a710f",
      "parents": [
        "212fa4adc0a08e043b586f8abbf6d14ce863f5ad",
        "49e5375bf3c98c825538d30b6bea9f4e84f0c36f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 13 23:12:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 23:12:26 2016 +0000"
      },
      "message": "Merge \"Add memory leak detection to audioserver\" into nyc-dev\nam: 49e5375\n\n* commit \u002749e5375bf3c98c825538d30b6bea9f4e84f0c36f\u0027:\n  Add memory leak detection to audioserver\n\nChange-Id: I85d46b708beb575d01e51f610c87fbb35f2601a7\n"
    },
    {
      "commit": "35fec5f61393124c9e13958941637b8fe386385e",
      "tree": "fefde299821c796e53e4e87a924754f213d5850c",
      "parents": [
        "0c4a97e6e1470b2d8b8810792af8d66689020c51"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 13 14:21:48 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 13 14:38:00 2016 -0700"
      },
      "message": "Add memory leak detection to audioserver\n\nadb shell dumpsys media.audio_flinger --unreachable\n\n(userdebug and eng builds)\n\nBug: 28049120\nChange-Id: I72ac624bd5b5482aac44b9f3d8429f657f715cb4\n"
    },
    {
      "commit": "8bcb9c56784bc9abf44ded0c4fb55b24739d700f",
      "tree": "2a598e29e1f722a1760dbbeb450cc071f5e1b8a3",
      "parents": [
        "25d7862329a460ce4cd2fe094713eb89e2136ded",
        "dd3e7a1be829243c6db6ad82e41e6a3a8dce174b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 06 23:04:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 06 23:04:37 2016 +0000"
      },
      "message": "Merge \"Check newAudioUniqueId() parameter \\\u0027use\\\u0027\" into nyc-dev\nam: dd3e7a1\n\n* commit \u0027dd3e7a1be829243c6db6ad82e41e6a3a8dce174b\u0027:\n  Check newAudioUniqueId() parameter \u0027use\u0027\n\nChange-Id: Ib64400d1198a40f8fcfbe188e6514107ab87b0f1\n"
    },
    {
      "commit": "9d003131329450081c8129b3fddd85cf20d2d9d9",
      "tree": "787230db6b4b5417e5fd345e2d1ca9979434ebfd",
      "parents": [
        "4d363d4625588bf2007d31c244c83b0965d834b4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 06 14:38:09 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 06 22:55:24 2016 +0000"
      },
      "message": "Check newAudioUniqueId() parameter \u0027use\u0027\n\nBug: 28025366\nChange-Id: Ice81e47cb919aa2aa6c78ccadebe9a1f19668f9c\n"
    },
    {
      "commit": "b9b9fa3d28a0436bb5e267d8fc3626ebd820fe78",
      "tree": "08e04811c7ee2862a435bbf83c97f30d94206a61",
      "parents": [
        "538a7799970cb171c68fb9c15ad9134063fd6302",
        "54b48c31fba71534ea56e32609f7ea770519fb2e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 22:12:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 29 22:12:39 2016 +0000"
      },
      "message": "Merge \"Use audio_module_handle_t and audio_patch_handle_t consistently\" into nyc-dev\nam: 54b48c3\n\n* commit \u002754b48c31fba71534ea56e32609f7ea770519fb2e\u0027:\n  Use audio_module_handle_t and audio_patch_handle_t consistently\n\nChange-Id: Icbe23830212ccdbf49ee6e7978642aeb3d2de6c6\n"
    },
    {
      "commit": "a13cde98a880341f0a56d91da6364b093fb5d24e",
      "tree": "3974215c7cc52f2136c04e3e38568e0483c03129",
      "parents": [
        "45993ad8833063a50af83f76ec1ddeba673b5277"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 28 15:26:02 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:43:18 2016 -0700"
      },
      "message": "Use audio_module_handle_t and audio_patch_handle_t consistently\n\nBug: 27814144\nChange-Id: I54b7a73ec318779fd3addb060998f4d94141152d\n"
    },
    {
      "commit": "7b81b7e026053615f93af1efc130205eef547e57",
      "tree": "b26d582078cccbb1404b25b9e19b4d330d9d1903",
      "parents": [
        "23fc0dafa8e1d53343790fb576731784e8bdd3b7",
        "311fab5291be07fe33ec65240825b4f4bc118fe7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 19:58:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 21 19:58:09 2016 +0000"
      },
      "message": "Merge \"Fix build warnings\" into nyc-dev\nam: 311fab5\n\n* commit \u0027311fab5291be07fe33ec65240825b4f4bc118fe7\u0027:\n  Fix build warnings\n"
    },
    {
      "commit": "c42e9b462661673dff480ee71757a58b0f806370",
      "tree": "c9d53e761500f2466b7b8c4cfeb78b072d424e29",
      "parents": [
        "02c4f1c02b832868bbae2bf2c62039e54dc0b6d4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 11:35:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 12:05:28 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Idfdaff3a7a8f60cd8817bd306bfba28020a391c8\n"
    },
    {
      "commit": "da631f5894b2cfb77e47179a0f401c266b5eedb1",
      "tree": "dab5ce13a2e273f1126c243fd6326d2cbb0792ae",
      "parents": [
        "066ba128e3641ddfb74adc3095e357d8b6f8452a",
        "7be6866af78a86a89113e9b680f1a6416ae1f711"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:43:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Mar 19 00:43:22 2016 +0000"
      },
      "message": "Merge \"Fix build warnings\" into nyc-dev\nam: 7be6866\n\n* commit \u00277be6866af78a86a89113e9b680f1a6416ae1f711\u0027:\n  Fix build warnings\n"
    },
    {
      "commit": "57c4e6f7464d458eb52d209c2a63524913d6406d",
      "tree": "b7fae46bbc981c62460d572b51d6f68b9f9b847d",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:07 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:36:37 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: I33178dbe0bfc087d6599579ca0529ad853c669ed\n"
    },
    {
      "commit": "20f18efb29b8fea661dd4119a764d3f8d4dfe7a2",
      "tree": "dbfc77377a975892c262875568d5be025698eb3f",
      "parents": [
        "f91072ab57f9fadade6c3eba2aabb1a914a94345",
        "9a57e34f476d5d2400e6e8ffac303c6190e641f0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 17 17:33:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 17 17:33:21 2016 +0000"
      },
      "message": "Merge \"Use audio_session_t consistently\" into nyc-dev\nam: 9a57e34\n\n* commit \u00279a57e34f476d5d2400e6e8ffac303c6190e641f0\u0027:\n  Use audio_session_t consistently\n"
    },
    {
      "commit": "d848eb48c121c119e8ba7583efc75415fe102570",
      "tree": "06733e396ad546bf39be0a6699193d041883edad",
      "parents": [
        "38246e482ea3bd1e0f88f7133934ec4537b48bbd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 08 13:42:11 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 16 14:04:22 2016 -0700"
      },
      "message": "Use audio_session_t consistently\n\nBug: 27562099\nChange-Id: I328d8226191386b163f2ace41233607294c50dcd\n"
    },
    {
      "commit": "06fd24f5a3a17ee5ac3069c3e009238fcb6aab39",
      "tree": "cb3958311b6eec313d90573520318e4462b69ab4",
      "parents": [
        "51505245428709f5f2bdbe815a0422d2ac68c436",
        "c29470f61a5f35f23c8f52851e778b6613ace6f8"
      ],
      "author": {
        "name": "Sumit Bhattacharya",
        "email": "sumitb@nvidia.com",
        "time": "Tue Mar 08 07:47:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 08 07:47:19 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Get shared heap size from property\" am: 844fab9b2b\nam: c29470f61a\n\n* commit \u0027c29470f61a5f35f23c8f52851e778b6613ace6f8\u0027:\n  AudioFlinger: Get shared heap size from property\n"
    },
    {
      "commit": "cd64e0ed477fcaadd2ad03c5ef79d43ae98d7e44",
      "tree": "218bd0153ff132bf885775ca74c72f9a0bac2677",
      "parents": [
        "ee38fad5e9109f92b24c0e4d6d0d021b3d20e4e0"
      ],
      "author": {
        "name": "Sumit Bhattacharya",
        "email": "sumitb@nvidia.com",
        "time": "Thu Feb 11 01:37:20 2016 +0530"
      },
      "committer": {
        "name": "Sumit Bhattacharya",
        "email": "sumitb@nvidia.com",
        "time": "Fri Mar 04 16:29:44 2016 +0530"
      },
      "message": "AudioFlinger: Get shared heap size from property\n\nFor consecutive 24bit, 192kHz, 7.1 content 4MB heap is not enough.\nSo exposing a propery ro.af.client_heap_size_kbyte to set platform\nspecific shared client heap size.\n\nChange-Id: I2fb257c5fecc0245aa3a07998c2bfd6864a7d64f\n"
    },
    {
      "commit": "517161856d74f5fe39cce131f29b977bc1745991",
      "tree": "c12acaeb7597dd99c1a5f0c96d5af7f8a4b7b52a",
      "parents": [
        "db52e5e3dc15f7233ccd9c128fe43f2b2f58b29b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 29 18:00:56 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 02 17:40:18 2016 -0800"
      },
      "message": "audio flinger: fix offload track underrun\n\nFix offload track underrun detection causing early disabling\nof offloaded audio tracks.\n\nOptimize sleep time in case of underrun to avoid spinning while\nwaiting for new data.\n\nRe-enable offload when streaming\n\nBug: 26668110\n\nChange-Id: I874728c69647ac05e1effb84c48700a6d0ac7435\n"
    },
    {
      "commit": "2c073da0f02c3cf7cd4795af2d861222cbcab72a",
      "tree": "080be6a2e66a503d0d8653f5fc1261811bd1b83a",
      "parents": [
        "eeecb980ff4c202d0a3c4b0bfe040dce2f73336d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 09:14:08 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 01 08:33:02 2016 -0800"
      },
      "message": "AudioSystem::getSamplingRate and getFrameCount now work for input\n\nAlso fix whitespace and comment in AudioIoDescriptor.\n\nBug: 25641253\nBug: 21019153\nChange-Id: I6a1e2262f44f87ec3ebce6e5274f45ed0f47eb13\n"
    },
    {
      "commit": "eeecb980ff4c202d0a3c4b0bfe040dce2f73336d",
      "tree": "decce0d925acd9efd68f2d540bbabb60c0661c6b",
      "parents": [
        "91afc2297dd1c39302dba6ff68e9839aae27d39a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 10:44:04 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 01 08:32:58 2016 -0800"
      },
      "message": "Add use for audio_unique_id_t\n\nBug: 25641253\nBug: 21019153\nChange-Id: I65dc128e760c245f3d90559635a8981b186c87d7\n"
    },
    {
      "commit": "ae0cff1d48b2cd10aeff9627398faf684894eece",
      "tree": "4aef282efa85820a4bba79027e26ea6fb394b904",
      "parents": [
        "f70077e43576f876bac08f3cf1f702b3c19b8184"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 13:57:49 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 15:44:12 2016 -0800"
      },
      "message": "Restore media.log service\n\nBug: 26306954\nChange-Id: I00319f4869f46941e4c814a29b2f69a62e572743\n"
    },
    {
      "commit": "9a00399340c7c129714dff96f1ab59045fe43056",
      "tree": "b70295d0bb4def6b690c3754d289ecc79a5497f9",
      "parents": [
        "1deb248c059cb79d4e4f3d0e4a1ca59533a8046e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 23 15:24:34 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 23 16:38:09 2016 -0800"
      },
      "message": "Restore audio tee sink\n\nAnd fix a bug in error logging\n\nBug: 27323882\nChange-Id: Ifc2cf18c651337ae305a38f25b6955f9b9128199\n"
    },
    {
      "commit": "fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb",
      "tree": "b8c3d97da524e8aefcb37e736619da6b8e087a82",
      "parents": [
        "3ea4f828a6906e9931f96ebdcae9c63e14b86cbd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 09 10:47:02 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 12 06:30:43 2016 +0000"
      },
      "message": "AudioTrack: support ENCODING_IEC61937\n\nSet DIRECT flag.\nUse audio_has_proportional_frames() instead of audio_is_linear_pcm()\nwhere appropriate.\n\nBug: 24541671\nBug: 20891646\nBug: 26373761\nChange-Id: Ia32036b18683b084d6c9887593df87397ea0afd9\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "cdf924a32579e92ea456e8e7d5c14ed5920b620f",
      "tree": "5bf84116acb58e98506f95bd93bccbf39d678309",
      "parents": [
        "da53ce37c5283fad74d213f855ed8f4a078b860c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 15:57:56 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 05 16:46:29 2016 +0000"
      },
      "message": "audio flinger: add check in getInputBufferSize()\n\nMake sure that the sample rate passed to getInputBufferSize()\nis not 0 to avoid divide by 0 in destinationFramesPossible()\n\nAlso check the channel mask parameter for validity.\n\nbug: 26866012\nChange-Id: Ifabbf56cadb0db104f99230cacdba30e0c6a0a3a\n"
    },
    {
      "commit": "d79072e9dff59f767cce2cda1caab80ce5a0815b",
      "tree": "cab9cab36ddf4bb61675c4508d923b283fd3edd6",
      "parents": [
        "a7b723715bab4ddf6db364c825135a9bc003c7c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 06 08:41:20 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 25 15:34:04 2016 -0800"
      },
      "message": "Remove TimedAudioTrack and associated code\n\nBug: 8278435\nChange-Id: I095c1a4888e645e14d93b0b15fbef4524a831ca1\n"
    },
    {
      "commit": "879db19219c120d424f7d7ad7164c3cfe56124e4",
      "tree": "8a5ac3f034e03ad61e4c5f402f4a4fd53a53a716",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 05 16:00:34 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 05 16:01:13 2016 -0800"
      },
      "message": "Fix compile warning\n\nChange-Id: I7d88292cbb07b9894ec4c7d60e71f547d93b3c89\n"
    },
    {
      "commit": "ce7176868977b0d44b245735bd8d3d8e54e61035",
      "tree": "e9acdbbddb0fd6ada0bfab96d5e80c21e08cccf4",
      "parents": [
        "44333e51c62643e7581022495a2a1f410dd62e27"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 22 13:40:32 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 22 14:27:51 2015 -0800"
      },
      "message": "Disable media.log until service is ready\n\nBug: 26235256\nChange-Id: I99dd980d2b6d789347023a19737b7d65b0608267\n"
    },
    {
      "commit": "dcb346b7dc5b88c3e85db8a70bbd6a2fee8192b9",
      "tree": "e0038e85e097843f469a6befe9fae1014435f4f5",
      "parents": [
        "ebdddf82b07fa2c4134c3c00dbbbaa1ad3286726"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 09 10:47:29 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 11:29:11 2015 -0800"
      },
      "message": "Run audio services in audioserver instead of mediaserver\n\naudioflinger, audiopolicy, (fm) radio, soundtrigger moved to audioserver.\nmedialog is removed from mediaserver.\naudioserver has same permissions and rights as mediaserver.\n\nmediaserver is allowed to specify client uid to audioserver.\n\nSubsequent CL will add medialog to audioserver.\n\nTBD: Pare down permissions.\n\nBug: 24511453\nChange-Id: Iccaa08b874a502710d142e72f8abbb3d97c44cfa\n"
    },
    {
      "commit": "3f273d10817ddb2f792ae043de692efcdf1988ae",
      "tree": "85d7e25da5a8a1d7c86487821004246ccab36e03",
      "parents": [
        "c5fcd06e9c332a60ba5fcba2118270dbdf22ae42"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Nov 24 09:06:49 2015 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 02 18:18:03 2015 +0000"
      },
      "message": "Uses AudioFlinger to signal battery stats for audio.\n\nBug: 18177221\nChange-Id: I704010c037cb99bb74b98798ee8e494fa8bdc875\n"
    },
    {
      "commit": "aba407f1a6378ac2518d0d76d0d18419b7722a81",
      "tree": "23ecf127eabd7fa532a5f8b779f0323aaf16bdec",
      "parents": [
        "ce805c2a0c447dcdd4e649db7415020dbec1100b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 16:18:53 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 00:28:11 2015 +0000"
      },
      "message": "audioflinger: increase shared memory heap size\n\nBug: 21093153.\nChange-Id: I389af11451b01ce49fdb8957e2f322ba1925a62e\n(cherry picked from commit da73b6c7474aaa5616f0214e238776f12717f32b)\n"
    },
    {
      "commit": "da73b6c7474aaa5616f0214e238776f12717f32b",
      "tree": "23d1293f0bea6dfc85344639ed4fff3585753f0b",
      "parents": [
        "9a57d1cb51ef14a666eefb32b245dd47cf79844e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 16:18:53 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:40:02 2015 -0700"
      },
      "message": "audioflinger: increase shared memory heap size\n\nBug: 21093153.\nChange-Id: I389af11451b01ce49fdb8957e2f322ba1925a62e\n"
    },
    {
      "commit": "eb9487e10294a4e73977f460f30eeaff503acd21",
      "tree": "fdd7dfd6fd2074f9d0684ed9b11dd851dc469d50",
      "parents": [
        "8f0547a954b39d5750488be7e060ebe1ebfdf666"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 22 09:15:17 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 22 12:20:43 2015 -0700"
      },
      "message": "Fix capture overruns at non-primary sample rate\n\nand small buffer size.  Also:\nPull out the magic number \"12 ms\" to a named constant.\nRemove obsolete AudioFlinger::mPrimaryOutputSampleRate.\n\nBug: 22662814\nChange-Id: I261f75a222c4505a84aad2493d251bd2dea59f68\n"
    },
    {
      "commit": "7c1ec5f038e63a5eb8b04434577c25bc23f5f410",
      "tree": "f6b8feda43ba0bb6666171b57318ad3cea48a45e",
      "parents": [
        "54c0659b9efa72d11997c590c4d377c44789c7fd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 09 14:52:47 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 10 10:58:41 2015 -0700"
      },
      "message": "audio: several fixes in audio routing callbacks\n\n- audio policy:\nForce device change to ensure new audio patch creation\nupon first track activity on a given output.\nFix function device_distinguishes_on_address() which could mistake\nsome output device with remote submix input device.\n\n- audio flinger:\nReduce number of binder calls upon new client registration by only\nsending ioConfigChanged() callbacks to newly registered client.\nFix first patch after output thread creation not triggering an\nioConfigChanged() callback.\n\n-audio system:\nForce client registration upon routing callback installation to force\nnew ioConfigChanged() callback from audio flinger.\n\nBug: 22381136.\n\nChange-Id: Ieb0d9f92f563a40552eb31bc0499c8ac65f78ce4\n"
    },
    {
      "commit": "72e3f39146fce4686bd96f11057c051bea376dfb",
      "tree": "00e43a5392f717a49a3569de3a5bdce9aa7b6a6e",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 20 14:43:50 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 20 17:35:37 2015 -0700"
      },
      "message": "audio flinger: do not call JAVA services until system is ready\n\nWait for system ready indication form AudioService before enabling\ncalls to scheduling service or power manager.\n\nBug: 11520969.\nChange-Id: I221927394f4a08fd86c9d457e55dd0e07949f0cf\n"
    },
    {
      "commit": "f6870aefc5e31d4220f3778c4e79ff34a61f48ad",
      "tree": "6943c86c7143ffc113d91b8ed7a34d75ab183434",
      "parents": [
        "70c75d8c15707d5eade38fe3e622f8500c29556b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 10:50:03 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 13:23:51 2015 -0700"
      },
      "message": "audio flinger: fix fuzz test crash\n\nClear output stream pointer in duplicating thread\nwhen the main output to which it is attached is closed.\n\nAlso do not forward master mute and volume commands to\nduplicating threads as this is not applicable.\n\nAlso fix logic in AudioFlinger::primaryPlaybackThread_l()\nthat could accidentally return a duplicating thread.\nThis never happens because the primary thread is always\nfirst in the list.\n\nBug: 20731946.\nChange-Id: Ic8869699836920351b23d09544c50a258d3fb585\n"
    },
    {
      "commit": "9f578d3297782be6de5373e171f3b4af49726709",
      "tree": "d6063a06edf2c17868195472d63869c069dbfbb8",
      "parents": [
        "c8a70d340f0ce610dfb8bd44d833708269484e99",
        "4cb668392ee0433462251afbee109405c6efacc8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 05 15:55:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 15:55:08 2015 +0000"
      },
      "message": "Merge \"AudioRecord keeps track of UID\" into mnc-dev"
    },
    {
      "commit": "4cb668392ee0433462251afbee109405c6efacc8",
      "tree": "50e324bd1af8951136ec9b7c4a7538e514490e80",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 01 18:34:17 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 05 02:04:33 2015 +0000"
      },
      "message": "AudioRecord keeps track of UID\n\nBug 20832981\n\nChange-Id: If5f3c61fae02d86b9d6fdf411711f854fd56c77d\n"
    },
    {
      "commit": "cc85abcf4ac398dca240db356b8b4db052b415a4",
      "tree": "65f9eccab6b0d9b9f3dcee48e2c44326b0edbef4",
      "parents": [
        "0bbf8b213ad96051357e3ad6d6d2808bfa31a59a",
        "73e26b661af50be2c0a4ff6c9ac85f7347a8b235"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 19:10:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:10:26 2015 +0000"
      },
      "message": "Merge \"AudioSystem: refactor audio config cache and callbacks\" into mnc-dev"
    },
    {
      "commit": "73e26b661af50be2c0a4ff6c9ac85f7347a8b235",
      "tree": "7290cb83e5f7df830447fe2badf99c43e0afc020",
      "parents": [
        "054d9d3dea1390294650ac704acb4aa0a0731217"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 27 16:55:58 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 11:45:07 2015 -0700"
      },
      "message": "AudioSystem: refactor audio config cache and callbacks\n\nClean up implementation of audio configuration cache and\ncallback events from AudioFlinger:\n\n- Define class AudioIoDescriptor for audio input and output\nconfigurations outside of AudioSystem class.\n- Do not use void * but an AudioIoDescriptor as argument to\naudio config callbacks from AudioFlinger.\n- Remove unused configuration events.\n- Move AudioSystem audio input and output cache from static singletons to\nmembers of AudioFlingerClient subclass.\n\nChange-Id: I67c196c32c09ce2756af0755ee1fe631040c3270\n"
    },
    {
      "commit": "850206ed9ebc6c663a957a656966bce2604dc170",
      "tree": "e7b0bdb5dee5a44524afc0f9c89e4bba878bfbb4",
      "parents": [
        "94ce218596a88cc6d37098cce4e17e68f7405603",
        "054d9d3dea1390294650ac704acb4aa0a0731217"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 01:03:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 01:03:59 2015 +0000"
      },
      "message": "Merge \"PatchPanel: do not use setParameters() internally.\" into mnc-dev"
    },
    {
      "commit": "be71aa29a3c86d2e01cd17839d2a72ab09a1bce5",
      "tree": "ca29cd10f78ff053761eb809c391019180836742",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 28 12:06:02 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 29 19:06:41 2015 +0000"
      },
      "message": "Respect the record audio app op - media\n\nChange-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b\n"
    },
    {
      "commit": "054d9d3dea1390294650ac704acb4aa0a0731217",
      "tree": "4d67c48a2cf367d661f1e33a6670cda052a569a3",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 24 08:48:48 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 19:05:19 2015 -0700"
      },
      "message": "PatchPanel: do not use setParameters() internally.\n\nDo not use setParameters() with AUDIO_PARAMETER_STREAM_ROUTING\nwhen communicating the input or output device selected to playback or\nrecord threads, even for HAL version less than 3.0.\nUse createAudioPatch()/releaseAudioPatch() instead.\nThis allows to send more information on the output or input device being\nselected.\n\nAlso fix a regression introduced in L where the output device selection\nwas not communicated to effects on record threads.\n\nChange-Id: I4780ada53241d56694b005c992171e173c3bf8f5\n"
    },
    {
      "commit": "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": "062e67a26e0553dd142be622821f493df541f0c6",
      "tree": "125d28264adfc5b7bd993bb343569eea63bfb95d",
      "parents": [
        "21b51b61ee52e6aa74d98b138d3dd4f0e17b1441"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 11 13:40:50 2015 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 24 13:24:18 2015 -0700"
      },
      "message": "AudioFlinger: call SPDIF wrapper from AudioFlinger\n\nCreate an interface layer between the AudioFlinger and the HAL\nthat manages the wrapping and format conversion.\n\nRemoved unnecessary includes.\nHandle rate conversion in getRenderPosition().\nTry to open HAL with encoded format before wrapping with SPDIF.\n\nBug: 17566660\nChange-Id: I00ad888ca15ff0f85b85efb8167c7f5ea761a244\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "2f55e7632dfa0dafde58efd8cb2af6593217fd91",
      "tree": "98919a61809f20da6186d3e54537546604d7ff22",
      "parents": [
        "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:05:08 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:22:51 2015 -0800"
      },
      "message": "Rename tee sink file name and add prefix to macros\n\nChange-Id: If316b9e32963d9baef8f4382fcc73dc6c4ff684d\n"
    },
    {
      "commit": "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628",
      "tree": "0d55fe4b6aa3009acd3f9253b42d19a3214ed029",
      "parents": [
        "0f5b562737d6b5457aa83a4fdce9c6fb32584d9d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 13:46:52 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:16:44 2015 -0800"
      },
      "message": "Rename formal parameter to match type name\n\nChange-Id: I0761005b751f5c4a4b28729b1820961ff3077afd\n"
    },
    {
      "commit": "63238efb0d674758902918e3cdaac322126484b7",
      "tree": "07fdf37a2bc73a886d8ea41f69e722ed914754af",
      "parents": [
        "d7e1d08c2ac21cdd2f3b7f83fec7094f6a98fc08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:50:29 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Remove redundant semicolon from namespace closing\n\nChange-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7\n"
    },
    {
      "commit": "3e91b5d11866599e8f33e63fb3b6c1d81ce1a1d2",
      "tree": "44923162a2e46fcd80271fb04975526081a34aac",
      "parents": [
        "ea78b1497eef36b6a3ba783be20615989e87ed08"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 10:54:52 2015 -0800"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 15:49:36 2015 -0800"
      },
      "message": "Fix for getMicMute in AudioFlinger\n\nPrevious logic will only check for mic state of Primary Hardware\nDevice. Current logic checks state of all devices with valid\nmicrophone input.\nThis is needed for audio_output feature support.\n\nbug: 19439530\nChange-Id: Ibbb92412ac70cf2915bbe8660c04fbaf0ab74171\n"
    },
    {
      "commit": "b187de1ada34a9023c05d020a4592686ba761278",
      "tree": "31dea84d078f6198ce17ca856fcbb76c402f37b6",
      "parents": [
        "64cbdee08a18b25448a5fb0b058d3b83d5630d7f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 30 08:18:15 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 30 08:18:15 2014 -0800"
      },
      "message": "Line length 100\n\nChange-Id: I6c8fe626a3825fa9e139319656d682a57b887c97\n"
    },
    {
      "commit": "a268a817fb9df2a266f06b58680fa4168517c8cd",
      "tree": "0a2d597a6d69559f7e81fcb3838d94b9a44238a2",
      "parents": [
        "a73d8dba2785771302dde66c369dc6cbae3b170b",
        "93118cd96233b682be95a3eb114d88d69c8cc416"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:49:57 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:49:57 2014 +0000"
      },
      "message": "am 93118cd9: am 99429b40: am 277c7b8c: Merge \"Fix permission check for audio recording\" into lmp-mr1-dev\n\n* commit \u002793118cd96233b682be95a3eb114d88d69c8cc416\u0027:\n  Fix permission check for audio recording\n"
    },
    {
      "commit": "93118cd96233b682be95a3eb114d88d69c8cc416",
      "tree": "64f81b51b6071954122e612e860d2ed106e48a93",
      "parents": [
        "3af7b7291bcd9b1b30dd11a8bedbdc63cc74b5a9",
        "99429b40411790b85e19c57392bbd292a237c470"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "message": "am 99429b40: am 277c7b8c: Merge \"Fix permission check for audio recording\" into lmp-mr1-dev\n\n* commit \u002799429b40411790b85e19c57392bbd292a237c470\u0027:\n  Fix permission check for audio recording\n"
    },
    {
      "commit": "97bb33f58d742539f3382583d7978fca71ffa2d5",
      "tree": "be3e26027b66bfc605a45af032fb91de1bdb7c7a",
      "parents": [
        "6e430fbd927b9cc043639eb728ddc921392a60e8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 12 16:23:43 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Dec 15 18:13:39 2014 -0800"
      },
      "message": "Fix permission check for audio recording\n\nDefine input types covering the different usecases for audio\n  recording, and check the corresponding permissions when\n  starting to record.\nMove the permission check from audio flinger to audio policy,\n  as only the policy has the information to determine which\n  permission to enforce.\nFix missing permission when an application records audio\n  and the audio is injected by an external policy.\n\nBug 18736417\n\nChange-Id: If7ec040502242c990ac8ea464db484339bdce573\n"
    },
    {
      "commit": "3a3e87005fdfbfe4564605220a044b8023d0f539",
      "tree": "657e4b6b3ca4d8d7030333975203c91a895b30dd",
      "parents": [
        "5ecbdf58b0674ac4a8b9d56b49ebeb1033e5bd27",
        "72215491c60fbcdb9a2f0be782e24e39cca249c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 12:10:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:10:00 2014 +0000"
      },
      "message": "am 72215491: am 1a475921: am 223fd5c9: audio: new routing strategies and stream types\n\n* commit \u002772215491c60fbcdb9a2f0be782e24e39cca249c5\u0027:\n  audio: new routing strategies and stream types\n"
    },
    {
      "commit": "72215491c60fbcdb9a2f0be782e24e39cca249c5",
      "tree": "ac366bd0aad25d9575b19f77a75f23518a8810e8",
      "parents": [
        "fd2711ca8c9108d25f18b48b924afd925f41344a",
        "1a475921c0577a4650d1bbe40a85b732d1766939"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 12:01:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:01:49 2014 +0000"
      },
      "message": "am 1a475921: am 223fd5c9: audio: new routing strategies and stream types\n\n* commit \u00271a475921c0577a4650d1bbe40a85b732d1766939\u0027:\n  audio: new routing strategies and stream types\n"
    },
    {
      "commit": "223fd5c9738e9665e495904d37d4632414b68c1e",
      "tree": "33e0afab9a7479cdc4c688a742a8977c8ead21e4",
      "parents": [
        "bc0f452b9a76dd8c8244e775bc9c5aa85cae3ddf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 11 13:43:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 21 10:41:13 2014 -0800"
      },
      "message": "audio: new routing strategies and stream types\n\nAdded new routing strategies and stream type for internal use\nby audio policy manager and audio flinger:\n- One for accessibility to allow different routing than media\n- One for re-routing (remote submix) in preparation of dynamic\npolicies\n- Added stream type for \"internal\" audio flinger tracks used\nfor audio patches and duplication.\n\nBug: 18067208.\nChange-Id: I88f884b552e51e4a49c29125e5a1204cf58ff434\n"
    },
    {
      "commit": "77e79a509d19ab50b1867fe3903b5a8fae450591",
      "tree": "881d068bdc54d4835665e48649165f07393caafa",
      "parents": [
        "575174d62b665900203d70a4d410329b8918c2af",
        "e78a27ca9c701aa996eee0e47fa26dd69d80ffcf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 17 10:50:55 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 17 10:50:55 2014 -0800"
      },
      "message": "resolved conflicts for merge of e78a27ca to lmp-mr1-dev-plus-aosp\n\nChange-Id: If10a9cc17245f95d5e10b1507445abbb4020670e\n"
    },
    {
      "commit": "f888020c6e2735624f2b2a30e72aca24e17b8b4d",
      "tree": "76d92b7a91a4bebd4e84d6afdc2ef4a2e4943df8",
      "parents": [
        "d02641098b16df2fd4cd32b72a30eb6f3b64e12b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 14 07:58:25 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 17 10:05:07 2014 -0800"
      },
      "message": "Update calls to IInterface::asBinder()\n\nto use the new static version.\n\nChange-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a\n\nConflicts:\n\tmedia/libmedia/IAudioFlinger.cpp\n\tmedia/libmedia/IMediaPlayer.cpp\n\tmedia/libstagefright/CameraSource.cpp\n"
    },
    {
      "commit": "06b46062d2f8bc82ca3061a23d197734ae51918b",
      "tree": "3aee1330c3d65579643e50d105da35919ddc295f",
      "parents": [
        "e5a9eb684921b75919b1a7fee97259b0ca48bd47"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 14 07:58:25 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 14 14:01:03 2014 -0800"
      },
      "message": "Update calls to IInterface::asBinder()\n\nto use the new static version.\n\nChange-Id: I89a5988a0ac694ffc04d88cf939e8455bf925d4c\n"
    },
    {
      "commit": "298c4dc7e90cae4873d89098b777d1068a4e35ea",
      "tree": "7dcf27d59c46667f171e8bbeb5dccdbb536b515a",
      "parents": [
        "123a2deac738bc9c3a1cc35cd3dc7f8f91302c36",
        "d202ac37fc1f5f31e180af55cebd22810a80251b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 04 03:27:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 04 03:27:59 2014 +0000"
      },
      "message": "am d202ac37: am b7092547: Merge \"remove some restrictions on effect output channels\" into lmp-mr1-dev automerge: ed1e55c\n\n* commit \u0027d202ac37fc1f5f31e180af55cebd22810a80251b\u0027:\n  remove some restrictions on effect output channels\n"
    },
    {
      "commit": "b10352f4bc11ae6f3d93e464074709555ecf9e06",
      "tree": "52187ad264691c11e3d1efc541fe791568a33d69",
      "parents": [
        "b1322c78b035c9f47ebe57a39799d7a0e13bf57f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 03 16:25:39 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 03 16:25:39 2014 -0800"
      },
      "message": "remove some restrictions on effect output channels\n\nDo not prevent from attaching effects to a non stereo\noutput thread, unless the output thread is a mixer thread.\n\nBug: 18157592.\nChange-Id: I6ac3187187a1b8aade7db04ea6dfbc47dacc25c3\n"
    },
    {
      "commit": "2384b55ab31c49fb5babce058237c27ed28ed53e",
      "tree": "8a15e1aff54ab1831d925dd86d9ba33c9cdad223",
      "parents": [
        "9df2742a0dc6eb1e4aea2905487722dc60d537cf",
        "1f4b82a20d75b5aa8d7801d342ac3a9b48fa0863"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Oct 30 10:31:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 30 10:31:06 2014 +0000"
      },
      "message": "am 1f4b82a2: am b14e6dc8: Merge \"Always use an address for remote submix\" into lmp-mr1-dev automerge: 6e8212b\n\n* commit \u00271f4b82a20d75b5aa8d7801d342ac3a9b48fa0863\u0027:\n  Always use an address for remote submix\n"
    },
    {
      "commit": "fd4c14883b268a0bc5514da135fe6b7d1ce2071b",
      "tree": "29e4594fffdc70dc7d51a3abd7586a556df1e448",
      "parents": [
        "31551f8dd625b8d40961e141d2913b0073f852ab"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Aug 06 16:02:28 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Oct 27 16:03:09 2014 -0700"
      },
      "message": "Always use an address for remote submix\n\nUsage of remote submix device for audio rerouting (e.g. wifi display)\n didn\u0027t mandate the use of addresses. Use \"0\" as the default address\n when none is specificed.\nIn logs, only use hex format for audio devices\n\nBug 16009464\n\nChange-Id: Ibfb1ce6881eba8b7e34420293b8a7077a6e659e6\n"
    }
  ],
  "next": "152f59b8cff44f74e6416cf309bfd85e0bb7e1db"
}
