)]}'
{
  "log": [
    {
      "commit": "bda4575c36ad11b0870ccdb50dcb3a04573d6782",
      "tree": "9e5e3ed6228395c814e390c464e09b3d5922cf29",
      "parents": [
        "6d988df316533c7e189b266ad01e66356b6992d1"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Fri Jul 17 16:41:18 2020 -0700"
      },
      "committer": {
        "name": "Nate Myren",
        "email": "ntmyren@google.com",
        "time": "Thu Mar 11 08:35:04 2021 -0800"
      },
      "message": "Add attributionTag to audio-recordings\n\n... by replacing packageName/uid/pid by the Identity class.\n\nThis allows us to track which parts of the app trigger audio-recordings.\n90% of the code is just sending around the additional parameters.\n\nThis adds it for the Java and native API.\n\nTest: atest CtsAppOpsTestCases\n            CtsNativeMediaAAudioTestCases\nFixes: 160150145\nChange-Id: Ibd7b884f7fcd4668a4e27f997e59cfc3217a9e89\n"
    },
    {
      "commit": "ab36e390d3c4665ff67cc56edaccc98a22e30667",
      "tree": "b102f1941d0b5aa76855d0560b6876ce0cfd114c",
      "parents": [
        "0e1f5ce488ebf02ae28534a869cde566540b676a",
        "d4a7728496a647e4d886676bb2cc9f15972a43b8"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Fri Mar 05 20:44:51 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 05 20:44:51 2021 +0000"
      },
      "message": "Merge \"libaudioclient : Update log in VALUE_OR_FATAL\" into sc-dev"
    },
    {
      "commit": "d4a7728496a647e4d886676bb2cc9f15972a43b8",
      "tree": "694426a29bada609bbb900d404767324ffeb034e",
      "parents": [
        "99eae39062304893ad6221eccfe353b5271ee484"
      ],
      "author": {
        "name": "Ayushi Khopkar",
        "email": "ayushi.khopkar@ittiam.com",
        "time": "Wed Feb 24 13:29:28 2021 +0530"
      },
      "committer": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Fri Mar 05 01:00:32 2021 +0000"
      },
      "message": "libaudioclient : Update log in VALUE_OR_FATAL\n\nThis update adds line number and function name in abort log of VALUE_OR_FATAL\n\nTest: ./audioflinger_fuzzer -rss_limit_mb\u003d2560 -timeout\u003d90 -runs\u003d100\n      clusterfuzz-testcase-minimized-audioflinger_fuzzer-5701813725167616\nBug: 180357329\n\nChange-Id: If8710ef7b8856fb7e1fdd6dd2af302b501602f22\n(cherry picked from commit e25af5cfc58e2eea9099bbdd954c0ced6d5de1c6)\n"
    },
    {
      "commit": "fd3bd1de208358210d09b6298a555d8badaa3c9d",
      "tree": "52efe37a99664faea3f261584340df032dfeb987",
      "parents": [
        "99eae39062304893ad6221eccfe353b5271ee484",
        "56786ac1035b158c23c150884d2d6415f9fbd1ea"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 02:11:15 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 02:11:15 2021 +0000"
      },
      "message": "Merge \"[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\" into sc-dev"
    },
    {
      "commit": "56786ac1035b158c23c150884d2d6415f9fbd1ea",
      "tree": "309e190927e12f9076359905ea5e2258f25700a1",
      "parents": [
        "445b895828747b82170610a75598a0615025918c"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 15:24:36 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 15:24:36 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  apex/testing/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.bp\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/plugin/Android.bp\n  media/codec2/hidl/plugin/samples/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/fuzzer/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/hapticgenerator/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.bp\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/tests/mediaplayer/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/libmediatranscoding/transcoder/Android.bp\n  media/libmediatranscoding/transcoder/benchmark/Android.bp\n  media/libmediatranscoding/transcoder/tests/Android.bp\n  media/libmediatranscoding/transcoder/tests/fuzzer/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libshmem/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/renderfright/Android.bp\n  media/libstagefright/renderfright/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/MtpFfsHandleTest/Android.bp\n  media/mtp/tests/MtpFuzzer/Android.bp\n  media/mtp/tests/PosixAsyncIOTest/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  media/utils/tests/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/config/tests/Android.bp\n  services/audiopolicy/engine/config/tests/resources/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/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/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/fuzzer/Android.bp\n  services/audiopolicy/fuzzer/resources/Android.bp\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.bp\n  services/audiopolicy/tests/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/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/mediatranscoding/tests/TranscodingUidPolicyTestApp/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n  services/tuner/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  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/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\nChange-Id: I4e4ecdbb43c90f5c3cd8e5ccec51b39fa0b5ae9b\n"
    },
    {
      "commit": "d9d0d32eada2c9d5e5a73decc1c09e941804fd7e",
      "tree": "67a4184cd4d3a572115246727c3575c539f20ed9",
      "parents": [
        "39b41a0be10742e03994fef5912c59178888ae4b",
        "5837c7f94aeaccb880cc8d4627faebedd9f469b2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 25 23:20:47 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 23:20:47 2021 +0000"
      },
      "message": "Merge \"Tracks: log internalTrackId in metrics\" into sc-dev"
    },
    {
      "commit": "5739fff71185219a5dcc56a12620948164287608",
      "tree": "8f123bc9e9ad5d3ebc0aee78a2ed7bb3b1dbc07b",
      "parents": [
        "5530dd3df904c1b22ee4098bec1b801c379b8d4f"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 11:40:14 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 11:45:35 2021 -0800"
      },
      "message": "Revert \"[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\"\n\nThis reverts commit 3908e7be0b90e95ffb1f0e3db9274b2cbef57728.\n\nThis reverts commit c837504ed5b9c708896bb97b1ef9225c376816a7.\n\nThis reverts commit 948e6aace91d16acfaa97763c7228029a1c2afe0.\n\nChange-Id: Ib53daa5debdae7062155add5a70a5b3d5fcd1050\n"
    },
    {
      "commit": "5837c7f94aeaccb880cc8d4627faebedd9f469b2",
      "tree": "73f77f1bb7fa67ee60d8cd28cd9b3372e2a5b3ee",
      "parents": [
        "5530dd3df904c1b22ee4098bec1b801c379b8d4f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 25 10:48:24 2021 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 25 11:02:00 2021 -0800"
      },
      "message": "Tracks: log internalTrackId in metrics\n\nThis makes associating tracks in the audioflinger dumpsys\nwith metrics logging easier.\n\nTest: adb shell dumpsys media.metrics\nBug: 181242710\nChange-Id: Ic7e3c35765bad786f5a97c06152da786b78c8aa8\n"
    },
    {
      "commit": "78dc9c8013fd7a3626298d091622dbccb250455d",
      "tree": "8f289d763f73cb6ca87e2dad6d72ebaa3567229c",
      "parents": [
        "925e03a912e07283056cf99d12fad51a4451adae"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Feb 22 19:13:29 2021 +0000"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Feb 22 21:56:59 2021 +0000"
      },
      "message": "Add log when starting external vibration.\n\nAdding log when starting external vibration to help debug\naudio-coupled-haptic playback issues.\n\nBug: 178431048\nTest: make\nChange-Id: I55c4bf5dad39decb91772f333b111bd93ad1cbdf\n"
    },
    {
      "commit": "c837504ed5b9c708896bb97b1ef9225c376816a7",
      "tree": "4b86c06c7fd70680e0482475807ca8f19f00502b",
      "parents": [
        "6d858b5665aeea773ce10d81fd875a80fdb09b85"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 21:02:31 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Wed Feb 17 12:43:41 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  camera/cameraserver/Android.bp\n  camera/tests/Android.mk\n  cmds/screenrecord/Android.bp\n  cmds/stagefright/Android.mk\n  drm/common/Android.bp\n  drm/drmserver/Android.bp\n  drm/libdrmframework/Android.bp\n  drm/libdrmframework/plugins/common/util/Android.bp\n  drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.bp\n  drm/libdrmframework/plugins/passthru/Android.bp\n  drm/libmediadrm/Android.bp\n  drm/libmediadrm/fuzzer/Android.bp\n  drm/libmediadrm/protos/Android.bp\n  drm/libmediadrm/tests/Android.bp\n  drm/mediacas/plugins/clearkey/Android.bp\n  drm/mediacas/plugins/clearkey/tests/Android.bp\n  drm/mediacas/plugins/mock/Android.bp\n  drm/mediadrm/plugins/clearkey/common/Android.bp\n  drm/mediadrm/plugins/clearkey/default/Android.bp\n  drm/mediadrm/plugins/clearkey/default/tests/Android.bp\n  drm/mediadrm/plugins/mock/Android.bp\n  media/audioserver/Android.mk\n  media/bufferpool/1.0/Android.bp\n  media/bufferpool/1.0/vts/Android.bp\n  media/bufferpool/2.0/Android.bp\n  media/bufferpool/2.0/tests/Android.bp\n  media/codec2/components/aac/Android.bp\n  media/codec2/components/amr_nb_wb/Android.bp\n  media/codec2/components/aom/Android.bp\n  media/codec2/components/avc/Android.bp\n  media/codec2/components/base/Android.bp\n  media/codec2/components/cmds/Android.bp\n  media/codec2/components/flac/Android.bp\n  media/codec2/components/g711/Android.bp\n  media/codec2/components/gav1/Android.bp\n  media/codec2/components/gsm/Android.bp\n  media/codec2/components/hevc/Android.bp\n  media/codec2/components/mp3/Android.bp\n  media/codec2/components/mpeg2/Android.bp\n  media/codec2/components/mpeg4_h263/Android.bp\n  media/codec2/components/opus/Android.bp\n  media/codec2/components/raw/Android.bp\n  media/codec2/components/vorbis/Android.bp\n  media/codec2/components/vpx/Android.bp\n  media/codec2/components/xaac/Android.bp\n  media/codec2/core/Android.bp\n  media/codec2/faultinjection/Android.bp\n  media/codec2/fuzzer/Android.bp\n  media/codec2/hidl/1.0/utils/Android.bp\n  media/codec2/hidl/1.0/vts/functional/Android.bp\n  media/codec2/hidl/1.0/vts/functional/audio/Android.bp\n  media/codec2/hidl/1.0/vts/functional/common/Android.bp\n  media/codec2/hidl/1.0/vts/functional/component/Android.bp\n  media/codec2/hidl/1.0/vts/functional/master/Android.bp\n  media/codec2/hidl/1.0/vts/functional/video/Android.bp\n  media/codec2/hidl/1.1/utils/Android.bp\n  media/codec2/hidl/client/Android.bp\n  media/codec2/hidl/services/Android.bp\n  media/codec2/sfplugin/Android.bp\n  media/codec2/sfplugin/tests/Android.bp\n  media/codec2/sfplugin/utils/Android.bp\n  media/codec2/tests/Android.bp\n  media/codec2/vndk/Android.bp\n  media/codecs/amrnb/common/Android.bp\n  media/codecs/amrnb/enc/fuzzer/Android.bp\n  media/codecs/amrnb/fuzzer/Android.bp\n  media/codecs/amrwb/dec/fuzzer/Android.bp\n  media/codecs/amrwb/enc/Android.bp\n  media/codecs/amrwb/enc/SampleCode/Android.bp\n  media/codecs/amrwb/enc/fuzzer/Android.bp\n  media/codecs/amrwb/enc/test/Android.bp\n  media/codecs/g711/decoder/Android.bp\n  media/codecs/g711/fuzzer/Android.bp\n  media/codecs/m4v_h263/dec/Android.bp\n  media/codecs/m4v_h263/dec/test/Android.bp\n  media/codecs/m4v_h263/fuzzer/Android.bp\n  media/codecs/mp3dec/fuzzer/Android.bp\n  media/extractors/Android.bp\n  media/extractors/aac/Android.bp\n  media/extractors/amr/Android.bp\n  media/extractors/flac/Android.bp\n  media/extractors/fuzzers/Android.bp\n  media/extractors/midi/Android.bp\n  media/extractors/mkv/Android.bp\n  media/extractors/mp3/Android.bp\n  media/extractors/mp4/Android.bp\n  media/extractors/mpeg2/Android.bp\n  media/extractors/ogg/Android.bp\n  media/extractors/tests/Android.bp\n  media/extractors/wav/Android.bp\n  media/img_utils/Android.bp\n  media/libaaudio/Android.bp\n  media/libaaudio/examples/Android.bp\n  media/libaaudio/examples/input_monitor/Android.bp\n  media/libaaudio/examples/loopback/Android.bp\n  media/libaaudio/examples/write_sine/Android.bp\n  media/libaaudio/src/Android.bp\n  media/libaaudio/tests/Android.bp\n  media/libaudioclient/Android.bp\n  media/libaudioclient/tests/Android.bp\n  media/libaudiofoundation/Android.bp\n  media/libaudiofoundation/tests/Android.bp\n  media/libaudiohal/Android.bp\n  media/libaudiohal/impl/Android.bp\n  media/libaudioprocessing/Android.bp\n  media/libaudioprocessing/audio-resampler/Android.bp\n  media/libaudioprocessing/tests/Android.bp\n  media/libaudioprocessing/tests/fuzzer/Android.bp\n  media/libcpustats/Android.bp\n  media/libdatasource/Android.bp\n  media/libeffects/config/Android.bp\n  media/libeffects/downmix/Android.bp\n  media/libeffects/downmix/tests/Android.bp\n  media/libeffects/dynamicsproc/Android.bp\n  media/libeffects/factory/Android.bp\n  media/libeffects/loudness/Android.bp\n  media/libeffects/lvm/benchmarks/Android.bp\n  media/libeffects/lvm/lib/Android.bp\n  media/libeffects/lvm/tests/Android.bp\n  media/libeffects/lvm/wrapper/Android.bp\n  media/libeffects/preprocessing/Android.bp\n  media/libeffects/preprocessing/benchmarks/Android.bp\n  media/libeffects/preprocessing/tests/Android.bp\n  media/libeffects/proxy/Android.bp\n  media/libeffects/visualizer/Android.mk\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/xsd/Android.bp\n  media/libmedia/xsd/vts/Android.bp\n  media/libmediahelper/Android.bp\n  media/libmediahelper/tests/Android.bp\n  media/libmediametrics/Android.bp\n  media/libmediaplayerservice/Android.bp\n  media/libmediaplayerservice/datasource/Android.bp\n  media/libmediaplayerservice/nuplayer/Android.bp\n  media/libmediaplayerservice/tests/Android.bp\n  media/libmediaplayerservice/tests/stagefrightRecorder/Android.bp\n  media/libmediatranscoding/Android.bp\n  media/libmediatranscoding/tests/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libstagefright/Android.bp\n  media/libstagefright/bqhelper/Android.bp\n  media/libstagefright/bqhelper/tests/Android.bp\n  media/libstagefright/codecs/aacdec/Android.bp\n  media/libstagefright/codecs/aacenc/Android.bp\n  media/libstagefright/codecs/amrnb/dec/Android.bp\n  media/libstagefright/codecs/amrnb/enc/Android.bp\n  media/libstagefright/codecs/amrwbenc/Android.bp\n  media/libstagefright/codecs/avcdec/Android.bp\n  media/libstagefright/codecs/avcenc/Android.bp\n  media/libstagefright/codecs/common/Android.bp\n  media/libstagefright/codecs/flac/dec/Android.bp\n  media/libstagefright/codecs/flac/enc/Android.bp\n  media/libstagefright/codecs/g711/dec/Android.bp\n  media/libstagefright/codecs/gsm/dec/Android.bp\n  media/libstagefright/codecs/hevcdec/Android.bp\n  media/libstagefright/codecs/m4v_h263/dec/Android.bp\n  media/libstagefright/codecs/m4v_h263/enc/Android.bp\n  media/libstagefright/codecs/mp3dec/Android.bp\n  media/libstagefright/codecs/mpeg2dec/Android.bp\n  media/libstagefright/codecs/on2/dec/Android.bp\n  media/libstagefright/codecs/on2/enc/Android.bp\n  media/libstagefright/codecs/opus/dec/Android.bp\n  media/libstagefright/codecs/raw/Android.bp\n  media/libstagefright/codecs/vorbis/dec/Android.bp\n  media/libstagefright/codecs/xaacdec/Android.bp\n  media/libstagefright/colorconversion/Android.bp\n  media/libstagefright/data/Android.bp\n  media/libstagefright/filters/Android.bp\n  media/libstagefright/flac/dec/Android.bp\n  media/libstagefright/flac/dec/test/Android.bp\n  media/libstagefright/foundation/Android.bp\n  media/libstagefright/foundation/tests/AVCUtils/Android.bp\n  media/libstagefright/foundation/tests/Android.bp\n  media/libstagefright/foundation/tests/OpusHeader/Android.bp\n  media/libstagefright/foundation/tests/colorutils/Android.bp\n  media/libstagefright/http/Android.bp\n  media/libstagefright/httplive/Android.bp\n  media/libstagefright/id3/Android.bp\n  media/libstagefright/id3/test/Android.bp\n  media/libstagefright/mpeg2ts/Android.bp\n  media/libstagefright/mpeg2ts/test/Android.bp\n  media/libstagefright/omx/Android.bp\n  media/libstagefright/omx/tests/Android.bp\n  media/libstagefright/rtsp/Android.bp\n  media/libstagefright/tests/Android.bp\n  media/libstagefright/tests/ESDS/Android.bp\n  media/libstagefright/tests/HEVC/Android.bp\n  media/libstagefright/tests/extractorFactory/Android.bp\n  media/libstagefright/tests/fuzzers/Android.bp\n  media/libstagefright/tests/mediacodec/Android.bp\n  media/libstagefright/tests/metadatautils/Android.bp\n  media/libstagefright/tests/writer/Android.bp\n  media/libstagefright/timedtext/Android.bp\n  media/libstagefright/timedtext/test/Android.bp\n  media/libstagefright/webm/Android.bp\n  media/libstagefright/webm/tests/Android.bp\n  media/libstagefright/writer_fuzzers/Android.bp\n  media/libstagefright/xmlparser/Android.bp\n  media/libstagefright/xmlparser/test/Android.bp\n  media/libstagefright/xmlparser/vts/Android.bp\n  media/libwatchdog/Android.bp\n  media/mediaserver/Android.bp\n  media/mtp/Android.bp\n  media/mtp/tests/Android.bp\n  media/tests/benchmark/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/src/main/cpp/Android.bp\n  media/tests/benchmark/src/native/common/Android.bp\n  media/tests/benchmark/src/native/decoder/Android.bp\n  media/tests/benchmark/src/native/encoder/Android.bp\n  media/tests/benchmark/src/native/extractor/Android.bp\n  media/tests/benchmark/src/native/muxer/Android.bp\n  media/tests/benchmark/tests/Android.bp\n  media/utils/Android.bp\n  media/utils/fuzzers/Android.bp\n  services/audioflinger/Android.bp\n  services/audiopolicy/Android.bp\n  services/audiopolicy/common/Android.bp\n  services/audiopolicy/common/managerdefinitions/Android.bp\n  services/audiopolicy/config/Android.bp\n  services/audiopolicy/engine/common/Android.bp\n  services/audiopolicy/engine/config/Android.bp\n  services/audiopolicy/engine/interface/Android.bp\n  services/audiopolicy/engineconfigurable/Android.bp\n  services/audiopolicy/engineconfigurable/config/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/automotive/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/caremu/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.bp\n  services/audiopolicy/engineconfigurable/tools/Android.bp\n  services/audiopolicy/engineconfigurable/wrapper/Android.bp\n  services/audiopolicy/enginedefault/Android.bp\n  services/audiopolicy/enginedefault/config/example/Android.bp\n  services/audiopolicy/manager/Android.mk\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.mk\n  services/audiopolicy/tests/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/tests/Android.mk\n  services/mediacodec/Android.bp\n  services/mediacodec/registrant/Android.bp\n  services/mediaextractor/Android.bp\n  services/medialog/Android.bp\n  services/medialog/fuzzer/Android.bp\n  services/mediametrics/Android.bp\n  services/mediametrics/benchmarks/Android.bp\n  services/mediametrics/fuzzer/Android.bp\n  services/mediametrics/tests/Android.bp\n  services/mediaresourcemanager/Android.bp\n  services/mediaresourcemanager/fuzzer/Android.bp\n  services/mediaresourcemanager/test/Android.bp\n  services/mediatranscoding/Android.bp\n  services/mediatranscoding/tests/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  media/codecs/amrnb/dec/Android.bp\n  media/codecs/amrnb/dec/test/Android.bp\n  media/codecs/amrnb/enc/Android.bp\n  media/codecs/amrnb/enc/test/Android.bp\n  media/codecs/amrwb/dec/Android.bp\n  media/codecs/amrwb/dec/test/Android.bp\n  media/codecs/m4v_h263/enc/Android.bp\n  media/codecs/m4v_h263/enc/test/Android.bp\n  media/codecs/mp3dec/Android.bp\n  media/codecs/mp3dec/test/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    legacy_by_exception_only\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\n    SPDX-license-identifier-Unicode-DFS\nto:\n  apex/testing/Android.bp\n  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Car/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/CarEmu/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoInput/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoOutput/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_by_exception_only\nto:\n  drm/mediadrm/plugins/clearkey/hidl/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: I8360756b326b891b56629127091540310851c941\nMerged-in: I8360756b326b891b56629127091540310851c941\n"
    },
    {
      "commit": "ec53dfa4b599227e4e3663bdcbfb1d1dfacc29a0",
      "tree": "59c8f96f9e0be9d20018bb3f0b957859dae5aeff",
      "parents": [
        "a492bbee4bad65856189a8e7d334aa73d8b1cfa9",
        "7f2285b1e120192e4368e5813b86370c66cfd544"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Mon Feb 08 02:04:16 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 08 02:04:16 2021 +0000"
      },
      "message": "Merge \"Specify version for aidl_interface explicitly\" into sc-dev"
    },
    {
      "commit": "b9cc0ab4c8116ba4fe1c9efb354610edbb0d57ac",
      "tree": "6b3a7851ede5be945e1b2d6e7bde3f232d215a45",
      "parents": [
        "7491da7fe76df7f23224f4b580b65ef0427b7166"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 29 11:46:52 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jan 30 08:53:13 2021 +0000"
      },
      "message": "AudioFlinger: track metadata fix up\n\nDo not send metadata of tracks used by software patches to audio HAL.\nThis is true for all record tracks and for playback track with\nunspecified usage (stream type).\n\nBug: 168751366\nTest: make\nChange-Id: I45a3cc8ecc0e1cca66a613457936306bc21ad90e\n"
    },
    {
      "commit": "7f2285b1e120192e4368e5813b86370c66cfd544",
      "tree": "01cab530a2c4d17a9cf4e6e3401cf0855a554cde",
      "parents": [
        "82aff67588f6c1fc701f8bd36d8e3c57d21886d3"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Thu Jan 28 00:49:46 2021 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Thu Jan 28 00:49:46 2021 +0900"
      },
      "message": "Specify version for aidl_interface explicitly\n\nBug: 150578172\nTest: m\nChange-Id: I730c407461556fcd49a953b4b6249089af740c6e\n"
    },
    {
      "commit": "d4adbdb74589b33d570f33d1a7301d18a2e84b7f",
      "tree": "abc46f5e46017822b6e121c9a3c46dcc60dbf910",
      "parents": [
        "07f14e30d102b0a7ab148ba80397bba3e02500de"
      ],
      "author": {
        "name": "Kuowei Li",
        "email": "kuowei.li@mediatek.com",
        "time": "Thu Aug 13 14:44:25 2020 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 22 14:22:40 2021 -0800"
      },
      "message": "audio: add implementation for TV related API\n\n1. TunerConfiguration.\n2. AudioDescriptionMixLevel getter/setter.\n3. DualMonoMode getter/setter.\n4. PlaybackRate getter/setter.\n\nTest: TIS player with instrumented HAL\nTest: atest AudioTrackTest#testTunerConfiguration\nTest: atest AudioTrackTest#testDualMonoMode\nTest: atest AudioTrackTest#testAudioDescriptionMixLevel\nTest: atest AudioManagerTest#testGetAdditionalOutputDeviceDelay\nBug: 173482792\nChange-Id: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\n"
    },
    {
      "commit": "0a4904a12ded2c89e2cae4a7dc46730726cf9abd",
      "tree": "82da7b9713645ba4970114857119bdf21dc40f54",
      "parents": [
        "08c7d9e6ceb83134b7d6d6b56e686cfb54dd43f3"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Jan 06 12:57:05 2021 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Jan 21 10:44:07 2021 -0800"
      },
      "message": "Convert IAudioPolicyService to AIDL\n\nTest: Audio tests from CtsMediaTests\nTest: Audio smoke tests\nBug: 160253486\n\nChange-Id: I5ecee56f71a959d2fd75714ba95d7653af0c98bc\n"
    },
    {
      "commit": "6626a01d9d18d9a7277310d03edfeba6a5a0b056",
      "tree": "9264e6c91aa3b47f1f2bfbdd3df4a82500e18f86",
      "parents": [
        "328d6774ba2a3526a437532832df5781812d123b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 12 13:38:00 2021 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 15 17:31:37 2021 -0800"
      },
      "message": "AudioFlinger: Use atomic pointer for AudioFlinger singleton.\n\nSet when AudioFlinger is assigned to sp\u003c\u003e (i.e. onFirstRef())\nby the main audioserver thread.\n\nTest: basic audio works\nTest: AudioEffectTest AudioPreProcessingTest BassBoostTest\nTest: EnvReverbTest EqualizerTest LoudnessEnhancerTest\nTest: PresetReverbTest VirtualizerTest VisualizerTest\nBug: 161341295\nChange-Id: I21b8c88f35fbeaae6214b2f894cfcea22b965f6f\n"
    },
    {
      "commit": "328d6774ba2a3526a437532832df5781812d123b",
      "tree": "163affc905b0b54b4c009022361add1fcf7e36c8",
      "parents": [
        "d8888d48f512f894182848f3d7076b8c6a68fa95"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 12 12:32:21 2021 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 15 14:31:06 2021 -0800"
      },
      "message": "Effects: Add atomic_wp\u003cT\u003e, update setThread.\n\natomic_wp\u003cT\u003e is used to allow concurrent read and write to the wp\u003c\u003e.\nWe use this to fix EffectCallback::setThread to resolve multithreaded\naccess to the wp\u003cT\u003e.\n\nNote that setThread is used for EffectChain migration between\nPlaybackThreads; we also need to refine higher level transactional\nlocking to ensure enable/disable of effect is done consistently\nduring migration.\n\nTest: basic audio works\nTest: atest media_synchronization_tests\nTest: AudioEffectTest AudioPreProcessingTest BassBoostTest\nTest: EnvReverbTest EqualizerTest LoudnessEnhancerTest\nTest: PresetReverbTest VirtualizerTest VisualizerTest\nBug: 161341295\nChange-Id: If80ee4373859c832d6fd10fec0385d69064f50c6\n"
    },
    {
      "commit": "318e024715b78ce94a56182c1bde9260f35e6725",
      "tree": "3ae41c91da869bd12854678c69e98c52b4be16c3",
      "parents": [
        "1c8663bcaadbf298454fda0c6171e99dee35a539"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 21 10:33:49 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 07 21:14:31 2021 -0800"
      },
      "message": "AudioEffects: Annotate smart pointer member variables\n\nIndicate which smart pointers are const and which ones may have\nissues with concurrent modification and access.\n\nNo material difference, but running tests to be sure.\n\nTest: AudioEffectTest AudioPreProcessingTest BassBoostTest\nTest: EnvReverbTest EqualizerTest LoudnessEnhancerTest\nTest: PresetReverbTest VirtualizerTest VisualizerTest\nBug: 161341295\nChange-Id: I6cac21893cd39496b2c2ab24fb203abe9e9e663e\n"
    },
    {
      "commit": "ef03eef383dd33d8dca48a8301e0487d20154dcf",
      "tree": "084f6c5e70548cacb0ef20cbffe796b9cd87d733",
      "parents": [
        "1ab91b43ec864237e3bd12929669420b55c25bf6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 16:30:04 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 16:30:04 2021 +0100"
      },
      "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\n"
    },
    {
      "commit": "6149d6bd047e1b18d467d8c8f6cda33608f109c2",
      "tree": "3b2a3d1221fb4e5ff9e63753a6a9939100651fc0",
      "parents": [
        "346778c2eb2d88f44d3d54f236c8af854269c744",
        "74c38dc7e39125a9ae17daa3b810324621c0fad2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 05 11:52:40 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 05 11:52:40 2021 +0000"
      },
      "message": "Merge \"audio flinger: report actual sink device for MSD playback threads\""
    },
    {
      "commit": "74c38dc7e39125a9ae17daa3b810324621c0fad2",
      "tree": "55b4d2bfdb04674b707e07e1a7d15723684f1e74",
      "parents": [
        "dc66d284ad1cdfffc3e65cf352e270e43dc47ff8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 23 18:19:44 2020 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 05 08:37:54 2021 +0000"
      },
      "message": "audio flinger: report actual sink device for MSD playback threads\n\nWhen a playback thread is routed to an MSD module, make sure that the\nactual sink device selected by the software patch at the output of the\nMSD module is reported to AudioTrack clients.\n\nBug: 139894721\nTest: atest AudioTrackTest\nTest: atest RoutingTest\nChange-Id: Ie52ebe198e9ebdfe5f2a38dcd44c551c705a7931\n"
    },
    {
      "commit": "8ba12772fcf103226e0b346b019a0ecd1ff5f024",
      "tree": "455199d9477bccaae0d062e3ecad8f614ff62aa2",
      "parents": [
        "dc66d284ad1cdfffc3e65cf352e270e43dc47ff8",
        "9457917e21edb51ea032237c94386416b5e83358"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 04 15:57:09 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 04 15:57:09 2021 +0000"
      },
      "message": "Merge \"Audio HAL: add channel mask and tags to track metadata\""
    },
    {
      "commit": "9457917e21edb51ea032237c94386416b5e83358",
      "tree": "b8b862b539d28d1a1708332ef0c86731e01f8994",
      "parents": [
        "bd2c15386ecb0be826ac52400c357d4043c4f091"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 20 18:41:04 2020 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 17 16:54:41 2020 +0100"
      },
      "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\n"
    },
    {
      "commit": "7e7a79d86f9596564562c1977aed241d4dc21154",
      "tree": "d6e1fdac0af8f5826cc06d4112972e4f4ea87ada",
      "parents": [
        "1601ba676489b977715b7b16d3b89dccead8554d"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Dec 15 16:48:16 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Dec 16 14:33:59 2020 -0800"
      },
      "message": "AIDLize IAudioPolicyServiceClient\n\nBug: 160253486\nTest: Audio-related tests from CtsMediaTestCases\nChange-Id: Id37fad4028b620620a45dabe8af068f3158e6228\n"
    },
    {
      "commit": "1131b6eff47dc3da719015794e0f3d94601c9eb2",
      "tree": "8525af00e0a83be99148859eae8e57bfba7cf564",
      "parents": [
        "973638a1ca4d4f693a492a13c89240178391e56c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 20:47:45 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 11 00:08:35 2020 -0800"
      },
      "message": "Audio Aidl: Update binder::Status return code handling\n\nAdd statusTFromBinderStatus() and binderStatusFromStatusT()\nas methods to standardize binder status codes for native\naudio service cross-language compatibility.\n\nTest: atest audio_aidl_status_tests\nBug: 175338323\nChange-Id: I48c543689d5a9a464c0d68fb6263dedff43ceca9\n"
    },
    {
      "commit": "973638a1ca4d4f693a492a13c89240178391e56c",
      "tree": "844cf6ba85c876ff1cc8e93aba1b6a6d990ec5ac",
      "parents": [
        "3f69c16cb65f42892b2ee678d171c98613f16982"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 20:47:45 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 11 00:04:32 2020 -0800"
      },
      "message": "Audio Aidl: Unify naming for conversion methods\n\nMost of the naming for aidl2legacy and legacy2aidl\nare consistent, correct the few remaining inconsistencies.\n\nTest: compiles, boots\nBug: 175316373\nChange-Id: I85952846b306a2b5e88db125ccfbe431cc9bd7cd\n"
    },
    {
      "commit": "e4f113b22e79ed6744bda6d775bdfc24b9354657",
      "tree": "e37ca9d901c8c421e2f6a6d4a1fa27c0ff144df7",
      "parents": [
        "f4e0a07dfc6fd095fea7b34e08a137379741115b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 16 11:50:33 2020 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 04 16:17:05 2020 -0800"
      },
      "message": "AudioPolicy/Flinger: harden security checks\n\nUpdate list of methods which can only be called from system\ncomponents.\n\nBug: 162423060\nTest: see poc\nChange-Id: Ie266a2fdd31bdcecfe9c116596ae65a789b812c6\n"
    },
    {
      "commit": "b06a4a164872b5ae3a7e4d9f7496b37bd47d652b",
      "tree": "df548d663eb24b9ccb995004ba36a4a151199b2e",
      "parents": [
        "05c5d697409b85e519b16047a1f79aaadf92f064",
        "cddf3949efde393df1efbd0e082d2c8d09dcf76c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 03 22:28:22 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 22:28:22 2020 +0000"
      },
      "message": "Merge \"Fix exception when Release Audio Input Effect\" am: 1004c244b5 am: e2aaf07831 am: cddf3949ef\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1512719\n\nChange-Id: I6a9d2826ccc5ebd4e8ab9ae8df51e64ad3875747\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": "50b8ccb52ded489c4f60d42541293f3f9938f1ae",
      "tree": "0bc210d7f008e9fe0a6e1227d2e54a846f1cd392",
      "parents": [
        "ee75d6f36fabcd431edf60a50437eea166f43762"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Nov 24 13:47:54 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-tsvi",
        "email": "ytai@google.com",
        "time": "Thu Dec 03 19:18:42 2020 +0000"
      },
      "message": "AIDLize IAudioFlinger\n\nThis change removes all the manual parceling code used in the\nIAudioFlinger interface. In order to reduce impact on existing client\nand server code to a minimum, the IAudioFlinger interface is preserved\nand a new translation layer between IAudioFlinger and its AIDL\ncounterpart, IAudioFlingerService, is introduced:\n- AudioFlingerClientAdapter is for use on the client side. It wraps an\n  IAudioFlingerService instance and presents an IAudioFlinger\n  interface.\n- AudioFlingerServerAdapter is for use on the server side. It wraps an\n  IAudioFlinger instance and presents an IAudioFlingerService.\n\nArgument conversion an error checking is performed rigorously in the\ntranslation layer.\n\nTest: Audio-related CTS tests from CtsMediaTestCases\nBug: 160253486\nChange-Id: Ibe35317e449b0faa3ef5336bb30f669106978a31\n"
    },
    {
      "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": "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": "5385847f517bae5b5067507dea4df68ead351932",
      "tree": "52f652fee054bb7a8a4b8fcdba39d1885ac3fab2",
      "parents": [
        "f9dd9246bf47c72c1e38f0cc5a012f056627dce7"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 30 11:04:46 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Dec 01 10:04:13 2020 -0800"
      },
      "message": "Move business logic out of IAudioFlinger\n\nIAudioFlinger should only contain transport logic, in preparation for\nAIDL conversion.\n\nTest: Audio-related CTS tests from CtsMediaTestCases\nChange-Id: I2a6d8f16da720a3db7c673e5b2bb9bbd23bbf985\n"
    },
    {
      "commit": "50e016a9959c87fd3aaac0084e8d68611e41781a",
      "tree": "7fdfcfb72d99344af023ee3e56023f7cb93a83d0",
      "parents": [
        "1ff75699675b1d642d6f8fe645b5ae46b5432dfb"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Nov 12 14:26:12 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Nov 24 16:40:34 2020 -0800"
      },
      "message": "Prepare openOutput() signature to AIDL conversion\n\nThe purpose is to avoid having more than one primitive output\nargument and to avoid in/out arguments.\nTest: Audio-related CTS tests from CtsMediaTestCases\n\nChange-Id: I827f99755f85bd58f3088c9445add52848763fa0\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": "1ff75699675b1d642d6f8fe645b5ae46b5432dfb",
      "tree": "1a7cd4bd94aac27219940cccaee824abb069c989",
      "parents": [
        "07892869191730375f91ff6f1334006657de8752"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Nov 06 12:16:12 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 23 14:07:28 2020 -0800"
      },
      "message": "Extract VALUE_OR_RETURN_STATUS to AidlConversion\n\nThis seems useful in various places.\n\nTest: Compiles\nChange-Id: Iab9b03f806b4c33da68df89437db5639680ce331\n"
    },
    {
      "commit": "12a0b8459f7aaa531d0b95863c5c6317d474e3ef",
      "tree": "e91b94d0a0aa5395293aef2d6eef263d4c66b65e",
      "parents": [
        "ce18294068568ada960f6610ca0e2cd18c7704c7"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Nov 05 13:47:32 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 23 14:07:28 2020 -0800"
      },
      "message": "Prepare openInput() signature to AIDL conversion\n\nThe purpose is to avoid having more than one primitive output argument\nand to avoid in/out arguments.\n\nTest: Audio-related CTS tests from CtsMediaTestCases\nChange-Id: I6bb5dde7956dcca30ed874397f78658d79433202\n"
    },
    {
      "commit": "ce18294068568ada960f6610ca0e2cd18c7704c7",
      "tree": "7c094dd05e524d612cb11a353a0cffc6725f8f0d",
      "parents": [
        "16d8761804e7b98b89306ee91dce6501855c133b"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Nov 04 14:48:01 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 23 14:07:27 2020 -0800"
      },
      "message": "AIDLize createEffect params\n\nAs part of the effort to convert IAudioFlinger to AIDL, converting\nsome of the method arguments to pure AIDL and making their\nsignatures more AIDL-friendly, by avoiding multiple primitive\nreturn value.\n\nTest: Audio-related CTS tests from CtsMediaTestCases\nChange-Id: I720ff197ae5ffd50afa8d23f8fd6f19a2246e974\n"
    },
    {
      "commit": "16d8761804e7b98b89306ee91dce6501855c133b",
      "tree": "2658b659aa294e44a99edd6761ce6b212503a40e",
      "parents": [
        "71109da4e5d4f9c8389c832d72192a3c0d7d04b7"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Nov 03 16:32:36 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 23 14:07:26 2020 -0800"
      },
      "message": "Include the returned IAudio{Track,Record} in response parcelable\n\nIn preparation to AIDLizing IAudioFlinger, having two return values is\ninconvenient. It is also not consistent with most other methods, which\nmostly return status_t. This change puts the returned\nIAudio{Track,Record} in the response parcelable instead of having them\nas separate return values.\n\nTest: Audio-related CTS tests from CtsMediaTestCases\nChange-Id: I97cbec21ca936b4e00e5caa06760ce00922739e8\n"
    },
    {
      "commit": "71109da4e5d4f9c8389c832d72192a3c0d7d04b7",
      "tree": "624899d038a71ee065b133c134052b2fe0d67241",
      "parents": [
        "bdc293ab893eccf33ce7613b25989179154ea982"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Nov 03 15:11:13 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 23 14:07:25 2020 -0800"
      },
      "message": "Make IAudioRecord pure (stable) AIDL\n\nThe MicrophoneInfo type has manual parceling. Converted to AIDL.\nThis required exposing a private method from the AidlConversion module\nas well as making some changes in build files.\n\nAs part of the process, also modernized MicrophoneInfo to use standard\nlibrary types instead of Vector and String16.\n\nAnother thing that\u0027s happening here is that av-headers is now defined\nas a standard Soong module, so that we can list its dependencies.\n\nTest: Audio-related CTS tests from CtsMediaTestCases\nChange-Id: I6d50d411c59987b7d3561f97ee94baa1b306e21d\n"
    },
    {
      "commit": "bdc293ab893eccf33ce7613b25989179154ea982",
      "tree": "c0317fb61f9e022265313b65d142aba68f7b328a",
      "parents": [
        "4106a42ac62f65492583372441bc33a573d411fe"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 02 17:01:38 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 23 14:07:25 2020 -0800"
      },
      "message": "Convert IAudioTrack to AIDL\n\nTest: Audio-related CTS tests from CtsMediaTestCases\nChange-Id: Ia021b9152cf0cb62e3d1999f9c6184601efd2a93\n"
    },
    {
      "commit": "327f089f81418c3462c34d9f74f8683cc73eecce",
      "tree": "d5f79446d84a129d6f16fcb21129763341c68ec5",
      "parents": [
        "cd7ba5171684161e2650093493ff3f707ef23463",
        "b4fed19dd0c7ccbcd476e74ff123165ec315d8dd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 20 18:02:50 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 20 18:02:50 2020 +0000"
      },
      "message": "Merge \"Call getAudioPort to get supported attributes for audio devices.\""
    },
    {
      "commit": "b4fed19dd0c7ccbcd476e74ff123165ec315d8dd",
      "tree": "bd9c475e7ab5b6a7d562bf5b98407af0002ccafd",
      "parents": [
        "b1c141b95ac1d2fb14d371e6dae530a841a13cb4"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Sep 22 14:45:40 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 18 08:43:29 2020 -0800"
      },
      "message": "Call getAudioPort to get supported attributes for audio devices.\n\nGetAudioPort API will return the supported attributes for the devices.\nCall getAudioPort to get the supported attributes for the audio\ndevices so that it is no needed to get supported attributes via\ngetParameters API.\n\nBug: 160352965\nTest: make\nTest: atest audiopolicy_tests AudioPlaybackCaptureTest\nChange-Id: Icdfe76e15066bbff10308d6dfd1cf742da33fec9\n"
    },
    {
      "commit": "d9ef4b1117462ead23dc0d76f2aa86cf633fd2c1",
      "tree": "2341bbd25abd81bf14ec5cd683c31479a3bbbe8a",
      "parents": [
        "9fc004e28df1b1beabf27deb265dc882e0cd2dfe"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 11 15:13:18 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 11 23:20:19 2020 +0000"
      },
      "message": "AudioFlinger: Fix naming broadcastParametersToRecordThreads_l\n\nTest: Compiles, boots, camera video capture\nChange-Id: I8dae31fa5f0e4883981eacdf0b82fa0b6124348d\n"
    },
    {
      "commit": "9fc004e28df1b1beabf27deb265dc882e0cd2dfe",
      "tree": "b4711911f83fc220995b0e071afdbadfdc1758e9",
      "parents": [
        "2ae8676b561497410326efdb64327ee7a392a68c",
        "2607485e8216168f0414cfde43eed98a7e4d68b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 09 19:36:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 09 19:36:49 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: Change timeout for FdToString.\" am: d578bbd330 am: 0210818c13 am: a7805886d5 am: 2607485e82\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1490687\n\nChange-Id: I5ab419436ea3732a889fe5bb24473614ed3a8d96\n"
    },
    {
      "commit": "2ae8676b561497410326efdb64327ee7a392a68c",
      "tree": "8cb6f476ee6f051da6fda4f8cb736bac7fdd3f88",
      "parents": [
        "bb05854b7febdad67778c21ba1fd2091bf07cddd",
        "b1ac89483263297e040914c6bdf30d80a4be8255"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 09 19:36:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 09 19:36:28 2020 +0000"
      },
      "message": "Merge \"Fix signed integer overflow\" am: 9943091884 am: f0292e9014 am: e7e87e61aa am: b1ac894832\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1487116\n\nChange-Id: I1c9e0a57e476926313ffbac0797c72b3630c8082\n"
    },
    {
      "commit": "2607485e8216168f0414cfde43eed98a7e4d68b8",
      "tree": "fa529b65f690f3c6d5361b6b02c275ea4fc4298f",
      "parents": [
        "b1ac89483263297e040914c6bdf30d80a4be8255",
        "a7805886d569c29151104f0be80ed61616c1c8a7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 09 19:21:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 09 19:21:09 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: Change timeout for FdToString.\" am: d578bbd330 am: 0210818c13 am: a7805886d5\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1490687\n\nChange-Id: Icc32d00d2e8b9dafc8f5deaa4975e9266d2fe5cf\n"
    },
    {
      "commit": "b1ac89483263297e040914c6bdf30d80a4be8255",
      "tree": "4ba7cd54af19ab7dcecedb18e8f79794fff07793",
      "parents": [
        "f247c8e91099b818b7ccc85bec950588e3028862",
        "e7e87e61aa96ba774b9fe07d5fd8021eadf9f69c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 09 19:20:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 09 19:20:55 2020 +0000"
      },
      "message": "Merge \"Fix signed integer overflow\" am: 9943091884 am: f0292e9014 am: e7e87e61aa\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1487116\n\nChange-Id: I1db619dc62e89fbd9d00a14c4eb7141e715f16a0\n"
    },
    {
      "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": "f0658f4ed2282f1e73d1bafdd4235d3bc549d65a",
      "tree": "c7e334605bc292fea0690732d7dce35e7142a537",
      "parents": [
        "a38152074c8a326f622d774f3349545246d26c1b"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Oct 26 11:51:14 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Nov 03 16:21:12 2020 -0800"
      },
      "message": "Remove manual parceling from Interpolator and VolumeShaper\n\nCreated stable parcelables to hold all the data that gets parceled.\nReplaced manual parceling with a two-step approach, where we first\nwrite into the auto-generated parcelable, then parcel it.\n\nTest: Ran audio-related CTS tests\nBug: 160253486\nChange-Id: I5a4d51fb1244ed49bcd70e446aaa26e2aa8ed7b1\n"
    },
    {
      "commit": "4dfeb62ade7100e4e830f2e7754b8fba9d1c4179",
      "tree": "fdbc1c83b26d318bc0fddad10c598aa70b57ddc0",
      "parents": [
        "49298c530b34b6d5e0ed2e147956da2d7cdea921"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Nov 02 12:47:30 2020 -0800"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Nov 03 16:21:12 2020 -0800"
      },
      "message": "Convert AudioFlinger create* arguments to AIDL\n\nThis is a first step in AIDLizing IAudioFlinger, where we are\nconverting the in/out arguments from create{Track,Record} to stable\nAIDL and add their respective conversion functions.\n\nBug: 160253486\nTest: atest CtsMediaTestCases:Audio*\n      Manual verification of common playback and recording scenarios.\nChange-Id: Iabb28472aedd90efbba673fb68574876528228df\n"
    },
    {
      "commit": "e8c355b11ff8378f81c711f45139a2b890e737af",
      "tree": "7f897bd895ca2b50f582021ebfbee1af88e1e9fc",
      "parents": [
        "42a46e90c0299f5bc83f3d882f3d211f613a9ad2",
        "3a0cf4747666fd0d38c7b95f3cbaee094ce6b9e8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 03 20:45:00 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 03 20:45:00 2020 +0000"
      },
      "message": "Merge \"Revert \"Call getAudioPort to get supported attributes for audio devices.\"\""
    },
    {
      "commit": "3a0cf4747666fd0d38c7b95f3cbaee094ce6b9e8",
      "tree": "38537e76b2e160c2041098d6e7854b000ebcf451",
      "parents": [
        "3b4270ecbebad2b5c0d6733eee3fb52e1ddb76aa"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Nov 03 17:29:35 2020 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Nov 03 17:29:35 2020 +0000"
      },
      "message": "Revert \"Call getAudioPort to get supported attributes for audio devices.\"\n\nThis reverts commit 3b4270ecbebad2b5c0d6733eee3fb52e1ddb76aa.\n\nReason for revert: b/172307055\n\nChange-Id: Ic22dad674bbd9eee9d3b24308e2a2e964c6406f2\n"
    },
    {
      "commit": "3e0188ff41dd932d2395d3de2d9d736f72930417",
      "tree": "205f1ba5b00f2c888982fb7e6f26a97cbe5b14f3",
      "parents": [
        "5f5c07b599ebc067ef04fe565c8567542127af2d",
        "3b4270ecbebad2b5c0d6733eee3fb52e1ddb76aa"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 02 20:48:40 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 20:48:40 2020 +0000"
      },
      "message": "Merge \"Call getAudioPort to get supported attributes for audio devices.\""
    },
    {
      "commit": "23c292430ce90152d03ceca3cc6b3a678626d854",
      "tree": "50c7728807bbbaf08b26ede890f639cf0ac2b48b",
      "parents": [
        "c9ae6a729ac7dfc87e969bd4693d33287edc0bf1",
        "f33115ddd726e1bb3b76565b7350a49c433afe40"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 26 18:24:08 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 26 18:24:08 2020 +0000"
      },
      "message": "Merge \"Use system/audio to/from string converters in TypeConverter\""
    },
    {
      "commit": "f33115ddd726e1bb3b76565b7350a49c433afe40",
      "tree": "69db6ec5330f39b9ae64cdf65deafe04b404d617",
      "parents": [
        "d6fe406c865072f4d139756a48487d34fed0f07f"
      ],
      "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": "Fri Oct 23 00:04:22 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\n"
    },
    {
      "commit": "78d02237ebe6c90d36dca7b6da5e867ac6295318",
      "tree": "fb81c7a5bacfec08f2d9c4d71f0559a26c95d8e3",
      "parents": [
        "0f243bbaf628bf8aa873e978feb720d3354b476c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 20 01:29:53 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 20 01:29:53 2020 +0000"
      },
      "message": "Revert \"Use system/audio to/from string converters in TypeConverter\"\n\nRevert \"audio: Align lists of enum values between framework and HAL\"\n\nRevert submission 12851233-hal-enum-strings\n\nReason for revert: breaks slider device\nReverted Changes:\nI4f64a8b61:Use system/audio to/from string converters in Type...\nIddaa92bf2:Move enums shared with HAL to audio-hal-enums.h\nIe5896775b:audio: Align lists of enum values between framewor...\n\nBug: 171262726\nChange-Id: I7568c41c5641cf120ffacbfda4751c3bb1c4e4f8\n"
    },
    {
      "commit": "0f243bbaf628bf8aa873e978feb720d3354b476c",
      "tree": "3c065d2ff4b39a12ea3b830e82ada2597e907ece",
      "parents": [
        "e3bca196dbe931f0d7c26394c6224784224da459"
      ],
      "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": "Fri Oct 16 23:00:44 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\nChange-Id: I4f64a8b6164bb5ad94cbf1da1709cb379f4a75fa\n"
    },
    {
      "commit": "10dc0a6f628f2d216ce44ad9a6184af88a0f13d9",
      "tree": "63ef212b4d3c6c99e217f23e6f2fbe07652bc1eb",
      "parents": [
        "29ac42b5105591c64454e06bf81b7b6782e54e81"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 18 11:31:55 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Oct 15 09:12:37 2020 -0700"
      },
      "message": "Convert IAudioFlingerClient to stable AIDL\n\nThis involves creating an AIDL type system to represent all the types\n(transitively) composing audio_io_config_event, as well as back and\nforth conversion between both type systems.\n\nBug: 160253486\nTest: Ran audio-related CTS tests on Sargo.\n\nChange-Id: I230c3d9412cd1f51d41a2faca364c8fd475514bc\n"
    },
    {
      "commit": "3b4270ecbebad2b5c0d6733eee3fb52e1ddb76aa",
      "tree": "863c12584b2c54fc3539bfbb85e29e670a41e740",
      "parents": [
        "29ac42b5105591c64454e06bf81b7b6782e54e81"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Sep 22 14:45:40 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Oct 14 18:19:49 2020 -0700"
      },
      "message": "Call getAudioPort to get supported attributes for audio devices.\n\nGetAudioPort API will return the supported attributes for the devices.\nCall getAudioPort to get the supported attributes for the audio\ndevices so that it is no needed to get supported attributes via\ngetParameters API.\n\nBug: 160352965\nTest: make\nTest: atest audiopolicy_tests\nChange-Id: I6bd109fcb6ffb825cbb9cf539d569e9cad44bb37\n"
    },
    {
      "commit": "55773033ed1f23c4e8f3d2704002fbd0cedbf7a5",
      "tree": "54bc894243fa3c52e611c85aed75ee6677056c13",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "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": "Thu Oct 08 18:12:55 2020 -0700"
      },
      "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\n"
    },
    {
      "commit": "94ca11488f69e684d6b55889e70a427eaabe6604",
      "tree": "ede43b9ed0e15c01e7963b09bd294a982d792d61",
      "parents": [
        "f8701c40e95ec237919884629f0497c0bb504c04"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 07 10:45:20 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 07 10:45:20 2020 -0700"
      },
      "message": "audioflinger: fix wait for media.log service\n\ncommit e2cf8295 disabled media.log service but did not skip binding\nto this service when audioflinger starts which caused a systematic\ntimeout and a 5 second delay in audioflinger start sequence.\n\nBug: 165702394\nBug: 169105682\nTest: SuccessiveBootTest\nChange-Id: I892c2120f290ef52b34d320b281ab8faf2b5b0ea\n"
    },
    {
      "commit": "71389a45ae5e7d3f51bc37b416fcaf0b48193b77",
      "tree": "e1cfb1385850ce27b869137433a32906f94f1ef9",
      "parents": [
        "2e0239dfded6307f5a787ac0a64f2066b8340e7b",
        "1ed46a2c7629040a88abcde9df561e215059171d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 29 00:38:06 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 00:38:06 2020 +0000"
      },
      "message": "Merge \"audio: return accurate frame count when track is flushed\""
    },
    {
      "commit": "2e0239dfded6307f5a787ac0a64f2066b8340e7b",
      "tree": "4d5bce7f68a341b59a0c09049c61fadb8b460602",
      "parents": [
        "1a207dbf25e983845ce47ae04016504a4d092a92",
        "b7d8c5aa7a9c182e695e456c4aea8f8f6c550850"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 29 00:10:23 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 00:10:23 2020 +0000"
      },
      "message": "Merge \"Add getExternalPosition in MMapStreamInterface.\""
    },
    {
      "commit": "1ed46a2c7629040a88abcde9df561e215059171d",
      "tree": "e16bba9dd238408fddfb41b6a0ce020bec67f9d0",
      "parents": [
        "d75c6f06baa045c0f7278bf840550bb475037b5b"
      ],
      "author": {
        "name": "Zhou Song",
        "email": "zhous@codeaurora.org",
        "time": "Mon Aug 17 15:36:56 2020 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 28 15:32:03 2020 -0700"
      },
      "message": "audio: return accurate frame count when track is flushed\n\nTo avoid track frames to be processed early before full filled,\nwhen track is flushed, framesReady should return accurate\navailable frames to avoid putting track into ready state\ntoo early, otherwise silence can be inserted as buffer is\ninsufficient which leads to audio glitch.\n\nBug: 166610318\nTest: see bug, ringtone playback no regression.\nChange-Id: I3b04999a29d85a91b54734514cfa93bc93f55c33\n"
    },
    {
      "commit": "98ab408b41cbaea86106eac85ec361ffbcc246f5",
      "tree": "ff1460860b9cfe9c6df59f0285ae98ef1d8e30eb",
      "parents": [
        "2f0bf51fb362149cfd88d55b93a3a0bb89779e92"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 25 21:46:34 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 25 23:33:15 2020 +0000"
      },
      "message": "audioflinger: only hold wakeLock when started\n\nThe AAudio MMAP streams used to hold a wakeLock from\nthe time they were opened until closed.\nNow it is acquired when the first stream is started\nand released when the first stream is stopped.\n\nThis was tested by creating shared streams using\nOboeTester and write_sine_callback and input_monitor_callback and\nthen adding lots of logs to see when the\nwakeLock was acquired and released.\n\nNote that ~ThreadBase() calls releaseWakeLock_l() so ~MmapThread()\ndoes not need to.\n\nBug: 167345722\nTest: Launch OboeTester\nTest: Tap TEST OUTPUT\nTest: Tap OPEN\nTest: Enter: adb shell dumpsys power\nTest: See no MmapPlayback wakelock\nTest: Tap START\nTest: Enter: adb shell dumpsys power\nTest: See \"ACQ MmapPlayback\"\nTest: Tap STOP\nTest: Enter: adb shell dumpsys power\nTest: See \"REL MmapPlayback\"\n\nTest: atest AAudioTests\nChange-Id: Iad87f5ebd22f20c89699e8b1a75d8df482046360\n"
    },
    {
      "commit": "b7d8c5aa7a9c182e695e456c4aea8f8f6c550850",
      "tree": "8d602524e90bf46e4cbe1e33a71fa472e7998c34",
      "parents": [
        "8dbd241e279e1a637502e38af32ef6ead483768f"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 26 17:24:52 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Sep 23 21:45:29 2020 +0000"
      },
      "message": "Add getExternalPosition in MMapStreamInterface.\n\nGetExternalPosition will return a recent count of the number of\naudio frames presented/received to/from an external observer. Using\nthe new API can return a precise timestamp to client, which can\nhelp on A/V sync.\n\nTest: atest AAudioTests\nBug: 158609200\nChange-Id: If74e1d859a2bb2b4dba6af0e4e9164f05d19d962\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": "18a4b1c31bd8f9df114c1fece02c15a4fcf5579e",
      "tree": "7fa6d6a95b08ee4d8185040ff25dbe87f8aa2c26",
      "parents": [
        "84d711ca7d00aa04dd53db0ed7f0e81e400e35a5"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 17 11:40:42 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Thu Sep 17 19:24:23 2020 +0000"
      },
      "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": "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": "9447b48f36b1bf26645e6256dd29224b6a398161",
      "tree": "62bc6e0895af051df03446dc2c5ecca8dd288d0f",
      "parents": [
        "37e93d1bc4df8b2d9682c48236bb4dae87d6dd1b",
        "d1fa2375194096937bbdfd2def97969c4336191b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Sep 03 00:53:20 2020 +0000"
      },
      "message": "Merge \"audio flinger: handle race condition in AudioRecord creation\" into rvc-qpr-dev am: d1fa237519\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12484593\n\nChange-Id: I5e330127a6ef2efe394b06524af5ae20f01a71bc\n"
    },
    {
      "commit": "2e40c302d6117ec6eb65f25832a71488367b4dfb",
      "tree": "ce2cff004a09076114faabf595b1a116bcb461ff",
      "parents": [
        "054de8d6440fd30238fa9330bcc038cda745b244",
        "924eccfd6f6d3aaed5db627a0bdcfcaaf9b09a18"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 08:38:54 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 21:23:54 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: Ie94127c1e981cb18671d5137ba0d39355d1353da\nChange-Id: Ib22ad33bda8d561af537499b6d31ab6134eeae02\n"
    },
    {
      "commit": "717bc28fc5959c0edb2bbd86692ba5164893f719",
      "tree": "9f55d492e1032f4224dc3420345868cf8d613456",
      "parents": [
        "0b3f254028404b4772e02f9d1cdfcefba0e264b4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:10:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 28 22:51:36 2020 +0000"
      },
      "message": "audio flinger: handle race condition in AudioRecord creation\n\nA rare race condition can cause a failure to create an AudioRecord if\ntwo creation requests are processed concurrently and thread preemption happens\nat a specific time within the sequence between audioflinger and\naudio policy manager.\n\nThis CL implements a retry mechanism on client side when this particular failure\nis detected.\n\nBug: 161656190\nTest: Regression tests for audio capture use cases.\nTest: CTS tests for AudiRecord\nChange-Id: I155ee4899baeec21e10a1141cb9e323cbc8aa23b\n(cherry picked from commit d52a28ca2c19db7d10bc6c4639a8bd78e1afd5f1)\n"
    },
    {
      "commit": "b8a9dbbf791adf7f1a0ab87d7a35770074e88cc8",
      "tree": "a2f91436efd8587def9e765d333387fed6a03b7f",
      "parents": [
        "763136770b0bb6828cf7628a9b3bbf09b0741ae2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 27 04:12:26 2020 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 27 04:12:26 2020 +0000"
      },
      "message": "Revert \"Snap for 6793014 from 424180bdc4aa18249e678daebfd0fcf936...\"\n\nRevert \"Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d148e6e...\"\n\nRevert \"Snap for 6793014 from 7594ec6384c4da320726def34f477736f9...\"\n\nRevert \"Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c4223e1d0...\"\n\nRevert \"Snap for 6793014 from 44725f06b7f7d6407b5ee82d989bdd6c7a...\"\n\nRevert \"Snap for 6793014 from f22ad3164937a8f2e309965c102b6366d5...\"\n\nRevert \"Snap for 6793014 from 11467102abddb6026aaa164c1361439c2d...\"\n\nRevert \"Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5f7ae65...\"\n\nRevert \"Snap for 6793014 from f2989f9c65556d5155dbd57f82f0c93a16...\"\n\nRevert \"Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab1222ffd6...\"\n\nRevert \"Snap for 6793014 from 3777d883a3857b1a1589181c436d9018d7...\"\n\nRevert \"Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528460c8b...\"\n\nRevert \"Snap for 6793014 from a43295d1825da62af038d345a7a861ed7a...\"\n\nRevert \"Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb386109...\"\n\nRevert \"Snap for 6793014 from d0e31526c62b2aeb35c293ac96feb180fc...\"\n\nRevert \"Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376efabd2...\"\n\nRevert \"Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293b79684...\"\n\nRevert \"Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57a8e7d5...\"\n\nRevert \"Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aad87a67...\"\n\nRevert \"Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24af9964...\"\n\nRevert \"Snap for 6793014 from 14cb57e107a3abce8b14937b1f92c28d18...\"\n\nRevert \"Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc03a606...\"\n\nRevert \"Snap for 6793014 from 8c65adad0bcdfb3acc561063b4048dca24...\"\n\nRevert \"Snap for 6793014 from b3061942700265e2bf04af9997775dcbbb...\"\n\nRevert \"Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd0ac3be...\"\n\nRevert \"Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec70d8da6...\"\n\nRevert \"Snap for 6793014 from 988d4244914e0c749655e8cb6db18ba44f...\"\n\nRevert submission 12465146-release-request-6b259cbc-1f45-4b05-bc7e-c9b893b79d68-for-git_main-busytown-release-6793014\n\nReason for revert: b/166531456\nReverted Changes:\nI5ff7a6c0d:Snap for 6793014 from f2989f9c65556d5155dbd57f82f0...\nI77bdff943:Snap for 6793014 from a43295d1825da62af038d345a7a8...\nI2ac5c520a:Snap for 6793014 from c3f124cca05579acf0a6cb589ebd...\nI023b9702f:Snap for 6793014 from 98756d6d3e2bb0ba28eb125caa7a...\nIbc7893d72:Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d...\nIc27847bee:Snap for 6793014 from 8c65adad0bcdfb3acc561063b404...\nIf20bc9352:Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376...\nI6542d17e8:Snap for 6793014 from 3777d883a3857b1a1589181c436d...\nI66e6bb8a9:Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab12...\nI3cd190b6b:Snap for 6793014 from 424180bdc4aa18249e678daebfd0...\nIf92db7402:Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc...\nIaced03c87:Snap for 6793014 from d0e31526c62b2aeb35c293ac96fe...\nI5d28c6b4b:Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aa...\nI30d07bea3:Snap for 6793014 from 7594ec6384c4da320726def34f47...\nI473205f48:Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd...\nI0656b41af:Snap for 6793014 from 44725f06b7f7d6407b5ee82d989b...\nI0f9796067:Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec7...\nI9a38cda8f:Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb...\nI876a82f51:Snap for 6793014 from 11467102abddb6026aaa164c1361...\nI749d7d023:Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293...\nI038daea41:Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24...\nI47aa3131c:Snap for 6793014 from 14cb57e107a3abce8b14937b1f92...\nI32dba8a95:Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528...\nI2ebc9f9db:Snap for 6793014 from 988d4244914e0c749655e8cb6db1...\nIae7c3370f:Snap for 6793014 from 9ffb8852294e06e2d387dc1fb868...\nI6467a7f1b:Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57...\nI8c6375203:Snap for 6793014 from b3061942700265e2bf04af999777...\nI843b2e1f3:Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5...\nIe254f7079:Snap for 6793014 from f22ad3164937a8f2e309965c102b...\nI01e0974ed:Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c42...\n\nChange-Id: I00c786b898b73e58db8bcb1dd0cf3fdaa1ae3038\n"
    },
    {
      "commit": "d52a28ca2c19db7d10bc6c4639a8bd78e1afd5f1",
      "tree": "c687eda00e2c45823cdb1857c64ad48b67578819",
      "parents": [
        "615364792b6fe07869c685e4bccbf7837e1ba97b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:10:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 25 13:33:12 2020 -0700"
      },
      "message": "audio flinger: handle race condition in AudioRecord creation\n\nA rare race condition can cause a failure to create an AudioRecord if\ntwo creation requests are processed concurrently and thread preemption happens\nat a specific time within the sequence between audioflinger and\naudio policy manager.\n\nThis CL implements a retry mechanism on client side when this particular failure\nis detected.\n\nBug: 161656190\nTest: Regression tests for audio capture use cases.\nTest: CTS tests for AudiRecord\nChange-Id: I155ee4899baeec21e10a1141cb9e323cbc8aa23b\n"
    },
    {
      "commit": "36f99424e9904b39adeb193273083db176ce9fd9",
      "tree": "97d8da35c94cb518b8d4101ea80759782f2283e6",
      "parents": [
        "8243e247a783059f9a64468186ee04d32a5e9e01",
        "9289bde5b9583a8c757bed4041238649aa146378"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 21 00:55:39 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 21 00:55:39 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: Check Effect HAL version for device effect compatibility\""
    },
    {
      "commit": "f1a36052bf6c752cec6b60bec058971765bdfa7b",
      "tree": "c0704722e3353375e96e636be4577e64cd2065aa",
      "parents": [
        "4a603cd0594d22d1a3a2bae5bb22009343d4b5bb"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 19 14:33:31 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 19 14:33:31 2020 -0700"
      },
      "message": "Use ALOGD when fails setting event callback.\n\nThe codec changed callback is not mandatory. In that case, it is not\nconsidered as error when fails setting event callback. Use ALOGD instead\nas the information will be useful to debug codec changed event.\n\nBug: 165629960\nTest: make\nChange-Id: I077c7a75acfb474344cd278394a778176471f224\n"
    },
    {
      "commit": "aa8b2aae0c59c40a629e1cd7fa0237d5034a41d6",
      "tree": "16ae59a774c5719bd1d398e9ce36a95c63d4c557",
      "parents": [
        "f266417b07eb474887b3b9cdb6f45631764305ee",
        "d4d9157853bf7516c778060702646b482d1c7e86"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 18 23:55:58 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 18 23:55:58 2020 +0000"
      },
      "message": "Merge \"audioflinger: Remove effect from hal before closing.\" am: c961cd4d0c am: 7e5965b810 am: 52148b83c5 am: 0cc7be8802 am: d4d9157853\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1403449\n\nChange-Id: I1ef5f4e1600eda4f5ec0c92c4c24525f7de755ce\n"
    },
    {
      "commit": "52148b83c5c6e7b038b9a35d690f49e1ca0b4a3c",
      "tree": "7b0dcffd8bb82151eda2b9372381dfe31da7ad63",
      "parents": [
        "f34e99d5c0042c53ce21435e5800c33beec333a3",
        "7e5965b8103dff4297bcdb4b294db7cbcf8b2fe1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 18 23:12:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 18 23:12:20 2020 +0000"
      },
      "message": "Merge \"audioflinger: Remove effect from hal before closing.\" am: c961cd4d0c am: 7e5965b810\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1403449\n\nChange-Id: I912ba6b721ff8495566b8ba177a3eaa883f771a3\n"
    },
    {
      "commit": "9289bde5b9583a8c757bed4041238649aa146378",
      "tree": "a274b597596e4da75b37b1d7d54dbccb19f9202e",
      "parents": [
        "242cf3379de223e0ae5c9ceeba05e6a397b44e2d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 12:49:17 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 14:50:44 2020 -0700"
      },
      "message": "AudioFlinger: Check Effect HAL version for device effect compatibility\n\nAdd missing check on Effect HAL version to determine if an\nimplementaiton supports device effects. Only HALs after V 6.0\nsupport this feature.\n\nBug: 164077570\nTest: atest DeviceEffectTest#testCreateDeviceEffect\nChange-Id: I9a72ed92a07099e9bad10cdf4474c7b918dce121\n"
    },
    {
      "commit": "ed8688022959f9ef137be1b476fb8730be82a7dc",
      "tree": "8c0baddb4e3430d2b4e9b64f25d2c5d9cb00d50a",
      "parents": [
        "7a0123c6e62870f3a3e4ae9daa625e1a2a78d30c"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "jaidshar@codeaurora.org",
        "time": "Fri Aug 07 14:09:16 2020 +0530"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Aug 18 20:44:57 2020 +0000"
      },
      "message": "audioflinger: Remove effect from hal before closing.\n\n- For non pinned effects, when the handle is removed the effect interface\n  is closed, but this leads to not resetting the state of hal effects.\n  Don\u0027t close the interface from here, as it will be handled in\n  subsequent removeEffect_l.\n\n- Clean up code related to removeHandle_l.\n\nCRs-Fixed: 2746289\nBug: 163285058\nTest: Solo tester with effects\nChange-Id: I2a9b35f5f73e535afd4fe77823b9a8ba16271685\n"
    },
    {
      "commit": "7c11c55958faf7fadcf0ec504c6679d8febcb158",
      "tree": "556c8e09feafcc3af9612f374ad891cb5fd59a25",
      "parents": [
        "d100fa2bca15d10766c414e9449fd3aa1a7f50b7",
        "9cd898172de61db05bc49b93d5d8f822bc2fa6f5"
      ],
      "author": {
        "name": "Ytai Ben-tsvi",
        "email": "ytai@google.com",
        "time": "Tue Aug 18 16:41:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 18 16:41:31 2020 +0000"
      },
      "message": "Merge changes from topic \"manual2aidl\"\n\n* changes:\n  Convert IEffect and IEffectClient to AIDL\n  Add a standardized shared memory type\n"
    },
    {
      "commit": "d100fa2bca15d10766c414e9449fd3aa1a7f50b7",
      "tree": "2ec18904f6b783f54d80f19fb385395a0da7a654",
      "parents": [
        "1d9dfee75d919d40de395c01dab67590a1b15807",
        "706442716f0a40181e571df1b33dd9d91a852d63"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 18 16:17:07 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 18 16:17:07 2020 +0000"
      },
      "message": "Merge \"Remove ununsed #include.\" am: 62eef9adb8 am: 34a6953ffd am: 98749a0c37 am: 9cb4734a38 am: 706442716f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1402731\n\nChange-Id: I6f1868705eab25d4c893093142798c6c84da41d9\n"
    },
    {
      "commit": "98749a0c37174d8a87a88419876d0c426df4c2df",
      "tree": "1110646c4dbda36b4af21a462f7fc1304626f7df",
      "parents": [
        "f917fa30ab27632ec006ea52165fb7fd30a93349",
        "34a6953ffd6a7e92426583353f52b5ee33b16c64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 18 15:32:04 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 18 15:32:04 2020 +0000"
      },
      "message": "Merge \"Remove ununsed #include.\" am: 62eef9adb8 am: 34a6953ffd\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1402731\n\nChange-Id: I32671d6c81abfe709ee04524e7c636c9803932b5\n"
    },
    {
      "commit": "18d1ffa0188938f20f7d0f8385401049427311c8",
      "tree": "be3e96af9fbdbcc2b1cbc3780325a55b263d198e",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 17 15:58:01 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 17 15:58:01 2020 -0700"
      },
      "message": "Remove ununsed #include.\n\nThe header isn\u0027t useful anyway --- new code should just use\nstatic_assert directly.\n\nTest: treehugger\nChange-Id: I85fd0271870342dafea5c33b8df07d8d2c5371d9\n"
    },
    {
      "commit": "9cd898172de61db05bc49b93d5d8f822bc2fa6f5",
      "tree": "6e84e9f40da4f9d9c4a6e3517d7c6b951fd83492",
      "parents": [
        "37934a22fc6159c2cae85fc5b877424d5bf38628"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Wed Jul 01 17:12:06 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Aug 17 11:19:20 2020 -0700"
      },
      "message": "Convert IEffect and IEffectClient to AIDL\n\nThis change replaces the manually-parceled IEffect and IEffectClient\nwith AIDL definitions.\n\nIn addition, this includes a small library that facilitates shared\nmemory regions over AIDL.\n\nBug: 160253486\nTest: Ran effects-related CTS tests. Manual verification of basic\n      audio functionality on Sargo.\n\nChange-Id: I5a9c5f2f24c10072ad5067acc71aa30581af41c1\n"
    },
    {
      "commit": "c9c49cdffb5c344d3ed81f3b4f9575d5b93b83e1",
      "tree": "6edf6d93a7a67eeefe765aa1e1b58097fd13baa2",
      "parents": [
        "6559924d9f035c5707a2a2de0d415cd463e4c831"
      ],
      "author": {
        "name": "yucliu",
        "email": "yucliu@google.com",
        "time": "Mon Jul 13 16:25:21 2020 -0700"
      },
      "committer": {
        "name": "Yuchen Liu",
        "email": "yucliu@google.com",
        "time": "Thu Aug 13 19:08:20 2020 +0000"
      },
      "message": "Add flag DIRECT to track flags for track running on DirectOutputThread\n\nIf the playback thread is DirectOutputThread, add\nAUDIO_OUTPUT_FLAG_DIRECT to the track\u0027s flags. This allows HAL to\nreceive `Flush`, as well as many other control signals, when client\nsends the commands.\n\nBug: 111196161\nTest: On device\nChange-Id: I48fae1e05cfb7aabf53a050c72ec78d18e478b0a\n"
    },
    {
      "commit": "0a488938fa1c1b2b0c02b1c101281c01ff8ed103",
      "tree": "4686aa2bca38cccbbc572bbb75a2bd82d2b9153b",
      "parents": [
        "6a02d53b76d0a3ccb234a3e3d56318883cadd733"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 07 17:32:40 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 12 16:19:35 2020 -0700"
      },
      "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\n"
    },
    {
      "commit": "207254fe39fd9687b206773148dbdd69cfcabd33",
      "tree": "73596b06fb83f3625ad05770c154cc0611f58cf6",
      "parents": [
        "080c5d4dcc68d65408022f50db2214637db8f995",
        "9585fa95cc06988974c10e569f2990b62373efec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 22:04:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 22:04:09 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07 am: 385de9f023 am: 89d9e3f30d am: 9585fa95cc\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: Id28762b6c03511760623e4314523db384aff9702\n"
    },
    {
      "commit": "385de9f0230a72bd8f72dc650f0e483ff3895a8b",
      "tree": "95a5fac3e2a0b2c5924e827a7b2f5d2f9d593913",
      "parents": [
        "3ece0964200c8e0e7c3aa371dd8a47ce578bdf22",
        "588d9b1c07ec0363b6bfaf982f00afd1ba35bd68"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 05 21:00:37 2020 +0000"
      },
      "message": "Merge \"Update OWNERS\" am: 8e2fbf6665 am: 588d9b1c07\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1391639\n\nChange-Id: I92ce762ac562acd9c2c6c420761111f6ae14ce0f\n"
    },
    {
      "commit": "2c7d0d39443ac8e64987d3a73a6d8b20da1ed807",
      "tree": "e8a2a325299fa4b9024ca8fbbd07af9129f99daa",
      "parents": [
        "70e96c8d72768b76314a77a7d7b37157fb7f1ae4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 15 14:18:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 05 10:04:47 2020 -0700"
      },
      "message": "Update OWNERS\n\nTest: N/A\nChange-Id: I2d34e3c05e99191ae1d95fd3c5e6557c2b982965\n"
    },
    {
      "commit": "660609e595150aa988b8f92a9841626f407ba900",
      "tree": "b7e96a3dd25d10d1a60c6e77cea9200d37adeb64",
      "parents": [
        "7f1fd94d88517edf0d304b1ef30f50901b50842e",
        "9dae45838b759b4d23df36a7a707890c85b38689"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Tue Aug 04 04:21:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 04 04:21:39 2020 +0000"
      },
      "message": "Merge \"Update language to comply with Android\u0027s inclusive language guidance\" am: 97937ef8f2 am: fa47739ebe am: 2a9274cd2c am: e98479eb76 am: 9dae45838b\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1385922\n\nChange-Id: I680cc43da8a4d19ac1f9bd8bf6b14489395bc223\n"
    },
    {
      "commit": "2a9274cd2c815d9992527f7b8a4c1d75cc372057",
      "tree": "bde10f8015bbee45ba8d139117e8350abb0946c4",
      "parents": [
        "7c9913d5d5a35242a617ccb82ba4659e777ee007",
        "fa47739ebe4049c51f01b5e86ab40204cf1a27fd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Tue Aug 04 03:07:41 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 04 03:07:41 2020 +0000"
      },
      "message": "Merge \"Update language to comply with Android\u0027s inclusive language guidance\" am: 97937ef8f2 am: fa47739ebe\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1385922\n\nChange-Id: I387370424b74c3414cad6796bdf311577c47fe91\n"
    }
  ],
  "next": "a2f59b339b498d38224cb807782f0b59d4378e91"
}
