)]}'
{
  "log": [
    {
      "commit": "0361312f054b7680002a6a00a4471e4d4f24feb6",
      "tree": "928064a39192abab4133a278db69c2dc1a094070",
      "parents": [
        "676ad0ec681475a2fa69a7e6ef893706420cd246",
        "9da281d1007267dcd023fb2c405e5320e8bd8bb7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 10 07:45:23 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 10 07:45:23 2021 +0000"
      },
      "message": "Merge \"[AudioPolicyManager] Voice Downlink Sink device selection\""
    },
    {
      "commit": "230397eff58f231cfcfa07b4409f222288212a7a",
      "tree": "b27ad92e766b45b073def4c9ad549b839024f110",
      "parents": [
        "93aed30ec74a4bec2805a2d05459042f1f427108"
      ],
      "author": {
        "name": "Jintao Zhu",
        "email": "zhujtcsieee@gmail.com",
        "time": "Sun Mar 07 14:15:10 2021 +0800"
      },
      "committer": {
        "name": "Jintao Zhu",
        "email": "zhujtcsieee@gmail.com",
        "time": "Sun Mar 07 22:14:57 2021 +0800"
      },
      "message": "use sp\u003cAudioEffect\u003e instead of unique_ptr\u003cAudioEffect\u003e\n\nAs a child class of RefBase, an AudioEffect object should be held by sp\u003c\u003e rather than by unique_ptr\u003c\u003e.\n\nIf you use unique_ptr\u003c\u003e to hold it, then later, someone else, on the other hand, may probably use sp\u003c\u003e to hold it, then in the future, the AudioEffect object may be deleted two times: one is from sp\u003c\u003e, the other from unique_ptr\u003c\u003e.\n\nThis may be detected by the destructor of class RefBase, with the log complaint \"RefBase: Explicit destruction,...\"\n\nTest: monkey test for one day and one night\n\nSigned-off-by: Jintao Zhu \u003czhujtcsieee@gmail.com\u003e\nChange-Id: I52e1df86899dfd8265aa80b4d3423936f66fcd47\n"
    },
    {
      "commit": "6fe794eff6281e027b62cb85d98c09ab6fab1a51",
      "tree": "9e11f7aa875b2180e0bdd236ab2f81d9290722a2",
      "parents": [
        "99e9d191421124e96565db27a2c46690e5b85cf5"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Mar 05 13:37:44 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Mar 05 13:37:44 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  services/audiopolicy/engine/config/tests/Android.bp\n  services/audiopolicy/engine/config/tests/resources/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I2429c280b08a396d768974b0f23a73ea34538661\n"
    },
    {
      "commit": "726677e6cc937fa6d8bcd93959a0d73853dc582c",
      "tree": "2235eaf0b751093600b9f54b51f652f7c37c21d2",
      "parents": [
        "3e28d78f8c7c8c07f6cb055240e8507f47b51454",
        "a078a607ef4f1611b15af13060c8bc562c130ada"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Mar 03 21:41:39 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 03 21:41:39 2021 +0000"
      },
      "message": "Merge \"Merge RQ2A.210305.007\""
    },
    {
      "commit": "6ef1b95831ea0d3a4ca508badfea8b353b32a6fd",
      "tree": "7b31d53e0be95f7e68372caa076ce485a2f62daa",
      "parents": [
        "8916ae92a5e36c165d8d94c87bb67bb828234e72"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 25 18:22:02 2021 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 01 17:18:08 2021 -0800"
      },
      "message": "Add \"VTS\" mode to APM Serializer\n\nThis mode is used by VTS tests. In this mode Serializer\nignores all vendor extensions. It can\u0027t parse them\nbecause VTS are always build from AOSP, w/o any vendor\nadditions.\n\nBug: 36733185\nTest: atest HalAudioV6_0GeneratorTest HalAudioV7_0GeneratorTest\nChange-Id: Id81c221446f3e118cbb97e7b2a73b2c1cee121b6\n"
    },
    {
      "commit": "8916ae92a5e36c165d8d94c87bb67bb828234e72",
      "tree": "8ae09d24bbca1d47f1e4db3f6574314b91ac9b5f",
      "parents": [
        "353d2e39948802eac48f2fe4329d9afd3e59a395"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 21 13:04:58 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 01 17:17:42 2021 -0800"
      },
      "message": "APM: Fix config de-serialization\n\nAudio Policy Manager and EngineConfig now try to load only one\nreadable APM config file. Previously they could try several\nuntil one of them parses successfully. This could result in\nloading of different files by APM and EC due to use of different\nparts of the config.\n\nCentralize finding of APM config file in audio_config.h.\nThis allows using the same logic in AudioPolicyManager.cpp\nand EngineConfig.cpp which previously got duplicated\nand later diverged.\n\nEnsure that failed attempts to de-serialize config do not leave\nAPM or EC in a \"dirty\" state.\n\nBug: 171339398\nTest: check audio on the device\nTest: atest audiopolicy_engineconfig_tests\nTest: atest audiopolicy_tests\nChange-Id: I98c21ab03d869eb5f4259ea12cd433632cf6da5d\nMerged-In: I98c21ab03d869eb5f4259ea12cd433632cf6da5d\n"
    },
    {
      "commit": "0ec48f8587618ef385cda4d757a2c1dfdf269cf2",
      "tree": "43a7c19106049cf9e78afaaf5e1bbf2a2c2e35ac",
      "parents": [
        "c482a16514091f44c4fc5623c1c24af2e7338730",
        "353d2e39948802eac48f2fe4329d9afd3e59a395"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Mon Mar 01 07:54:04 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Mar 01 07:54:04 2021 +0000"
      },
      "message": "Merge \"[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\" am: 353d2e3994\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1609822\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I6a5c6b069bf1457594777637a61b0e6b5f3e04d2\n"
    },
    {
      "commit": "59b2dcccdb0ab7292dd6e440fb4a9deb74ad1c75",
      "tree": "0043f21c35230677f884bbc05c232e19ed908f0a",
      "parents": [
        "020dc0424b331d59e78b6b0881f3399c73acc66e"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 03:47:28 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 03:47:28 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  media/codec2/hidl/plugin/Android.bp\n  services/camera/libcameraservice/libcameraservice_fuzzer/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I7b0377f4bedb9056ebb02caa0b3d4c5c50c86368\n"
    },
    {
      "commit": "395675863bdb5089e79348b9ccbcb37d0363f3a4",
      "tree": "1e1dba8fa4aafd4c507333295e4ddb5a9b13aaf7",
      "parents": [
        "b9d6ab019f7aeab9c02c670826ef70cd56bb3754",
        "51f482db8c822bb1ef0a833ad98f71613c0de51b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 24 22:02:51 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 24 22:02:51 2021 +0000"
      },
      "message": "Merge \"Support source device to MSD sink device direct patching\" am: 51f482db8c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1593613\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I952a0c719bf3ffc20acaacd73779ef3f763be742\n"
    },
    {
      "commit": "51f482db8c822bb1ef0a833ad98f71613c0de51b",
      "tree": "cc7c467cf11047370f73b32f89d649ea6c9f0c42",
      "parents": [
        "73a4a083c3eecc0df17747af9cd530046c1aca0d",
        "5cbec5a804ca6e10cc18256dd3a1a62a59850fe3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 24 21:10:43 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 24 21:10:43 2021 +0000"
      },
      "message": "Merge \"Support source device to MSD sink device direct patching\""
    },
    {
      "commit": "9da281d1007267dcd023fb2c405e5320e8bd8bb7",
      "tree": "34773f3a3b5b817eda040d40d5b16dcab9e8590e",
      "parents": [
        "fb5ef561e37afc7321884ecba1e32d87de5d33b2"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Feb 04 17:02:59 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 24 12:56:09 2021 +0000"
      },
      "message": "[AudioPolicyManager] Voice Downlink Sink device selection\n\nAudio Policy selects the downlink sink device through the primary\noutput of the primary module.\nIt uses getNewOutputDevices on this output. If any routing strategy is\nactive on this output with an higher priority than voice call (it may\nhappen as order is defined in engine configuration file), downlink may\nbe temporarilly routed on this sink until the other client stops.\n\nThis CL changes the downlink sink device selection by\n-checking if a HW bridge is possible between the selected sink device\nfor voice call strategy and telephony RX device\n-falling back on \"legacy\" behavior if no HW bridge possible.\n\nTest: call with and without music active.\n\nChange-Id: I8b6a6648a72f6f69abdf4d49c205ccbd0efeb082\nMerged-In: I8b6a6648a72f6f69abdf4d49c205ccbd0efeb082\n"
    },
    {
      "commit": "5cbec5a804ca6e10cc18256dd3a1a62a59850fe3",
      "tree": "b44e453d3eb68be2157acad969f1206417fd7743",
      "parents": [
        "557ec27958f4b5c2a0028b25fb1d8497fe362cfb"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Wed Feb 10 16:02:23 2021 +1100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 24 12:48:37 2021 +0000"
      },
      "message": "Support source device to MSD sink device direct patching\n\nCurrently, device to device software patches between different\nhardware modules route to a sink\u0027s PCM opened output stream. To\nsupport compressed / direct audio patching from HDMI inputs to MSD,\nbuild an explicit MSD patch between the source device and MSD, which\nhas the advantage of supporting preferential audio configuration\nselection (e.g. IEC60958 over PCM).\n\nThis change also updates existing MSD methods to reflect that they\noperate on MSD output (MSD source to downstream) patches only.\n\nThis change also adds IEC60958 as the most preferred MSD patch format\nas it is suitable for transmission of both PCM and compressed audio.\n\nTest: atest audiopolicy_tests\nChange-Id: I259a15ac88e45f6bef5180a44967a58facfcfb56\nMerged-In: I259a15ac88e45f6bef5180a44967a58facfcfb56\n"
    },
    {
      "commit": "66cae4fa2d38c0209165b3527a9fbba9b72a65f6",
      "tree": "85d447774ba82b7da906234f078750cea3540d22",
      "parents": [
        "9b3ea76c665a52ede718f6e0efbae550e5727a04",
        "d90aeec7d734fab978b550df142ea3bf75be7dd7"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Feb 24 01:22:11 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 24 01:22:11 2021 +0000"
      },
      "message": "Merge \"Do not add quotes around flags argument\" am: d90aeec7d7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1598336\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I714888749a4a2b79091cd8a67f04925885833ef0\n"
    },
    {
      "commit": "093c98404dcd552cef7c963a83781d6dc7d0aa0d",
      "tree": "8367de14b0c8cf3805eac362ac2689f79a30b73f",
      "parents": [
        "7f944c9c0b1e3a12f2325bc3d9bfc95854f7355c",
        "8c4f38aea37b843d1a28c16a37fe2a5c7cbc1813"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Tue Feb 23 21:53:37 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 23 21:53:37 2021 +0000"
      },
      "message": "Merge \"Added camera_service_fuzzer\" am: 8c4f38aea3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1537224\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If9af06217dd104b9a41ddb09173628ff8510b0a0\n"
    },
    {
      "commit": "492141a842981ac85c241c4b444a8485f0e270a1",
      "tree": "b732e2e076e9edfe242248d553b2623c8f70e517",
      "parents": [
        "91b07bcea7bb5c6661db16c89abe9805a0d2dacc"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sun Feb 21 18:17:49 2021 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sun Feb 21 19:06:50 2021 -0800"
      },
      "message": "Do not add quotes around flags argument\n\n* build/soong will adds quotes around the whole flags\n  and preserve the quotes around flags argument.\n  The quotes incorrectly became part of a flag\u0027s value.\n* build/soong adds automatically module directory to\n  -header-filter.\n* allow new found .h file clang-tidy warnings, not as errors.\n\nBug: 180862582\nTest: make; make with WITH_TIDY\u003d1\nChange-Id: Ic4aebedf1e13974aa7400fa256325ca3bff764b9\n"
    },
    {
      "commit": "6a08a9293b732532e98607d41a42bc06a52e8184",
      "tree": "a33a0ab6ffb3cf820c22f1a9ee53d2001dfaf9bb",
      "parents": [
        "ad9882e76f9debbd2ada2b616d5f51b8908ed764",
        "0c3f0588700228d4d81dded56480d14857e1b2cd"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:25:04 2021 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:25:04 2021 -0800"
      },
      "message": "Merge ab/7061308 into stage.\n\nBug: 180401296\nMerged-In: Iffdea341e5cd3cc2ef82e1b9c0adf211b3c29381\nChange-Id: I9e0e28ec101bde3ee24c946e9fb5c11b1cceba64\n"
    },
    {
      "commit": "8c4f38aea37b843d1a28c16a37fe2a5c7cbc1813",
      "tree": "761518b7a2bb3ccb1b778fc7ab980f20f4dc99e8",
      "parents": [
        "3107a0bb93fdfb4909b4dcb27fd3b57243a2a495",
        "394fdf81a91f5576e9f947e98cdf8d8a6090784c"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Fri Feb 19 17:37:08 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 19 17:37:08 2021 +0000"
      },
      "message": "Merge \"Added camera_service_fuzzer\""
    },
    {
      "commit": "948e6aace91d16acfaa97763c7228029a1c2afe0",
      "tree": "e1213aacab8f21fd8bf9dcd02dbc82741013379f",
      "parents": [
        "367398038247b09a3f92e05affac5f9b1f5e2f90"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 21:02:31 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:09:57 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  camera/cameraserver/Android.bp\n  camera/tests/Android.mk\n  cmds/screenrecord/Android.bp\n  cmds/stagefright/Android.mk\n  drm/common/Android.bp\n  drm/drmserver/Android.bp\n  drm/libdrmframework/Android.bp\n  drm/libdrmframework/plugins/common/util/Android.bp\n  drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.bp\n  drm/libdrmframework/plugins/passthru/Android.bp\n  drm/libmediadrm/Android.bp\n  drm/libmediadrm/fuzzer/Android.bp\n  drm/libmediadrm/protos/Android.bp\n  drm/libmediadrm/tests/Android.bp\n  drm/mediacas/plugins/clearkey/Android.bp\n  drm/mediacas/plugins/clearkey/tests/Android.bp\n  drm/mediacas/plugins/mock/Android.bp\n  drm/mediadrm/plugins/clearkey/common/Android.bp\n  drm/mediadrm/plugins/clearkey/default/Android.bp\n  drm/mediadrm/plugins/clearkey/default/tests/Android.bp\n  drm/mediadrm/plugins/mock/Android.bp\n  media/audioserver/Android.mk\n  media/bufferpool/1.0/Android.bp\n  media/bufferpool/1.0/vts/Android.bp\n  media/bufferpool/2.0/Android.bp\n  media/bufferpool/2.0/tests/Android.bp\n  media/codec2/components/aac/Android.bp\n  media/codec2/components/amr_nb_wb/Android.bp\n  media/codec2/components/aom/Android.bp\n  media/codec2/components/avc/Android.bp\n  media/codec2/components/base/Android.bp\n  media/codec2/components/cmds/Android.bp\n  media/codec2/components/flac/Android.bp\n  media/codec2/components/g711/Android.bp\n  media/codec2/components/gav1/Android.bp\n  media/codec2/components/gsm/Android.bp\n  media/codec2/components/hevc/Android.bp\n  media/codec2/components/mp3/Android.bp\n  media/codec2/components/mpeg2/Android.bp\n  media/codec2/components/mpeg4_h263/Android.bp\n  media/codec2/components/opus/Android.bp\n  media/codec2/components/raw/Android.bp\n  media/codec2/components/vorbis/Android.bp\n  media/codec2/components/vpx/Android.bp\n  media/codec2/components/xaac/Android.bp\n  media/codec2/core/Android.bp\n  media/codec2/faultinjection/Android.bp\n  media/codec2/fuzzer/Android.bp\n  media/codec2/hidl/1.0/utils/Android.bp\n  media/codec2/hidl/1.0/vts/functional/Android.bp\n  media/codec2/hidl/1.0/vts/functional/audio/Android.bp\n  media/codec2/hidl/1.0/vts/functional/common/Android.bp\n  media/codec2/hidl/1.0/vts/functional/component/Android.bp\n  media/codec2/hidl/1.0/vts/functional/master/Android.bp\n  media/codec2/hidl/1.0/vts/functional/video/Android.bp\n  media/codec2/hidl/1.1/utils/Android.bp\n  media/codec2/hidl/client/Android.bp\n  media/codec2/hidl/services/Android.bp\n  media/codec2/sfplugin/Android.bp\n  media/codec2/sfplugin/tests/Android.bp\n  media/codec2/sfplugin/utils/Android.bp\n  media/codec2/tests/Android.bp\n  media/codec2/vndk/Android.bp\n  media/codecs/amrnb/common/Android.bp\n  media/codecs/amrnb/enc/fuzzer/Android.bp\n  media/codecs/amrnb/fuzzer/Android.bp\n  media/codecs/amrwb/dec/fuzzer/Android.bp\n  media/codecs/amrwb/enc/Android.bp\n  media/codecs/amrwb/enc/SampleCode/Android.bp\n  media/codecs/amrwb/enc/fuzzer/Android.bp\n  media/codecs/amrwb/enc/test/Android.bp\n  media/codecs/g711/decoder/Android.bp\n  media/codecs/g711/fuzzer/Android.bp\n  media/codecs/m4v_h263/dec/Android.bp\n  media/codecs/m4v_h263/dec/test/Android.bp\n  media/codecs/m4v_h263/fuzzer/Android.bp\n  media/codecs/mp3dec/fuzzer/Android.bp\n  media/extractors/Android.bp\n  media/extractors/aac/Android.bp\n  media/extractors/amr/Android.bp\n  media/extractors/flac/Android.bp\n  media/extractors/fuzzers/Android.bp\n  media/extractors/midi/Android.bp\n  media/extractors/mkv/Android.bp\n  media/extractors/mp3/Android.bp\n  media/extractors/mp4/Android.bp\n  media/extractors/mpeg2/Android.bp\n  media/extractors/ogg/Android.bp\n  media/extractors/tests/Android.bp\n  media/extractors/wav/Android.bp\n  media/img_utils/Android.bp\n  media/libaaudio/Android.bp\n  media/libaaudio/examples/Android.bp\n  media/libaaudio/examples/input_monitor/Android.bp\n  media/libaaudio/examples/loopback/Android.bp\n  media/libaaudio/examples/write_sine/Android.bp\n  media/libaaudio/src/Android.bp\n  media/libaaudio/tests/Android.bp\n  media/libaudioclient/Android.bp\n  media/libaudioclient/tests/Android.bp\n  media/libaudiofoundation/Android.bp\n  media/libaudiofoundation/tests/Android.bp\n  media/libaudiohal/Android.bp\n  media/libaudiohal/impl/Android.bp\n  media/libaudioprocessing/Android.bp\n  media/libaudioprocessing/audio-resampler/Android.bp\n  media/libaudioprocessing/tests/Android.bp\n  media/libaudioprocessing/tests/fuzzer/Android.bp\n  media/libcpustats/Android.bp\n  media/libdatasource/Android.bp\n  media/libeffects/config/Android.bp\n  media/libeffects/downmix/Android.bp\n  media/libeffects/downmix/tests/Android.bp\n  media/libeffects/dynamicsproc/Android.bp\n  media/libeffects/factory/Android.bp\n  media/libeffects/loudness/Android.bp\n  media/libeffects/lvm/benchmarks/Android.bp\n  media/libeffects/lvm/lib/Android.bp\n  media/libeffects/lvm/tests/Android.bp\n  media/libeffects/lvm/wrapper/Android.bp\n  media/libeffects/preprocessing/Android.bp\n  media/libeffects/preprocessing/benchmarks/Android.bp\n  media/libeffects/preprocessing/tests/Android.bp\n  media/libeffects/proxy/Android.bp\n  media/libeffects/visualizer/Android.mk\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/xsd/Android.bp\n  media/libmedia/xsd/vts/Android.bp\n  media/libmediahelper/Android.bp\n  media/libmediahelper/tests/Android.bp\n  media/libmediametrics/Android.bp\n  media/libmediaplayerservice/Android.bp\n  media/libmediaplayerservice/datasource/Android.bp\n  media/libmediaplayerservice/nuplayer/Android.bp\n  media/libmediaplayerservice/tests/Android.bp\n  media/libmediaplayerservice/tests/stagefrightRecorder/Android.bp\n  media/libmediatranscoding/Android.bp\n  media/libmediatranscoding/tests/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libstagefright/Android.bp\n  media/libstagefright/bqhelper/Android.bp\n  media/libstagefright/bqhelper/tests/Android.bp\n  media/libstagefright/codecs/aacdec/Android.bp\n  media/libstagefright/codecs/aacenc/Android.bp\n  media/libstagefright/codecs/amrnb/dec/Android.bp\n  media/libstagefright/codecs/amrnb/enc/Android.bp\n  media/libstagefright/codecs/amrwbenc/Android.bp\n  media/libstagefright/codecs/avcdec/Android.bp\n  media/libstagefright/codecs/avcenc/Android.bp\n  media/libstagefright/codecs/common/Android.bp\n  media/libstagefright/codecs/flac/dec/Android.bp\n  media/libstagefright/codecs/flac/enc/Android.bp\n  media/libstagefright/codecs/g711/dec/Android.bp\n  media/libstagefright/codecs/gsm/dec/Android.bp\n  media/libstagefright/codecs/hevcdec/Android.bp\n  media/libstagefright/codecs/m4v_h263/dec/Android.bp\n  media/libstagefright/codecs/m4v_h263/enc/Android.bp\n  media/libstagefright/codecs/mp3dec/Android.bp\n  media/libstagefright/codecs/mpeg2dec/Android.bp\n  media/libstagefright/codecs/on2/dec/Android.bp\n  media/libstagefright/codecs/on2/enc/Android.bp\n  media/libstagefright/codecs/opus/dec/Android.bp\n  media/libstagefright/codecs/raw/Android.bp\n  media/libstagefright/codecs/vorbis/dec/Android.bp\n  media/libstagefright/codecs/xaacdec/Android.bp\n  media/libstagefright/colorconversion/Android.bp\n  media/libstagefright/data/Android.bp\n  media/libstagefright/filters/Android.bp\n  media/libstagefright/flac/dec/Android.bp\n  media/libstagefright/flac/dec/test/Android.bp\n  media/libstagefright/foundation/Android.bp\n  media/libstagefright/foundation/tests/AVCUtils/Android.bp\n  media/libstagefright/foundation/tests/Android.bp\n  media/libstagefright/foundation/tests/OpusHeader/Android.bp\n  media/libstagefright/foundation/tests/colorutils/Android.bp\n  media/libstagefright/http/Android.bp\n  media/libstagefright/httplive/Android.bp\n  media/libstagefright/id3/Android.bp\n  media/libstagefright/id3/test/Android.bp\n  media/libstagefright/mpeg2ts/Android.bp\n  media/libstagefright/mpeg2ts/test/Android.bp\n  media/libstagefright/omx/Android.bp\n  media/libstagefright/omx/tests/Android.bp\n  media/libstagefright/rtsp/Android.bp\n  media/libstagefright/tests/Android.bp\n  media/libstagefright/tests/ESDS/Android.bp\n  media/libstagefright/tests/HEVC/Android.bp\n  media/libstagefright/tests/extractorFactory/Android.bp\n  media/libstagefright/tests/fuzzers/Android.bp\n  media/libstagefright/tests/mediacodec/Android.bp\n  media/libstagefright/tests/metadatautils/Android.bp\n  media/libstagefright/tests/writer/Android.bp\n  media/libstagefright/timedtext/Android.bp\n  media/libstagefright/timedtext/test/Android.bp\n  media/libstagefright/webm/Android.bp\n  media/libstagefright/webm/tests/Android.bp\n  media/libstagefright/writer_fuzzers/Android.bp\n  media/libstagefright/xmlparser/Android.bp\n  media/libstagefright/xmlparser/test/Android.bp\n  media/libstagefright/xmlparser/vts/Android.bp\n  media/libwatchdog/Android.bp\n  media/mediaserver/Android.bp\n  media/mtp/Android.bp\n  media/mtp/tests/Android.bp\n  media/tests/benchmark/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/src/main/cpp/Android.bp\n  media/tests/benchmark/src/native/common/Android.bp\n  media/tests/benchmark/src/native/decoder/Android.bp\n  media/tests/benchmark/src/native/encoder/Android.bp\n  media/tests/benchmark/src/native/extractor/Android.bp\n  media/tests/benchmark/src/native/muxer/Android.bp\n  media/tests/benchmark/tests/Android.bp\n  media/utils/Android.bp\n  media/utils/fuzzers/Android.bp\n  services/audioflinger/Android.bp\n  services/audiopolicy/Android.bp\n  services/audiopolicy/common/Android.bp\n  services/audiopolicy/common/managerdefinitions/Android.bp\n  services/audiopolicy/config/Android.bp\n  services/audiopolicy/engine/common/Android.bp\n  services/audiopolicy/engine/config/Android.bp\n  services/audiopolicy/engine/interface/Android.bp\n  services/audiopolicy/engineconfigurable/Android.bp\n  services/audiopolicy/engineconfigurable/config/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/automotive/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/caremu/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.bp\n  services/audiopolicy/engineconfigurable/tools/Android.bp\n  services/audiopolicy/engineconfigurable/wrapper/Android.bp\n  services/audiopolicy/enginedefault/Android.bp\n  services/audiopolicy/enginedefault/config/example/Android.bp\n  services/audiopolicy/manager/Android.mk\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.mk\n  services/audiopolicy/tests/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/tests/Android.mk\n  services/mediacodec/Android.bp\n  services/mediacodec/registrant/Android.bp\n  services/mediaextractor/Android.bp\n  services/medialog/Android.bp\n  services/medialog/fuzzer/Android.bp\n  services/mediametrics/Android.bp\n  services/mediametrics/benchmarks/Android.bp\n  services/mediametrics/fuzzer/Android.bp\n  services/mediametrics/tests/Android.bp\n  services/mediaresourcemanager/Android.bp\n  services/mediaresourcemanager/fuzzer/Android.bp\n  services/mediaresourcemanager/test/Android.bp\n  services/mediatranscoding/Android.bp\n  services/mediatranscoding/tests/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  media/codecs/amrnb/dec/Android.bp\n  media/codecs/amrnb/dec/test/Android.bp\n  media/codecs/amrnb/enc/Android.bp\n  media/codecs/amrnb/enc/test/Android.bp\n  media/codecs/amrwb/dec/Android.bp\n  media/codecs/amrwb/dec/test/Android.bp\n  media/codecs/m4v_h263/enc/Android.bp\n  media/codecs/m4v_h263/enc/test/Android.bp\n  media/codecs/mp3dec/Android.bp\n  media/codecs/mp3dec/test/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    legacy_by_exception_only\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\n    SPDX-license-identifier-Unicode-DFS\nto:\n  apex/testing/Android.bp\n  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Car/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/CarEmu/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoInput/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoOutput/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_by_exception_only\nto:\n  drm/mediadrm/plugins/clearkey/hidl/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: I8360756b326b891b56629127091540310851c941\nMerged-in: Ic169757d64ad8da7eebd0e1febdcbfb467fe81f4\nMerged-in: Ifa3fefe5dc12229e8043a54ffd1f3958d6b02310\nMerged-in: I1e32081a069c4c1b25aa200dcdb165c0feb07b8a\nMerged-in: Ib2050becaf89b8e4db5867bc601dedeb4eb8ebd2\nMerged-in: I5a4d51fb1244ed49bcd70e446aaa26e2aa8ed7b1\n"
    },
    {
      "commit": "7e7b547d07934755c61820d0d011c016ab8f5c8a",
      "tree": "63d4cc7352ef749c8f795f5fbb94bdb18b3beef3",
      "parents": [
        "7a558ecac302fe70ecfc0ce5c374ae4a59bc8109",
        "19d3a0a2f72cfc26486047578269adf2f24343cf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 10 22:04:54 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 10 22:04:54 2021 +0000"
      },
      "message": "Merge \"Improve failure logging in AudioHealthTest\""
    },
    {
      "commit": "19d3a0a2f72cfc26486047578269adf2f24343cf",
      "tree": "8118b8265f819913cc3ac2af9cec64d2bff73e3b",
      "parents": [
        "c425880bfec08ec5a75566d90cff121ce52a9311"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Feb 08 17:16:37 2021 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Feb 10 20:52:36 2021 +0000"
      },
      "message": "Improve failure logging in AudioHealthTest\n\nPrint the types of the devices that were not found\nin the list of the attached devices.\n\nBug: 179743630\nTest: atest audio_health_tests\nChange-Id: I157b6779b8426dd8601c20ee07ecf414850fb09e\nMerged-In: I157b6779b8426dd8601c20ee07ecf414850fb09e\n"
    },
    {
      "commit": "958be0d657329595696c25a956da5a8a6c059087",
      "tree": "be0b94037eba3875cecc5735bdb1d82cf5ef07c3",
      "parents": [
        "1b8e0f7dd548c2328f5fdf05d45b467895f04ee6"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Feb 03 08:41:58 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 09 10:15:21 2021 +0000"
      },
      "message": "fix pfw criteria generator on S\n\nTest: make\nBug: 160640073\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ied9eaa0c9b60cf5a4a19682912da2766cc9212c5\n"
    },
    {
      "commit": "94378a21524499a2dcc73199f3c54f3065b53329",
      "tree": "2ab4b1b2ffedab0efbcf4a7df4e557eef562f147",
      "parents": [
        "a7c4e03dcec1f340bb862758611403489072de2e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 05 00:52:55 2021 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 05 02:00:04 2021 +0000"
      },
      "message": "Update BT audio policy configuration\n\nFix LE audio ports specificiation in\nbluetooth_audio_policy_configuration.xml.\nAdd a note that BLE_HEADSET/SPEAKER devices are not valid\nin audio HALs prior to V7.\n\nUpdated the V7 version of the BT configuration\nto match the pre-V7 version.\n\nTest: hardware/interfaces/audio/7.0/config/update_audio_policy_config.sh \\\n      device/google/bonito/audio_policy_configuration_a2dp_offload_disabled.xml \\\n      6.0\nChange-Id: I1d526e7b19a77f2d923e330cd4226f11b449af2f\n"
    },
    {
      "commit": "a7c4e03dcec1f340bb862758611403489072de2e",
      "tree": "b14a75431f38fd81e650940c7f501394d1669cf7",
      "parents": [
        "b9fef4fa9e37b1a5640fc7e5273cd424213d7220"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 04 19:20:12 2021 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 05 01:59:52 2021 +0000"
      },
      "message": "Update APM XML deserializer for HAL V7\n\nHAL V7 uses spaces instead of \u0027,\u0027 and \u0027|\u0027 for delimiting\nelements in channel masks, sample rates, and flags lists.\nThe version specified in the APM XML has been updated\nfrom \u00271.0\u0027 to \u00277.0\u0027 in order to reflect this.\n\nSerializer classes were refactored to get access to\nPolicySerializer class as a context which stores the\ndelimiters to be used.\n\nBug: 142480271\nTest: m, check device boot\nChange-Id: I7e765053e320b3789bc976e9905072c1eb476629\n"
    },
    {
      "commit": "6f7a1f3ed04e92c6caa9afd7295f8d51433f1696",
      "tree": "82aea57a929a1574c8e4c13e89e92541796009e7",
      "parents": [
        "790ce117ce1fb2f90f92e579013ec48bb65aec76",
        "b7637e9da12562aeee6b16cee1235cdc450c292a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 29 23:09:17 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 29 23:09:17 2021 +0000"
      },
      "message": "Merge \"APM: Create multiple MSD patches\""
    },
    {
      "commit": "b7637e9da12562aeee6b16cee1235cdc450c292a",
      "tree": "23b5e580d587a5dcd19434c77c2009e9aff4c6f3",
      "parents": [
        "6d604a5c5b46d42509bbacc205d2994631a16752"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "michael.chan@dolby.com",
        "time": "Tue Dec 08 15:44:49 2020 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jan 29 17:02:16 2021 +0000"
      },
      "message": "APM: Create multiple MSD patches\n\nThis change modifies setMsdPatch() by first renaming to setMsdPatches()\nand replaces its parameter with a pointer to DeviceVector, so that\nmultiple devices can be patched from MSD. If none are specified it will\nestablish MSD patches with all reported downstream output devices. It\ntears down existing MSD patches and creates new ones for those MSD\npatches that do not support new patch requests. We retain the existing\nMSD patches that already support new patch requests.\n\nIn getBestMsdAudioProfileFor(), ensure output profiles considered for\nevaluating the best matching audio profile is supported by the output\ndevice under consideration.\n\nRefactor by placing common code that tears down current MSD patches into\na new function called releaseMsdPatches().\n\nWhen obtaining an output, getOutputForAttrInt() returns device ID of the\ndefault device if its ID matches that of one of the output devices\nprovided by the engine.\n\nAdd testing for dual MSD patch creation by parameterizing existing MSD\ntests for single and dual MSD patch cases. Add new unit test to exercise\nsetMsdPatches and releaseMsdPatches. Make private MSD module member\nfunctions protected to enable testing.\n\nBug: 135620198\nTest: audiopolicy_tests\nChange-Id: I59a8976ce82dba04ca69347afc192e9143ef3629\nMerged-In: I59a8976ce82dba04ca69347afc192e9143ef3629\n"
    },
    {
      "commit": "394fdf81a91f5576e9f947e98cdf8d8a6090784c",
      "tree": "60b4700f7da9af77583f7823b47f715811236852",
      "parents": [
        "a6ccc1881c266cb9486b1dc4ae1233d6b63107ad"
      ],
      "author": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Fri Dec 25 17:39:49 2020 +0530"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Thu Jan 28 15:31:32 2021 +0530"
      },
      "message": "Added camera_service_fuzzer\n\nTest: ./camera_service_fuzzer\nBug: 174737048\n\nChange-Id: Idedd6112efbfc9127d162ec4a1145661f6775a0a\n"
    },
    {
      "commit": "3bea3a47bf6af84e58eada1964b8590f2727c3dd",
      "tree": "7d24fc611a5341a8aa0e7fde695563c1cb6f8355",
      "parents": [
        "991cfb08051f98b0d28733efda98c96fe1c76e2e"
      ],
      "author": {
        "name": "Kuowei Li",
        "email": "kuowei.li@mediatek.com",
        "time": "Thu Aug 13 14:44:25 2020 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 27 19:20:44 2021 -0800"
      },
      "message": "audio: add implementation for TV related API\n\n1. TunerConfiguration.\n2. AudioDescriptionMixLevel getter/setter.\n3. DualMonoMode getter/setter.\n4. PlaybackRate getter/setter.\n\nTest: TIS player with instrumented HAL\nTest: atest AudioTrackTest#testTunerConfiguration\nTest: atest AudioTrackTest#testDualMonoMode\nTest: atest AudioTrackTest#testAudioDescriptionMixLevel\nTest: atest AudioManagerTest#testGetAdditionalOutputDeviceDelay\nBug: 173482792\nMerged-In: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\nChange-Id: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\n"
    },
    {
      "commit": "991cfb08051f98b0d28733efda98c96fe1c76e2e",
      "tree": "9db468f92be10acec6b787093704fa5cdb5bd205",
      "parents": [
        "c1bdb2ccd847fdbc3526abeef135c2e0936db79c",
        "6d604a5c5b46d42509bbacc205d2994631a16752"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 27 08:43:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 08:43:02 2021 +0000"
      },
      "message": "Merge changes I2bb2cb29,Ie52ebe19\n\n* changes:\n  audio flinger: fix use of local variable after std:move\n  audio flinger: report actual sink device for MSD playback threads\n"
    },
    {
      "commit": "6d604a5c5b46d42509bbacc205d2994631a16752",
      "tree": "7085c10581019bc5e68eebd0db8ef37651ec3b99",
      "parents": [
        "029e33e5854af4071d9d3c873a70d2fcc235f396"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 16:30:04 2021 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 26 16:53:35 2021 -0800"
      },
      "message": "audio flinger: fix use of local variable after std:move\n\nFix potential problem introduced by commit 74c38dc7\n\nBug: 139894721\nTest: atest AudioTrackTest\nTest: atest RoutingTest\nTest: atest AudioPolicyManagerTestMsd\nChange-Id: I2bb2cb29e872115d6448dfbeb7d957c52f56289a\nMerged-In: I2bb2cb29e872115d6448dfbeb7d957c52f56289a\n"
    },
    {
      "commit": "029e33e5854af4071d9d3c873a70d2fcc235f396",
      "tree": "3a2092c0fb4760d4aa952708b9d423a9e71f7345",
      "parents": [
        "2610b34be2f01c7f3a96e98e257d3d690a1eef28"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 23 18:19:44 2020 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 26 16:52:51 2021 -0800"
      },
      "message": "audio flinger: report actual sink device for MSD playback threads\n\nWhen a playback thread is routed to an MSD module, make sure that the\nactual sink device selected by the software patch at the output of the\nMSD module is reported to AudioTrack clients.\n\nBug: 139894721\nTest: atest AudioTrackTest\nTest: atest RoutingTest\nChange-Id: Ie52ebe198e9ebdfe5f2a38dcd44c551c705a7931\nMerged-In: Ie52ebe198e9ebdfe5f2a38dcd44c551c705a7931\n"
    },
    {
      "commit": "38b2948cbc9922915c838cbe5222d071949f49d4",
      "tree": "5c758fe217c536bfa81219c8c3ba7c9c40d25ca5",
      "parents": [
        "cbeee874a7be8d02f255dc3041379e0d2551aa8c",
        "60bec724e4a0a2d7b66e464bbd7c19545a629a6f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 26 17:26:28 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 17:26:28 2021 +0000"
      },
      "message": "Merge \"audiopolicy: fixup! audiopolicy: HW Bridge Sink matching rule\""
    },
    {
      "commit": "abc5ec815dfbb6d609d779e1e4a8b5c7699473df",
      "tree": "25e6a6049eb19ff7fbcc6a4cbd99f5b477f1c64f",
      "parents": [
        "2610b34be2f01c7f3a96e98e257d3d690a1eef28"
      ],
      "author": {
        "name": "Grzegorz Kołodziejczyk",
        "email": "grzegorz.kolodziejczyk@codecoup.pl",
        "time": "Tue Dec 22 13:41:54 2020 +0100"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Tue Jan 26 14:07:46 2021 +0000"
      },
      "message": "Add Bluetooth LE Audio policy configuration\n\nPatch adds Bluetooth LE Audio xml policy configuration.\nInitial implementation only supports output devices.\n\nTag: #feature\nTest: make flash and boot\nSponsor: jpawlowski@\nChange-Id: I4e0c164d63dc68d4d70ca031cfda22e81819fd85\n"
    },
    {
      "commit": "60bec724e4a0a2d7b66e464bbd7c19545a629a6f",
      "tree": "00ade8df438dacb5ea2340a8a552a5d95c2117ff",
      "parents": [
        "2610b34be2f01c7f3a96e98e257d3d690a1eef28"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 12 17:46:51 2021 +0100"
      },
      "committer": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 26 14:45:51 2021 +0100"
      },
      "message": "audiopolicy: fixup! audiopolicy: HW Bridge Sink matching rule\n\nBug: 172833835\nTest: atest testRecordFromRemoteSubmix twice\nTest: adb shell ./data/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003d*VoiceCallBridgingTest*\nadb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dPlaybackReroutingUsageMatch/LegacyPlaybackReRoutingTest.playbackReRouting/*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I9eb9de9682624cc18644e0239bda72c2bb5b502c\nMerged-In: I9eb9de9682624cc18644e0239bda72c2bb5b502c\n"
    },
    {
      "commit": "2610b34be2f01c7f3a96e98e257d3d690a1eef28",
      "tree": "403e86834368a7af7f10b599fead99cef5f7e3b2",
      "parents": [
        "b208216c0dad0b587c7ec680b96049dcb81d99a0",
        "f7057ca95ee4f70a0199592761fbf8235a1855c2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 25 20:45:52 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 25 20:45:52 2021 +0000"
      },
      "message": "Merge \"Camera: fix wrong metadata pointer\""
    },
    {
      "commit": "f7057ca95ee4f70a0199592761fbf8235a1855c2",
      "tree": "ce45b24eb01a1fdfd3ad13e49dbeef0b854a87fe",
      "parents": [
        "b96da7539c8bb6c89e43d1c34b2a7cf89ebaa0fc"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Nov 16 14:11:40 2020 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jan 25 18:46:13 2021 +0000"
      },
      "message": "Camera: fix wrong metadata pointer\n\nFixed the issue when halRequest-\u003esettings is nullptr some\ninflight request calculation is wrong.\n\nTest: partner testing\nBug: 169310293\nChange-Id: Iccbf0c543299065d8beac79f4e5c87e4514fceba\n"
    },
    {
      "commit": "fcd7a562fd62212188144bae8c328ac8ca594736",
      "tree": "42a25b93504399df18e83525d557d5ed12935c3e",
      "parents": [
        "4886c4942cbc4c905cfdd32e81a4c00bbbfd0216",
        "7e94c2ee790d7cbaefc7fb314f36f9c4b923772c"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Fri Jan 22 16:39:56 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 22 16:39:56 2021 +0000"
      },
      "message": "Merge \"Added mediaresourcemanager_fuzzer\""
    },
    {
      "commit": "a0969954f631a50530364486c66525ce5ec1beaa",
      "tree": "4a7add74b51d9bc604076c7531cd826ac96c56dd",
      "parents": [
        "5f6cf1dba1d91fcee6ea50172b0aec4eef6895c9",
        "06e324aec97bf76ef7141a80d6fde1f9d21addee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 19 11:01:21 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 19 11:01:21 2021 +0000"
      },
      "message": "Merge changes from topic \"audio_source_issues\"\n\n* changes:\n  AudioPolicyManager: keep track of activity for HW Audio Patches\n  audiopolicy: Primary Output runtime management\n  audio policy: audio source automatic re-connection\n  AudioPolicy: remove devices while Sw bridge established\n"
    },
    {
      "commit": "5f6cf1dba1d91fcee6ea50172b0aec4eef6895c9",
      "tree": "acf5c5546d3ec80a63cc0b2a120fd6c60ec2df85",
      "parents": [
        "4bc812d42d9103cb7142884af3421ad13fee66ca",
        "12db7ff4634b5322005623b7e2bb7596852ccc74"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 15 19:47:13 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 15 19:47:13 2021 +0000"
      },
      "message": "Merge \"disable extractor memory limits under hwasan\""
    },
    {
      "commit": "12db7ff4634b5322005623b7e2bb7596852ccc74",
      "tree": "b43f753445164b1fe56a1f53374254821e863ba3",
      "parents": [
        "76e856baa24934d2f220c18a9059119a1c1b5380"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 07 14:28:33 2021 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 15 10:18:51 2021 -0800"
      },
      "message": "disable extractor memory limits under hwasan\n\nhwasan uses extra virtual space, pushing up against the memory limits.\n\nBug: 176211598\nTest: boot in both modes (w \u0026 w/o hwasan)\nChange-Id: Ifd6b40115a020bdbed28d50d2e927c2ee02d5570\n"
    },
    {
      "commit": "06e324aec97bf76ef7141a80d6fde1f9d21addee",
      "tree": "4e1dc3304bd8bc2a7fe305c58ef22121a8cdb8d3",
      "parents": [
        "fa51ed78aa7172cecd75a19f4999c347a70b2c56"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Oct 14 18:02:07 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:25:13 2021 +0000"
      },
      "message": "AudioPolicyManager: keep track of activity for HW Audio Patches\n\nIn order to allow volume management for all volume sources, this\nCL adds Source Clients even in case of HW AudioPatches.\nIt uses the mixPort declared to reach the sink involved in the\nHW Audio Patch to add this client.\n\nTest: Manual: build \u0026 call \u0026 plays with HW / SW AudioBridges.\nAuto: (Non-regression on emulator)\nadb shell ./data/AudioPolicyEmulatorTests --gtest_filter\u003d*AudioPatchTest*\nadb shell ./data/AudioPolicyEmulatorTests --gtest_filter\u003d*AudioSourceTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Iaf44db2fd9a90dde9ef8160869af73983a5feae4\nMerged-In: Iaf44db2fd9a90dde9ef8160869af73983a5feae4\n"
    },
    {
      "commit": "fa51ed78aa7172cecd75a19f4999c347a70b2c56",
      "tree": "c5fbd304017a4ed6cda091462d8ffebc6558b64a",
      "parents": [
        "d2c073b0f2df2f77ba98db585738984bb3067183"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Oct 14 16:13:20 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:24:41 2021 +0000"
      },
      "message": "audiopolicy: Primary Output runtime management\n\nIn case of unavailability of device(s) attached to the primary output,\nthis output can be disconnected.\nThe cache variable must be resetted, then restored when at least one\ndevice supported by one profile of the primary output is made\navailable again.\n\nTest: adb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioSourceTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Iae8937cad3d70b0e8c7ff4516c27aa8eff231eaa\nMerged-In: Iae8937cad3d70b0e8c7ff4516c27aa8eff231eaa\n"
    },
    {
      "commit": "d2c073b0f2df2f77ba98db585738984bb3067183",
      "tree": "1db13dbd7a0d83b283ddaa7a1cb26564bb078761",
      "parents": [
        "5bd3d2d11dd58f296522d5bb134c260defaf622e"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Sep 29 16:05:07 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:24:20 2021 +0000"
      },
      "message": "audio policy: audio source automatic re-connection\n\nWhen an audio source is started, if either the sink or the source\nbecomes unavailable, the audio source is stopped.\nIt implies that the client must listen to patch/ports to become\naware that the source has been stopped.\n\nIn order to prevent this, it is possible to allow automatic re-connection\nof audio source as APM already keeps track of AudioSource.\n\nIn case of unavailability, source is only disconnected, not stopped to prevent\nfrom removing from tracking list.\n\nTest: adb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003d*AudioSourceBridgingTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I414195a85a06c9212420e3b51bf2863f3e08c755\nMerged-In: I414195a85a06c9212420e3b51bf2863f3e08c755\n"
    },
    {
      "commit": "5bd3d2d11dd58f296522d5bb134c260defaf622e",
      "tree": "f4e8bc41771303eae5eb11b88b2cf1c3938e0a87",
      "parents": [
        "133e9fcc795f5ae65b884948ca3376c4fec358c0"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed May 06 18:37:04 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:23:24 2021 +0000"
      },
      "message": "AudioPolicy: remove devices while Sw bridge established\n\nWhen devices are disconnected while involved in a SwBridge,\nthe connectAudioSource function may be called while the cache\nof the engine has not yet been updated with availability of devices.\n\nThis CL forces to retrieve sinkDevices from engine without using\nthe cache.\n\nIt also ensures that Audio Source using Direct Output are also\nre routed while sink device has been made UNAVAILABLE then AVAILABLE\nagain. In this case, no SwOutput will keep track of the AudioSource.\nOrphans Audio Source shall be handled independantly.\n\nSo far, robustness cases added to the following test.\nIn some case, fallback on speaker is allowed, in other,\ndevice none is selected while given sink has been made unavailable:\n\nTest: So far: adb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioPatchTest/AudioModeBridgingTest.\nadb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioSourceTest/AudioSourceBridgingTest.UsingAudioSourceAPI/\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I2663d10f08de3191de4d95bc81749ede9b8a360f\nMerged-In: I2663d10f08de3191de4d95bc81749ede9b8a360f\n"
    },
    {
      "commit": "7e94c2ee790d7cbaefc7fb314f36f9c4b923772c",
      "tree": "44a9d04df6609a06e5a5e7ccfcabe34674f719b8",
      "parents": [
        "20c1f934cb5c4ddbb797482f7c347117ee9eda91"
      ],
      "author": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Thu Aug 13 10:18:35 2020 +0530"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Wed Jan 13 10:04:00 2021 +0530"
      },
      "message": "Added mediaresourcemanager_fuzzer\n\nTest: ./mediaresourcemanager_fuzzer\nBug: 172427324\n\nChange-Id: Id4238ab55a6aa5b677494abc36b304915c6824f6\n"
    },
    {
      "commit": "589c173758e4424a8ec495639beb039c691bdff2",
      "tree": "cc77ac9d5cdb2e7acd15925453a1b1fb12c0d881",
      "parents": [
        "75981d603d26be9411a636703cafb1f3319c1aa7",
        "947f0a41359ce46ddffc75bcf6454e189299ba78"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Fri Jan 08 21:25:31 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 08 21:25:31 2021 +0000"
      },
      "message": "Merge \"Update mediacodec policy with stat\""
    },
    {
      "commit": "947f0a41359ce46ddffc75bcf6454e189299ba78",
      "tree": "4c47ed422f647737e2e53f83ebb5d834dddffdbf",
      "parents": [
        "42969d3c83520a8c770b86e123f965e1ea6946a7"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Wed Jan 06 16:49:58 2021 -0800"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Thu Jan 07 04:55:34 2021 -0800"
      },
      "message": "Update mediacodec policy with stat\n\nSanitizers makes syscall to \u0027stat\u0027 that is blocked by libminijail.\nBug: 158010610\nBug: 173497308\nTest: n/a\n\nChange-Id: I7bc5c0736b69fb5010a60e9317f9eeebaec6fbf8\n"
    },
    {
      "commit": "6109cdbc0b8ce3e32e71a29ecd3e774a8aa662fb",
      "tree": "990d82f194f8a000cd963d717cfa19ef610c825a",
      "parents": [
        "b572b63b6e788e036ff91058df2a7b3ba76ee1f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 20 18:41:04 2020 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 05 12:50:23 2021 -0800"
      },
      "message": "Audio HAL: add channel mask and tags to track metadata\n\nAdd channel mask and audio attributes tags to playback\nand record track metadata sent to audio HAL.\n\nBug: 168751366\nTest: make\nChange-Id: I06a63963e1be53bd965792dec607fa67a89f28bf\nMerged-In: I06a63963e1be53bd965792dec607fa67a89f28bf\n"
    },
    {
      "commit": "a702052dc6b012c5ed2ea2c106fa8eec6c146ccb",
      "tree": "4398974a312a55497a171dc6eecaf1cef6a0d927",
      "parents": [
        "1e2b6013c9d9ceb39530806507b40f688f553568"
      ],
      "author": {
        "name": "wei wang",
        "email": "wei.wang@amlogic.com",
        "time": "Thu Dec 10 21:36:11 2020 -0500"
      },
      "committer": {
        "name": "wei wang",
        "email": "wei.wang@amlogic.com",
        "time": "Tue Jan 05 01:50:02 2021 +0000"
      },
      "message": "audiopolicy: default engine audio source add blutooth ble device [1/1]\n\nPD# SWPL-37970\nBug:175350838\n\nProblem:\nadd audio input dev (AUDIO_DEVICE_IN_BLUETOOTH_BLE ) for BLE RC voice\n\nSolution:\ndefault engine audio source add blutooth ble device\n\nVerify:\nverify by ohm\n\nSigned-off-by: wei wang \u003cwei.wang@amlogic.com\u003e\nChange-Id: I1894f6821034b475f83e99cb6e1dc75e1f5b6514\n"
    },
    {
      "commit": "c6e6d625ff440804d4c743c981050944559a4bdd",
      "tree": "818ddac3ec2c8f94fff5c936659e322484afe178",
      "parents": [
        "a3f23cee27a0d94c13de99233399c438843ef1de",
        "61cc5c2a8dcd36b4658ca329cb3fd6f0874d96b1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 23 13:31:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 23 13:31:15 2020 +0000"
      },
      "message": "Merge \"audio policy: phone strategy routing based on preferred device API\" am: af5c22012f am: 61cc5c2a8d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1534354\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I1fe8d8f65dedf73f7180294e851d5721bbae9f5e\n"
    },
    {
      "commit": "a3f23cee27a0d94c13de99233399c438843ef1de",
      "tree": "c1c82501a544f1b4885a58d9e4a91f775be507aa",
      "parents": [
        "81429402d87f7de056051e603e811bab32e5c8f1",
        "49bc142eaea22acd5b458d3fda0d16bb435fa314"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 23 09:44:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 23 09:44:49 2020 +0000"
      },
      "message": "Merge \"Revert^2 \"Support device role for capture preset.\"\" am: 05c7bc9e01 am: 49bc142eae\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1534353\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ifbfeae103e4baf6785d769b44b53ec5309eb51cf\n"
    },
    {
      "commit": "cca11ce427e12110658ad5ea206f89c2ffd2af7a",
      "tree": "09d5a0a402054d4de954e33a0a3c68ce02742a0f",
      "parents": [
        "05c7bc9e01aed3301498313646669a5d103b28ca"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 25 15:31:27 2020 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 23 08:36:58 2020 +0000"
      },
      "message": "audio policy: phone strategy routing based on preferred device API\n\nUse preferred device API instead of forced usage to select\naudio route for phone strategy in default audio policy engine.\n\nAlso remove use of forced usage for record which was redundant with\nforced usage for communication (never used independently).\n\nBug: 161358428\nTest: audio smoke tests\nChange-Id: Ie0c36b69ae6849c6efe7b5602dc9d0322856f561\nMerged-In: Ie0c36b69ae6849c6efe7b5602dc9d0322856f561\n"
    },
    {
      "commit": "6e46824a30f72400949aa91355dd15be64888b43",
      "tree": "17b7fcd36f0eade201af3550a4869f52b19c42f1",
      "parents": [
        "e8a66c66bad62aa5ab4778ce7ac448d563eae335"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Thu Sep 03 17:54:16 2020 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 18:53:55 2020 +0000"
      },
      "message": "Revert^2 \"Support device role for capture preset.\"\n\nSupport set/add/remove/clear/get device role for capture preset. The\ndevice role can be DEVICE_ROLE_PREFERRED and DEVICE_ROLE_DISABLED. The\npreferred and disabled devices can be multiple devices. In this CL,\nonly cache preferred devices in engine but not use for audio routing.\n\nBug: 160352965\nTest: atest AudioServiceHostTest\nTest: atest audiopolicy_tests\n\nChange-Id: I368d562ec2aae68aa239dce75d54ca2772b30e76\nMerged-In: I368d562ec2aae68aa239dce75d54ca2772b30e76\n"
    },
    {
      "commit": "7e3b74149a1f1f4e190fae18bcee7ca7c9d711db",
      "tree": "a3edfc9ea7098c7c13e4d88e195d310c780a409f",
      "parents": [
        "d7bbbd501ce6b5cd646d1cbde29c678c86205b09",
        "2ed262362f00eb5b75fa9279f7695798d7356505"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 17:26:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 22 17:26:34 2020 +0000"
      },
      "message": "Merge \"Introduce device(s) role for strategy.\" am: e8a66c66ba am: 2ed262362f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1534352\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I4de8dd00c660eda3c92c4662468520eed6bc3f94\n"
    },
    {
      "commit": "d7bbbd501ce6b5cd646d1cbde29c678c86205b09",
      "tree": "9cf406145e2fe5b6c5a21799f7467fed7da6de88",
      "parents": [
        "c8f7d1b44197147b5f48c0cca88b3e680a3f83d8",
        "7fe4bf069f4b972a20731828e9e3004a818a41d5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 12:13:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 22 12:13:06 2020 +0000"
      },
      "message": "Merge \"Use AudioDeviceTypeAddrVector instead of Vector\u003cAudioDeviceTypeAddr\u003e\" am: 31bdb51946 am: 7fe4bf069f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1534351\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I62f71ae4905769303b3ea59020d0b6ad40e99cd4\n"
    },
    {
      "commit": "4e82621821c5adf1dbd3ef1911fc6a2a0becfbc8",
      "tree": "1de376a468b699ac4fe3f97fac00bc2c62052bda",
      "parents": [
        "c1afe3ba438699122aa2c3a66c3c58e87dd5525b"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 07 17:32:40 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 21 16:28:31 2020 +0100"
      },
      "message": "Introduce device(s) role for strategy.\n\nAdding interface to get/set/removeDevicesRoleForStrategy. The interfaces\nallows to modify the devices\u0027 role, such as preferred, for strategy.\nGet/set/removePreferredDeviceForStrategy is reimplemented by the new\ninterfaces.\n\nTest: atest AudioHostTest\nTest: atest AudioServiceHostTest\nTest: atest AudioServiceTest\nTest: atest audiopolicy_tests\nBug: 160352965\nChange-Id: I0af737542a8599938cae4e142b733159f21ed5a8\nMerged-In: I0af737542a8599938cae4e142b733159f21ed5a8\n"
    },
    {
      "commit": "c1afe3ba438699122aa2c3a66c3c58e87dd5525b",
      "tree": "1c1290b565c6989d90f91b00f6005176e74aa28c",
      "parents": [
        "d295e4b4bdc617ebdeb36deb97cb9597a5e603f1"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 07 11:56:38 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 21 16:28:18 2020 +0100"
      },
      "message": "Use AudioDeviceTypeAddrVector instead of Vector\u003cAudioDeviceTypeAddr\u003e\n\nAudioDeviceTypeAddrVector is std::vector\u003cAudioDeviceTypeAddr\u003e. In that\ncase, it is not needed to use Vector\u003cAudioDeviceTypeAddr\u003e. It is also\nsuggested to use the std::vector instead of Vector.\n\nTest: atest AudioHostTest\nTest: atest AudioServiceHostTest\nTest: atest audiopolicy_tests\nBug: 160352965\nChange-Id: Ibcd91fcba95c53e3c172ae62fc6f30e70509de51\nMerged-In: Ibcd91fcba95c53e3c172ae62fc6f30e70509de51\n"
    },
    {
      "commit": "2349b1a90de7a7f89185056abd17d9dae78c8c03",
      "tree": "2a1cc195ea3775fe6a4156dbd48c30e89570aec1",
      "parents": [
        "da86112baea3e27f5bfdee6c0732b0a6d476ff0e",
        "6dc4d54815fef551778caca0e5b234e36a3ba18e"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Thu Dec 17 19:08:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 17 19:08:52 2020 +0000"
      },
      "message": "Merge \"libaaudioservice: Updated to build both static and shared library\" am: d295e4b4bd am: 6dc4d54815\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1522719\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I02a0256e292bca37d1d34415c7988b6d0a38708a\n"
    },
    {
      "commit": "3813f74c4e035da3e831ad14d6fe1910e52c5e55",
      "tree": "e780833025c08c7870d9cc9c3915fdeb8d9414b4",
      "parents": [
        "e9ebb9efbcac3a27a26cb068ac5e8fd187bcaaa2"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Wed Nov 11 11:12:48 2020 +0530"
      },
      "committer": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Wed Dec 16 13:45:08 2020 +0530"
      },
      "message": "libaaudioservice: Updated to build both static and shared library\n\nTest: Build libaaudioservice\nBug: 174736869\n\nChange-Id: If2fbbe199314ad21ef08338b5aed9c8991031c15\n"
    },
    {
      "commit": "1349f47fdb96e0347075b7f6f6ff453e97caba17",
      "tree": "fde4f3762f714a441d05f0108acb6820b6327480",
      "parents": [
        "89715382dcdb87aca5737b0954cdd844bcc58267"
      ],
      "author": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Wed Nov 11 23:49:28 2020 +0000"
      },
      "committer": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Tue Dec 15 22:27:51 2020 +0000"
      },
      "message": "Log MediaExtractor entry point to MediaMetrics\n\nBug: 170386720\nTest: atest libctsmediav2extractor_jni\nTest: atest CtsMediaTestCases\nChange-Id: I648e27b1b483a646df77e2a88ec5ac8af01a0bb9\nMerged-In: I648e27b1b483a646df77e2a88ec5ac8af01a0bb9\n"
    },
    {
      "commit": "99da7fc6dae0ae90f4ef5d527b0db78b9c65efa5",
      "tree": "90ad9124bc2d91b078825b1d6767f10777f84431",
      "parents": [
        "666f0b36be4cf032ed2aca375e4cbb3b46f1004e",
        "aab6038b83f5101b487cb2ba162d84e8ba7c304b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 11 04:17:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 11 04:17:21 2020 +0000"
      },
      "message": "Merge \"Camera: Remove app segment stream\u0027s locked buffer tracking\" into rvc-qpr-dev am: aab6038b83\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/13084269\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If4bcb14e999d9f6f1614d48e3b613e6c3e5ca3bc\n"
    },
    {
      "commit": "aab6038b83f5101b487cb2ba162d84e8ba7c304b",
      "tree": "de90f35e8c2aab92bab4418b61069cecdf32f079",
      "parents": [
        "abe2569e0429cd90c4189b460fc377cfbec7daed",
        "6b97414787adcadb88d7b7ede90f787a7c7dcb2d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 11 03:48:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 11 03:48:16 2020 +0000"
      },
      "message": "Merge \"Camera: Remove app segment stream\u0027s locked buffer tracking\" into rvc-qpr-dev"
    },
    {
      "commit": "6b97414787adcadb88d7b7ede90f787a7c7dcb2d",
      "tree": "f8a54db73d4f7163868d5d5a94d69bd5a98e54ea",
      "parents": [
        "e0a387421fab08b47352f09c60744747b5b624e4"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Nov 18 16:37:45 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Dec 10 18:14:40 2020 +0000"
      },
      "message": "Camera: Remove app segment stream\u0027s locked buffer tracking\n\nThe app segment CpuConsumer\u0027s max locked buffer count is already\nenforced by the buffer queue. No need to monitor the locked buffer count\nseparately.\n\nIn case we are exceeding the max locked buffer count, the lockBuffer()\ncall returns failure, so further app segment processing will be deferred.\n\nTest: vendor testing\nBug: 173583542\nChange-Id: I02522bcc695ee00ac4ee48df4cfd76ce35522cb9\nMerged-In: I02522bcc695ee00ac4ee48df4cfd76ce35522cb9\n"
    },
    {
      "commit": "deddbbc1a45db2e9ce86d7fbbf5767eaa7f41ebe",
      "tree": "ecfa64a094ff2d4c1b48f83adb494c90830d65f5",
      "parents": [
        "091346b05e4aa34dad5581794420ad19f5c26de6",
        "c5970fd0dae18a15f7a673816aa8e817134c7255"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 22:30:00 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 09 22:30:00 2020 +0000"
      },
      "message": "Merge \"mediaresourcemanager: remove AIDL comparison ops\" am: 9494e4ede7 am: c5970fd0da\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1522082\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I101e6247eb8ed2bca1b36232b147f5d487590881\n"
    },
    {
      "commit": "c5970fd0dae18a15f7a673816aa8e817134c7255",
      "tree": "6c2aab42df56cf1109bc9363963e5c442b6123b0",
      "parents": [
        "5d30d3aaaf4cd0c55b36cd6e492f178042498ba4",
        "9494e4ede7780ce2ff96544ee3a0b67c8d92c7d8"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 22:08:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 09 22:08:21 2020 +0000"
      },
      "message": "Merge \"mediaresourcemanager: remove AIDL comparison ops\" am: 9494e4ede7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1522082\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I5fe0f4309a3d7bf81b29cafa90b38a74203146ff\n"
    },
    {
      "commit": "9494e4ede7780ce2ff96544ee3a0b67c8d92c7d8",
      "tree": "05b0dbd923045cd5276b10501292e17a6c165532",
      "parents": [
        "754ef5960fa00ebdffd4058d4f3941e4222d5c19",
        "bb07853cea158899b0296886b2bac239eaf738dd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 21:46:59 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 09 21:46:59 2020 +0000"
      },
      "message": "Merge \"mediaresourcemanager: remove AIDL comparison ops\""
    },
    {
      "commit": "bb07853cea158899b0296886b2bac239eaf738dd",
      "tree": "c6361db311687c9f9fa6750698f6466d543ddba9",
      "parents": [
        "be78d20a39da3c48e906710b4e5868d670781066"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 20:14:05 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 20:14:05 2020 +0000"
      },
      "message": "mediaresourcemanager: remove AIDL comparison ops\n\nThese are now auto-generated.\n\nThese are now auto-generated, and these were creating ambiguous\nresolution errors.\n\nBug: 175018841\nTest: tests in test mapping\nMerged-In: Iac63f7fc5c6c7152d69071ba5d4ef2daf873ffdb\nChange-Id: I9288dc07ebb49158bd8540672b8dadca1036dde9\n"
    },
    {
      "commit": "091346b05e4aa34dad5581794420ad19f5c26de6",
      "tree": "aa180ba8c1dfc20c749b28fffced1ecf056f69f0",
      "parents": [
        "0daad99906dee7e846863f036d6cf705f1b83665",
        "5d30d3aaaf4cd0c55b36cd6e492f178042498ba4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 09 14:49:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 09 14:49:47 2020 +0000"
      },
      "message": "Merge \"audio policy: default routing rules for BLE audio devices\" am: 754ef5960f am: 5d30d3aaaf\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1473282\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ic10622f3305ddd20695b6c49682a9b6dba3cbb3e\n"
    },
    {
      "commit": "5d30d3aaaf4cd0c55b36cd6e492f178042498ba4",
      "tree": "f3eeae885edce3bce1277456cf253500ed59f23f",
      "parents": [
        "045116b1f7590217b5920d06c9d8e8c86836e411",
        "754ef5960fa00ebdffd4058d4f3941e4222d5c19"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 09 14:31:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 09 14:31:50 2020 +0000"
      },
      "message": "Merge \"audio policy: default routing rules for BLE audio devices\" am: 754ef5960f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1473282\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I2197678ea083354e8896202831f9e4f0368cc6be\n"
    },
    {
      "commit": "754ef5960fa00ebdffd4058d4f3941e4222d5c19",
      "tree": "922101c380c21c310295befdbc84d2c8b773e9b1",
      "parents": [
        "8fb2e4ad98d5eccbbd3b917fee31c1b1a9a118dc",
        "d77befba846e74864fac3acc9e51ff4af91dc986"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 09 14:07:43 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 09 14:07:43 2020 +0000"
      },
      "message": "Merge \"audio policy: default routing rules for BLE audio devices\""
    },
    {
      "commit": "7fa4eba54b5b0dc6e2c786feb3dde0df96cd59a1",
      "tree": "892df045ee8b66bbdd9892fe1337f619ba7f0f7b",
      "parents": [
        "a307947b862da2b9942d73d3de942c3966141ecf",
        "1d5300615c3afff3397a57f72d029f284ccb9059"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 05 02:17:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Dec 05 02:17:39 2020 +0000"
      },
      "message": "Merge \"Added mediametrics_service_fuzzer\" am: 3fdd9fb5c3 am: 1d5300615c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1505333\n\nChange-Id: I760a13a41327830d51659bb4ad7efe4939d30335\n"
    },
    {
      "commit": "1d5300615c3afff3397a57f72d029f284ccb9059",
      "tree": "94c0623c23eca79a03dbe9ac704c322d8173278d",
      "parents": [
        "1d8c7fa97b31f7876ad734bcf7f6a7a8ee2b77e7",
        "3fdd9fb5c3a182d4640d02c60114a476af8c9ae3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 04 22:11:36 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 04 22:11:36 2020 +0000"
      },
      "message": "Merge \"Added mediametrics_service_fuzzer\" am: 3fdd9fb5c3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1505333\n\nChange-Id: I135e7f0f2ef177dc6025b6e8fa08361e084ecadd\n"
    },
    {
      "commit": "3fdd9fb5c3a182d4640d02c60114a476af8c9ae3",
      "tree": "a8e081f24169dd3dc2a5cf33271b362e74b8f8c4",
      "parents": [
        "2fa70d54f69ad69db1c2c0a874295839f99f93ae",
        "ab3a6418bb2605a3dbb4dc42c773bcc246762942"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 04 21:53:02 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 21:53:02 2020 +0000"
      },
      "message": "Merge \"Added mediametrics_service_fuzzer\""
    },
    {
      "commit": "ab3a6418bb2605a3dbb4dc42c773bcc246762942",
      "tree": "bf03eacd2de782664895cbe1658ac675fe603831",
      "parents": [
        "691ebfea2dc3dab4daeafafe005933adea9fb4cb"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Thu Oct 22 16:13:32 2020 +0530"
      },
      "committer": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Fri Dec 04 11:47:48 2020 +0530"
      },
      "message": "Added mediametrics_service_fuzzer\n\nTest: ./mediametrics_service_fuzzer\nBug: 172429215\n\nChange-Id: I9fe2b593124b80552c5bd8315e0a78018ce3ebbc\n"
    },
    {
      "commit": "cddf3949efde393df1efbd0e082d2c8d09dcf76c",
      "tree": "90b12ed5cf066bea01a8fa06da2393cc5165a0b3",
      "parents": [
        "9df94ac92662e7fdfa46eaabf3f68cacc4f61e7d",
        "e2aaf07831acd38c921f8dd96bc713c5d820597a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 22:07:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 22:07:55 2020 +0000"
      },
      "message": "Merge \"Fix exception when Release Audio Input Effect\" am: 1004c244b5 am: e2aaf07831\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1512719\n\nChange-Id: I6990e76cb3c4d65e41bd25d16ca10bdaf2773f03\n"
    },
    {
      "commit": "e2aaf07831acd38c921f8dd96bc713c5d820597a",
      "tree": "c4c2c61e906e90389b1c188e0e15b153182b84c2",
      "parents": [
        "29582de4e2db24a71ebfca211cb18055a197ba6a",
        "1004c244b5ffcfdb5d828f1415c12a4b24e892f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 21:45:51 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 21:45:51 2020 +0000"
      },
      "message": "Merge \"Fix exception when Release Audio Input Effect\" am: 1004c244b5\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1512719\n\nChange-Id: I73e7501dd17e7602dcebac85473f9eeef7827ed5\n"
    },
    {
      "commit": "1004c244b5ffcfdb5d828f1415c12a4b24e892f5",
      "tree": "07de0589f47c640b13cb358332cf9e8d1bcd6ed5",
      "parents": [
        "691ebfea2dc3dab4daeafafe005933adea9fb4cb",
        "56aa82b2b865d81b9bd7ae532d21224637edef59"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 21:05:13 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 03 21:05:13 2020 +0000"
      },
      "message": "Merge \"Fix exception when Release Audio Input Effect\""
    },
    {
      "commit": "260cc57e41e68e5c42a3ce8ed76d7f3e7a5f3490",
      "tree": "031059dd7bad48b1086679f4fad51839eadab212",
      "parents": [
        "3cbeba827d39bc2e6c9c35ad522d5133547acbe6",
        "515de614767603d15d0825030079821385acdade"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 16:56:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 16:56:28 2020 +0000"
      },
      "message": "Merge \"Camera: Document behavior when cropRegion and zoomRation conflict\" into rvc-qpr-dev am: 515de61476\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/13149080\n\nChange-Id: I086292bc6cc399cf6eed413659fc6446fcb67846\n"
    },
    {
      "commit": "515de614767603d15d0825030079821385acdade",
      "tree": "7be9df834fc494b968326aaddc64db9bdff03315",
      "parents": [
        "fff9c8aa87a7c03e063cf6adeb4c63b895b6d145",
        "c2dae590b622a309d25aae958723441d35dbffd7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 16:46:12 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 16:46:12 2020 +0000"
      },
      "message": "Merge \"Camera: Document behavior when cropRegion and zoomRation conflict\" into rvc-qpr-dev"
    },
    {
      "commit": "56aa82b2b865d81b9bd7ae532d21224637edef59",
      "tree": "76c039da490ffa44bfba5e302e3575b7c00a8aac",
      "parents": [
        "d19faf826761db767dc8ee967149fe8939416850"
      ],
      "author": {
        "name": "wendy lin",
        "email": "wendy.lin@mediatek.com",
        "time": "Wed Dec 02 15:19:55 2020 +0800"
      },
      "committer": {
        "name": "Lin Lili",
        "email": "lili.lin@mediatek.com",
        "time": "Thu Dec 03 03:28:45 2020 +0000"
      },
      "message": "Fix exception when Release Audio Input Effect\n\nEffect is removed while user switch audio output device.\nWhen updating output device for record thread, exception happens.\nSolution is to get record thread lock before update output devices.\nHolding thread lock will keep effect not being removed while\nupdating devices.\n\nBug: 174714069\nTest: Audio Stress Test\nChange-Id: If831b2322bb02784b0a278abd9ba14b5150ff80b\n"
    },
    {
      "commit": "802793489675990aa90a446ecceaffbc4e081120",
      "tree": "8db7299c19371f7ef8ab2c2f1328dbdcf5311f4d",
      "parents": [
        "cbf8ba955c3d0c95f15791a72b0e29fae873fd02",
        "49a6d9c78aaa07ab83494d628cc6b7a2386a2b55"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Dec 03 03:18:52 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 03:18:52 2020 +0000"
      },
      "message": "Merge \"Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855\" into stage-aosp-master"
    },
    {
      "commit": "6f44f305512f1a18508331e988fe8c07e416993d",
      "tree": "522c9221d569b99564916d9cbc7a9f554a9a7bca",
      "parents": [
        "7d9fcc55fe4bc133a5465306941aecc5f2e4629b",
        "cbf8ba955c3d0c95f15791a72b0e29fae873fd02"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 01:21:17 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:17 2020 +0000"
      },
      "message": "Merge changes from topic \"aosp-hal-enum-strings\" am: 691ebfea2d am: cbf8ba955c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515660\n\nChange-Id: Id8ceeda379f65c445e48f92ffad450d7ffd61e88\n"
    },
    {
      "commit": "7d9fcc55fe4bc133a5465306941aecc5f2e4629b",
      "tree": "b7cf5883546d9ce77e72199383da4644efb7e8bd",
      "parents": [
        "9abebbaebcaaa09e98fd1d966289032406089521",
        "d9847734736729512b7621675835193e3767ea27"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 03 01:21:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:15 2020 +0000"
      },
      "message": "Fix buildCommonTypesStructureFile.py script am: be73c52729 am: d984773473\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515659\n\nChange-Id: Icee17a7a174b6d4abd18b2ed523f48a23952ab12\n"
    },
    {
      "commit": "9abebbaebcaaa09e98fd1d966289032406089521",
      "tree": "7126439c267d64cdc59a062cdb7a040f2f28ec09",
      "parents": [
        "5ffb3ef0be0aff54df6b554e5c78c598c4a5ce55",
        "a69f0713ab8ae25a7323773c97dfe707c34acdda"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter am: dc6be0d575 am: a69f0713ab\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515658\n\nChange-Id: I7a32469c35e17c15bb5d147fcac930eef04c14ff\n"
    },
    {
      "commit": "f74b8a59c3ef78654b9ca42e3d63a1b66e184e2a",
      "tree": "4c674388124bbfbfebc3e9c3ae2f3963f255a7dd",
      "parents": [
        "e80bee84eab70271ac3309301fb432ce10663eca",
        "fff9c8aa87a7c03e063cf6adeb4c63b895b6d145"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 02 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 02 14:29:10 2020 +0000"
      },
      "message": "Merge \"aaudio: use strong pointer to protect callback\" into rvc-qpr-dev am: fff9c8aa87\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/13150716\n\nChange-Id: I03ef28890bf44e5ee07d600e7c011693369e3a68\n"
    },
    {
      "commit": "fff9c8aa87a7c03e063cf6adeb4c63b895b6d145",
      "tree": "6354ae133efd160933af930063723f9559bfd7a2",
      "parents": [
        "75f20e195a2c460162cc85f733dcbd6a6a3908c7",
        "f2d8470b1c8efe422f73adf682e7858810d7fa4a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 02 14:01:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 02 14:01:26 2020 +0000"
      },
      "message": "Merge \"aaudio: use strong pointer to protect callback\" into rvc-qpr-dev"
    },
    {
      "commit": "49a6d9c78aaa07ab83494d628cc6b7a2386a2b55",
      "tree": "70acc7a3307c66d6ac1b7ee5cc59d88ebfacad34",
      "parents": [
        "9fa7856094a8705be2061e532c36e74d103719b8",
        "55f730f7c1a0b5f963f47fdd65c43609a143f18c"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 02 00:41:55 2020 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 02 00:41:55 2020 -0800"
      },
      "message": "Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855\n\nBug: 172690556\nMerged-In: I72658443fde61aa5f10463fcc42772daf4143ed0\nChange-Id: Ifb9605a1f9407357ddc755551e2d1d51c7f09bfc\n"
    },
    {
      "commit": "46f16a9e7a3ced614ae5dfd6ac6e53e1971c7ce3",
      "tree": "2c4bcc8ae758fd636a042755cdd3915fcb1b3e79",
      "parents": [
        "be73c52729c8061cd86903007ab5483fd69f8175"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 18 17:29:45 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:42:06 2020 +0000"
      },
      "message": "Fix channel mask for the EARPIECE in example APM config\n\nEARPIECE is an output device, must have an output channel\nmask.\n\nBug: 142480271\nTest: N/A\nChange-Id: I676bc7222474f2d366bfb4edcd14b83381d68083\nMerged-In: I676bc7222474f2d366bfb4edcd14b83381d68083\n"
    },
    {
      "commit": "be73c52729c8061cd86903007ab5483fd69f8175",
      "tree": "a03c24135fa6e03660b2f5ca705ece0a4d787f27",
      "parents": [
        "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 10 21:35:52 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:41:03 2020 +0000"
      },
      "message": "Fix buildCommonTypesStructureFile.py script\n\nThe PFW script buildCommonTypesStructureFile.py got broken\nby the change which had moved many enums to audio-hal-enums.h\nheader. This change makes necessary adjustments to restore\nits functionality and preserve the generated PFW config file\ncontents.\n\nBug: 142480271\nBug: 172641529\nTest: m\nTest: atest libmedia_helper_tests\nTest: diff vendor/etc/parameter-framework contents for a device\nChange-Id: I15db2ce6bf9c408b96b6921a45093e2849826e24\nMerged-In: I15db2ce6bf9c408b96b6921a45093e2849826e24\n"
    },
    {
      "commit": "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b",
      "tree": "33e22ce5f12c4b75414dfa242de2190ae0515091",
      "parents": [
        "d19faf826761db767dc8ee967149fe8939416850"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 25 23:03:05 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:39:39 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter\n\nUse of system functions eliminates the need for listing all enum\nvalues in TypeConverter tables.\n\nSlight changes in the converting functions:\n\n1. \u0027channelMaskFromString\u0027 function now also accepts indexed\n   masks.\n2. Fixed UB in \u0027formatFromString\u0027 function.\n3. Removed \u0027deviceFromString\u0027 function, use\n   \u0027DeviceConverter::fromString\u0027 instead.\n\nReplaced direct includes of \u0027system/audio-base.h\u0027 with\nincludes of \u0027system/audio.h\u0027.\n\nBug: 142480271\nTest: m\nTest: atest libmedia_helper_tests\nChange-Id: Ia0e725026be80621bdc797299e63e134419b2b3d\nMerged-In: Ia0e725026be80621bdc797299e63e134419b2b3d\n"
    },
    {
      "commit": "f2d8470b1c8efe422f73adf682e7858810d7fa4a",
      "tree": "7277bc73082c1a200acf96ae779923467198bb11",
      "parents": [
        "763b935ef71fbe678d9c402b2c9f6cbefbdb68f6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 12 23:42:30 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 01 12:43:19 2020 -0800"
      },
      "message": "aaudio: use strong pointer to protect callback\n\nHold a strong pointer to the AudioStream so it cannot get deleted while\nthe MMAP callback is running.\n\nAlso fixes disconnect for shared streams, which was broken\nby a previous attempt to fix b/166877425\n\nBug: 166877425\nBug: 170551030\nTest: see bug for details\nTest: atest AAudioTestCases\nTest: OboeTester V1.5.30 or later, \"TEST DISCONNECT\"\nChange-Id: I236e2d68632070d253d14ddf7b9d7076e068830a\nMerged-In: I236e2d68632070d253d14ddf7b9d7076e068830a\n(cherry picked from commit e358ec63eedd7a6289984b1f2468c5c16c2ff6c8)\n"
    },
    {
      "commit": "1d9fbfd8a630c91c3f00b5abd0c6c18abd361eb8",
      "tree": "2df7afa58c8e58bc3ff046c9f18506c85f1eafac",
      "parents": [
        "8e654fb2bde447d96ffe40edf339fb12a83bafc7",
        "75f20e195a2c460162cc85f733dcbd6a6a3908c7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 18:50:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 01 18:50:32 2020 +0000"
      },
      "message": "Merge \"audio policy manager: fix BT SCO stream mute\" into rvc-qpr-dev am: 75f20e195a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12820562\n\nChange-Id: Id8ac86ffcb91652ea570b1541704337b4b83af0d\n"
    },
    {
      "commit": "75f20e195a2c460162cc85f733dcbd6a6a3908c7",
      "tree": "a3245af8c1be8844ff6ca9faa00eb14b3917fdf2",
      "parents": [
        "763b935ef71fbe678d9c402b2c9f6cbefbdb68f6",
        "3ea637c72fc519fd3e1d8eb8bd56c5b53122a1e7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 18:29:44 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 01 18:29:44 2020 +0000"
      },
      "message": "Merge \"audio policy manager: fix BT SCO stream mute\" into rvc-qpr-dev"
    },
    {
      "commit": "8e654fb2bde447d96ffe40edf339fb12a83bafc7",
      "tree": "63d1de06e932b7d5850a2dbe79b2a98e3f795d24",
      "parents": [
        "ef888a66e6fc1013af4b24fed98f48dfb462ef01",
        "c410c10dfa725baf4307312d6c8abd8af02df3c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 18:08:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 01 18:08:52 2020 +0000"
      },
      "message": "Merge \"Convert mask types from uint32_t to enum type\" am: 7cd031828f am: c410c10dfa\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1510515\n\nChange-Id: I90c3487ebb936f37eb92bf862205c9bdb5eb1d09\n"
    },
    {
      "commit": "c2dae590b622a309d25aae958723441d35dbffd7",
      "tree": "e06378ff8ed41e7dabba8535e73617a8a953ef2f",
      "parents": [
        "763b935ef71fbe678d9c402b2c9f6cbefbdb68f6"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Nov 30 20:16:06 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Dec 01 09:45:03 2020 -0800"
      },
      "message": "Camera: Document behavior when cropRegion and zoomRation conflict\n\nIn case cropRegion \u003d\u003d windowboxing and zoomRatio !\u003d 1.0f, specify the\ncamera framework behavior of overriding cropRegion.\n\nTest: CaptureRequestTest#testZoomRatio\nBug: 172873869\nChange-Id: I9f3f51bca431841feacb4b2cce702dea179bacb9\n"
    },
    {
      "commit": "7cd031828f1c3873ee6868c79e621da9988bebcf",
      "tree": "e262d1f52155d1b2090cbc631a646fc8a3ef8ebe",
      "parents": [
        "a8460237165976738ba9dee5ae74780c45005926",
        "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 17:06:51 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 01 17:06:51 2020 +0000"
      },
      "message": "Merge \"Convert mask types from uint32_t to enum type\""
    },
    {
      "commit": "431bc74360b19153a08d8d062998b31399b70692",
      "tree": "055b5591785861623667afa2a2346d830a980e5e",
      "parents": [
        "55f23e06509010a2a6ace293b4c723c8bba40b33"
      ],
      "author": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:49:32 2020 -0800"
      },
      "committer": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 16:58:13 2020 +0000"
      },
      "message": "Migrate imports to use proto_logging\n\nBug: 167962588\nTest: m -j\nChange-Id: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\nMerged-In: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\n"
    },
    {
      "commit": "f4a007b4c3d036c7767a83e0c1a1a560a32f9763",
      "tree": "aed072aef4f16e57dcb1109c2336598544600aa5",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:49:32 2020 -0800"
      },
      "committer": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:59:41 2020 -0800"
      },
      "message": "Migrate imports to use proto_logging\n\nBug: 167962588\nTest: m -j\nChange-Id: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\nMerged-In: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\n"
    },
    {
      "commit": "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f",
      "tree": "cc260c7b2867101599cdba75b53b4e0578c7345f",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 24 22:56:29 2020 +0000"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\nMerged-In: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "55f23e06509010a2a6ace293b4c723c8bba40b33",
      "tree": "e22e9965055ee0f74b1edbc8238d808de89101f3",
      "parents": [
        "5e8c23fe504cda5b272ad80065a3c5fb359dbe74",
        "b466f2f8cccc71ffa4bf2e9d3369c980a8436101"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 23 20:18:44 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 23 20:18:44 2020 +0000"
      },
      "message": "Merge \"HAL V7.0: Update example APM config files\" am: 7aacb78d8d am: b466f2f8cc\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1507587\n\nChange-Id: Idef4aac9d11960f0b5a621d8b528e6eaa7eb051d\n"
    },
    {
      "commit": "dd68139d0fcbbd8923cabbee4bb35df49900556a",
      "tree": "0e5cd5c06cd18c3a4f4a4aed414ce84e15fd8d30",
      "parents": [
        "fe4094eacee9c5e248b2d8ac87dff51b46a3d972"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 24 22:23:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Nov 21 01:12:40 2020 +0000"
      },
      "message": "HAL V7.0: Update example APM config files\n\nUse space delimiter for mixPort flags field.\n\nBug: 142480271\nTest: atest VtsHalAudioV7_0TargetTest\nChange-Id: I3eef9bf1e9bcc24a869355724aa333c1f93b4b31\nMerged-In: I3eef9bf1e9bcc24a869355724aa333c1f93b4b31\n"
    }
  ],
  "next": "deac390fc613fce45f81e83b2860a32bff0394fc"
}
