)]}'
{
  "log": [
    {
      "commit": "492141a842981ac85c241c4b444a8485f0e270a1",
      "tree": "b732e2e076e9edfe242248d553b2623c8f70e517",
      "parents": [
        "91b07bcea7bb5c6661db16c89abe9805a0d2dacc"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sun Feb 21 18:17:49 2021 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sun Feb 21 19:06:50 2021 -0800"
      },
      "message": "Do not add quotes around flags argument\n\n* build/soong will adds quotes around the whole flags\n  and preserve the quotes around flags argument.\n  The quotes incorrectly became part of a flag\u0027s value.\n* build/soong adds automatically module directory to\n  -header-filter.\n* allow new found .h file clang-tidy warnings, not as errors.\n\nBug: 180862582\nTest: make; make with WITH_TIDY\u003d1\nChange-Id: Ic4aebedf1e13974aa7400fa256325ca3bff764b9\n"
    },
    {
      "commit": "8c4f38aea37b843d1a28c16a37fe2a5c7cbc1813",
      "tree": "761518b7a2bb3ccb1b778fc7ab980f20f4dc99e8",
      "parents": [
        "3107a0bb93fdfb4909b4dcb27fd3b57243a2a495",
        "394fdf81a91f5576e9f947e98cdf8d8a6090784c"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Fri Feb 19 17:37:08 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 19 17:37:08 2021 +0000"
      },
      "message": "Merge \"Added camera_service_fuzzer\""
    },
    {
      "commit": "948e6aace91d16acfaa97763c7228029a1c2afe0",
      "tree": "e1213aacab8f21fd8bf9dcd02dbc82741013379f",
      "parents": [
        "367398038247b09a3f92e05affac5f9b1f5e2f90"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 21:02:31 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:09:57 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  camera/cameraserver/Android.bp\n  camera/tests/Android.mk\n  cmds/screenrecord/Android.bp\n  cmds/stagefright/Android.mk\n  drm/common/Android.bp\n  drm/drmserver/Android.bp\n  drm/libdrmframework/Android.bp\n  drm/libdrmframework/plugins/common/util/Android.bp\n  drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.bp\n  drm/libdrmframework/plugins/passthru/Android.bp\n  drm/libmediadrm/Android.bp\n  drm/libmediadrm/fuzzer/Android.bp\n  drm/libmediadrm/protos/Android.bp\n  drm/libmediadrm/tests/Android.bp\n  drm/mediacas/plugins/clearkey/Android.bp\n  drm/mediacas/plugins/clearkey/tests/Android.bp\n  drm/mediacas/plugins/mock/Android.bp\n  drm/mediadrm/plugins/clearkey/common/Android.bp\n  drm/mediadrm/plugins/clearkey/default/Android.bp\n  drm/mediadrm/plugins/clearkey/default/tests/Android.bp\n  drm/mediadrm/plugins/mock/Android.bp\n  media/audioserver/Android.mk\n  media/bufferpool/1.0/Android.bp\n  media/bufferpool/1.0/vts/Android.bp\n  media/bufferpool/2.0/Android.bp\n  media/bufferpool/2.0/tests/Android.bp\n  media/codec2/components/aac/Android.bp\n  media/codec2/components/amr_nb_wb/Android.bp\n  media/codec2/components/aom/Android.bp\n  media/codec2/components/avc/Android.bp\n  media/codec2/components/base/Android.bp\n  media/codec2/components/cmds/Android.bp\n  media/codec2/components/flac/Android.bp\n  media/codec2/components/g711/Android.bp\n  media/codec2/components/gav1/Android.bp\n  media/codec2/components/gsm/Android.bp\n  media/codec2/components/hevc/Android.bp\n  media/codec2/components/mp3/Android.bp\n  media/codec2/components/mpeg2/Android.bp\n  media/codec2/components/mpeg4_h263/Android.bp\n  media/codec2/components/opus/Android.bp\n  media/codec2/components/raw/Android.bp\n  media/codec2/components/vorbis/Android.bp\n  media/codec2/components/vpx/Android.bp\n  media/codec2/components/xaac/Android.bp\n  media/codec2/core/Android.bp\n  media/codec2/faultinjection/Android.bp\n  media/codec2/fuzzer/Android.bp\n  media/codec2/hidl/1.0/utils/Android.bp\n  media/codec2/hidl/1.0/vts/functional/Android.bp\n  media/codec2/hidl/1.0/vts/functional/audio/Android.bp\n  media/codec2/hidl/1.0/vts/functional/common/Android.bp\n  media/codec2/hidl/1.0/vts/functional/component/Android.bp\n  media/codec2/hidl/1.0/vts/functional/master/Android.bp\n  media/codec2/hidl/1.0/vts/functional/video/Android.bp\n  media/codec2/hidl/1.1/utils/Android.bp\n  media/codec2/hidl/client/Android.bp\n  media/codec2/hidl/services/Android.bp\n  media/codec2/sfplugin/Android.bp\n  media/codec2/sfplugin/tests/Android.bp\n  media/codec2/sfplugin/utils/Android.bp\n  media/codec2/tests/Android.bp\n  media/codec2/vndk/Android.bp\n  media/codecs/amrnb/common/Android.bp\n  media/codecs/amrnb/enc/fuzzer/Android.bp\n  media/codecs/amrnb/fuzzer/Android.bp\n  media/codecs/amrwb/dec/fuzzer/Android.bp\n  media/codecs/amrwb/enc/Android.bp\n  media/codecs/amrwb/enc/SampleCode/Android.bp\n  media/codecs/amrwb/enc/fuzzer/Android.bp\n  media/codecs/amrwb/enc/test/Android.bp\n  media/codecs/g711/decoder/Android.bp\n  media/codecs/g711/fuzzer/Android.bp\n  media/codecs/m4v_h263/dec/Android.bp\n  media/codecs/m4v_h263/dec/test/Android.bp\n  media/codecs/m4v_h263/fuzzer/Android.bp\n  media/codecs/mp3dec/fuzzer/Android.bp\n  media/extractors/Android.bp\n  media/extractors/aac/Android.bp\n  media/extractors/amr/Android.bp\n  media/extractors/flac/Android.bp\n  media/extractors/fuzzers/Android.bp\n  media/extractors/midi/Android.bp\n  media/extractors/mkv/Android.bp\n  media/extractors/mp3/Android.bp\n  media/extractors/mp4/Android.bp\n  media/extractors/mpeg2/Android.bp\n  media/extractors/ogg/Android.bp\n  media/extractors/tests/Android.bp\n  media/extractors/wav/Android.bp\n  media/img_utils/Android.bp\n  media/libaaudio/Android.bp\n  media/libaaudio/examples/Android.bp\n  media/libaaudio/examples/input_monitor/Android.bp\n  media/libaaudio/examples/loopback/Android.bp\n  media/libaaudio/examples/write_sine/Android.bp\n  media/libaaudio/src/Android.bp\n  media/libaaudio/tests/Android.bp\n  media/libaudioclient/Android.bp\n  media/libaudioclient/tests/Android.bp\n  media/libaudiofoundation/Android.bp\n  media/libaudiofoundation/tests/Android.bp\n  media/libaudiohal/Android.bp\n  media/libaudiohal/impl/Android.bp\n  media/libaudioprocessing/Android.bp\n  media/libaudioprocessing/audio-resampler/Android.bp\n  media/libaudioprocessing/tests/Android.bp\n  media/libaudioprocessing/tests/fuzzer/Android.bp\n  media/libcpustats/Android.bp\n  media/libdatasource/Android.bp\n  media/libeffects/config/Android.bp\n  media/libeffects/downmix/Android.bp\n  media/libeffects/downmix/tests/Android.bp\n  media/libeffects/dynamicsproc/Android.bp\n  media/libeffects/factory/Android.bp\n  media/libeffects/loudness/Android.bp\n  media/libeffects/lvm/benchmarks/Android.bp\n  media/libeffects/lvm/lib/Android.bp\n  media/libeffects/lvm/tests/Android.bp\n  media/libeffects/lvm/wrapper/Android.bp\n  media/libeffects/preprocessing/Android.bp\n  media/libeffects/preprocessing/benchmarks/Android.bp\n  media/libeffects/preprocessing/tests/Android.bp\n  media/libeffects/proxy/Android.bp\n  media/libeffects/visualizer/Android.mk\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/xsd/Android.bp\n  media/libmedia/xsd/vts/Android.bp\n  media/libmediahelper/Android.bp\n  media/libmediahelper/tests/Android.bp\n  media/libmediametrics/Android.bp\n  media/libmediaplayerservice/Android.bp\n  media/libmediaplayerservice/datasource/Android.bp\n  media/libmediaplayerservice/nuplayer/Android.bp\n  media/libmediaplayerservice/tests/Android.bp\n  media/libmediaplayerservice/tests/stagefrightRecorder/Android.bp\n  media/libmediatranscoding/Android.bp\n  media/libmediatranscoding/tests/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libstagefright/Android.bp\n  media/libstagefright/bqhelper/Android.bp\n  media/libstagefright/bqhelper/tests/Android.bp\n  media/libstagefright/codecs/aacdec/Android.bp\n  media/libstagefright/codecs/aacenc/Android.bp\n  media/libstagefright/codecs/amrnb/dec/Android.bp\n  media/libstagefright/codecs/amrnb/enc/Android.bp\n  media/libstagefright/codecs/amrwbenc/Android.bp\n  media/libstagefright/codecs/avcdec/Android.bp\n  media/libstagefright/codecs/avcenc/Android.bp\n  media/libstagefright/codecs/common/Android.bp\n  media/libstagefright/codecs/flac/dec/Android.bp\n  media/libstagefright/codecs/flac/enc/Android.bp\n  media/libstagefright/codecs/g711/dec/Android.bp\n  media/libstagefright/codecs/gsm/dec/Android.bp\n  media/libstagefright/codecs/hevcdec/Android.bp\n  media/libstagefright/codecs/m4v_h263/dec/Android.bp\n  media/libstagefright/codecs/m4v_h263/enc/Android.bp\n  media/libstagefright/codecs/mp3dec/Android.bp\n  media/libstagefright/codecs/mpeg2dec/Android.bp\n  media/libstagefright/codecs/on2/dec/Android.bp\n  media/libstagefright/codecs/on2/enc/Android.bp\n  media/libstagefright/codecs/opus/dec/Android.bp\n  media/libstagefright/codecs/raw/Android.bp\n  media/libstagefright/codecs/vorbis/dec/Android.bp\n  media/libstagefright/codecs/xaacdec/Android.bp\n  media/libstagefright/colorconversion/Android.bp\n  media/libstagefright/data/Android.bp\n  media/libstagefright/filters/Android.bp\n  media/libstagefright/flac/dec/Android.bp\n  media/libstagefright/flac/dec/test/Android.bp\n  media/libstagefright/foundation/Android.bp\n  media/libstagefright/foundation/tests/AVCUtils/Android.bp\n  media/libstagefright/foundation/tests/Android.bp\n  media/libstagefright/foundation/tests/OpusHeader/Android.bp\n  media/libstagefright/foundation/tests/colorutils/Android.bp\n  media/libstagefright/http/Android.bp\n  media/libstagefright/httplive/Android.bp\n  media/libstagefright/id3/Android.bp\n  media/libstagefright/id3/test/Android.bp\n  media/libstagefright/mpeg2ts/Android.bp\n  media/libstagefright/mpeg2ts/test/Android.bp\n  media/libstagefright/omx/Android.bp\n  media/libstagefright/omx/tests/Android.bp\n  media/libstagefright/rtsp/Android.bp\n  media/libstagefright/tests/Android.bp\n  media/libstagefright/tests/ESDS/Android.bp\n  media/libstagefright/tests/HEVC/Android.bp\n  media/libstagefright/tests/extractorFactory/Android.bp\n  media/libstagefright/tests/fuzzers/Android.bp\n  media/libstagefright/tests/mediacodec/Android.bp\n  media/libstagefright/tests/metadatautils/Android.bp\n  media/libstagefright/tests/writer/Android.bp\n  media/libstagefright/timedtext/Android.bp\n  media/libstagefright/timedtext/test/Android.bp\n  media/libstagefright/webm/Android.bp\n  media/libstagefright/webm/tests/Android.bp\n  media/libstagefright/writer_fuzzers/Android.bp\n  media/libstagefright/xmlparser/Android.bp\n  media/libstagefright/xmlparser/test/Android.bp\n  media/libstagefright/xmlparser/vts/Android.bp\n  media/libwatchdog/Android.bp\n  media/mediaserver/Android.bp\n  media/mtp/Android.bp\n  media/mtp/tests/Android.bp\n  media/tests/benchmark/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/src/main/cpp/Android.bp\n  media/tests/benchmark/src/native/common/Android.bp\n  media/tests/benchmark/src/native/decoder/Android.bp\n  media/tests/benchmark/src/native/encoder/Android.bp\n  media/tests/benchmark/src/native/extractor/Android.bp\n  media/tests/benchmark/src/native/muxer/Android.bp\n  media/tests/benchmark/tests/Android.bp\n  media/utils/Android.bp\n  media/utils/fuzzers/Android.bp\n  services/audioflinger/Android.bp\n  services/audiopolicy/Android.bp\n  services/audiopolicy/common/Android.bp\n  services/audiopolicy/common/managerdefinitions/Android.bp\n  services/audiopolicy/config/Android.bp\n  services/audiopolicy/engine/common/Android.bp\n  services/audiopolicy/engine/config/Android.bp\n  services/audiopolicy/engine/interface/Android.bp\n  services/audiopolicy/engineconfigurable/Android.bp\n  services/audiopolicy/engineconfigurable/config/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/automotive/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/caremu/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.bp\n  services/audiopolicy/engineconfigurable/tools/Android.bp\n  services/audiopolicy/engineconfigurable/wrapper/Android.bp\n  services/audiopolicy/enginedefault/Android.bp\n  services/audiopolicy/enginedefault/config/example/Android.bp\n  services/audiopolicy/manager/Android.mk\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.mk\n  services/audiopolicy/tests/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/tests/Android.mk\n  services/mediacodec/Android.bp\n  services/mediacodec/registrant/Android.bp\n  services/mediaextractor/Android.bp\n  services/medialog/Android.bp\n  services/medialog/fuzzer/Android.bp\n  services/mediametrics/Android.bp\n  services/mediametrics/benchmarks/Android.bp\n  services/mediametrics/fuzzer/Android.bp\n  services/mediametrics/tests/Android.bp\n  services/mediaresourcemanager/Android.bp\n  services/mediaresourcemanager/fuzzer/Android.bp\n  services/mediaresourcemanager/test/Android.bp\n  services/mediatranscoding/Android.bp\n  services/mediatranscoding/tests/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  media/codecs/amrnb/dec/Android.bp\n  media/codecs/amrnb/dec/test/Android.bp\n  media/codecs/amrnb/enc/Android.bp\n  media/codecs/amrnb/enc/test/Android.bp\n  media/codecs/amrwb/dec/Android.bp\n  media/codecs/amrwb/dec/test/Android.bp\n  media/codecs/m4v_h263/enc/Android.bp\n  media/codecs/m4v_h263/enc/test/Android.bp\n  media/codecs/mp3dec/Android.bp\n  media/codecs/mp3dec/test/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    legacy_by_exception_only\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\n    SPDX-license-identifier-Unicode-DFS\nto:\n  apex/testing/Android.bp\n  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Car/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/CarEmu/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoInput/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoOutput/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_by_exception_only\nto:\n  drm/mediadrm/plugins/clearkey/hidl/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: I8360756b326b891b56629127091540310851c941\nMerged-in: Ic169757d64ad8da7eebd0e1febdcbfb467fe81f4\nMerged-in: Ifa3fefe5dc12229e8043a54ffd1f3958d6b02310\nMerged-in: I1e32081a069c4c1b25aa200dcdb165c0feb07b8a\nMerged-in: Ib2050becaf89b8e4db5867bc601dedeb4eb8ebd2\nMerged-in: I5a4d51fb1244ed49bcd70e446aaa26e2aa8ed7b1\n"
    },
    {
      "commit": "7e7b547d07934755c61820d0d011c016ab8f5c8a",
      "tree": "63d4cc7352ef749c8f795f5fbb94bdb18b3beef3",
      "parents": [
        "7a558ecac302fe70ecfc0ce5c374ae4a59bc8109",
        "19d3a0a2f72cfc26486047578269adf2f24343cf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 10 22:04:54 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 10 22:04:54 2021 +0000"
      },
      "message": "Merge \"Improve failure logging in AudioHealthTest\""
    },
    {
      "commit": "19d3a0a2f72cfc26486047578269adf2f24343cf",
      "tree": "8118b8265f819913cc3ac2af9cec64d2bff73e3b",
      "parents": [
        "c425880bfec08ec5a75566d90cff121ce52a9311"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Feb 08 17:16:37 2021 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Feb 10 20:52:36 2021 +0000"
      },
      "message": "Improve failure logging in AudioHealthTest\n\nPrint the types of the devices that were not found\nin the list of the attached devices.\n\nBug: 179743630\nTest: atest audio_health_tests\nChange-Id: I157b6779b8426dd8601c20ee07ecf414850fb09e\nMerged-In: I157b6779b8426dd8601c20ee07ecf414850fb09e\n"
    },
    {
      "commit": "958be0d657329595696c25a956da5a8a6c059087",
      "tree": "be0b94037eba3875cecc5735bdb1d82cf5ef07c3",
      "parents": [
        "1b8e0f7dd548c2328f5fdf05d45b467895f04ee6"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Feb 03 08:41:58 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 09 10:15:21 2021 +0000"
      },
      "message": "fix pfw criteria generator on S\n\nTest: make\nBug: 160640073\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ied9eaa0c9b60cf5a4a19682912da2766cc9212c5\n"
    },
    {
      "commit": "94378a21524499a2dcc73199f3c54f3065b53329",
      "tree": "2ab4b1b2ffedab0efbcf4a7df4e557eef562f147",
      "parents": [
        "a7c4e03dcec1f340bb862758611403489072de2e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 05 00:52:55 2021 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 05 02:00:04 2021 +0000"
      },
      "message": "Update BT audio policy configuration\n\nFix LE audio ports specificiation in\nbluetooth_audio_policy_configuration.xml.\nAdd a note that BLE_HEADSET/SPEAKER devices are not valid\nin audio HALs prior to V7.\n\nUpdated the V7 version of the BT configuration\nto match the pre-V7 version.\n\nTest: hardware/interfaces/audio/7.0/config/update_audio_policy_config.sh \\\n      device/google/bonito/audio_policy_configuration_a2dp_offload_disabled.xml \\\n      6.0\nChange-Id: I1d526e7b19a77f2d923e330cd4226f11b449af2f\n"
    },
    {
      "commit": "a7c4e03dcec1f340bb862758611403489072de2e",
      "tree": "b14a75431f38fd81e650940c7f501394d1669cf7",
      "parents": [
        "b9fef4fa9e37b1a5640fc7e5273cd424213d7220"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 04 19:20:12 2021 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 05 01:59:52 2021 +0000"
      },
      "message": "Update APM XML deserializer for HAL V7\n\nHAL V7 uses spaces instead of \u0027,\u0027 and \u0027|\u0027 for delimiting\nelements in channel masks, sample rates, and flags lists.\nThe version specified in the APM XML has been updated\nfrom \u00271.0\u0027 to \u00277.0\u0027 in order to reflect this.\n\nSerializer classes were refactored to get access to\nPolicySerializer class as a context which stores the\ndelimiters to be used.\n\nBug: 142480271\nTest: m, check device boot\nChange-Id: I7e765053e320b3789bc976e9905072c1eb476629\n"
    },
    {
      "commit": "6f7a1f3ed04e92c6caa9afd7295f8d51433f1696",
      "tree": "82aea57a929a1574c8e4c13e89e92541796009e7",
      "parents": [
        "790ce117ce1fb2f90f92e579013ec48bb65aec76",
        "b7637e9da12562aeee6b16cee1235cdc450c292a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 29 23:09:17 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 29 23:09:17 2021 +0000"
      },
      "message": "Merge \"APM: Create multiple MSD patches\""
    },
    {
      "commit": "b7637e9da12562aeee6b16cee1235cdc450c292a",
      "tree": "23b5e580d587a5dcd19434c77c2009e9aff4c6f3",
      "parents": [
        "6d604a5c5b46d42509bbacc205d2994631a16752"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "michael.chan@dolby.com",
        "time": "Tue Dec 08 15:44:49 2020 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jan 29 17:02:16 2021 +0000"
      },
      "message": "APM: Create multiple MSD patches\n\nThis change modifies setMsdPatch() by first renaming to setMsdPatches()\nand replaces its parameter with a pointer to DeviceVector, so that\nmultiple devices can be patched from MSD. If none are specified it will\nestablish MSD patches with all reported downstream output devices. It\ntears down existing MSD patches and creates new ones for those MSD\npatches that do not support new patch requests. We retain the existing\nMSD patches that already support new patch requests.\n\nIn getBestMsdAudioProfileFor(), ensure output profiles considered for\nevaluating the best matching audio profile is supported by the output\ndevice under consideration.\n\nRefactor by placing common code that tears down current MSD patches into\na new function called releaseMsdPatches().\n\nWhen obtaining an output, getOutputForAttrInt() returns device ID of the\ndefault device if its ID matches that of one of the output devices\nprovided by the engine.\n\nAdd testing for dual MSD patch creation by parameterizing existing MSD\ntests for single and dual MSD patch cases. Add new unit test to exercise\nsetMsdPatches and releaseMsdPatches. Make private MSD module member\nfunctions protected to enable testing.\n\nBug: 135620198\nTest: audiopolicy_tests\nChange-Id: I59a8976ce82dba04ca69347afc192e9143ef3629\nMerged-In: I59a8976ce82dba04ca69347afc192e9143ef3629\n"
    },
    {
      "commit": "394fdf81a91f5576e9f947e98cdf8d8a6090784c",
      "tree": "60b4700f7da9af77583f7823b47f715811236852",
      "parents": [
        "a6ccc1881c266cb9486b1dc4ae1233d6b63107ad"
      ],
      "author": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Fri Dec 25 17:39:49 2020 +0530"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Thu Jan 28 15:31:32 2021 +0530"
      },
      "message": "Added camera_service_fuzzer\n\nTest: ./camera_service_fuzzer\nBug: 174737048\n\nChange-Id: Idedd6112efbfc9127d162ec4a1145661f6775a0a\n"
    },
    {
      "commit": "3bea3a47bf6af84e58eada1964b8590f2727c3dd",
      "tree": "7d24fc611a5341a8aa0e7fde695563c1cb6f8355",
      "parents": [
        "991cfb08051f98b0d28733efda98c96fe1c76e2e"
      ],
      "author": {
        "name": "Kuowei Li",
        "email": "kuowei.li@mediatek.com",
        "time": "Thu Aug 13 14:44:25 2020 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 27 19:20:44 2021 -0800"
      },
      "message": "audio: add implementation for TV related API\n\n1. TunerConfiguration.\n2. AudioDescriptionMixLevel getter/setter.\n3. DualMonoMode getter/setter.\n4. PlaybackRate getter/setter.\n\nTest: TIS player with instrumented HAL\nTest: atest AudioTrackTest#testTunerConfiguration\nTest: atest AudioTrackTest#testDualMonoMode\nTest: atest AudioTrackTest#testAudioDescriptionMixLevel\nTest: atest AudioManagerTest#testGetAdditionalOutputDeviceDelay\nBug: 173482792\nMerged-In: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\nChange-Id: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\n"
    },
    {
      "commit": "991cfb08051f98b0d28733efda98c96fe1c76e2e",
      "tree": "9db468f92be10acec6b787093704fa5cdb5bd205",
      "parents": [
        "c1bdb2ccd847fdbc3526abeef135c2e0936db79c",
        "6d604a5c5b46d42509bbacc205d2994631a16752"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 27 08:43:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 08:43:02 2021 +0000"
      },
      "message": "Merge changes I2bb2cb29,Ie52ebe19\n\n* changes:\n  audio flinger: fix use of local variable after std:move\n  audio flinger: report actual sink device for MSD playback threads\n"
    },
    {
      "commit": "6d604a5c5b46d42509bbacc205d2994631a16752",
      "tree": "7085c10581019bc5e68eebd0db8ef37651ec3b99",
      "parents": [
        "029e33e5854af4071d9d3c873a70d2fcc235f396"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 16:30:04 2021 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 26 16:53:35 2021 -0800"
      },
      "message": "audio flinger: fix use of local variable after std:move\n\nFix potential problem introduced by commit 74c38dc7\n\nBug: 139894721\nTest: atest AudioTrackTest\nTest: atest RoutingTest\nTest: atest AudioPolicyManagerTestMsd\nChange-Id: I2bb2cb29e872115d6448dfbeb7d957c52f56289a\nMerged-In: I2bb2cb29e872115d6448dfbeb7d957c52f56289a\n"
    },
    {
      "commit": "029e33e5854af4071d9d3c873a70d2fcc235f396",
      "tree": "3a2092c0fb4760d4aa952708b9d423a9e71f7345",
      "parents": [
        "2610b34be2f01c7f3a96e98e257d3d690a1eef28"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 23 18:19:44 2020 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 26 16:52:51 2021 -0800"
      },
      "message": "audio flinger: report actual sink device for MSD playback threads\n\nWhen a playback thread is routed to an MSD module, make sure that the\nactual sink device selected by the software patch at the output of the\nMSD module is reported to AudioTrack clients.\n\nBug: 139894721\nTest: atest AudioTrackTest\nTest: atest RoutingTest\nChange-Id: Ie52ebe198e9ebdfe5f2a38dcd44c551c705a7931\nMerged-In: Ie52ebe198e9ebdfe5f2a38dcd44c551c705a7931\n"
    },
    {
      "commit": "38b2948cbc9922915c838cbe5222d071949f49d4",
      "tree": "5c758fe217c536bfa81219c8c3ba7c9c40d25ca5",
      "parents": [
        "cbeee874a7be8d02f255dc3041379e0d2551aa8c",
        "60bec724e4a0a2d7b66e464bbd7c19545a629a6f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 26 17:26:28 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 17:26:28 2021 +0000"
      },
      "message": "Merge \"audiopolicy: fixup! audiopolicy: HW Bridge Sink matching rule\""
    },
    {
      "commit": "abc5ec815dfbb6d609d779e1e4a8b5c7699473df",
      "tree": "25e6a6049eb19ff7fbcc6a4cbd99f5b477f1c64f",
      "parents": [
        "2610b34be2f01c7f3a96e98e257d3d690a1eef28"
      ],
      "author": {
        "name": "Grzegorz Kołodziejczyk",
        "email": "grzegorz.kolodziejczyk@codecoup.pl",
        "time": "Tue Dec 22 13:41:54 2020 +0100"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Tue Jan 26 14:07:46 2021 +0000"
      },
      "message": "Add Bluetooth LE Audio policy configuration\n\nPatch adds Bluetooth LE Audio xml policy configuration.\nInitial implementation only supports output devices.\n\nTag: #feature\nTest: make flash and boot\nSponsor: jpawlowski@\nChange-Id: I4e0c164d63dc68d4d70ca031cfda22e81819fd85\n"
    },
    {
      "commit": "60bec724e4a0a2d7b66e464bbd7c19545a629a6f",
      "tree": "00ade8df438dacb5ea2340a8a552a5d95c2117ff",
      "parents": [
        "2610b34be2f01c7f3a96e98e257d3d690a1eef28"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 12 17:46:51 2021 +0100"
      },
      "committer": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Jan 26 14:45:51 2021 +0100"
      },
      "message": "audiopolicy: fixup! audiopolicy: HW Bridge Sink matching rule\n\nBug: 172833835\nTest: atest testRecordFromRemoteSubmix twice\nTest: adb shell ./data/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003d*VoiceCallBridgingTest*\nadb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dPlaybackReroutingUsageMatch/LegacyPlaybackReRoutingTest.playbackReRouting/*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I9eb9de9682624cc18644e0239bda72c2bb5b502c\nMerged-In: I9eb9de9682624cc18644e0239bda72c2bb5b502c\n"
    },
    {
      "commit": "2610b34be2f01c7f3a96e98e257d3d690a1eef28",
      "tree": "403e86834368a7af7f10b599fead99cef5f7e3b2",
      "parents": [
        "b208216c0dad0b587c7ec680b96049dcb81d99a0",
        "f7057ca95ee4f70a0199592761fbf8235a1855c2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 25 20:45:52 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 25 20:45:52 2021 +0000"
      },
      "message": "Merge \"Camera: fix wrong metadata pointer\""
    },
    {
      "commit": "f7057ca95ee4f70a0199592761fbf8235a1855c2",
      "tree": "ce45b24eb01a1fdfd3ad13e49dbeef0b854a87fe",
      "parents": [
        "b96da7539c8bb6c89e43d1c34b2a7cf89ebaa0fc"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Nov 16 14:11:40 2020 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jan 25 18:46:13 2021 +0000"
      },
      "message": "Camera: fix wrong metadata pointer\n\nFixed the issue when halRequest-\u003esettings is nullptr some\ninflight request calculation is wrong.\n\nTest: partner testing\nBug: 169310293\nChange-Id: Iccbf0c543299065d8beac79f4e5c87e4514fceba\n"
    },
    {
      "commit": "fcd7a562fd62212188144bae8c328ac8ca594736",
      "tree": "42a25b93504399df18e83525d557d5ed12935c3e",
      "parents": [
        "4886c4942cbc4c905cfdd32e81a4c00bbbfd0216",
        "7e94c2ee790d7cbaefc7fb314f36f9c4b923772c"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Fri Jan 22 16:39:56 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 22 16:39:56 2021 +0000"
      },
      "message": "Merge \"Added mediaresourcemanager_fuzzer\""
    },
    {
      "commit": "a0969954f631a50530364486c66525ce5ec1beaa",
      "tree": "4a7add74b51d9bc604076c7531cd826ac96c56dd",
      "parents": [
        "5f6cf1dba1d91fcee6ea50172b0aec4eef6895c9",
        "06e324aec97bf76ef7141a80d6fde1f9d21addee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 19 11:01:21 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 19 11:01:21 2021 +0000"
      },
      "message": "Merge changes from topic \"audio_source_issues\"\n\n* changes:\n  AudioPolicyManager: keep track of activity for HW Audio Patches\n  audiopolicy: Primary Output runtime management\n  audio policy: audio source automatic re-connection\n  AudioPolicy: remove devices while Sw bridge established\n"
    },
    {
      "commit": "5f6cf1dba1d91fcee6ea50172b0aec4eef6895c9",
      "tree": "acf5c5546d3ec80a63cc0b2a120fd6c60ec2df85",
      "parents": [
        "4bc812d42d9103cb7142884af3421ad13fee66ca",
        "12db7ff4634b5322005623b7e2bb7596852ccc74"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 15 19:47:13 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 15 19:47:13 2021 +0000"
      },
      "message": "Merge \"disable extractor memory limits under hwasan\""
    },
    {
      "commit": "12db7ff4634b5322005623b7e2bb7596852ccc74",
      "tree": "b43f753445164b1fe56a1f53374254821e863ba3",
      "parents": [
        "76e856baa24934d2f220c18a9059119a1c1b5380"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 07 14:28:33 2021 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 15 10:18:51 2021 -0800"
      },
      "message": "disable extractor memory limits under hwasan\n\nhwasan uses extra virtual space, pushing up against the memory limits.\n\nBug: 176211598\nTest: boot in both modes (w \u0026 w/o hwasan)\nChange-Id: Ifd6b40115a020bdbed28d50d2e927c2ee02d5570\n"
    },
    {
      "commit": "06e324aec97bf76ef7141a80d6fde1f9d21addee",
      "tree": "4e1dc3304bd8bc2a7fe305c58ef22121a8cdb8d3",
      "parents": [
        "fa51ed78aa7172cecd75a19f4999c347a70b2c56"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Oct 14 18:02:07 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:25:13 2021 +0000"
      },
      "message": "AudioPolicyManager: keep track of activity for HW Audio Patches\n\nIn order to allow volume management for all volume sources, this\nCL adds Source Clients even in case of HW AudioPatches.\nIt uses the mixPort declared to reach the sink involved in the\nHW Audio Patch to add this client.\n\nTest: Manual: build \u0026 call \u0026 plays with HW / SW AudioBridges.\nAuto: (Non-regression on emulator)\nadb shell ./data/AudioPolicyEmulatorTests --gtest_filter\u003d*AudioPatchTest*\nadb shell ./data/AudioPolicyEmulatorTests --gtest_filter\u003d*AudioSourceTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Iaf44db2fd9a90dde9ef8160869af73983a5feae4\nMerged-In: Iaf44db2fd9a90dde9ef8160869af73983a5feae4\n"
    },
    {
      "commit": "fa51ed78aa7172cecd75a19f4999c347a70b2c56",
      "tree": "c5fbd304017a4ed6cda091462d8ffebc6558b64a",
      "parents": [
        "d2c073b0f2df2f77ba98db585738984bb3067183"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Oct 14 16:13:20 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:24:41 2021 +0000"
      },
      "message": "audiopolicy: Primary Output runtime management\n\nIn case of unavailability of device(s) attached to the primary output,\nthis output can be disconnected.\nThe cache variable must be resetted, then restored when at least one\ndevice supported by one profile of the primary output is made\navailable again.\n\nTest: adb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioSourceTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Iae8937cad3d70b0e8c7ff4516c27aa8eff231eaa\nMerged-In: Iae8937cad3d70b0e8c7ff4516c27aa8eff231eaa\n"
    },
    {
      "commit": "d2c073b0f2df2f77ba98db585738984bb3067183",
      "tree": "1db13dbd7a0d83b283ddaa7a1cb26564bb078761",
      "parents": [
        "5bd3d2d11dd58f296522d5bb134c260defaf622e"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Sep 29 16:05:07 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:24:20 2021 +0000"
      },
      "message": "audio policy: audio source automatic re-connection\n\nWhen an audio source is started, if either the sink or the source\nbecomes unavailable, the audio source is stopped.\nIt implies that the client must listen to patch/ports to become\naware that the source has been stopped.\n\nIn order to prevent this, it is possible to allow automatic re-connection\nof audio source as APM already keeps track of AudioSource.\n\nIn case of unavailability, source is only disconnected, not stopped to prevent\nfrom removing from tracking list.\n\nTest: adb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003d*AudioSourceBridgingTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I414195a85a06c9212420e3b51bf2863f3e08c755\nMerged-In: I414195a85a06c9212420e3b51bf2863f3e08c755\n"
    },
    {
      "commit": "5bd3d2d11dd58f296522d5bb134c260defaf622e",
      "tree": "f4e8bc41771303eae5eb11b88b2cf1c3938e0a87",
      "parents": [
        "133e9fcc795f5ae65b884948ca3376c4fec358c0"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed May 06 18:37:04 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 14 09:23:24 2021 +0000"
      },
      "message": "AudioPolicy: remove devices while Sw bridge established\n\nWhen devices are disconnected while involved in a SwBridge,\nthe connectAudioSource function may be called while the cache\nof the engine has not yet been updated with availability of devices.\n\nThis CL forces to retrieve sinkDevices from engine without using\nthe cache.\n\nIt also ensures that Audio Source using Direct Output are also\nre routed while sink device has been made UNAVAILABLE then AVAILABLE\nagain. In this case, no SwOutput will keep track of the AudioSource.\nOrphans Audio Source shall be handled independantly.\n\nSo far, robustness cases added to the following test.\nIn some case, fallback on speaker is allowed, in other,\ndevice none is selected while given sink has been made unavailable:\n\nTest: So far: adb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioPatchTest/AudioModeBridgingTest.\nadb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioSourceTest/AudioSourceBridgingTest.UsingAudioSourceAPI/\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I2663d10f08de3191de4d95bc81749ede9b8a360f\nMerged-In: I2663d10f08de3191de4d95bc81749ede9b8a360f\n"
    },
    {
      "commit": "7e94c2ee790d7cbaefc7fb314f36f9c4b923772c",
      "tree": "44a9d04df6609a06e5a5e7ccfcabe34674f719b8",
      "parents": [
        "20c1f934cb5c4ddbb797482f7c347117ee9eda91"
      ],
      "author": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Thu Aug 13 10:18:35 2020 +0530"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Wed Jan 13 10:04:00 2021 +0530"
      },
      "message": "Added mediaresourcemanager_fuzzer\n\nTest: ./mediaresourcemanager_fuzzer\nBug: 172427324\n\nChange-Id: Id4238ab55a6aa5b677494abc36b304915c6824f6\n"
    },
    {
      "commit": "589c173758e4424a8ec495639beb039c691bdff2",
      "tree": "cc77ac9d5cdb2e7acd15925453a1b1fb12c0d881",
      "parents": [
        "75981d603d26be9411a636703cafb1f3319c1aa7",
        "947f0a41359ce46ddffc75bcf6454e189299ba78"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Fri Jan 08 21:25:31 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 08 21:25:31 2021 +0000"
      },
      "message": "Merge \"Update mediacodec policy with stat\""
    },
    {
      "commit": "947f0a41359ce46ddffc75bcf6454e189299ba78",
      "tree": "4c47ed422f647737e2e53f83ebb5d834dddffdbf",
      "parents": [
        "42969d3c83520a8c770b86e123f965e1ea6946a7"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Wed Jan 06 16:49:58 2021 -0800"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Thu Jan 07 04:55:34 2021 -0800"
      },
      "message": "Update mediacodec policy with stat\n\nSanitizers makes syscall to \u0027stat\u0027 that is blocked by libminijail.\nBug: 158010610\nBug: 173497308\nTest: n/a\n\nChange-Id: I7bc5c0736b69fb5010a60e9317f9eeebaec6fbf8\n"
    },
    {
      "commit": "6109cdbc0b8ce3e32e71a29ecd3e774a8aa662fb",
      "tree": "990d82f194f8a000cd963d717cfa19ef610c825a",
      "parents": [
        "b572b63b6e788e036ff91058df2a7b3ba76ee1f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 20 18:41:04 2020 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 05 12:50:23 2021 -0800"
      },
      "message": "Audio HAL: add channel mask and tags to track metadata\n\nAdd channel mask and audio attributes tags to playback\nand record track metadata sent to audio HAL.\n\nBug: 168751366\nTest: make\nChange-Id: I06a63963e1be53bd965792dec607fa67a89f28bf\nMerged-In: I06a63963e1be53bd965792dec607fa67a89f28bf\n"
    },
    {
      "commit": "a702052dc6b012c5ed2ea2c106fa8eec6c146ccb",
      "tree": "4398974a312a55497a171dc6eecaf1cef6a0d927",
      "parents": [
        "1e2b6013c9d9ceb39530806507b40f688f553568"
      ],
      "author": {
        "name": "wei wang",
        "email": "wei.wang@amlogic.com",
        "time": "Thu Dec 10 21:36:11 2020 -0500"
      },
      "committer": {
        "name": "wei wang",
        "email": "wei.wang@amlogic.com",
        "time": "Tue Jan 05 01:50:02 2021 +0000"
      },
      "message": "audiopolicy: default engine audio source add blutooth ble device [1/1]\n\nPD# SWPL-37970\nBug:175350838\n\nProblem:\nadd audio input dev (AUDIO_DEVICE_IN_BLUETOOTH_BLE ) for BLE RC voice\n\nSolution:\ndefault engine audio source add blutooth ble device\n\nVerify:\nverify by ohm\n\nSigned-off-by: wei wang \u003cwei.wang@amlogic.com\u003e\nChange-Id: I1894f6821034b475f83e99cb6e1dc75e1f5b6514\n"
    },
    {
      "commit": "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": "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": "3813f74c4e035da3e831ad14d6fe1910e52c5e55",
      "tree": "e780833025c08c7870d9cc9c3915fdeb8d9414b4",
      "parents": [
        "e9ebb9efbcac3a27a26cb068ac5e8fd187bcaaa2"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Wed Nov 11 11:12:48 2020 +0530"
      },
      "committer": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Wed Dec 16 13:45:08 2020 +0530"
      },
      "message": "libaaudioservice: Updated to build both static and shared library\n\nTest: Build libaaudioservice\nBug: 174736869\n\nChange-Id: If2fbbe199314ad21ef08338b5aed9c8991031c15\n"
    },
    {
      "commit": "c5970fd0dae18a15f7a673816aa8e817134c7255",
      "tree": "6c2aab42df56cf1109bc9363963e5c442b6123b0",
      "parents": [
        "5d30d3aaaf4cd0c55b36cd6e492f178042498ba4",
        "9494e4ede7780ce2ff96544ee3a0b67c8d92c7d8"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 22:08:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 09 22:08:21 2020 +0000"
      },
      "message": "Merge \"mediaresourcemanager: remove AIDL comparison ops\" am: 9494e4ede7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1522082\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I5fe0f4309a3d7bf81b29cafa90b38a74203146ff\n"
    },
    {
      "commit": "9494e4ede7780ce2ff96544ee3a0b67c8d92c7d8",
      "tree": "05b0dbd923045cd5276b10501292e17a6c165532",
      "parents": [
        "754ef5960fa00ebdffd4058d4f3941e4222d5c19",
        "bb07853cea158899b0296886b2bac239eaf738dd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 21:46:59 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 09 21:46:59 2020 +0000"
      },
      "message": "Merge \"mediaresourcemanager: remove AIDL comparison ops\""
    },
    {
      "commit": "bb07853cea158899b0296886b2bac239eaf738dd",
      "tree": "c6361db311687c9f9fa6750698f6466d543ddba9",
      "parents": [
        "be78d20a39da3c48e906710b4e5868d670781066"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 20:14:05 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 09 20:14:05 2020 +0000"
      },
      "message": "mediaresourcemanager: remove AIDL comparison ops\n\nThese are now auto-generated.\n\nThese are now auto-generated, and these were creating ambiguous\nresolution errors.\n\nBug: 175018841\nTest: tests in test mapping\nMerged-In: Iac63f7fc5c6c7152d69071ba5d4ef2daf873ffdb\nChange-Id: I9288dc07ebb49158bd8540672b8dadca1036dde9\n"
    },
    {
      "commit": "5d30d3aaaf4cd0c55b36cd6e492f178042498ba4",
      "tree": "f3eeae885edce3bce1277456cf253500ed59f23f",
      "parents": [
        "045116b1f7590217b5920d06c9d8e8c86836e411",
        "754ef5960fa00ebdffd4058d4f3941e4222d5c19"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 09 14:31:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 09 14:31:50 2020 +0000"
      },
      "message": "Merge \"audio policy: default routing rules for BLE audio devices\" am: 754ef5960f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1473282\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I2197678ea083354e8896202831f9e4f0368cc6be\n"
    },
    {
      "commit": "754ef5960fa00ebdffd4058d4f3941e4222d5c19",
      "tree": "922101c380c21c310295befdbc84d2c8b773e9b1",
      "parents": [
        "8fb2e4ad98d5eccbbd3b917fee31c1b1a9a118dc",
        "d77befba846e74864fac3acc9e51ff4af91dc986"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 09 14:07:43 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 09 14:07:43 2020 +0000"
      },
      "message": "Merge \"audio policy: default routing rules for BLE audio devices\""
    },
    {
      "commit": "1d5300615c3afff3397a57f72d029f284ccb9059",
      "tree": "94c0623c23eca79a03dbe9ac704c322d8173278d",
      "parents": [
        "1d8c7fa97b31f7876ad734bcf7f6a7a8ee2b77e7",
        "3fdd9fb5c3a182d4640d02c60114a476af8c9ae3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 04 22:11:36 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 04 22:11:36 2020 +0000"
      },
      "message": "Merge \"Added mediametrics_service_fuzzer\" am: 3fdd9fb5c3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1505333\n\nChange-Id: I135e7f0f2ef177dc6025b6e8fa08361e084ecadd\n"
    },
    {
      "commit": "3fdd9fb5c3a182d4640d02c60114a476af8c9ae3",
      "tree": "a8e081f24169dd3dc2a5cf33271b362e74b8f8c4",
      "parents": [
        "2fa70d54f69ad69db1c2c0a874295839f99f93ae",
        "ab3a6418bb2605a3dbb4dc42c773bcc246762942"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 04 21:53:02 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 21:53:02 2020 +0000"
      },
      "message": "Merge \"Added mediametrics_service_fuzzer\""
    },
    {
      "commit": "ab3a6418bb2605a3dbb4dc42c773bcc246762942",
      "tree": "bf03eacd2de782664895cbe1658ac675fe603831",
      "parents": [
        "691ebfea2dc3dab4daeafafe005933adea9fb4cb"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Thu Oct 22 16:13:32 2020 +0530"
      },
      "committer": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Fri Dec 04 11:47:48 2020 +0530"
      },
      "message": "Added mediametrics_service_fuzzer\n\nTest: ./mediametrics_service_fuzzer\nBug: 172429215\n\nChange-Id: I9fe2b593124b80552c5bd8315e0a78018ce3ebbc\n"
    },
    {
      "commit": "e2aaf07831acd38c921f8dd96bc713c5d820597a",
      "tree": "c4c2c61e906e90389b1c188e0e15b153182b84c2",
      "parents": [
        "29582de4e2db24a71ebfca211cb18055a197ba6a",
        "1004c244b5ffcfdb5d828f1415c12a4b24e892f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 21:45:51 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 21:45:51 2020 +0000"
      },
      "message": "Merge \"Fix exception when Release Audio Input Effect\" am: 1004c244b5\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1512719\n\nChange-Id: I73e7501dd17e7602dcebac85473f9eeef7827ed5\n"
    },
    {
      "commit": "1004c244b5ffcfdb5d828f1415c12a4b24e892f5",
      "tree": "07de0589f47c640b13cb358332cf9e8d1bcd6ed5",
      "parents": [
        "691ebfea2dc3dab4daeafafe005933adea9fb4cb",
        "56aa82b2b865d81b9bd7ae532d21224637edef59"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 21:05:13 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 03 21:05:13 2020 +0000"
      },
      "message": "Merge \"Fix exception when Release Audio Input Effect\""
    },
    {
      "commit": "56aa82b2b865d81b9bd7ae532d21224637edef59",
      "tree": "76c039da490ffa44bfba5e302e3575b7c00a8aac",
      "parents": [
        "d19faf826761db767dc8ee967149fe8939416850"
      ],
      "author": {
        "name": "wendy lin",
        "email": "wendy.lin@mediatek.com",
        "time": "Wed Dec 02 15:19:55 2020 +0800"
      },
      "committer": {
        "name": "Lin Lili",
        "email": "lili.lin@mediatek.com",
        "time": "Thu Dec 03 03:28:45 2020 +0000"
      },
      "message": "Fix exception when Release Audio Input Effect\n\nEffect is removed while user switch audio output device.\nWhen updating output device for record thread, exception happens.\nSolution is to get record thread lock before update output devices.\nHolding thread lock will keep effect not being removed while\nupdating devices.\n\nBug: 174714069\nTest: Audio Stress Test\nChange-Id: If831b2322bb02784b0a278abd9ba14b5150ff80b\n"
    },
    {
      "commit": "802793489675990aa90a446ecceaffbc4e081120",
      "tree": "8db7299c19371f7ef8ab2c2f1328dbdcf5311f4d",
      "parents": [
        "cbf8ba955c3d0c95f15791a72b0e29fae873fd02",
        "49a6d9c78aaa07ab83494d628cc6b7a2386a2b55"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Dec 03 03:18:52 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 03:18:52 2020 +0000"
      },
      "message": "Merge \"Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855\" into stage-aosp-master"
    },
    {
      "commit": "49a6d9c78aaa07ab83494d628cc6b7a2386a2b55",
      "tree": "70acc7a3307c66d6ac1b7ee5cc59d88ebfacad34",
      "parents": [
        "9fa7856094a8705be2061e532c36e74d103719b8",
        "55f730f7c1a0b5f963f47fdd65c43609a143f18c"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 02 00:41:55 2020 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 02 00:41:55 2020 -0800"
      },
      "message": "Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855\n\nBug: 172690556\nMerged-In: I72658443fde61aa5f10463fcc42772daf4143ed0\nChange-Id: Ifb9605a1f9407357ddc755551e2d1d51c7f09bfc\n"
    },
    {
      "commit": "46f16a9e7a3ced614ae5dfd6ac6e53e1971c7ce3",
      "tree": "2c4bcc8ae758fd636a042755cdd3915fcb1b3e79",
      "parents": [
        "be73c52729c8061cd86903007ab5483fd69f8175"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 18 17:29:45 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:42:06 2020 +0000"
      },
      "message": "Fix channel mask for the EARPIECE in example APM config\n\nEARPIECE is an output device, must have an output channel\nmask.\n\nBug: 142480271\nTest: N/A\nChange-Id: I676bc7222474f2d366bfb4edcd14b83381d68083\nMerged-In: I676bc7222474f2d366bfb4edcd14b83381d68083\n"
    },
    {
      "commit": "be73c52729c8061cd86903007ab5483fd69f8175",
      "tree": "a03c24135fa6e03660b2f5ca705ece0a4d787f27",
      "parents": [
        "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 10 21:35:52 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:41:03 2020 +0000"
      },
      "message": "Fix buildCommonTypesStructureFile.py script\n\nThe PFW script buildCommonTypesStructureFile.py got broken\nby the change which had moved many enums to audio-hal-enums.h\nheader. This change makes necessary adjustments to restore\nits functionality and preserve the generated PFW config file\ncontents.\n\nBug: 142480271\nBug: 172641529\nTest: m\nTest: atest libmedia_helper_tests\nTest: diff vendor/etc/parameter-framework contents for a device\nChange-Id: I15db2ce6bf9c408b96b6921a45093e2849826e24\nMerged-In: I15db2ce6bf9c408b96b6921a45093e2849826e24\n"
    },
    {
      "commit": "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b",
      "tree": "33e22ce5f12c4b75414dfa242de2190ae0515091",
      "parents": [
        "d19faf826761db767dc8ee967149fe8939416850"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 25 23:03:05 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:39:39 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter\n\nUse of system functions eliminates the need for listing all enum\nvalues in TypeConverter tables.\n\nSlight changes in the converting functions:\n\n1. \u0027channelMaskFromString\u0027 function now also accepts indexed\n   masks.\n2. Fixed UB in \u0027formatFromString\u0027 function.\n3. Removed \u0027deviceFromString\u0027 function, use\n   \u0027DeviceConverter::fromString\u0027 instead.\n\nReplaced direct includes of \u0027system/audio-base.h\u0027 with\nincludes of \u0027system/audio.h\u0027.\n\nBug: 142480271\nTest: m\nTest: atest libmedia_helper_tests\nChange-Id: Ia0e725026be80621bdc797299e63e134419b2b3d\nMerged-In: Ia0e725026be80621bdc797299e63e134419b2b3d\n"
    },
    {
      "commit": "7cd031828f1c3873ee6868c79e621da9988bebcf",
      "tree": "e262d1f52155d1b2090cbc631a646fc8a3ef8ebe",
      "parents": [
        "a8460237165976738ba9dee5ae74780c45005926",
        "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 17:06:51 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 01 17:06:51 2020 +0000"
      },
      "message": "Merge \"Convert mask types from uint32_t to enum type\""
    },
    {
      "commit": "f4a007b4c3d036c7767a83e0c1a1a560a32f9763",
      "tree": "aed072aef4f16e57dcb1109c2336598544600aa5",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:49:32 2020 -0800"
      },
      "committer": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:59:41 2020 -0800"
      },
      "message": "Migrate imports to use proto_logging\n\nBug: 167962588\nTest: m -j\nChange-Id: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\nMerged-In: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\n"
    },
    {
      "commit": "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f",
      "tree": "cc260c7b2867101599cdba75b53b4e0578c7345f",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 24 22:56:29 2020 +0000"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\nMerged-In: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "dd68139d0fcbbd8923cabbee4bb35df49900556a",
      "tree": "0e5cd5c06cd18c3a4f4a4aed414ce84e15fd8d30",
      "parents": [
        "fe4094eacee9c5e248b2d8ac87dff51b46a3d972"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 24 22:23:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Nov 21 01:12:40 2020 +0000"
      },
      "message": "HAL V7.0: Update example APM config files\n\nUse space delimiter for mixPort flags field.\n\nBug: 142480271\nTest: atest VtsHalAudioV7_0TargetTest\nChange-Id: I3eef9bf1e9bcc24a869355724aa333c1f93b4b31\nMerged-In: I3eef9bf1e9bcc24a869355724aa333c1f93b4b31\n"
    },
    {
      "commit": "fe4094eacee9c5e248b2d8ac87dff51b46a3d972",
      "tree": "7f52b4f8cd79228f02c38eebd13e39adf2bedc19",
      "parents": [
        "aa2e608a99083261cf60da0ee44068f6e0b605c3",
        "1d5f7edc2f5f39ab3685ca995c8959af8d59b6dc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 20 20:22:46 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 20:22:46 2020 +0000"
      },
      "message": "Merge \"libmediametrics and libmediametricsservice: Updated Android.bp\""
    },
    {
      "commit": "8448c4b30b45b04cb615e6114015bb34f1619da2",
      "tree": "9494cee51f448ab9b4d716e3b147efffea715a76",
      "parents": [
        "e1877efb7964bcb3be72e3ebea75505ca9c4a6e8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Aug 14 20:43:06 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 20 01:31:09 2020 +0000"
      },
      "message": "Add Audio Policy Manager config files for HAL V7.0\n\nIn Audio HAL V7.0 lists of sample rates and channel\nmasks are written in the XSD-compatible way using\nspace as delimiter (instead of comma).\n\nBug: 142480271\nTest: m\nChange-Id: I0e5a15d65974421443c00d4f0edaf0514a71673f\nMerged-In: I0e5a15d65974421443c00d4f0edaf0514a71673f\n"
    },
    {
      "commit": "1d5f7edc2f5f39ab3685ca995c8959af8d59b6dc",
      "tree": "fafdb242298abb4d2e461bc0eea11b8830c430a2",
      "parents": [
        "85486fc425122b2b1984bf323822a7b0933d8158"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Tue Oct 13 14:09:26 2020 +0530"
      },
      "committer": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Thu Nov 19 15:21:09 2020 +0530"
      },
      "message": "libmediametrics and libmediametricsservice: Updated Android.bp\n\nUpdated to  build both static and shared library for both the libraries.\n\nTest: Build libmediametrics\nTest: Build libmediametricsservice\nBug: 172429215\n\nChange-Id: I2d2043cab0cc72a36df053005edc6f9adcb1ca4e\n"
    },
    {
      "commit": "82fa8db39f2fe597da83738006176b6b16207342",
      "tree": "4ce3ebb7ab9b64423081ecceef0fd2342e9fd955",
      "parents": [
        "75ea8d08bf990fa1d8c162865fd47f7be2b88c44",
        "f286326c39b576c2a1a81cc12dc3074bcbe53e7c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 14 01:35:58 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 14 01:35:58 2020 +0000"
      },
      "message": "Merge \"Add componentid for fuzzers\""
    },
    {
      "commit": "f286326c39b576c2a1a81cc12dc3074bcbe53e7c",
      "tree": "03e3e954944c8418c356b0fa508b77e359de39f8",
      "parents": [
        "44c331ff9fab7598ee7084fe782d5560ebda9cda"
      ],
      "author": {
        "name": "Branden Archer",
        "email": "brarcher@google.com",
        "time": "Thu Nov 12 20:08:49 2020 -0800"
      },
      "committer": {
        "name": "Branden Archer",
        "email": "brarcher@google.com",
        "time": "Fri Nov 13 16:49:22 2020 +0000"
      },
      "message": "Add componentid for fuzzers\n\nBug: 170243740\nTest: Builds\nChange-Id: If12bea31f1c876ced1d582174449ab9ceb687b77\n"
    },
    {
      "commit": "e430d28c3459886b5cf6c606ef6660222ddf8e46",
      "tree": "0f6c5a71b10fd62859a0b963266df9b7b1d951aa",
      "parents": [
        "bb069027e40d2ea33fc2f5175872026f8dcbc365",
        "44c331ff9fab7598ee7084fe782d5560ebda9cda"
      ],
      "author": {
        "name": "Branden Archer",
        "email": "brarcher@google.com",
        "time": "Fri Nov 13 07:41:02 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 13 07:41:02 2020 +0000"
      },
      "message": "Merge \"Add fuzzer for DepthPhotoProcessor\""
    },
    {
      "commit": "bb069027e40d2ea33fc2f5175872026f8dcbc365",
      "tree": "1928811897d8ad50506d22d84f0c7fa4c933ac36",
      "parents": [
        "f6bcf1b2d871f6b4e047bdac449ed7c3aa5617f9",
        "532b560657fc895b0b453e9f8b1f16357245da8c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 13 06:49:11 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 13 06:49:11 2020 +0000"
      },
      "message": "Merge \"Add fuzzer for DistortionMapperFuzzer\""
    },
    {
      "commit": "44c331ff9fab7598ee7084fe782d5560ebda9cda",
      "tree": "bc553f00f1301e257efad4eb365fd591484e3653",
      "parents": [
        "532b560657fc895b0b453e9f8b1f16357245da8c"
      ],
      "author": {
        "name": "Branden Archer",
        "email": "brarcher@google.com",
        "time": "Fri Oct 30 13:49:17 2020 -0700"
      },
      "committer": {
        "name": "Branden Archer",
        "email": "brarcher@google.com",
        "time": "Thu Nov 12 13:09:40 2020 -0800"
      },
      "message": "Add fuzzer for DepthPhotoProcessor\n\nThis fuzzer is a distilled version of the DepthProcessorTest\nunit test. The corpus comes from the corpus for libexif in\ntools/security/fuzzing/orphans/libexif/corpus\n\nBug: 170243740\nTest: Builds and runs on emulator\nChange-Id: I5b5113333242052192958d57bec73cbc47eb195c\n"
    },
    {
      "commit": "532b560657fc895b0b453e9f8b1f16357245da8c",
      "tree": "476b887b7eb5ef7d544b3525afe5a0d573218977",
      "parents": [
        "ebd91fc559603446173ccce322b51d140884fb5c"
      ],
      "author": {
        "name": "Branden Archer",
        "email": "brarcher@google.com",
        "time": "Fri Oct 30 13:50:01 2020 -0700"
      },
      "committer": {
        "name": "Branden Archer",
        "email": "brarcher@google.com",
        "time": "Thu Nov 12 13:09:40 2020 -0800"
      },
      "message": "Add fuzzer for DistortionMapperFuzzer\n\nThis fuzzer is a distilled version of the DistortionMapperTest\nunit test.\n\nBug: 170243740\nTest: Builds and runs on emulator\nChange-Id: I254a3bef5fc6bcf300fdb64833817645fba8e920\n"
    },
    {
      "commit": "ec2a22e4e07fac29770898468b48a47c19be1d5e",
      "tree": "4947ea969ca64512c842c721fa4c69b29a4f8ed6",
      "parents": [
        "bc3923f8ef985c4214d8af4d7d54a818b3903ff0"
      ],
      "author": {
        "name": "Sachin Kumar Garg",
        "email": "sachin.kumargarg@ittiam.com",
        "time": "Mon Oct 26 10:16:58 2020 +0530"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Tue Nov 10 09:23:03 2020 +0530"
      },
      "message": "Added media_log_fuzzer\n\nTest: ./media_log_fuzzer\nBug: 171466249\n\nChange-Id: Id09238442eec7e144ff9e68892c5e037e7dc2269\n"
    },
    {
      "commit": "bc3923f8ef985c4214d8af4d7d54a818b3903ff0",
      "tree": "feb17f11f6b483c0b6d047961de3b60a48ef1c92",
      "parents": [
        "d578bbd330f316ddfe5e48dd3357f1666767082d",
        "65926ef91d1f8805caa885bee24d0a6722995336"
      ],
      "author": {
        "name": "Max Spector",
        "email": "mspector@google.com",
        "time": "Tue Nov 10 00:35:19 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 00:35:19 2020 +0000"
      },
      "message": "Merge \"libmedialogservice: Updated to build both static and shared library\""
    },
    {
      "commit": "d578bbd330f316ddfe5e48dd3357f1666767082d",
      "tree": "7ae6a9f18c09016a1f0fedff54b12c1f4fa92934",
      "parents": [
        "994309188485380eee349f57d2925cef58341674",
        "330845f212fc280b9023300d10892e0403438ea1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 09 18:07:08 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 18:07:08 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: Change timeout for FdToString.\""
    },
    {
      "commit": "330845f212fc280b9023300d10892e0403438ea1",
      "tree": "51319fed5d0cbd1f312f6d25e0ef3ae8575fd3d7",
      "parents": [
        "bf1cb79c2f2cc2e26a77d6395e130af63d92d9f7"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "jaidshar@codeaurora.org",
        "time": "Thu Oct 22 12:14:58 2020 +0530"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Nov 06 18:30:44 2020 -0800"
      },
      "message": "AudioFlinger: Change timeout for FdToString.\n\nCurrent implementation waits for 200 msec,\nwhich leads to delay during boot time and other cases\nwhere we close outputs and inputs.\nReduce this time to 2 msecs.\n\nBug: 171365312\nBug: 172293721\nCRs-Fixed: 2776028\nTest: See bug for specifics on device and test.\nTest: adb shell dumpsys media.audio_flinger\nChange-Id: Ia08e8431d36e168bb4a2301cfbd9545f354fa811\n"
    },
    {
      "commit": "fd56e81552f10daf76187532a9b6367dfb932864",
      "tree": "f933198cb061f749ba7b13d116d00ed15f09adca",
      "parents": [
        "b7c14e4cd8885a7247ce5c130516368328f5b7b2"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Fri Nov 06 22:32:21 2020 +1100"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Nov 07 00:29:16 2020 +0000"
      },
      "message": "Fix signed integer overflow\n\nThe operation \"mRsmpInRear +\u003d framesRead;\" would overflow\nthe 32-bit variables within 12 minutes for MSD HAL StreamIn IEC61937\nMAT 2.0 framed streams (that generate 61440 bytes per 20 milliseconds).\n\nTest: enable integer_overflow diagnostics, enable MSD HAL with IEC\n      MAT patch, wait for 12 minutes for UBSan crash, and check record\n      thread frame counts have exceeded 2^31.\nChange-Id: I9925bf39a1e3d910850efef859e0a412962391ac\n"
    },
    {
      "commit": "65926ef91d1f8805caa885bee24d0a6722995336",
      "tree": "dcd51a9cace9d9b690281148e7a5d72263097b03",
      "parents": [
        "b7c14e4cd8885a7247ce5c130516368328f5b7b2"
      ],
      "author": {
        "name": "Sachin Kumar Garg",
        "email": "sachin.kumargarg@ittiam.com",
        "time": "Mon Oct 26 10:15:12 2020 +0530"
      },
      "committer": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Fri Nov 06 15:54:50 2020 +0530"
      },
      "message": "libmedialogservice: Updated to build both static and shared library\n\nTest: Build libmedialogservice\nBug: 171466249\n\nChange-Id: I4258eaaeb6fb8650a7d724bf7381f4aed07df318\n"
    },
    {
      "commit": "4c34434aff546fd6c0414e6e6c658eac1784c59f",
      "tree": "1609e6f9deeeb26fac19ff19bb76fdd8adadad69",
      "parents": [
        "adec76d0eb5889bc6675069548df2ee156d59414"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Sep 25 18:02:26 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 28 18:28:43 2020 +0000"
      },
      "message": "audiopolicy: HW Bridge Sink matching rule\n\nIn order to use an HW Bridge, audio policy configuration file\nmust declare that a given sink may be reacheable from a given source\ndevice.\nThe declaration is made using the \"Tag Name\", which is a human readable\nname given to a device / mix Port.\n\nThis CL adds an equality operator based only on this tag name, which\nidentify uniquely the device port.\n\nThis CL manages also dynamic device cases, the tagName shall be assigned\nto all dynamically created device.\n\nTest: adb shell ./data/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003d*VoiceCallBridgingTest*\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I0fc6435dcc5f40634be5392dd92dcd2f377809c2\n"
    },
    {
      "commit": "d77befba846e74864fac3acc9e51ff4af91dc986",
      "tree": "449aefdfd3d70fb2e8c79354ede7964b3911b879",
      "parents": [
        "80cd5274e93b1ee4389619c6a6aa1716d60aa671"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 07 08:42:28 2020 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Mon Oct 26 14:16:57 2020 +0000"
      },
      "message": "audio policy: default routing rules for BLE audio devices\n\nAdd default audio routing rules for BLE audio devices in audio\npolicy manager engine.\n\nAlso remove isA2dpSupported() helper: checking if a2dp is supported\nbefore selecting an A2DP device is redundant as the device connection\nwould have been rejected in the first place if A2DP was not supported.\n\nThe implementation for communication use cases is not final until a new API is\nadded to control routing to BLE audio similarly to what exists for\nBluetooth SCO or speakerphone.\n\nBug: 161358428\nTest: regression on audio playback and capture routing, especially with\nhearing aid, Bluetooth A2DP and Bluetooth SCO.\n\nChange-Id: If07150dc4495aeee5e796d891fd3ce98965bf5f9\nMerged-In: If07150dc4495aeee5e796d891fd3ce98965bf5f9\n"
    },
    {
      "commit": "d31de2b8a3f7ecc17ab9d476ff8e15c0e334985f",
      "tree": "aba28e05c5d2d7bf298859b7b6151f5c43e2493e",
      "parents": [
        "a2054232ab303f38b4fbbe8d1a73302254f32d4e",
        "c56875f2eca1be6322cc56d22fc7d8e95a298a3f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 13 03:31:41 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 03:31:41 2020 +0000"
      },
      "message": "Merge \"Merge ab/6749736 in stage.\" into stage-aosp-master"
    },
    {
      "commit": "c56875f2eca1be6322cc56d22fc7d8e95a298a3f",
      "tree": "c7815d87fe139577da298073a18c449738c6dc41",
      "parents": [
        "346ea4a53844a1b2cb03a72599d9e4dd3ee2ecf3",
        "3d232f21110c3bb1b2d077ba8a96698303b5cba7"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 23:15:20 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 23:15:20 2020 -0700"
      },
      "message": "Merge ab/6749736 in stage.\n\nBug: 167233921\nMerged-In: I869dc9ae03ddf2391bb1ee9c595cacd9c4bcc552\nChange-Id: I59223c2640cc074c3be60f02f310f9341be976e2\n"
    },
    {
      "commit": "960ca04eeaabe661a51bc9677f099af85c2c0944",
      "tree": "1330bf9bb36df79e8d9851b6acc17ca890e09f04",
      "parents": [
        "5381d98c9bdc8edb68f12dcc9cf03a74cc101fd6"
      ],
      "author": {
        "name": "shubang",
        "email": "shubang@google.com",
        "time": "Mon Oct 05 22:37:22 2020 -0700"
      },
      "committer": {
        "name": "shubang",
        "email": "shubang@google.com",
        "time": "Mon Oct 05 22:37:22 2020 -0700"
      },
      "message": "Add nchalko@ and quxiangfang@ to media OWNERS\n\nNick is TLM and Henry is the TL of the media TV team,\nthe owner of TV input framework, tuner framework, MediaCas, etc.\n\nTest: mmm\nChange-Id: I8f21dca82fe66245ab1e5beed60652492b64bcc8\n"
    },
    {
      "commit": "271429dbdd93bb824c0f5df107f47bf3cf8e6e25",
      "tree": "c6c96105b21a539c6de819b604dd8ef6402f051b",
      "parents": [
        "e53a2243b289e0d578333c9faf5c17433abd234e"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 01 10:12:56 2020 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Oct 02 15:33:51 2020 -0700"
      },
      "message": "MediaCodec: clean up resources pending removal at init\n\nUntil we can track memory usage in ResourceManager, always clean up\nresources pending removal at init so that we can reclaim memory\nand any other resources that are untracked.\n\nBug: 169398817\nTest: atest ResourceManagerService_test\nTest: atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small\nChange-Id: Ia515443379edb03e68dd2ff5cba07c405aacd433\n"
    },
    {
      "commit": "1e9ef4cc360f7aa70d3d9b681c565b7a0c2d970d",
      "tree": "30dcc4bcb89b6c0186f1efd3832b8bbddcb8e008",
      "parents": [
        "cd2b79a8d7962fa754c0387990c9ff67fa201350"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Aug 14 02:48:34 2020 +0000"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu Sep 24 21:49:27 2020 +0000"
      },
      "message": "Camera: Fix deadlock caused by ordering of mStatusLock and mCameraStatesLock.\n\nThe following lock order exists in addListenerHelper:\nmCameraStatesLock -\u003e mStatusLock. In CameraDeviceClient::disconnect()\nthe previous lock ordering was mStatusLock-\u003emCameraStates lock. Move the\ncollection of logical camera ids out to avoid holding mCameraStatesLock\nand mStatus lock  in CameraService::updateStatus.\n\nBug: 162192331\n\nTest: Camera cts\nTest: GCA (basic validity)\n\nChange-Id: Ie5f9f924a77f7073264e9b7fce739c74c98fb57a\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n(cherry picked from commit 5e2cd30c8942d6ee32c8f1a34997bb106b4ac971)\n"
    },
    {
      "commit": "5f324d7a1936b23daba5f430af6b6f750d41fc69",
      "tree": "dd3bd61a2f9f08cbb32e3c7cd3e245e2ce85aa46",
      "parents": [
        "a0296021eae8f2e3be4538aa37eab5048125d3b3",
        "c7d12948fb828e204aedc4d1129ac5c6d3734d8f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 21 16:59:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Sep 21 16:59:14 2020 +0000"
      },
      "message": "Merge \"Release AudioTrackCallback when the track is removed.\" into rvc-qpr-dev am: c7d12948fb\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12629238\n\nChange-Id: I1b635405c05c5a6690ec3da86412b0cd37003e05\n"
    },
    {
      "commit": "b56e743f043cb28aaca4ee624c0d767f0d4771c1",
      "tree": "99d4e3f32e584ac8da112ccad95bb3e885d45a0b",
      "parents": [
        "fd90fdfe2a611ae824a32e236da288b1fdfd445d"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 17 11:40:42 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 17 11:40:42 2020 -0700"
      },
      "message": "Release AudioTrackCallback when the track is removed.\n\nThe AudioTrackCallback is cached as a strong pointer in PlaybackThread.\nRemove the callback when the corresponding track is removed to avoid\nmemory leak.\n\nBug: 168675247\nTest: repo steps in the bug\nChange-Id: I09d78ca31c43db4d017f9e8c540628bcb6c44727\n"
    },
    {
      "commit": "fd90fdfe2a611ae824a32e236da288b1fdfd445d",
      "tree": "bdeb9f47bd72f0a8743ec7325841bdef6c0bec2b",
      "parents": [
        "b281445c6e7a40cc144752db8fbf8ddf7bd56b5f"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 21 18:14:43 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Sep 16 00:13:40 2020 +0000"
      },
      "message": "Add package name when creating AudioTrack.\n\nThe package name can be used when starting an external vibration, which\nis used by vibrator service to check if the application has the\npermission to start vibration.\n\nBug: 165910728\nBug: 162343845\nTest: atest AudioTrackTest MediaPlayerTest\nTest: start audio-coupled-haptic playback\nChange-Id: I6d12c4e141c037ee94ee79cbb9bf537421ec9507\nMerged-In: I6d12c4e141c037ee94ee79cbb9bf537421ec9507\n"
    },
    {
      "commit": "375283dd6031a71e44fc17efad05b741302c78e5",
      "tree": "da9cbab41fb7a3610201cfe17d09d7a5e9d3a37e",
      "parents": [
        "b77e219423638bd958a5673dba017ea72aaa2e39"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 21 18:14:43 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Sep 15 18:02:58 2020 +0000"
      },
      "message": "Add package name when creating AudioTrack.\n\nThe package name can be used when starting an external vibration, which\nis used by vibrator service to check if the application has the\npermission to start vibration.\n\nBug: 165910728\nBug: 162343845\nTest: atest AudioTrackTest MediaPlayerTest\nTest: start audio-coupled-haptic playback\nChange-Id: I6d12c4e141c037ee94ee79cbb9bf537421ec9507\nMerged-In: I6d12c4e141c037ee94ee79cbb9bf537421ec9507\n"
    },
    {
      "commit": "1281c1d4ec7d5752d7c0981f32171a83f80b2438",
      "tree": "d62219e73d503ad08c4d60a3029d22e61b8309dd",
      "parents": [
        "af69d2203db2e0147f24c43486c36cf2b02c997f",
        "27514853147fb24d48af6a4f678c010e822b1c8e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 16:49:25 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 16:49:25 2020 +0000"
      },
      "message": "Merge changes from topic \"aaudio-callback-close\" into rvc-qpr-dev am: 2751485314\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12551623\n\nChange-Id: I520180492759313fd28baea43e43ec0af1f6c334\n"
    },
    {
      "commit": "af69d2203db2e0147f24c43486c36cf2b02c997f",
      "tree": "7795d5ebeaa82c7c18f3827b8e640f19a7a66e60",
      "parents": [
        "52bc293ab6d9b3e67c52fcc5fefd500060b4f6b9",
        "79224cacfbdb30956428bbe915323233949b768d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 16:49:24 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 16:49:24 2020 +0000"
      },
      "message": "aaudio: prevent onAudioDeviceUpdate past close am: 79224cacfb\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12551622\n\nChange-Id: I9530b754c9b67f968ae9b0088e627fa6434172f3\n"
    },
    {
      "commit": "52bc293ab6d9b3e67c52fcc5fefd500060b4f6b9",
      "tree": "fad3d97e165d291264d510247d06fa1594b20f58",
      "parents": [
        "60669b443009fdaf85d3e5f4782baf7b6aaa3ab7",
        "4719048ce0e6f8656a417a2f2fe6fbb848ed2ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 16:49:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 16:49:21 2020 +0000"
      },
      "message": "aaudio: fix crash from callbacks during close am: 4719048ce0\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12540591\n\nChange-Id: Ic046f39f0327c662362ceed7b090bb2cf91e2e1b\n"
    },
    {
      "commit": "27514853147fb24d48af6a4f678c010e822b1c8e",
      "tree": "19a48638e723f2fe1cb6a2cb904e65f45aad26fb",
      "parents": [
        "ed3dca686bd7eac70200a0b068206615fc0f7288",
        "5cad6399aaae8fd448f389967a30d00068b1efe0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 16:24:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 11 16:24:05 2020 +0000"
      },
      "message": "Merge changes from topic \"aaudio-callback-close\" into rvc-qpr-dev\n\n* changes:\n  aaudio: fix crash on disconnect for shared streams\n  aaudio: prevent onAudioDeviceUpdate past close\n  aaudio: fix crash from callbacks during close\n"
    },
    {
      "commit": "88f8f94606933ec389ea50b07f5394622750819e",
      "tree": "03de782f4f7e84193c84ee6dcb8e8f5462e94f60",
      "parents": [
        "181438e955bac2e0137d991c468f583bdf3de153",
        "d127644025c5820e39a2908a249691284b4447d6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 11 13:09:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 13:09:19 2020 +0000"
      },
      "message": "DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD. am: d127644025\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12468978\n\nChange-Id: I3253b81c324ae91762a54533a2c1708c80026e8e\n"
    },
    {
      "commit": "ed3dca686bd7eac70200a0b068206615fc0f7288",
      "tree": "96ba30f7f36738482d869c1082a265cddea34f87",
      "parents": [
        "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e",
        "d127644025c5820e39a2908a249691284b4447d6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 11 12:19:36 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 11 12:19:36 2020 +0000"
      },
      "message": "Merge \"DO NOT MERGE Attribute SOURCE_HOTWORD to OP_RECORD_AUDIO_HOTWORD.\" into rvc-qpr-dev"
    },
    {
      "commit": "5cad6399aaae8fd448f389967a30d00068b1efe0",
      "tree": "60cdccf08e4a665a3657a15303a525b934f36093",
      "parents": [
        "79224cacfbdb30956428bbe915323233949b768d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Sep 01 20:55:18 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 10 14:55:00 2020 -0700"
      },
      "message": "aaudio: fix crash on disconnect for shared streams\n\nThis fixes a regression caused by ag/12396646\nThat CL changed the way that AudioStreams are managed\nusing android::sp\u003c\u003e. Unfortunately it caused\na crash in audioserver when shared streams were disconnected.\nThe root cause was calling disconnectedRegisteredStreams()\nfrom a data processing thread, which resulted\nin deleting the object while the thread was using it.\n\nThe call was unnecessary so it was removed.\n\nBug: 161914201\nBug: 163165126\nBug: 164411271\nBug: 166877425\nTest: adb logcat *:F\nTest: Use OboeTester TEST DISCONNECT\nTest: See b/166877425 for more details\nChange-Id: I30fc7f00061a9caf5e3d9f7c8e257102c34f9d92\nMerged-In: I30fc7f00061a9caf5e3d9f7c8e257102c34f9d92\n"
    },
    {
      "commit": "79224cacfbdb30956428bbe915323233949b768d",
      "tree": "3ff5396e1b0f316f25a4af8e48c9465d91cbc2a9",
      "parents": [
        "4719048ce0e6f8656a417a2f2fe6fbb848ed2ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 10 14:54:30 2020 -0700"
      },
      "message": "aaudio: prevent onAudioDeviceUpdate past close\n\nTo prevent late device update callbacks, the AudioStream\nwas made into a RefBase AudioDeviceCallback.\nSo now we can use a smart pointer to delay deletion of the\nstream if any callbacks are in flight while the stream is closed.\n\nSo an AudioStream is now a RefBased object and can be used with\nandroid::sp. That required some changes to the way it is referenced\nin several places.\n\nMyPlayerBase was modified to use a weak pointer to the parent stream.\n\nUse delete[] for mDistributionBuffer\n\nBug: 161914201\nBug: 163165126\nBug: 164411271\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ic24aca3eaf5d1610504bb89c06001a37d0d4a1c3\nMerged-In: Ic24aca3eaf5d1610504bb89c06001a37d0d4a1c3\n"
    },
    {
      "commit": "4719048ce0e6f8656a417a2f2fe6fbb848ed2ba7",
      "tree": "8feaf2f9358a3993b5077647ddcd8952c71f7798",
      "parents": [
        "e1f1cb5827a6c99d41e05e090b3b382f3598a58e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 10 14:52:58 2020 -0700"
      },
      "message": "aaudio: fix crash from callbacks during close\n\nMove some code from release_l() into a new close_l().\nAlso stop callbacks before freeing memory in the\nFixedBlockReader.\n\nThe AudioTrack and AudioRecord callbacks can occur\nup until their destructors are called. This can lead\nto race conditions if the AAudio stream is dismantled\nwhile the AudioTrack or AudioRecord is still alive.\nThe AudioRecord was being deleted but not the AudioTrack.\nThat caused some streams to fail if they were using\na FixedBlockReader, which is used when the app\ncalls AAudioStreamBuilder_setFramesPerDataCallback().\n\nThere was also a problem with a few functions like\nAAudioStream_getFramesPerBurst() or AAudioStream_getTimestamp(),\nwhich would crash if called after AAudioStream_release( for\nINPUT streams.\n\nBug: 161914201\nBug: 163165126\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: If8f6f6f17ffe06eae98eb8b3930bca08c49a15f8\nMerged-In: If8f6f6f17ffe06eae98eb8b3930bca08c49a15f8\n(cherry picked from commit 320910fcf1e7d7729f37f95f591093191414e73f)\n"
    },
    {
      "commit": "85109f953b728cbd50b36c18c48e52ef71f3bb95",
      "tree": "0f822ade4b9c29f5295be9f18a51cc2ef0d9b9d5",
      "parents": [
        "ec0f0ec225b7f5a95b305f0c4a345acc78874633",
        "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 15:52:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 10 15:52:31 2020 +0000"
      },
      "message": "Merge \"audio policy: fix beacon mute delay\" into rvc-qpr-dev am: b197286f8c\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12383405\n\nChange-Id: I899bd7396e7e54aef461ef75f5d78c65c7b40b85\n"
    },
    {
      "commit": "b197286f8c5e01c02e5a04d4e8332c8eca3fda5e",
      "tree": "e84d3182bbb1eab2b1a7c63b2fdb4b21c7695627",
      "parents": [
        "5fc17f2fae4fd72e7695bc828200eb3b8202a754",
        "33897bac9744f10c126b9f44488d390b4de49331"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 15:17:07 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 15:17:07 2020 +0000"
      },
      "message": "Merge \"audio policy: fix beacon mute delay\" into rvc-qpr-dev"
    },
    {
      "commit": "ec0f0ec225b7f5a95b305f0c4a345acc78874633",
      "tree": "a4da22251dab4aee686d9217e626383376d7e692",
      "parents": [
        "acb4d9ca255eb027141f623d221d87fb30c9fc40",
        "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 17:16:19 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934 am: 3f185ad132\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I7205d741c7113277a52b922b777c208a9e3d6beb\n"
    },
    {
      "commit": "3f185ad132f4dd2c4e31a06b69aec83aa44fcd39",
      "tree": "27a7cd1cc44669e7deee1b9be06ff201c80492ba",
      "parents": [
        "8843cf96f564248d4e2b17c559dea377dce34d9c",
        "77230bc934f9646030640993fa3f0a0db4c9ca5e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:58:41 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6 am: 77230bc934\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: I4a44f3cbd6643acb970cf0797954699656b38f63\n"
    },
    {
      "commit": "acb4d9ca255eb027141f623d221d87fb30c9fc40",
      "tree": "0ee39a3661a169087cab9c7f0265bd4573f313d1",
      "parents": [
        "499713d39f11b7e01c53b1f16f325451d280e5b9",
        "5fc17f2fae4fd72e7695bc828200eb3b8202a754"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Sep 09 16:58:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:58:34 2020 +0000"
      },
      "message": "Merge \"Camera: Fix deadlock caused by ordering of mStatusLock and mCameraStatesLock.\" into rvc-qpr-dev am: 5fc17f2fae\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12393352\n\nChange-Id: I10315aec4a263581eee7734cae2745544cfc2577\n"
    },
    {
      "commit": "77230bc934f9646030640993fa3f0a0db4c9ca5e",
      "tree": "2f64e10a0e25e11ec4cbec2997ca61757cdce0e5",
      "parents": [
        "c5c9086d323906f2bdd2d020910291044250081e",
        "451a36a9a67eb9cad6931b908736072c76d30ec2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 09 16:26:47 2020 +0000"
      },
      "message": "Merge \"Skip devices with multiple bits set.\" am: bd5bb90b4d am: 451a36a9a6\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1421703\n\nChange-Id: Iad96bd32869ba3d798a185c82740684ead3349a8\n"
    },
    {
      "commit": "5fc17f2fae4fd72e7695bc828200eb3b8202a754",
      "tree": "b9aa8c34f45e693af40cc6f655982d144d4b24ca",
      "parents": [
        "e1f1cb5827a6c99d41e05e090b3b382f3598a58e",
        "5e2cd30c8942d6ee32c8f1a34997bb106b4ac971"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Sep 09 16:22:58 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 16:22:58 2020 +0000"
      },
      "message": "Merge \"Camera: Fix deadlock caused by ordering of mStatusLock and mCameraStatesLock.\" into rvc-qpr-dev"
    }
  ],
  "next": "451a36a9a67eb9cad6931b908736072c76d30ec2"
}
