)]}'
{
  "log": [
    {
      "commit": "36614d635f0f37f3b7b5798cec8f08e6b750c346",
      "tree": "ea342db8f2fed6c9066aa01cd586654ad6a643f5",
      "parents": [
        "2e051d4358dd624902ed38e080c57cb1730eaba2"
      ],
      "author": {
        "name": "Nate Myren",
        "email": "ntmyren@google.com",
        "time": "Tue Mar 16 13:56:33 2021 -0700"
      },
      "committer": {
        "name": "Nate Myren",
        "email": "ntmyren@google.com",
        "time": "Tue Mar 16 22:19:23 2021 +0000"
      },
      "message": "Ensure AAudioStreamBuilder handles null strings\n\nMake sure that a null char* is converted to an empty optional, rather\nthan crashing due to a bad std::string constructor\n\nFixes: 182808263\nTest: atest android.nativemedia.aaudio.AAudioTests\nChange-Id: Ib3ff552b31dcdc52df56775d0d72c1f726b083de\n"
    },
    {
      "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": "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": "39b41a0be10742e03994fef5912c59178888ae4b",
      "tree": "586e50e70ef1b0a90332e626554d3b85a8eefb6a",
      "parents": [
        "445b895828747b82170610a75598a0615025918c",
        "400f056d8576a514e0ada95621dc70eb1a918f4c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 25 23:20:00 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 23:20:00 2021 +0000"
      },
      "message": "Merge \"AAudio: enable playerIId metrics tracking\" 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": "400f056d8576a514e0ada95621dc70eb1a918f4c",
      "tree": "7a312cc7bdd591945da5a2faa9bed53ce5f47c42",
      "parents": [
        "4d416da50f69b75889eab10a1c08f4e0ed7ed7f0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 24 22:18:24 2021 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 25 10:09:42 2021 -0800"
      },
      "message": "AAudio: enable playerIId metrics tracking\n\nTest: oboetester (AudioTrack, OpenSLES, MMAP)\nTest: adb shell dumpsys media.metrics\nBug: 181237723\nChange-Id: Ie395de4d748577ec55213eda165e9bb6edf2a681\n"
    },
    {
      "commit": "c742e4790b282228f843036d15de53e974b745a6",
      "tree": "4a8146227070567d22a37cedd74f3e488dd2caf7",
      "parents": [
        "4afffeee70adc93a194f8a2bb6e26eea9e7c726f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 23 19:58:40 2021 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 23 19:58:40 2021 +0000"
      },
      "message": "aaudio: warn if a callback stream is written to\n\nA developer asked to raise this to a warning.\n\nTest: atest AAudioTestCases\nBug: 180966396\nChange-Id: I1f5d80bbd06c5ec26029f3853a70dbab3ae1e1b3\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": "25521834a63d67308520da5bced97ed517a30a72",
      "tree": "6c0a1772dfe1f0446bde45a5dd270f62867e148f",
      "parents": [
        "578a36a1faec11902f4b17adf54c85be36909b1a",
        "419312541747dc19d37c23f8e65fdf0650f7c83e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 08 15:47:39 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 08 15:47:39 2021 +0000"
      },
      "message": "Merge \"PlayerBase: add audio session ID\" into sc-dev"
    },
    {
      "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": "419312541747dc19d37c23f8e65fdf0650f7c83e",
      "tree": "49f4b46aa9086e6eff6c062fd4e6a41df212a04f",
      "parents": [
        "cae5cfeec692122de08836ee25c9e559d4a20ea8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 29 20:40:35 2021 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 05 14:50:12 2021 +0100"
      },
      "message": "PlayerBase: add audio session ID\n\nAdd the audio session ID to the information returned by the PlayerBase\nclass to AudioPlaybackMonitor via trackPlayer().\n\nBug: 178909700\nTest: atest AudioPlaybackConfigurationTest\nChange-Id: I515379ae2992f2a59245d0fedd7e2e9c85cb8566\n"
    },
    {
      "commit": "7b5bb80102ed292228be75bd286ae49943e2efc7",
      "tree": "c42d7e8192a376781778532afca76d8d92199080",
      "parents": [
        "00d0e6d91a3e3824dec51db5ea37452b6f1eefee",
        "65418ca21ad7dc9a7d2ea4c9f3f30429f61c9684"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 21:02:26 2021 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 21:02:51 2021 +0000"
      },
      "message": "resolve merge conflicts of 65418ca21ad7dc9a7d2ea4c9f3f30429f61c9684 to sc-dev\n\nChange-Id: Ie3707fcccec5608b9cec30a2d1aa57b76915882e\n"
    },
    {
      "commit": "65418ca21ad7dc9a7d2ea4c9f3f30429f61c9684",
      "tree": "4053fddb2070c1fd1a70323ee87d381a3206a813",
      "parents": [
        "d7f69244e8d540e909c4dd66e5b804dca5a49c52",
        "6705fb855118b651f73d210e1301bf80b0ada008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 04 20:17:34 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 04 20:17:34 2021 +0000"
      },
      "message": "Merge \"Remove __ANDROID_API__ #if checks.\" am: f33bbd5cf0 am: 6705fb8551\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1561118\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Iad8b4b4ef1d0df2ca60ac2ec70bde6c47a7510e2\n"
    },
    {
      "commit": "81fc8593d7aa1ee1692242fa9998dd40eac70438",
      "tree": "bb28038502f0b741bc0f04f870dbca92928f1959",
      "parents": [
        "38b2948cbc9922915c838cbe5222d071949f49d4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 26 16:45:07 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 01 20:45:16 2021 +0000"
      },
      "message": "Remove __ANDROID_API__ #if checks.\n\n__INTRODUCED_IN() does the right thing automatically now.\n\nBug: http://b/178449269\nTest: treehugger\nChange-Id: I9c0776bb4868f7f6a083dd52ca7ebedfffcc8f4c\nMerged-In: I9c0776bb4868f7f6a083dd52ca7ebedfffcc8f4c\n"
    },
    {
      "commit": "515eb097f268fcec3fde3b9ef93f55b87d30d395",
      "tree": "d379f9f462711528493d00f3c1da354e96c73910",
      "parents": [
        "40e3a7a239895c1407eb420f19e85d091d2d785b"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 18 17:55:52 2020 -0800"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Jan 27 22:00:23 2021 +0000"
      },
      "message": "MediaMetrics: Collect report for aaudio stream\n\nTest: adb shell dumpsys media.metrics\nTest: statsd_testdrive\nBug: 171345744\nChange-Id: I71f5ab0d80334c26ac709df9853fcded4a519ab7\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": "e0414ecf3d1184c3063b176a8438031958eb62e4",
      "tree": "53e04b0cfd37b2c9d415942c4044f9758cc5744f",
      "parents": [
        "ffb5d0b938ea4043562681285b2dfaca53970840"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 22 20:40:07 2020 +0000"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Jan 05 14:51:43 2021 +0000"
      },
      "message": "Revert \"Revert \"Added device info playback config for native pla...\"\n\nRevert^2 \"Added update device info playback configuration\"\n\n51bb4b487f2079ca44ef862d69d271ea5d8b457d\n\nBug: 176043355\nTest: atest android.media.cts.AudioPlaybackConfigurationTest\nChange-Id: I1cddef04cf6c0c9202a012e6fd1d109f6addeb97\n"
    },
    {
      "commit": "ffb5d0b938ea4043562681285b2dfaca53970840",
      "tree": "2462d009fb188f4757a3aedc10cefc5d4086e69f",
      "parents": [
        "6f183190ea3d20d0520c3892fd27791124eff4e5"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 22 00:51:59 2020 +0000"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 22 00:51:59 2020 +0000"
      },
      "message": "Revert \"Added device info playback config for native players\"\n\nRevert \"Added update device info playback configuration\"\n\nRevert \"Added update device info playback configuration\"\n\nRevert \"Added audio playback configuration CTS test\"\n\nRevert submission 13138779-device_id_push_work\n\nReason for revert: Breaking device tests, see b/176043355\nReverted Changes:\nI859d33a4a:Added update device info playback configuration\nIcbd1d430b:Added audio playback configuration CTS test\nI4a8409d95:Added device info playback config for Open SL ES\nI365bafc95:Added update device info playback configuration\nI802269fea:Added device info playback config for native playe...\n\nChange-Id: If0a308651b64065a472c7a99cbd3f6de14161878\n"
    },
    {
      "commit": "6f183190ea3d20d0520c3892fd27791124eff4e5",
      "tree": "53e04b0cfd37b2c9d415942c4044f9758cc5744f",
      "parents": [
        "34888673a01ecb7334941808fa0f78a62d9e8f78"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Mon Nov 30 11:20:33 2020 -0800"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Tue Dec 15 17:41:43 2020 -0800"
      },
      "message": "Added device info playback config for native players\n\nAdded mechanism for updating playback configuration for native players.\n\nBug: 156790437\nTest: play audio see audio configuration changes\nChange-Id: I802269feadae6f93aac36a7c4b4086f77d25328f\n"
    },
    {
      "commit": "577e477d239bd5e1de58490b7d95caa418fa8fa7",
      "tree": "eac6f10ac2d7443e05e067057fd70bca2fc2606c",
      "parents": [
        "1500df4a331bc4afc7628743b75b3c2dc22cbafb",
        "1131b6eff47dc3da719015794e0f3d94601c9eb2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Dec 13 04:51:38 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Dec 13 04:51:38 2020 +0000"
      },
      "message": "Merge \"Audio Aidl: Update binder::Status return code handling\""
    },
    {
      "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": "4c67ca9a6427499e14405634a3dfd62914b07e55",
      "tree": "b130c940a0fe9540b8855497bc22a9b3f167ed45",
      "parents": [
        "9b95dd2f7e88bd1ddaf5b765ffe7845cabe6edbc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 10 13:24:50 2020 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Dec 10 13:24:50 2020 -0800"
      },
      "message": "Updates libaaudio_headers to use shared_libs\n\n... as being able to use cc_library in header_libs is not\nintended.\n\nBug: 173252016\nTest: m checkbuild\nChange-Id: I81996a76525f5b42cd079e5a76ec340731656137\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": "9abebbaebcaaa09e98fd1d966289032406089521",
      "tree": "7126439c267d64cdc59a062cdb7a040f2f28ec09",
      "parents": [
        "5ffb3ef0be0aff54df6b554e5c78c598c4a5ce55",
        "a69f0713ab8ae25a7323773c97dfe707c34acdda"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter am: dc6be0d575 am: a69f0713ab\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515658\n\nChange-Id: I7a32469c35e17c15bb5d147fcac930eef04c14ff\n"
    },
    {
      "commit": "f74b8a59c3ef78654b9ca42e3d63a1b66e184e2a",
      "tree": "4c674388124bbfbfebc3e9c3ae2f3963f255a7dd",
      "parents": [
        "e80bee84eab70271ac3309301fb432ce10663eca",
        "fff9c8aa87a7c03e063cf6adeb4c63b895b6d145"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 02 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 02 14:29:10 2020 +0000"
      },
      "message": "Merge \"aaudio: use strong pointer to protect callback\" into rvc-qpr-dev am: fff9c8aa87\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/13150716\n\nChange-Id: I03ef28890bf44e5ee07d600e7c011693369e3a68\n"
    },
    {
      "commit": "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": "f2d8470b1c8efe422f73adf682e7858810d7fa4a",
      "tree": "7277bc73082c1a200acf96ae779923467198bb11",
      "parents": [
        "763b935ef71fbe678d9c402b2c9f6cbefbdb68f6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 12 23:42:30 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 01 12:43:19 2020 -0800"
      },
      "message": "aaudio: use strong pointer to protect callback\n\nHold a strong pointer to the AudioStream so it cannot get deleted while\nthe MMAP callback is running.\n\nAlso fixes disconnect for shared streams, which was broken\nby a previous attempt to fix b/166877425\n\nBug: 166877425\nBug: 170551030\nTest: see bug for details\nTest: atest AAudioTestCases\nTest: OboeTester V1.5.30 or later, \"TEST DISCONNECT\"\nChange-Id: I236e2d68632070d253d14ddf7b9d7076e068830a\nMerged-In: I236e2d68632070d253d14ddf7b9d7076e068830a\n(cherry picked from commit e358ec63eedd7a6289984b1f2468c5c16c2ff6c8)\n"
    },
    {
      "commit": "8e654fb2bde447d96ffe40edf339fb12a83bafc7",
      "tree": "63d1de06e932b7d5850a2dbe79b2a98e3f795d24",
      "parents": [
        "ef888a66e6fc1013af4b24fed98f48dfb462ef01",
        "c410c10dfa725baf4307312d6c8abd8af02df3c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 18:08:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 01 18:08:52 2020 +0000"
      },
      "message": "Merge \"Convert mask types from uint32_t to enum type\" am: 7cd031828f am: c410c10dfa\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1510515\n\nChange-Id: I90c3487ebb936f37eb92bf862205c9bdb5eb1d09\n"
    },
    {
      "commit": "e723140182bfecd63b2dc54fa938625ffdac61be",
      "tree": "619c202cea311f832ce8c3cb14c63d0a32faa65a",
      "parents": [
        "f56e1e4b658e9a40dfb5b20a1c8c58ea376f0921",
        "b658630dc13fb78ec74415b38044eb4c8a466929"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 30 19:35:25 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 30 19:35:25 2020 +0000"
      },
      "message": "Merge \"aaudio: test 24 and 32 bit formats\""
    },
    {
      "commit": "0cb1b54deb1d8de8177b2c38a1b923050a7a3274",
      "tree": "c3f10527507a074e1a4073d6f85aa5c7ff7e57b0",
      "parents": [
        "c94cf48d3220337bd780230d2ebba0b84f257e0b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 25 01:01:18 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 25 01:01:18 2020 +0000"
      },
      "message": "aaudio docs: Explain callback threads a bit more.\n\nThis was in response to a question by a developer on GitHub.\n\nTest: just a comment change\nTest: atest AAudioTestCases\nChange-Id: I1677738e376c637c0a51a86a1c0491565b26b24b\n"
    },
    {
      "commit": "b658630dc13fb78ec74415b38044eb4c8a466929",
      "tree": "030897d28c34ab29dfe72b95b8d9ff1ab12ccecf",
      "parents": [
        "c94cf48d3220337bd780230d2ebba0b84f257e0b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Nov 12 20:18:00 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 25 00:48:21 2020 +0000"
      },
      "message": "aaudio: test 24 and 32 bit formats\n\nModify write sine tests.\n\nBug: 75038760\nTest: adb shell write_sine_callback -f3\nTest: adb shell write_sine_callback -f4\nChange-Id: I61eccbffbf898e50ee241e135d21acebb6a63524\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": "04e805b0a206161d3913b2c675d2d110c4f21f0f",
      "tree": "4e20d50ae5dd1f1a82cd0e5fa7407b18dc55fd8d",
      "parents": [
        "bb29fdf9ae85ae6394e691ce38dafbfaa0411ff6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 27 09:13:53 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Nov 19 14:52:58 2020 +0000"
      },
      "message": "aaudio: add support for 24 and 32 bit PCM\n\nAdd new formats: AAUDIO_FORMAT_PCM_I24_PACKED\nand AAUDIO_FORMAT_PCM_I32.\n\nPass formats to Legacy AudioTrack and AuddioRecord.\n\nRequest 24_PACKED in AAudio Service for MMAP streams.\nAlso add a flowgraph module for converting the I32 data\nto/from FLOAT.\n\nBug:  65067568\nBug: 157671580\n\nTest: To determine which format the MMAP path is using for the DSP,\nTest: adb shell dumpsys media.aaudio\nTest: then look for the \"Exclusive MMAP Endpoints\" and \"Format:\".\nTest: The formats listed are the internal AudioFlinger formats:\nTest:    1\u003d16_BIT, 3\u003d32_BIT, 4\u003d8_24_BIT, 5\u003dFLOAT, 6\u003d24_BIT_PACKED\n\nTest: atest AAudioTestCases\nTest: adb shell write_sine_callback -? # to list new formats\nTest: adb shell write_sine_callback -pl -f3 # MMAP LOWLAT I24_PACKED\nTest: adb shell write_sine_callback -pl -f4 # MMAP LOWLAT I32\nTest: # Legacy LOWLAT I24_PACKED\nTest: adb shell write_sine_callback -pl -f3 -m1\nTest: adb shell write_sine_callback -pl -f4 -m1 # Legacy LOWLAT I32\nTest: adb shell write_sine_callback -pn -f3 # Legacy I24_PACKED\nTest: adb shell write_sine_callback -pn -f4 # Legacy I32\nChange-Id: Ibe13bfd54425d110f50f89eb10c63872a2f99839\n"
    },
    {
      "commit": "a0983dbcc94be77d6eb1ff4d3e609f9dc8a55eb3",
      "tree": "b0c3f95adf890f9d0eaffd7628df32798f312310",
      "parents": [
        "3e0188ff41dd932d2395d3de2d9d736f72930417",
        "0bd745eb91487821ce415272fb49a567483bde43"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 02 23:40:53 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 23:40:53 2020 +0000"
      },
      "message": "Merge \"aaudio: add thread safety annotation\""
    },
    {
      "commit": "0bd745eb91487821ce415272fb49a567483bde43",
      "tree": "2b3f952b01ea3dfa680317fd50a8e8db65ad45ce",
      "parents": [
        "11b45e9f0a31783c7fa1d28281a489dfe47a9982"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Oct 17 18:20:01 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 02 20:25:22 2020 +0000"
      },
      "message": "aaudio: add thread safety annotation\n\nAlso improve naming to clarify lock requirements.\n\nAnd call some locked methods that were not called before.\nAlthough they were protected with a different lock so\nit should have no effect.\n\nBug: 171296283\nTest: adb logcat *:F\nTest: In another window:\nTest: atest AAudioTestCases\nChange-Id: I6e863cbdea9250188e3f4b8f8654ef71c8951e74\n"
    },
    {
      "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": "dd582929677fab6ffdb52f36cd1e16855bb7321a",
      "tree": "76c8557c340edeacb098665d331ba7a7f6f398e2",
      "parents": [
        "9bcf4989bf3e09167503e94571b15626e56f4453"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 15 20:29:51 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Oct 21 00:37:34 2020 +0000"
      },
      "message": "aaudio: cleanup thread handling\n\nFix problem when an attempt is made to join the callback from the\ncallback. It used to leave mHasThread in the wrong state.\nThis was fixed in AAudioThread and in AudioStream.\n\nAdd \"_l\" suffix to functions that need to be locked.\n\nSimplify the way that reference counted objects are passed to threads\nusing incStrong() and decStrong().\n\nBug: 171296283\nTest: atest AAudioTestCases\nChange-Id: I034049c4cb9021c6073fff441e49214ee898b804\n"
    },
    {
      "commit": "9bcf4989bf3e09167503e94571b15626e56f4453",
      "tree": "f469a96aac072841fc39bc8710002b4e25a4ccd8",
      "parents": [
        "14a1a17354d3ab55804ec688051a405dc0c320d6",
        "78d02237ebe6c90d36dca7b6da5e867ac6295318"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 20 03:29:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 20 03:29:05 2020 +0000"
      },
      "message": "Merge \"Revert \"Use system/audio to/from string converters in TypeConverter\"\""
    },
    {
      "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": "14a1a17354d3ab55804ec688051a405dc0c320d6",
      "tree": "a367deee603744e4f22e7018a795bd7cdc9a81a1",
      "parents": [
        "2254ae51fa1c681eb39a79a2d60f36c5d48ad0ee",
        "e358ec63eedd7a6289984b1f2468c5c16c2ff6c8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 19 23:08:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 23:08:05 2020 +0000"
      },
      "message": "Merge \"aaudio: use strong pointer to protect callback\""
    },
    {
      "commit": "2254ae51fa1c681eb39a79a2d60f36c5d48ad0ee",
      "tree": "b36d18312a4cb3d2149a3ca02bf17d4c94d3d682",
      "parents": [
        "7bebd206b9a0366e659e7f0bf332c69fb2da2336",
        "0f243bbaf628bf8aa873e978feb720d3354b476c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 19 21:36:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 21:36:43 2020 +0000"
      },
      "message": "Merge \"Use system/audio to/from string converters in TypeConverter\""
    },
    {
      "commit": "e358ec63eedd7a6289984b1f2468c5c16c2ff6c8",
      "tree": "dc2daf58088b5586cfe6be9abfb92987d6749899",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 12 23:42:30 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 19 20:31:17 2020 +0000"
      },
      "message": "aaudio: use strong pointer to protect callback\n\nHold a strong pointer to the AudioStream so it cannot get deleted while\nthe MMAP callback is running.\n\nAlso fixes disconnect for shared streams, which was broken\nby a previous attempt to fix b/166877425\n\nBug: 166877425\nBug: 170551030\nTest: see bug for details\nTest: atest AAudioTestCases\nTest: OboeTester V1.5.30 or later, \"TEST DISCONNECT\"\nChange-Id: I236e2d68632070d253d14ddf7b9d7076e068830a\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": "4d03116067325232554dfc0f096fba573298be32",
      "tree": "0db3417bc471ce1b4eb5d316ecd97fd735236dac",
      "parents": [
        "45912d92c289e477590806a10296cd90b809a311",
        "0b997547c4ae5f5e101492d2ccbf30b3b286ca26"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 13 23:45:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 23:45:31 2020 +0000"
      },
      "message": "Merge \"aaudio test: monkey test handle disconnects\""
    },
    {
      "commit": "0b997547c4ae5f5e101492d2ccbf30b3b286ca26",
      "tree": "c1bb21035cde225c255c941c302f7659b62859ad",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 13 17:28:00 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 13 19:50:52 2020 +0000"
      },
      "message": "aaudio test: monkey test handle disconnects\n\nWhen testing multiple monkeys with exclusive streams,\nthey will now steal the exclusive stream and use shared\nstreams. The test now handles that without failing.\nIt can also handle plugging in headphones.\n\nTest: test_audio_monkey -pl -x -t4\nChange-Id: I33e02f60e809ff8aee17a489525be79d73e2c13a\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": "38d61884c3f6e1824d785c7eb42f7fefa9fdaf90",
      "tree": "cc650e237be634495b344b060fd559281c358119",
      "parents": [
        "ad3888714bc75acd1355e4f24003a7af11cd4a05",
        "2c87dda841a345a57b5c9124415fa42ff18a8e1c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 01 23:05:03 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 01 23:05:03 2020 +0000"
      },
      "message": "Merge \"aaudio test: use OboeTester analyzer\""
    },
    {
      "commit": "8d97b8e3760686f2f1c74a4bb4a703f1bc465060",
      "tree": "8e5c3cf36e442a8853d45d560db9c7c1595674aa",
      "parents": [
        "301e21d47ff0c8392015a66952241e03188b70bb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 25 23:18:14 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Sep 29 21:43:35 2020 +0000"
      },
      "message": "aaudio: cache framesPerBurst and capacity\n\nThese do not change after opening the stream so we can\nsimply return a stored value and avoid querying the device.\n\nTest: atest AAudioTests\nChange-Id: I7a66c12bd695fd732194ff0a14ac9c8d9cacf923\n"
    },
    {
      "commit": "b770759cf96281366b46d17342a1a20866309953",
      "tree": "df6d8dca6de798134fe977eaa92554a7acbeecc3",
      "parents": [
        "1281c1d4ec7d5752d7c0981f32171a83f80b2438",
        "b8d89f38b24cab1f4d123192c01d5d766b88bd33"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Sep 12 01:37:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Sep 12 01:37:03 2020 +0000"
      },
      "message": "Merge \"aaudio test: catch errors with release of input stream\" into rvc-qpr-dev am: b8d89f38b2\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12567382\n\nChange-Id: Ib3c70b6ac20a86b938b4146ef891a77defa05e00\n"
    },
    {
      "commit": "b8d89f38b24cab1f4d123192c01d5d766b88bd33",
      "tree": "cf37c4ed8070e6e21aebd3cb64996c0583bacbc0",
      "parents": [
        "27514853147fb24d48af6a4f678c010e822b1c8e",
        "33f03f61133460e7876d9c2b52ae865fc31d9a12"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Sep 12 01:17:04 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 12 01:17:04 2020 +0000"
      },
      "message": "Merge \"aaudio test: catch errors with release of input stream\" into rvc-qpr-dev"
    },
    {
      "commit": "c5f4587cddb7ec90320df3d6233baffd5d8f93a1",
      "tree": "cd3dc205f82010918de2298a33f8d6bf8aec5ed2",
      "parents": [
        "734e3505e8222fd5c146dfa935f80b6ae3ce3003"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Aug 18 10:39:44 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 11 16:33:19 2020 -0700"
      },
      "message": "Convert AAudioService to AIDL\n\nThis change removes all hand-written binder code associated with\nparceling of AAudio types and IAAudioService interface.\n\nThe existing types defined in the \u0027binding\u0027 directory have not been\nreplaced by their AIDL counterparts, but rather were made convertible\nto/from them (in lieu of them being parcelables themselves).\nThe reasons are:\n- Some of those types offer additional functionality rather than\n  simply being data containers / serializers. For example, the\n  SharedMemoryParcelable type supports mmaping a memory region.\n- Reduce impact on existing code, which relies on the interface\n  offered by those type, which is different than the interface offered\n  by their AIDL counterparts.\n\nThe conversion between those types and their parcelable counterparts\nis handled at the edge of the client (inside AAudioBinderAdapter) and\nserver (inside AAudioService) code.\n\nFuture changes may gradually get rid of the duality by retiring the\ndata types in the \u0027binding\u0027 directory, inlining some of the features\nthey are offering (such as accessor methods) and replacing others with\nutility functions, operation on the parcelables directly.\n\nBug: 160253486\nTest: Manual testing using OboeTester\n      Ran atest CtsNativeMediaAAudioTestCases\n      Ran atest test_aaudio_marshalling\nChange-Id: I6eed19246a472dc31c1e2d6d2112d7562cf8940c\n"
    },
    {
      "commit": "734e3505e8222fd5c146dfa935f80b6ae3ce3003",
      "tree": "c7f54bbbf2d764150c550813ea32e09c4d6583cf",
      "parents": [
        "0412f73c6eb83e51832b9b7aaa57a4dc0239e6a5"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Aug 24 14:57:36 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 11 16:33:15 2020 -0700"
      },
      "message": "Avoid AAudioService-\u003eAAudioServiceInterface inheritence\n\nThis is required in order to prepare for divergence of\nAAudioServiceInterface from BnAAudioService: if AAudioService\ninherits from both, we would have method collisions as soon as we\nchange the signatures on one of the interfaces.\n\nWe achieve the same behavior with an adapter, which in this change is\ncompletely trivial, but will be used as soon as the interfaces\nactually diverge.\n\nBug: 160253486\nTest: Manual testing using OboeTester\n      Ran atest CtsNativeMediaAAudioTestCases\nChange-Id: I0d3e41e2378f1e6ff9cbe37461682f7373f463f2\n"
    },
    {
      "commit": "2c87dda841a345a57b5c9124415fa42ff18a8e1c",
      "tree": "2c1ff1e8e82cd2ade44b48646b8f78ee0c226386",
      "parents": [
        "10a7efe0387b11acc57cf6cea3f2ae594b1d8907"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 23:14:48 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 23:14:48 2020 +0000"
      },
      "message": "aaudio test: use OboeTester analyzer\n\nUse latency and glitch analyzer code from /external/oboe\ninstead of a copy. We can make a similar change on CTS Verifier.\n\nBug: 129788315\nTest: adb shell aaudio_loopback -pl -Pl -x -X -tl\nTest: adb shell aaudio_loopback -pl -Pl -x -X -tg\nChange-Id: I3990b29d93eccc7c669be0b97faa1b48630d39de\n"
    },
    {
      "commit": "0412f73c6eb83e51832b9b7aaa57a4dc0239e6a5",
      "tree": "4c0803d4e215de220b0c2c15ca50c79959f47eda",
      "parents": [
        "10a7efe0387b11acc57cf6cea3f2ae594b1d8907"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Aug 17 14:43:36 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 11 12:39:20 2020 -0700"
      },
      "message": "Convert IAAudioClient to AIDL\n\nBug: 160253486\nTest: Manual testing using OboeTester\n      Ran atest CtsNativeMediaAAudioTestCases\nChange-Id: I18e6c03144c59ce78181abf7c509c21f2724ad22\n"
    },
    {
      "commit": "33f03f61133460e7876d9c2b52ae865fc31d9a12",
      "tree": "1e9eccc3e465bc0a2b25e65a330bb2f294e14834",
      "parents": [
        "e1f1cb5827a6c99d41e05e090b3b382f3598a58e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 07 18:50:04 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 11:44:09 2020 -0700"
      },
      "message": "aaudio test: catch errors with release of input stream\n\nThe test_various.cpp file was missing some crashes\nthat could occur if AAudio query functions were called after\nAAudioStream_release().\n\nBug: 163165126\nTest: adb shell test_various\nChange-Id: Ib423186083a2245a5fdb817eee0ff781ed1cfa22\nMerged-In: Ib423186083a2245a5fdb817eee0ff781ed1cfa22\n"
    },
    {
      "commit": "af69d2203db2e0147f24c43486c36cf2b02c997f",
      "tree": "7795d5ebeaa82c7c18f3827b8e640f19a7a66e60",
      "parents": [
        "52bc293ab6d9b3e67c52fcc5fefd500060b4f6b9",
        "79224cacfbdb30956428bbe915323233949b768d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 16:49:24 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 16:49:24 2020 +0000"
      },
      "message": "aaudio: prevent onAudioDeviceUpdate past close am: 79224cacfb\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12551622\n\nChange-Id: I9530b754c9b67f968ae9b0088e627fa6434172f3\n"
    },
    {
      "commit": "52bc293ab6d9b3e67c52fcc5fefd500060b4f6b9",
      "tree": "fad3d97e165d291264d510247d06fa1594b20f58",
      "parents": [
        "60669b443009fdaf85d3e5f4782baf7b6aaa3ab7",
        "4719048ce0e6f8656a417a2f2fe6fbb848ed2ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 16:49:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 11 16:49:21 2020 +0000"
      },
      "message": "aaudio: fix crash from callbacks during close am: 4719048ce0\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12540591\n\nChange-Id: Ic046f39f0327c662362ceed7b090bb2cf91e2e1b\n"
    },
    {
      "commit": "79224cacfbdb30956428bbe915323233949b768d",
      "tree": "3ff5396e1b0f316f25a4af8e48c9465d91cbc2a9",
      "parents": [
        "4719048ce0e6f8656a417a2f2fe6fbb848ed2ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 10 14:54:30 2020 -0700"
      },
      "message": "aaudio: prevent onAudioDeviceUpdate past close\n\nTo prevent late device update callbacks, the AudioStream\nwas made into a RefBase AudioDeviceCallback.\nSo now we can use a smart pointer to delay deletion of the\nstream if any callbacks are in flight while the stream is closed.\n\nSo an AudioStream is now a RefBased object and can be used with\nandroid::sp. That required some changes to the way it is referenced\nin several places.\n\nMyPlayerBase was modified to use a weak pointer to the parent stream.\n\nUse delete[] for mDistributionBuffer\n\nBug: 161914201\nBug: 163165126\nBug: 164411271\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ic24aca3eaf5d1610504bb89c06001a37d0d4a1c3\nMerged-In: Ic24aca3eaf5d1610504bb89c06001a37d0d4a1c3\n"
    },
    {
      "commit": "4719048ce0e6f8656a417a2f2fe6fbb848ed2ba7",
      "tree": "8feaf2f9358a3993b5077647ddcd8952c71f7798",
      "parents": [
        "e1f1cb5827a6c99d41e05e090b3b382f3598a58e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 10 14:52:58 2020 -0700"
      },
      "message": "aaudio: fix crash from callbacks during close\n\nMove some code from release_l() into a new close_l().\nAlso stop callbacks before freeing memory in the\nFixedBlockReader.\n\nThe AudioTrack and AudioRecord callbacks can occur\nup until their destructors are called. This can lead\nto race conditions if the AAudio stream is dismantled\nwhile the AudioTrack or AudioRecord is still alive.\nThe AudioRecord was being deleted but not the AudioTrack.\nThat caused some streams to fail if they were using\na FixedBlockReader, which is used when the app\ncalls AAudioStreamBuilder_setFramesPerDataCallback().\n\nThere was also a problem with a few functions like\nAAudioStream_getFramesPerBurst() or AAudioStream_getTimestamp(),\nwhich would crash if called after AAudioStream_release( for\nINPUT streams.\n\nBug: 161914201\nBug: 163165126\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: If8f6f6f17ffe06eae98eb8b3930bca08c49a15f8\nMerged-In: If8f6f6f17ffe06eae98eb8b3930bca08c49a15f8\n(cherry picked from commit 320910fcf1e7d7729f37f95f591093191414e73f)\n"
    },
    {
      "commit": "e69bfcbc7c7494bf62a100a5058aca0d36a3771e",
      "tree": "0590380e03dbdefb57c8094cb996c531ce9e739f",
      "parents": [
        "f3a626fa54d1ad52673655edaf849b5a6b7c44ab"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 20 00:10:35 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 02 21:48:03 2020 +0000"
      },
      "message": "aaudio: use natural burst size for recording\n\nThis is similar to ag/12420089\nbut is for input streams.\n\nBUG: 165675305\nTest: see bug for detailed repro steps\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I9b6dfb4d4e9c22d8aac51f86149d7c3bf29cb990\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": "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": "8dff4ae2e40d385869cdb28be4af50b615af37a2",
      "tree": "054748ae814437055247bd047a7c06945afa1cc0",
      "parents": [
        "f1a36052bf6c752cec6b60bec058971765bdfa7b",
        "58f5ce146a8c2b25cc3bbd18df6e264addda2684"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 20 14:48:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 20 14:48:28 2020 +0000"
      },
      "message": "Merge changes Ic24aca3e,If8f6f6f1\n\n* changes:\n  aaudio: prevent onAudioDeviceUpdate past close\n  aaudio: fix crash from callbacks during close\n"
    },
    {
      "commit": "58f5ce146a8c2b25cc3bbd18df6e264addda2684",
      "tree": "cf2893c9d5da9aa989c88cf2fa8b14dad6d3861a",
      "parents": [
        "320910fcf1e7d7729f37f95f591093191414e73f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 20 01:03:06 2020 +0000"
      },
      "message": "aaudio: prevent onAudioDeviceUpdate past close\n\nTo prevent late device update callbacks, the AudioStream\nwas made into a RefBase AudioDeviceCallback.\nSo now we can use a smart pointer to delay deletion of the\nstream if any callbacks are in flight while the stream is closed.\n\nSo an AudioStream is now a RefBased object and can be used with\nandroid::sp. That required some changes to the way it is referenced\nin several places.\n\nMyPlayerBase was modified to use a weak pointer to the parent stream.\n\nBug: 161914201\nBug: 163165126\nBug: 164411271\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ic24aca3eaf5d1610504bb89c06001a37d0d4a1c3\n"
    },
    {
      "commit": "f266417b07eb474887b3b9cdb6f45631764305ee",
      "tree": "82edf785f33c2a0b1f9611c6cb69b889ad7a5551",
      "parents": [
        "6b5fdb53573f08258392cc60ff167fc90b553363",
        "ef170f08df3775572eb49c9aecc56d17cee62513"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 18 20:25:18 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 18 20:25:18 2020 +0000"
      },
      "message": "Merge \"aaudio test: catch errors with release of input stream\""
    },
    {
      "commit": "ef170f08df3775572eb49c9aecc56d17cee62513",
      "tree": "aaf4ba79b4c010d431770b7a8562fb110f67eb63",
      "parents": [
        "f356189f05884926290b1f7920241ef15674cbc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 07 18:50:04 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 18 19:10:23 2020 +0000"
      },
      "message": "aaudio test: catch errors with release of input stream\n\nThe test_various.cpp file was missing some crashes\nthat could occur if AAudio query functions were called after\nAAudioStream_release().\n\nBug: 163165126\nTest: adb shell test_various\nChange-Id: Ib423186083a2245a5fdb817eee0ff781ed1cfa22\n"
    },
    {
      "commit": "320910fcf1e7d7729f37f95f591093191414e73f",
      "tree": "e7052b3542898e68b5dbe5f5785ef0a19946bc2b",
      "parents": [
        "f356189f05884926290b1f7920241ef15674cbc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 18 18:51:03 2020 +0000"
      },
      "message": "aaudio: fix crash from callbacks during close\n\nMove some code from release_l() into a new close_l().\nAlso stop callbacks before freeing memory in the\nFixedBlockReader.\n\nThe AudioTrack and AudioRecord callbacks can occur\nup until their destructors are called. This can lead\nto race conditions if the AAudio stream is dismantled\nwhile the AudioTrack or AudioRecord is still alive.\nThe AudioRecord was being deleted but not the AudioTrack.\nThat caused some streams to fail if they were using\na FixedBlockReader, which is used when the app\ncalls AAudioStreamBuilder_setFramesPerDataCallback().\n\nThere was also a problem with a few functions like\nAAudioStream_getFramesPerBurst() or AAudioStream_getTimestamp(),\nwhich would crash if called after AAudioStream_release( for\nINPUT streams.\n\nBug: 161914201\nBug: 163165126\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: If8f6f6f17ffe06eae98eb8b3930bca08c49a15f8\n"
    },
    {
      "commit": "ec3fa35dc49e7cef59e7d2f500a3de322d10ad5f",
      "tree": "4ca4e96ab7367b6ca05d861e3750e1040579e708",
      "parents": [
        "1d2a159395df0767ecb2320aff4dd4db3d26e6b2"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Aug 11 16:29:26 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Aug 11 16:29:26 2020 -0700"
      },
      "message": "Update doc of setUsage and setContentType in AAudioStreamBuilder.\n\nThe usage and content type are only used for output stream. Update the\ndoc of AAudioStreamBuilder_setUsage/setContentType to indicate this two\nAPIs must only be used for output stream.\n\nTest: make\nBug: 143772798\nChange-Id: I8b500aa1d5b660d19552cbbaec305d3a8c37e39d\n"
    },
    {
      "commit": "8f4fe50dc17dab7d809ad215ab62dc86de888731",
      "tree": "5a83f0b41cb2ce576cf1e230321b6cdff137f818",
      "parents": [
        "a524c363821353a541442e3b23449875b797b09d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 15 23:54:50 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 06 19:00:12 2020 +0000"
      },
      "message": "aaudio: refactor references to shared FIFO\n\nReduce passing of raw pointers.\nUse shared_ptrs and unique_ptrs.\nSimplify memory management.\n\nRefactor FifoBuffer into two subclasses so that\nthe internal memory management is simpler.\n\nBug: 151650670\nTest: OboeTester \"TEST OUTPUT\"\nTest: disable EXCLUSIVE mode\nTest: OboeTester \"ECHO INPUT TO OUTPUT\"\nTest: disable INPUT EXCLUSIVE mode\nChange-Id: I10981767f8719f3cc3525df211285c53219a7979\n"
    },
    {
      "commit": "bb551703b691060c8e1a9c9878b78e3f9742e9a0",
      "tree": "2a7263751f763ec5dc2513f684f85d0f0a8f90ac",
      "parents": [
        "80f49ee74e278929c89db6e8705d009b6ab71186",
        "503495884fa9a06a7cb6473d36d69d6a13808887"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 30 19:34:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 30 19:34:19 2020 +0000"
      },
      "message": "Merge \"aaudio: Update language to comply with Android\u0027s inclusive language guidance\" am: cf7197e3ce am: 63347a7185 am: 39075258a9 am: b6e842223b am: 503495884f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1375100\n\nChange-Id: Ib78c0f39e9163c4e8db1482db6659fbb98a88bbb\n"
    },
    {
      "commit": "39075258a92d969a6ea438cfe2ad298de01de7ad",
      "tree": "bac30dc7c62357c1678fd8e1de89a8d3c6858411",
      "parents": [
        "86b249c78a265e37a9516a50aee17919b4b22c14",
        "63347a718527003a3a3516f2eebe962f6fee860d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 30 18:33:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 30 18:33:52 2020 +0000"
      },
      "message": "Merge \"aaudio: Update language to comply with Android\u0027s inclusive language guidance\" am: cf7197e3ce am: 63347a7185\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1375100\n\nChange-Id: I0c7f3a971c70e894f739ed4b6bf7c2d5959bc16c\n"
    },
    {
      "commit": "18142aed005974bf6bee76ece8afaff7c89d0b50",
      "tree": "9e2b532577c0164b0cd6291e86d1a1cd0c9957b0",
      "parents": [
        "3fd4dee8960cd6bccbb21227d43dfef839d33875"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 28 12:44:37 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 30 09:39:06 2020 -0700"
      },
      "message": "aaudio: Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\nBUG: 161896447\nTest: all changes are in comments, so just build\nChange-Id: I53a4a4c2ade03dcde940e6611f7e6b46d12ffe71\n\nChange-Id: I90ebaea4731c6ca95f312b2176792d50dea862ad\n"
    },
    {
      "commit": "ec8ca52932ecda761821230def1e1a4505b673b3",
      "tree": "7f2f6146661b7d0232d0cb0d29153e0671bc5762",
      "parents": [
        "18125ce86afecc1139cd4b128b2ec5a7e97d99e5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 19 10:05:58 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 01 23:35:44 2020 +0000"
      },
      "message": "aaudio: fix race at start of stream\n\nWhen an MMAP stream is started, it is possible for the\nbeginning of the sound to be lost. One reason is because\nthe written data is placed right in front of the DSP read position.\nBut the DSP position is not well known when the stream is starting\nbecause we only have a few timestamps.\nIf the DSP advances before the data is written then the first burst\nmight be skipped\n\nThis CL places the initial write one burst ahead of the estimated DSP\nposition.\n\nThe same code is used to synchronize the read/write counters\nwhen a flush() occurs. In that case the serverMargin is zero.\n\nBug: 156313728\nBug: 157510931\nBug: 158547650\nTest: atest CtsNativeMediaAAudioTestCases\nTest: see bugs for other test cases\nChange-Id: I96170a924c69eee080a497b52cc6c1f3498c5455\n"
    },
    {
      "commit": "1a012372d22592b1a595b639f4d34aa66a9b1770",
      "tree": "e92ba590e8071db4675f203afaa69b6421d033c8",
      "parents": [
        "d2504bd81872024ab65f057c0b9730b45975b288",
        "b47fd10e664bcfd23c3725f5077421c5b1e1a285"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 27 03:12:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 27 03:12:14 2020 +0000"
      },
      "message": "Merge changes I742a9d3d,Idce40ad2 into rvc-dev am: 1928cddbe9 am: b167113505 am: 1000cd1d23 am: b47fd10e66\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12003365\n\nChange-Id: I93867607e7333751b733d7412c9247e7b67a350b\n"
    },
    {
      "commit": "1000cd1d232e040409321e79fdfb522eb9a6e0bb",
      "tree": "d31ea6636bcb553e183815b3eb656115a5528cee",
      "parents": [
        "6c77aaa0a921173a4db8c8cf94791287f15748ed",
        "b16711350551e228392697e9b715b99098323d8c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 27 02:04:00 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 27 02:04:00 2020 +0000"
      },
      "message": "Merge changes I742a9d3d,Idce40ad2 into rvc-dev am: 1928cddbe9 am: b167113505\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12003365\n\nChange-Id: I41acfc348adedee49ac5c734a9182596c56c0877\n"
    },
    {
      "commit": "b3c73bdb4f17ba09e892f4e001f3bcafe7d10461",
      "tree": "d31ea6636bcb553e183815b3eb656115a5528cee",
      "parents": [
        "81f31f39382842d8f45ebcdaf0e35dcf5ff4c09a",
        "1928cddbe98a24e173d1b83b870c67cd8f2deffb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 27 01:43:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 27 01:43:14 2020 +0000"
      },
      "message": "Merge changes I742a9d3d,Idce40ad2 into rvc-dev am: 1928cddbe9\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12003365\n\nChange-Id: Ibde008c9e9c5786c4b47b3124b67db1e47447c3b\n"
    },
    {
      "commit": "4c377ef1052cc45a44ed2b1ffdd11486a9b9d1e6",
      "tree": "3b9cf2f5be3789b6d844004d5caa72b74f776b62",
      "parents": [
        "29112a133f594a4e740d46cad8d6ae301c434f48"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 25 10:03:23 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 26 11:54:41 2020 -0700"
      },
      "message": "aaudio: allow start when flushing\n\nThe state switch in the start() code did not allow\na start when in AAUDIO_STREAM_STATE_FLUSHING.\n\nThe bug was a regression in R and was not in Q.\n\nBug: 158603375\nBug: 159900922\nTest: test_various.cpp\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I742a9d3d07d445c0f3a80187b5a32cda5c700e82\n"
    },
    {
      "commit": "29112a133f594a4e740d46cad8d6ae301c434f48",
      "tree": "e4d109df508eea932dcaa1542e3757a4ca3788e3",
      "parents": [
        "ae87d21ce7b5a6b76a88fdefbe80ba0e3120b16a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 25 07:52:45 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 26 11:54:41 2020 -0700"
      },
      "message": "aaudio test: flushing to start transition\n\nAdd test for state transitions from FLUSHING to STARTED,\nFLUSHING to CLOSING, etc.\n\nAlso test for CLOSING to STARTED, STOPPED, etc.\n\nThis is to test a regression in R.\n\nBug: 158603375\nBug: 159900922\nTest: this is a test\nChange-Id: Idce40ad28d21438973facd9f32ef59e47c463279\n"
    },
    {
      "commit": "7216b3fe3d9580bf4305c01fc0df64dc7e172488",
      "tree": "2244a1ca21a329135dd894ad2c0e04258d51b03e",
      "parents": [
        "8ffa530d9c1e0179dc9389e683e022c4ca26bc38"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 23 23:29:18 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 23 23:29:33 2020 +0000"
      },
      "message": "aaudio: reduce error logging\n\nBetter logic in setState().\nDowngrade and remove some other error messages.\n\nBug: 36785118\nTest: adb logcat *:W | grep -i audio\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I2046f34baa2d9fde55e20c24b30342f234abc309\n"
    },
    {
      "commit": "1a3c96b8cf7d20f0e4d58e1c68ed611985e0a74f",
      "tree": "98be4ab403d6ec02f261613785ad58309637e4b2",
      "parents": [
        "053af400c11aa8048def01d7f0f173edcc3ca562",
        "5e3479c296b0ddbebfdf0675ef9355882523f9fb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 12 22:50:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 12 22:50:23 2020 +0000"
      },
      "message": "Merge \"Include \u003cstdbool.h\u003e in NDK headers that use bool.\" into rvc-dev-plus-aosp am: 456513b73e am: cdceadbd05 am: 5e3479c296\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11851227\n\nChange-Id: Ifa4b8ebef7a72e54da815099ec14c4976e31f47f\n"
    },
    {
      "commit": "9c1fca20c31ad0442e6be8d665dedb2c419a6093",
      "tree": "457d14c22345d5d4909917bdd44abef44438509d",
      "parents": [
        "27a9d4e57988c9c9e75639edc69b4fb62ddf1a07"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 12 09:53:12 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 12 13:11:50 2020 -0700"
      },
      "message": "Include \u003cstdbool.h\u003e in NDK headers that use bool.\n\nBug: https://github.com/android/ndk/issues/1281\nTest: treehugger\nChange-Id: Idd009254e41b8b5136bc4d2d9a49c130780f98d5\n"
    },
    {
      "commit": "568cf59c8fcddd56b7c4b37aa0a3c13d1864f8be",
      "tree": "bd0661c53abe6da587477aa8b8af3376725d4bc7",
      "parents": [
        "e1ce1d5924ba86622003d4f9e964fe38c843df18",
        "566af0ed39d39a32a0d99e0b572399aaa10e4c93"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 06 00:30:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 06 00:30:30 2020 +0000"
      },
      "message": "Merge \"aaudio test: add -s to test_steal_exclusive\" into rvc-dev am: fab932e9ed am: a04d3c20b6 am: 0f246271eb am: 566af0ed39\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11760672\n\nChange-Id: I290ee059fca5cc5ec0ca537e705b3dafdf1d0a56\n"
    },
    {
      "commit": "566af0ed39d39a32a0d99e0b572399aaa10e4c93",
      "tree": "2f1240307105717ce020a986ded8e0f08454c83d",
      "parents": [
        "8ff30f3b7e95af75730ba037ea6b1bc0df13ec2d",
        "0f246271eb5e6cc8f3cd11eec4d70515d567e79b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 06 00:14:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 06 00:14:35 2020 +0000"
      },
      "message": "Merge \"aaudio test: add -s to test_steal_exclusive\" into rvc-dev am: fab932e9ed am: a04d3c20b6 am: 0f246271eb\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11760672\n\nChange-Id: Ie3700b0be294e5c695f39cb5954231014ec69195\n"
    },
    {
      "commit": "933b484fa7563c7ad2e990c61ad0051bb648eee0",
      "tree": "2f1240307105717ce020a986ded8e0f08454c83d",
      "parents": [
        "f541ec655235f96950f47515d23f3a7e0147c47a",
        "fab932e9edd3beb3a0539735d0692dcdbe2b1855"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 05 23:49:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 05 23:49:49 2020 +0000"
      },
      "message": "Merge \"aaudio test: add -s to test_steal_exclusive\" into rvc-dev am: fab932e9ed\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11760672\n\nChange-Id: Ia0241f88843495624f873cca43948197c02f8850\n"
    },
    {
      "commit": "fd19a77bc0fcc2d3d85beac6403b2b8c907dfe69",
      "tree": "c4d40019dd153168573cf5a6d34782b43b9b83a3",
      "parents": [
        "6d5a5c10a5b9389cd84b5a10d5814e65eeb004aa"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 05 12:47:46 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 05 12:47:46 2020 -0700"
      },
      "message": "aaudio test: add -s to test_steal_exclusive\n\nAdd -s option to request SHARED mode.\nThis will not cause a steal. But it can be used\nto test the response to a disconnect.\n\nBug: 158316262\nTest: test_steal_exclusive -r0 -d0 -s\nChange-Id: I209dc72028ce61881a6d2d14a9cec689a2d74264\n"
    },
    {
      "commit": "ff682a7f4f39f04dc07deec66c18194907ada4ef",
      "tree": "26db70caeda52fb0855e4f0f2687119587e04500",
      "parents": [
        "3527e8a256066494431206750b606776c4ce46e7",
        "264d7ef14b451ef8ada5986e0a8969036b67fc47"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 01:59:44 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 01:59:44 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev am: 1ae898a10c am: 96090febcd am: 61fe745347 am: 264d7ef14b\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11659500\n\nChange-Id: Ie307f8209ef1fd606b5ffedb78d945e6bfd67688\n"
    },
    {
      "commit": "264d7ef14b451ef8ada5986e0a8969036b67fc47",
      "tree": "63233aa70f249cf5d2f8fb8ef79928532dce85f2",
      "parents": [
        "ea30586173385f7c51d14823fa917d996c8ea6bc",
        "61fe745347cb5ac0e119df5b376a8d58ea2f4be8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 01:42:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 01:42:39 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev am: 1ae898a10c am: 96090febcd am: 61fe745347\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11659500\n\nChange-Id: I584d57cac9cb5d80c7bf48a9c1a246d1bc371a99\n"
    },
    {
      "commit": "1de621d426a18651ab90fc1703e928a9874b1f4c",
      "tree": "63233aa70f249cf5d2f8fb8ef79928532dce85f2",
      "parents": [
        "1c4ba630e86eab1bd6485e58b1674325c67e4a92",
        "1ae898a10c9f3c66dc7c58c7c9808bcc8411650a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 01:05:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 01:05:48 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev am: 1ae898a10c\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11659500\n\nChange-Id: Iabbd6ddd79e12367aca0cfe44b1a22e13fdecde3\n"
    },
    {
      "commit": "d9f23896cf87971d8b89a4e660cd7aeaa02f602d",
      "tree": "1b9e190bd5b84fa6a82a97747c04f29671046daa",
      "parents": [
        "1b5a1febef34d76f91b0fb6efbec896a386debfd",
        "e803b380e5fcd7c58010c88ec474cabc09d90f82"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jun 03 00:52:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 00:52:48 2020 +0000"
      },
      "message": "Merge \"audioflinger: fix FIXME in logBufferSizeUnderruns\" into rvc-dev am: 167afa7033 am: cf4623847e am: 6089de080d am: e803b380e5\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113\n\nChange-Id: Idaf7e9c9ba44e1e528ac3da79e732bfb10648f52\n"
    },
    {
      "commit": "1ae898a10c9f3c66dc7c58c7c9808bcc8411650a",
      "tree": "b4cc7bd121c3418f2c539143591290f898d0e027",
      "parents": [
        "167afa7033328250169f141f85e3bc71d89475c9",
        "b9e4fd475481d6fa23c6df76cfb2b5e81b9cd9ec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev"
    },
    {
      "commit": "e803b380e5fcd7c58010c88ec474cabc09d90f82",
      "tree": "fc1964622641712eb648d39bad0494980ae5010b",
      "parents": [
        "87477a196dd047c39233d7ea947d1eb6bf7c0f98",
        "6089de080dca67d58c2bfea18f9be20e3ae2e387"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jun 03 00:38:45 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 00:38:45 2020 +0000"
      },
      "message": "Merge \"audioflinger: fix FIXME in logBufferSizeUnderruns\" into rvc-dev am: 167afa7033 am: cf4623847e am: 6089de080d\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113\n\nChange-Id: Id7720190203dcad03fb6e537076239791b000c15\n"
    },
    {
      "commit": "1c4ba630e86eab1bd6485e58b1674325c67e4a92",
      "tree": "fc1964622641712eb648d39bad0494980ae5010b",
      "parents": [
        "177b641f15356a2701bbd5812ae63bec6aaa5c38",
        "167afa7033328250169f141f85e3bc71d89475c9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jun 03 00:13:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 00:13:23 2020 +0000"
      },
      "message": "Merge \"audioflinger: fix FIXME in logBufferSizeUnderruns\" into rvc-dev am: 167afa7033\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113\n\nChange-Id: I44b76e267b367c96e64457c5a60790dc5649a45f\n"
    },
    {
      "commit": "64e16a7c0a0341ec3e759d9522c037606e49ce70",
      "tree": "4de10760a43ffb42233f3da48259a3dd403ccd31",
      "parents": [
        "72c3e0bbf62dbfd5e9ecabac3910f788e0b6b187"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 01 13:25:51 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 02 14:48:16 2020 -0700"
      },
      "message": "audioflinger: fix FIXME in logBufferSizeUnderruns\n\nSome debug code was accidentally merged.\nThe hang was caused by a recursive lock of mLock.\nThe code now calls lockfree methods.\nAdded events for RELEASE and SETBUFFERSIZE.\n\nBug: 157916126\nTest: adb logcat | grep logBufferSize\nTest: launch OboeTester\nTest: disable MMAP checkbox\nTest: Tap OPEN and START\nTest: move bufferSize fader\nTest: expect to see no spam from logBufferSizeInFrames()\nTest: adb shell dumpsys media.metrics\nTest: expect to see entries like \"(bufferSizeFrames\u003d118, underrun\u003d1)\"\nChange-Id: I7d782ccea2c2470bc18a3a61cfb8767430a441d8\n"
    },
    {
      "commit": "b9e4fd475481d6fa23c6df76cfb2b5e81b9cd9ec",
      "tree": "88b76a2fad19ae509b42361c85fd2f4e068a0518",
      "parents": [
        "d40bc7615ff9bb6aac308083c51980437a9c6a21"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 29 08:42:04 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 01 15:35:34 2020 -0700"
      },
      "message": "aaudio test: improve stealing test\n\nUse class and locks to eliminate race condition.\nAdd -dDelay to sleep before open.\nAdd -rRetries to set maximum retries when reopening\nafter a disconnect.\n\nBug: 157777324\nTest: adb shell test_steal_exclusive -r1 -d0\nChange-Id: I847c57c3dc0d5d52bb2d03f1e85ebc13216ee41d\n"
    },
    {
      "commit": "b73593b99ffd41a49d35b6e95906be778e87c0d3",
      "tree": "d21b782c5e278f3f93465c2d8bf4c61094f55464",
      "parents": [
        "43cf3117af7ff3d833487b33e92a1ce4f3d4fedf",
        "da17a888baff05b848bf3f7015c1ad37c314764c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 00:37:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 08 00:37:49 2020 +0000"
      },
      "message": "Merge \"aaudio: align AAudioServiceMessage for 32/64 bits\" into rvc-dev am: 9ad15ff8c4 am: 76ade1a486 am: a0a5104c49 am: da17a888ba\n\nChange-Id: Ia8e176eaf58b20e1540d4531dcdd8c335cd6e839\n"
    },
    {
      "commit": "a0a5104c49ba5ac815d0faf25effa0df79dbfd8c",
      "tree": "9c55ce76253d91e8faf8d2110504b2d635fcd8ae",
      "parents": [
        "c76c8a81b7006c6d67dd31c3b06ddd725216e34b",
        "76ade1a48604972d0180888006da5831d2ef976f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 00:01:42 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 08 00:01:42 2020 +0000"
      },
      "message": "Merge \"aaudio: align AAudioServiceMessage for 32/64 bits\" into rvc-dev am: 9ad15ff8c4 am: 76ade1a486\n\nChange-Id: I89b1b8299635d3b1f674f9895147ad0092bd47db\n"
    },
    {
      "commit": "c3282b7b634886aad47a2a19e36dac0c65d332e7",
      "tree": "9c55ce76253d91e8faf8d2110504b2d635fcd8ae",
      "parents": [
        "c8c418357ba5b6eab6ea5385f4b008f1e6548c60",
        "9ad15ff8c4e0ae23df61022e69ba38362c94c67b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 07 23:45:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 07 23:45:30 2020 +0000"
      },
      "message": "Merge \"aaudio: align AAudioServiceMessage for 32/64 bits\" into rvc-dev am: 9ad15ff8c4\n\nChange-Id: Iae33ab39ee598ddf064e9b1d1bbcad3f529a69ac\n"
    }
  ],
  "next": "3ee519e182dfc26a7d6179604c816892385f3b03"
}
