)]}'
{
  "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "226b8e657189db6601611e639473e97d1a2f8146",
      "tree": "dda1198c597d342c1d2d239540ad3c299f076593",
      "parents": [
        "337d387d8d3d759adc286a154074692076a04d87",
        "b04f29c95890fd96eedef2290da98a39009a08f0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 20 21:09:08 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Nov 20 21:09:08 2020 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-7\" am: aa2e608a99 am: b04f29c958\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1506615\n\nChange-Id: I8f9172e4fc55359015a55fa6d844f63237c785ee\n"
    },
    {
      "commit": "8448c4b30b45b04cb615e6114015bb34f1619da2",
      "tree": "9494cee51f448ab9b4d716e3b147efffea715a76",
      "parents": [
        "e1877efb7964bcb3be72e3ebea75505ca9c4a6e8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Aug 14 20:43:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 20 01:31:09 2020 +0000"
      },
      "message": "Add Audio Policy Manager config files for HAL V7.0\n\nIn Audio HAL V7.0 lists of sample rates and channel\nmasks are written in the XSD-compatible way using\nspace as delimiter (instead of comma).\n\nBug: 142480271\nTest: m\nChange-Id: I0e5a15d65974421443c00d4f0edaf0514a71673f\nMerged-In: I0e5a15d65974421443c00d4f0edaf0514a71673f\n"
    },
    {
      "commit": "9be089441122ce796038bf488e6f7241528525bc",
      "tree": "5623eb428fec0a0560f579315acb413bbb573668",
      "parents": [
        "388cf0ebfad4982fe27c71959acf1c9ac11653f8",
        "e37dec36cf51125e7cfae11c53c066a1aaded686"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 28 23:04:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Oct 28 23:04:31 2020 +0000"
      },
      "message": "Merge \"audiopolicy: HW Bridge Sink matching rule\" am: d68950bbc3 am: d7214629e1 am: e37dec36cf\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1439012\n\nChange-Id: I783e207093062d0e89655fb8db8d8528e9e1e17f\n"
    },
    {
      "commit": "4c34434aff546fd6c0414e6e6c658eac1784c59f",
      "tree": "1609e6f9deeeb26fac19ff19bb76fdd8adadad69",
      "parents": [
        "adec76d0eb5889bc6675069548df2ee156d59414"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Sep 25 18:02:26 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 28 18:28:43 2020 +0000"
      },
      "message": "audiopolicy: HW Bridge Sink matching rule\n\nIn order to use an HW Bridge, audio policy configuration file\nmust declare that a given sink may be reacheable from a given source\ndevice.\nThe declaration is made using the \"Tag Name\", which is a human readable\nname given to a device / mix Port.\n\nThis CL adds an equality operator based only on this tag name, which\nidentify uniquely the device port.\n\nThis CL manages also dynamic device cases, the tagName shall be assigned\nto all dynamically created device.\n\nTest: adb shell ./data/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003d*VoiceCallBridgingTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I0fc6435dcc5f40634be5392dd92dcd2f377809c2\n"
    },
    {
      "commit": "d77befba846e74864fac3acc9e51ff4af91dc986",
      "tree": "449aefdfd3d70fb2e8c79354ede7964b3911b879",
      "parents": [
        "80cd5274e93b1ee4389619c6a6aa1716d60aa671"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 07 08:42:28 2020 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Mon Oct 26 14:16:57 2020 +0000"
      },
      "message": "audio policy: default routing rules for BLE audio devices\n\nAdd default audio routing rules for BLE audio devices in audio\npolicy manager engine.\n\nAlso remove isA2dpSupported() helper: checking if a2dp is supported\nbefore selecting an A2DP device is redundant as the device connection\nwould have been rejected in the first place if A2DP was not supported.\n\nThe implementation for communication use cases is not final until a new API is\nadded to control routing to BLE audio similarly to what exists for\nBluetooth SCO or speakerphone.\n\nBug: 161358428\nTest: regression on audio playback and capture routing, especially with\nhearing aid, Bluetooth A2DP and Bluetooth SCO.\n\nChange-Id: If07150dc4495aeee5e796d891fd3ce98965bf5f9\nMerged-In: If07150dc4495aeee5e796d891fd3ce98965bf5f9\n"
    },
    {
      "commit": "3ea637c72fc519fd3e1d8eb8bd56c5b53122a1e7",
      "tree": "281967d765ac8260479b56730d3638598b80398c",
      "parents": [
        "5e710feacb9b8d8f7db1f4e15d2e9d2aac83da0e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 12 17:10:23 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 12 17:10:23 2020 -0700"
      },
      "message": "audio policy manager: fix BT SCO stream mute\n\nAllow setting voice and bluetooth SCO stream volume to 0\nin checkAndSetVolume() even when the selected device is\nbluetooth SCO to allow muting VoIP call downlink.\n\nBug: 170489272\nTest: repro steps in bug.\nChange-Id: If8b2d225742f9589cd21718d8a439531996434f9\n"
    },
    {
      "commit": "c56875f2eca1be6322cc56d22fc7d8e95a298a3f",
      "tree": "c7815d87fe139577da298073a18c449738c6dc41",
      "parents": [
        "346ea4a53844a1b2cb03a72599d9e4dd3ee2ecf3",
        "3d232f21110c3bb1b2d077ba8a96698303b5cba7"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 23:15:20 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 23:15:20 2020 -0700"
      },
      "message": "Merge ab/6749736 in stage.\n\nBug: 167233921\nMerged-In: I869dc9ae03ddf2391bb1ee9c595cacd9c4bcc552\nChange-Id: I59223c2640cc074c3be60f02f310f9341be976e2\n"
    },
    {
      "commit": "88f8f94606933ec389ea50b07f5394622750819e",
      "tree": "03de782f4f7e84193c84ee6dcb8e8f5462e94f60",
      "parents": [
        "181438e955bac2e0137d991c468f583bdf3de153",
        "d127644025c5820e39a2908a249691284b4447d6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 11 13:09:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 13:09:19 2020 +0000"
      },
      "message": "DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD. am: d127644025\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12468978\n\nChange-Id: I3253b81c324ae91762a54533a2c1708c80026e8e\n"
    },
    {
      "commit": "ed3dca686bd7eac70200a0b068206615fc0f7288",
      "tree": "96ba30f7f36738482d869c1082a265cddea34f87",
      "parents": [
        "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e",
        "d127644025c5820e39a2908a249691284b4447d6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 11 12:19:36 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 11 12:19:36 2020 +0000"
      },
      "message": "Merge \"DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD.\" into rvc-qpr-dev"
    },
    {
      "commit": "85109f953b728cbd50b36c18c48e52ef71f3bb95",
      "tree": "0f822ade4b9c29f5295be9f18a51cc2ef0d9b9d5",
      "parents": [
        "ec0f0ec225b7f5a95b305f0c4a345acc78874633",
        "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 15:52:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 10 15:52:31 2020 +0000"
      },
      "message": "Merge \"audio policy: fix beacon mute delay\" into rvc-qpr-dev am: b197286f8c\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12383405\n\nChange-Id: I899bd7396e7e54aef461ef75f5d78c65c7b40b85\n"
    },
    {
      "commit": "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e",
      "tree": "e84d3182bbb1eab2b1a7c63b2fdb4b21c7695627",
      "parents": [
        "5fc17f2fae4fd72e7695bc828200eb3b8202a754",
        "33897bac9744f10c126b9f44488d390b4de49331"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 15:17:07 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 15:17:07 2020 +0000"
      },
      "message": "Merge \"audio policy: fix beacon mute delay\" into rvc-qpr-dev"
    },
    {
      "commit": "ec0f0ec225b7f5a95b305f0c4a345acc78874633",
      "tree": "a4da22251dab4aee686d9217e626383376d7e692",
      "parents": [
        "acb4d9ca255eb027141f623d221d87fb30c9fc40",
        "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934 am: 3f185ad132\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I7205d741c7113277a52b922b777c208a9e3d6beb\n"
    },
    {
      "commit": "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39",
      "tree": "27a7cd1cc44669e7deee1b9be06ff201c80492ba",
      "parents": [
        "8843cf96f564248d4e2b17c559dea377dce34d9c",
        "77230bc934f9646030640993fa3f0a0db4c9ca5e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I4a44f3cbd6643acb970cf0797954699656b38f63\n"
    },
    {
      "commit": "77230bc934f9646030640993fa3f0a0db4c9ca5e",
      "tree": "2f64e10a0e25e11ec4cbec2997ca61757cdce0e5",
      "parents": [
        "c5c9086d323906f2bdd2d020910291044250081e",
        "451a36a9a67eb9cad6931b908736072c76d30ec2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: Iad96bd32869ba3d798a185c82740684ead3349a8\n"
    },
    {
      "commit": "451a36a9a67eb9cad6931b908736072c76d30ec2",
      "tree": "41e1735a1a979a48cb51e05cd9ac8b165bdbecec",
      "parents": [
        "2cbbfa584a989ce07ac5fa31d8159f31848c9825",
        "bd5bb90b4d0032980a74849a798a52cba0f4a185"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:18:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:18:23 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: Ic54c8dcf210e9b375e7fdce6444c7d882a1784d6\n"
    },
    {
      "commit": "e3c22e22cac4625e0b5e8052826cc06ec171c45a",
      "tree": "766e8d5c0e353b06334cd1d261f100c2df3774fd",
      "parents": [
        "8028dfb98b90cdb555fd615049165031aa319fb9"
      ],
      "author": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Tue Sep 08 13:22:56 2020 -0700"
      },
      "committer": {
        "name": "Hongguang Chen",
        "email": "hgchen@google.com",
        "time": "Tue Sep 08 22:24:02 2020 -0700"
      },
      "message": "Skip devices with multiple bits set.\n\naosp/1399204 added AUDIO_DEVICE_OUT_BLE_SPEAKER whose value is\n0x20000001. The buildCommonTypesStructureFile.py didn\u0027t cover that kind\nof values and it caused audioserver crashed.\n\nThis CL skips that kind of devices. A general solution (b/168065706)\nshould be addressed in the configurable audio policy and parameter\nframework.\n\nBUG: 167745916\nTest: Check PolicySubsystem-CommonTypes.xml and boot up device.\nChange-Id: Id802d37c18c4fd152a84a5a1579390b464c505f1\n"
    },
    {
      "commit": "3803ff3ec558396240f6133ecbb22d02b931d142",
      "tree": "5c2b9367155715e704d22f137a64d4a8a1f85905",
      "parents": [
        "9447b48f36b1bf26645e6256dd29224b6a398161",
        "e1f1cb5827a6c99d41e05e090b3b382f3598a58e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 20:17:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 08 20:17:33 2020 +0000"
      },
      "message": "audio policy: correct force use touch sound delay am: e1f1cb5827\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12539419\n\nChange-Id: I7b8ecc463d043da5c9e479bf92a73654ba8f3ad7\n"
    },
    {
      "commit": "e1f1cb5827a6c99d41e05e090b3b382f3598a58e",
      "tree": "5a867b160cc351c30d777319aad5c3f5fc727eee",
      "parents": [
        "d1fa2375194096937bbdfd2def97969c4336191b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 12:50:41 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 18:25:21 2020 +0000"
      },
      "message": "audio policy: correct force use touch sound delay\n\nDo not apply the special delay added in setForceUse() multiple times.\nThis delay was meant to be applied only once to avoid truncating touch\nsounds but is actually used multiple times when updating routes on all\noutput streams, thus lengthening the call audio path switch time\nunnecessarily.\n\nBug: 163537547\nTest: manual call routing test\nChange-Id: I6fe15d4ed9b1f37452921585e9f7684637e8a30b\n(cherry picked from commit b36b4accf36ba413529a0b6735802a65f42c2f7c)\n"
    },
    {
      "commit": "9447b48f36b1bf26645e6256dd29224b6a398161",
      "tree": "62bc6e0895af051df03446dc2c5ecca8dd288d0f",
      "parents": [
        "37e93d1bc4df8b2d9682c48236bb4dae87d6dd1b",
        "d1fa2375194096937bbdfd2def97969c4336191b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "message": "Merge \"audio flinger: handle race condition in AudioRecord creation\" into rvc-qpr-dev am: d1fa237519\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12484593\n\nChange-Id: I5e330127a6ef2efe394b06524af5ae20f01a71bc\n"
    },
    {
      "commit": "d1fa2375194096937bbdfd2def97969c4336191b",
      "tree": "f2873c68b18cd34fec81208f8b5286c86b66985e",
      "parents": [
        "35238dd6585645018f7a7a8a32fdece432458ce7",
        "717bc28fc5959c0edb2bbd86692ba5164893f719"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 00:22:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 03 00:22:46 2020 +0000"
      },
      "message": "Merge \"audio flinger: handle race condition in AudioRecord creation\" into rvc-qpr-dev"
    },
    {
      "commit": "5294eb92f5e27c9872edcd6a449370a3bf5cd7aa",
      "tree": "789d0b6bdb31ea469f7d645b0194aab3e76a82f3",
      "parents": [
        "738f5ecdaea2af982ba00c4b974a33dbac8f7d0c",
        "35238dd6585645018f7a7a8a32fdece432458ce7"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Sep 02 16:33:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 02 16:33:33 2020 +0000"
      },
      "message": "Merge \"audio policy: fix concurrent capture policy for virtual sources\" into rvc-qpr-dev am: 35238dd658\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12196105\n\nChange-Id: I6029ece39734bea6bdcad7cc1ea5f2b2ab5e593a\n"
    },
    {
      "commit": "35238dd6585645018f7a7a8a32fdece432458ce7",
      "tree": "acebd01148680908072bb155c37217cf0aaad8e8",
      "parents": [
        "23d433f4a27a05dc89e558c06032b305ad0337f6",
        "55fd81d7e1011565e894a4530eb8693c824f45b4"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Sep 02 15:55:30 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 15:55:30 2020 +0000"
      },
      "message": "Merge \"audio policy: fix concurrent capture policy for virtual sources\" into rvc-qpr-dev"
    },
    {
      "commit": "37e9654973cf0458a30805ef2180265e356e1987",
      "tree": "46ce02739a2899d0c4c1c356ec955d7242ea753b",
      "parents": [
        "ff30ed79d2c4715e355824980c4978c066ebf177",
        "4984eb5e21d5918e9195ccb3d9540ed155820ec6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 01 21:31:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 01 21:31:21 2020 +0000"
      },
      "message": "Merge \"Fix file permissions to remove execute bit on ordinary files\" am: 96a663b0ef am: 0e30ca6437 am: 4984eb5e21\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1416258\n\nChange-Id: Ibe802a15ab203d206d898ee4feb7d4a94037e5cf\n"
    },
    {
      "commit": "4984eb5e21d5918e9195ccb3d9540ed155820ec6",
      "tree": "313257662bcc66636d05c6a27e530a2ea72429f1",
      "parents": [
        "e75114727d73502257ef503451453c6f85ded175",
        "0e30ca64372f8e4dab5cbe3d2b0e326081c4fb2f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 01 20:22:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 01 20:22:55 2020 +0000"
      },
      "message": "Merge \"Fix file permissions to remove execute bit on ordinary files\" am: 96a663b0ef am: 0e30ca6437\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1416258\n\nChange-Id: Idb94e55c869c66e18349e9ef7f1f02c87bb4ef9d\n"
    },
    {
      "commit": "4ffca8764be4b177cd08dfbd0705ad1e236709ce",
      "tree": "be2657e20b7222754d29d14d8f2f1fe309bffc62",
      "parents": [
        "0e30ca64372f8e4dab5cbe3d2b0e326081c4fb2f",
        "2e40c302d6117ec6eb65f25832a71488367b4dfb"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Sep 01 20:03:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 20:03:43 2020 +0000"
      },
      "message": "Merge \"Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\" into stage-aosp-master"
    },
    {
      "commit": "58fb14aa84f41329fccc7185701ffbf502f77114",
      "tree": "6e40f2c53934ba0246207e8be722204106f0a5d7",
      "parents": [
        "579a5284be48aec4905160464716011cc7e89b9c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 31 12:13:12 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 31 12:16:26 2020 -0700"
      },
      "message": "Fix file permissions to remove execute bit on ordinary files\n\nTest: N/A\nChange-Id: I9e85ebe5479ae7f021a69942630fc9c876d4116b\n"
    },
    {
      "commit": "2e40c302d6117ec6eb65f25832a71488367b4dfb",
      "tree": "ce2cff004a09076114faabf595b1a116bcb461ff",
      "parents": [
        "054de8d6440fd30238fa9330bcc038cda745b244",
        "924eccfd6f6d3aaed5db627a0bdcfcaaf9b09a18"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 08:38:54 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 21:23:54 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: Ie94127c1e981cb18671d5137ba0d39355d1353da\nChange-Id: Ib22ad33bda8d561af537499b6d31ab6134eeae02\n"
    },
    {
      "commit": "717bc28fc5959c0edb2bbd86692ba5164893f719",
      "tree": "9f55d492e1032f4224dc3420345868cf8d613456",
      "parents": [
        "0b3f254028404b4772e02f9d1cdfcefba0e264b4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:10:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 28 22:51:36 2020 +0000"
      },
      "message": "audio flinger: handle race condition in AudioRecord creation\n\nA rare race condition can cause a failure to create an AudioRecord if\ntwo creation requests are processed concurrently and thread preemption happens\nat a specific time within the sequence between audioflinger and\naudio policy manager.\n\nThis CL implements a retry mechanism on client side when this particular failure\nis detected.\n\nBug: 161656190\nTest: Regression tests for audio capture use cases.\nTest: CTS tests for AudiRecord\nChange-Id: I155ee4899baeec21e10a1141cb9e323cbc8aa23b\n(cherry picked from commit d52a28ca2c19db7d10bc6c4639a8bd78e1afd5f1)\n"
    },
    {
      "commit": "d127644025c5820e39a2908a249691284b4447d6",
      "tree": "e249c7f931d01a69f44f0d42ef99617ed7cc58bc",
      "parents": [
        "0b3f254028404b4772e02f9d1cdfcefba0e264b4"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Aug 20 17:19:57 2020 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 28 16:44:58 2020 +0100"
      },
      "message": "DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD.\n\nWhenever we startRecording / finishRecording with a source\nof SOURCE_HOTWORD, attribute them to OP_RECORD_AUDIO_HOTWORD\ninstead of OP_RECORD_AUDIO. In either case, OP_RECORD_AUDIO\nis checked before the recording commences. Note that we also\ncheck that all recordings with SOURCE_HOTWORD are initiated\nby a uid that holds the privileged CAPTURE_AUDIO_HOTWORD\npermission.\n\nNote that this change will be superseded in the future once\nwe have stronger guarantees around hotword handling.\n\nBug: 162547999\nTest: manual with dumpsys appops on AGSA\n\nChange-Id: I70e0b652c357597770a18a5a385d62668a69059a\n"
    },
    {
      "commit": "ac71d9d2e53f58058228b1e20aac362dc847b16b",
      "tree": "6313174dff7755c884316a11c5b1adeadee64ba2",
      "parents": [
        "7dd78282f0963605ab978ddd3cfd38847e5d1442",
        "a818367360c9262c56d0317d4f2ee76057d8c606"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 19:01:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 20 19:01:57 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\" am: ae1df9155c am: be7cabc2e0 am: a818367360\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1296441\n\nChange-Id: I213aa0ad8905a82e6c8679c8d0eec2d522c2e10c\n"
    },
    {
      "commit": "a818367360c9262c56d0317d4f2ee76057d8c606",
      "tree": "ffa16c1cc2bd1a706fc6c08ba13e0c34f55061eb",
      "parents": [
        "693f515a9ee576dbad44413c06802a8aafbe4ccb",
        "be7cabc2e0681e4b30afed1587be71f3c3e90b25"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:40:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Aug 20 18:40:32 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\" am: ae1df9155c am: be7cabc2e0\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1296441\n\nChange-Id: I6a5ad41a3b34ca3a2ca209352100c868b277b007\n"
    },
    {
      "commit": "ae1df9155cd8244cc716a2b1fdfca9975220453d",
      "tree": "0736254f088e27512ee83a33a2e73c727ed27f7d",
      "parents": [
        "246b31dc7641b7e57f113fb89e429c75ed3d5b68",
        "d11442b6e4521d825779dd55494509e046f2c9f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:13:16 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 18:13:16 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: force gain on startSource when using HW Gain\""
    },
    {
      "commit": "33897bac9744f10c126b9f44488d390b4de49331",
      "tree": "5a9eddf934ce44652c6f1211aa582ceb0c4ec253",
      "parents": [
        "e52b8fa8fabd74555dd1ebb2e9405460a545a919"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 10:57:02 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Aug 15 01:13:44 2020 +0000"
      },
      "message": "audio policy: fix beacon mute delay\n\nOnly take output latency into account when the output is active\nwhen muting TTS stream. This avoid a systematic long delay the\nfirst time we play audio due to first beacon mute state change.\n\nBug: 37923452\nTest: repro steps in bug\nChange-Id: I10b21a55c0fad28344108b67756f600a29e41fea\n(cherry picked from commit cdb2b35c0f159a1a244599010ee9210d1e34c71d)\n"
    },
    {
      "commit": "decc00bbcfb68106625bd21fd74cff969c9a6f35",
      "tree": "d21ba1fe2702a29732b1234f3ecc4c5991904367",
      "parents": [
        "c10197dee26ed6006d956149d4fe4969f9caa264",
        "c9ad9878f49137b748ec5dfcf905e778e99441c8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 14 02:03:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 14 02:03:49 2020 +0000"
      },
      "message": "Merge \"audio: add device definitions for BLE Audio\" am: 3ce5f38a37 am: 0f109dd701 am: c9ad9878f4\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1398473\n\nChange-Id: I1fcb2be05809e3f3518907fec30852e2469eefc9\n"
    },
    {
      "commit": "c9ad9878f49137b748ec5dfcf905e778e99441c8",
      "tree": "871d3b03564f3c94570cffa87a2dfcb1b7bf4786",
      "parents": [
        "32ec02978e0b9f943795070120c2eee04427802d",
        "0f109dd701e3d326e6c0369f3fb3cbf028b9fa09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 14 01:43:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 14 01:43:30 2020 +0000"
      },
      "message": "Merge \"audio: add device definitions for BLE Audio\" am: 3ce5f38a37 am: 0f109dd701\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1398473\n\nChange-Id: I923a8efdf00dc6249c28576ec3972d8a2d80437c\n"
    },
    {
      "commit": "7a62f2936519104f93dc9015df22369127b37803",
      "tree": "33a0d431ef21fd9e9dce4d74981c1800dc186506",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 10:51:53 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 13 20:19:00 2020 +0000"
      },
      "message": "audio: add device definitions for BLE Audio\n\nAdd support for device type enums for BLE Audio.\nThis CL just adds basic support in parsers and voloume curve\ncategories.\nNo policy implemented yet for the new devices.\n(cherry picked from commit c42df45d4b99c06391bca841638563335d0f59ef)\n\nBug: 161358428\nTest: make flash and boot\nChange-Id: I86134ea8436b24f817a9fe0f856e3489dd22fcc8\nMerged-In: I86134ea8436b24f817a9fe0f856e3489dd22fcc8\n"
    },
    {
      "commit": "d11442b6e4521d825779dd55494509e046f2c9f8",
      "tree": "e0aab3cd028428ddb9266ef55d98486cfd4fc59a",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 27 11:51:09 2020 +0200"
      },
      "committer": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Aug 13 13:04:39 2020 +0200"
      },
      "message": "AudioPolicy: manager: force gain on startSource when using HW Gain\n\nWhen a setVolume is called for a given volume source on a SwOutput,\nand if the SwOutput is connected to a device using HW Gain, the sync\nof the gain on AudioHAL is guarded by the activity of this volume source.\n\nWhen a new index is applied on a given volume source, if this source is\nnot active, the new index is cached but is not synced on AudioHAL.\n\nHence, once a client (aka a source) starts on a SwOutput,\nSwAudioOutputDescriptor::setVolume is called, but as index has not changed,\nsetVolume will bail out before applying the gain to the AudioHAL.\n\nThis CL forces to sync the volume upon startSource event if the SwOutput\ninvolved is connected to a device with HW Gain enabled.\n\nTest: build \u0026 basic audio tests.\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ief1d5314b7970de78298750550320e329283ee1a\n"
    },
    {
      "commit": "cdf738e37397def04c2418406ca46da4cf3d7380",
      "tree": "b1932b1bd26afdcad7783ad23806c23b69ba3bf0",
      "parents": [
        "a42085c0ef9841d360eb423f7873e096ced2865d",
        "23b282c9f9a7dacb0cc9000940c755a21970f1b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 18:15:36 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 10 18:15:36 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\" am: fc9e26a3e9 am: af034fc9cb am: 23b282c9f9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1360120\n\nChange-Id: I6296d6dd227058a728f9a4718b198bba9756e019\n"
    },
    {
      "commit": "23b282c9f9a7dacb0cc9000940c755a21970f1b6",
      "tree": "601935ac55c38bd96ed660bbeac909d2c8d0f263",
      "parents": [
        "85bf50bfc09cf24d8454015e7553ab31f1946ff2",
        "af034fc9cb1d3de4334bb303d53b5dc8f83aa6f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 17:53:53 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 10 17:53:53 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\" am: fc9e26a3e9 am: af034fc9cb\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1360120\n\nChange-Id: I84066fdea62f4ac3f559ddb7c7b1c37f5880e0fb\n"
    },
    {
      "commit": "fc9e26a3e931e267a274aa73f5d9b9381b95f6a0",
      "tree": "ea13855ba4e26f8c0d5e39be18595883a2aea4ed",
      "parents": [
        "43b32b29c5744f11c3a05579c5f37a086cbbebda",
        "bd2dcc4d0d6cf0ba6d7663bfb7ccfc60b9292f10"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 10 17:32:07 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 10 17:32:07 2020 +0000"
      },
      "message": "Merge \"Fix music output to speaker\""
    },
    {
      "commit": "bd2dcc4d0d6cf0ba6d7663bfb7ccfc60b9292f10",
      "tree": "ff0ee2efcda5b139f75dda189547424b241d633d",
      "parents": [
        "7c44826eaba2e3ff4483b127c6bc091e46d0604c"
      ],
      "author": {
        "name": "cnx421",
        "email": "cnx421@gmail.com",
        "time": "Sat Jul 11 14:58:44 2020 +0800"
      },
      "committer": {
        "name": "恶魔 地狱",
        "email": "cnx421@gmail.com",
        "time": "Mon Aug 10 01:24:35 2020 +0000"
      },
      "message": "Fix music output to speaker\n\nThis CL fixes a bug in audio policy where music switches to speaker when A2DP output mode switches from software encoder to offloaded encoder.\n\nBug: 153895044\n\nChange-Id: I15f707c9e96294b6cd6f21c0821c795d0570c39a\n"
    },
    {
      "commit": "89d9e3f30d9644df802dcbfdd6fa0788e5af59d4",
      "tree": "14e8e58b23b22ec6d0d1b5d94b9ae2b2f881a71c",
      "parents": [
        "6fafd73af139e33f8e0157dec461836645e5d5ba",
        "385de9f0230a72bd8f72dc650f0e483ff3895a8b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 21:18:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 21:18:23 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07 am: 385de9f023\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: I216cd96527efaed4b4b08efe927227debef78246\n"
    },
    {
      "commit": "385de9f0230a72bd8f72dc650f0e483ff3895a8b",
      "tree": "95a5fac3e2a0b2c5924e827a7b2f5d2f9d593913",
      "parents": [
        "3ece0964200c8e0e7c3aa371dd8a47ce578bdf22",
        "588d9b1c07ec0363b6bfaf982f00afd1ba35bd68"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: I92ce762ac562acd9c2c6c420761111f6ae14ce0f\n"
    },
    {
      "commit": "2c7d0d39443ac8e64987d3a73a6d8b20da1ed807",
      "tree": "e8a2a325299fa4b9024ca8fbbd07af9129f99daa",
      "parents": [
        "70e96c8d72768b76314a77a7d7b37157fb7f1ae4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 15 14:18:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 05 10:04:47 2020 -0700"
      },
      "message": "Update OWNERS\n\nTest: N/A\nChange-Id: I2d34e3c05e99191ae1d95fd3c5e6557c2b982965\n"
    },
    {
      "commit": "6fafd73af139e33f8e0157dec461836645e5d5ba",
      "tree": "0a8486f8ae275a0aefcd9922ae98c3fbeb02ca85",
      "parents": [
        "3f188dc16b84e0fe23259f184afb23af365b3d6f",
        "44f9ee26f6cd904c96492c58cbef616eeecb6cb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 05 16:32:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 16:32:47 2020 +0000"
      },
      "message": "audio policy: fix attributes for strategy \"rerouting\" am: 44f9ee26f6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12311082\n\nChange-Id: I4913aa2c7643d8b1713a30a0ac3f111e754b56e6\n"
    },
    {
      "commit": "44f9ee26f6cd904c96492c58cbef616eeecb6cb0",
      "tree": "5d5a90b7386555c49cb19e6a8c1d2580a192fb5f",
      "parents": [
        "5525faf28e9e112f8ae0dabace9360bd39a1ce10"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 31 16:08:03 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 05 01:59:34 2020 +0000"
      },
      "message": "audio policy: fix attributes for strategy \"rerouting\"\n\nStrategy rerouting is used for audio injection to a recorder\ndynamic audio policy mix. As such, the correponding audio attributes\nmust contain usage AUDIO_USAGE_VIRTUAL_SOURCE.\n\nBug: 162239551\nTest: gts-tradefed run gts --skip-device-info -m GtsGmscoreHostTestCases -t \u0027com.google.android.gts.audioservice.AudioServiceHostTest#testInjectForRecord\u0027\nChange-Id: Id175b9583faf8910aef7b2988ac5019d0cbbcb53\n(cherry picked from commit ed49c8644a89304cd5ae3056245a07d04a8911de)\n"
    },
    {
      "commit": "c8e17eebc955749f5dc0fb0a58ad93ff312aef39",
      "tree": "087fd6e158c1f3c0cbd507fc50c4f9904393aef5",
      "parents": [
        "7c9913d5d5a35242a617ccb82ba4659e777ee007"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 31 17:36:08 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Aug 04 00:41:43 2020 +0000"
      },
      "message": "Avoid storing \u0027this\u0027 in a wp\u003cAudioEffect\u003e while in constructor\n\nStoring \u0027this\u0027 into wp\u003cAudioEffect\u003e while running the constructor\nof an AudioEffect can lead to premature instance destruction\nbecause the owner of this weak pointer may promote to sp\u003c\u003e\non a thread running in parallel to the constructor.\n\nFixed by removing a call to AudioEffect::set from the constructor\nand moving the responsibility for calling it to client code.\n\nBug: 162323621\nTest: repro steps from the bug\n      atest android.media.cts.VisualizerTest\nChange-Id: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\nMerged-In: Ice5f510b1c9020b5ba73bd6223c1669ab8eae24c\n"
    }
  ],
  "next": "69d41cc6ca5d63e5484874dc3dcaf78530b55b6a"
}
