)]}'
{
  "log": [
    {
      "commit": "bbc56fda5e18be89bc015b8eb66b24d0abf4754b",
      "tree": "2bb799ccd6c3dcbde9118087a648626f3620b1ce",
      "parents": [
        "2de24fa72f87fd5b24420ea3588a048c3340cc97",
        "b7d2078c3fbfe0cbfcb7ca734cb45faf8be45493"
      ],
      "author": {
        "name": "Alden DSouza",
        "email": "aldend@google.com",
        "time": "Mon Feb 22 18:27:33 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 18:27:33 2021 +0000"
      },
      "message": "Merge \"audio: Add device definitions for Echo Reference\" into sc-dev"
    },
    {
      "commit": "5d9a9e0e62a71adce994c1be7f289c7cccff3061",
      "tree": "87159398d4f43f16e06ecfb22876f6f86d3a1868",
      "parents": [
        "e9311b5247d60c0faf8a4dd7d29fb6710ccac602"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Tue Feb 16 14:18:54 2021 +0530"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 19 03:11:40 2021 +0000"
      },
      "message": "audiopolicy_fuzzer : Bug Fix\n\nFix initialize() not handling return value\n\nTest: ./audiopolicy_fuzzer clusterfuzz-testcase-minimized-audiopolicy_fuzzer-5699527544274944\nBug: 180104879\n\nChange-Id: I990ecaaf970abdeec82e72c001b7401b94daf380\n"
    },
    {
      "commit": "c837504ed5b9c708896bb97b1ef9225c376816a7",
      "tree": "4b86c06c7fd70680e0482475807ca8f19f00502b",
      "parents": [
        "6d858b5665aeea773ce10d81fd875a80fdb09b85"
      ],
      "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": "Wed Feb 17 12:43:41 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: I8360756b326b891b56629127091540310851c941\n"
    },
    {
      "commit": "788fa3fdf283c6aae27ea86dac80bcaf0ad9493c",
      "tree": "847696fceabe1387a5c4bccd7e7d2164f7f76655",
      "parents": [
        "1dff892a340323ad53b661a33c32e1c2a3da51b7",
        "11b6592323f9d3f9a68ef557893c90e391e79111"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 15 08:45:19 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 15 08:45:19 2021 +0000"
      },
      "message": "Merge \"audiopolicy: allows to fallback or not on default strategy/group\" into sc-dev"
    },
    {
      "commit": "11b6592323f9d3f9a68ef557893c90e391e79111",
      "tree": "4a68483b3bb1728ed0779f9e53971285321e57db",
      "parents": [
        "25521834a63d67308520da5bced97ed517a30a72"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Sep 24 16:59:08 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 09:44:25 2021 +0100"
      },
      "message": "audiopolicy: allows to fallback or not on default strategy/group\n\nWhen attributes does not match a group or strategy, it falls back on\nrespectively default group or strategy.\n\nThis CL allows to control whether fallback shall be done or not.\nIt allows for example to detect orphans attributes and prevent from\noverwritting volume for example.\n\nBug: 179759299\nTest: make\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ieeeab48ca3ec2b031b7a99e2e7ab26d2e4d70535\n"
    },
    {
      "commit": "edc7e4fb0a3dcdd045f98095c14e59918a3f4792",
      "tree": "91036e57f41107cf29f50cd0a0c05f0f310be35c",
      "parents": [
        "a8672abd54aa7345f71e589095325543d9b15230"
      ],
      "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 17:57:06 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\n"
    },
    {
      "commit": "d4977d4420b42e8cc302158ee903b1b668ec9eb6",
      "tree": "516f67bb95099614284432e0fcff779f35b3bf59",
      "parents": [
        "cb9580ed6a6d5d090678be1cf5a1629190466314",
        "fecbceb656b787e5765cf7607c49c9e789545639"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 09 17:42:09 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 17:42:09 2021 +0000"
      },
      "message": "Merge \"audio policy: reduce log spam\" into sc-dev"
    },
    {
      "commit": "fecbceb656b787e5765cf7607c49c9e789545639",
      "tree": "72c3e9d6aebe33386510bb500845c615bcf7204c",
      "parents": [
        "25521834a63d67308520da5bced97ed517a30a72"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 09 14:46:43 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 09 17:41:47 2021 +0000"
      },
      "message": "audio policy: reduce log spam\n\nChange some non critical log levels from I/E to V in\nAudioPolicyManager.\n\nTest: test \u0026 flash \u0026 boot\nBug: 143204848\nChange-Id: I3d2d8c16772ef45b91544b3bd46fed5c13e7ed71\n"
    },
    {
      "commit": "cb9580ed6a6d5d090678be1cf5a1629190466314",
      "tree": "25896770373251a2097d301373f3615dcb599fd3",
      "parents": [
        "9cc7fcadb2b8d1bbf422f7d19261100bcea8c817",
        "6950539251c31e449682bcdaec55cf8951c84711"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 09 17:32:13 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 09 17:32:13 2021 +0000"
      },
      "message": "Merge \"fix pfw criteria generator on S\" am: 981864736a am: f0b2262dca am: 6950539251\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1575264\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I01c50d1cc993c1d7b5690ee06f247382b1bea4c0\n"
    },
    {
      "commit": "6950539251c31e449682bcdaec55cf8951c84711",
      "tree": "01fd1f10f3ede4f4fb172468aa51c99bb455539f",
      "parents": [
        "7516d6d11dc7a4b41b0d2f3707302e6e875ba448",
        "f0b2262dcaef54a92f24cfeee92e886598acc22d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 09 17:01:37 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 09 17:01:37 2021 +0000"
      },
      "message": "Merge \"fix pfw criteria generator on S\" am: 981864736a am: f0b2262dca\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1575264\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Iacf40c44d331d6064110681caf417001c0afaf0d\n"
    },
    {
      "commit": "5aa6e1c010f3d4bab1f8db9a2d142bc6a740ab7d",
      "tree": "05765908630da66de745cca0f24317e080fac180",
      "parents": [
        "f543afb203285bf2bbff0a289fa30ed810266827",
        "877b27e1cd14cb20bed90ce95ff5e22b3f77188d"
      ],
      "author": {
        "name": "Kriti Dang",
        "email": "kritidang@google.com",
        "time": "Tue Feb 09 12:44:10 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 12:44:10 2021 +0000"
      },
      "message": "Merge \"Fixing crash in surround sound settings which occurs due to API getSurroundSound.\" into sc-dev"
    },
    {
      "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": "3e475acc0f72a7325a2505b21baa24bd56bcf841",
      "tree": "1fdbfc45e5ce1e771787403d8c5d1c25e685c69e",
      "parents": [
        "25521834a63d67308520da5bced97ed517a30a72",
        "ba9053b49cd280b59d6db46eac893367f7919a44"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 08 19:09:07 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 08 19:09:07 2021 +0000"
      },
      "message": "Merge \"audiopolicy: add support to load custom audiopolicymanager.\" into sc-dev"
    },
    {
      "commit": "b7d2078c3fbfe0cbfcb7ca734cb45faf8be45493",
      "tree": "197b9cd02cded6529593ebc7aa9989f21c36afb9",
      "parents": [
        "83b5d499f239a8fea781447d924df42b14312396"
      ],
      "author": {
        "name": "Alden DSouza",
        "email": "aldend@google.com",
        "time": "Mon Feb 08 08:51:42 2021 -0800"
      },
      "committer": {
        "name": "Alden DSouza",
        "email": "aldend@google.com",
        "time": "Mon Feb 08 08:51:42 2021 -0800"
      },
      "message": "audio: Add device definitions for Echo Reference\n\nThis enum exists in AudioSystem, adding to AudioDeviceInfo.\n\nBug: 178379355\nTest: Build and flash on Yukawa device.\nChange-Id: I4a4aade913c0823a20a538cb740b2a83f775415c\n"
    },
    {
      "commit": "578a36a1faec11902f4b17adf54c85be36909b1a",
      "tree": "956fa43edaf9be796d420f5f3ecb53deca53dcbf",
      "parents": [
        "ec53dfa4b599227e4e3663bdcbfb1d1dfacc29a0",
        "408349af5960baa7886d5c1f8a199a80efb0a804"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 08 14:49:31 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 08 14:49:31 2021 +0000"
      },
      "message": "Merge changes I01ad15fa,I428e9f0c,I49ea4d01,I4dcc9f6d,Ibfeb9ae3, ... into sc-dev\n\n* changes:\n  audiopolicy: avoid unnecessary closure of HOTWORD recording.\n  audiopolicy: Add support for multiple display ports.\n  audiopolicy: Wrong device selection for music during concurrency.\n  audiopolicy: fix voice volume mismatch after headset removal.\n  nuplayer: handle setPlaybackSettings on direct tracks.\n  libmedia: modify conditions to reuse track.\n"
    },
    {
      "commit": "ec53dfa4b599227e4e3663bdcbfb1d1dfacc29a0",
      "tree": "59c8f96f9e0be9d20018bb3f0b957859dae5aeff",
      "parents": [
        "a492bbee4bad65856189a8e7d334aa73d8b1cfa9",
        "7f2285b1e120192e4368e5813b86370c66cfd544"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Mon Feb 08 02:04:16 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 08 02:04:16 2021 +0000"
      },
      "message": "Merge \"Specify version for aidl_interface explicitly\" into sc-dev"
    },
    {
      "commit": "a492bbee4bad65856189a8e7d334aa73d8b1cfa9",
      "tree": "71218f853eb4cbb67e6dc8326446b021be6b00e0",
      "parents": [
        "9b9fd9403129456b15c99a338d339e881cb334c7",
        "505f0a490fc3799d22fb738ca2346317c37ec90e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Feb 06 02:09:54 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Feb 06 02:09:54 2021 +0000"
      },
      "message": "Merge \"Update BT audio policy configuration\" am: 210105afef am: b638891310 am: 505f0a490f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1576905\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ifdde9be5d3ba9a5b8f465634f071ed2fe18f4496\n"
    },
    {
      "commit": "505f0a490fc3799d22fb738ca2346317c37ec90e",
      "tree": "2300791893ab353c2cece5850b46de42d5a8f9a7",
      "parents": [
        "52d87e414be5e89e35086f3bcb384a34f0f29853",
        "b63889131060572d91653e2dc5a8f4a21f23ffb2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Feb 06 01:08:58 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Feb 06 01:08:58 2021 +0000"
      },
      "message": "Merge \"Update BT audio policy configuration\" am: 210105afef am: b638891310\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1576905\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I73549eadb1851e0b6e5ccbcf72260c9c69677243\n"
    },
    {
      "commit": "9b9fd9403129456b15c99a338d339e881cb334c7",
      "tree": "e017d3d853804909df9df42deb1f1147ba5c229d",
      "parents": [
        "4e4193a3c4529b168b35d5d7797afaa0c77526b5",
        "52d87e414be5e89e35086f3bcb384a34f0f29853"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 05 23:31:25 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 05 23:31:25 2021 +0000"
      },
      "message": "Merge \"Update APM XML deserializer for HAL V7\" am: 34da2e29c0 am: f7795707db am: 52d87e414b\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1576904\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If720a6262e1abbc4ed3c7682e2629bd2588ac6de\n"
    },
    {
      "commit": "52d87e414be5e89e35086f3bcb384a34f0f29853",
      "tree": "d7a5296226bc7cf930ce42b40a7035efe86a2028",
      "parents": [
        "ef8ace77d9527966638c76382716cb58dc851262",
        "f7795707db53a8ad1973173cfdcaf73258059102"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 05 23:30:35 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 05 23:30:35 2021 +0000"
      },
      "message": "Merge \"Update APM XML deserializer for HAL V7\" am: 34da2e29c0 am: f7795707db\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1576904\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I1df2cdce34797ec9d994a97fe58a396cbba27722\n"
    },
    {
      "commit": "ba9053b49cd280b59d6db46eac893367f7919a44",
      "tree": "1ce17589d7f06544452f73c1a731a22d71b24936",
      "parents": [
        "1570f85e10f4b3565463cb52cf7080b2ead8021b"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "quic_jaidshar@quicinc.com",
        "time": "Mon Jan 25 21:24:26 2021 +0530"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 05 21:30:22 2021 +0000"
      },
      "message": "audiopolicy: add support to load custom audiopolicymanager.\n\nThis change provides a mechanism to load a custom implementation of\nAudioPolicyManager.\nIf custom library is present load that otherwise fallback to default\nAudioPolicyManager.\n\nThis custom implementation should reside under system_ext or product\npartition and should be compliant to xTS test suites.\n\n- To use this create a library viz. libaudiopolicymanagericustom.so by\n  extending AudioPolicyManager in system_ext or product partition,\n  expose createAudioPolicyManager \u0026 destroyAudioPolicyManager methods\n  to return custom AudioPolicyManager instance.\n\nBug: 120198776\nTest: make\n\nChange-Id: I0df7c390fe29f56378d4b90ca5ab559302770419\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": "408349af5960baa7886d5c1f8a199a80efb0a804",
      "tree": "03ceb3cf0d348340a1b8934a7b9ab8f9f441e18c",
      "parents": [
        "07c990148f79e5ca58f406b15114eb1ccc2a0812"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "quic_jaidshar@quicinc.com",
        "time": "Fri Nov 27 14:47:17 2020 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 20:31:24 2021 +0100"
      },
      "message": "audiopolicy: avoid unnecessary closure of HOTWORD recording.\n\nWhen the new selected input device is not supported by current\ninput handle, normally it needs to be closed and then create\na new one to capture with the new device.\nWhile for HOTWORD recording, as the data will either be captured\nfrom handset mic or headset mic, recording can be continued on\nthe original input handle.\n\nBug: 179399190\nTest: audio smoke tests\nChange-Id: I01ad15fa2bb383979250399fe2b8903965bb6aa9\n"
    },
    {
      "commit": "07c990148f79e5ca58f406b15114eb1ccc2a0812",
      "tree": "3b9de1541db6a0e6be763fa580bcbbf9b97c4c7c",
      "parents": [
        "e4d123ad8c6d43108ea1a7a04a1b92b98e9e367f"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "quic_jaidshar@quicinc.com",
        "time": "Mon Nov 16 12:45:05 2020 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 20:26:10 2021 +0100"
      },
      "message": "audiopolicy: Add support for multiple display ports.\n\nSort devices added to policy manager based on device type.\nFor devices of same type sort based on id, which places the\nlatest devices in the front of the list.\nFor devices of same type, no id, fallback to default\nsort using pointer address.\nThis is needed when same type of different devices can be connected.\n\nBug: 111196161\nTest: manual audio smoke tests.\n\nChange-Id: I428e9f0cb5d8e9700be7b96cea665bc2e0d2805e\n"
    },
    {
      "commit": "e4d123ad8c6d43108ea1a7a04a1b92b98e9e367f",
      "tree": "bb59a885bd576bcce51d5d08862ca30eafa35ed1",
      "parents": [
        "89b5b85fcd98bc2330924e00b51126cd63a11f68"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "quic_jaidshar@quicinc.com",
        "time": "Tue Nov 24 15:14:03 2020 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 20:26:10 2021 +0100"
      },
      "message": "audiopolicy: Wrong device selection for music during concurrency.\n\nMusic playback is switching from proxy device to speaker when more than\none touch tone/notification streams are started after music and one of\nthe low latency streams is stopped.\n\nConsider low latency streams playing on speaker and music playing\non WiFi display (proxy device).\n\nWhen the first low latency output is stopped, getNewOutputDevices checks\nfor a product strategy from the list. STRATEGY_SONIFICATION comes prior to\nSTRATEGY_MEDIA in the list of product strategies. If an ALARM or\nENFORCED_AUDIBLE stream is supported by the product strategy, devices are\nreturned for STRATEGY_SONIFICATION without checking whether the stream is\nassociated to the output descriptor for which we are querying devices.\n\nAs a solution, we check if ALARM or ENFORCED_AUDIBLE streams are active\non the queried output descriptor and return devices accordingly.\n\nBug: 137907302\nTest: manual audio smoke tests.\n\nauthored-by: Manisha Agarwal \u003cmaniagar@codeaurora.org\u003e\nChange-Id: I49ea4d01290b4a611df281681c0db9fe3f7957fc\n"
    },
    {
      "commit": "89b5b85fcd98bc2330924e00b51126cd63a11f68",
      "tree": "cc34bb945b0ec88fde4d266ecf7a2b7bdfab6a69",
      "parents": [
        "18a79124503d4aa07ba3f81d467fa65dfbc12d51"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "quic_jaidshar@quicinc.com",
        "time": "Mon Nov 23 16:41:33 2020 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 20:26:10 2021 +0100"
      },
      "message": "audiopolicy: fix voice volume mismatch after headset removal.\n\nDuring voice call, when headset is removed, new device of primary\noutput is first set to handset, and voice volume is also\ncalculated in handset. Later other outputs loop to select new\ndevice and calculate volume in new device, due to inactive output\nselects AUDIO_DEVICE_NONE, it uses previous device and set wrong\nvoice volume.\n\nFix it by add check to avoid applying volume for inactive output.\n\nBug: 111196161\nTest: manual audio smoke tests.\n\nChange-Id: I4dcc9f6d3442ce5a0a8235c04b4156ad17d373db\n"
    },
    {
      "commit": "877b27e1cd14cb20bed90ce95ff5e22b3f77188d",
      "tree": "0f1f7c3eec5053b63b964a8d7e0e34aec7a14695",
      "parents": [
        "c5634ebd5d96a7aec03d726d0a805be9ab07ae02"
      ],
      "author": {
        "name": "Kriti Dang",
        "email": "kritidang@google.com",
        "time": "Tue Feb 02 12:10:40 2021 +0100"
      },
      "committer": {
        "name": "Kriti Dang",
        "email": "kritidang@google.com",
        "time": "Wed Feb 03 15:44:48 2021 +0100"
      },
      "message": "Fixing crash in surround sound settings which occurs\ndue to API getSurroundSound.\n\nBug: 178800104\nTest: Tested manually\nChange-Id: Ib0a13dfcdfa177676e8625703e9ddb2ce79e5d0e\n"
    },
    {
      "commit": "253887f7ae9b6e9cb89a28205a491245ae3bfd07",
      "tree": "de2b6a0086826596446802686a8bbbdb237a0c6a",
      "parents": [
        "0d0cba22452aabdfb91b9f292a20372a39db822e"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Wed Dec 09 17:17:37 2020 +0530"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 02 18:14:05 2021 -0800"
      },
      "message": "Added audiopolicy_fuzzer\n\nTest: ./audiopolicy_fuzzer\nBug: 174736992\n\nChange-Id: If71ca8d8eaa9a157a4df978c04ad4cc6644369e8\n"
    },
    {
      "commit": "83b5d499f239a8fea781447d924df42b14312396",
      "tree": "d2b49db8afe76fd464bdc30d59cf542470a920d0",
      "parents": [
        "c97b5ed706be58994bffc6319bd85106d8fb1af1",
        "f99edd337e7bab6f7b9862203de16408127f9b82"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 02 08:34:52 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 02 08:34:52 2021 +0000"
      },
      "message": "Merge \"audio policy: fix selected device Id in getOutputForAttr\" into sc-dev"
    },
    {
      "commit": "f99edd337e7bab6f7b9862203de16408127f9b82",
      "tree": "27f268733f87e2f34dc93c4103b85ea57af9d35f",
      "parents": [
        "7491da7fe76df7f23224f4b580b65ef0427b7166"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 01 15:57:33 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 01 15:57:33 2021 +0100"
      },
      "message": "audio policy: fix selected device Id in getOutputForAttr\n\nRestore passing of selected device ID to audio policy manager by\ngetOutputForAttr() and getInputForAttr() which was dropped by commit\n0a4904a1.\n\nBug: 178950206\nTest: atest android.media.cts.RoutingTest#test_mediaPlayer_incallMusicRoutingPermissions\nChange-Id: Iebadec1674a838a276cd0c803a978af2c21fa64b\n"
    },
    {
      "commit": "dea7f94cc13c7f05fa5fd74094185be979f40b7a",
      "tree": "9ad20d44c09b6cdfb42016ac64d148dc0dafbec8",
      "parents": [
        "5b473026bd95779abcf5b44e6fed3f9da786ea35"
      ],
      "author": {
        "name": "Bhalchandra Gajare",
        "email": "bgajare@google.com",
        "time": "Wed Jan 27 17:28:30 2021 -0800"
      },
      "committer": {
        "name": "Bhalchandra Gajare",
        "email": "bgajare@google.com",
        "time": "Mon Feb 01 09:54:50 2021 +0000"
      },
      "message": "audio policy: check permissions for AUDIO_INPUT_FLAG_HW_HOTWORD\n\nAllow audio capture with AUDIO_INPUT_FLAG_HW_HOTWORD only if the\ncaller has CAPTURE_AUDIO_HOTWORD permission granted. While at it,\nupdate the return code to PERMISSION_DENIED for other permission\nchecks as well.\n\nBug: 178654411\nTest: tested by setting hotword mode from AGSA application that has the\nrequired permission. Able to see hal opened with correct flag.\nTest: Forced to always return error if flag was set and verified\nAudioRecord starting in application fails.\n\nMerged-In: I827ab5933621bff71a96164e40026ecccf1ba44f\nChange-Id: I827ab5933621bff71a96164e40026ecccf1ba44f\n(cherry picked from commit 499faed90b16ce8a09eff353ab71b6383f8b9908)\n"
    },
    {
      "commit": "cda09c830a2b220379ee9e0225a1e6033104a3dd",
      "tree": "19f453b3c7df4a811639cf7a5eaebe5e19148ee5",
      "parents": [
        "7b812e7d155534655e3b4daa8685c52c2f62a225",
        "c430a2396b4bb2b5958ab2d8e56ae94a2d636603"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 30 01:00:57 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jan 30 01:00:57 2021 +0000"
      },
      "message": "Merge \"APM: Create multiple MSD patches\" am: 6f7a1f3ed0 am: c430a2396b\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1552057\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I287bd8322e8135b9d787a1b20f14b63379bf5eaf\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": "6fb3449ee5694fd46503d3c9aa4ab4114fb5fd74",
      "tree": "7d3c9ff78a9b220a9e886e94657091ea0bba57ab",
      "parents": [
        "40e3a7a239895c1407eb420f19e85d091d2d785b"
      ],
      "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": "Thu Jan 28 11:19:27 2021 -0800"
      },
      "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\n"
    },
    {
      "commit": "524f31213ed0527302df3ed3bce4a61ea5271913",
      "tree": "ee521d488f8083534aebe40d9b0038259c861109",
      "parents": [
        "780667a0330a997b5404b37b1b8cf583bca5496c",
        "01b6a05bf72651f7d28e1c2118624f86d30e1368"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 28 18:33:50 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jan 28 18:33:50 2021 +0000"
      },
      "message": "Merge \"audio: add implementation for TV related API\" am: 258062ea67 am: 01b6a05bf7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1562768\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ief2565e4a734da802804fbe3571e99db14982dca\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": "7f2285b1e120192e4368e5813b86370c66cfd544",
      "tree": "01cab530a2c4d17a9cf4e6e3401cf0855a554cde",
      "parents": [
        "82aff67588f6c1fc701f8bd36d8e3c57d21886d3"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Thu Jan 28 00:49:46 2021 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Thu Jan 28 00:49:46 2021 +0900"
      },
      "message": "Specify version for aidl_interface explicitly\n\nBug: 150578172\nTest: m\nChange-Id: I730c407461556fcd49a953b4b6249089af740c6e\n"
    },
    {
      "commit": "13b58e1dd2d5b3bf44e1dc1079639302531b1104",
      "tree": "f6b7af331071c0dd421e36523e33e5d7106abb5d",
      "parents": [
        "ce169b001820a251d15d0fbfda283756cf087809",
        "98c362fdd50e33e884590f3f12124a5e615d1815"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 27 09:59:07 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 27 09:59:07 2021 +0000"
      },
      "message": "audio flinger: report actual sink device for MSD playback threads am: 029e33e585 am: 98c362fdd5\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1561120\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I9d4416d48f19ba6726ea2564400d8beb2b09a5ae\n"
    },
    {
      "commit": "98c362fdd50e33e884590f3f12124a5e615d1815",
      "tree": "939004d22249558a262bcd927982707193db38ee",
      "parents": [
        "7c1762f46b516121c7e75f47106ad2e3b6a2d06c",
        "029e33e5854af4071d9d3c873a70d2fcc235f396"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 27 09:35:41 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 27 09:35:41 2021 +0000"
      },
      "message": "audio flinger: report actual sink device for MSD playback threads am: 029e33e585\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1561120\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I99b0ceb01840ef0436d3847700edaa53b8568411\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": "c03a75ea5c15cab0d092aae2b0c13eb80ddc7bc3",
      "tree": "e64703d3b6231faa0451e045143d8f9d341d7212",
      "parents": [
        "51ea10b13f4f7469330edf4babc5cf598e2c866a",
        "49f9567ebfa322e8cd77e9c381c4e190517126ea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 26 18:27:14 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 26 18:27:14 2021 +0000"
      },
      "message": "Merge \"audiopolicy: fixup! audiopolicy: HW Bridge Sink matching rule\" am: 38b2948cbc am: 49f9567ebf\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1548014\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I6e87cfd82e21e9ae594d54f4a88a2318e4bcd504\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": "5eb59bd70054d6a10caa3093f49484685c0b4c41",
      "tree": "d967a5469c450a823988e9fb50371300c94d3e94",
      "parents": [
        "c5ac37d5673aeed1918429ef1da65e0a4b0a023f",
        "51ea10b13f4f7469330edf4babc5cf598e2c866a"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Tue Jan 26 15:51:48 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 26 15:51:48 2021 +0000"
      },
      "message": "Merge \"Add Bluetooth LE Audio policy configuration\" am: cbeee874a7 am: 607980a21a am: 51ea10b13f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1535002\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I73e16f51a6ea20ae347c16432277d50e46cd6e13\n"
    },
    {
      "commit": "51ea10b13f4f7469330edf4babc5cf598e2c866a",
      "tree": "9e43973dcfcf68f67b592056baf60659ad2a28c8",
      "parents": [
        "6dee1325160dd05e9dfff250ddae5ed9d14ac11b",
        "607980a21a501d15a40f739ace1a7c6e764e5625"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Tue Jan 26 15:40:07 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 26 15:40:07 2021 +0000"
      },
      "message": "Merge \"Add Bluetooth LE Audio policy configuration\" am: cbeee874a7 am: 607980a21a\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1535002\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ic256d4ebf96b1830a98b8f2982bc7b810e1b5562\n"
    },
    {
      "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": "d4adbdb74589b33d570f33d1a7301d18a2e84b7f",
      "tree": "abc46f5e46017822b6e121c9a3c46dcc60dbf910",
      "parents": [
        "07f14e30d102b0a7ab148ba80397bba3e02500de"
      ],
      "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": "Fri Jan 22 14:22:40 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\nChange-Id: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\n"
    },
    {
      "commit": "07f14e30d102b0a7ab148ba80397bba3e02500de",
      "tree": "7c6d356112d6e10a24542f1ca876734c79a69068",
      "parents": [
        "91f0dfd88bf2ddad5511cae53c432dcf41bf30aa",
        "371c7feab8de2b29d331ad748874cd2ee18b9cbf"
      ],
      "author": {
        "name": "Evan Severson",
        "email": "evanseverson@google.com",
        "time": "Fri Jan 22 20:49:56 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 20:49:56 2021 +0000"
      },
      "message": "Merge \"Fix sensor privacy check in audio policy service\""
    },
    {
      "commit": "27e692473dd610618c9b1d4a1e8c4778dc5f628d",
      "tree": "79370f84201cc5a1eace6ead0e87e9e7e570e51b",
      "parents": [
        "f83ecd2ca7ff5d15462359a0c752c9d8aef5fe52",
        "0a4904a12ded2c89e2cae4a7dc46730726cf9abd"
      ],
      "author": {
        "name": "Ytai Ben-tsvi",
        "email": "ytai@google.com",
        "time": "Fri Jan 22 16:56:24 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 16:56:24 2021 +0000"
      },
      "message": "Merge changes from topic \"aidlize-aps\"\n\n* changes:\n  Convert IAudioPolicyService to AIDL\n  Small changes around AIDL conversion code\n"
    },
    {
      "commit": "0a4904a12ded2c89e2cae4a7dc46730726cf9abd",
      "tree": "82da7b9713645ba4970114857119bdf21dc40f54",
      "parents": [
        "08c7d9e6ceb83134b7d6d6b56e686cfb54dd43f3"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Jan 06 12:57:05 2021 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Jan 21 10:44:07 2021 -0800"
      },
      "message": "Convert IAudioPolicyService to AIDL\n\nTest: Audio tests from CtsMediaTests\nTest: Audio smoke tests\nBug: 160253486\n\nChange-Id: I5ecee56f71a959d2fd75714ba95d7653af0c98bc\n"
    },
    {
      "commit": "ee1d5e1974853d26a4f00209b136e1d3c7aecc74",
      "tree": "956e5e4e133db6028d915ac3db4ae7837ec0df2c",
      "parents": [
        "d24a4c8ec56de1b14efc89bb6962eeb40d8f6268",
        "2725f332c506648adfb74f328525049572d42531"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 21 08:17:59 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 21 08:17:59 2021 +0000"
      },
      "message": "Merge changes I9eb9de96,Id1e037af\n\n* changes:\n  audiopolicy: fixup! audiopolicy: HW Bridge Sink matching rule\n  Revert \"Revert \"audiopolicy: HW Bridge Sink matching rule\"\"\n"
    },
    {
      "commit": "371c7feab8de2b29d331ad748874cd2ee18b9cbf",
      "tree": "2fe8d810d48f9b87a72dad4d47b9d86044a7f29f",
      "parents": [
        "0e6db8c66642cd978ffc6fe86fdf89373128dee4"
      ],
      "author": {
        "name": "Evan Severson",
        "email": "evanseverson@google.com",
        "time": "Wed Jan 20 12:21:41 2021 -0800"
      },
      "committer": {
        "name": "Evan Severson",
        "email": "evanseverson@google.com",
        "time": "Wed Jan 20 12:54:06 2021 -0800"
      },
      "message": "Fix sensor privacy check in audio policy service\n\nThis change addresses feedback for change\nI6f9c762086cfa3900ec9585aaf68e458c9dadff5.\n\nTest: Manual\nBug: 162549680\nChange-Id: I0b4a318d0d14e545a845e9ac53ef170e4c5cb4c6\n"
    },
    {
      "commit": "241d9592ae212d1ad551bf0792220927bf722f44",
      "tree": "5b5f38a5ec0b4a65878fe55fa3ca93e0ccfaa706",
      "parents": [
        "78b1947ea365fdca2f243657166bc597b2c0081d"
      ],
      "author": {
        "name": "Evan Severson",
        "email": "evanseverson@google.com",
        "time": "Fri Jan 08 12:16:02 2021 -0800"
      },
      "committer": {
        "name": "Evan Severson",
        "email": "evanseverson@google.com",
        "time": "Tue Jan 19 15:09:01 2021 -0800"
      },
      "message": "Wire up the microphone toggle to the audio service\n\nBug: 162549680\nTest: When mic is disabled, test that audio gets muted. Also test that\n          virtual record works so services like captioning still work.\nChange-Id: I6f9c762086cfa3900ec9585aaf68e458c9dadff5\n"
    },
    {
      "commit": "23bf9db9346bf3c169dbba6e010266b86c2d447b",
      "tree": "fb0f35356fbbbf6d6b56f1a2d7e90504de8af631",
      "parents": [
        "8694d6869ac187878851f9ec8ee11818609451dd",
        "f9e31dbc3cb72891192a156546f54561f8edb3dd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 19 12:09:51 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 19 12:09:51 2021 +0000"
      },
      "message": "Merge changes from topic \"audio_source_issues\" am: a0969954f6 am: f9e31dbc3c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1270143\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If584c0196702f866b3ece4506cfd21edb8cd3ad0\n"
    },
    {
      "commit": "8694d6869ac187878851f9ec8ee11818609451dd",
      "tree": "b0b007d3043c0d3420280be85e851051ecbb1761",
      "parents": [
        "2603163cc1e1838490a5961d08226cf2ae4cf874",
        "54c69a83a848afe271b025dbb4c4bea6c9848f23"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 19 12:09:49 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 19 12:09:49 2021 +0000"
      },
      "message": "audiopolicy: Primary Output runtime management am: fa51ed78aa am: 54c69a83a8\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1460882\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If5346d163c4663c9870b19c99406b5648cf1b2bb\n"
    },
    {
      "commit": "2603163cc1e1838490a5961d08226cf2ae4cf874",
      "tree": "23da728c2a005cd3b67d2b70fb9f3a6a2bc17c83",
      "parents": [
        "1415ac9395ce02f8592eb0759c914708e17109c0",
        "b0d6665f23f1bee85d2d52bef2de5db43c9e7ede"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 19 12:09:46 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 19 12:09:46 2021 +0000"
      },
      "message": "audio policy: audio source automatic re-connection am: d2c073b0f2 am: b0d6665f23\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1441932\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Id64951db3a64297212d5e7093bb051ab4514b1a8\n"
    },
    {
      "commit": "1415ac9395ce02f8592eb0759c914708e17109c0",
      "tree": "ea7a3c9b4461405479ace836e8beda844146a6bb",
      "parents": [
        "98250e939d55a9b09f087e1f7149d7b71145509f",
        "663db42536c2ecb2205782c8f7ec1c15daf9af80"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 19 12:09:44 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 19 12:09:44 2021 +0000"
      },
      "message": "AudioPolicy: remove devices while Sw bridge established am: 5bd3d2d11d am: 663db42536\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1304017\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Id861bdc618c6f1a231181082cce70ef9457abe52\n"
    },
    {
      "commit": "2725f332c506648adfb74f328525049572d42531",
      "tree": "ac76c9ec39c83921cedb234ecdbd816ce40a4cd5",
      "parents": [
        "423cf6a65280078d6bc0ee5bc7fe0da28b4c9e25"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 12 17:46:51 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 18 19:21:43 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\n"
    },
    {
      "commit": "423cf6a65280078d6bc0ee5bc7fe0da28b4c9e25",
      "tree": "a667a48139a9a6ff4c0d6de7bd6b091f44141e1d",
      "parents": [
        "b2448e502d07c699b50a0714fbf07c0405369a62"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 18 18:32:39 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 18 19:12:00 2021 +0100"
      },
      "message": "Revert \"Revert \"audiopolicy: HW Bridge Sink matching rule\"\"\n\nThis reverts commit 60a83ca8522a4334e96ffa5741e9c2b1a6baa5b9.\n\nBug: 172833835\nTest: atest testRecordFromRemoteSubmix twice\nChange-Id: Id1e037afd2205faffb62f1392503b8d12099902f\n"
    },
    {
      "commit": "943654450365fa24962a7ae7c1373a7f5ff3bd37",
      "tree": "a27299c603ce7fa4882dc14ffc65b70c5c5d1b56",
      "parents": [
        "5feac6b66fbb1dbd258b660dd8a52f241368778b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 08 18:36:05 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 15 10:22:17 2021 +0000"
      },
      "message": "audio policy: minor log and dump fixes\n\nFix DeviceDescriptorBase dump formatting and add more\ninfo to getOffoadSupport() verbose log.\n\nTest: adb shell dumpsys media.audio_policy\nChange-Id: Ibbc4f80305d5b326c316f7510a03688ebeadb33a\n"
    },
    {
      "commit": "5f9a6459f9157625bd5a661649968eeff4850b71",
      "tree": "23e0a887b11a8f2242a841ba28c748a6474281a1",
      "parents": [
        "d8888d48f512f894182848f3d7076b8c6a68fa95"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 20:10:10 2020 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 12:25:52 2021 +0100"
      },
      "message": "AudioPolicyMix: fix loopback+render mix match rules\n\nFix matching logic for loopback+render rule and usage VOICE_COMMUNICATION.\nPrevious logic was requesting flag mAllowPrivilegedPlaybackCapture to\nallow capturing playback with usage VOICE_COMMUNICATION.\nThis is not a requirement: only flag mVoiceCommunicationCaptureAllowed\ntogether with a client not having opted out from capture by the system\nis needed for a match.\nAlso rename mAllowPrivilegedPlaybackCapture to mAllowPrivilegedMediaPlaybackCapture\nin AudioMix class to reflect better its actual role.\n\nTest: atest AudioHostTest\nTest: atest AudioPlaybackCaptureTest\nBug: 161569476\nChange-Id: Iad0b7e89e68c9f2e59fabb75071a6425e9a29085\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": "51c9ccd1b696cfcec82915aa3a7ed5bd5b24a3fb",
      "tree": "7c6d36c78dbc7b7d37ceeb7f078fcfa241ed6f92",
      "parents": [
        "bce7cd48b7c1afe6271c8596ebec03e4b71be249"
      ],
      "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:19:41 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\n"
    },
    {
      "commit": "bce7cd48b7c1afe6271c8596ebec03e4b71be249",
      "tree": "69cc4c93f923bdad74bb50191956e75b6ad4d612",
      "parents": [
        "a0e5c99752cebfdbd56a70bb97e12ed7cedc4a70"
      ],
      "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:19:34 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\n"
    },
    {
      "commit": "a0e5c99752cebfdbd56a70bb97e12ed7cedc4a70",
      "tree": "bf2e3e487cc587960cb5c0008ad75b49a9f0f9cb",
      "parents": [
        "ff1eb52316ca4eff24735029829a177530e27f06"
      ],
      "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:19:25 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\n"
    },
    {
      "commit": "ff1eb52316ca4eff24735029829a177530e27f06",
      "tree": "fe8e9567669e0fe4e1c3ee6a85a4bd838b135456",
      "parents": [
        "89a23220d54f71c8577e8fa5098850c9c1ce5ce8"
      ],
      "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:19:01 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\n"
    },
    {
      "commit": "a3412b0d3e8ecfffa5863ae52aabfbcc4c381b94",
      "tree": "3da69f4b0554dd82fd9a9e3e2e3b6cd94f781e7d",
      "parents": [
        "7649c3fa73dda03d9646ccfc70e32e21c5c0bb6e",
        "1d69c872f223273847fe82086384c8ad343a781b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 11 19:46:39 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 11 19:46:39 2021 +0000"
      },
      "message": "Merge \"audio policy: fix spurious error log at init\""
    },
    {
      "commit": "1d69c872f223273847fe82086384c8ad343a781b",
      "tree": "7d66bac1a55041c74353606886d2c2315503a621",
      "parents": [
        "95f8fd2c6296cb00927d393a5870cc54bb73fd22"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 11 18:53:01 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 11 18:53:01 2021 +0100"
      },
      "message": "audio policy: fix spurious error log at init\n\nMove initialization of communication strategy in AudioPolicyManager::initialize()\nbefore loading HW modules to avoid calling Engine::getDevicesForRoleAndStrategy()\nwith an unknown strategy.\n\nTest: boot.\nChange-Id: I156441aca09807ee4569eb81e3cb7b903a325184\n"
    },
    {
      "commit": "952d043eb973a3918bbef95789505d5eb756c58f",
      "tree": "a6289989a4e8a1a38226fa9c9af3104187961a28",
      "parents": [
        "95f8fd2c6296cb00927d393a5870cc54bb73fd22",
        "bce0c1de61558b0d10aa88ec84c4175ef03432ce"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 11 17:32:03 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 11 17:32:03 2021 +0000"
      },
      "message": "Merge \"Support connecting multiple devices to APM.\""
    },
    {
      "commit": "bce0c1de61558b0d10aa88ec84c4175ef03432ce",
      "tree": "47dc4664f78e6f0bf5ce9a38fe80da3d44bf8bf6",
      "parents": [
        "471ab9669e1d288d4dc5fe927cebfcb0198f94cd"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Oct 05 11:20:18 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Jan 07 09:28:55 2021 -0800"
      },
      "message": "Support connecting multiple devices to APM.\n\nWhen connecting multiple devices with the same type to APM, APM will\nneed to support enumerating capabilities of the device. When a device is\nconnected/disconnected, the active devices may be updated. If an output\nsupports the active devices and dynamic profiles, it will be reopened to\nquery to dynamic profiles.\n\nTest: atest AudioTrackTest AudioRecordTest AudioManagerTest\nTest: atest AudioPlaybackCaptureTest audiopolicy_tests\nTest: audio smoke test\nBug: 160352965\nChange-Id: I52577ae26dd4073673025fe3286a58c047a35965\n"
    },
    {
      "commit": "1ab91b43ec864237e3bd12929669420b55c25bf6",
      "tree": "ce35d53fb21d7c06c23dc26df0a2072f1232556c",
      "parents": [
        "6149d6bd047e1b18d467d8c8f6cda33608f109c2",
        "2380e64dd387f6d0ab03923faffa301a00d449be"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 12:55:18 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 05 12:55:18 2021 +0000"
      },
      "message": "Merge \"audiopolicy: default engine audio source add blutooth ble device [1/1]\" am: b572b63b6e am: 772be9ff41 am: 2380e64dd3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1524979\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ic33eb49dfb31d0d19d8e4e23e3f0c6e34425ac50\n"
    },
    {
      "commit": "2380e64dd387f6d0ab03923faffa301a00d449be",
      "tree": "2fe67eabb6dfd9b7362079c88e99688bd4bb4838",
      "parents": [
        "ab1673777fe39b1c260830dafaaadc5f46349443",
        "772be9ff41d6e5e9f214fbd7bf9cf2b986549761"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 12:22:00 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 05 12:22:00 2021 +0000"
      },
      "message": "Merge \"audiopolicy: default engine audio source add blutooth ble device [1/1]\" am: b572b63b6e am: 772be9ff41\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1524979\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I3157d3e53a6fc3fcf09fce41d8de75a039dd2ad5\n"
    },
    {
      "commit": "74c38dc7e39125a9ae17daa3b810324621c0fad2",
      "tree": "55b4d2bfdb04674b707e07e1a7d15723684f1e74",
      "parents": [
        "dc66d284ad1cdfffc3e65cf352e270e43dc47ff8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 23 18:19:44 2020 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 08:37:54 2021 +0000"
      },
      "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\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": "9a6b9adb0de5f6fc3cf39e369c6a6ed447823469",
      "tree": "969cf83987ea9ce0bd5fb9e458af8cc6c8d68267",
      "parents": [
        "27fe43ec5915fd93539c17444102d0c9cfdd6732"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Oct 22 16:46:43 2020 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 23 08:57:48 2020 -0800"
      },
      "message": "Audio policy: notify system_server of routing change\n\nCallback into AudioPolicyClientInterface to notify of routing\nupdate whenever output is re-evaluated.\nAdd native test to verify callback is invoked on device\n(dis)connection and setForceUse.\n\nBug: 162448412\nTest: atest AudioServiceHostTest#testPreferredDeviceRouting\nTest: atest AudioServiceHostTest#testDevicesForAttributes\nTest: atest audiopolicy_tests:AudioPolicyManagerTestDeviceConnection#RoutingUpdate\nChange-Id: Ia1a985b996bf8f2f63e72c4110f62f65f9f42f21\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": "31f1fc39b3edfc6382dcf817f12fdb9704ef92b6",
      "tree": "f5cbf2a1e0acb55e3e4531079ccbac1fe3c25810",
      "parents": [
        "b83616c5cfffd0600c0712cdf4dffad4ef64fc59",
        "b809a75a56b26f7446521741c022ad42eb04564f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 21 10:57:04 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 21 10:57:04 2020 +0000"
      },
      "message": "Merge changes from topic \"refactor_route_for_comm\"\n\n* changes:\n  Audio policy: fix capture policy for IN_COMMUNICATION mode\n  audio policy: allow USB device for voice comm capture in speakerphone\n  audio policy: phone strategy routing based on preferred device API\n"
    },
    {
      "commit": "bf4b9ee019ea3e51a54b095e25269e90c46a3bfd",
      "tree": "ac117a802aa3a95e8a2d300d3a9397c8cb464df9",
      "parents": [
        "26f3d98fb97c0778bddaba81739e7eab097ea55b",
        "7e7a79d86f9596564562c1977aed241d4dc21154"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 17 23:48:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 17 23:48:26 2020 +0000"
      },
      "message": "Merge \"AIDLize IAudioPolicyServiceClient\""
    },
    {
      "commit": "b809a75a56b26f7446521741c022ad42eb04564f",
      "tree": "84e8bdcb107eb9529373a5070bc6f33bd067f496",
      "parents": [
        "6435dd74a14ee1db195f5479147d71df7eb3cf9d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 29 09:53:13 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 17 21:47:58 2020 +0100"
      },
      "message": "Audio policy: fix capture policy for IN_COMMUNICATION mode\n\nIf audio mode is IN_COMMUNICATION, favor audio mode owner over another\napp also capturing with privacy sensitive flag and with foreground UI or\nmore recent capture start time.\nThis avoids silencing both apps in this scenario.\n\nRestore voice communication capture restriction to audio mode owner\nremoved by commit ffabb495.\n\nBug: 160260850\nTest: VoIP call regression\n\nChange-Id: If4737cb7ffa3123537a13319d5857031f0f48932\n"
    },
    {
      "commit": "6435dd74a14ee1db195f5479147d71df7eb3cf9d",
      "tree": "5cab834e5d300cf10e62ad8caeeef8f3c0c0004e",
      "parents": [
        "2517af3ee8caec6d6de4c9e8f052d0579b6ec1b2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 02 14:42:42 2020 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 17 21:47:58 2020 +0100"
      },
      "message": "audio policy: allow USB device for voice comm capture in speakerphone\n\nWhen no built-in microphone is present, allow capture from USB accessory\n(e.g web cam) for voice communication use cases even when speakerphone\nmode is on. Even if the echo cancelling does not perform well, this is\nbetter than a failure to capture.\n\nBug: 168662367\nTest: basic audio regression tests\nChange-Id: I59c6b3206c7eb6265044879ced0afb4ac7281ecd\n"
    },
    {
      "commit": "2517af3ee8caec6d6de4c9e8f052d0579b6ec1b2",
      "tree": "27b3f3937ab07c4b40eee50b4e10659437feb810",
      "parents": [
        "f224b6d5c39e435038789e12162fb90459ca36ab"
      ],
      "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": "Thu Dec 17 21:47:58 2020 +0100"
      },
      "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\n"
    },
    {
      "commit": "f12daa4ec147c9ecca68afb9f85480781d769846",
      "tree": "317139f096611e149941aa91bbcb5f11f2419ada",
      "parents": [
        "b27255e84e2ddc5e951739d2238afd6314cf179a",
        "b742992506c1875c29c88498dec555bd7a2b8542"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Thu Dec 17 01:12:08 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 17 01:12:08 2020 +0000"
      },
      "message": "Merge \"Updating MediaRecorderClient to use CAPTURE_TUNER_AUDIO_INPUT\""
    },
    {
      "commit": "7e7a79d86f9596564562c1977aed241d4dc21154",
      "tree": "d6e1fdac0af8f5826cc06d4112972e4f4ea87ada",
      "parents": [
        "1601ba676489b977715b7b16d3b89dccead8554d"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Dec 15 16:48:16 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Dec 16 14:33:59 2020 -0800"
      },
      "message": "AIDLize IAudioPolicyServiceClient\n\nBug: 160253486\nTest: Audio-related tests from CtsMediaTestCases\nChange-Id: Id37fad4028b620620a45dabe8af068f3158e6228\n"
    },
    {
      "commit": "b742992506c1875c29c88498dec555bd7a2b8542",
      "tree": "873b858af21122fa6cd301978188d02f19459611",
      "parents": [
        "9b95dd2f7e88bd1ddaf5b765ffe7845cabe6edbc"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Fri Dec 11 13:59:18 2020 -0800"
      },
      "committer": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Dec 16 12:01:50 2020 -0800"
      },
      "message": "Updating MediaRecorderClient to use CAPTURE_TUNER_AUDIO_INPUT\n\nUpdating recording FM_TUNER to use CAPTURE_TUNER_AUDIO_INPUT\nin addition to CAPTURE_MEDIA_OUTPUT.\n\nBug: 165921316\nTest: atest AudioServiceHostTest#testRadioTunerRecord\nChange-Id: I3e41cab65154835296f9e0d965f9bba4598050d1\n"
    },
    {
      "commit": "5fca50079e1c42b61b569da47382595407e7ee07",
      "tree": "2d0cc23b38436d9e3bed0fce85180a1b48e8aa7e",
      "parents": [
        "b7c71956c0dd2f54a7174c746a8394012a0a686b",
        "e69cada3e096a21b69768e921dd60241238c6b9a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 15 22:42:52 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 15 22:42:52 2020 +0000"
      },
      "message": "Merge \"attribute REMOTE_SUBMIX recording to RECORD_AUDIO_OUTPUT\""
    },
    {
      "commit": "e69cada3e096a21b69768e921dd60241238c6b9a",
      "tree": "bc0d785b192aee94d63f96cf0dd6d4cdf516e1f7",
      "parents": [
        "5dc9ad75a27c19ec5450c57ba08d7e04494b704b"
      ],
      "author": {
        "name": "Nate Myren",
        "email": "ntmyren@google.com",
        "time": "Thu Dec 10 10:00:36 2020 -0800"
      },
      "committer": {
        "name": "Nate Myren",
        "email": "ntmyren@google.com",
        "time": "Mon Dec 14 13:01:52 2020 -0800"
      },
      "message": "attribute REMOTE_SUBMIX recording to RECORD_AUDIO_OUTPUT\n\nREMOTE_SUBMIX audioRecords do not use the microphone, so attribute their\nusage to RECORD_AUDIO_OUTPUT, instead of RECORD_AUDIO\n\nTest: manual\nFixes: 173797503\nChange-Id: Ibc5d09a6b2a90211781076f70516c03ed024cc42\n"
    },
    {
      "commit": "973638a1ca4d4f693a492a13c89240178391e56c",
      "tree": "844cf6ba85c876ff1cc8e93aba1b6a6d990ec5ac",
      "parents": [
        "3f69c16cb65f42892b2ee678d171c98613f16982"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 20:47:45 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 11 00:04:32 2020 -0800"
      },
      "message": "Audio Aidl: Unify naming for conversion methods\n\nMost of the naming for aidl2legacy and legacy2aidl\nare consistent, correct the few remaining inconsistencies.\n\nTest: compiles, boots\nBug: 175316373\nChange-Id: I85952846b306a2b5e88db125ccfbe431cc9bd7cd\n"
    }
  ],
  "next": "e13404b67042b964b2f3e8e17ce526bd2a4f8c55"
}
