)]}'
{
  "log": [
    {
      "commit": "a42a62d8633fa6fcabc8129a2c798da860630821",
      "tree": "77e009a25a0a222aba1cabdc276b5bc9da549d04",
      "parents": [
        "342d7bcf44b3edcce763f0417ad0a13b11bde285"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 23 17:48:14 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Oct 11 21:40:26 2019 -0700"
      },
      "message": "libmedia: separate codeclist from libmedia\n\nTest: build.\nBug: 139201422\nChange-Id: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\nMerged-In: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\n"
    },
    {
      "commit": "342d7bcf44b3edcce763f0417ad0a13b11bde285",
      "tree": "795ca5539a3e878e3eb76676f6d13f3a06874e03",
      "parents": [
        "1ab2344f6dd1b913c9e20c4afaba96105b00074c",
        "d422b5f2ddb23eab790c8e04dc161142c65e01a2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 11 21:50:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 11 21:50:40 2019 +0000"
      },
      "message": "Merge \"audio policy: fix capture policy for accessibility\""
    },
    {
      "commit": "bb3c777e401d10f379835243bfcb2e6b6c678504",
      "tree": "236eebbbf6ecc1e9025d76fcec178db112696440",
      "parents": [
        "d20b5c7d6fb8ae4f0a011cdc78b0522846419721",
        "20a44f84f1a80ba1464ca35b62417e33ed88ac29"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 10 15:52:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 10 15:52:37 2019 +0000"
      },
      "message": "Merge \"Fix secondary output under\u0026over run\""
    },
    {
      "commit": "d20b5c7d6fb8ae4f0a011cdc78b0522846419721",
      "tree": "bec236ab3eea46a0c925503af51c01e4cf869898",
      "parents": [
        "229c543d081cc29f1f07df8d0b1657cdb71e0c15",
        "31987fb3dc277d2b0daf32f3d2a044e8a2c88a3b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 10 15:22:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 10 15:22:13 2019 +0000"
      },
      "message": "Merge changes from topic \"pfw_python_3\"\n\n* changes:\n  audiopolicy: engineconfigurable: Update tool scripts to python 3\n  audiopolicy: engineconfigurable: continue switching to bp\n  audiopolicy: engineconfigurable: fix potential segfault if no default device\n  audiopolicy: engineconfigurable: fix PATH issue\n  Update PFW input source structure for Q\n"
    },
    {
      "commit": "20a44f84f1a80ba1464ca35b62417e33ed88ac29",
      "tree": "406a9c22867b2928338aa3e7eeae7d1f313b04eb",
      "parents": [
        "229c543d081cc29f1f07df8d0b1657cdb71e0c15"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Sep 18 11:24:52 2019 +0100"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Oct 10 13:34:23 2019 +0100"
      },
      "message": "Fix secondary output under\u0026over run\n\nThere were three issues with the implementation\nof Audio Playback Capture patches on secondary outputs.\n\n1) Patch tracks were always forced to be ready, even if there were not\nenough audio to be played. That led to playing partial buffers if the\nsource output had smaller (time wise) buffer than the secondary output.\n\nThis is fixed by avoiding setting CBLK_FORCEREADY on every buffer push\nfrom the primary output thread.\n\n2) After 1 is fixed, the patch tracks now behave like regular (non fast)\ntracks. This means that the track only starts when it is full.\nThat leads to overrun on startup as the primary and secondary outputs\nusually do not have the same write period.\n\nWhat makes the issue worst is that Remote submix has a fixed buffer in bytes,\nso its write period changes depending on sample rate contrary to the\nprimary HAL which pulls with fixed time periods (usually 20/40ms).\n\nThis patch solution is to introduce a ready threshold. The track will be\nconsidered ready to be active if there are more than frames in its buffer.\n\nTo avoid changing previous latency behaviour except for APC,\nlegacy tracks have this threshold set to their buffer size and\nnon APC patch tracks have it set to 1, similar to setting\nCBLK_FORCEREADY.\n\n3) The patch track buffer size calculation of the patch track did not take\ninto account primary and secondary output could be of different sampling\nrate.\nThis mean that the patch track buffer was usually too small as the\nsecondary output usually had smaller sampling rate (Live caption\nrequests 16kHz) than the track (music usually plays in 48kHz).\nThis made the two problems even worst.\n\nThis was easily fixed by scaling the buffer size with each side sample rate.\n\nBug: 136691300\nTest: play audio\n      adb shell audiorecorder  --target /data/file1.raw\n      # Check that the recorded file has no underrun\nChange-Id: Ib2846b2827afd1b953d4a25acb18c7cadf57cd3e\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "31987fb3dc277d2b0daf32f3d2a044e8a2c88a3b",
      "tree": "c38226f2997551d7d61cbd7836d5f3a48ab6de85",
      "parents": [
        "5818b453da8cc675900f810655143ad55a159a11"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Sep 03 11:57:33 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 09 15:06:16 2019 -0700"
      },
      "message": "audiopolicy: engineconfigurable: Update tool scripts to python 3\n\nAs python 2 is beeing deprecated, this CL updates all the tool\nscripts to python3.\nIt also fix some issues revealed by pylint.\n\nTest: lunch audio_configurable target \u0026 build\nChange-Id: I69a201190c688be3825cbdaa238046367a5d09c7\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "5818b453da8cc675900f810655143ad55a159a11",
      "tree": "d7285f91c4ce5f85a9176c2f5544eed40b01ab77",
      "parents": [
        "c60c36916666ead0ad9c599b82a86708a91eb767"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Aug 27 16:30:04 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 09 15:06:09 2019 -0700"
      },
      "message": "audiopolicy: engineconfigurable: continue switching to bp\n\nThis CL adds genrule_defaults target to allows getting rid of mk\nfor configuration files generation.\n\nTest: build \u0026 boot\nChange-Id: Ida4ec17ab3e67788b512b95ac8d2c0f4c530014a\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "c60c36916666ead0ad9c599b82a86708a91eb767",
      "tree": "520eb229b4f475fdc7134d594b3fb9b47f72330c",
      "parents": [
        "bc5c7de7048dfe5ca33652533582328775bd4169"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Aug 09 15:41:24 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 09 15:05:58 2019 -0700"
      },
      "message": "audiopolicy: engineconfigurable: fix potential segfault if no default device\n\nIf no default device is available from configuration.xml, and if\nthe engine fallbacks on it anyway, it tries to get its type without checking\nthe pointer validity.\n\nThis CL fix the potential segfault and assert with explicit error message.\n\nTest: build\n\nChange-Id: Icf8d7f5ef998dad6f4033d934b48d408030c7e17\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "bc5c7de7048dfe5ca33652533582328775bd4169",
      "tree": "5789839c6466d34ae8d963e68322520895e22b37",
      "parents": [
        "39ef510fecec1b7e66b1257a99c6ae8fa1c8e726"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jul 16 13:37:16 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 09 15:05:52 2019 -0700"
      },
      "message": "audiopolicy: engineconfigurable: fix PATH issue\n\nTo avoid bypassing PATH restrictions, this CL fixes the python\nbinary dependancy by retrieving the path from the host binaries.\n\nTest: build\n\nChange-Id: Ib3356ee1a69d1a5e5a9f9d22b46e3e70c28fa991\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "39ef510fecec1b7e66b1257a99c6ae8fa1c8e726",
      "tree": "68a7209c8c96dcc9a1ce5e268e508a541c51df9f",
      "parents": [
        "58ae37b5b34d6a2bddd46494230a58f5fcc3f5e3"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon May 27 17:33:14 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 09 15:05:40 2019 -0700"
      },
      "message": "Update PFW input source structure for Q\n\nTest: make\nChange-Id: I8a79773732577ace9d81f87fe3f4bb166f4d7290\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "fa8be7d2371d66db6c7838060d5729f6fd9374ef",
      "tree": "aa00504b96299a891446e46c81c6b0d72c9aae02",
      "parents": [
        "58ae37b5b34d6a2bddd46494230a58f5fcc3f5e3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 23 12:15:57 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 09 07:41:58 2019 -0700"
      },
      "message": "Split datasource out of libstagefright\n\ninto libdatasource, which contains:\n  DataSourceFactory\n  (Clear)FileSource\n  (Clear)MediaHTTP\n  DataURISource\n  HTTPBase\n  NuCachedSource2\n\nThis is needed to break a circular dependency in an upcoming CL.\n\nTest: build, boot\n\nChange-Id: I34d9937235c78f18f51b18945342a0743e209577\nMerged-In: I34d9937235c78f18f51b18945342a0743e209577\n"
    },
    {
      "commit": "d422b5f2ddb23eab790c8e04dc161142c65e01a2",
      "tree": "d8836bbcf15d00f660f5ac5531d5a860416ff07a",
      "parents": [
        "1a5100d4ad493bfa6a48b76c2c9276af7aa1d689"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 25 18:04:29 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 08 17:35:46 2019 -0700"
      },
      "message": "audio policy: fix capture policy for accessibility\n\nDo not consider Accessibility services when determining\nlastest active capture client. As an Accessibility service\ncapturing does not silence other captures, it should not\nprevent another client from being selected as the latest active.\n\nBug: 135806801\nTest: Start capture with Recorder app, activate Voice Access\nChange-Id: I864be785752f27201d45ce24f95013de6391dbd6\nMerged-In: I864be785752f27201d45ce24f95013de6391dbd6\n"
    },
    {
      "commit": "a3c03a5bbab39d2ea12281f10534a3ab7bad1a1a",
      "tree": "84f3507279568d0a31a6300f4c7cd3adeef65501",
      "parents": [
        "d3dd89caab587bc2207b851da4b3333daf986b2b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 13 10:12:45 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 08 13:53:31 2019 -0700"
      },
      "message": "audio policy: fix virtual called from constructor\n\nCall initialize() after constructing AudioPolicyManager\nfrom factory to avoid calling virtual methods from constructor.\n\nBug: 136491567\nTest: make\nChange-Id: Ie0b591d90e643b1fd1c326f9731dc656b38230dc\nMerged-In: Ie0b591d90e643b1fd1c326f9731dc656b38230dc\n"
    },
    {
      "commit": "1de381858fda2fc7bab72b6f27d0beaf08679705",
      "tree": "74aee5577ebded1d39288e8465ad0ac2a50a690c",
      "parents": [
        "17437eb4b9f5dd70d31192692cda181f1f8cc266",
        "76e89c3b8e2bd864f8943a1ad015306a98a4cac7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 08 17:04:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 08 17:04:51 2019 +0000"
      },
      "message": "Merge \"audioflinger: Add tracing for direct tracks\""
    },
    {
      "commit": "17437eb4b9f5dd70d31192692cda181f1f8cc266",
      "tree": "1ceb05fc09c2d0e09710e66c229e0443c72fa9bb",
      "parents": [
        "9ee56ec1a7ace45b42b65e01fdda98114b5c0833",
        "91beec3e38677fc9d168c3e774755ace009e60db"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 08 17:04:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 08 17:04:23 2019 +0000"
      },
      "message": "Merge \"PassthruPatchRecord: fix null timeOut case in obtainBuffer\""
    },
    {
      "commit": "9ee56ec1a7ace45b42b65e01fdda98114b5c0833",
      "tree": "0690e8bd1cf46c3824b49956d5dbfae0770f0270",
      "parents": [
        "d7a1506715bf9d588210d46b8d6563fc9e92e25a",
        "59cee8cc171715174b912c326ba8a5f500e3afdd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 07 23:47:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 07 23:47:55 2019 +0000"
      },
      "message": "Merge \"audio policy: fix capture policy for HOTWORD source\""
    },
    {
      "commit": "76e89c3b8e2bd864f8943a1ad015306a98a4cac7",
      "tree": "bbb7c5aa0daf3416b9e7e8d9c2c0ce4a6c2fd944",
      "parents": [
        "91beec3e38677fc9d168c3e774755ace009e60db"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 15 20:18:47 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 07 16:24:15 2019 -0700"
      },
      "message": "audioflinger: Add tracing for direct tracks\n\nAdd missing calls to ATRACE for direct writes and frames ready\non direct thread.\n\nTest: \u003cstart direct output\u003e\n      external/chromium-trace/systrace.py audio\n\nMerged-In: Iee6ea72442f9902819628735e19cce0ba1546165\nChange-Id: Iee6ea72442f9902819628735e19cce0ba1546165\n"
    },
    {
      "commit": "91beec3e38677fc9d168c3e774755ace009e60db",
      "tree": "6016c5b7ff6fca19abf6bdd4b8e82cbd0bfa71ff",
      "parents": [
        "48f1d4579f9fe1cd6ff672fe9daa27fec83d82c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 07 09:57:15 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 07 12:50:58 2019 -0700"
      },
      "message": "PassthruPatchRecord: fix null timeOut case in obtainBuffer\n\nProperly handle \u0027timeOut \u003d\u003d nullptr\u0027 case in\nPassthruPatchRecord::obtainBuffer.\n\nBug: 117564323\nTest: make\nMerged-In: Id352e47682c0992b817f26b3b594ec5913e663be\nChange-Id: Id352e47682c0992b817f26b3b594ec5913e663be\n"
    },
    {
      "commit": "59cee8cc171715174b912c326ba8a5f500e3afdd",
      "tree": "8915d8fd854c905ff95553b78e287842c64f58f8",
      "parents": [
        "85e09b8e9403dca651e174dca57ae353b8de0a11"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 19 10:31:39 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Oct 07 11:20:07 2019 -0700"
      },
      "message": "audio policy: fix capture policy for HOTWORD source\n\nDo not consider Assistant capturing with HOTWORD source\nwhen determining lastest active capture client. As assistant\ncapturing for HOTWORD does not silence other captures, it should not\nprevent another client from being selected as the latest active.\n\nBug: 135806801\nTest: Start capture with Recorder app, place in background and trigger\nfalse OK G detection\n\nChange-Id: Ic17bfd70675ef749d6a678d067112b1dbd205746\nMerged-In: Ic17bfd70675ef749d6a678d067112b1dbd205746\n"
    },
    {
      "commit": "d7a1506715bf9d588210d46b8d6563fc9e92e25a",
      "tree": "a3d7e05be7bbb659b82055a4f26dd2a316b114d9",
      "parents": [
        "85e09b8e9403dca651e174dca57ae353b8de0a11",
        "48f1d4579f9fe1cd6ff672fe9daa27fec83d82c7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 07 17:53:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 07 17:53:27 2019 +0000"
      },
      "message": "Merge changes I52ec5b02,I376656e3,I3f005583,Icba4e33d,I78400f6c, ...\n\n* changes:\n  Use PassthruPatchRecord for DIRECT to DIRECT connections\n  Add PassthruPatchRecord for low latency software patches\n  Abstract access to HAL stream via Source in RecordThread\n  Move PlaybackThread::Track::writeFrames to PatchRecord\n  audioflinger: Add tracing of buffer frames to PatchTrack/Record\n  libaudioprocessing: Extract vendor-available part of AudioMixer\n  AudioMixer: Cleanups\n  libaudioprocessing: Trivial dependency cleanups\n"
    },
    {
      "commit": "48f1d4579f9fe1cd6ff672fe9daa27fec83d82c7",
      "tree": "7958f3d8e8f59dbbcc0474cf84ddae8bc889ba35",
      "parents": [
        "e6eb348b793736f1f4e441b53167d0c09e614f6b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 01 16:52:14 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 16:00:03 2019 -0700"
      },
      "message": "Use PassthruPatchRecord for DIRECT to DIRECT connections\n\nWhen both input and output connected by a software patch\nare in \u0027DIRECT\u0027 mode (no framework processing), use\nPassthruPatchRecord as it helps to reduce the latency\nsignificantly by avoiding intermediate buffering.\n\nRemove \u0027std::nothrow\u0027 from tracks creation in PatchPanel\nfor consistency with other code.\n\nBug: 117564323\nTest: with MSD module\nMerged-In: I52ec5b02a207548ebc4073c1033e396f444c041c\nChange-Id: I52ec5b02a207548ebc4073c1033e396f444c041c\n"
    },
    {
      "commit": "e6eb348b793736f1f4e441b53167d0c09e614f6b",
      "tree": "d0abca0d2c30e2279a6e631a5c25b4430b7c73e9",
      "parents": [
        "af28887c617eca259444f743ef83eda85d52d31e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 25 14:05:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 15:59:52 2019 -0700"
      },
      "message": "Add PassthruPatchRecord for low latency software patches\n\nImplement a subclass of PatchRecord that uses PatchTrack\u0027s\nthread for reading from HAL. This eliminates the need for\nbuffering that adds latency.\n\nThe only modification needed for PatchTrack is to indicate\nunlimited amount of available frames to the playback thread.\nThis is to prevent PatchTrack from being deactivated by\nDirectOutputThread due to lack of frames available.\n\nRecordThread believes it reads audio data on its thread,\nand manages timestamps as usual. The data that it \"reads\"\nand passes to PassthruPatchRecord is discarded by the latter.\n\nBug: 117564323\nTest: with MSD module\nMerged-In: I376656e3c791e91e2196331ecdf2b425697c4e18\nChange-Id: I376656e3c791e91e2196331ecdf2b425697c4e18\n"
    },
    {
      "commit": "af28887c617eca259444f743ef83eda85d52d31e",
      "tree": "d1885e5d79cd7021a89276e4ebe7f81f2fd8ab73",
      "parents": [
        "d368d9166ea7df77479a2908e3a7dbf4c5f21c12"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 25 13:05:02 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "Abstract access to HAL stream via Source in RecordThread\n\nThis allows to replace direct reading from HAL with obtaining\naudio data from another source.\n\nIt should be possible to encapsulate reading from FastCapture\nin the same manner, but it\u0027s not required for direct inputs.\n\nTest: make\nMerged-In: I3f005583410cc9c5d4b07c127d95e236abb4a85f\nChange-Id: I3f005583410cc9c5d4b07c127d95e236abb4a85f\n"
    },
    {
      "commit": "d368d9166ea7df77479a2908e3a7dbf4c5f21c12",
      "tree": "051128854a67d74eee4d073b113b2b76ac6cf681",
      "parents": [
        "5269849effaa40a96ccffc214efaf804f3378bd0"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 25 14:59:54 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "Move PlaybackThread::Track::writeFrames to PatchRecord\n\nThis code logically belongs to PatchRecord because it emulates\nobtaining recorded data from a client.\n\nTest: make\nMerged-In: Icba4e33d9d0ca57e6ad964aaf3209e7db766f284\nChange-Id: Icba4e33d9d0ca57e6ad964aaf3209e7db766f284\n"
    },
    {
      "commit": "5269849effaa40a96ccffc214efaf804f3378bd0",
      "tree": "1801581cde4d446ca5e56b9fb8012a81be9659e7",
      "parents": [
        "32f0d1689bd2eea6f43d7fb53faaedc23bd101d7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 04 11:38:47 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "audioflinger: Add tracing of buffer frames to PatchTrack/Record\n\nSeeing requested / obtained buffer frame counts in trace\nhelps to identify discontinuities in software patch pipeline.\n\nThere is no need to trace requested frame count for PatchRecord\nas it always requests as much as possible (\"-1\" frameCount).\n\nBug: 117564323\nTest: with software patch active,\n      external/chromium-trace/systrace.py audio\n\nMerged-In: I78400f6cc1d1940b3290fb23bb1aacfbffe042e5\nChange-Id: I78400f6cc1d1940b3290fb23bb1aacfbffe042e5\n"
    },
    {
      "commit": "32f0d1689bd2eea6f43d7fb53faaedc23bd101d7",
      "tree": "3144c04d2bba1d717b30fe54fb4e4f08c478f982",
      "parents": [
        "a4f00e2aeadc9dc5c2f4970cd61ace72438136d4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jul 30 14:42:32 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "libaudioprocessing: Extract vendor-available part of AudioMixer\n\nSplit AudioMixer into the base part which doesn\u0027t rely on\nthe framework and can be used in vendor code and the derived part\nwhich is intended to be used by Audioflinger.\n\nTest: A/B compare output from test scripts, manual testing on the phone\nMerged-In: I24c390f67f20baa8109902099359ca6e34eebcfd\nChange-Id: I24c390f67f20baa8109902099359ca6e34eebcfd\n"
    },
    {
      "commit": "9b6599e1e10232e9c6e67e1d6d26265b8e8da885",
      "tree": "2543d4ef40ca7a67df0f493acf071cb773af7306",
      "parents": [
        "52a42dde3627544fabc6691afcc67df73ed6b5e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 29 15:23:21 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "libaudioprocessing: Trivial dependency cleanups\n\n- Remove unused dependencies on libnbaio and libnblog;\n\n- Move dependencies on libaudiohal and libsonic to libaudioprocessing\n  as AudioMixer implementation does not use them.\n\nTest: make\nMerged-In: I258a450725bdacb4fcf437b6f86582d51d40e622\nChange-Id: I258a450725bdacb4fcf437b6f86582d51d40e622\n"
    },
    {
      "commit": "86903e065d2d592fa34b57a717c3859c68d3435d",
      "tree": "dbd47d0af3003b0e5848779bdd619345916535aa",
      "parents": [
        "4f0a23d0dc08aa553389f17ab7e3f89fc6125496"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jul 11 14:55:16 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Oct 03 14:22:02 2019 -0700"
      },
      "message": "AudioPolicy: do not cap a11y volume during call screening\n\n  Add accessibility playback as exemption for volume capping\nduring call screening.\n\nBug: 133879660\nTest: enable Talkback, receive a call, screen it, touch responses icons,\nverify labels are read\n\nChange-Id: I661a544261ef57e439b3eb8cf3d1dde1c31ac303\nMerged-In: I661a544261ef57e439b3eb8cf3d1dde1c31ac303\n"
    },
    {
      "commit": "4f0a23d0dc08aa553389f17ab7e3f89fc6125496",
      "tree": "2861f8e2557372d061486e9478248b85387d8c11",
      "parents": [
        "ad71d4238911260f0a9733b799420534ec095064",
        "55b259cf5ec16df77b52206e8209f5df2fc214c5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 20:03:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 03 20:03:44 2019 +0000"
      },
      "message": "Merge \"Remove libmediadrm symlinks\""
    },
    {
      "commit": "ad71d4238911260f0a9733b799420534ec095064",
      "tree": "ad37557542330c7ed28f95f9308836130db61427",
      "parents": [
        "5a6a5a9b8223473f35c4486c0b3c8f2335e35b6f",
        "138b0a3840db6207654d8a9b3d88a383b100b9b0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 03 19:44:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 03 19:44:44 2019 +0000"
      },
      "message": "Merge changes from topic \"rename-stream-connect\"\n\n* changes:\n  Restore stream [dis]connect parameters in deprecated state\n  Fix the name of the constant for device [dis]connect parameter\n"
    },
    {
      "commit": "bb3b160486da21dab7611de44c85ad85e73e69c9",
      "tree": "266b8068d8e1714bb4b4100d2e31c0a95cc9e16c",
      "parents": [
        "3e9dd76e813cf04c9dd35a8c2e813c174e5b435e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 08 15:28:43 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Oct 02 16:31:34 2019 -0700"
      },
      "message": "Fix the name of the constant for device [dis]connect parameter\n\nDuring the transition to Treble, \"device connect\" / \"disconnect\"\nparameter was erroneously attributed to audio streams. This\nissue got fixed in Audio HAL V4.0, but AudioParameter file\nwas still using incorrect name for the constant.\n\nTest: make\nChange-Id: I4056ad9e98af6dadd017d22bc4bde031cac75631\nMerged-In: I4056ad9e98af6dadd017d22bc4bde031cac75631\n"
    },
    {
      "commit": "27b5c0d7a18b49df1e27cf499a3a41618e5027b7",
      "tree": "7681cee96f3340f55826f6a7c9b662b742e9759a",
      "parents": [
        "3e9dd76e813cf04c9dd35a8c2e813c174e5b435e"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Oct 02 15:46:20 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Oct 02 23:04:07 2019 +0000"
      },
      "message": "Cast enum to uint32_t before comparing with AUDIO_MODE_CNT\n\nAUDIO_MODE_CNT falls outside of the enum range, the comparison emits\ntautological-constant-out-of-range-compare warning.\n\nTest: presubmit\nChange-Id: Iacab29a79219048868d390dbe08e70aba22e9cc5\n"
    },
    {
      "commit": "5b023ebc681f8b41da3a862d161453931a01704f",
      "tree": "238e7b56a3de805a8b37d39a5e91d40ad2862d54",
      "parents": [
        "e9ad58533c38be8ec0f7c9ebd3b2e6e850354f82"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@quicinc.com",
        "time": "Wed Jul 03 11:20:36 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Oct 02 10:18:41 2019 -0700"
      },
      "message": "audiopolicy: add null pointer check for primary hw\n\nWhen sound card detection fails, primary HW cannot be opened.\nadd null pointer check to avoid further crashes in audioserver.\n\nBug: 136060200\nTest: make\nauthored-by: Weiyin Jiang \u003cwjiang@codeaurora.org\u003e\nChange-Id: Ief07a36ca8aed0e6013d533bd0aa66e122e3070c\nMerged-In: Ief07a36ca8aed0e6013d533bd0aa66e122e3070c\n"
    },
    {
      "commit": "e9ad58533c38be8ec0f7c9ebd3b2e6e850354f82",
      "tree": "e1055eb7179f91c324056d7e8354d879026013f7",
      "parents": [
        "8154567f892ef93cbaad3def2a98d6eee4425fa5",
        "97a4718ab9f51476ea519b1ee6b70389806c1ddc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 02 05:19:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 02 05:19:43 2019 +0000"
      },
      "message": "Merge \"av: Add AUDIO_OUTPUT_FLAG_MMAP_NOIRQ flag.\""
    },
    {
      "commit": "8154567f892ef93cbaad3def2a98d6eee4425fa5",
      "tree": "bd52089cc6eccadf0f2067948781893d9b67b4c0",
      "parents": [
        "130e1d19c84caa907cdbf90a9266cd9a0c10fe93",
        "f14e77fef40420ac18d066f0de0486803b941742"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 02 02:39:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 02 02:39:23 2019 +0000"
      },
      "message": "Merge \"SpdifStreamOut: Support AUDIO_FORMAT_E_AC3_JOC\""
    },
    {
      "commit": "97a4718ab9f51476ea519b1ee6b70389806c1ddc",
      "tree": "f7e5465ed6bc2154f1e5321b5d7a86051d383fd0",
      "parents": [
        "a43fcd7ed6b1cc8930e2c3d8416b87cb8e9e02e4"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@quicinc.com",
        "time": "Wed Jul 03 11:15:33 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 01 17:09:49 2019 -0700"
      },
      "message": "av: Add AUDIO_OUTPUT_FLAG_MMAP_NOIRQ flag.\n\nAdd AUDIO_OUTPUT_FLAG_MMAP_NOIRQ flag in the relavant flags to check\nfor if the relavant profiles are present or not\n\nBug: 136493985\nTest: make\nauthored-by: Samyak Jain \u003csamyjain@codeaurora.org\u003e\nChange-Id: I8b8b9fdfca2bb6e5f824f3b79ac42b7de5545706\nMerged-In: I8b8b9fdfca2bb6e5f824f3b79ac42b7de5545706\n"
    },
    {
      "commit": "55b259cf5ec16df77b52206e8209f5df2fc214c5",
      "tree": "29989150d2cfb026f11ec5d43edb8116442e7311",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 01 13:43:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\nMerged-In: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "61e07e3f03c62f39a4b88e761df8c5614474fb31",
      "tree": "8daf074c08d628b660884ed2c9269acf95a3ab3b",
      "parents": [
        "839cd0691bd3265343e87fbb9545ed27319b99c1"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 01 15:07:19 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 01 10:54:50 2019 -0700"
      },
      "message": "AudioPolicyManager: Handle error from setInputDevice in startInput\n\nThe error must not be ignored as otherwise the Java layer\nthinks that recording has started successfully.\n\nBug: 136279123\nTest: reproduce AudioRecordingConfigurationTest failure on cuttlefish,\n      check test failure output, the failure must be\n      \"junit.framework.AssertionFailedError: expected:\u003c3\u003e but was:\u003c1\u003e\"\n\nChange-Id: I82bc3a43bf679cfb03d4246d07615d3fd4dac409\nMerged-In: I82bc3a43bf679cfb03d4246d07615d3fd4dac409\n"
    },
    {
      "commit": "f14e77fef40420ac18d066f0de0486803b941742",
      "tree": "1d2605f264d85476362829da612769e591ce2c8f",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Thu Mar 23 15:52:01 2017 +1100"
      },
      "committer": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Tue Oct 01 10:57:17 2019 +1000"
      },
      "message": "SpdifStreamOut: Support AUDIO_FORMAT_E_AC3_JOC\n\nTest: build\nChange-Id: Iac3dc90e136d625ecbd95eea5c2eea13fc938657\n"
    },
    {
      "commit": "839cd0691bd3265343e87fbb9545ed27319b99c1",
      "tree": "318447c31b0b21907335d95e8bef2ec9470eac3d",
      "parents": [
        "5158f491c60074b061b00d7018b6b889d664112e",
        "a81b20a80ae556a4b93199c617a8fe467a4a6a3a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 27 22:24:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 27 22:24:34 2019 +0000"
      },
      "message": "Merge \"Audio policy: fix HwModuleCollection::getDeviceDescriptor\""
    },
    {
      "commit": "3230ed8235a39adef82d7c3873e6a87007799ff8",
      "tree": "158042769963aa698a8fbd240d2abfc352220c3d",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 12:12:46 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\nMerged-In: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "a81b20a80ae556a4b93199c617a8fe467a4a6a3a",
      "tree": "895b1a87d62e52242838470508e5a41104dc497d",
      "parents": [
        "706d9606bee174bc1d087fa316e0d7d66605b417"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 02 09:28:16 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 26 17:51:57 2019 -0700"
      },
      "message": "Audio policy: fix HwModuleCollection::getDeviceDescriptor\n\n  The deprecated method AudioManager.isBluetoothA2dpOn() calls\ngetDeviceConnectionState on APM with an empty address, which\ncaused HwModuleCollection::getDeviceDescriptor to set an empty\naddress on the DeviceDescriptor for the currently connected\nA2DP device. This method is called by MediaRouter.\n  When the address was reset, the java listener for audio device\nconnection monitoring was reporting the connection of an A2DP\ndevice with an empty address, which in turn caused AvrcpManager\nto behave as if the audio device connection failed.\n  If MediaRouter called isBluetoothA2dpOn() before AvrcpManager\nreceived its called for device connection, the error would occur.\n\nBug: 132416679\nTest: call isBluetoothA2dpOn() and check for valid address in dumpsys media.audio_policy\nTest: atest AudioServiceHostTest#testInjectForRecord ; atest AudioHostTest ; atest AudioPlaybackCaptureTest\nChange-Id: I1370edbbca46657506a990855d06a176f07c54d3\nMerged-In: I1370edbbca46657506a990855d06a176f07c54d3\n"
    },
    {
      "commit": "e13c679e4afba66097018516eba9ea15d15bbc7a",
      "tree": "216ecb3fe033354b1d07ce88aa8ccecb15f4c3fa",
      "parents": [
        "3e0b02e336f3b5d59c5162e743d10d86be63c66b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue May 14 10:32:51 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Sep 25 14:59:42 2019 -0700"
      },
      "message": "audiopolicy: Load the engine library dynamically\n\nAndroid provides 2 audio policy engines:\nlibaudiopolicyenginedefault and\nlibaudiopolicyengineconfigurable. This change makes the engine\nto be loaded dynamically based on the configuration (currently\nthe engine name is hardcoded into AudioPolicyConfig). Dynamic\nloading allows building and installing of both libraries without\nany conflicts.\n\nTechnical changes:\n\n - AudioPolicyManagerInterface renamed to EngineInterface\n   for clarity;\n\n - For the purpose of dynamic loading, APM does not depend\n   anymore on the EngineInstance class. The class got removed\n   from the default AP engine, but left in the configurable engine\n   because it is also used by its plugins;\n\n - Added EngineLibrary class to encapsulate dynamic loading\n   of the AP engine. The class name EngineInstance is repurposed\n   for a smart pointer to EngineInterface;\n\n - services/audiopolicy/managerdefault/Android.mk converted\n   into Android.bp;\n\n - Added engine loading failure test;\n\nBug: 132639720\nTest: sanity tests for audio; audiopolicy_tests\nChange-Id: I0581569a172f810e030aec879225e817bfa7851a\nMerged-In: I0581569a172f810e030aec879225e817bfa7851a\n"
    },
    {
      "commit": "fd5b2cf8cd6073ef663edf7f87bff9573a97bf64",
      "tree": "7f095e5dfd7f440aa132534d4eef4fa616fc1397",
      "parents": [
        "d3ce88c4296b7019e20a9db5a87190face582b88"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 10 14:15:52 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Sep 23 17:13:04 2019 -0700"
      },
      "message": "audiopolicy: Remove legacy audio_policy configuration\n\nRemove the \"template\" configuration file and the header file.\n\nBug: 132435217\nTest: make\nChange-Id: I0b8ae921ac046e11b020d5766a60f9b341e1d6ee\nMerged-In: I0b8ae921ac046e11b020d5766a60f9b341e1d6ee\n"
    },
    {
      "commit": "d3ce88c4296b7019e20a9db5a87190face582b88",
      "tree": "2a60d9b0f1cbd1994fa16730d17eef413b63c628",
      "parents": [
        "09df62407d61b4a6172d4d122aa1676028a88f14"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 10 11:26:52 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Sep 23 17:10:29 2019 -0700"
      },
      "message": "Remove usages of USE_XML_AUDIO_POLICY_CONF\n\nThe usages were only checking that the property is set\nto catch attempts to update to Q while still using legacy\nconfigurations.\n\nBug: 132435217\nTest: build various devices\nChange-Id: Ib8bda8ab7f791ac5cd3875816de46a42f0a4cbb6\nMerged-In: Ib8bda8ab7f791ac5cd3875816de46a42f0a4cbb6\n"
    },
    {
      "commit": "1f8da412814ed205572d6e05cb5b55c3661ab312",
      "tree": "8c724ec47d378e79b0d4255c2cd0a5c9b1111ae1",
      "parents": [
        "bac928872a3f49ad69e9581c4f60099c21108213"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 11 12:57:42 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 11 12:57:42 2019 -0700"
      },
      "message": "audiopolicy: Match DIRECT and MMAP_NOIRQ flags exactly in IOProfile\n\nPrevent selection of DIRECT and MMAP_NOIRQ output profiles\nif these flags were not requested.\n\nTest: atest audiopolicy_tests\nChange-Id: I6940caed519b6237ea3038e646a84e4403a0c1ed\nMerged-In: I6940caed519b6237ea3038e646a84e4403a0c1ed\n"
    },
    {
      "commit": "bac928872a3f49ad69e9581c4f60099c21108213",
      "tree": "db277b1faf3c35ed3002e948e9b157ba167ba9ec",
      "parents": [
        "05a08644bfe5cd979076d3358ffe9db5bf474ada",
        "edad5db98d9014f7cb4cd2654bfb6c4b1ba2df80"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 11 18:11:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 11 18:11:06 2019 +0000"
      },
      "message": "Merge \"Require HW AV sync flag match for compatible output IOProfile\""
    },
    {
      "commit": "edad5db98d9014f7cb4cd2654bfb6c4b1ba2df80",
      "tree": "ca4e15f6ba03f5a1194c9b35c484ffc24d21c08e",
      "parents": [
        "b0d7fba6e5398f3bb5373afb13d8a5be2234355a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 09 10:39:56 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 09 12:34:33 2019 -0700"
      },
      "message": "Require HW AV sync flag match for compatible output IOProfile\n\nPreviously, Audio HAL implementers need all HW A/V sync profiles\ndeclared after non HW A/V sync profiles in their audio policy\nconfigurations, otherwise a HW A/V sync profile match could be\nfound for a non HW A/V sync (e.g. direct only) request, the\nAudio HAL output stream would be opened with the HW A/V sync\nflag, and Audio HALs typically fail to process the stream as\nthey are setup to parse in-band HW A/V sync headers (even if\nthey don\u0027t receive keyStreamHwAvSync AudioParameter).\n\nTest: atest audiopolicy_tests\n  AudioPolicyManagerTVTest#MatchOutputNoHwAvSync fails w/o IOProfile change,\n  passes with the change.\nBug: 140447125\n\nMerged-In: Icfc806497b5b23013e63621a585c28d1d7a9882a\nChange-Id: Icfc806497b5b23013e63621a585c28d1d7a9882a\n"
    },
    {
      "commit": "af905470168892078ca85cbd77c844b07f46d1d7",
      "tree": "02acf167a294e18f49a8cf075aa6ee7eb21fbf68",
      "parents": [
        "1210f45ea764f0d186e55a19c068283a4ff6cfac"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Sep 06 12:08:49 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Sep 06 12:08:49 2019 -0700"
      },
      "message": "Remove libhwbinder/libhidltransport deps\n\nSince these were combined into libhidlbase.\n\nBug: 135686713\nTest: build only (libhwbinder/libhidltransport are empty)\nChange-Id: I6cc85a91afb603e31b85090917f9f3b59d82a4d1\n"
    },
    {
      "commit": "c9e23f4554e079c9ecc6933797e6661767a4a469",
      "tree": "e98822a4944bad07b5de22c21b9df9fdf2162e4b",
      "parents": [
        "f24b76692d9b4c23e7f9c3a1c817294cfe04b642",
        "cee606de904204e96447ae9010ab40bb151bf3bf"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 23 06:45:13 2019 +0000"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 23 06:45:13 2019 +0000"
      },
      "message": "DO NOT MERGE - Merge build QP1A.190711.019 into stage-aosp-master\n\nBug: 139893257\nChange-Id: I4758e749be0f3d0431664ed31e6d754953eb91a1\n"
    },
    {
      "commit": "3ca47ba98d2286610e7b97c41e6418eb6441ba7c",
      "tree": "462f5e140ceb566e3978ffa9dabad4b33050b452",
      "parents": [
        "1dd33eacee80d6934dd541eb4703f17e18d97c55",
        "b7a4a3c49214617fd928de1e11c7ff49e4a68815"
      ],
      "author": {
        "name": "Wenfeng Sun",
        "email": "wenfeng.sun@mediatek.com",
        "time": "Wed Aug 21 14:48:06 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 21 14:48:06 2019 -0700"
      },
      "message": "Merge \"Fix OffloadThread VolumeShaper issue\"\nam: b7a4a3c492\n\nChange-Id: Ia166a3a4c036a0400b0220dd20d54aacbf286abb\n"
    },
    {
      "commit": "b7a4a3c49214617fd928de1e11c7ff49e4a68815",
      "tree": "e04568fcbd2d29fcbee242342e8fdfd4fe322408",
      "parents": [
        "e9239dbe79ebaa93dda6d734cc80230736a17918",
        "7945833b714265830792fd19f5b7618fe1a4cb10"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 21 20:41:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 21 20:41:40 2019 +0000"
      },
      "message": "Merge \"Fix OffloadThread VolumeShaper issue\""
    },
    {
      "commit": "7945833b714265830792fd19f5b7618fe1a4cb10",
      "tree": "7d2fe5c61b3f02935439c37270aeb2926750c517",
      "parents": [
        "e8a9a230ac79a42ccd629f5fcfbdadb4ed60f872"
      ],
      "author": {
        "name": "Wenfeng Sun",
        "email": "wenfeng.sun@mediatek.com",
        "time": "Wed May 29 20:12:43 2019 +0800"
      },
      "committer": {
        "name": "chien elvis",
        "email": "elvis.chien@mediatek.com",
        "time": "Wed Aug 21 08:27:51 2019 +0000"
      },
      "message": "Fix OffloadThread VolumeShaper issue\n\nBug: 134042971\n\nTest: NTS case AUDIO-026-DDP51-TC3-NonTunnel / Tunnel verify volume starts at 0 when fading in\n\nChange-Id: I8ee4444e3ceb2d8a0ceb979fada10c644b5db35c\n"
    },
    {
      "commit": "e41a230b5621d84b4bbeb84d53f78a682975ca19",
      "tree": "f1a4c1f6265f65ee813278fb443585da4ab20e16",
      "parents": [
        "72d2412c271237aa6dfa2a75c41c8c0f69999b34",
        "fa496f56a19dd97d8d289b24505eb413a3a92937"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Aug 14 12:04:06 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Aug 14 12:04:06 2019 -0700"
      },
      "message": "DO NOT MERGE - Merge qt-dev-plus-aosp-without-vendor (5713463) into stage-aosp-master\n\nBug: 134405016\nChange-Id: I7e928492f14d661df6754935e21dc3e2226b2770\n"
    },
    {
      "commit": "cacc308548e59953581e51af5ca3c45324f0b49a",
      "tree": "d599e9673010f1e5a5afab202180b8d5e36203ac",
      "parents": [
        "646a332acfc525e94e6c1898544201052efa4fc8",
        "a22302ec9a1fd4cbeb06c8e3a9d36a54805d8f21"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Aug 13 16:36:36 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Aug 13 16:36:36 2019 -0700"
      },
      "message": "DO NOT MERGE - Merge pie-platform-release (PPRL.190801.002) into master\n\nBug: 139369544\nChange-Id: Id72493f634980e5bbb960f97919ca727d2cbdd85\n"
    },
    {
      "commit": "42e1130e8be8b2527a8d17b1748592ae004e85c0",
      "tree": "61380db6ef5d30460357c8af0b962bed4c5d071a",
      "parents": [
        "c3af5ba966b7aaddfd96bac149f04a4f43c49f9c",
        "0db4d66d132006ab72f41ad76c7358e5cbae0a32"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Jul 23 11:11:10 2019 +0200"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 23 10:48:45 2019 +0000"
      },
      "message": "resolve merge conflicts of 0db4d66d132006ab72f41ad76c7358e5cbae0a32 to stage-aosp-master\n\nTest: I did not test this\nMerged-In: If93118ed2c266faf2964abf21e17b0b13df493d2\nChange-Id: Iaba9829407bd2b625e91ac7a4c8bc8941fa7d569\n"
    },
    {
      "commit": "03e9a8f803f215af374429b500bb18e9df5e439a",
      "tree": "22a6d04b5f0ac9b8d1c73b32dd02e99a698bc7ec",
      "parents": [
        "c62ef7905d27ade434e401892839dd9b9c94bf15"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 11 15:14:50 2019 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jul 22 13:46:33 2019 +0000"
      },
      "message": "Remove unnecessary use of external/icu/icu4c/source/common\n\nThis is no longer necessary because the headers are exported by the\nlibicuuc library which is a dependency of libxml2.\n\nBug: 134379140\nChange-Id: I01dfe41c6584d71de47a5a76e1f7cc718083ca8c\nTest: m libaudiopolicyengine_config\nExempt-From-Owner-Approval: cherry pick from qt-dev-plus-aosp.\n(cherry picked from commit 2142c72cd74f0b303a676192f2d9d1285dbc2bda)\n"
    },
    {
      "commit": "d81a84a886e13c61a613b35e4a998ad8e61a0d8f",
      "tree": "e1ca28f807ed6d384e3526de1f0f2049548f17b6",
      "parents": [
        "10b5ef5d180bc5b0a2116f112b87153b16c3de00"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Jul 17 13:55:16 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Jul 18 15:25:14 2019 +0200"
      },
      "message": "Split libaaudio.so to internal and NDK part\n\nThis change moves almost everything from libaadio.so to\nseparate libaaudio_internal.so library. This is done to\navoid exporting symbols which apps are not allowed to use\nbut have them available for platform libraries by exporting\nthem from libaaudio_internal.so\n\nBug: http://b/69603741\nTest: make\nMerged-In: If93118ed2c266faf2964abf21e17b0b13df493d2\nChange-Id: If93118ed2c266faf2964abf21e17b0b13df493d2\n"
    },
    {
      "commit": "b5dc2d1e3653d9f268a35bf8176a003217b38b6c",
      "tree": "fe812669d009ddb4c7148d791a65a4961b9c533c",
      "parents": [
        "7879fa986aba0570276adf4d1554d4813e85ec12"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 13 09:32:47 2019 -0700"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Thu Jul 18 04:10:01 2019 +0000"
      },
      "message": "audio policy: fix mmap capture disconnect\n\nForce close mmap input streams when a capture device is\nconnected to force disconnect callback to client.\n\nBug: 137311579\nTest: capture with oboetester and connect headset\nChange-Id: Iafe939247fa565e2424b40afacdb79a31b8955b7\n(cherry picked from commit 7bd2939d6ce0574f01771b8569b1d76faf2b09b7)\n(cherry picked from commit c833ccc86b8af68cfb80de182309be6d4eaac860)\n"
    },
    {
      "commit": "9c4eec2bb29cf9394ace8bbbae0752c170bab5f6",
      "tree": "30074eb0a49e8169f46b1b7e1c7f3f5b136d4248",
      "parents": [
        "8a2edf737caabf3f8a3b6019124ee8527f82bcd5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 02 15:59:07 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 09 19:04:24 2019 +0000"
      },
      "message": "Hold onto linked binder.\n\nunlinkToDeath is no longer required, (this change in behavior is to\navoid leaks) so holding onto ActivityManager here (still calling\nunlinkToDeath to avoid a log, but may for instance remove all\nunlinkToDeath calls in the future).\n\nExempt-From-Owner-Approval: approval received on AOSP CL, only\n    whitespace difference here.\n\nBug: 134576445\nTest: boot\nChange-Id: I273f77aac2b80ba9be70197cc3842f83a11bbd1c\nMerged-In: I273f77aac2b80ba9be70197cc3842f83a11bbd1c\n(cherry picked from commit 2f34814d1b8f1e62a4f22511c7cb93016d213bff)\n"
    },
    {
      "commit": "2f34814d1b8f1e62a4f22511c7cb93016d213bff",
      "tree": "f117fac9b7834dba35e32b22788d75c0c2482588",
      "parents": [
        "964a74820baeb013430730f8f852690bc5a9183c"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 02 15:59:07 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jul 08 21:36:57 2019 +0000"
      },
      "message": "Hold onto linked binder.\n\nunlinkToDeath is no longer required, (this change in behavior is to\navoid leaks) so holding onto ActivityManager here (still calling\nunlinkToDeath to avoid a log, but may for instance remove all\nunlinkToDeath calls in the future).\n\nExempt-From-Owner-Approval: approval received on AOSP CL, only\n    whitespace difference here.\n\nBug: 134576445\nTest: boot\nChange-Id: I273f77aac2b80ba9be70197cc3842f83a11bbd1c\n"
    },
    {
      "commit": "c40aec214c0f98bb7ab6fc58482e41dc3eec937e",
      "tree": "da414540b026964ea49f7bdf0b8591e7173840f4",
      "parents": [
        "b9435341b58114e8da390bd5579adfd745a731d1",
        "ae59ab3159097828a42e6cef4b35891f9e75a3ff"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Jul 03 18:48:36 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 03 18:48:36 2019 -0700"
      },
      "message": "Merge \"Camera: fix format overriden logic\" into qt-dev\nam: ae59ab3159\n\nChange-Id: I337cb3a7981f73f18e86ca1a7847a2a9657b2a1d\n"
    },
    {
      "commit": "6a9fc9ee546ebda6d8dbd4dfd2f1945dab158708",
      "tree": "0a74e26194a2a4a8dc5708b6090796bb69aadb7d",
      "parents": [
        "4c76131a07107e12df9344366b3ac8a0035e1cb6"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 02 15:59:07 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jul 02 17:25:10 2019 -0700"
      },
      "message": "Hold onto linked binder.\n\nunlinkToDeath is no longer required, (this change in behavior is to\navoid leaks) so holding onto ActivityManager here (still calling\nunlinkToDeath to avoid a log, but may for instance remove all\nunlinkToDeath calls in the future).\n\nBug: 134576445\nTest: boot\nMerged-In: I273f77aac2b80ba9be70197cc3842f83a11bbd1c\nChange-Id: I273f77aac2b80ba9be70197cc3842f83a11bbd1c\n"
    },
    {
      "commit": "9066766c0f6fc1c9282023070de2abacaa25a6df",
      "tree": "4484bcdfea9726e072ec7c56eb4317950ff742f8",
      "parents": [
        "9694a99645a42c23d489ce605e5cea4fdc0e1936"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jul 01 15:45:00 2019 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jul 02 11:00:01 2019 -0700"
      },
      "message": "Camera: fix format overriden logic\n\nOriginal logic was comparing an overridden format int, switch\nto use a const original format.\n\nTest: partner device, Pixel 3 CTS\nBug: 136456900\nChange-Id: I03d6e190770ee05e40446c417e323f546fdc2689\n"
    },
    {
      "commit": "253e8188fe642cefc178760d313f8fa03b6dfddb",
      "tree": "52e48a9324477625216b61368c29ceef2a9709ac",
      "parents": [
        "0fdb6247dcbe318605489ba70c51a9c785015b7e",
        "62a6173c5443f9726b914ede43b3c2e0fd643128"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri Jun 21 20:36:45 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 21 20:36:45 2019 -0700"
      },
      "message": "Merge \"Camera: Destroy jpeg handle in \u0027encodeGrayscaleJpeg\u0027\" into qt-dev\nam: 62a6173c54\n\nChange-Id: I64715d38b74b6d9a082a560194a8336d6f4e4633\n"
    },
    {
      "commit": "62a6173c5443f9726b914ede43b3c2e0fd643128",
      "tree": "932fd27e4e895ba76a9b98623fedf4dc63ed25ca",
      "parents": [
        "a426cf1c3d42d2e17212bd0aa5fbfe7517ad3284",
        "94c98021b7e0ea614d92a1d1ea8bf163de9136bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 22 03:16:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 22 03:16:26 2019 +0000"
      },
      "message": "Merge \"Camera: Destroy jpeg handle in \u0027encodeGrayscaleJpeg\u0027\" into qt-dev"
    },
    {
      "commit": "0fdb6247dcbe318605489ba70c51a9c785015b7e",
      "tree": "b7b0afd0a651d1c1a72dd792ad0841ca1b53e9bb",
      "parents": [
        "9801ee51b68e748128ce9c0ede680e333219ffa6",
        "a426cf1c3d42d2e17212bd0aa5fbfe7517ad3284"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 21 10:34:49 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 21 10:34:49 2019 -0700"
      },
      "message": "Merge \"audio policy: mute call RX when SCO volume is 0\" into qt-dev\nam: a426cf1c3d\n\nChange-Id: Ia9cbcc56aef9bad2cbccfda4c649c8a39492c13f\n"
    },
    {
      "commit": "a426cf1c3d42d2e17212bd0aa5fbfe7517ad3284",
      "tree": "28688ba181fa2c42a44e113fa7be1e6d5a83483e",
      "parents": [
        "239ff11cdb463c4d1559f9a1a31c041b94c8b921",
        "fad001d05d2a928d6196978ba94adf95f0297244"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 21 17:10:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 21 17:10:00 2019 +0000"
      },
      "message": "Merge \"audio policy: mute call RX when SCO volume is 0\" into qt-dev"
    },
    {
      "commit": "9801ee51b68e748128ce9c0ede680e333219ffa6",
      "tree": "a8b5deb168bd4511633d78004e5170eae9b5b7c5",
      "parents": [
        "4e18cd505bd7d904b93fb4565123cc06184e9693",
        "239ff11cdb463c4d1559f9a1a31c041b94c8b921"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jun 20 15:25:12 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 20 15:25:12 2019 -0700"
      },
      "message": "Merge \"Enable count-based expiration for media metrics\" into qt-dev\nam: 239ff11cdb\n\nChange-Id: Ib4060339a4eef0142ee5796f843d43c4d1edcb3b\n"
    },
    {
      "commit": "23f4d6cc618576ac53da4ce9e761e9bee3109333",
      "tree": "96fa896900c3cf2aaab10f74d91cc95cf38dd812",
      "parents": [
        "0963d443b054ad3a83afbee1035f2d7a9db6086d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jun 20 10:16:37 2019 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jun 20 10:16:37 2019 -0700"
      },
      "message": "Enable count-based expiration for media metrics\n\nin addition to the time-based expiration, enable count based expiration\nand set it to 2000 records, about 5x the daily average. Caps the memory\nfootprint.\n\nBug: 135552978\nTest: boot, enough traffic to force expirations\nChange-Id: Ide96df24b00e8f115905678800c782f29a91bcba\n"
    },
    {
      "commit": "94c98021b7e0ea614d92a1d1ea8bf163de9136bd",
      "tree": "788292b06ccba866f790469bbcbfcb1d762509f8",
      "parents": [
        "a69eacc42ca98e7da08efaac1426c691be0a85b2"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jun 19 09:11:51 2019 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jun 19 13:23:19 2019 -0700"
      },
      "message": "Camera: Destroy jpeg handle in \u0027encodeGrayscaleJpeg\u0027\n\nMake sure \u0027jpeg_destroy_compress()\u0027 is always called\nbefore leaving \u0027encodeGrayscaleJpeg()\u0027.\nAdditionally fix misspelling of \u0027intrinsic\u0027.\n\nBug: 135622974\nTest: atest\ncts/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java#testDynamicDepth\n--generate-baseline\u003d12\nChange-Id: I55c1f86881ba05aac6aac6981df5fcb276c9d4da\n"
    },
    {
      "commit": "21381851138aaf5d631249fe60d55c38d14894fb",
      "tree": "92c458663cc3eade06242596aada6e450d3ff9ed",
      "parents": [
        "65f7c23ff91b2d56132cf6c1945704b95c28ef52",
        "63655808d78f8e6219fd0915671cca7d87363bbc"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jun 14 16:17:59 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 14 16:17:59 2019 -0700"
      },
      "message": "Merge \"libhidltransport users user libhidlbase\" into qt-dev\nam: 63655808d7\n\nChange-Id: I8fc8ccc07a61e9c249dd1694763e8818e83a2b27\n"
    },
    {
      "commit": "63655808d78f8e6219fd0915671cca7d87363bbc",
      "tree": "504a8cf81bf181208b6d0dffe81a42b076aa25ea",
      "parents": [
        "7061679b69cd2b3fa2da058c725b14c2a3672d26",
        "5fee0f2b7c6fc2ac8ca7c908aef25864ce8894a2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jun 14 22:54:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 14 22:54:21 2019 +0000"
      },
      "message": "Merge \"libhidltransport users user libhidlbase\" into qt-dev"
    },
    {
      "commit": "fad001d05d2a928d6196978ba94adf95f0297244",
      "tree": "0875e33154326ff4b05afea3ba315710d4407fc5",
      "parents": [
        "e81a326d90dfce1249917b796f69b48fe1c59971"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 19:17:57 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 14 15:13:32 2019 -0700"
      },
      "message": "audio policy: mute call RX when SCO volume is 0\n\nSet voice volume to 0 when SCO volume index is 0 to\nallow muting RX audio. when index is not 0, voice volume\nis set to max to allow volume control by headset as before.\n\nBug: 111195322\nTest: check call volume with SCO headset\nChange-Id: I90466b01a9899929cd3e6fb1ac0a4985099497fc\n"
    },
    {
      "commit": "1f76f20b2f14b2f08934380c65bf1495e29b969f",
      "tree": "62b9b392be1683c7e2711bac826ea60995845272",
      "parents": [
        "f29ab2dbaaf2635f403be82238b18ad3ff673514"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 05 16:55:28 2019 -0800"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Jun 12 09:54:57 2019 +0000"
      },
      "message": "DO NOT MERGE: audiopolicy: Remove raw pointer references to AudioMix\n\nAudioInputDescriptor, AudioOutputDescriptor, and AudioSession used\nto reference AudioMix instances using a raw pointer. This isn\u0027t\nsafe as AudioMix was owned by AudioPolicyMix, which is not\nreferenced by descriptors.\n\nChange AudioMix* pointers in Audio{Input|Output}Descriptor and\nAudioSession to wp\u003cAudioPolicyMix\u003e which reflects their\nrelationship correctly.\n\nTo ensure that code does not operate on AudioMix instances\nindependently from AudioPolicyMix, and to avoid introducing\na lot of getter / setter methods into AudioPolicyMix, make\nthe latter to inherit AudioMix. This makes sense because\nAudioPolicyMix is essentially a ref-counted version of AudioMix.\n\nBug: 124899895\nTest: build and sanity check on marlin,\n      build marlin with USE_CONFIGURABLE_AUDIO_POLICY :\u003d 1\nMerged-In: Ic508caedefe721ed7e7ba6ee3e9175ba9e8dc23a\nChange-Id: Ic508caedefe721ed7e7ba6ee3e9175ba9e8dc23a\n(cherry picked from commit a306e2a3577d4155345a24e5214f77870f63359b)\n"
    },
    {
      "commit": "cdc2f7cb3480f528d79966044013cea47296deb9",
      "tree": "4deef1c8ff0b99122c8497464282c281af855a5d",
      "parents": [
        "1c23036f6c55e4f38653b330bbebd05fd8fcba17",
        "e81a326d90dfce1249917b796f69b48fe1c59971"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 18:31:59 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 11 18:31:59 2019 -0700"
      },
      "message": "Merge \"audioservice: add RTT mode observer\" into qt-dev\nam: e81a326d90\n\nChange-Id: I9490f8b940629a09cf62cd5211c4f626e2d4079c\n"
    },
    {
      "commit": "e81a326d90dfce1249917b796f69b48fe1c59971",
      "tree": "ff2150258ac552a5ac5d23a626d4821be434cf36",
      "parents": [
        "b365706b2675fcc16eb14d89db5c3736170c7dd5",
        "6ede98f9b3e3e1988f401d79b625ead653027ccc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 12 01:02:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 12 01:02:33 2019 +0000"
      },
      "message": "Merge \"audioservice: add RTT mode observer\" into qt-dev"
    },
    {
      "commit": "6ede98f9b3e3e1988f401d79b625ead653027ccc",
      "tree": "2306e3b551752f70ec01a6d8ed87824743c2ef81",
      "parents": [
        "e0092766d214720c1fd22b8c08ccc7ceeaf4a700"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 14:50:30 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 14:55:25 2019 -0700"
      },
      "message": "audioservice: add RTT mode observer\n\nEnable audio capture by the Assistant when RTT is ON during a call\nsimilarly to when an accessibility service is in the foreground.\n\nAlso remove log when permission checked for hotword\nand audio output capture fail as those checks are now done\nsystematically.\n\nAlso do not check permission to bypass interruption policy if\nbypass flags are not set.\n\nBug: 132976361\nTest: use voice input during a call with RTT enabled.\nChange-Id: Iff45b0816dac889262ec29ea115f74dea4dc6b6d\n"
    },
    {
      "commit": "945e7042a0bc24e4c1e7f0c03aec0dddd9d01af6",
      "tree": "fa1d777b5e53c487c935a849d913622be5f6820c",
      "parents": [
        "20f33e6ffcaa23b485884898bb35e29e81ea34a1",
        "584d868a6bfc0a51ff4c0b6e9ea2b5b9895d3240"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jun 11 10:52:47 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 11 10:52:47 2019 -0700"
      },
      "message": "Merge \"Camera: Compare old and new overrides for finishConfigure\" into qt-dev\nam: 584d868a6b\n\nChange-Id: I0465aa07525c485236a9de4f3d28b70dff3e2eba\n"
    },
    {
      "commit": "584d868a6bfc0a51ff4c0b6e9ea2b5b9895d3240",
      "tree": "dfb8a7c7a03280efa17a995369cd3a2bf6706617",
      "parents": [
        "7a92b009df1f4cc5a98078f1c2808524e237b7bc",
        "f9b4eb9e3f74ee03adccdf471d9e1073b6bc9d8c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 11 17:36:54 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 11 17:36:54 2019 +0000"
      },
      "message": "Merge \"Camera: Compare old and new overrides for finishConfigure\" into qt-dev"
    },
    {
      "commit": "f9b4eb9e3f74ee03adccdf471d9e1073b6bc9d8c",
      "tree": "6b40d02f452498ca27294677f68b11ebac9994ac",
      "parents": [
        "9c8dfd599caf7c8b727b90601da4fc8160d23ab4"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Jun 10 11:06:01 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Jun 10 22:48:33 2019 -0700"
      },
      "message": "Camera: Compare old and new overrides for finishConfigure\n\nWith the new dataSpace/format override logic, during\nfinishConfiguration, we shouldn\u0027t check mDataSpaceOverride flag anymore\nbecause now mDataSpaceOverride will be true for reconfigure.\n\nInstead, we should check if the new override is the same as old\noverride.\n\nTest: testPrepare on HAL device with dataSpace override\nBug: 134800141\nChange-Id: I1ddc258100dfd7e3c2cc86f9e476d8d52c710e3f\n"
    },
    {
      "commit": "cdedbb3824e1a2123b187a9df37f0721b05eeae4",
      "tree": "357582d3fc8216033603525592e500dd9b9b4033",
      "parents": [
        "909d9505e6f23c8781b20ec459d9069c3fb3498e",
        "ed95748f36d6440fad826ca2d01331697c5e4215"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jun 10 17:53:58 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 10 17:53:58 2019 -0700"
      },
      "message": "Merge \"Fix remote-submix not found for MIX_TYPE_RECORDERS LOOPBACK\" into qt-dev\nam: ed95748f36\n\nChange-Id: Ib217638000eb7c50e3488cbc2eb571eb41afd740\n"
    },
    {
      "commit": "ed95748f36d6440fad826ca2d01331697c5e4215",
      "tree": "6df4961c85d7c76fbb6cfaaa48e623d247fd0b81",
      "parents": [
        "e0092766d214720c1fd22b8c08ccc7ceeaf4a700",
        "4e5f402253592726d05f4864b2f30b740abf15fc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 10 23:55:45 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 10 23:55:45 2019 +0000"
      },
      "message": "Merge \"Fix remote-submix not found for MIX_TYPE_RECORDERS LOOPBACK\" into qt-dev"
    },
    {
      "commit": "4e5f402253592726d05f4864b2f30b740abf15fc",
      "tree": "985acb69bb0c83784662238236e2a9bfd4e1adf7",
      "parents": [
        "90d1d53862638210d848ddedef2600aae35337d3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jun 08 02:32:21 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jun 10 14:06:11 2019 -0700"
      },
      "message": "Fix remote-submix not found for MIX_TYPE_RECORDERS LOOPBACK\n\n[Context]\nWhen a LOOPBACK dynamic audio policy mix PLAYER/RECORDER\nis registered, first the REMOTE_SUBMIX device that will be\nused by the app to capture/play respectively is activated.\n\nEg a mix RECORDER (used to inject audio to apps recording),\nwhen registered will activate an OUT_REMOTE_SUBMIX.\n\nThen the app can open a record/playback track on this\nREMOTE_SUBMIX, which will trigger the other end of the pipe\nto be activated.\n\nFollowing this the playback/Record Tracks that match the\nmix will be routed to the IN/OUT REMOTE_SUBMIX.\n\n[Example for an app FUU]\n 1) App FUU register Playback/record mix\n    2) APM activates out/in remote submix\n 3) App FUU opens track to out/in remote submix\n    4) APM activates in/out remote submix\n 5) tracks matching mix are redirected to the out/in remote submix\n\nWhen an OUT_REMOTE_SUBMIX is activated, it tries to check if it matches\na mix, if it does, it saves the output in the mix (in mOutput).\nThis output is then used to find a matching mix output in\ngetOutputForAttr(). If a mix has no output is is considered inactive.\n\nNote that IN_REMOTE_SUBMIX do not save their input in the mix, the\ninput is queried by APM each time in its mAvailableInputDevices.\n\n[Issue]\nThe issue is that in step (2), when an OUT_REMOTE_SUBMIX is\nactivated (thus for a MIX_TYPE_RECORDERS), no mix is matched because the\nmix is of type IN_REMOTE_SUBMIX as it will be used to route AudioTracks\nin step (5).\nThus no mix output is found in getOutputForAttr and the step (3) fails.\n\nThis is a recent regression as previously the type was not checked when\nlooking up for a mix in step (1).\n\nThe Change-Id of the patch that caused the regression is:\nI4dc7f23bef19a7d47afc2998102da07dde41fbca, its sha1 is:\n679172768d86e29a47b9e15dd56776694128cf59\n\n[Workaround]\nFor now, given the release timing, implement a minimal fix that restore\nthe previous behavior for the OUT_REMOTE_SUBMIX output save lookup.\nAka, make sure to query for a IN_REMOTE_SUBMIX mix in step (2).\n\nStep (4) is fine as the mix type is the same as the REMOTE_SUBMIX type.\n\nAs IN_REMOTE_SUBMIX do not attempt to save their output in the mix, no\nissue is present on this code path.\n\nA proper fix needs to be implemented on master, preferably by having the\nsame device save behaviour on both mix type.\n\nBug: 134068143\nTest: Wifi calling call screening\nTest: atest AudioPlaybackCaptureTest AudioHostTest\nChange-Id: I1547948ae412dbdeb2d85cc62bf18f7ac5f1efc0\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "5fee0f2b7c6fc2ac8ca7c908aef25864ce8894a2",
      "tree": "6983a1bf9b3f51ac216509f257719312632acec7",
      "parents": [
        "e0092766d214720c1fd22b8c08ccc7ceeaf4a700"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jun 10 13:35:00 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jun 10 13:35:06 2019 -0700"
      },
      "message": "libhidltransport users user libhidlbase\n\nlibhidltransport symbols are being moved into libhidlbase in order to\noptimize linking/memory usage. libhidltransport will no longer be\nrequired in the future (however removing references to it will come\nseparately).\n\nBug: 134961554\nTest: boot\nChange-Id: Ie8b9b03a53ae1f5672ce2565550768b4bcd321ee\n"
    },
    {
      "commit": "892aa37081d8b98c3a02fc024255f0ce31502483",
      "tree": "64bc266d05940898892713b7b54ffa3de66139e0",
      "parents": [
        "b2cd3dcaa3175135a314a44961ee761fad33f947",
        "8caf80a23a6abdfdea466e424679b176c4c649bc"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Jun 06 17:12:35 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 06 17:12:35 2019 -0700"
      },
      "message": "Merge \"Camera: Use original format and dataSpace for reconfigure\" into qt-dev\nam: 8caf80a23a\n\nChange-Id: I7c2255400b4b494604b4a81b8c8a85b597d72d54\n"
    },
    {
      "commit": "8caf80a23a6abdfdea466e424679b176c4c649bc",
      "tree": "061c39cd7f365101d458dc6c0e982c48a89b41e8",
      "parents": [
        "ca77ca26c12734407f12581854701b1d255cbba3",
        "9265395f3429d1c324e66a91a6a42cf5525b4498"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 07 00:05:50 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 07 00:05:50 2019 +0000"
      },
      "message": "Merge \"Camera: Use original format and dataSpace for reconfigure\" into qt-dev"
    },
    {
      "commit": "b2cd3dcaa3175135a314a44961ee761fad33f947",
      "tree": "4d079c286a77186259a2b5786c5cf7c11fff4254",
      "parents": [
        "bb33e80eefbc86ce80303f3264804469e72fc94e",
        "ca77ca26c12734407f12581854701b1d255cbba3"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu Jun 06 13:37:31 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 06 13:37:31 2019 -0700"
      },
      "message": "Merge \"cameraserver: Stop appOps camera reporting for vendor clients.\" into qt-dev\nam: ca77ca26c1\n\nChange-Id: Ia97d50c2478e4af76609a45f80810552754220ee\n"
    },
    {
      "commit": "b61526c6a080af7bc062b231c52d1b7e6545868d",
      "tree": "1d5916e12e4d7a3ee2493dca2185677431fbab0d",
      "parents": [
        "46238cd0395a0cb759bb1370356a8ac0fb2fa72b"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon May 13 19:37:42 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Jun 05 16:51:08 2019 -0700"
      },
      "message": "cameraserver: Stop appOps camera reporting for vendor clients.\n\nSince vendor native clients don\u0027t have package names, appOps reporting\nwould be inaccurate for them. In order to avoid that, we stop appOps\nreporting for vendor clients.\n\nBug: 132718220\n\nTest: AImageReaderVendorTest, use hal client for cameraserver, GCA(sanity)\n\nChange-Id: Ie6f80e8ab530aa755df57f8d25d9f1a15a20d7f7\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "9265395f3429d1c324e66a91a6a42cf5525b4498",
      "tree": "e7142391b15465d7174e2c0ab0a93c7f7423447e",
      "parents": [
        "90d1d53862638210d848ddedef2600aae35337d3"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue May 07 15:11:43 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Jun 05 15:23:19 2019 -0700"
      },
      "message": "Camera: Use original format and dataSpace for reconfigure\n\nStarting from HAL device version 3.5, the format and dataSpace for\nIMPLEMENTATION_DEFINED pixel format uses original instead of overridden\nvalues.\n\nThis makes HAL interface behavior consistent in that HAL doesn\u0027t need to\ndistinguish between first-time configureStreams and subsequent\nreconfigure.\n\nTest: Camera CTS and partner testing\nBug: 131864007\nChange-Id: Ie5fdc7e9b6c11c1c96a069262b9458455855bcef\n"
    },
    {
      "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": "19bf3a5a51ca22889f508dd5406e59b48a5346b9",
      "tree": "275560730fb0e4ad7c638d661e50236f358ab7c2",
      "parents": [
        "4f8e56c95a2381a8af36812a2b4118f2d5c9ae79",
        "2616bbf4888a33b242c1a0df97eb14d74a073ba3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 29 13:13:59 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 29 13:13:59 2019 -0700"
      },
      "message": "Merge \"VolumeShaper: Ensure consistent observable state when muted\" into qt-dev\nam: 2616bbf488\n\nChange-Id: Ib1591c101235b0f2cc51e20df7560179947f1fc6\n"
    },
    {
      "commit": "6bddd7d48f943b81c1789325478ea4e9f2b64ed9",
      "tree": "d256c13568c285104e786114c09f7004c131a151",
      "parents": [
        "17f60dd7c5b29f6d2d0f798fd01fb8ad61c3a1ef",
        "8c9e502267bcf9e61f9901e0c5820a3066986b9b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 29 10:44:40 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 29 10:44:40 2019 -0700"
      },
      "message": "Merge \"Remove reference to non-existant directory\" am: d96e627971\nam: 8c9e502267\n\nChange-Id: I5dcfc42ce9160a878b4fce047ce2f681b27ea012\n"
    },
    {
      "commit": "333ab963ed35ee99efa076db100e70a45e6ffff9",
      "tree": "ccab1ba155378b4e57996049a08afa4a74ef5171",
      "parents": [
        "b472cf075b83686fe30254a3b58f60e5866a667a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 28 20:23:35 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 29 09:53:04 2019 -0700"
      },
      "message": "VolumeShaper: Ensure consistent observable state when muted\n\nPrior to this patch, VolumeShaper state for direct\nand offloaded tracks did not appear to advance for master mute\nand all tracks did not appear to advance for stream mute.\n\nTest: atest android.media.cts.VolumeShaperTest with and without muting\nBug: 133354056\nChange-Id: I589f4e0837124a185509718f1175e06102a1be96\n"
    },
    {
      "commit": "a117e055af56b716b1403ea6de0f860cb740f65c",
      "tree": "e70448768a214c51cca22d8f5a909a8c669c81a9",
      "parents": [
        "30a1c51220085b32cfb3c413ff5b8831593ebac9"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 04 15:41:10 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 28 14:00:26 2019 -0700"
      },
      "message": "Remove obsolete include path from makefiles\n\nframeworks/av/services/audiopolicy/utilities does not exist,\nremove it from audio service components\u0027 makefiles.\n\nTest: build\nChange-Id: I6c29052b449099d4b0942b7fc0a7ae68d0dc1ba7\nMerged-In: I6c29052b449099d4b0942b7fc0a7ae68d0dc1ba7\n"
    },
    {
      "commit": "30a1c51220085b32cfb3c413ff5b8831593ebac9",
      "tree": "185d3f6295b2310a054d3d5fff37da101082f310",
      "parents": [
        "60c33d85d08dae0a1fc33829ad0479950912151a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 28 13:54:07 2019 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 28 13:54:07 2019 -0700"
      },
      "message": "Remove reference to non-existant directory\n\nThis was fixed when converting to Android.bp in internal master, so\nthat\u0027s the Merged-In reference.\n\nTest: treehugger\nChange-Id: I6a503ac7f3c283b7ef6a657c100901469447a22b\nMerged-In: I7061e99da18f5f7fad00527f01bf97ae6cebea2f\n"
    },
    {
      "commit": "679172768d86e29a47b9e15dd56776694128cf59",
      "tree": "f96e84cd5dcf55079976366eb1d8c8be210262dd",
      "parents": [
        "5592ee268507a8ee90fd374530e55a6279dbf0de"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 22 11:54:37 2019 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 24 07:27:52 2019 -0700"
      },
      "message": "APM: make AudioPolicyMixCollection inherit from Vector\n\n  Modify AudioPolicyMixCollection to inherit from Vector instead\nof KeyedVector so all so the collection of mixes stays in the same\norder as the mixes were added.\n  Also make the mix selection take the deviceType into consideration,\nnot just the address to enable the same address to be associated to\ndifferent devices.\n\nBug: 131090322\nTest: see bug for multi bus scenario\nTest: atest AudioPlaybackCaptureTest\n\nChange-Id: I4dc7f23bef19a7d47afc2998102da07dde41fbca\n"
    },
    {
      "commit": "5592ee268507a8ee90fd374530e55a6279dbf0de",
      "tree": "2a2ef3e15e9073a81c23fdf667b128963de98f5b",
      "parents": [
        "f9b3d532eb7422446d7efbd54b15fa87ea60d68a"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed May 22 08:00:05 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 22 18:57:28 2019 -0700"
      },
      "message": "audiopolicy: fix source client lifecycle\n\nUpon startAudioSource -\u003e connectAudioSource, the source client\nis attached to the output.\nUpon stopAudioSource -\u003e disconnectAudioSource, the source client is\nnever removed.\n\nAs a result, if the same client is trying to call startAudioSource again,\nasthe client is already attached, getClient will lead to bailing out in\nconnectAudioSource and the source will not be started.\nThe stopAudioSource if called would claim that the client refcount is already 0.\n\nAny following call to start would fail again on outputDesc-\u003estart as invalid\nas the profile fails on canStartNewIo.\n\nThis CL fixes this issue by removing the client source desc on disconnectAudioSource.\n\nBug: 133367802\nTest: build \u0026 run\n\t    AudioPolicyEmulatorTests --gtest_filter\u003d*AudioSourceEffectTest*\n      multiple consecutive times.\n\nChange-Id: I78370be248ff24cf4135d51f709d965c5bfae4e8\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "3be0ffbd9d2804e7cfcd425b80c6835d5cc5e7af",
      "tree": "0631d94e73c487bc9f1b441648dc39d1bcd18e62",
      "parents": [
        "f01afea93046d442f0ed7517fcac0d9be125365d",
        "9066ad3846deb54fe2bba86b25a934d5bf6033d7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 22 00:23:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 22 00:23:26 2019 +0000"
      },
      "message": "Merge \"audioflinger: fix App Ops for services\" into qt-dev"
    },
    {
      "commit": "9066ad3846deb54fe2bba86b25a934d5bf6033d7",
      "tree": "c23c4f7093b5f9775f4284471b913e14c1dc028b",
      "parents": [
        "86bd6afc79a46d586be816172f3cef7e7c89dc09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 20 14:40:10 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 21 14:28:58 2019 -0700"
      },
      "message": "audioflinger: fix App Ops for services\n\nDo not check app ops for audio playback for services in\ngeneral, not just for audioserver or root user.\n\nBug: 133178934\nTest: audio smoke tests\nChange-Id: I3a34e6418dc750cc12ed35d465ca8874b0ce0f73\n"
    }
  ],
  "next": "688abaa2865dab9ba955a6543a965d10e4c506db"
}
