)]}'
{
  "log": [
    {
      "commit": "5b4051afc26367d7accd06580c5135c8295759f9",
      "tree": "7570bfc424d02beb1ac90b4f1e2afba02c23d222",
      "parents": [
        "1570e5805254f638ccf5bb5c29870a9c8e7a7db3",
        "dae27707fc7d8370eb200d25d1a7c6dd7ad5e201"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 20 00:35:47 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 20 00:35:47 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Associate audio time with client uid\""
    },
    {
      "commit": "dae27707fc7d8370eb200d25d1a7c6dd7ad5e201",
      "tree": "0dd0ed540d7d58a7d19e83ee9ff648d57f218df6",
      "parents": [
        "07f49573613aee5a8e661f74a324db371ecc8551"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 31 14:01:16 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 14 17:52:54 2016 -0800"
      },
      "message": "AudioFlinger: Associate audio time with client uid\n\nGroup active track operations for add and remove together.\nPlaybackThread now uses strong pointer for active tracks.\n\nTest: Play Music, Youtube, Batterystats, CTS AudioTrack\nBug: 32361950\nChange-Id: I101df081dd8d090560a83c44c2fa9ffcbf39c84d\n"
    },
    {
      "commit": "20b9ef0b55c9150ae11057ab997ae61be2d496ef",
      "tree": "21bd57d748dd47600b1e62bfb18d4acb08e15438",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 05 11:03:16 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 12 12:29:41 2016 -0800"
      },
      "message": "Add unique audio port IDs to AudioTrack and AudioRecord\n\nThis will allow to track activity at the track level instead of\nat audio session level as only possible with current implementation.\n\nAudioTracks and AudioRecords will receive a unique audio port ID the\nfirst time they register to audio policy with\ngetOutputForAttr()/getInputForAttr() and keep this ID for their\nlifetime.\n\nThis CL is the first partial change and just updates the\naudio policy and audio flinger APIs used at track creation time.\n\nTest: basic regression test of audio playback and capture use cases\n\nChange-Id: I8d612e67738e120494f61e3f7c60bfd0b2c6a329\n"
    },
    {
      "commit": "abf6ff26df459d991cdbc2dca3b78046c97469db",
      "tree": "9e6ab352b182d73d3508c32c81090ec9e355f5a2",
      "parents": [
        "26a8ba63104f3c7d4e0a750b58d56ad76dbce373",
        "2148bf0e79c436b8764b9edc4c8f2730cce98a32"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 04:33:19 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 03 04:33:20 2016 +0000"
      },
      "message": "Merge \"Log audio information to ensure complete delivery\""
    },
    {
      "commit": "0d5a2ed0a05a2bf337c68edb54f24c60e18032c1",
      "tree": "6b8dac8ec17119ad5b661b85cff30bffe1d4a645",
      "parents": [
        "0d96fa05bf3f22942c372ecc93a7f6a44ecda30a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 01 15:28:29 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 02 12:21:39 2016 -0800"
      },
      "message": "improve audio effect framwework thread safety\n\n- Reorganize handle effect creation code to make sure the effect engine\nis created with both thread and effect chain mutex held.\n- Reorganize handle disconnect code to make sure the effect engine\nis released with both thread and effect chain mutex held.\n- Protect IEffect interface methods in EffectHande with a Mutex.\n- Only pin effect if the session was acquired first.\n- Do not use strong pointer to EffectModule in EffectHandles:\nonly the EffectChain has a single strong reference to the EffectModule.\n\nTest: Tested with EffectTest app. Regression tests in main audio use cases.\n\nBug: 32707507\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "2148bf0e79c436b8764b9edc4c8f2730cce98a32",
      "tree": "8d380e3f69e99d4ebf76c08c51a5833dc0eca2ff",
      "parents": [
        "b54cab90d4bf84745a57232080d72a50c3b731da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 28 19:01:02 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 01 17:36:41 2016 -0800"
      },
      "message": "Log audio information to ensure complete delivery\n\nTest: Audio playback\nBug: 30572472\nChange-Id: Ibad6fc202692cd3480ae726627252afdead083f3\n"
    },
    {
      "commit": "9cab746b116b8aed38ca6b97bfea35103535e522",
      "tree": "cc36a1ef710484eb9df3195a757ff430bdbe4bd4",
      "parents": [
        "5850c4c8eecbe0db3cee8511a4f82cb443e27d08"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 13:05:20 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 14:04:09 2016 -0800"
      },
      "message": "Revert \"AudioFlinger: Associate audio time with client uid\"\n\nThis reverts commit 2f366df67c31119bb6dd726becd32d14b18e6573.\n\nBug: 32728805\nChange-Id: If0a158154814492eda427de0af8a49c0b0a91180\n"
    },
    {
      "commit": "5850c4c8eecbe0db3cee8511a4f82cb443e27d08",
      "tree": "27aa0d14f34059b7941251d50221856b66f702a7",
      "parents": [
        "c6cd50f4e6b07530cb0391002fcf3e5a6ae4767f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 13:04:31 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 13:49:16 2016 -0800"
      },
      "message": "Revert \"AudioFlinger: Remove naked track pointers\"\n\nThis reverts commit 062bfceaefab29f0f71db7d5a248b3f5f0572b6a.\nBug: 32728805\n"
    },
    {
      "commit": "77109420fe285b4e9618bd5f0cd12e0fcef6eced",
      "tree": "f738962f880d4a2a14bc46e598f4f049e8ed2962",
      "parents": [
        "eb6300d4bbe1cb0e24e26b15e3b5af8afe874c5f",
        "1f12a8ad958344c50733b948628ffa06db9c5bc6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:15:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 10 19:15:46 2016 +0000"
      },
      "message": "Merge \"Audio: Use uid_t for uids\""
    },
    {
      "commit": "1f12a8ad958344c50733b948628ffa06db9c5bc6",
      "tree": "d9ce12941c1461657bf32779f6d18605defd5cf1",
      "parents": [
        "062bfceaefab29f0f71db7d5a248b3f5f0572b6a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 16:10:30 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:43:39 2016 -0800"
      },
      "message": "Audio: Use uid_t for uids\n\nTest: Power manager shows correct uids for audio\nBug: 32713790\nChange-Id: If5337e17283268f74dc0f00cc66ece9153d680ef\n"
    },
    {
      "commit": "0871d93cbadad8d736a09454b47846e09a793504",
      "tree": "5955cc2fc577d70022d46b5dcfb3d4a6a410c18b",
      "parents": [
        "19b396db94fa9dc3dfe713e8687dad4804e06327",
        "062bfceaefab29f0f71db7d5a248b3f5f0572b6a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 03:18:41 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 03:18:42 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Remove naked track pointers\""
    },
    {
      "commit": "19b396db94fa9dc3dfe713e8687dad4804e06327",
      "tree": "86759f272c9f80f115c8ef1750e0c49f14753f7b",
      "parents": [
        "b847a8944c659d743ede4145cb1d52cc89f5030b",
        "2f366df67c31119bb6dd726becd32d14b18e6573"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 01:39:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 01:39:27 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Associate audio time with client uid\""
    },
    {
      "commit": "062bfceaefab29f0f71db7d5a248b3f5f0572b6a",
      "tree": "364bf9fb56e116b3999558175453f7aec1ad4f77",
      "parents": [
        "2f366df67c31119bb6dd726becd32d14b18e6573"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 01 14:58:47 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 14:51:57 2016 -0800"
      },
      "message": "AudioFlinger: Remove naked track pointers\n\nTest: Play Music offloaded and kill audioserver\nChange-Id: I3114a67f248e067e0b5334d76e4b5e6c39858040\n"
    },
    {
      "commit": "2f366df67c31119bb6dd726becd32d14b18e6573",
      "tree": "e38f357fab72df9693d5c5ad0d50079927a0744f",
      "parents": [
        "3ee0f1069e56d74b9cb39de8b0d9701369a4446b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 31 14:01:16 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 14:50:45 2016 -0800"
      },
      "message": "AudioFlinger: Associate audio time with client uid\n\nGroup active track operations for add and remove together.\nPlaybackThread now uses strong pointer for active tracks.\n\nTest: Play Music, Youtube, Batterystats, CTS AudioTrack\nBug: 32361950\nChange-Id: Ica96e2b84b9dfa5766571e24de49401a81a30e9d\n"
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "f2ae3e19080938db8cbf29a963fd744a3964fcc2",
      "tree": "f5f1ef5ff03ae54e10af8e2726ce1db80b49f87d",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 27 17:10:59 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 28 10:09:28 2016 -0700"
      },
      "message": "BatteryNotifier: attribute battery usage of video to correct uid.\n\nTest: manual check batterystats\nBug: 32361950\nChange-Id: Id052220e87f6667ca908d5bf6be6164dc8c14c53\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "commit": "9fe94012187a29eeeca2c74e75f121192560fba0",
      "tree": "6019137198afcc098e664c337b86b765d63a63bc",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 14:57:40 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 15:29:33 2016 -0700"
      },
      "message": "Split audio effects headers\n\nThere can be different use cases with the code that imports\nheaders from audio_effects (each subsequent case is a more\nspecialized version of the previous one):\n\n  1. The code only needs access to general structures\n     like effect_descriptor_t:\n     \u003d\u003d\u003e include system/audio_effect.h\n     Example: AudioSystem in libmedia\n\n  2. The code that needs access to effect UUID and parameter\n     enums:\n     \u003d\u003d\u003e include system/audio_effects/effect_foo.h\n     Examples: media framework effects interfaces, libwilhelm\n\n  3. The code that needs to call into HAL:\n     \u003d\u003d\u003e include hardware/audio_effect.h\n     Examples: libaudiohal (implementation part) and libeffects\n\n  4. The code that implements a particular effect:\n     \u003d\u003d\u003e include audio_effects/effect_foo.h\n     Examples: cts/.../CTSTestEffect.cpp\n               stuff in hardware/, vendor/\n\nNote that AudioPolicy still deals with the effects HAL directly,\nthis needs to be fixed.\n\nChange-Id: I963335ede6a196f9225caf21e1a01d03635e363c\nTest: make\n"
    },
    {
      "commit": "00260b5e6996b0a4b12f71c5b84e44adea040534",
      "tree": "7e93a2e3cc5f918d8f7a7409d9c98712eed0d2fe",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 12:54:24 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 14:02:38 2016 -0700"
      },
      "message": "Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h\n\nAlso remove some outstanding dependencies on hardware/audio.h.\n\nMost of the time, only constants and structs from audio_effects.h\nare used, and no actual calls into HAL are made. Move these\ndefinitions into system/audio_effect.h, and generate constants\nfrom TREBLE HAL definition.\n\nFor parameters, always use values from AudioParameter class.\n\nThere are still some outstanding includes of hardware/audio.h\nin code that directly deals with audio modules. Need to extend\nlibaudiohal interfaces to support required functionality.\n\nTest: make\n\nChange-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6\n"
    },
    {
      "commit": "473de569eed6438ee3eea955efe309900122f051",
      "tree": "bd7a57db417df87bb37243012f3854034defa6ac",
      "parents": [
        "d3196abc2d216e74be7b137cd0b93ef5b4f005db",
        "5bc5b90bbe3eae27c6de5a556eda531d4430dfab"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 19:56:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 12 19:56:09 2016 +0000"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST am: d3bb0adfe4 am: 4a7ef5c1d7\nam: 5bc5b90bbe\n\nChange-Id: I681d68a632a527983972df160ba5dab1c50967cc\n"
    },
    {
      "commit": "5bc5b90bbe3eae27c6de5a556eda531d4430dfab",
      "tree": "33c6c894943057ea9867ad8d396ec8f1fa04fdab",
      "parents": [
        "13c04bc10f428243921c71699646476a2b921363",
        "4a7ef5c1d70bbe944ca812769f98ff45400562c8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 19:48:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 12 19:48:55 2016 +0000"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST am: d3bb0adfe4\nam: 4a7ef5c1d7\n\nChange-Id: Ia7d516d957b0582ec6776d4306019e6f2dfc10c0\n"
    },
    {
      "commit": "d3bb0adfe40e60bb94e9a87e8d5bffb4ea6863b0",
      "tree": "b9ee66240bf0caaaecfbb6d9ca7c1ce54d5e8697",
      "parents": [
        "2035bc0e096cbef893a36c1888da67a77d1330b9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 11 17:16:43 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 10:01:27 2016 -0700"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST\n\nEffects without process function now are allowed with RAW\nand FAST playback and record tracks.\n\nBug: 32053844\nChange-Id: I58064eb2c357043c2da1a781a20988f42570d97e\n"
    },
    {
      "commit": "cbc8f617c1aebef5d041fa40dcd38a5466690b99",
      "tree": "525470607c3e6436c5a73caac90830104fcde9ac",
      "parents": [
        "0c739c59dd1a3d52beb82a353c13b6c853d93f5f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "message": "Eliminate dependencies on hardware/audio.h (trivial cases)\n\nframeworks/av must not depend on hardware/ (except for the code\nfrom libaudiohal that actually calls into HAL).\n\nThis CL deals with simple cases where depending on system/audio.h\nis enough.\n\nChange-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4\nTest: make\n"
    },
    {
      "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": "711ee66377eb053cd7a3467ca519239ebb7bf300",
      "tree": "e4c3ded55e5de71dde6f30bf551014cf4f2f2a86",
      "parents": [
        "2dddfc19437c00d77ad4943b6d10ad038ebf486e",
        "5c24d28bfc72423ff5bb6de3d46fe4747d9b64b1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Sep 25 21:33:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Sep 25 21:33:55 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client am: ad7dd9610b am: 6cfa8fdc9f\nam: 5c24d28bfc\n\nChange-Id: I3653bed5e0a0ef1476aa4409b256a8a81c6bc3fa\n"
    },
    {
      "commit": "5c24d28bfc72423ff5bb6de3d46fe4747d9b64b1",
      "tree": "9c1f9c68d80e8042e273626d2c1b9ac6959b87c9",
      "parents": [
        "a9f9acc3ba7502f0aede544c821cbe1c5f3bd992",
        "6cfa8fdc9f28dabe98c44e7317330f06f7a88813"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 19:08:03 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 19:08:03 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client am: ad7dd9610b\nam: 6cfa8fdc9f\n\nChange-Id: I1952387cd010a11ce9512a8b56a363cc4bb7a078\n"
    },
    {
      "commit": "6cfa8fdc9f28dabe98c44e7317330f06f7a88813",
      "tree": "72f4a6f51de98737236a97b033bd306e6c87f164",
      "parents": [
        "cfb81966d1ff5b7bdbb014d73e7946976efc0b8b",
        "ad7dd9610b6fafa81baf69607f4ac669da88182a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 19:06:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 19:06:07 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client\nam: ad7dd9610b\n\nChange-Id: I0dd67dfc1324cd4969561370faf105bcf7286949\n"
    },
    {
      "commit": "7bafda7a153cda393ce018241fa7304845225ae5",
      "tree": "b50b6e95c158427610b71aca1145e12b4b4fac30",
      "parents": [
        "cc0ec44a984b92535a9dc40873b551c5087df2d5",
        "ad7dd9610b6fafa81baf69607f4ac669da88182a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 18:55:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 23 18:55:08 2016 +0000"
      },
      "message": "Merge \"audioflinger: limit max number of tracks per client\" into nyc-mr1-dev"
    },
    {
      "commit": "39ed2aa31b0c6c8e485660c2aedff74f10d14411",
      "tree": "ccefc2d11804064a33fa4c6822b5b26240e84c80",
      "parents": [
        "162c17fad1ffa1db1588f82773933e8984661089",
        "6353f121d73b8312bfad6451c14213e64113999e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 23 00:29:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 00:29:45 2016 +0000"
      },
      "message": "Add logging of written frame counts am: 2c45393d84\nam: 6353f121d7\n\nChange-Id: I3f569f4587c09f9f3f85d2466a3c742e2720b529\n"
    },
    {
      "commit": "ad7dd9610b6fafa81baf69607f4ac669da88182a",
      "tree": "fb08c9c45c9db1d22c4828c4fb98ff8bc2a471df",
      "parents": [
        "08e1f41731ad95a0019b3733b999958a07f705ac"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 22 12:38:37 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 22 23:43:32 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client\n\nLimit max number of audio tracks for a given application to\nlimit the chance of denial of service by misbehaving apps\nnot releasing tracks.\n\nBug: 7007023\nChange-Id: Id7ac37450aabdbeaa5f83cb6e4b2a2b0c749f99c\n"
    },
    {
      "commit": "b54c854d1ef1bb66e093c94099f915178eac570e",
      "tree": "e07e0f670a489ddc829a95054a835bcf1754539c",
      "parents": [
        "b5ae35c5cf5cc7176661eea9bf725437c85693b0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 21 12:55:15 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 22 16:20:39 2016 -0700"
      },
      "message": "Add logging of written frame counts\n\nBug: 31591209\nChange-Id: Ife5917aa65b02c3b0791dfe1975c70ccf58f9a75\n(cherry picked from commit 2c45393d842a5d2968ef78fa7a08667efdf15f2a)\n"
    },
    {
      "commit": "2c45393d842a5d2968ef78fa7a08667efdf15f2a",
      "tree": "d259a3720b7b676532ee145202827f00d580273e",
      "parents": [
        "3b0515db3405df2e759984aff7ac59aed0b16a98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 21 12:55:15 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 22 13:12:37 2016 -0700"
      },
      "message": "Add logging of written frame counts\n\nBug: 31591209\nChange-Id: Ife5917aa65b02c3b0791dfe1975c70ccf58f9a75\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": "db0fd69d5dd2cb70009884458d5c78c9e7256c15",
      "tree": "4b16fae6e5bf6231de2d2a931beae3a892bc626c",
      "parents": [
        "681caefc7d3db69952daf1536513070c50b99635",
        "77b44035440f4dfc1c8d29da7d800f111ebe6376"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 10:26:09 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 10:26:09 2016 -0700"
      },
      "message": "Merge commit \u002777b44035440f4dfc1c8d29da7d800f111ebe6376\u0027 into fix_merge\n\nChange-Id: I0f1d2b605a8d90f86f8fa27cbf971018981c6c38\n"
    },
    {
      "commit": "77b44035440f4dfc1c8d29da7d800f111ebe6376",
      "tree": "16bb499a29cb5ac24acdaf0f350e6fd838972e36",
      "parents": [
        "b58c4e1bbd4e2420614e1bfe13f885e502301b63",
        "79c3335e35ce7dea158ac8bf03922c843987f5a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "message": "audio flinger: add support for effects without process function am: 6dd0fd92d6\nam: 79c3335e35\n\nChange-Id: I719e0379c19d6e0e4e50597726f83b3a1d0b3cd8\n"
    },
    {
      "commit": "6dd0fd92d6cdeb2cf5b7127c0e880e5eacfd4574",
      "tree": "bbc1a7a950617900e093696c6e81c589151ba65c",
      "parents": [
        "7c6bd7b17835cfa615d1f74aa7fe7c45c7190e4d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 12:44:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 17:27:27 2016 -0700"
      },
      "message": "audio flinger: add support for effects without process function\n\nAdd support for effects indicating they do not implement a process\nfunction and do not consume CPU or add latency.\n\nEnable those effects on RAW and FAST outputs and inputs.\nDo not call the process function.\n\nBug: 31491112.\nChange-Id: If020c8bb3b180568dec5138b087edec8c2524182\n"
    },
    {
      "commit": "1f12a380bef8aa162dec458cc7849e886815aeaa",
      "tree": "2743ba02d3f3da04eced074dd69a9d22bf823166",
      "parents": [
        "3366b888d878e25b5ab335d6e658a31fe38ab7a9",
        "1b291841a58ce6b2b291232dfdd56134b2185c48"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 14 21:41:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 21:41:17 2016 +0000"
      },
      "message": "Merge \"Fix RecordThread running too often if fast capture is active\""
    },
    {
      "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": "1b291841a58ce6b2b291232dfdd56134b2185c48",
      "tree": "d2eebced63ee2d64c58f604c68fd328c88816d2d",
      "parents": [
        "6b11f552f99ce7bd40ea164f65ac1590a3f4198b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 18 14:55:21 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 12 15:52:22 2016 -0700"
      },
      "message": "Fix RecordThread running too often if fast capture is active\n\nBug: 30159297\nChange-Id: Ieca804450168391c162fc4862398586fcc5d7e4e\n"
    },
    {
      "commit": "18e6e46cfa616c34095e269505121f5033312924",
      "tree": "e8a485ee21e2cbbd592ab7dd97b0d97134acdc5e",
      "parents": [
        "b2569aa382f29a20652726133d89c8ca7d4c9e28",
        "85cda4dc026ca3ce8725202738b2deb24ce94829"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Aug 30 02:30:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 30 02:30:12 2016 +0000"
      },
      "message": "Do not park the FastMixer on AudioPatch changes am: f60abceac7 am: 927fefa85b\nam: 85cda4dc02\n\nChange-Id: Iabc962fec667ad2f77dfb2721cccb05e00adb2b2\n"
    },
    {
      "commit": "85cda4dc026ca3ce8725202738b2deb24ce94829",
      "tree": "b4c1227e1791e7566ad068ccfd2ff35daab218ec",
      "parents": [
        "56b0c92009e76851ed3a161804117971b4defa4b",
        "927fefa85b5acbb88b3ec4b49467286d0cc3bb9e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 22:37:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 26 22:37:37 2016 +0000"
      },
      "message": "Do not park the FastMixer on AudioPatch changes am: f60abceac7\nam: 927fefa85b\n\nChange-Id: I175e8ebb94c97638707480b1725cea9491ea9a98\n"
    },
    {
      "commit": "f60abceac70c7a30dc2f888c4b80256b4a01a6dd",
      "tree": "1cc5171b3bd41042ec6f45556684056cdbc69963",
      "parents": [
        "7b960a5dc58cfcbb3ef5ac05c93549edf954e5d0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 11:37:54 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 13:23:48 2016 -0700"
      },
      "message": "Do not park the FastMixer on AudioPatch changes\n\nCan be turned on again by property af.patch_park.\n\nBug: 30952714\nChange-Id: Id7f7750e28ecf950d110379309d18819e169e999\n"
    },
    {
      "commit": "4e6ff4151f03c6b7211136b83e71fca34bbc402c",
      "tree": "990012b1ec4e5726b8998a794039c02978ec118a",
      "parents": [
        "b57d5f9e2a1bd8e079427f21f8f1afe65a5f1e13",
        "e50af19356b852781a28233d50f06b7adde7d470"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 22 23:08:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 23:08:27 2016 +0000"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks am: e94c27a17f am: 7cba7beec4\nam: e50af19356\n\nChange-Id: I80e26985a69800d31b0aa9331bccdc0a91caa08b\n"
    },
    {
      "commit": "e50af19356b852781a28233d50f06b7adde7d470",
      "tree": "47834b3f887c40ff955a4c2f3bd93b057aa7c010",
      "parents": [
        "5e86258dca0694303b2549aaff1e22b30521a28f",
        "7cba7beec49e0509a0c7aebf0942dcf347b2a42b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 22 23:03:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 23:03:42 2016 +0000"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks am: e94c27a17f\nam: 7cba7beec4\n\nChange-Id: Id5d5b2e5ac25a167583243d84fd060698c18930f\n"
    },
    {
      "commit": "e94c27a17fd56fd5ac63fc2de9df08cfcc80b1e3",
      "tree": "d88183ad52dcb7f0c96426a59cb6ed4200a996be",
      "parents": [
        "15223ec262f8f1135be6ee727a480dd4a04457e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:31:46 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:31:46 2016 -0700"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks\n\nEnsure that the list of wakelock UIDs is only cleared if\nthe offload playback wakelock is released during async completion\nwait.\n\nBug: 30830106\nChange-Id: Icf18b9e88e55c27bc03d8a904cc91f593cc95815\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": "e964d4e421e2d1ca937227a580c0c837091a11e3",
      "tree": "876478fb4d5b18ddf8ba3b761440e46651b45ecb",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "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 11:35:57 2016 -0700"
      },
      "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\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": "b7809a709886c5dc58e737cd3c356579a088dc65",
      "tree": "23115631abc67af3f9d9b609da17cd39f947a014",
      "parents": [
        "1ec42202f602beb77802db24d5a2bec1c896bb0c",
        "54efaa90a110e50b1b9a5e4badaf30d494be56a0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 22:43:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 01 22:43:16 2016 +0000"
      },
      "message": "audioflinger: fix OutputTrack initial check am: af3ec7c9a0 am: 5271857554\nam: 54efaa90a1\n\nChange-Id: I7c4f4db022099abbcd20cdfb0971efa2d46998f6\n"
    },
    {
      "commit": "54efaa90a110e50b1b9a5e4badaf30d494be56a0",
      "tree": "54a0dc254b619d92b5945c9bd0b45a40d693c188",
      "parents": [
        "d3c73b760b8dcabf0988105521b33cff1deccf13",
        "527185755453d8cbdde97e8c956daa18d8b60987"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 22:29:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 01 22:29:29 2016 +0000"
      },
      "message": "audioflinger: fix OutputTrack initial check am: af3ec7c9a0\nam: 5271857554\n\nChange-Id: Icf61ce31fb83cc5796be5122c65b483437b17365\n"
    },
    {
      "commit": "af3ec7c9a0cfc483017d4457e0e3d77de4b1a33a",
      "tree": "2de75cb35401811b038042d1b111451d3f029984",
      "parents": [
        "3e5605b8b8a8f349d70cdb0d53409cfe69cada7b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 11:25:19 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 11:34:34 2016 -0700"
      },
      "message": "audioflinger: fix OutputTrack initial check\n\nCall initCheck() on newly created OutputTrack in\nDuplicatingThread::addOutputTrack() to make sure that\nthe track is successfully attached to the AudioMixer.\n\nAlso make invalid track name always fatal in AudioMixer::deleteTrackName().\n\nBug: 29953737\nChange-Id: I47f2517bd53de940e125391de99c40611ad0fc9d\n"
    },
    {
      "commit": "57ef37350cd88ded7b83a2f4362fcbaab36f9372",
      "tree": "7586dd4d435141313f8512c0b0976ff9da0c996b",
      "parents": [
        "974ff82b6c000ee0ae756a936a908fa28b96d5ca",
        "ad6d52d38917069e3d8e68cec1625855b9d96200"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 16:39:32 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 16:39:33 2016 +0000"
      },
      "message": "Merge \"Flush FastCapture PipeReader when starting after stop\""
    },
    {
      "commit": "f2c7f0043f13a0317e343082d3dc2913d3699f70",
      "tree": "11522499c01ef345d679c1b7df67bbfd81024b93",
      "parents": [
        "6c28be466bcca2508a8c7a0186c4236dd62a3a5c",
        "648bc951b86860dd11463340029eaef4b4d90003"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 01:05:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 01:05:39 2016 +0000"
      },
      "message": "Merge \\\\\\\"AudioFlinger: Account for frames dropped in suspend mode\\\\\\\" into nyc-mr1-dev am: f769ab76d1 am: 4166015417\nam: 648bc951b8\n\nChange-Id: I23516b04456b3d8f49c44ca42f4e62bd8dc134e4\n"
    },
    {
      "commit": "6d988186ffa998a1e28251b3e655cfcbccca9db5",
      "tree": "e01c96735f01306ef67cc5acf6e3f953889ba08f",
      "parents": [
        "bcb918b955a36a79aa908f392fb8a7b1cdd405f8",
        "5c42082da799fa6469321e621216922444678900"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 01:05:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 01:05:31 2016 +0000"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode am: 238fa3deff am: ef0eed3d26\nam: 5c42082da7\n\nChange-Id: I9c51ed42c901c054fd25e7629725655d763ff390\n"
    },
    {
      "commit": "648bc951b86860dd11463340029eaef4b4d90003",
      "tree": "c8f0cda636bf5f114f76f6eb517f8072193cf849",
      "parents": [
        "f413847e1e9932d74ea5c358d59db1cf29764c7c",
        "416601541797b132ee8abe1e1d15d773ad975ce5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 00:36:58 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 00:36:58 2016 +0000"
      },
      "message": "Merge \\\\\"AudioFlinger: Account for frames dropped in suspend mode\\\\\" into nyc-mr1-dev am: f769ab76d1\nam: 4166015417\n\nChange-Id: Ied8c294777ddf380876197fe620c8931e681deb5\n"
    },
    {
      "commit": "5c42082da799fa6469321e621216922444678900",
      "tree": "a349987e30848fcf580ce138413227c6f713d077",
      "parents": [
        "b7e9c3b4d88582f040857d8733e6b0b43c2d774f",
        "ef0eed3d26e54c176b813fb7656c1cfb2c473062"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 00:36:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 00:36:48 2016 +0000"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode am: 238fa3deff\nam: ef0eed3d26\n\nChange-Id: I0790c3ac10654142856c9e252277fc3c7880b7c4\n"
    },
    {
      "commit": "416601541797b132ee8abe1e1d15d773ad975ce5",
      "tree": "03b82bca32f9d5cde183a95919f9eec3b0c3e5c1",
      "parents": [
        "53ca0e79ee9b02309b6eb1b890a1c309b6dcb2b2",
        "f804475807407442d5596ab7378ed07d50664063"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 23:50:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 28 23:50:09 2016 +0000"
      },
      "message": "AudioFlinger: Prevent offload underrun during active playback\nam: f804475807\n\nChange-Id: Iefc9c73590b5aede7ef3ee1a2eaf728bdd01113e\n"
    },
    {
      "commit": "f929f9b203ef4787d45f8b24aab053aaab993be9",
      "tree": "03b82bca32f9d5cde183a95919f9eec3b0c3e5c1",
      "parents": [
        "f769ab76d185a63e6da12f58fe902e977f1ad0fd",
        "f804475807407442d5596ab7378ed07d50664063"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 23:40:56 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 28 23:40:56 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Prevent offload underrun during active playback\" into nyc-mr1-dev"
    },
    {
      "commit": "238fa3deff26d7e4d9e81bd0a88c936f16226c4e",
      "tree": "a14e74e084954b1a67625c52046ab5febe76a0c5",
      "parents": [
        "11dd692efa611d129167abea854dc14f0046d727"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 10:53:22 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 12:29:04 2016 -0700"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode\n\nThese frames must be added to the kernel position in timestamps.\n\nBug: 30025777\nChange-Id: I30c14503c9467059c3782e5c96c01ae1cf3709f6\n"
    },
    {
      "commit": "f804475807407442d5596ab7378ed07d50664063",
      "tree": "1912f24061d3d57d209eef933edf0e6c41203b82",
      "parents": [
        "11dd692efa611d129167abea854dc14f0046d727"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 27 14:58:11 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 27 16:20:43 2016 -0700"
      },
      "message": "AudioFlinger: Prevent offload underrun during active playback\n\nBug: 29897830\nChange-Id: Id99d416cdaa8bf62daca8f92e3564f2895f15490\n"
    },
    {
      "commit": "ad6d52d38917069e3d8e68cec1625855b9d96200",
      "tree": "7a5000195073bc8c7a42fc55113297d8015c2ad2",
      "parents": [
        "510b50593bd332cfd50cedce54fed260f6c8d5e4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 18 13:42:03 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 20 22:44:20 2016 +0000"
      },
      "message": "Flush FastCapture PipeReader when starting after stop\n\nDiscards stale frames.\n\nBug: 30199985\nChange-Id: Ie93a3784bf052aba6989d2ff1be92b1980b0c207\n"
    },
    {
      "commit": "b566e2ed097985da01d4218a3216b45049b25767",
      "tree": "a5714b200a7c3502896cf7c95b4410c201bd3021",
      "parents": [
        "e18d7415fda1eccc765d697e9a4776e09b9eb07c",
        "cbbb9a50d30360794724a0eecc10fff726706cec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 20 19:00:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 20 19:00:18 2016 +0000"
      },
      "message": "Merge \\\\\"Only read timestamps from HAL if not FastCapture\\\\\" into nyc-mr1-dev am: b5aac433cd\nam: cbbb9a50d3\n\nChange-Id: Ic983502e4b1802208deb3bd85cd537caa45314c9\n"
    },
    {
      "commit": "cbbb9a50d30360794724a0eecc10fff726706cec",
      "tree": "04a79cb346adcd40272ccdd9c0aadcc1307fbc1f",
      "parents": [
        "012ff16b258c31ddaa210316610fcf7b3cba8245",
        "b5aac433cda041c1fde2fcfadf1835f3f8d19eeb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 20 18:56:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 20 18:56:53 2016 +0000"
      },
      "message": "Merge \\\"Only read timestamps from HAL if not FastCapture\\\" into nyc-mr1-dev\nam: b5aac433cd\n\nChange-Id: I35220717ab32936421a8dc906c4af2cac979a5f5\n"
    },
    {
      "commit": "b5aac433cda041c1fde2fcfadf1835f3f8d19eeb",
      "tree": "03305459986d065b2e3b5ac49dfbb3320f24e78b",
      "parents": [
        "38c75d9d30b0b40e3d926503d553c869ce7bec1c",
        "69ce44d164c7b9963c06cb96ea9d25cf99e069c9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 20 18:44:53 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 20 18:44:53 2016 +0000"
      },
      "message": "Merge \"Only read timestamps from HAL if not FastCapture\" into nyc-mr1-dev"
    },
    {
      "commit": "69ce44d164c7b9963c06cb96ea9d25cf99e069c9",
      "tree": "001637c0cae7a599c8b73b37dbeb82dda1f6c7d8",
      "parents": [
        "9f6392250bf6d02a514bd83b743906dda748dee9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 18 12:14:25 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 18 13:30:05 2016 -0700"
      },
      "message": "Only read timestamps from HAL if not FastCapture\n\nPrevents blocking FastCapture from the RecordThread\n\nBug: 29392543\nChange-Id: Icd00534677be121bc4f4e9a7a6bd5b44f6f14f50\n"
    },
    {
      "commit": "d7e04b3fe9f61fdba21116dd7c50b86979fe2497",
      "tree": "98f12446425616a9f21beef337fc778df8de00f6",
      "parents": [
        "f48f8bdcf3dbb23b6eb2a5f65d8e750187deb480",
        "97a480927d83e4d79ec915a86262ac3489377bff"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 18 16:32:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 18 16:32:48 2016 +0000"
      },
      "message": "Merge \\\\\"AudioFlinger: fix offload volume on resume\\\\\" into nyc-mr1-dev am: cecb30a22f\nam: 97a480927d\n\nChange-Id: I00f8643d420ab63ce63658aebb98794c7517958c\n"
    },
    {
      "commit": "97a480927d83e4d79ec915a86262ac3489377bff",
      "tree": "15445fe00c00f18afbd888cc245fe74cde05d007",
      "parents": [
        "881f62d5a1da2f0cf7222a8d304fa58faa154197",
        "cecb30a22f3657483f07f259231b81b02b2a7305"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 18 16:29:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 18 16:29:19 2016 +0000"
      },
      "message": "Merge \\\"AudioFlinger: fix offload volume on resume\\\" into nyc-mr1-dev\nam: cecb30a22f\n\nChange-Id: I7c4165affd590a4f43d631006e02f92bc4fd0a9e\n"
    },
    {
      "commit": "cecb30a22f3657483f07f259231b81b02b2a7305",
      "tree": "4a5a62592ac3f8f96ea4cd8ebbd3393bc2e56fa6",
      "parents": [
        "bc7e8996c2be0377a659348649367c2d9455f21d",
        "3df841a10b4d553949c518ad52f1af8dcb365058"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 18 16:21:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 18 16:21:08 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: fix offload volume on resume\" into nyc-mr1-dev"
    },
    {
      "commit": "3df841a10b4d553949c518ad52f1af8dcb365058",
      "tree": "4e3320a04ac63efdb74e903c376efcbd309acd9d",
      "parents": [
        "87cbfa8c5ecbe515c380d5592cef20c1fafe36b7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 15 15:15:40 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 15 15:59:34 2016 -0700"
      },
      "message": "AudioFlinger: fix offload volume on resume\n\nMake sure that new volume is sent to audio effects and HAL\nimmediately upon resuming playback on direct and offload threads.\n\nAlso make sure that only the latest active track on thread controls\nvolume.\n\nBug: 30057465\nChange-Id: I846958b4aae5abd3740b8a2545b57bd8f3614031\n"
    },
    {
      "commit": "8221d9e855909c8e097f5f0e986755baca4dd1b7",
      "tree": "8a98d6f59d0a977cb155a68507bcf19f577676bd",
      "parents": [
        "009c54d610a68a39dc6336c57d491940b4048f01",
        "78f9c3ad666d832d423550ded32f3626abbe6e28"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 17:35:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 15 17:35:08 2016 +0000"
      },
      "message": "Distinguish systrace timelines for playback and capture am: f9715e43ea\nam: 78f9c3ad66\n\nChange-Id: If66bafab6f0cd2aa1f5478b963faec0632f297ca\n"
    },
    {
      "commit": "78f9c3ad666d832d423550ded32f3626abbe6e28",
      "tree": "96f3c4cba0a48de603651690e3a72d086e35b1a7",
      "parents": [
        "927326caf324d555d2966d40ff435222d913066e",
        "f9715e43ea73361321663514c44129c939c5db2f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 17:30:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 15 17:30:10 2016 +0000"
      },
      "message": "Distinguish systrace timelines for playback and capture\nam: f9715e43ea\n\nChange-Id: I67d7f23998c10a554d53cea37ad443ca1fad3f6f\n"
    },
    {
      "commit": "f9715e43ea73361321663514c44129c939c5db2f",
      "tree": "60a0f90c5c13c59bd9f41ba26e7c9e8d6f59db31",
      "parents": [
        "9f6392250bf6d02a514bd83b743906dda748dee9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:02:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 08:27:55 2016 -0700"
      },
      "message": "Distinguish systrace timelines for playback and capture\n\nBug: 30120068\nChange-Id: If416540f0785e83e7b1e8ba986ee55b5b9298a2a\n"
    },
    {
      "commit": "8da2d981fb78fd75f9d0d2cab9c23fb651be334d",
      "tree": "19c08e0ac4bac175e812713c3fdbf59b39e65659",
      "parents": [
        "8c19f51b2bb15560b20118c8dacdbc9d33709130",
        "d7fdb3b5c3f8eca33b7462cc46093752d47203c1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 14 16:07:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 14 16:07:20 2016 +0000"
      },
      "message": "Merge \\\\\"AudioFlinger: fix capture stop sequence\\\\\" into nyc-mr1-dev am: a5bcf56619\nam: d7fdb3b5c3\n\nChange-Id: Icd9355083c77ae2e0b7fb2ed12d675105483d3dd\n"
    },
    {
      "commit": "d7fdb3b5c3f8eca33b7462cc46093752d47203c1",
      "tree": "3d0f33cae75e06cc385e3555eebc024ca4c61fd1",
      "parents": [
        "9912625fff25e5677ef618a2a36e1ac9b1983090",
        "a5bcf56619a70b0b46c737a29d873bbff8fb77a4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 14 15:46:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 14 15:46:44 2016 +0000"
      },
      "message": "Merge \\\"AudioFlinger: fix capture stop sequence\\\" into nyc-mr1-dev\nam: a5bcf56619\n\nChange-Id: I17cde8f3113d5371e24ce1d4adafa2413752b0e3\n"
    },
    {
      "commit": "a5bcf56619a70b0b46c737a29d873bbff8fb77a4",
      "tree": "8183234bb00a1f23ab0d7b36cc3e389efc1a5657",
      "parents": [
        "3d0d2ed84140eb505440102c017cf5108ad8807c",
        "5c25d5637ef3406883e0fc97a713f9d5cdca426f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 14 15:33:18 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 14 15:33:18 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: fix capture stop sequence\" into nyc-mr1-dev"
    },
    {
      "commit": "5c25d5637ef3406883e0fc97a713f9d5cdca426f",
      "tree": "abb2f66193347d42bb1114686b0472fc9bba4ff0",
      "parents": [
        "bea67b8a707b8875419019ebd2d568090310b326"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 13 17:17:45 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 14 15:32:05 2016 +0000"
      },
      "message": "AudioFlinger: fix capture stop sequence\n\nMake sure that the HAL input stream is actually in standby when audio policy\nis notified by stopInput().\nThere was a race condition where it was possible for a new capture stream to be started\nin the interval between stopInput() notification and input stream going into\nstandby because of the state update and sleep sequence in the record thread loop.\n\nAlso make sure we interrupt the sleep period if a command is pending.\n\nBug: 29865791\nChange-Id: Ife720fbd2e5d0df8792669dc724b1fd70f63ab8a\n"
    },
    {
      "commit": "4099f1a290c4b7980681afa7ba562e6c2450380e",
      "tree": "dd9a7866117d4766ecf166b04e49d9dbdaa08ce7",
      "parents": [
        "771955c39a67e0598648f3f416e4209003bb6b14",
        "6a7f864490766020ef791d6c803364fdb7e79cbb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 12 21:09:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 21:09:52 2016 +0000"
      },
      "message": "Merge \\\\\"audioflinger: async callback error handling\\\\\" into nyc-mr1-dev am: 93540a6b59\nam: 6a7f864490\n\nChange-Id: I289e192efe71c599229a10771a08d8685a75dd57\n"
    },
    {
      "commit": "6a7f864490766020ef791d6c803364fdb7e79cbb",
      "tree": "11f605c7170a5c6534df5fff0cf268e4d370cf69",
      "parents": [
        "ab99bf8a017616c73193357c7815f60712570573",
        "93540a6b596b1660a453d344573571462a7e6587"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Tue Jul 12 21:06:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 21:06:36 2016 +0000"
      },
      "message": "Merge \\\"audioflinger: async callback error handling\\\" into nyc-mr1-dev\nam: 93540a6b59\n\nChange-Id: Ifa8e386c0da9e30b90884e0a787e581ace151c64\n"
    },
    {
      "commit": "93540a6b596b1660a453d344573571462a7e6587",
      "tree": "303e48e072805b8715af006267ceb68eb1cf2885",
      "parents": [
        "af0c7dfd5744b7c9e67e9afd26af417aadc6dc20",
        "4527b9ebc6a37b861f5a3bba68bcc63dc8d69ada"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 12 21:01:40 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 12 21:01:40 2016 +0000"
      },
      "message": "Merge \"audioflinger: async callback error handling\" into nyc-mr1-dev"
    },
    {
      "commit": "bbe0cfb249f872fe68215fd1baa7d6426aef2d16",
      "tree": "7491f40a35cf9dfb91b05f89b537c59a574b2449",
      "parents": [
        "47466f01e85406d369d6dcfa085d00250f76bbb0",
        "8611d5135b6a62cc4bbf89404090c9f6ac3245f5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 12 17:07:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 17:07:34 2016 +0000"
      },
      "message": "Merge \\\\\"Fix non-offloadable effect creation on offload threads\\\\\" into nyc-mr1-dev am: b28d6117a5\nam: 8611d5135b\n\nChange-Id: I038d377d8489b95f6eb119f27fd968e97bd83b14\n"
    },
    {
      "commit": "8611d5135b6a62cc4bbf89404090c9f6ac3245f5",
      "tree": "07234e2bbf4576617e51cd249221ce2df00f9aea",
      "parents": [
        "94c68350979dac298143da5446ad5e42c231bce2",
        "b28d6117a5a63fd673a38be12e7e48bc65b05ad3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 12 16:57:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 16:57:21 2016 +0000"
      },
      "message": "Merge \\\"Fix non-offloadable effect creation on offload threads\\\" into nyc-mr1-dev\nam: b28d6117a5\n\nChange-Id: I273585d967945cadddcd70d10514dabb64b1f2e3\n"
    },
    {
      "commit": "4527b9ebc6a37b861f5a3bba68bcc63dc8d69ada",
      "tree": "3a61cce409f275881308a214fbe5b01e0b6154b0",
      "parents": [
        "bea67b8a707b8875419019ebd2d568090310b326"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Thu Jul 07 19:54:17 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 11 17:16:51 2016 -0700"
      },
      "message": "audioflinger: async callback error handling\n\nInvalidate all tracks on receiving an async error\ncallback from the output stream.\n\nChange-Id: I92f441ed7fd904b85f464a041847880faac5b383\n"
    },
    {
      "commit": "773ee957aadbe86ee53ac96a108ce47f8e02b961",
      "tree": "e9512b60b19484ee3d8a9ca2108aeb66611687af",
      "parents": [
        "bea67b8a707b8875419019ebd2d568090310b326"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 11 16:53:18 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 11 16:53:18 2016 -0700"
      },
      "message": "Fix non-offloadable effect creation on offload threads\n\nDo not prevent the creation of non-offloadable effects on\n  offload threads.\n\nBug 29229872\n\nChange-Id: I1deebb5c0973f67a9e925ef1278d22ef7f62c779\n"
    },
    {
      "commit": "d82bd98d0dd8bfa792d7e5223eb3a266d132f2b0",
      "tree": "48056bf6c141452658a93bc4ee148544c3088d83",
      "parents": [
        "3e9bdaea722d9e4813f2dfe1e693e0f3d3663cdb",
        "4b06aec0d4ce89859c0376096fdffeec50c65c2f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 07 21:30:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 07 21:30:26 2016 +0000"
      },
      "message": "Merge \\\\\"Attribute throttle time to previous loops write time\\\\\" into nyc-mr1-dev am: bf6dc1af5b\nam: 4b06aec0d4\n\nChange-Id: I2c1362d5544c73934bc5b1b7c402d4371a09ba6f\n"
    },
    {
      "commit": "4b06aec0d4ce89859c0376096fdffeec50c65c2f",
      "tree": "6c91488b275509a3eaa4c4a7a26088f3e4191c54",
      "parents": [
        "8d54707d1a6219c9b28d851794de831579de3be3",
        "bf6dc1af5bd88135f47c2489c03cdb9f95d57927"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 07 21:27:23 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 07 21:27:23 2016 +0000"
      },
      "message": "Merge \\\"Attribute throttle time to previous loops write time\\\" into nyc-mr1-dev\nam: bf6dc1af5b\n\nChange-Id: I4bc857144d49760097f7344c1d58ad7444b66548\n"
    },
    {
      "commit": "bf6dc1af5bd88135f47c2489c03cdb9f95d57927",
      "tree": "a005f9f0b508331cd1225ef5677b6b8a166999ad",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385",
        "0a31dddf67e739684f60aecc85311ff446fb68f9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 07 21:19:29 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 07 21:19:30 2016 +0000"
      },
      "message": "Merge \"Attribute throttle time to previous loops write time\" into nyc-mr1-dev"
    },
    {
      "commit": "0a31dddf67e739684f60aecc85311ff446fb68f9",
      "tree": "684e50e1372f69b2dd58cad9ee9fc9f9dd3a6979",
      "parents": [
        "7b171a9e7be64e9881ed03baad1422d75ca768a4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 06 19:10:29 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 06 19:10:29 2016 -0700"
      },
      "message": "Attribute throttle time to previous loops write time\n\nBug: 29991292\nChange-Id: Ie3ecc9631e1dfa83fafc7b003495f59e981a0b6b\n"
    },
    {
      "commit": "6217c5233ad77f8e8f22f2b54edf8b6271275f09",
      "tree": "6c0ef74b82e28fc0e2e60680289489d4e2283e7a",
      "parents": [
        "2454b862c858fc9e575f63f7c7206d520ecf3630",
        "bde5acd3a31b19a73e6877309ce3de27b211855a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 30 01:38:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 30 01:38:55 2016 +0000"
      },
      "message": "Merge \\\\\"audioflinger: fix logcat\\\\\" into nyc-mr1-dev am: bb3bee86d5\nam: bde5acd3a3\n\nChange-Id: Ie443e96b8231b3fff5773253e7886fe7f5c42150\n"
    },
    {
      "commit": "bde5acd3a31b19a73e6877309ce3de27b211855a",
      "tree": "191d46ceba5f89ebf1a94e578ae42dff4bd3c982",
      "parents": [
        "37bdcf605bfdd64a670080039560a3a7d8908b8d",
        "bb3bee86d56930752cfef5197cd67c4495a946e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 30 01:36:13 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 30 01:36:13 2016 +0000"
      },
      "message": "Merge \\\"audioflinger: fix logcat\\\" into nyc-mr1-dev\nam: bb3bee86d5\n\nChange-Id: I1b5e4c626d686379c570316181c020c5e16aa378\n"
    },
    {
      "commit": "122f7e793fe6fb8904634cc6d2e35ac4b014ea72",
      "tree": "8518fa89f4854add0def8d88ec6a2bd399912ce4",
      "parents": [
        "d023a7707fe551817fb3f7539f68a388b3381f41"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 29 11:53:29 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 29 11:56:35 2016 -0700"
      },
      "message": "audioflinger: fix logcat\n\nFix build when verbose logging is enabled in Threads.cpp.\nRemove log spam for timestamp errors.\n\nChange-Id: I704527c60e48012c5dcc00cb0be08d14ec2ab2a6\n"
    },
    {
      "commit": "9ab9f6219a0274bed6a8d64169ab695ef77d29de",
      "tree": "209c75ace298a160761ec652e4810a1bf68c1b47",
      "parents": [
        "cfbaedf0096719fa3f43bec94a9bb2e0d18da582"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 05 16:48:37 2016 -0700"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Mon Jun 27 23:17:22 2016 +0000"
      },
      "message": "Remove throttle logcat for bluetooth\n\nDue to reduced buffer sizes for bluetooth it is possible to throttle\nregularly, do not logcat throttle for bluetooth to avoid spamming.\n\nBug: 28286313\nChange-Id: I9a572077a58c8e5cce3d5ac4de3cc6d97d94d7a0\n"
    },
    {
      "commit": "516b743f3c19f38816ecdead90ae74bc1b3c84e4",
      "tree": "02583584f01667cc69fc0878e2f8046e40763aa9",
      "parents": [
        "275df455fc1313bc080293d22fc044ca14564ade",
        "ad67b138fcec25ba99254e826c559778adf0e7f3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 20 22:38:35 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 20 22:38:35 2016 +0000"
      },
      "message": "audioflinger: add check for effect vs thread compatibility am: 4c415062ad\nam: ad67b138fc\n\nChange-Id: I38015a85b7df2d620daa2c9e5d7435de510a8fbe\n"
    },
    {
      "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": "4cfa355eedae56e047b63b1b02fc6d789e21980d",
      "tree": "a45aeb0a86de3ecfb921666924ca3ea99cd79ce1",
      "parents": [
        "49a8a948be610444667ad98a816abe868bdb38d9",
        "b70868bb337f0b12f993494f4d110979a33ddd24"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 04 01:24:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 04 01:24:18 2016 +0000"
      },
      "message": "Merge \"Add AudioTrack and AudioRecord flag checks\" into nyc-mr1-dev am: 2f8e63b5be\nam: b70868bb33\n\n* commit \u0027b70868bb337f0b12f993494f4d110979a33ddd24\u0027:\n  Add AudioTrack and AudioRecord flag checks\n\nChange-Id: Ia6ab9998dcaa065d18fc048ae5ea6bb3e087ba62\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": "8a4348bb7a598eab9b692d782595689112df367a",
      "tree": "68330027ea8dc0ca59ddeeba091eada0c39803dc",
      "parents": [
        "96e9bfd9b9f80c10e27667e2590aa07c4d7757d0",
        "6b0a8693e169a97f5fd92260bcbd437b514d7691"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 25 19:42:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 19:42:39 2016 +0000"
      },
      "message": "resolve merge conflicts of 5d8e380 to nyc-mr1-dev am: b09a6d0832\nam: 6b0a8693e1\n\n* commit \u00276b0a8693e169a97f5fd92260bcbd437b514d7691\u0027:\n  AudioTrack: Fix timestamp startup condition\n\nChange-Id: Ie11abf463d4ca8b065fffc66bfb1c4db37a3ca4c\n"
    },
    {
      "commit": "6b0a8693e169a97f5fd92260bcbd437b514d7691",
      "tree": "e66adddcd25634631a49bc08b404702654b4f278",
      "parents": [
        "6a0ed5ca8434b65a3fe8bf4a5f13a230e0e8502c",
        "b09a6d08321b9484d80a2a9dc11ed52623942c8d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 25 19:34:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 19:34:10 2016 +0000"
      },
      "message": "resolve merge conflicts of 5d8e380 to nyc-mr1-dev\nam: b09a6d0832\n\n* commit \u0027b09a6d08321b9484d80a2a9dc11ed52623942c8d\u0027:\n  AudioTrack: Fix timestamp startup condition\n\nChange-Id: Id2c883949a47daac936266310ebe4d69a5965eb3\n"
    }
  ],
  "next": "b09a6d08321b9484d80a2a9dc11ed52623942c8d"
}
