)]}'
{
  "log": [
    {
      "commit": "14d84c7bdabfae553e42c0cdcfe71a4efda5c95e",
      "tree": "08a95c9fe9c630c8784c742aebdb75e2178837bc",
      "parents": [
        "31a472facd09964642bff5325e7626cdc65255a7",
        "acaea2ed4c4bbafb5da25997c8ccce0d333d320d"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Jun 05 15:18:19 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Jun 05 15:18:19 2019 -0700"
      },
      "message": "DO NOT MERGE - Merge pi-platform-release (PPRL.190605.003) into stage-aosp-master\n\nBug: 134605042\nChange-Id: Iaf96194ef53bc6806e0cecb756334618e82d46bd\n"
    },
    {
      "commit": "1aa4d4e7a9496efd19ca891cbff9d71a7c7c0a1f",
      "tree": "797010a4234a371820d04ae12ed86d6ab9b5fb80",
      "parents": [
        "6d37377266de6e43d5ca7658bf2f8f58aa88dcbe"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 12 19:39:03 2019 -0700"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Tue Apr 16 22:38:52 2019 +0000"
      },
      "message": "AudioFlinger: Prevent multiple effect chains with same sessionId\n\nAllow at most one effect chain with same sessionId on mPlaybackThreads.\n\nTest: poc, CTS effect tests\nBug: 123237974\nMerged-In: Ide46cd23b0a9f4295f0dca2fea23379a76b836ee\nChange-Id: Ide46cd23b0a9f4295f0dca2fea23379a76b836ee\n(cherry picked from commit 1631f06feb36df5406ad00e850dcca9394f67772)\n(cherry picked from commit f963b2bfdaf406b42d371322402172b4380bbba5)\n"
    },
    {
      "commit": "6d37377266de6e43d5ca7658bf2f8f58aa88dcbe",
      "tree": "187360b9743c0a5fc3382e473036733f6b3a7060",
      "parents": [
        "f12ed30fc4a3f5dd04d7f4999156cff200682060"
      ],
      "author": {
        "name": "Weiyin Jiang",
        "email": "wjiang@codeaurora.org",
        "time": "Fri Apr 27 00:39:29 2018 +0800"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Tue Apr 16 22:38:49 2019 +0000"
      },
      "message": "audio: ensure effect chain with specific session id is unique\n\nIt\u0027s possible that tracks with the same session id running on various\nplayback outputs, which causes effect chain being created on the same\nsession twice. As a result, the same effect engine will be released\ntwice as the same context is reused.\n\nOutput that has effect chain with same session id is more preferable.\n\nTest: No regression with Play Music and Effects\nBug: 123082420\nBug: 123237974\nMerged-In: I690ea3cb942d1fdc96b46048e271557d48000f43\nChange-Id: I690ea3cb942d1fdc96b46048e271557d48000f43\n(cherry picked from commit 9aeb1770d49bab13ea5c6454c969a713641fe686)\n(cherry picked from commit 5945746bcabff8d833229a6c230cbe873474087f)\n"
    },
    {
      "commit": "792b528b815e4bdea00dbb575091b2ef441c84e4",
      "tree": "67ba2968da850b9ce08a9169371148365aa9633d",
      "parents": [
        "4d76644e732be0bd92a3faa7e79586aa8bed8ad9",
        "a504d888d4cc53d8067bb67f9d7f1c063ca54a93"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 11 11:26:03 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 11 11:26:03 2019 -0800"
      },
      "message": "AudioFlinger: put effect desc lookup under mutex for createEffect am: a41770b682 am: ef52b30f9c am: b6a54df739\nam: a504d888d4\n\nChange-Id: I1bfe1527a07a30701408edc802a93954da585d66\n"
    },
    {
      "commit": "a504d888d4cc53d8067bb67f9d7f1c063ca54a93",
      "tree": "a0857b5cdffefe7d971fce8d73055945119b1066",
      "parents": [
        "06c5d535332898944d627b6e114d1f39ae3e6c86",
        "b6a54df739810e5f963b7357c7e79ff72188a4b2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 11 11:19:34 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 11 11:19:34 2019 -0800"
      },
      "message": "AudioFlinger: put effect desc lookup under mutex for createEffect am: a41770b682 am: ef52b30f9c\nam: b6a54df739\n\nChange-Id: I26faa1f350066134fcb13cbc7b03b33ff3b9374f\n"
    },
    {
      "commit": "b6a54df739810e5f963b7357c7e79ff72188a4b2",
      "tree": "7c1b2f42af8fade26b107311b5e8d7714ac55104",
      "parents": [
        "31a8d44075f37f75d5912d79a43d777587b2d695",
        "ef52b30f9cc947ce2bbfcdab59e33bccb967d5df"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 11 11:10:17 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 11 11:10:17 2019 -0800"
      },
      "message": "AudioFlinger: put effect desc lookup under mutex for createEffect am: a41770b682\nam: ef52b30f9c\n\nChange-Id: Ibdaceaa5cf8934a531e68d6f0d74d52d9b67200c\n"
    },
    {
      "commit": "ef52b30f9cc947ce2bbfcdab59e33bccb967d5df",
      "tree": "509da6104469c8c0e80c143581ec87ce6ea58427",
      "parents": [
        "093bba3a2e7e696cdad4fd20844bfb1739db7280",
        "a41770b682117fdfc20236fbc45d975099f9147a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 11 11:01:11 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 11 11:01:11 2019 -0800"
      },
      "message": "AudioFlinger: put effect desc lookup under mutex for createEffect\nam: a41770b682\n\nChange-Id: I496c058113e7f5b36d049cca1a978e191b987142\n"
    },
    {
      "commit": "a41770b682117fdfc20236fbc45d975099f9147a",
      "tree": "92984668a07da4564417ed98af894806b77300ff",
      "parents": [
        "cf264f7d640548f81b30ec02d73e1fe623666164"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 10 13:27:31 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 10 21:33:02 2019 +0000"
      },
      "message": "AudioFlinger: put effect desc lookup under mutex for createEffect\n\nTest: native poc\nBug: 122309228\nChange-Id: I48333c69f5c1b1bf1b98f57eb813ec39e074f3a7\nMerged-In: I9d339a7d6d81161065e1adaf427dd2d3430436c2\n"
    },
    {
      "commit": "3e330f09d70f39463f26ad301c1fc5d3fc45b094",
      "tree": "53c0cea7ed1b55a37eeb89e67d6bd26087771f24",
      "parents": [
        "14c577fac81b8fdcc75e4bf9243f16bd624ba58b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:56:07 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 14:53:36 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings in audioflinger.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: I39f164a4204043042db383ce10ded542437f8447\n"
    },
    {
      "commit": "2b48703770efab81143d389d7389166eb1a6c8db",
      "tree": "f309a4bbfbb4f716dee1af20f82ca95aa04b907e",
      "parents": [
        "f8d13dee65d3708ea527e9f565be85031d7021ba"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 14:16:02 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 12:50:12 2018 -0700"
      },
      "message": "Suppress implicit-fallthrough warnings in audioflinger etc.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: I8875bc7ed073aae84d5df97eb39c8c745ca627ef\n"
    },
    {
      "commit": "1f8df9ae201bc4405aed068c910b08dc5458864f",
      "tree": "e8be06c94252e28e024523d1c71f4160ba5b1977",
      "parents": [
        "db44c5d13b9972a0d0dd177c31259b74bc2e4376"
      ],
      "author": {
        "name": "Shingo Kitajima",
        "email": "shingo.x.kitajima@sony.com",
        "time": "Tue May 29 11:35:06 2018 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Tue Aug 28 17:02:28 2018 +0900"
      },
      "message": "Allow volume setting only for offloadable effect for Offload\n\nMusic volume is set to max for an instant\nwhen enabling non-offloadable effect during compress offload playback.\n\nNon-offloadable effect module having volume control is created\nand linked to Offload thread.\nAfter that,  when enabling it during playback,\nvolume is set max to Offload thread to switch volume control module\nbefore switching Playback thread from Offload to Mixer.\nThen, until completing thread switch,\nOffload Thread works with max volume.\n\nTo avoid this issue, check effect capability\nso that only offloadable effect can set volume on Offload Thread.\n\nBug: 113311497\nTest: Enable non-offloadble effect during offload playback\n\nChange-Id: I91b7313d55ca7cfcde206f158ce553432499e992\n"
    },
    {
      "commit": "71a2d52f19d868751413e7664f208757b9214907",
      "tree": "ac2ec89bc1cfe46c8f517325401087a7e626a1c7",
      "parents": [
        "ec40ae247d125af958489a3067030575fe4c9f52",
        "e17f831ef1ba0844e04826bb85455f7ca9c971c4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 16 22:32:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 16 22:32:42 2018 +0000"
      },
      "message": "Merge \"Use default sample rate for only sw effect\""
    },
    {
      "commit": "e17f831ef1ba0844e04826bb85455f7ca9c971c4",
      "tree": "d8d97743c5be994cc75b367db9cccb93ba63e494",
      "parents": [
        "34affaed9cc6374e979e3bd29ccfe1671694bfe9"
      ],
      "author": {
        "name": "Yuuki Yokoyama",
        "email": "yuuki.x.yokoyama@sonymobile.com",
        "time": "Fri May 26 19:06:33 2017 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Aug 16 18:37:14 2018 +0900"
      },
      "message": "Use default sample rate for only sw effect\n\nShould not configure effect by thread sample rate\nif effect is not offloadable.\nBecause of offload output may be different from\nthe sample rate supported by sw effect.\n\nBug: 70912361\nTest: Create AudioEffect during 24kHz mp3 playback\n\nChange-Id: Ie5bf264a9790d936c24476ea127bc6da9eefde73\n"
    },
    {
      "commit": "1990bd40ebb6fcbb876fae42e43792b9dc6d308b",
      "tree": "533950b805a77a744c2100b9c286059406ace779",
      "parents": [
        "34affaed9cc6374e979e3bd29ccfe1671694bfe9"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Fri Dec 12 14:04:11 2014 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Thu Aug 16 17:42:13 2018 +0900"
      },
      "message": "Set volume for output when effect is enabled/disabled.\n\nEven though effect module has \"EFFECT_FLAG_VOLUME_CTRL\" flag,\nthere is some case where volume setting is not sent to offload thread.\nThat leads to sudden increase of audio volume or too low volume.\nThis change is to support delegation of volume control completely\nfor offload audio effect.\n\nBug: 37443095\nTest: Enable/Disable Audio effects during offload playback\nChange-Id: I7033071edc99fadc519efd7adc895dc10f7b9d86\n"
    },
    {
      "commit": "01b32723fb154dce487e20e980a5daff0764badf",
      "tree": "92612c694eb9ae9365202b9c85b0f3918e4c35eb",
      "parents": [
        "1ea2c0f91cb97b17cc8849cf14848b05684b63b7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 18 13:52:02 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 18 13:52:02 2018 -0700"
      },
      "message": "Effects: Aux effect input is always mono, do not retry as stereo\n\nTest: Solotester on multichannel usb with aux effect\nBug: 79950246\nChange-Id: I6e2c3be88d657a5df547dc1034be0e0eecc4b7c2\n"
    },
    {
      "commit": "5fac9c6a6c666775cbc7c63c3b6c44a9384e65f5",
      "tree": "3abae3a532b94a1effe64d53da838830deebae84",
      "parents": [
        "bf2e1e8debbe1e91549b2defe2345d1a1876a8df"
      ],
      "author": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Tue May 15 15:07:43 2018 +0800"
      },
      "committer": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Tue May 15 18:17:43 2018 +0800"
      },
      "message": "audioflinger: clean previously opened input selectedDeviceId if retrying\n\nselectedDeviceId is not cleaned when retrying open input.\nand will add this selectedDeviceId into input routing.\nWhich will cause getDeviceForInputSource() not doing\nmEngine-\u003egetDeviceForInputSource() but only return\nroute-\u003emDeviceDescriptor-\u003etype() and failed to route to\nthe correct device.\nTest: self-test routing is corrected.\n\nBug:79332409\nTest: routing is corrected.\nChange-Id: Ia85c773f3549befb929178469116dc2d4e4945ad\n"
    },
    {
      "commit": "7ad78187b16c5e2ccd0abb4d09883ef5a1411d11",
      "tree": "9f334855da3fbe449093b0f7ffcf8e996d6c59f9",
      "parents": [
        "b3dee358b18472d6623a9d6342d7f2f7e8e45bec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 10 20:54:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 10 20:57:22 2018 -0700"
      },
      "message": "AudioFlinger: Fix tee logging\n\nMissing header file hidden by compile flag.\n\nTest: Compilation is fixed when flag enabled\nBug: 78310170\nChange-Id: Ie938193c5d87de04f22318a8fb4fffb4a4412a53\n"
    },
    {
      "commit": "f62e1a2887bedb440bb98c4e7071896dd3f46163",
      "tree": "e888731841186f29889629dd796fc5bd213ca614",
      "parents": [
        "d5fa1baa8b0a985d80cbfb53c3960504314ca8f6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 18:32:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 18:38:44 2018 -0700"
      },
      "message": "Fix PatchTrack retry for ClientProxy::obtainBuffer\n\nRestore buffer mFrameCount as error clears it.\n\nTest: phone call with usb device, simulate underrun.\nBug: 79423841\nChange-Id: Ia00d08b6753b5c65cf7f07bf1c889fd6d1eefd0a\n"
    },
    {
      "commit": "06d13227bed31bf4a2dfa30e19198620eb5b120e",
      "tree": "6331425a223849eb00235dbb80642d7f242e020f",
      "parents": [
        "d79fe0de75143dcf71c43b3d533a18a391bb4a5f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 03 20:13:31 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 08 12:15:12 2018 -0700"
      },
      "message": "AudioFlinger: Use actual MonoPipe depth for sleep computation\n\nThis prevents benign underruns from glitching.\n\nTest: instrumented, see bug\nBug: 79227935\nChange-Id: I47be9c06faac4dec736ad809c59cf56c0f3d1dda\n"
    },
    {
      "commit": "70376b122742c515ff6c546f2bd8b3bfaac172cd",
      "tree": "5709bf11cb39f5c0d26f7505e03b9786031fde6f",
      "parents": [
        "4ac3f08fe01117070ea379ae34e8b5f8bb4d7226",
        "9378eb9634d07010bebf8a2d4bda84320ec80e57"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 02:04:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 03 02:04:57 2018 +0000"
      },
      "message": "Merge \"Restrict setting silenced in RecordTrack.\" into pi-dev"
    },
    {
      "commit": "9378eb9634d07010bebf8a2d4bda84320ec80e57",
      "tree": "9d9dd22652b7860882e3155a6d218042d55cd3f6",
      "parents": [
        "6f4512914d90430bf135de221897887638c79f25"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed May 02 15:26:35 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed May 02 17:13:07 2018 -0700"
      },
      "message": "Restrict setting silenced in RecordTrack.\n\nWhen initializing, always set mSilenced as false. Never set silenced for\npatch track.\n\nBug: 77193174\nTest: make phone call with usb headset multiple times.\nChange-Id: I93f4646cc6d88749c602bdd0003afc48f7dec36f\n"
    },
    {
      "commit": "7a3dc6bd4795a1b254d1ceef959da2b4d6ef8ba4",
      "tree": "bba043f16dedc7f82531ffc8c5cf1a5351036df7",
      "parents": [
        "0f59472e584f9962a7ef390d1dba90ca2c0ad8be"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 01 16:39:51 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 02 10:38:37 2018 -0700"
      },
      "message": "RecordThread: Adjust sleep time to pipe frames free.\n\nThis fixes FastCapture pipe overrun for normal AudioRecord clients.\n\nTest: instrumented CTS AudioRecord, Photos record.\nBug: 71330194\nBug: 77281929\nChange-Id: I186017aec8d0acb3aefe9e4eb378b71b32f8ad59\n"
    },
    {
      "commit": "d5b638fe57c3ceaf7834d4c2181d4c4c2588f967",
      "tree": "24d5945c47bdde790d316edf7e109a03e1847eac",
      "parents": [
        "0926bb0100b5df3439c49777952d48ce53dd9137"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 13:56:10 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 30 14:55:08 2018 -0700"
      },
      "message": "RecordThread: Immediate retry on audio read overrun\n\nOtherwise another sleep and FastCapture write can cause overrun again.\n\nTest: Force OVERRUN fifo error and AudioRecordTest still passes.\nBug: 26983118\nChange-Id: I039e3a42863cbe96ca84d0f03020b836d5c944d1\n"
    },
    {
      "commit": "1f0cbeddf430e24d943892381600262ae3ce542e",
      "tree": "100472aead6a12e105897ec167defecd43bd200f",
      "parents": [
        "e44ca3765fca8d82f7dcf884c53acddb6704dd20",
        "860d10a72cc760b4be280277e86c526ad171e4bb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 23:02:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 27 23:02:26 2018 +0000"
      },
      "message": "Merge \"Remove usage of undeclared and unused variable mFastTrackNames\" into pi-dev"
    },
    {
      "commit": "860d10a72cc760b4be280277e86c526ad171e4bb",
      "tree": "786d6f2648ecf9481fea855a82def4cef131b47d",
      "parents": [
        "ed4f0147db29c87d0404f78eb68dc7b7b81deed8"
      ],
      "author": {
        "name": "Dhananjay Kumar",
        "email": "dhakumar@codeaurora.org",
        "time": "Mon Apr 16 12:40:29 2018 +0530"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 13:40:50 2018 -0700"
      },
      "message": "Remove usage of undeclared and unused variable mFastTrackNames\n\nCRs-Fixed: 2220445\nBug: 78683817\nTest: at bug\nAuthor: Ramjee Singh \u003cramjee@codeaurora.org\u003e\nChange-Id: I3c51cd30bd5ab0ab25f6a49460895c889ea8fc33\n"
    },
    {
      "commit": "bad588e975b093823fd79d657e9e1a90a187fbcf",
      "tree": "55e4fc2669d1ad1bf83d5f9ea0940cb53cb09b09",
      "parents": [
        "030cb3b698958d5b291598b96463b450888e1a27",
        "67f97291bfb7caec5152d2c93913191729db5917"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 23 17:55:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 17:55:48 2018 +0000"
      },
      "message": "Merge \"audioflinger: fix mmap volume update\" into pi-dev"
    },
    {
      "commit": "67f97291bfb7caec5152d2c93913191729db5917",
      "tree": "3d8b3241addba940bf4b8707bf5993fe533fd525",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 18:05:41 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 18:05:41 2018 -0700"
      },
      "message": "audioflinger: fix mmap volume update\n\nMake sure volume callback is sent at least each time a new\nclient stream is started.\n\nBug: 78122737\nTest: repro steps in bug.\nChange-Id: I5b5ac617d604ed23bf8528affa1877b6cc0b5494\n"
    },
    {
      "commit": "ed4f0147db29c87d0404f78eb68dc7b7b81deed8",
      "tree": "3fe6906677700427bacfdcde6c9eb1243f0f54c0",
      "parents": [
        "cdcfb309e26fa636eed7768b49376122961d861a",
        "b1fe6e1080fb691803038ebd5d399e62d6b88108"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 20 21:47:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 21:47:42 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix Tee compilation\" into pi-dev"
    },
    {
      "commit": "cdcfb309e26fa636eed7768b49376122961d861a",
      "tree": "f332447f7f9a1f1ec161fc7a9f368bfa8574c27c",
      "parents": [
        "150b9846f846165344910b9211739cdb3054ccf4",
        "9e75663c56f13d21799bbe6a67f5587659a320e3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 20 21:17:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 21:17:31 2018 +0000"
      },
      "message": "Merge \"Don\u0027t create empty .wav files\" into pi-dev"
    },
    {
      "commit": "b1fe6e1080fb691803038ebd5d399e62d6b88108",
      "tree": "36840901ce7e7ac47d11746d644b0cb7cce6e448",
      "parents": [
        "6b6f4313aae039f2d73664816e45834e65f79bf5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 19 19:20:00 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 20 13:04:24 2018 -0700"
      },
      "message": "AudioFlinger: Fix Tee compilation\n\nTest: Enable Tee and check build and output files\nBug: 78310170\nChange-Id: Ic6f1d87a3055ee0f5ce0fe7b57d0fdc74d75d31b\n"
    },
    {
      "commit": "9e75663c56f13d21799bbe6a67f5587659a320e3",
      "tree": "6b89e9981004057393c6bea438f4357e55e67ece",
      "parents": [
        "c4b259a584be3e7dc9aad83e0ead06c913ceb998"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 03 13:01:09 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 19 11:09:57 2018 -0700"
      },
      "message": "Don\u0027t create empty .wav files\n\nBug: 78287983\nTest: follow the tee sink documentation, and then verify there are no empty files\nChange-Id: I0aa98aff5d0d47b86f36dd38a54d0daf3feb1965\n"
    },
    {
      "commit": "7e820c5cfdc8d9fd2f8c34ffe287f2479b6577d2",
      "tree": "1df43cf09ba654b6dc9e6feb5ef472ed35dc430d",
      "parents": [
        "018c8a09a35c6da526af2bcb130522ed593e9432"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 17 19:52:45 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 17 19:52:45 2018 -0700"
      },
      "message": "Fix string copy termination\n\nTest: CTS regression\nBug: 78198288\nChange-Id: Id433eb3197d4faf530d5f5090ff95e51689e7088\n"
    },
    {
      "commit": "018c8a09a35c6da526af2bcb130522ed593e9432",
      "tree": "be6e579d648bb398ae43c9c4a15f4aa01760a41b",
      "parents": [
        "f255369091d48ba7475ee4aae840a8a9c7a15f07",
        "f1047e87767be1acd2c32f4d36028d1d0014f4c0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 17 17:53:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 17:53:28 2018 +0000"
      },
      "message": "Merge \"audioflinger: filter out reserved keys from setParameters()\" into pi-dev"
    },
    {
      "commit": "f1047e87767be1acd2c32f4d36028d1d0014f4c0",
      "tree": "4affc2ed3ee3f81e94f90dd4d3a012afa0ee364e",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:18:20 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 17 09:45:32 2018 -0700"
      },
      "message": "audioflinger: filter out reserved keys from setParameters()\n\nOnly allow setParameters() for reserved keys when received from\naudioserver UID. For instance, keys used to control routing or audio\nstream configuration are reserved for use by audio policy manager.\n\nAlso use multiuser_get_app_id() instead of duplicated code to\nextract application ID from UID.\n\nBug: 77869640\nTest: manual audio smoke tests.\nChange-Id: I88852e8fddf7f705e4a084fc02d9ced1f4b0de92\n"
    },
    {
      "commit": "734046ead103df5ec86b1dbd29e9945034a1ecb0",
      "tree": "910d09f7cd3a19d24b6f3e563db9553e07b7d6a4",
      "parents": [
        "331679c8a5cd21a0e6a7a1d851e965e4721f7420"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 14:50:52 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:06 2018 -0700"
      },
      "message": "audioflinger: fix mmap interface callback lock\n\nDo not hold the MmapThread mutex when calling methods on\nMmapStreamCallback as AAudioService will synchronously call\nmethods on MmapStreamInterface that will in turn acquire the mutex.\n\nBug: 78118584\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\n\nChange-Id: I5953bb449e67735271203a2e1dbef0a2b451f5d3\n"
    },
    {
      "commit": "331679c8a5cd21a0e6a7a1d851e965e4721f7420",
      "tree": "9e3835bb805631ca42a90ded01796b73307a4642",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:03:16 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:06 2018 -0700"
      },
      "message": "Revert \"Revert \"audioflinger: implement silenced capture for mmap\"\"\n\nThis reverts commit 611ebb95e76c230214780b7b583b8a3c5277ac7a.\n\nBug: 78118584\nbug: 72134552\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\nChange-Id: I7558ad7b9c6c2d352ebce105382fe914c26fd35e\n"
    },
    {
      "commit": "554e08c6b00b2a57348f4545d450915a9e8c870a",
      "tree": "b66615256ee7a7eeac8a7e54c54c2fd872a3fdd0",
      "parents": [
        "c620796251df712274c16858c76628d802bbb4b1",
        "611ebb95e76c230214780b7b583b8a3c5277ac7a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 16 23:52:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 23:52:19 2018 +0000"
      },
      "message": "Merge \"Revert \"audioflinger: implement silenced capture for mmap\"\" into pi-dev"
    },
    {
      "commit": "611ebb95e76c230214780b7b583b8a3c5277ac7a",
      "tree": "1c8ef30309a0954a51a6b4c872f30ca399f064d2",
      "parents": [
        "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "message": "Revert \"audioflinger: implement silenced capture for mmap\"\n\nThis reverts commit a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9.\n\nBug: 78118584\nChange-Id: Ie0da3dea445f2474c7a889c5f9919305c1c96d40\n"
    },
    {
      "commit": "c16f23e399969e9d82f0b245afb0870fa448e78e",
      "tree": "39c75acf7d8a311cce349d3edf4f0dd89d0873da",
      "parents": [
        "247cc0a3c81ec629a2ae51b40bdcb2afc0e94210",
        "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 00:39:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 13 00:39:54 2018 +0000"
      },
      "message": "Merge \"audioflinger: implement silenced capture for mmap\" into pi-dev"
    },
    {
      "commit": "fe463237ab61459ddc30120962c51fb089d25ec4",
      "tree": "651656f0c3ca3b0a693f2a675dd5e775ad17284c",
      "parents": [
        "b856955f27ca4ae146e940ab8a4ababab04d8e35",
        "7d665abb442a84d82760d88d228914a116e34532"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 09:53:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 09:53:21 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: input thread dump shows if RecordTrack is silenced\" into pi-dev"
    },
    {
      "commit": "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9",
      "tree": "00e39e41acac99cc35c292c65c7bca60973fdd5a",
      "parents": [
        "9fc25229e0723c93b453ab34957f22a643e2b602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 10 19:09:40 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 11 19:07:45 2018 -0700"
      },
      "message": "audioflinger: implement silenced capture for mmap\n\nImplement silencing of audio capture for idle UIDs for\nMMAP streams.\n\nUse audio HAL setMicGain() API to silence the mmap buffer for\nexclusive mode and when only one client is active in shared mode.\n\nAdd new MmapStreamCallback method onStreamSilenced() for AAudio\nservice to selectively silence streams from silenced UIDs in\nshared mode.\n\nBug: 72134552\nTest: manual\nChange-Id: I7c92ba0002bc5ba003c1a3c887edddf9ae53b538\n"
    },
    {
      "commit": "7d665abb442a84d82760d88d228914a116e34532",
      "tree": "4ea9c0a7b93749bf20b89d3eb10acc4d751cfa65",
      "parents": [
        "7121c67c340048fb520cd71bf510769140cc5bcd"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 11 17:26:51 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 11 17:26:51 2018 -0700"
      },
      "message": "AudioFlinger: input thread dump shows if RecordTrack is silenced\n\nFor each record thread, show if tracks are \u0027s\u0027ilenced\n  or \u0027n\u0027ormal\n\nBug: 70304055\nTest: during recording: adb shell dumpsys media.audio_flinger\n   look at active tracks under \"Input thread\"\n\nChange-Id: I8b745bd5f8a9b6b228129dd8981acea7fb230acd\n"
    },
    {
      "commit": "c1428baf1badc3e5ea817d6266f42b2719374ed2",
      "tree": "706631b0f16acc5a19180ebdef764a99364b4946",
      "parents": [
        "6bcc99198f9be597705be1277977828037d48a1d",
        "b0eeaf121e896f7158ee9961cb9009554d37e53e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 23:54:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 23:54:19 2018 +0000"
      },
      "message": "Merge changes I53055724,I06914911 into pi-dev\n\n* changes:\n  Send stream volume to fast track\n  Revert \"Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\"\n"
    },
    {
      "commit": "ec84cede0192c5fe0d0b87f1a1865a75e6d14f38",
      "tree": "5ad4707397874e6f03704246f9a1d5c89ba0b172",
      "parents": [
        "f592b938a97e14d965018ad5caf500b0c0e0f359",
        "80ee2722d64a73777fa76027b1568e61dec8d910"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 18:47:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:47:25 2018 +0000"
      },
      "message": "Merge \"Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\" into pi-dev"
    },
    {
      "commit": "f592b938a97e14d965018ad5caf500b0c0e0f359",
      "tree": "69fc73fdd299ab5c192f53c9bd83a5b829c6535c",
      "parents": [
        "32c74e9e97c843f56023bf7de30fb6316e01ee1d",
        "80d03d292e006e7c474e12d06450f63b5ea3b197"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 11 18:20:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:20:46 2018 +0000"
      },
      "message": "Merge \"AudioFinger: Release buffers in AudioMixer when track becomes inactive\" into pi-dev"
    },
    {
      "commit": "b0eeaf121e896f7158ee9961cb9009554d37e53e",
      "tree": "9ab63ba1ff15a3290f54ba82c16fa63ed3cd514a",
      "parents": [
        "12381092fdb5810cb27f738435ea8a0e3d2d0f42"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 08:30:16 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 16:27:18 2018 +0000"
      },
      "message": "Send stream volume to fast track\n\nBug: 77892019\nTest: Play Pokemon GO and change volume\nChange-Id: I53055724d5885a4283fdb8670f76fcc8d98fb247\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "12381092fdb5810cb27f738435ea8a0e3d2d0f42",
      "tree": "534768433f4916952e94e212fdb923b6a3ed5b40",
      "parents": [
        "80ee2722d64a73777fa76027b1568e61dec8d910"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 09:19:59 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 16:26:58 2018 +0000"
      },
      "message": "Revert \"Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\"\n\nThe original patch was breaking the fast track volume, so it was\nreverted.\nIn order to fix the original patch, revert the revert and in the\nfollowing patch apply the fix.\nThis makes review easier as only the difference to the original patch\nwill be present.\n\nBug: 38184704\nBug: 69623109\nBug: 77892019\nTest: Patch already tested for original patch and is tested for following\n      patch that fixes this patch.\nThis reverts commit 80ee2722d64a73777fa76027b1568e61dec8d910.\nChange-Id: I06914911c2435df167fff05ce5ca40dd1ed90f39\n"
    },
    {
      "commit": "80ee2722d64a73777fa76027b1568e61dec8d910",
      "tree": "e3e8744cefcf0785addf9ceb1519fceac3020293",
      "parents": [
        "c86a7f7de52f0ff0059e8c6c4fa4619aa7fae5c5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 15:53:48 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 11 16:09:19 2018 +0000"
      },
      "message": "Revert \"Audio V4: Send volume and duplicated track attr in update metadata\"\n\nThis reverts commit c86a7f7de52f0ff0059e8c6c4fa4619aa7fae5c5.\n\nReason for revert: fast track volume broken\nTest: none, it is a revert\nBug: 77892019\nChange-Id: If00616afae5c069cf0b6bd7c2da2a6d4af72180e\n"
    },
    {
      "commit": "9fc25229e0723c93b453ab34957f22a643e2b602",
      "tree": "1c8ef30309a0954a51a6b4c872f30ca399f064d2",
      "parents": [
        "7121c67c340048fb520cd71bf510769140cc5bcd",
        "c86a7f7de52f0ff0059e8c6c4fa4619aa7fae5c5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 10 20:41:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 20:41:56 2018 +0000"
      },
      "message": "Merge \"Audio V4: Send volume and duplicated track attr in update metadata\" into pi-dev"
    },
    {
      "commit": "80d03d292e006e7c474e12d06450f63b5ea3b197",
      "tree": "4d77d9f74e9479b389e583d5337c95280e5273a4",
      "parents": [
        "7121c67c340048fb520cd71bf510769140cc5bcd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 10 10:32:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 10 13:09:07 2018 -0700"
      },
      "message": "AudioFinger: Release buffers in AudioMixer when track becomes inactive\n\nTest: Regression check, some instrumented test\nBug: 77813646\nChange-Id: Ia0ab75d4af1ae2c865256a02e956cf40f56628f5\n"
    },
    {
      "commit": "c86a7f7de52f0ff0059e8c6c4fa4619aa7fae5c5",
      "tree": "534768433f4916952e94e212fdb923b6a3ed5b40",
      "parents": [
        "b31f96ffee12f920d32d868c627cf34f1afeb988"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Apr 03 09:00:09 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Apr 09 16:19:11 2018 -0700"
      },
      "message": "Audio V4: Send volume and duplicated track attr in update metadata\n\nOnly the volume of MMAP thread was previously sent and\nthe attributes of duplicated tracks were skipped.\n\nBug: 38184704\nBug: 69623109\nTest: check that the HAL receives correct track metadata volume\nTest: check that the HAL receives correct duplicated track metadata\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n\nChange-Id: I1e3b14edd8c9a5a65d2b9f4cf8660997c81c701c\n"
    },
    {
      "commit": "e6a61a5bac21727365b0ad99232df0a7a4dc6810",
      "tree": "a59c623ef7448fc44d9eaf29e589977b679d52b3",
      "parents": [
        "fa33327eb3b81bf1f2173bef0d13ced98b1221c1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 06 18:55:26 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 09 15:15:06 2018 -0700"
      },
      "message": "Effects: Only retry stereo config for legacy playback effects\n\nTest: Compiles, SoloTester Regression\nBug: 76445198\nChange-Id: I49b159e0ab73b17cc1d27a777da388b7a1cb3b87\n"
    },
    {
      "commit": "b31f96ffee12f920d32d868c627cf34f1afeb988",
      "tree": "e3e8744cefcf0785addf9ceb1519fceac3020293",
      "parents": [
        "dab059e964ea373d8e18a063e80d7d421e27925f"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Apr 03 09:00:09 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Apr 06 22:18:34 2018 +0000"
      },
      "message": "Audio V4: Do not send metadata of Output Track\n\nOutput track currently do not support audio attributes,\nnevertheless the placeholders values were erroneously\npropagated to the HAL.\n\nBug: 38184704\nBug: 69623109\nTest: check that the HAL does not receive metadata about duplicated\n      tracks.\nChange-Id: I9a646faf4a43b1ebc09c03329827aee4a49674f9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "0967c6c06d030636e2c584ce3e24924357a3a854",
      "tree": "9614233f9011d7645c95a1b84b610aa609845fe3",
      "parents": [
        "2383098d54b6503875bdf0c6b649fa66f22d79ac",
        "1d3556d6a068f141ac390a04f6a9d92a70f8d7ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 05 19:36:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 19:36:31 2018 +0000"
      },
      "message": "Merge \"AudioTrack: Prevent server from reading client data after stop\" into pi-dev"
    },
    {
      "commit": "1d3556d6a068f141ac390a04f6a9d92a70f8d7ed",
      "tree": "e89b4aa887013efbc8227dcf4c56addf4ab284b9",
      "parents": [
        "1f03085b596f185d91ccae11b7c0d9f0bc8cd206"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 29 16:30:14 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 02 14:19:24 2018 -0700"
      },
      "message": "AudioTrack: Prevent server from reading client data after stop\n\nPrior to this CL, if an AudioTrack client wrote audio data after\nAudioTrack stop(), but before the track was drained by the server,\nthe newly written client data would be consumed in the drain.\n\nWe now limit the server read to the client write position on stop.\nThis interlocking is essential for rapid asynchronous AudioTrack\ncommand processing.\n\nTest: AudioTrack CTS, SoundPool looping, bug test case\nBug: 75788313\nChange-Id: Ib70e3dc46afe047a8c6cf1fb906a618b3c66cc7f\n"
    },
    {
      "commit": "069c2719e753732d5af9ba51e5fcc34342b0c9f2",
      "tree": "e3cfa2f8e2ceecd6e20d91b484865a33c195d7ec",
      "parents": [
        "1f564acca544826daaf7dca44e39cec6016b82fd"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 19:09:14 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 14:09:23 2018 -0700"
      },
      "message": "Audio V4: Propagate track attributes to HAL\n\nThis patch does not propagate the volume.\n\nBug: 38184704\nBug: 69623109\nTest: log metadata in HAL\nChange-Id: I313563cafd9f2b29a13839c3c075beb65a170632\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "1f564acca544826daaf7dca44e39cec6016b82fd",
      "tree": "4adc2f15866c6c7bb47f7eb351aa251a94b1aaa2",
      "parents": [
        "a8975a7e857fd745fc88d226d86b53ae088eafb9"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 13:53:10 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 13:15:05 2018 -0700"
      },
      "message": "Audio V4: Propagate audio attributes to tracks\n\nThis patch has not functional changes.\n\nBug: 38184704\nBug: 69623109\nTest: play music and a audio\nChange-Id: Ide6ec7de4dbfab4af2653475901c3b3daee36e52\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "9ff780e58ff96ff98acaae4166bb218880bf9e73",
      "tree": "b54bf56b7f6ebc5950064d2908004abfe35d7162",
      "parents": [
        "2ca700737c14edc9141af170ee278853fd99fa87"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 19 18:19:52 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 28 10:17:36 2018 -0700"
      },
      "message": "Support query microphones information.\n\nGet list of all/currently active microphones from hal.\n\nBug: 64038649\nTest: Manual Testing and Cts test\nChange-Id: Id39cae38ba040f9bc91571e713487f87c2eb67b0\n"
    },
    {
      "commit": "56ecf3e3ce36d111a17d67485047836660128629",
      "tree": "79a1a5a3992f0bb116d3d2e8473c1e76b84034e2",
      "parents": [
        "553a1a42fceba2f5315238355de2b20687185160"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 12 15:38:17 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Mar 21 01:14:13 2018 +0000"
      },
      "message": "audioflinger: only update mHalVolFloat on success\n\nThis will fix a regression with AAudio MMAP stream not getting\nits initial volume set correctly.\nAlso initialize mHalVolFloat.\n\nBug: 74547253\nTest: adb shell write_sine_callback -pl -s10 -m1\nTest: should have the same initial volume as\nTest: adb shell write_sine_callback -pl -s10 -m3\nChange-Id: Ie0c1f9ba51e2059a888d2273f41588f101b09a5c\n"
    },
    {
      "commit": "5ff7b0da6f51af96b530951c72fe06a711280282",
      "tree": "ce3e9dc8c66cb2a05da1b73c0e3906e0b7d3cbd6",
      "parents": [
        "7dccfdd8f0752db2717d554d0cf1925c34202639"
      ],
      "author": {
        "name": "haobo10173529",
        "email": "hao.bo15@zte.com.cn",
        "time": "Fri Mar 17 17:44:03 2017 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 16 17:35:03 2018 -0700"
      },
      "message": "AudioFlinger: Fix deadlock when createEffect_l fails.\n\nThe handle.clear() will cause deadlock if init of EffectHandle\nfailed due to NO_MEMORY in createEffect_l.\n\nTest: Monkey test, Instrumented test.\nBug: 75031792\nChange-Id: Ie0f38d76a66aeafe26903dda6690d1fe7fca4464\n"
    },
    {
      "commit": "103d423a26d8dd46f6d185395a783cbb376f2837",
      "tree": "ee92af7d20b723517be715f7f8a05257da881858",
      "parents": [
        "fbf6b4990aced38376f8d9f2c0b836a9ffb17089",
        "0568dedb5008a24c2aca661a6891f9923abfa6d2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 15 02:29:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 02:29:59 2018 +0000"
      },
      "message": "Merge \"Prevent Hearing Aid fromn spamming logs\" into pi-dev"
    },
    {
      "commit": "0568dedb5008a24c2aca661a6891f9923abfa6d2",
      "tree": "f81bbac0f9fc5ff1fcad245560713868d968b754",
      "parents": [
        "dc9df6a12d848b32fbd041421c663d2014f32403"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Mar 14 11:20:05 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Mar 14 11:29:00 2018 -0700"
      },
      "message": "Prevent Hearing Aid fromn spamming logs\n\nHearing Aid uses same mechanism as A2DP for obtaining audio stream,\nthus causing same throttling issue.\n\nBug: 69623109\nTest: stream music through Hearing Aid, observe logcat output\nChange-Id: I6445f6c85d9600fdb12008b0c353242f799b963e\n"
    },
    {
      "commit": "6e64137e95362a8f6eef43ea676418567b327c96",
      "tree": "8a2ed91d013a14058c606d6f41d044ecca7e184e",
      "parents": [
        "dc9df6a12d848b32fbd041421c663d2014f32403"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 02 09:21:30 2018 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 09 21:49:03 2018 +0000"
      },
      "message": "Revert \"Revert \"Use start/finish app op API for mic use\"\"\n\nThis reverts commit 599ec462d94136949e0c90419ea99b0d9ba83eac.\n\nIn addition it fixes an incorrect comparison against opPackageName\ninstead of resolvedOpPackageName creating incorrect short circuit.\n\nTest: atest android.media.cts.AudioRecordAppOpTest\n      \"Okay Google\" works fine\n\nbug: 64085448\n\nChange-Id: I77a8486dfd6e4f020efdf05d28a856a32579ef31\n(cherry picked from commit 5b81f550759c975fe6716e4e7870b11e523834d0)\n"
    },
    {
      "commit": "ad9c7e47d26bbeb2f3be96b3ad6988a6023a1021",
      "tree": "0d7cce2a82c78d215ae7c7cd8aac1148ad8c81a2",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 05 12:25:58 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 05 20:39:11 2018 +0000"
      },
      "message": "Revert \"audioflinger: Remove \"exiting\u003d1\" parameter\"\n\nThis reverts commit e2bc208f05ed430a18a9078799b6b6d56e3d6dda.\n\nBug: 74142786\nTest: with Android Auto head unit simulator\n\nChange-Id: I9f96da7ba67b3ed774c9b9bdab7cee390d3f0ca2\n"
    },
    {
      "commit": "599ec462d94136949e0c90419ea99b0d9ba83eac",
      "tree": "0774e6abd59eec5530f78d6788a8da27217bac63",
      "parents": [
        "9b887324b8c3f86f012915a6f637081b158a221b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 01 22:19:55 2018 +0000"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 01 16:10:34 2018 -0800"
      },
      "message": "Revert \"Use start/finish app op API for mic use\"\n\nThis reverts commit 55bb217cd1fea3e791d0d7cf73e09e27fed8c36e.\n\nReason for revert: Causes a regression\n\nbug:74061812\n\nChange-Id: I119937cfce79ba824185634f2b81dad1606a875d\n"
    },
    {
      "commit": "b184c494bef0dd67d715732c27e059a46e723161",
      "tree": "b2ab9e45f2c63ab429d0dd1f1f1f54a25a3cb225",
      "parents": [
        "10164d0a52e59794bd5e63b63b6fbc160fdcb646",
        "55bb217cd1fea3e791d0d7cf73e09e27fed8c36e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 01:11:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 01:11:35 2018 +0000"
      },
      "message": "Merge \"Use start/finish app op API for mic use\""
    },
    {
      "commit": "a529a0480ab6647cdc6f61b3633f4ba25f64405e",
      "tree": "01c54cf86566f574a556ada38ac3672b7b927a97",
      "parents": [
        "33971ac15c70507d8ce390c015399283e96f921d",
        "e2bc208f05ed430a18a9078799b6b6d56e3d6dda"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 23:59:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 23:59:39 2018 +0000"
      },
      "message": "Merge \"audioflinger: Remove \"exiting\u003d1\" parameter\""
    },
    {
      "commit": "55bb217cd1fea3e791d0d7cf73e09e27fed8c36e",
      "tree": "08b19af105e7aa492f732e815928e4420aa7f1c6",
      "parents": [
        "1d519106f7a3d31cc89e3c4a1146106b0478a410"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 27 20:25:51 2018 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 28 04:48:29 2018 +0000"
      },
      "message": "Use start/finish app op API for mic use\n\nSince recording is a long running operation we need to use\nthe start/finish app op APIs since now system UI would watch\nfor active mic/camera/overlay ops and badge app notifications\nwith icons denoting that these capabilities are being used.\n\nTest: atest android.media.cts.AudioRecordAppOpTest\n\nbug: 64085448\n\nChange-Id: I47d9b507ef5d757d34d65484c112cea6cdc246e1\n"
    },
    {
      "commit": "e2bc208f05ed430a18a9078799b6b6d56e3d6dda",
      "tree": "e34e319874c152fe10fe722cb26fc0edc9e1cedc",
      "parents": [
        "218f8e3bec0070731bff41513b19f64d481dad24"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 27 10:09:59 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 27 10:11:17 2018 -0800"
      },
      "message": "audioflinger: Remove \"exiting\u003d1\" parameter\n\nThis was used by the remote submix module to unstuck when\ninput is not consumed. The remote submix module was updated\nto not require it.\n\nBug: 73175392\nTest: make\nChange-Id: Ic7f6ecbe83251e39052be0693b89db52ab18947c\n"
    },
    {
      "commit": "54c28999afa7834a8dbc6079a2707598a37db56f",
      "tree": "2677c29642cc1c92056ac37a802f4c53d51787f7",
      "parents": [
        "218f8e3bec0070731bff41513b19f64d481dad24",
        "db959740904eba27582feee48234463f3553b199"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 26 18:34:17 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 26 18:34:17 2018 +0000"
      },
      "message": "Merge \"Don\u0027t use cutils/Atomic.h\" am: 853996e7b2 am: 072aaa2e39\nam: db95974090\n\nChange-Id: I7f930bda6e51c0d4368747f8e4a0eac92e68b2fd\n"
    },
    {
      "commit": "643825e4943995bbefd13d55c58bffd5e6904e90",
      "tree": "065eac1e1623e5340edd77f25b98dcd1ad4377ec",
      "parents": [
        "8231ac5a67006a8c0e9755fd143f788059930c45",
        "7840c30d04a749da9817682339f97b4ab128dffd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 24 14:15:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 24 14:15:05 2018 +0000"
      },
      "message": "Merge \"Revert \"Ignore config error if non-offloadable effect is on offload thread\"\""
    },
    {
      "commit": "7840c30d04a749da9817682339f97b4ab128dffd",
      "tree": "f9dd3c1b47b99a5bb720fb51ca061625aa2a6306",
      "parents": [
        "cfb681346730d9d0cf849f44e234f79c1622f209"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 24 01:33:26 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 24 01:39:39 2018 +0000"
      },
      "message": "Revert \"Ignore config error if non-offloadable effect is on offload thread\"\n\nThis reverts commit cfb681346730d9d0cf849f44e234f79c1622f209.\n\nReason for revert: Crashes in Play Music b/73624638\nTest: Play Music with cleared app data, check equalizer settings\nBug: 73624638\nBug: 70912361\nChange-Id: I6d4eec2fda57a60c2c6949937752d8f1e50bb8ab\n"
    },
    {
      "commit": "f0c02ce99ccac584f4f4790390702aabc4d92c90",
      "tree": "f5aa741235215cd73df2025b8e42394486a52ae8",
      "parents": [
        "fa87fc3b31e273efe3a2f5090dcd9c283e414aa5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 14:53:55 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 15:02:39 2018 -0800"
      },
      "message": "Don\u0027t use cutils/Atomic.h\n\nTest: builds\nChange-Id: I56aea1dff5a2bd98d119eb374e7a28a12a20861c\n"
    },
    {
      "commit": "dff6a64ce600a4f4550a97cf49778de14b1fde70",
      "tree": "8983cac84f22f6bdf1a15659210c6197f4e86e66",
      "parents": [
        "41c868219a5cf5b5862afc8515373a89a9353541",
        "98e38191c37d3e324b34a6aafeef8e43366003ef"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 22 02:46:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 22 02:46:57 2018 +0000"
      },
      "message": "Merge \"audioflinger: remove obsolete stream volume management\""
    },
    {
      "commit": "98e38191c37d3e324b34a6aafeef8e43366003ef",
      "tree": "349602f9c4d9dd7f4720328cc72f891f9515a0ce",
      "parents": [
        "7c9dbd5440e8119ca439e4b9315843bd348b991f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 15 18:31:53 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 21 12:54:41 2018 -0800"
      },
      "message": "audioflinger: remove obsolete stream volume management\n\nRemove the ability to change stream volume globally (on all outputs)\nin audio flinger as this doesn\u0027t make sense when stream volume is\nmanaged per device.\n\nAlso, do not store stream volumes globally in audio flinger and apply\nthem when a new output is opened. The ground truth for stream volume is\nin audio policy so make sure stream volumes are systematically applied\nby audio policy when an output is opened according to the selected device.\n\nBug: 70332110\nTest: audio smoke tests\nChange-Id: I7180a428af53aafdee82aadbcaf284c028ac5554\n"
    },
    {
      "commit": "1cacca4057398cc8352e36e6c76832b2945f9857",
      "tree": "fbbf5deaf01534144f42d3c67a3cd1b35a6286e6",
      "parents": [
        "7c9dbd5440e8119ca439e4b9315843bd348b991f",
        "1bc088a918d7038603230637d640941953b314d4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 20 19:51:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 20 19:51:24 2018 +0000"
      },
      "message": "Merge \"Call AudioMixer only from MixerThread threadLoop.\""
    },
    {
      "commit": "1bc088a918d7038603230637d640941953b314d4",
      "tree": "e231c2b22d944eaed29445fe4a35861fddb50e54",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 09 15:57:31 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 16 15:50:32 2018 -0800"
      },
      "message": "Call AudioMixer only from MixerThread threadLoop.\n\nAs part of change:\nRemove track name offset by TRACK0.\nMove track name management to the Tracks class.\nSync mixer track name to FastMixer track index.\n\nFixes regression introduced by commit 8ed196a.\n\nTest: SoundPool, AudioTrack CTS, Usability\nBug: 72937362\nBug: 73004420\nChange-Id: I2f1a33f6f0da66bcd7aa91e2a4b663ff822df645\n"
    },
    {
      "commit": "cfb681346730d9d0cf849f44e234f79c1622f209",
      "tree": "b1643895484134c0acc43e2db3ee88e787028643",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Fri May 26 19:06:33 2017 +0900"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 16 11:40:10 2018 -0800"
      },
      "message": "Ignore config error if non-offloadable effect is on offload thread\n\nReturn NO_ERROR if a non-offloadable effect is created on an offload thread\n(since the sampling rate of offload output can be different from\nthe one supported by a software effect). Enabling the non-offloadable\neffect will cause the track to move to a non-offload thread.\n\nBug: 70912361\nTest: Create AudioEffect during 24kHz mp3 playback\nChange-Id: Ie5bf264a9790d936c24476ea127bc6da9eefde73\n"
    },
    {
      "commit": "77881cd0213e2fb5619862cfd5b0aa2b9d4e3081",
      "tree": "0920071fb96e57d396b16eaf4166cbb460deb176",
      "parents": [
        "7dca8a83b7c6922a69e266aa9f2b5693a4d773a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:01:31 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:09:20 2018 -0800"
      },
      "message": "fix audio port ID generation for new AudioTrack and AudioRecord\n\ncommit 0f4b3c544 introduced a problem in audio port ID generation\nby audio policy manager when a new playback or record track\nis created: audio flinger was passing a random port ID to\ngetOutputForAttr and getInputforAttr.\nThis caused audio policy to confuse several record tracks\nand fail to process capture stop properly.\n\nBug: 72628781\nTest: manual camcorder tests\n\nChange-Id: I55e18e2e6ccb9f69c36372d9bf9becf85e7c2614\n"
    },
    {
      "commit": "7dca8a83b7c6922a69e266aa9f2b5693a4d773a9",
      "tree": "cd09df52888de8f7af339c9decc3f21367272c1b",
      "parents": [
        "fee1976a2849c37a53d8a01ac10327d522a1ba93"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 18:44:26 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:09:06 2018 -0800"
      },
      "message": "Revert \"Revert \"audio flinger: move record permission checks to audio policy service\"\"\n\nThis reverts commit 67651f97c9c3880a4440c86618337f8a64c3e1a9.\n\nBug: 72628781\nTest: manual camcorder tests\nChange-Id: Id3687d2a4ab90f01d66ff30b2d77e6ec4ae72b3f\n"
    },
    {
      "commit": "fee1976a2849c37a53d8a01ac10327d522a1ba93",
      "tree": "5b8a259a93f6f84a964badf5417c113a308e67c9",
      "parents": [
        "98c15702ca0c814fee9110efa14d70fc9937514e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 18:44:13 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:08:31 2018 -0800"
      },
      "message": "Revert \"Revert \"audio policy: refactor audio record APIs\"\"\n\nThis reverts commit e9ebcdbb0580bd4a75f4530b957b1859e535c028.\n\nBug: 72628781\nTest: manual camcorder tests\nChange-Id: I9fb550a9f62d2d15cafbd7534e5e7eaa155a7213\n"
    },
    {
      "commit": "1de79cfe1031a1ea6b3ba9fd77ed8686c0b6f694",
      "tree": "75289e92ed05721a30dcf9761aaaa9e4a56f1204",
      "parents": [
        "c717e5e41ed866d3f156e15835150f898acba27d"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Feb 01 15:21:02 2018 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Feb 01 15:21:02 2018 -0800"
      },
      "message": "Fixes related to typo in audio.h\n\nBug: 64038649\nTest: Manual Testing and CTS tests.\nChange-Id: Id2650638f789d85116d780d87b19debd2a13a737\n"
    },
    {
      "commit": "5dd03a5825d06033c1e66353dbbfcfc7f60990c5",
      "tree": "9deed77dba8b49bf83bf5f039c4ebaee3aa5b34c",
      "parents": [
        "5dca017406b057bf71f8934ef57aab6098ecec6c",
        "653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 01 01:35:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 01:35:26 2018 +0000"
      },
      "message": "Merge \"Support query active microphones information in AudioRecord.\""
    },
    {
      "commit": "8ec3d5d415776cf37398b6cf788a3d4be2335a73",
      "tree": "a09aa5cf817e0f81987df05d71c3f0965c011a05",
      "parents": [
        "ab0486cbc9d0cc730be7e294af83865b1ad47b10",
        "e9ebcdbb0580bd4a75f4530b957b1859e535c028"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 00:30:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 00:30:06 2018 +0000"
      },
      "message": "Merge changes I6bcc87c6,If633e677\n\n* changes:\n  Revert \"audio policy: refactor audio record APIs\"\n  Revert \"audio flinger: move record permission checks to audio policy service\"\n"
    },
    {
      "commit": "e9ebcdbb0580bd4a75f4530b957b1859e535c028",
      "tree": "a603313572aeef80fb8a26d2ff38f7a6541e835c",
      "parents": [
        "67651f97c9c3880a4440c86618337f8a64c3e1a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:27:18 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:37:24 2018 -0800"
      },
      "message": "Revert \"audio policy: refactor audio record APIs\"\n\nThis reverts commit 0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe.\n\nBug: 72628781\nTest: Capture several videos from camera app\nChange-Id: I6bcc87c618ac9bfe5c911915cbb37de616bc727a\n"
    },
    {
      "commit": "67651f97c9c3880a4440c86618337f8a64c3e1a9",
      "tree": "843940703c4fca05bf8cf6df7091fbcc42eb0154",
      "parents": [
        "5f07c65af5356a4a95410804ce19fc017d6478f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:27:03 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:35:06 2018 -0800"
      },
      "message": "Revert \"audio flinger: move record permission checks to audio policy service\"\n\nThis reverts commit c7b71a1b3a16231d7741f9ef52c5f84ec8de0c31.\n\nBug: 72628781\nTest: Capture several videos from camera app\nChange-Id: If633e677d87320335e368a8340599c9e4a398201\n"
    },
    {
      "commit": "653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0",
      "tree": "6ce8eb9ed7297d8b2524c6e25376319175758f50",
      "parents": [
        "46a76fa5ffb88dbde2c67335dbc5cf20b75b10b6"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jan 17 17:54:10 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 26 17:23:07 2018 -0800"
      },
      "message": "Support query active microphones information in AudioRecord.\n\nThis is part of device enumeration. With the new add API, developer\ncould get the active microphones information for each channel.\n\nBug: 64038649\nTest: Run cts and check the print log.\nChange-Id: Ic63d86e533a30e40697da7522a5a81f7cfcea988\n"
    },
    {
      "commit": "46a76fa5ffb88dbde2c67335dbc5cf20b75b10b6",
      "tree": "7215e85bae943107de3bf07537c28c98216f5690",
      "parents": [
        "6e075b43b0ba324a97fc0f89ef65196ed25be671"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 05 10:18:21 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 26 17:16:16 2018 -0800"
      },
      "message": "Add support for getting all available microphones characteristics.\n\nAdd MicrophoneInfo class in native side and native logic for supporting\nquery all available microphones.\n\nBug: 64038649\nTest: Run test and check the print log.\nChange-Id: Ic0a9cce55a1265a66ba08fe81b56b56cb88ba42f\n"
    },
    {
      "commit": "c7b71a1b3a16231d7741f9ef52c5f84ec8de0c31",
      "tree": "803306733146625da98f061ceec491569fd184ba",
      "parents": [
        "0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 08 17:21:56 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 24 17:07:22 2018 -0800"
      },
      "message": "audio flinger: move record permission checks to audio policy service\n\nMove audio permission checks to getInputForAttr and startInput.\n\nTest: AudioRecord CTS tests. Manual test of capture use cases.\nChange-Id: Ifaefc1198248b46fc59aecd6c9ec3aa892656e05\n"
    },
    {
      "commit": "0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe",
      "tree": "63641f2dea738a745946c63f80803557a74ec12b",
      "parents": [
        "c6116926de37cabb1d35ddd57eaff0e19fcec8bc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 05 11:46:13 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 24 16:56:52 2018 -0800"
      },
      "message": "audio policy: refactor audio record APIs\n\nRefactor audio policy service APIs controlling audio record (startInput, stopInput, releaseInput)\nTo allow finer grain control per AudioRecord client and prepare for new concurrent capture\npolicy\n\nTest: AudioRecord CTS test. manual test of capture use cases:\ncamcorder, OK Google VoIP\n\nChange-Id: I4992fd5a115853c47be5dac5465989eb53f1287c\n"
    },
    {
      "commit": "c6116926de37cabb1d35ddd57eaff0e19fcec8bc",
      "tree": "fdc9a07eec6b4e7dc446a76149bd0c843d298edd",
      "parents": [
        "7027e8019ad974d2e474a7fcaf43adedbdf08f23",
        "8ed196ac0f4aa8ae811c012dfa6f596fddebf1bf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 24 22:48:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 22:48:08 2018 +0000"
      },
      "message": "Merge \"AudioMixer: Enable 256 tracks, up from 32 tracks\""
    },
    {
      "commit": "03570a65a46bd0d577aa4c860c4f32f4abf79c7c",
      "tree": "80f3fe537f1edeb95bd37a5a66090ce3b4f1cd1e",
      "parents": [
        "70068e8e49f3467488550d88d6130f9e00bb0624",
        "6f248bb57a6a0febe8fc0f253acc86289237ace8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 24 20:28:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 20:28:46 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Allocate client memory based on total device memory\""
    },
    {
      "commit": "8ed196ac0f4aa8ae811c012dfa6f596fddebf1bf",
      "tree": "fda78f06eeb733b00fda71fbd401b6a787b76190",
      "parents": [
        "2917aa469abba347a1ab1e6fa766d62721182788"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 05 13:21:11 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 23 23:04:33 2018 -0800"
      },
      "message": "AudioMixer: Enable 256 tracks, up from 32 tracks\n\nClient apps can have 40 tracks, up from 14 tracks\n\nRelated code cleanup:\na) Removed State nested class\nb) Moved static functions to Track member functions\nc) Moved static function hooks to pointer-to-member-function hooks\nd) Some reorganization of touched code for recent C++ style\n\nTest: test-mixer native mixer test\nTest: SoloTester effect test\nTest: SoundPool with many tracks\nTest: CTS AudioTrackTest\nBug: 64161002\nChange-Id: I0d09620acd715d577e776bb6f76e94e87e554520\n"
    },
    {
      "commit": "34abab103a6eb3fc7417c9e9169ee172b2303952",
      "tree": "df4065ab25ab83d7380715b42ad7c79d0d436873",
      "parents": [
        "fe4e4db4615585fd70a55d52f21c55dd517d2bfa",
        "07be14fb96fc5c106ea2b874faf2b768f468eb8e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "message": "Merge \"Revert \"Audio V4: Split system and vendor Audio.h\"\""
    },
    {
      "commit": "07be14fb96fc5c106ea2b874faf2b768f468eb8e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "message": "Revert \"Audio V4: Split system and vendor Audio.h\"\n\nThis reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.\n\nReason for revert: Breaks the build of multiple devices\n\nChange-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e\n"
    },
    {
      "commit": "6f248bb57a6a0febe8fc0f253acc86289237ace8",
      "tree": "5dcc5fe0729c85f7ef39ac298906acea444b2ae2",
      "parents": [
        "2917aa469abba347a1ab1e6fa766d62721182788"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 23 14:04:37 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 23 22:12:12 2018 -0800"
      },
      "message": "AudioFlinger: Allocate client memory based on total device memory\n\nTest: Debug logging\nBug: 64161002\nChange-Id: I7156748e5678c3232d1f1672439d11aecf3f458b\n"
    },
    {
      "commit": "6a784e71ca122347789faa73367877d41831592f",
      "tree": "de25d71706442e18346a5785f4174aba5604454d",
      "parents": [
        "f7a14c051ee9bd5f288963f3c190642e4915250b",
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-v4-tmp\"\n\n* changes:\n  Audio V4: Split system and vendor Audio.h\n  Audio V4: Use the framework audio.h instead of the HAL\u0027s\n"
    },
    {
      "commit": "487585733d3e075734cb9827f1a36302590b8089",
      "tree": "e3956af3b322b108a20616c2b252e77575978630",
      "parents": [
        "f83d6ce9d1aa4c96d2b8dbca8d8213b25938d1de",
        "7588ff418aca63b1dc43a85afc1e86c40dd889a3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jan 22 23:50:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 23:50:41 2018 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-v4\"\n\n* changes:\n  Audio V4: Split HAL wrapper for versioning\n  Audio V4: Move audio HIDL wrapper in a 2.0 folder\n  Audio V4: Move Utils in a versioned namespace\n"
    },
    {
      "commit": "766fb020a50b64bf9a808bd80df60c54c2ca8cc3",
      "tree": "acb92cb201889d2b56f41bc2a437da1aaae72c4e",
      "parents": [
        "652f9299bb8a7a50148d57a75de6ede831bfed85"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Sun Jan 07 12:18:03 2018 +0200"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Mon Jan 22 23:05:23 2018 +0200"
      },
      "message": "Support routing audio playback to telephony uplink\n\nThis change enables phone apps to play audio to the uplink stream\nduring a call.\nThis change maks the AUDIO_OUTPUT_FLAG_INCALL_MUSIC_UPLINK flag to be added to the flags that are sent to the HAL when an ongoing call is active, the chosen output device is the TX telephony device, the stream type is music, and the calling app has the MODIFY_PHONE_STATE permission.\nFor this change to take place, the following changes were made to the signature of getOutputForAttr in IAudioPolicyService:\n  1. Add pid (process id) parameter to getOutputForAttr.\n  2. Make the flags parameter a pointer so changed value can be\n  examined by calling function.\n\nBug: 69973354.\nTest: tested manually.\nChange-Id: I74cef3f8b66de6e0e8f87b6235130c2cdf423da7\n"
    },
    {
      "commit": "f8ad7f85e9891b2614338330c75ae9e946fccc5a",
      "tree": "957d47ddc7419c688dda1d4c1ac3068eda6d894f",
      "parents": [
        "6d7582e9ad858301b3eeff7b187af6c34808cb7e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 17 15:57:39 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 21:39:40 2018 -0800"
      },
      "message": "Audio V4: Split system and vendor Audio.h\n\naudio.h and its dependencies (audio-effect.h, sound_trigger.h...)\nused to be shared between system and vendor code.\n\nThis led to multiple problems:\n\n1) Such sharing contradicts the Treble policy of\nstrict independence of framework and vendor code.\n\n2) When audio.h was changed, every vendor needed to update\nits code in the next release. This meant that audio*.h\nheaders were mostly changed in backward compatible manner.\nNevertheless, for P the HIDL interface and thus the audio.h\ninterface are changed in backward incompatible way.\n(Some enum are becoming 64 bit long).\n\n3) As the headers were common, some API used only by the framework\nneeded to be visible to the vendors (mostly enum values).\n\n4) Treble policy is to support at least one previous HAL version\n\nAs a result the audio*.h headers are now duplicated,\none set for the framework, and one for the vendor.\n\nEach set will evolve independently. After this split,\nthe framework-only APIs will be removed from the vendor headers\nand vice versa.\n\nThe split is implements as such:\n\n + for system code\n\n    - NOT moving the libaudio_system_headers\n      Eg: system/audio.h and system/audio_effects/effect_equalizer.h\n          are still in system/media/audio\n\n    - the legacy audio HAL API that were in libhardware headers\n          are now in libaudiohal_legacy_headers\n      Eg: hardware/audio.h and hardware/audio_effect.h\n          are now in frameworks/av/media/libaudiohal/legacy/\n\n + for vendor code\n\n    - moving libaudio_system_headers and the legacy audio HAL API\n          that were in libhardware_headers in\n          android.hardware.audio.common.legacy@2.0\n      Note that those headers are now versioned, so migrating to a @4.0\n          HIDL HAL will mean changing the legacy dependency too.\n      Eg: system/audio.h, system/audio-effect.h, hardware/audio.h\n          are now in hardware/interfaces/audio/common/2.0/legacy\n\n    - the legacy audio effect HAL API that was in libaudioeffects\n          is now moved in android.hardware.audio.effect.legacy@2.0\n      Eg: audio_effects/effect*.h are now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\n    - the legacy sound trigger HAL API that were in libhardware_headers\n          is now moved in android.hardware.soundtrigger.legacy@2.0\n      Eg: hardware/sound_trigger.h is now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\nlibaudioutil being used by both system and vendor, had\nto be renamed for system to libaudioutil_system.\n\nVendor libs that now depend on the audio.h of a specific\nversion and are not extensively referenced in non google code,\nappend @2.0 to their name.\n\nNote that headers that are not expected to change in the 4.0 HAL are\nleft in all-versions folder to avoid duplication.\nThis is an implementation detail as the versioned libraries export\nthe all-versions headers.\n\nNote that strict vendor-system separation is enforced by the\nbuild-system. The system headers are not available for vendor\nlibs and vice-versa.\n\nNote that this patch is split between numerous git repository (\u003e10),\nall the commits having the same Change-id for searchability.\n\nNote that audio_policy.h is no longer exposed to vendors\nas the legacy audio policy HAL API was never officially supported.\nAs a result the audiopolicy stub implementation has been removed.\n\nTest: compile taimen-userdebug walleye-userdebug\n              sailfish-userdebug marlin-userdebug\n              gce_x86_phone-userdebug gce_x86_phone\n              full-eng aosp_arm aosp_x86-eng\nTest: check that the emulator booted and played audio\nTest: full QA on sailfish-userdebug and taimen-userdebug\nBug: 38184704\nChange-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    }
  ],
  "next": "7588ff418aca63b1dc43a85afc1e86c40dd889a3"
}
