)]}'
{
  "log": [
    {
      "commit": "055ded38f48e815b8efb7b0bc55cf6c9063e8597",
      "tree": "903a9dc6733f88cd3a209507145eb439154d612f",
      "parents": [
        "0ce3a03b740f051958579a7501df94dd7e80c1e9",
        "e23a29999f9ff31f7ff2340b3cdf32e563890bc4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 17 11:50:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 17 11:50:47 2019 +0000"
      },
      "message": "Merge \"Revert \"adapt ld.config.txt for vndk apex\"\""
    },
    {
      "commit": "e23a29999f9ff31f7ff2340b3cdf32e563890bc4",
      "tree": "03c2e4586115c599775f1f182076b3a6ea88eb59",
      "parents": [
        "99457ff3c23797865aecaa4743ca2981e7afe5ff"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Oct 16 22:42:56 2019 +0000"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Oct 16 23:46:03 2019 +0000"
      },
      "message": "Revert \"adapt ld.config.txt for vndk apex\"\n\nThis reverts commit 99457ff3c23797865aecaa4743ca2981e7afe5ff.\n\nReason for revert: some targets are broken\n\nBug: 142773030\nChange-Id: I5bccf2658d2b7963d2260235da8ec76976475f30\n"
    },
    {
      "commit": "0ce3a03b740f051958579a7501df94dd7e80c1e9",
      "tree": "8268c2204176c42d0f7c8d3b4dbd0d3a1172d3d0",
      "parents": [
        "e2a67de73c5fce9c809b4012ec81cd274ebbd91e",
        "e61ecaca0b174737c518ae400645ab0bfed9ff56"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 16 21:18:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 16 21:18:29 2019 +0000"
      },
      "message": "Merge \"Remove IMediaCodecList.cpp and MediaCodecInfo.cpp from libmedia_omx.\""
    },
    {
      "commit": "e61ecaca0b174737c518ae400645ab0bfed9ff56",
      "tree": "b1f86eb4223e450bda594ee3b1cf075118b9f8ac",
      "parents": [
        "1f72838954cb3689fb58eef6276553d9a45ff0a8"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 10:53:36 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 16 10:49:27 2019 -0700"
      },
      "message": "Remove IMediaCodecList.cpp and MediaCodecInfo.cpp from libmedia_omx.\n\nNow it only lives in libmedia_codeclist.\n\nTest: build\nChange-Id: I4b5d446b3906168c1aff7e906b4ec97a457b06be\n"
    },
    {
      "commit": "e2a67de73c5fce9c809b4012ec81cd274ebbd91e",
      "tree": "498b495091cea92153411fdd280e26f4b8df1689",
      "parents": [
        "1f72838954cb3689fb58eef6276553d9a45ff0a8",
        "95b2cf6dc4fe2a2bbea3dbed123ad95a65798cfe"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 16 14:39:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 16 14:39:04 2019 +0000"
      },
      "message": "Merge \"Remove unnecessary inheritance\""
    },
    {
      "commit": "95b2cf6dc4fe2a2bbea3dbed123ad95a65798cfe",
      "tree": "5cf1ded7f41e8822948cdc7b1bad132e7cfcd3c5",
      "parents": [
        "bb3c777e401d10f379835243bfcb2e6b6c678504"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 15 11:02:10 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 15 11:02:10 2019 -0700"
      },
      "message": "Remove unnecessary inheritance\n\nMidiIoWrapper\u0027s DataSourceUnwrapper doesn\u0027t need to inherit from\nDataSourceBase, and removing that inheritance saves a little bit\nof space too.\n\nTest: build\nChange-Id: I9f560ef57b76b624cf323d75872395a39f65ed1f\n"
    },
    {
      "commit": "1f72838954cb3689fb58eef6276553d9a45ff0a8",
      "tree": "018e4511eb3134064674e1b08cf91fdb3ef79ad1",
      "parents": [
        "5b388b5905150c7863020eb9e54f44670cfb84b2",
        "a42a62d8633fa6fcabc8129a2c798da860630821"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 15 16:58:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 15 16:58:00 2019 +0000"
      },
      "message": "Merge \"libmedia: separate codeclist from libmedia\""
    },
    {
      "commit": "5b388b5905150c7863020eb9e54f44670cfb84b2",
      "tree": "f8bdb07885d0d9287483aa134968b2bb3f5753dd",
      "parents": [
        "342d7bcf44b3edcce763f0417ad0a13b11bde285",
        "99457ff3c23797865aecaa4743ca2981e7afe5ff"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Oct 15 09:21:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 15 09:21:19 2019 +0000"
      },
      "message": "Merge \"adapt ld.config.txt for vndk apex\""
    },
    {
      "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": "1ab2344f6dd1b913c9e20c4afaba96105b00074c",
      "tree": "78d328393c84e9f541044665370aca39c49bbc2b",
      "parents": [
        "9ac17d688182d77ed14c946af9e8862f450d7650",
        "10a7553778f7e3ddffdcb1365f8c288459da7a12"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 11 15:39:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 11 15:39:57 2019 +0000"
      },
      "message": "Merge \"Remove unnecessary includes\""
    },
    {
      "commit": "9ac17d688182d77ed14c946af9e8862f450d7650",
      "tree": "a63235e7d3d705c4fc75c78f2276ac41a3193390",
      "parents": [
        "ba14ba2bede483a70df547cd0187ab3a068552c7",
        "520d2cd5a919a234f938d494ad22122cb65b49c9"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Oct 11 02:56:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 11 02:56:39 2019 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Merge QP1A.191005.007 into master\""
    },
    {
      "commit": "99457ff3c23797865aecaa4743ca2981e7afe5ff",
      "tree": "0c72f69e5aec6b73c3f9d586e40884250922a797",
      "parents": [
        "ba14ba2bede483a70df547cd0187ab3a068552c7"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Sep 26 14:55:59 2019 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Fri Oct 11 10:09:23 2019 +0900"
      },
      "message": "adapt ld.config.txt for vndk apex\n\nWith VNDK APEX, the path to VNDK libs is changed from\n/system/lib/vndk-VER to /apex/com.android.vndk.vVER/lib.\n\nBug: 141451661\nTest: m \u0026\u0026 boot (tested with cuttlefish)\nChange-Id: Id3a335ad1dfea71fb53ce80b96d550af8ac61760\n"
    },
    {
      "commit": "ba14ba2bede483a70df547cd0187ab3a068552c7",
      "tree": "03c2e4586115c599775f1f182076b3a6ea88eb59",
      "parents": [
        "bb3c777e401d10f379835243bfcb2e6b6c678504",
        "fbccd2eca5ef7ecb9c55fb41d2c97a5d7874f1d9"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 10 23:17:08 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 10 23:17:08 2019 +0000"
      },
      "message": "Merge \"C2SoftHevcEnc: add gop support\""
    },
    {
      "commit": "520d2cd5a919a234f938d494ad22122cb65b49c9",
      "tree": "d4ee4032f0ca4fd9e4787397518e6ecb4c50aaba",
      "parents": [
        "c26431a95daa318c6912e4b1736f96cb48bf7d64",
        "69b28f6bffa1999c8372cf24f82f6c893a5649ad"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Oct 08 14:22:30 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 10 22:53:50 2019 +0000"
      },
      "message": "DO NOT MERGE - Merge QP1A.191005.007 into master\n\nBug: 142297020\nChange-Id: I95c78bcad5c3ec4b711b674a3a1ae6612e5dc331\n"
    },
    {
      "commit": "10a7553778f7e3ddffdcb1365f8c288459da7a12",
      "tree": "5fb27a389662e29e18cfdb9817cfd304580d6644",
      "parents": [
        "bb3c777e401d10f379835243bfcb2e6b6c678504"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jun 21 14:02:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 10 10:06:53 2019 -0700"
      },
      "message": "Remove unnecessary includes\n\nTest: build\n\nChange-Id: Icf18be5d36a20962870a0d9e6323ab4861e8659a\n"
    },
    {
      "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": "229c543d081cc29f1f07df8d0b1657cdb71e0c15",
      "tree": "08e934258902cc364c056a934bf6f82b7a60828f",
      "parents": [
        "200b3291b416ffc4b666bbd158a3cd86ffd4e61c",
        "fa8be7d2371d66db6c7838060d5729f6fd9374ef"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 09 21:38:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 21:38:16 2019 +0000"
      },
      "message": "Merge \"Split datasource out of libstagefright\""
    },
    {
      "commit": "200b3291b416ffc4b666bbd158a3cd86ffd4e61c",
      "tree": "a51abdd6f3756e53a232941769b6857128a96e6e",
      "parents": [
        "58ae37b5b34d6a2bddd46494230a58f5fcc3f5e3",
        "34f5d0ec050b6c30aa4a98a1c8cf23186ac05a7c"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Oct 09 20:22:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 20:22:23 2019 +0000"
      },
      "message": "Merge \"Benchmark: Add SDK Extractor\""
    },
    {
      "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": "34f5d0ec050b6c30aa4a98a1c8cf23186ac05a7c",
      "tree": "f18e90cc9632c82d30e3493f4f9cd8028d0c710a",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1"
      ],
      "author": {
        "name": "Ruchika Ashtankar",
        "email": "ruchika.ashtankar@ittiam.com",
        "time": "Wed Oct 09 19:28:42 2019 +0530"
      },
      "committer": {
        "name": "Ruchika Ashtankar",
        "email": "ruchika.ashtankar@ittiam.com",
        "time": "Wed Oct 09 19:44:04 2019 +0530"
      },
      "message": "Benchmark: Add SDK Extractor\n\nTest: adb shell am instrument -w -r -e class\\\n      \u0027com.android.media.benchmark.tests.ExtractorTest\u0027\\\n      com.android.media.benchmark/androidx.test.runner.AndroidJUnitRunner\n\nBug: 140051680\n\nChange-Id: Ib1e2f8f360f7c6cd747c5ca43581de41fd966c60\n"
    },
    {
      "commit": "58ae37b5b34d6a2bddd46494230a58f5fcc3f5e3",
      "tree": "244287e3834c4154822136544a7e051e70160776",
      "parents": [
        "1a5100d4ad493bfa6a48b76c2c9276af7aa1d689",
        "7edb3f7d2f8a74d35f48695693e171a7c36aff8a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 09 00:42:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 09 00:42:40 2019 +0000"
      },
      "message": "Merge \"Move implementations to DataSourceBase.h\""
    },
    {
      "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": "1a5100d4ad493bfa6a48b76c2c9276af7aa1d689",
      "tree": "0938e48d1cce0139e000eb01c074df1f89cf1e72",
      "parents": [
        "c26431a95daa318c6912e4b1736f96cb48bf7d64",
        "a3c03a5bbab39d2ea12281f10534a3ab7bad1a1a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 08 23:12:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 08 23:12:24 2019 +0000"
      },
      "message": "Merge \"audio policy: fix virtual called from constructor\""
    },
    {
      "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": "7edb3f7d2f8a74d35f48695693e171a7c36aff8a",
      "tree": "c354155284bf0b4577ce6e2674ea42b18e31fb9a",
      "parents": [
        "c26431a95daa318c6912e4b1736f96cb48bf7d64"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Aug 15 13:46:00 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 08 12:53:02 2019 -0700"
      },
      "message": "Move implementations to DataSourceBase.h\n\nSome lib*extractors include DataSourceBase.h but are not\nlinking libstagefright which has the implementation.\nThis doesn\u0027t cause any build issue in normal build, but\nit actually matters when NATIVE_COVERAGE\u003dtrue which uses -O0.\n\nFixing by moving the implementation to the header.\n\nBug: 139459652\nTest: m\nTest: NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003d\"*\" m\nChange-Id: Ic955189ff9f0fbc48b5b35eccdb2916dc79fdb0f\nMerged-In: Ic955189ff9f0fbc48b5b35eccdb2916dc79fdb0f\n"
    },
    {
      "commit": "c26431a95daa318c6912e4b1736f96cb48bf7d64",
      "tree": "acd207764613b92030458ea499b20f2107693e8e",
      "parents": [
        "d3dd89caab587bc2207b851da4b3333daf986b2b",
        "53f78b65a144bd04f7b007f2a0776658fc4176cc"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 08 19:26:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 08 19:26:28 2019 +0000"
      },
      "message": "Merge \"Clean up libaudioclient includes\""
    },
    {
      "commit": "d3dd89caab587bc2207b851da4b3333daf986b2b",
      "tree": "aa3144d6c845a822b57ba9840d6b8b0f39787c7e",
      "parents": [
        "1de381858fda2fc7bab72b6f27d0beaf08679705",
        "d09eaeaa4f29bc9732298b1c76af52ad9f35c1cb"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Oct 08 17:21:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 08 17:21:29 2019 +0000"
      },
      "message": "Merge \"[media][sfplugin] fix -Wdangling-gsl\""
    },
    {
      "commit": "d09eaeaa4f29bc9732298b1c76af52ad9f35c1cb",
      "tree": "ef30fe5e3e178ecfb8010bd45a0f328f1cd110a1",
      "parents": [
        "9ee56ec1a7ace45b42b65e01fdda98114b5c0833"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Mon Oct 07 20:19:39 2019 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Oct 08 10:20:08 2019 -0700"
      },
      "message": "[media][sfplugin] fix -Wdangling-gsl\n\nC2BufferData#linearBlocks() returns a std::vector. Chaining method calls\nresults in an immediate dereference of a dangling pointer. Save a\nreference to the otherwise temporary for the duration of the function\ncall.\n\nBug: 139945549\nTest: mm\nChange-Id: I99d662a8fe5deec652cdcd82f420c836c76d5539\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\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": "53f78b65a144bd04f7b007f2a0776658fc4176cc",
      "tree": "3156f6604446132b26261bc163aa241d69f94b57",
      "parents": [
        "9ee56ec1a7ace45b42b65e01fdda98114b5c0833"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 13:08:50 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 08 09:41:49 2019 -0700"
      },
      "message": "Clean up libaudioclient includes\n\nTest: build\nChange-Id: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\nMerged-In: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\n"
    },
    {
      "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": "85e09b8e9403dca651e174dca57ae353b8de0a11",
      "tree": "4cd70f46fc976be31debc705064579ed613c6f45",
      "parents": [
        "0cbbcc6f02226837749a40962f6f36a51bb571d8",
        "86903e065d2d592fa34b57a717c3859c68d3435d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 05 01:38:45 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 05 01:38:45 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: do not cap a11y volume during call screening\""
    },
    {
      "commit": "0cbbcc6f02226837749a40962f6f36a51bb571d8",
      "tree": "8fa33aeeda6d151228fb575e79e7778608aa61b9",
      "parents": [
        "52a42dde3627544fabc6691afcc67df73ed6b5e7",
        "71031a89896be183f74a9747c91f7a764c3dfb65"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sat Oct 05 00:01:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 05 00:01:30 2019 +0000"
      },
      "message": "Merge \"Remove more remnants of MediaPlayer2\""
    },
    {
      "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": "a4f00e2aeadc9dc5c2f4970cd61ace72438136d4",
      "tree": "0cad5d0e9d535b38da7d03253141cc7606e45220",
      "parents": [
        "9b6599e1e10232e9c6e67e1d6d26265b8e8da885"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 31 14:53:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "AudioMixer: Cleanups\n\n- remove unused ARRAY_SIZE;\n\n- fix indentation for TIMESTRETCH in setParameter;\n\n- move trackNames method implementation and BLOCKSIZE constant\n  into .cpp file;\n\n- whitespace fixes.\n\nTest: make\nMerged-In: Idc5da55c8c3af0d59b9a7a12d081747b0a99dafc\nChange-Id: Idc5da55c8c3af0d59b9a7a12d081747b0a99dafc\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": "71031a89896be183f74a9747c91f7a764c3dfb65",
      "tree": "8fa33aeeda6d151228fb575e79e7778608aa61b9",
      "parents": [
        "52a42dde3627544fabc6691afcc67df73ed6b5e7"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 10:54:35 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 12:57:25 2019 -0700"
      },
      "message": "Remove more remnants of MediaPlayer2\n\nBug: 141546997\nTest: build\n\nChange-Id: Iaa4d9e4205f78d4b4d465b4f128a28a419ff603b\nMerged-In: Iaa4d9e4205f78d4b4d465b4f128a28a419ff603b\n"
    },
    {
      "commit": "52a42dde3627544fabc6691afcc67df73ed6b5e7",
      "tree": "3c05b588c50a3ba687391c20f8a99156143245eb",
      "parents": [
        "4f0a23d0dc08aa553389f17ab7e3f89fc6125496",
        "43bf214df57fc67e5a86a689357edf9e59bebf9c"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 00:59:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 04 00:59:04 2019 +0000"
      },
      "message": "Merge \"Fix memory leak in MPEG2PSExtractor\""
    },
    {
      "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": "43bf214df57fc67e5a86a689357edf9e59bebf9c",
      "tree": "3c05b588c50a3ba687391c20f8a99156143245eb",
      "parents": [
        "4f0a23d0dc08aa553389f17ab7e3f89fc6125496"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 08:22:37 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 13:04:30 2019 -0700"
      },
      "message": "Fix memory leak in MPEG2PSExtractor\n\nIt wasn\u0027t deleting its tracks and associated buffers.\n\nBug: 141724191\nTest: manual\nChange-Id: Ifdc05e6bf89e4770fd600e82d887921ff03c5b93\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": "138b0a3840db6207654d8a9b3d88a383b100b9b0",
      "tree": "4109899967f1de3c9fd2a120172bbedd54495a89",
      "parents": [
        "bb3b160486da21dab7611de44c85ad85e73e69c9"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 05 11:11:38 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Oct 03 09:46:29 2019 -0700"
      },
      "message": "Restore stream [dis]connect parameters in deprecated state\n\nSince AudioParameter.h is vendor-available, some vendors may\nstill use the old parameters. Leave the old parameters there\nbut mark as deprecated.\n\nBug: 138868195\nTest: make\nChange-Id: I6d12b7ac360309014a240a321c3cd32b39d8f740\nMerged-In: I6d12b7ac360309014a240a321c3cd32b39d8f740\n"
    },
    {
      "commit": "5a6a5a9b8223473f35c4486c0b3c8f2335e35b6f",
      "tree": "7681cee96f3340f55826f6a7c9b662b742e9759a",
      "parents": [
        "3e9dd76e813cf04c9dd35a8c2e813c174e5b435e",
        "27b5c0d7a18b49df1e27cf499a3a41618e5027b7"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Oct 03 04:55:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 03 04:55:22 2019 +0000"
      },
      "message": "Merge \"Cast enum to uint32_t before comparing with AUDIO_MODE_CNT\""
    },
    {
      "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": "3e9dd76e813cf04c9dd35a8c2e813c174e5b435e",
      "tree": "b7bb9f627d7ff277676aac2dd61da2ed5b72fc2d",
      "parents": [
        "b5ba1eb0a07c35fa4d5596b3e2dae5dfba39a9b6",
        "5b023ebc681f8b41da3a862d161453931a01704f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 02 21:36:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 02 21:36:24 2019 +0000"
      },
      "message": "Merge \"audiopolicy: add null pointer check for primary hw\""
    },
    {
      "commit": "b5ba1eb0a07c35fa4d5596b3e2dae5dfba39a9b6",
      "tree": "bb45fd9230ae7dfabc91da5bc16a6863e50cb4cc",
      "parents": [
        "e9ad58533c38be8ec0f7c9ebd3b2e6e850354f82",
        "af609f933c95bb7d42939714c6143a0dbf0ee0f8"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Oct 02 18:05:02 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 02 18:05:02 2019 +0000"
      },
      "message": "Merge \"Fix comparing int32_t with INT64_MIN\""
    },
    {
      "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": "af609f933c95bb7d42939714c6143a0dbf0ee0f8",
      "tree": "ffc78034f12ac9990b23218de3ec0d6e0fec108e",
      "parents": [
        "a43fcd7ed6b1cc8930e2c3d8416b87cb8e9e02e4"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Oct 01 20:16:56 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Oct 01 20:16:56 2019 -0700"
      },
      "message": "Fix comparing int32_t with INT64_MIN\n\nThis is obviously a typo.\n\nFound by Clang tautological-constant-out-of-range-compare warning.\n\nTest: presubmit\nBug: 72331526\nChange-Id: I2cb217282c524bb9fbae899fa5a731b7575e393a\n"
    },
    {
      "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": "130e1d19c84caa907cdbf90a9266cd9a0c10fe93",
      "tree": "a8c5494ba213653ffad37a6bf60dd447b2839d3d",
      "parents": [
        "a43fcd7ed6b1cc8930e2c3d8416b87cb8e9e02e4",
        "ef9bef54d8f7779133c7b09a3c864e441bbc9b17"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 02 01:09:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 02 01:09:00 2019 +0000"
      },
      "message": "Merge \"can\u0027t copy/paste folders on sdcard from PC side in MTP mode\""
    },
    {
      "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": "a43fcd7ed6b1cc8930e2c3d8416b87cb8e9e02e4",
      "tree": "6855dcde29a056920df63553abae5af7604929c3",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1",
        "61e07e3f03c62f39a4b88e761df8c5614474fb31"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 01 21:53:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 01 21:53:53 2019 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Handle error from setInputDevice in startInput\""
    },
    {
      "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": "fbccd2eca5ef7ecb9c55fb41d2c97a5d7874f1d9",
      "tree": "3a42a69eb7b40213838974237d402d26a06e930e",
      "parents": [
        "09df62407d61b4a6172d4d122aa1676028a88f14"
      ],
      "author": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Wed May 22 15:20:21 2019 -0700"
      },
      "committer": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Mon Sep 30 11:34:17 2019 -0700"
      },
      "message": "C2SoftHevcEnc: add gop support\n\nBug: 127315857\nTest: Manually using AMediaCodec based application\n\nChange-Id: Ie8beb8e61eaac11deb9cad180c787122b63207f6\n"
    },
    {
      "commit": "87025d5658d1a3d78c1a634035f7126f0ba8a4f1",
      "tree": "ba5b6cae6d55145a806a384bf0e6cf765ec749c4",
      "parents": [
        "839cd0691bd3265343e87fbb9545ed27319b99c1",
        "7c66db7758b0f9f476ce120f27757c80c25301bb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 30 16:15:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 30 16:15:33 2019 +0000"
      },
      "message": "Merge \"Remove unused bionic include.\""
    },
    {
      "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": "5158f491c60074b061b00d7018b6b889d664112e",
      "tree": "158042769963aa698a8fbd240d2abfc352220c3d",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb",
        "3230ed8235a39adef82d7c3873e6a87007799ff8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 21:56:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 27 21:56:50 2019 +0000"
      },
      "message": "Merge \"Remove symlinks from include dir\""
    },
    {
      "commit": "7c66db7758b0f9f476ce120f27757c80c25301bb",
      "tree": "6bdaf0766216a2b5ed6ee12977969c3a2df342c1",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 25 17:59:24 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 27 12:15:50 2019 -0700"
      },
      "message": "Remove unused bionic include.\n\nBug: 141560639\n\nTest: Builds.\nChange-Id: Ie634a2fe3e46a90bdc6d1d264ac1317e3dda0ff1\nMerged-In: Ie634a2fe3e46a90bdc6d1d264ac1317e3dda0ff1\n(cherry picked from commit f46f58442cfee70f3ec6e8c44f2e5b7e54598213)\n"
    },
    {
      "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": "ef9bef54d8f7779133c7b09a3c864e441bbc9b17",
      "tree": "9f1852c3dc2bb3bcae189438ee6a6190b79a41c1",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "nolyn.lu",
        "email": "nolyn.lu@spreadtrum.com",
        "time": "Thu Jul 05 16:24:13 2018 +0800"
      },
      "committer": {
        "name": "nolyn lu",
        "email": "nolyn.lu@unisoc.com",
        "time": "Fri Sep 27 11:50:41 2019 +0000"
      },
      "message": "can\u0027t copy/paste folders on sdcard from PC side in MTP mode\n\nWhen copy/paste folders from PC (e.g. windows),\nthere\u0027s an extra white space at the end of the folder names.\nIt cause the mkdir call failed with *Invalid argument* on device.\n\nbug: 139645636\n\nChange-Id: I4f0c017fd086b87180ba014722cdcf4d988e8bc5\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": "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb",
      "tree": "0a551087cdb6d6c20c7ab75aef971fb65eb71ce1",
      "parents": [
        "b43bb0b1d99ec6712245aeae3ab6796f041cf51a",
        "c795e471c1fb2e4fc03cc13ff6d9e3a1e502e3dc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 26 14:32:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 26 14:32:33 2019 +0000"
      },
      "message": "Merge \"Use shared libcrypto\""
    },
    {
      "commit": "b43bb0b1d99ec6712245aeae3ab6796f041cf51a",
      "tree": "0101264820ba5ece44ce9477ab88a75b3f4873ea",
      "parents": [
        "49a4f52e02a6d47c7f73442023c475dc4b6dcf6d",
        "5238cb29a0b5440824354a6373676b707643db74"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 26 05:49:20 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 26 05:49:20 2019 +0000"
      },
      "message": "Merge \"ACodec: query grid config from component even if grid is disabled\""
    },
    {
      "commit": "49a4f52e02a6d47c7f73442023c475dc4b6dcf6d",
      "tree": "c1eef847dcd025173a69d209a5710b2d7ebc4f6f",
      "parents": [
        "706d9606bee174bc1d087fa316e0d7d66605b417",
        "d5ea3f35468e778de030615c48aa0af12d4a7073"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 25 23:45:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 25 23:45:32 2019 +0000"
      },
      "message": "Merge \"NdkMediaCodec: Wrong check in error callback handler\""
    },
    {
      "commit": "706d9606bee174bc1d087fa316e0d7d66605b417",
      "tree": "216ecb3fe033354b1d07ce88aa8ccecb15f4c3fa",
      "parents": [
        "3e0b02e336f3b5d59c5162e743d10d86be63c66b",
        "e13c679e4afba66097018516eba9ea15d15bbc7a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 25 23:39:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 25 23:39:43 2019 +0000"
      },
      "message": "Merge \"audiopolicy: Load the engine library dynamically\""
    },
    {
      "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": "3e0b02e336f3b5d59c5162e743d10d86be63c66b",
      "tree": "56eeb8c4ae64aa1f27045904211c747e01586e60",
      "parents": [
        "a63468a84701b1da0328cb861c80043000f12798",
        "f3b004b584a5b2cdc18a6767d1b5a176e26b2f95"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 25 18:17:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 25 18:17:27 2019 +0000"
      },
      "message": "Merge \"Use stride in ycbcr for YUV-\u003eYUV convert\""
    },
    {
      "commit": "a63468a84701b1da0328cb861c80043000f12798",
      "tree": "b58302fdf89cf0b326d9d51409b14d76318d195f",
      "parents": [
        "402fd7c9a7aead3cfdb75d4d8a21a2c071d69926",
        "d1ecb917f884e8f5ff69a80c6c22d84f42074300"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 25 17:15:59 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 25 17:15:59 2019 +0000"
      },
      "message": "Merge \"Remove MediaPlayer2\""
    },
    {
      "commit": "5238cb29a0b5440824354a6373676b707643db74",
      "tree": "b1f3097bf338f5b0787bcc116fbb29ff0143e25d",
      "parents": [
        "402fd7c9a7aead3cfdb75d4d8a21a2c071d69926"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jul 25 16:57:47 2019 -0700"
      },
      "committer": {
        "name": "Alistair Delva",
        "email": "adelva@google.com",
        "time": "Wed Sep 25 16:31:38 2019 +0000"
      },
      "message": "ACodec: query grid config from component even if grid is disabled\n\nbug: 138397508\ntest: cts HeifWriterTest on devices that can enable OMX HEIC encoder.\n\nChange-Id: I6e8437c0b8cc4901e943f2ed7cb23cb16ed096fe\n"
    },
    {
      "commit": "f3b004b584a5b2cdc18a6767d1b5a176e26b2f95",
      "tree": "c222cefd57dc6eb7a11a10b78058dbad2b8ce67f",
      "parents": [
        "402fd7c9a7aead3cfdb75d4d8a21a2c071d69926"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 26 16:35:39 2019 -0700"
      },
      "committer": {
        "name": "Alistair Delva",
        "email": "adelva@google.com",
        "time": "Wed Sep 25 09:27:48 2019 -0700"
      },
      "message": "Use stride in ycbcr for YUV-\u003eYUV convert\n\nWe\u0027re already locking in yuv mode, use the stride info returned\nby mapper instead of trying to align it to arbitrary number.\n\nbug: 139921053\ntest: ImageReaderDecoderTest\nChange-Id: I0e1e875f296f9aade907686440b077dff32e3cdc\n"
    },
    {
      "commit": "d1ecb917f884e8f5ff69a80c6c22d84f42074300",
      "tree": "b58302fdf89cf0b326d9d51409b14d76318d195f",
      "parents": [
        "402fd7c9a7aead3cfdb75d4d8a21a2c071d69926"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 24 09:27:40 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 25 08:12:32 2019 -0700"
      },
      "message": "Remove MediaPlayer2\n\nBug: 141546997\nTest: build, boot\nChange-Id: Ie2a94aace8286a1fad4e9f59232f761bcab0cc5e\nMerged-In: Ie2a94aace8286a1fad4e9f59232f761bcab0cc5e\n"
    },
    {
      "commit": "402fd7c9a7aead3cfdb75d4d8a21a2c071d69926",
      "tree": "7f095e5dfd7f440aa132534d4eef4fa616fc1397",
      "parents": [
        "09df62407d61b4a6172d4d122aa1676028a88f14",
        "fd5b2cf8cd6073ef663edf7f87bff9573a97bf64"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 24 02:13:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 24 02:13:38 2019 +0000"
      },
      "message": "Merge changes I0b8ae921,Ib8bda8ab\n\n* changes:\n  audiopolicy: Remove legacy audio_policy configuration\n  Remove usages of USE_XML_AUDIO_POLICY_CONF\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": "d5ea3f35468e778de030615c48aa0af12d4a7073",
      "tree": "76377b4ccc5f53cb1ff7c0ac2d6984e76ea3ce2b",
      "parents": [
        "0647d8c5f64c577b10b791b2d86383183decb297"
      ],
      "author": {
        "name": "Rakesh Kumar",
        "email": "rakesh.kumar@ittiam.com",
        "time": "Fri Sep 20 17:08:07 2019 +0530"
      },
      "committer": {
        "name": "Rakesh Kumar",
        "email": "rakesh.kumar@ittiam.com",
        "time": "Mon Sep 23 19:10:56 2019 +0530"
      },
      "message": "NdkMediaCodec: Wrong check in error callback handler\n\nNdkMediaCodec checks for wrong item in case of CB_ERROR callback. It\nis checking for action instead of actionCode, because of which error\nis not getting propagated. This leads to hang in application using\nasync NdkMediaCodec APIs.\n\nTest: encoderTest --gtest_repeat\u003d20 -P /sdcard/res/\nTest: decoderTest --gtest_repeat\u003d20 -P /sdcard/res/\n\nBug: 141458223\n\nChange-Id: I9da8a361d1925b73f341f36e55f7426888155fc6\n"
    },
    {
      "commit": "09df62407d61b4a6172d4d122aa1676028a88f14",
      "tree": "664beac427f41baa1a7afb2ffd8a481fac691d1d",
      "parents": [
        "0647d8c5f64c577b10b791b2d86383183decb297",
        "5a58ec0c66d7d35ebc890eb51749d73bb29a815f"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun Sep 22 23:00:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Sep 22 23:00:54 2019 +0000"
      },
      "message": "Merge \"Benchmark Timer : add support for frameSizes\""
    },
    {
      "commit": "5a58ec0c66d7d35ebc890eb51749d73bb29a815f",
      "tree": "664beac427f41baa1a7afb2ffd8a481fac691d1d",
      "parents": [
        "0647d8c5f64c577b10b791b2d86383183decb297"
      ],
      "author": {
        "name": "Manisha Jajoo",
        "email": "manisha.jajoo@ittiam.com",
        "time": "Wed Sep 11 16:13:11 2019 +0530"
      },
      "committer": {
        "name": "Manisha Jajoo",
        "email": "manisha.jajoo@ittiam.com",
        "time": "Fri Sep 20 11:38:03 2019 +0530"
      },
      "message": "Benchmark Timer : add support for frameSizes\n\nAdds support to save\na. Extractor - Bytes extracted per call\nb. Muxer - Bytes being muxed per call\nc. Decoder - Input bytes decoded per call\nd. Encoder - Output bytes encoded per call\n\nTest: builds\n\nBug: 140051680\n\nChange-Id: I2740a4476ed6c06342fc13f4f1242a689cd4b46a\n"
    }
  ],
  "next": "c795e471c1fb2e4fc03cc13ff6d9e3a1e502e3dc"
}
