)]}'
{
  "log": [
    {
      "commit": "6a08a9293b732532e98607d41a42bc06a52e8184",
      "tree": "a33a0ab6ffb3cf820c22f1a9ee53d2001dfaf9bb",
      "parents": [
        "ad9882e76f9debbd2ada2b616d5f51b8908ed764",
        "0c3f0588700228d4d81dded56480d14857e1b2cd"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:25:04 2021 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:25:04 2021 -0800"
      },
      "message": "Merge ab/7061308 into stage.\n\nBug: 180401296\nMerged-In: Iffdea341e5cd3cc2ef82e1b9c0adf211b3c29381\nChange-Id: I9e0e28ec101bde3ee24c946e9fb5c11b1cceba64\n"
    },
    {
      "commit": "948e6aace91d16acfaa97763c7228029a1c2afe0",
      "tree": "e1213aacab8f21fd8bf9dcd02dbc82741013379f",
      "parents": [
        "367398038247b09a3f92e05affac5f9b1f5e2f90"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 21:02:31 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:09:57 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  camera/cameraserver/Android.bp\n  camera/tests/Android.mk\n  cmds/screenrecord/Android.bp\n  cmds/stagefright/Android.mk\n  drm/common/Android.bp\n  drm/drmserver/Android.bp\n  drm/libdrmframework/Android.bp\n  drm/libdrmframework/plugins/common/util/Android.bp\n  drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.bp\n  drm/libdrmframework/plugins/passthru/Android.bp\n  drm/libmediadrm/Android.bp\n  drm/libmediadrm/fuzzer/Android.bp\n  drm/libmediadrm/protos/Android.bp\n  drm/libmediadrm/tests/Android.bp\n  drm/mediacas/plugins/clearkey/Android.bp\n  drm/mediacas/plugins/clearkey/tests/Android.bp\n  drm/mediacas/plugins/mock/Android.bp\n  drm/mediadrm/plugins/clearkey/common/Android.bp\n  drm/mediadrm/plugins/clearkey/default/Android.bp\n  drm/mediadrm/plugins/clearkey/default/tests/Android.bp\n  drm/mediadrm/plugins/mock/Android.bp\n  media/audioserver/Android.mk\n  media/bufferpool/1.0/Android.bp\n  media/bufferpool/1.0/vts/Android.bp\n  media/bufferpool/2.0/Android.bp\n  media/bufferpool/2.0/tests/Android.bp\n  media/codec2/components/aac/Android.bp\n  media/codec2/components/amr_nb_wb/Android.bp\n  media/codec2/components/aom/Android.bp\n  media/codec2/components/avc/Android.bp\n  media/codec2/components/base/Android.bp\n  media/codec2/components/cmds/Android.bp\n  media/codec2/components/flac/Android.bp\n  media/codec2/components/g711/Android.bp\n  media/codec2/components/gav1/Android.bp\n  media/codec2/components/gsm/Android.bp\n  media/codec2/components/hevc/Android.bp\n  media/codec2/components/mp3/Android.bp\n  media/codec2/components/mpeg2/Android.bp\n  media/codec2/components/mpeg4_h263/Android.bp\n  media/codec2/components/opus/Android.bp\n  media/codec2/components/raw/Android.bp\n  media/codec2/components/vorbis/Android.bp\n  media/codec2/components/vpx/Android.bp\n  media/codec2/components/xaac/Android.bp\n  media/codec2/core/Android.bp\n  media/codec2/faultinjection/Android.bp\n  media/codec2/fuzzer/Android.bp\n  media/codec2/hidl/1.0/utils/Android.bp\n  media/codec2/hidl/1.0/vts/functional/Android.bp\n  media/codec2/hidl/1.0/vts/functional/audio/Android.bp\n  media/codec2/hidl/1.0/vts/functional/common/Android.bp\n  media/codec2/hidl/1.0/vts/functional/component/Android.bp\n  media/codec2/hidl/1.0/vts/functional/master/Android.bp\n  media/codec2/hidl/1.0/vts/functional/video/Android.bp\n  media/codec2/hidl/1.1/utils/Android.bp\n  media/codec2/hidl/client/Android.bp\n  media/codec2/hidl/services/Android.bp\n  media/codec2/sfplugin/Android.bp\n  media/codec2/sfplugin/tests/Android.bp\n  media/codec2/sfplugin/utils/Android.bp\n  media/codec2/tests/Android.bp\n  media/codec2/vndk/Android.bp\n  media/codecs/amrnb/common/Android.bp\n  media/codecs/amrnb/enc/fuzzer/Android.bp\n  media/codecs/amrnb/fuzzer/Android.bp\n  media/codecs/amrwb/dec/fuzzer/Android.bp\n  media/codecs/amrwb/enc/Android.bp\n  media/codecs/amrwb/enc/SampleCode/Android.bp\n  media/codecs/amrwb/enc/fuzzer/Android.bp\n  media/codecs/amrwb/enc/test/Android.bp\n  media/codecs/g711/decoder/Android.bp\n  media/codecs/g711/fuzzer/Android.bp\n  media/codecs/m4v_h263/dec/Android.bp\n  media/codecs/m4v_h263/dec/test/Android.bp\n  media/codecs/m4v_h263/fuzzer/Android.bp\n  media/codecs/mp3dec/fuzzer/Android.bp\n  media/extractors/Android.bp\n  media/extractors/aac/Android.bp\n  media/extractors/amr/Android.bp\n  media/extractors/flac/Android.bp\n  media/extractors/fuzzers/Android.bp\n  media/extractors/midi/Android.bp\n  media/extractors/mkv/Android.bp\n  media/extractors/mp3/Android.bp\n  media/extractors/mp4/Android.bp\n  media/extractors/mpeg2/Android.bp\n  media/extractors/ogg/Android.bp\n  media/extractors/tests/Android.bp\n  media/extractors/wav/Android.bp\n  media/img_utils/Android.bp\n  media/libaaudio/Android.bp\n  media/libaaudio/examples/Android.bp\n  media/libaaudio/examples/input_monitor/Android.bp\n  media/libaaudio/examples/loopback/Android.bp\n  media/libaaudio/examples/write_sine/Android.bp\n  media/libaaudio/src/Android.bp\n  media/libaaudio/tests/Android.bp\n  media/libaudioclient/Android.bp\n  media/libaudioclient/tests/Android.bp\n  media/libaudiofoundation/Android.bp\n  media/libaudiofoundation/tests/Android.bp\n  media/libaudiohal/Android.bp\n  media/libaudiohal/impl/Android.bp\n  media/libaudioprocessing/Android.bp\n  media/libaudioprocessing/audio-resampler/Android.bp\n  media/libaudioprocessing/tests/Android.bp\n  media/libaudioprocessing/tests/fuzzer/Android.bp\n  media/libcpustats/Android.bp\n  media/libdatasource/Android.bp\n  media/libeffects/config/Android.bp\n  media/libeffects/downmix/Android.bp\n  media/libeffects/downmix/tests/Android.bp\n  media/libeffects/dynamicsproc/Android.bp\n  media/libeffects/factory/Android.bp\n  media/libeffects/loudness/Android.bp\n  media/libeffects/lvm/benchmarks/Android.bp\n  media/libeffects/lvm/lib/Android.bp\n  media/libeffects/lvm/tests/Android.bp\n  media/libeffects/lvm/wrapper/Android.bp\n  media/libeffects/preprocessing/Android.bp\n  media/libeffects/preprocessing/benchmarks/Android.bp\n  media/libeffects/preprocessing/tests/Android.bp\n  media/libeffects/proxy/Android.bp\n  media/libeffects/visualizer/Android.mk\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/xsd/Android.bp\n  media/libmedia/xsd/vts/Android.bp\n  media/libmediahelper/Android.bp\n  media/libmediahelper/tests/Android.bp\n  media/libmediametrics/Android.bp\n  media/libmediaplayerservice/Android.bp\n  media/libmediaplayerservice/datasource/Android.bp\n  media/libmediaplayerservice/nuplayer/Android.bp\n  media/libmediaplayerservice/tests/Android.bp\n  media/libmediaplayerservice/tests/stagefrightRecorder/Android.bp\n  media/libmediatranscoding/Android.bp\n  media/libmediatranscoding/tests/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libstagefright/Android.bp\n  media/libstagefright/bqhelper/Android.bp\n  media/libstagefright/bqhelper/tests/Android.bp\n  media/libstagefright/codecs/aacdec/Android.bp\n  media/libstagefright/codecs/aacenc/Android.bp\n  media/libstagefright/codecs/amrnb/dec/Android.bp\n  media/libstagefright/codecs/amrnb/enc/Android.bp\n  media/libstagefright/codecs/amrwbenc/Android.bp\n  media/libstagefright/codecs/avcdec/Android.bp\n  media/libstagefright/codecs/avcenc/Android.bp\n  media/libstagefright/codecs/common/Android.bp\n  media/libstagefright/codecs/flac/dec/Android.bp\n  media/libstagefright/codecs/flac/enc/Android.bp\n  media/libstagefright/codecs/g711/dec/Android.bp\n  media/libstagefright/codecs/gsm/dec/Android.bp\n  media/libstagefright/codecs/hevcdec/Android.bp\n  media/libstagefright/codecs/m4v_h263/dec/Android.bp\n  media/libstagefright/codecs/m4v_h263/enc/Android.bp\n  media/libstagefright/codecs/mp3dec/Android.bp\n  media/libstagefright/codecs/mpeg2dec/Android.bp\n  media/libstagefright/codecs/on2/dec/Android.bp\n  media/libstagefright/codecs/on2/enc/Android.bp\n  media/libstagefright/codecs/opus/dec/Android.bp\n  media/libstagefright/codecs/raw/Android.bp\n  media/libstagefright/codecs/vorbis/dec/Android.bp\n  media/libstagefright/codecs/xaacdec/Android.bp\n  media/libstagefright/colorconversion/Android.bp\n  media/libstagefright/data/Android.bp\n  media/libstagefright/filters/Android.bp\n  media/libstagefright/flac/dec/Android.bp\n  media/libstagefright/flac/dec/test/Android.bp\n  media/libstagefright/foundation/Android.bp\n  media/libstagefright/foundation/tests/AVCUtils/Android.bp\n  media/libstagefright/foundation/tests/Android.bp\n  media/libstagefright/foundation/tests/OpusHeader/Android.bp\n  media/libstagefright/foundation/tests/colorutils/Android.bp\n  media/libstagefright/http/Android.bp\n  media/libstagefright/httplive/Android.bp\n  media/libstagefright/id3/Android.bp\n  media/libstagefright/id3/test/Android.bp\n  media/libstagefright/mpeg2ts/Android.bp\n  media/libstagefright/mpeg2ts/test/Android.bp\n  media/libstagefright/omx/Android.bp\n  media/libstagefright/omx/tests/Android.bp\n  media/libstagefright/rtsp/Android.bp\n  media/libstagefright/tests/Android.bp\n  media/libstagefright/tests/ESDS/Android.bp\n  media/libstagefright/tests/HEVC/Android.bp\n  media/libstagefright/tests/extractorFactory/Android.bp\n  media/libstagefright/tests/fuzzers/Android.bp\n  media/libstagefright/tests/mediacodec/Android.bp\n  media/libstagefright/tests/metadatautils/Android.bp\n  media/libstagefright/tests/writer/Android.bp\n  media/libstagefright/timedtext/Android.bp\n  media/libstagefright/timedtext/test/Android.bp\n  media/libstagefright/webm/Android.bp\n  media/libstagefright/webm/tests/Android.bp\n  media/libstagefright/writer_fuzzers/Android.bp\n  media/libstagefright/xmlparser/Android.bp\n  media/libstagefright/xmlparser/test/Android.bp\n  media/libstagefright/xmlparser/vts/Android.bp\n  media/libwatchdog/Android.bp\n  media/mediaserver/Android.bp\n  media/mtp/Android.bp\n  media/mtp/tests/Android.bp\n  media/tests/benchmark/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/src/main/cpp/Android.bp\n  media/tests/benchmark/src/native/common/Android.bp\n  media/tests/benchmark/src/native/decoder/Android.bp\n  media/tests/benchmark/src/native/encoder/Android.bp\n  media/tests/benchmark/src/native/extractor/Android.bp\n  media/tests/benchmark/src/native/muxer/Android.bp\n  media/tests/benchmark/tests/Android.bp\n  media/utils/Android.bp\n  media/utils/fuzzers/Android.bp\n  services/audioflinger/Android.bp\n  services/audiopolicy/Android.bp\n  services/audiopolicy/common/Android.bp\n  services/audiopolicy/common/managerdefinitions/Android.bp\n  services/audiopolicy/config/Android.bp\n  services/audiopolicy/engine/common/Android.bp\n  services/audiopolicy/engine/config/Android.bp\n  services/audiopolicy/engine/interface/Android.bp\n  services/audiopolicy/engineconfigurable/Android.bp\n  services/audiopolicy/engineconfigurable/config/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/automotive/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/caremu/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.bp\n  services/audiopolicy/engineconfigurable/tools/Android.bp\n  services/audiopolicy/engineconfigurable/wrapper/Android.bp\n  services/audiopolicy/enginedefault/Android.bp\n  services/audiopolicy/enginedefault/config/example/Android.bp\n  services/audiopolicy/manager/Android.mk\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.mk\n  services/audiopolicy/tests/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/tests/Android.mk\n  services/mediacodec/Android.bp\n  services/mediacodec/registrant/Android.bp\n  services/mediaextractor/Android.bp\n  services/medialog/Android.bp\n  services/medialog/fuzzer/Android.bp\n  services/mediametrics/Android.bp\n  services/mediametrics/benchmarks/Android.bp\n  services/mediametrics/fuzzer/Android.bp\n  services/mediametrics/tests/Android.bp\n  services/mediaresourcemanager/Android.bp\n  services/mediaresourcemanager/fuzzer/Android.bp\n  services/mediaresourcemanager/test/Android.bp\n  services/mediatranscoding/Android.bp\n  services/mediatranscoding/tests/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  media/codecs/amrnb/dec/Android.bp\n  media/codecs/amrnb/dec/test/Android.bp\n  media/codecs/amrnb/enc/Android.bp\n  media/codecs/amrnb/enc/test/Android.bp\n  media/codecs/amrwb/dec/Android.bp\n  media/codecs/amrwb/dec/test/Android.bp\n  media/codecs/m4v_h263/enc/Android.bp\n  media/codecs/m4v_h263/enc/test/Android.bp\n  media/codecs/mp3dec/Android.bp\n  media/codecs/mp3dec/test/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    legacy_by_exception_only\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\n    SPDX-license-identifier-Unicode-DFS\nto:\n  apex/testing/Android.bp\n  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Car/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/CarEmu/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoInput/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoOutput/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_by_exception_only\nto:\n  drm/mediadrm/plugins/clearkey/hidl/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: I8360756b326b891b56629127091540310851c941\nMerged-in: Ic169757d64ad8da7eebd0e1febdcbfb467fe81f4\nMerged-in: Ifa3fefe5dc12229e8043a54ffd1f3958d6b02310\nMerged-in: I1e32081a069c4c1b25aa200dcdb165c0feb07b8a\nMerged-in: Ib2050becaf89b8e4db5867bc601dedeb4eb8ebd2\nMerged-in: I5a4d51fb1244ed49bcd70e446aaa26e2aa8ed7b1\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "3ee519e182dfc26a7d6179604c816892385f3b03",
      "tree": "4148b6fb676d79604ceb54b5a5f4c0cd1f1f1738",
      "parents": [
        "686dac0cdb04834b889b1264f7a41c5d6ce25d2a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 06 16:56:22 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 07 11:14:56 2020 -0700"
      },
      "message": "aaudio: align AAudioServiceMessage for 32/64 bits\n\nChromebook sometimes runs 32 and 64-bit code together.\nThat caused messages between the code to be rejected because the\nstruct sizes did not match.\nSo we used alignas(8) to force members to 8 byte boundaries.\n\nBug: 155901581\nTest: Launch OboeTester\nTest: Tap TEST OUTPUT\nTest: Tap OPEN and START\nTest: You should get \"MMAP YES\" if MMAP is supported by the device.\nChange-Id: I0cd6a59a974888ef17b06b38fa78f032d602cd57\n"
    },
    {
      "commit": "cc2ebfc95d0925ad06cd368be6d7de557d1eaef5",
      "tree": "8ee765f8c2162282109abb22be7a1cb8df19caf2",
      "parents": [
        "303147efc0d6bd3f29e1da40720ddc175a78d388",
        "686dac0cdb04834b889b1264f7a41c5d6ce25d2a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 11:19:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 05 11:19:47 2020 +0000"
      },
      "message": "Merge changes I7f8339d8,Idff0c394 into rvc-dev am: 686dac0cdb\n\nChange-Id: If597e6b6a35e038c90090614dbdda35b0b5ce854\n"
    },
    {
      "commit": "6e463ce6fc456a3c185b80086d3605e2189eccd6",
      "tree": "5c897c19218b6ab714ad781076018079ef2b0240",
      "parents": [
        "4756a9f78b39c7aad0bd79c18b97bf8ed00b4bc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 13 10:20:20 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 05 02:54:41 2020 -0700"
      },
      "message": "aaudio: steal exclusive streams\n\nAn app (B) that asks for an exclusive stream can steal\nan exclusive stream from an earlier app (A).\nApp B will be given the MMAP resource as a SHARED stream.\nThe stream for app A will be disconnected and released\nby the service.\nIf app A reopens a stream then it will get a SHARED\nstream.\n\nThe order of the opening of the streams is controlled by using a\nrecursive_mutex in AAudioService::openStream().\n\nBug: 129846760\nTest: media/libaaudio/tests/test_steal_exclusive.cpp\nTest: also\nTest: Launch AudioTroubleMaker. It should say \"EXCLUSIVE\".\nTest: Press Home button.\nTest: Siren sound from AudioTroubleMaker should continue.\nTest: Launch OboeTester\nTest: TEST OUTPUT, then Open, Start\nTest: You should get an MMAP SHARED stream on Pixel.\nTest: Go back to AudioTroubleMaker. It should say \"SHARED\".\nChange-Id: I7f8339d8ed62546520a9b46ed398418b41ca2832\n"
    },
    {
      "commit": "4756a9f78b39c7aad0bd79c18b97bf8ed00b4bc6",
      "tree": "1c7c50f8858aec2db0f7f36362b8d0f0902cccdf",
      "parents": [
        "ef57c62b29c3612cfeecf01c8106cff6749849ca"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 01 16:53:13 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 05 02:54:27 2020 -0700"
      },
      "message": "aaudio test: test stealing an exclusive stream\n\nThis test starts an exclusive stream.\nThen a few seconds later it starts a second exclusive stream.\nThe first stream should get stolen and they should both end up\nas SHARED streams.\n\nSee comment at start of test_steal_exclusive.cpp for more information.\n\nBug: 129846760\nTest: this is a test\nTest: adb shell test_steal_exclusive\nChange-Id: Idff0c394ccee2310dd2d38e7715f823e50955e73\n"
    },
    {
      "commit": "05d836f7277d3b57d84062d9d26615c3543882aa",
      "tree": "5a1929f7842aa2430a19309f799ae0b4941860c3",
      "parents": [
        "6557a6c07d931a890b09f6fd68bd6a6adf4a04fa",
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 30 03:01:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 03:01:19 2020 +0000"
      },
      "message": "Merge \"AAudio: add missing \"Added in API level\" annotation\" into rvc-dev am: 199012b0c6\n\nChange-Id: I82bd2b8437b421ac9544ec7efa4a750df9f40d0d\n"
    },
    {
      "commit": "199012b0c66d555207d81fedb7cce16305c865f8",
      "tree": "85a8f493b6d1e3737e25d2eb98ed419626487898",
      "parents": [
        "fdb7e3c281d700d23f1d02cc94939e3500e1af2f",
        "b51e3ab86ecd6951e0814201467ef2a1885a39e5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 30 02:45:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 02:45:48 2020 +0000"
      },
      "message": "Merge \"AAudio: add missing \"Added in API level\" annotation\" into rvc-dev"
    },
    {
      "commit": "b51e3ab86ecd6951e0814201467ef2a1885a39e5",
      "tree": "f6364868ce8f1cd77a204d5eeec6bcee88a6ee7b",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 18:29:25 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:23:42 2020 +0000"
      },
      "message": "AAudio: add missing \"Added in API level\" annotation\n\nAdd missing \"Added in API level 29 annotation\" to\nAAUDIO_INPUT_PRESET_VOICE_PERFORMANCE input preset.\n\nBug: 138776432\nTest: make\nChange-Id: I2362ebd1520c95e81dfe8ea43105ea7b39cc04eb\n"
    },
    {
      "commit": "eb64895ba449f7d4297def3aaf8b695ac0c32cff",
      "tree": "b132e996ec44b221806be058714d348385a6057a",
      "parents": [
        "b4a3624bf8db0094170eaf23c283d6c68d05921d",
        "1100c1d18e0679da1152b31f787eefd282ff5b0d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 29 00:03:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 29 00:03:23 2020 +0000"
      },
      "message": "Merge \"aaudio: remove LOG_ALWAYS_FATAL_IF from metrics\" into rvc-dev am: 1100c1d18e\n\nChange-Id: Id1014d5414e5781977e2054b60afc33dad705a0f\n"
    },
    {
      "commit": "60c0c5e2787b1f46e14ace2cdbb39699cf9fc437",
      "tree": "290b53542bd090c9a29df95878959f236b0b2a38",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 28 14:16:38 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 28 14:40:26 2020 -0700"
      },
      "message": "aaudio: remove LOG_ALWAYS_FATAL_IF from metrics\n\nOld assert was for debugging. No longer needed.\nCaused a CTS failure in MediaMetrics logging.\n\nBug: 155188361\nTest: atest CtsNativeMediaAAudioTestCases\nTest: adb shell dumpsys media.metrics\nChange-Id: I592937d6a0683faf6835d3f0d5a982d02f59e7a9\n"
    },
    {
      "commit": "47144e50c87f7eaf5468335f477ca4daae0866b4",
      "tree": "a29a2d0f1a24e396947166485a3f29bb5f48dfd4",
      "parents": [
        "b58dd318a0f791fd829e5bdb0a4e3013e33f8e8d",
        "2578a95a57dd9796b55095dc22b8171dd5da73c3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 22:56:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 27 22:56:09 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Track AudioTrack and AudioRecord callers\" into rvc-dev am: 2578a95a57\n\nChange-Id: I7f325541010d6a82f84f2670bb4e5fd28c780e1c\n"
    },
    {
      "commit": "a6b270399fdacb09826e751657b7bb321652e3ac",
      "tree": "10091ff0524d2d29dcda00e63630d0f51b300655",
      "parents": [
        "669acb12c3092e581a1ecc347e6d573e96c8ca0e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 10:34:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 11:41:38 2020 -0700"
      },
      "message": "MediaMetrics: Track AudioTrack and AudioRecord callers\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nBug: 153658358\nChange-Id: If2b0a792cf4cc6c5b125513861b3dfb257bb3cbe\n"
    },
    {
      "commit": "450308011ee5010ecf7357c8aa46ccf9cab67776",
      "tree": "56d3db1cc4f526f67a42f3ace215e296d3aa7f00",
      "parents": [
        "04a1d7c3073a5613786dfa29f58d237ae02059dc",
        "02d69c15b683418de39901a74f1eea8ddbfcbf40"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 24 19:52:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 19:52:35 2020 +0000"
      },
      "message": "Merge \"audioflinger: add setCallerName() to AudioTrack\" into rvc-dev am: 02d69c15b6\n\nChange-Id: Ic0af3ba541c33a2ae928bf8a985dd503c2a3e1cd\n"
    },
    {
      "commit": "d3813f35753a8ce43b289656de2649fdf1afaacc",
      "tree": "c13f9f04349fdfe3ad043c8bdafaa4757e3a30ff",
      "parents": [
        "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 23 16:26:15 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 24 11:13:09 2020 -0700"
      },
      "message": "audioflinger: add setCallerName() to AudioTrack\n\nAnd also to AudioRecord.\nThen log the callerName using MediaMetrics from the destructor.\n\nThis can be used to tell whether AAudio or OpenSL ES\nor Java created the object.\n\nBug: 154543374\nTest: adb shell dumpsys media.metrics --clear\nTest: Run an app that uses audio.\nTest: adb shell dumpsys media.metrics\nTest: Look for \"callerName\" in the dump.\nChange-Id: I000346e72f581d2e40ef4fd0410b579d2a1224e2\n"
    },
    {
      "commit": "d74b9c0efbc0a7cce9c7aaa0204414612a64d8d9",
      "tree": "57e18d652a0daac9904248d4eb13fe0b18eeac39",
      "parents": [
        "3de3935a515ecefea19f5dbd251191fc63c20795",
        "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:41:54 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 14:41:54 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev am: cc40c5fa11\n\nChange-Id: I95149514982f70f1eb2cef58978a46ecf3bbb5dc\n"
    },
    {
      "commit": "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847",
      "tree": "7d2a46abbe29eb5b8ce6afacdf673eab55823ba5",
      "parents": [
        "784745befac68d978fe7abf09f0aeea33fb0e4ff",
        "a9876703e89afa6db42913d48e2360b7dad98725"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev"
    },
    {
      "commit": "a9876703e89afa6db42913d48e2360b7dad98725",
      "tree": "4e51b01b2fa4be83868318a1619e3b7c2f42f36e",
      "parents": [
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 18:16:15 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 23 18:00:10 2020 -0700"
      },
      "message": "aaudio: add MediaMetrics for MMAP streams\n\nLog events from service.\nLog start, stop, disconnect and other events.\nLog underruns and bufferSize.\n\nBug: 154543374\nTest: adb shell dumpsys media.metrics --clear\nTest: run an app that uses MMAP, like OboeTester\nTest: adb shell dumpsys media.metrics\nTest: Expect to see lots of \"audio.stream\" events.\nChange-Id: I690e5226b695d53d038d644f4438c759e08f9fbb\n"
    },
    {
      "commit": "9ddc336498d698a9d18fc0bdb4ddb1041421fdeb",
      "tree": "f0fa67821148a83ca82c8012f04f01aca609cbfe",
      "parents": [
        "03435d7d26f6d19d6c1cc6908bf38e5f34600781",
        "e202fc24bc2b4916ddfd8e52b5a7bffb9b5898e9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 21 04:06:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 21 04:06:27 2020 +0000"
      },
      "message": "Merge \"aaudio test: add tests for after release\" into rvc-dev am: e202fc24bc\n\nChange-Id: I153bed65878d84e24b50e44382f36a9090cdf563\n"
    },
    {
      "commit": "cc131ba465340201560fec288e9f8a063838dffa",
      "tree": "f9aa7fff07968c48cdc0d78f0e4c9cec79537e83",
      "parents": [
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 08:25:30 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 18:59:39 2020 -0700"
      },
      "message": "aaudio test: add tests for after release\n\nCall various functions after calling AAudioStream_release().\n\nBug: 154274446\nBug: 154274027\nTest: this is a test\nChange-Id: Ia0938362502b15a4ae5608f0619e0bc5ce78ca22\n"
    },
    {
      "commit": "a3155e1a1b73ff31f554e331d7fafc0379cc028e",
      "tree": "42ac4aed3beec565f3c318a344ce0de0cb58fe2a",
      "parents": [
        "a13c927e84cc21f01140f14bcb5ba32fca0fc80a",
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 20 22:37:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 22:37:03 2020 +0000"
      },
      "message": "Merge \"aaudio: free endpoint to prevent crashes\" into rvc-dev am: 6e89a07046\n\nChange-Id: Ieaddd431a350b4ebb9ebae0c544c7a9c573de132\n"
    },
    {
      "commit": "a13c927e84cc21f01140f14bcb5ba32fca0fc80a",
      "tree": "e28fc4beca5ce42bafa1e153e579dc6b856f0890",
      "parents": [
        "9ece4e96a0f4607d95a036a5ca7c919c2d790bcd",
        "67dc6a817304168d2b7db4e09cd622814ee39430"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 20 22:36:56 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 22:36:56 2020 +0000"
      },
      "message": "Merge \"aaudio: prevent starting from wrong state\" into rvc-dev am: 67dc6a8173\n\nChange-Id: Idd68ebcc1ef6cc099ddfb4ff71d9ac56353dab71\n"
    },
    {
      "commit": "5edc4eaef4e3950cf1e2642b9b1bd9209b78adc1",
      "tree": "fd017115b7fc03a9c6e1614a0710a70856a77714",
      "parents": [
        "2a52ad31f4880e46056566c99246749238dc5e5f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 08:15:42 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 13:43:54 2020 -0700"
      },
      "message": "aaudio: free endpoint to prevent crashes\n\nFree the AudioEndpoint and check for nullptr to\nprevent accessing shared memory that had been freed.\nThis is to protect against calls to the stream after\nAAudioStream_release() has been called.\n\nBug: 154274446\nBug: 154274027\nTest: libaaudio/tests/test_various.cpp\nChange-Id: I194d502fd48c4d31602ffce76aca6b28753ad7d2\n"
    },
    {
      "commit": "2a52ad31f4880e46056566c99246749238dc5e5f",
      "tree": "942d94b80c67abcf0518ac63e868e6d56e666fc7",
      "parents": [
        "ccc44f3f72a8d65c1d9fa829515eab478c647ebc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 10:28:41 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 13:41:12 2020 -0700"
      },
      "message": "aaudio: prevent starting from wrong state\n\nPrevent start after disconnect or release.\nPrevent start when already started.\n\nBug: 154272447\nTest: libaaudio/tests/test_various.cpp\nChange-Id: Ic17f45cb7d47563dbdd05a3535d419fbe3b286a4\n"
    },
    {
      "commit": "98333e7e503ebe99ee1b00356d7e74785ce5e32d",
      "tree": "9d2e17309295f09226dd63bcdb4519fe56f6b202",
      "parents": [
        "e20040df55a511f98aae5226bc4cc06ab9480a9e",
        "06eea6e497be029e3d1074cff8cab7a80d2f1c88"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 03:01:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 03:01:20 2020 +0000"
      },
      "message": "Merge \"aaudio test: check for uninitialized callback buffer\" into rvc-dev am: 06eea6e497\n\nChange-Id: Ib7460bc65128d98307532769653f5febccfecee6\n"
    },
    {
      "commit": "e20040df55a511f98aae5226bc4cc06ab9480a9e",
      "tree": "c484658783fb42a68616606f9f3778ed1daad187",
      "parents": [
        "a055c82b6d39838876632dbbc8e1f293094c4b80",
        "398fe58cbc76a61257934f195767b05ee0942563"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 00:03:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 00:03:55 2020 +0000"
      },
      "message": "Merge \"aaudio: initialize the callback buffer\" into rvc-dev am: 398fe58cbc\n\nChange-Id: If8cd3a147dad141f9304e4fa16bac72ef3c55f15\n"
    },
    {
      "commit": "9cf2382a913add09726934203270215beae3415e",
      "tree": "59823b0f550fcb892cebda45b2937317778a8874",
      "parents": [
        "bf821e2c39ac948d43e3fa19f6f517317e195060"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 11:53:35 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 15:12:24 2020 -0700"
      },
      "message": "aaudio test: check for uninitialized callback buffer\n\nThis can cause unexpected noise.\n\nBug: 154342174\nTest: this is a test\nChange-Id: I358dfa66ed5922eede38b902c36973740f6ab494\n"
    },
    {
      "commit": "bf821e2c39ac948d43e3fa19f6f517317e195060",
      "tree": "f6b8d1648690a9773a61fe49873ae7a3de24597d",
      "parents": [
        "01d9c845f00cae661e1764162f36d5156871a60b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 11:51:43 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 14:55:24 2020 -0700"
      },
      "message": "aaudio: initialize the callback buffer\n\nThis can prevent some loud noises during unit tests.\n\nAlso use std::unique_ptr\n\nBug: 154342174\nTest: libaaudio/tests/test_various.cpp\nChange-Id: I1c1dc0f4a6a29cf7d7a656392a81a325847de22d\n"
    },
    {
      "commit": "511614002fca7d7e9e9fc605859362c136ef6f22",
      "tree": "80eedb44e40eeedee1818be10d18c587c706b789",
      "parents": [
        "f972bfa7e61f7a8b6297fd310aac1906291b83bb",
        "01d9c845f00cae661e1764162f36d5156871a60b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 15 22:15:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 15 22:15:49 2020 +0000"
      },
      "message": "Merge \"AAudio AudioStreamLegacy: refine handling of AudioTrack teardown\" into rvc-dev am: 01d9c845f0\n\nChange-Id: Ib5d8e61c5104d8b1104836983a2d8d50597d5c8a\n"
    },
    {
      "commit": "68eff0530814ab4e0d29580885fec8de0bd37c96",
      "tree": "bf149b7f4be4d769714d18c4559052ec2058f0dc",
      "parents": [
        "433ccf7dca6db9ffd774cd10d539ccf9d62e3f46"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 18:28:41 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 15 20:24:42 2020 +0000"
      },
      "message": "AAudio AudioStreamLegacy: refine handling of AudioTrack teardown\n\nDo not systematically request a stream disconnect upon\nEVENT_NEW_IAUDIOTRACK received AudioTrack but only if the new\naudio Track properties have changed in such a way that the initial\ncontract is broken.\n\nBug: 139763500\nTest: OboeTester TEST DISCONNECT\nTest: OboeTester TEST OUTPUT while enabling/disabling Live Caption\nChange-Id: I3b43275a888e23471fcd1ce20725f5731a77a255\n"
    },
    {
      "commit": "887b1a3719b31f605147c5ee580f42f769d3e9ee",
      "tree": "f76572a43fc4ebf5c967e5537cb8c45f7ded08b8",
      "parents": [
        "da4faa6c2e50b6ab28dfd9a40289313239319d16",
        "42c1c38d7f0340f448b38dcf228b2e7753a2bcd2"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 14 02:10:00 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 02:10:00 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003cunistd.h\u003e\" am: 8a71223d5a am: 42c1c38d7f\n\nChange-Id: I7487c7d3e566736733b6510072f6a32c2c4534ac\n"
    },
    {
      "commit": "42c1c38d7f0340f448b38dcf228b2e7753a2bcd2",
      "tree": "5c2d51a723e7514ae3f31fdcbba7022e4143f31a",
      "parents": [
        "1c09d740e714fa8963a2399eed953cc2015f2519",
        "8a71223d5a998fd743ac3b25a799bc2cfedf2f86"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 14 01:48:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 01:48:52 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003cunistd.h\u003e\" am: 8a71223d5a\n\nChange-Id: Ia9c0bba3fa290221d00bbfd7aec4aab65db5e4f0\n"
    },
    {
      "commit": "7ae782545020eec1bfb9eb74e690ae26e2cca7fa",
      "tree": "b99f5db2f4d75aeddb175896c3fa67070b21154e",
      "parents": [
        "2ac41184ae00b2e99e55d995944288f33b2fce49"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "message": "Include what you use: \u003cunistd.h\u003e\n\nThis was transitively included, but no longer is, so it must be\nexplicitly included.\n\nExempt-From-Owner-Approval: Janitorial\nTest: build\nChange-Id: I78268a4867697bf797d40b5fead3745fdd0cc807\n"
    },
    {
      "commit": "ef0ade40f3acb3a9e95ad5f2efd2e6c4f8503824",
      "tree": "febd15b572587e578abd645ff80214c605e48fa4",
      "parents": [
        "4023d73e132d0170005e8acd922667fc8287ee86",
        "9e1f44b72a6a54520cbe07dc465af4678db315eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 09 07:57:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 07:57:31 2020 +0000"
      },
      "message": "Merge \"aaudio: minor cleanup in clock model\" into rvc-dev"
    },
    {
      "commit": "5347dca057618fd5aec3a9f11e357d69632b60e6",
      "tree": "4912b03e4fbf60ad400945c659c4f64b508f9749",
      "parents": [
        "7631aebd245289db732defca7f0d93d6528390ed"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:31:07 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:31:07 2020 -0700"
      },
      "message": "aaudio: use minimum of one burst in buffer\n\nThe old minimum was zero, which minimized latency\nbut was probably too aggressive for some devices.\nIt is better to avoid glitches.\nBecause of other changes in AAudio MMAP, this will\nhave the same latency as earlier version,\nbut better immunity from glitches.\n\nBug: 153589709\nTest: launch OboeTester\nTest: tap TEST OUTPUT\nTest: tap OPEN and START\nTest: notice that actual buffer size will be 1 * burstSize\nChange-Id: Ie53352a0589c710be11f74e995bd12be4f7c45a8\n"
    },
    {
      "commit": "9e1f44b72a6a54520cbe07dc465af4678db315eb",
      "tree": "841f306e598f4f233af1f6f419aff78b058137aa",
      "parents": [
        "7631aebd245289db732defca7f0d93d6528390ed"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:02:05 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:02:05 2020 -0700"
      },
      "message": "aaudio: minor cleanup in clock model\n\nInit mMaxMeasuredLatenessNanos\nUse default destructor.\n\nBug: 137009840\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ia9b42e4754047f5e87205c4adbc3329a1b96e74b\n"
    },
    {
      "commit": "d1f1cb68f567363a0b1e4cd4db6286afc6c8a1e2",
      "tree": "3b32985218612d05bf95fed08c18025d1735b2d4",
      "parents": [
        "06675ff30f63323905ff18c3c4e0d34a9fee4c60"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Mar 24 11:57:57 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Mar 27 11:33:09 2020 -0700"
      },
      "message": "Add audio attributes info when starting aaudio tracks on MMAP mix.\n\nIn aaudio, when adding tracks to mixed stream, it is needed to update\naudio attributes to HAL whenever the tracks are added or removed.\nCurrently, only the audio attributes used to open the stream will be\nsent to the HAL. In that case, adding audio attributes of the clients\nwhen starting the stream can help solve the problem. In audio flinger,\nthe client\u0027s audio attributes will be used to create MmapTrack.\n\nTest: play multiple aaudio tracks, add log\nBug: 77279923\nChange-Id: Ic1c536049e194a2bb7513425ee4828d52769d27f\n"
    },
    {
      "commit": "a3ded4badc9906ab9916d878009f1beb4791ce79",
      "tree": "7b9a6341450c779b30fed9844aa158ee5099bb4d",
      "parents": [
        "f110ec04f9c11e88d9d2f2d984a5f0d519d5f0db",
        "dbc9c5a3203dad5ffd5fe86b6f63c53020a82940"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 25 02:35:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 25 02:35:34 2020 +0000"
      },
      "message": "Merge \"aaudio: add checks for Binder return codes\" into qt-qpr1-dev am: d37b50dfb7 am: dbc9c5a320\n\nChange-Id: I836f6955c45d6e1feda4776ff6f90c35a207b0f9\n"
    },
    {
      "commit": "38ef26a93fe283da43048cef8071de46eb379238",
      "tree": "1c4c2149674a36222da368c8f38ced9bea5592b9",
      "parents": [
        "bc8a9381f5bed2dc8804644dd57e5b1777994858"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 06 14:52:15 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 16 20:00:24 2020 +0000"
      },
      "message": "aaudio: use unique_ptr in FixedBlockAdapter\n\nCode cleanup.\n\nBug: 151650670\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I980862379ade9b6cc62f1743c916208e3911a00a\nMerged-In: I980862379ade9b6cc62f1743c916208e3911a00a\n(cherry picked from commit 2f39c0b0fcbc5b857df2823247d163f2ba1c14a8)\n"
    },
    {
      "commit": "00a61b56186e072a55e2e101a704dc6809685e70",
      "tree": "4d44354280373c9ea3a6a5458419073eed052436",
      "parents": [
        "e03cebc75e19a6034780f77af3d30d151de7f4ee",
        "4b86749458715fbd6c9106100d7ddd54bfdc90ef"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 19 23:48:24 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 19 23:48:24 2020 +0000"
      },
      "message": "Merge \"aaudio: fix callback size for Legacy input\""
    },
    {
      "commit": "4b86749458715fbd6c9106100d7ddd54bfdc90ef",
      "tree": "d2ada0e90e7fef70575bbe722ccf47b6b80db8b4",
      "parents": [
        "b5c0071bb7a1c6524deb42ac6643d8fae3106248"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 12 10:58:05 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 18 16:40:39 2020 -0800"
      },
      "message": "aaudio: fix callback size for Legacy input\n\nSet the size of the callback buffer based on the device format\ninstead of the app format.\n\nBug: 149249791\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I0dc5724109a802eea15100782c18986a64e6acd2\n"
    },
    {
      "commit": "b00653c6d4d06736d208a6cacfeae50e886fce49",
      "tree": "4e5187fb8fbaeef03605a7667b46a5513a782820",
      "parents": [
        "cf24ad44c42d177403b8ecbb880ba54a9326b008"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 14:23:04 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 06 12:40:51 2020 -0800"
      },
      "message": "aaudio: add checks for Binder return codes\n\nBinder code was calling readInt32() but not checking the return code.\n\nBug: 139473816\nTest: see bug for proof of concept\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I9246382b657c2a1213d27c66fc006578553f7b1e\nMerged-In: I9246382b657c2a1213d27c66fc006578553f7b1e\n"
    },
    {
      "commit": "415617649cc63b0a7de25613da59f90298793e1e",
      "tree": "a4a70e6b62acaf46d0a007fc8c31ac8ca94c6717",
      "parents": [
        "b5c0071bb7a1c6524deb42ac6643d8fae3106248"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 05 14:20:33 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 05 14:20:33 2020 -0800"
      },
      "message": "aaudio: more docs for AAudioStream_release\n\nDescribe a reason for calling it.\n\nBug: 148954731\nTest: just a comment change\nChange-Id: I0bfe53de84590c8ad72178a21c109af13c3b7e93\n"
    },
    {
      "commit": "d52fb3773863f114f891e456834ba562ceab54aa",
      "tree": "985150cbf4da08d92b8abae16a57a9f0f62df9e4",
      "parents": [
        "69d367771be73184f6eb0c0d84bc64afdb311f18",
        "ba87a5444dcc6d03c75b8a89662ce8bb22dd030f"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Feb 01 18:21:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Feb 01 18:21:18 2020 +0000"
      },
      "message": "Merge \"Remove `pack_relocations: false`.\" am: bd592dc6d6 am: c1607781bd am: ba87a5444d\n\nChange-Id: I43a1aed905a843f00a3f17f83dc67fab79122f7c\n"
    },
    {
      "commit": "a170e61fb4e99fc56ab328b25180d321d278867e",
      "tree": "b45a8cc52707e1b9800c3058077a3352625b0454",
      "parents": [
        "f1de76e5d1f3ec3d7adbb89645b2d6db6995f567",
        "ea5c49e1742b24df216b097034d4be86adc17226"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 30 01:28:25 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 30 01:28:25 2020 +0000"
      },
      "message": "Merge \"aaudio: less alarming message for MMAP\""
    },
    {
      "commit": "ea5c49e1742b24df216b097034d4be86adc17226",
      "tree": "bec7bafdd0c4df6ebe8b345101045d7c27bc7e1f",
      "parents": [
        "3b4c1f0320efc7a54c4ab811727c432cda73dd37"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 15:01:41 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 15:01:41 2020 -0800"
      },
      "message": "aaudio: less alarming message for MMAP\n\nBug: 80192689\nTest: adb logcat | grep MMAP\nTest: run OboeTester, TEST OUTPUT, perfMode: None, OPEN\nTest: should see \"MMAP not available because\nTest:         AAUDIO_PERFORMANCE_MODE_LOW_LATENCY not used\"\nChange-Id: I164902abcfafb53a34685b9ef9ec5346842e1dda\n"
    },
    {
      "commit": "25532c7698517d734b5044dd325acdff2a857279",
      "tree": "5ee6ee79aee893567b9f572cfa1fbd12d2e510e5",
      "parents": [
        "3b4c1f0320efc7a54c4ab811727c432cda73dd37"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 14:23:04 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 14:23:04 2020 -0800"
      },
      "message": "aaudio: add checks for Binder return codes\n\nBinder code was calling readInt32() but not checking the return code.\n\nBug: 139473816\nTest: see bug for proof of concept\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I9246382b657c2a1213d27c66fc006578553f7b1e\n"
    },
    {
      "commit": "e1dd3532549277364663cc7916bde5bd46f6b8a4",
      "tree": "56fe714c195f7d15dbc310b39433a3c5fbc4862d",
      "parents": [
        "9d33c6344d36734f2175bd372f184c7deed4e868"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 10:09:39 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 29 10:09:39 2020 -0800"
      },
      "message": "Remove `pack_relocations: false`.\n\nThis was added to be able to test on O, but the proper change for O\ncompatibility would be to say `sdk_version: \"26\"` and let the build\nsystem adjust everything that needs changing.\n\nRemove these so we can remove `pack_relocations` entirely.\n\nBug: http://b/147452927\nTest: treehugger\nChange-Id: I4096209180c67128499e0850f2f21762e520b99a\n"
    },
    {
      "commit": "5277625231db4f313115fbcb6cefca7f2dfc2ce0",
      "tree": "288802a30819352b91c3b270329fb41b577928a0",
      "parents": [
        "bccf38e3fa6bc2a372c3a0d38c6274b68c0e5fb7",
        "7c96ea7ff84e1084332548583841735b694bfebd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "message": "Merge \"Remove mediametrics include symlinks\""
    },
    {
      "commit": "8b4e05ecee60bf08c9121c61d69526e076495766",
      "tree": "9879d2a21175f35e47545c03ec1a2a2ba46de933",
      "parents": [
        "0bc6f60e1f036380bd48d022631e6561b90f210c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 17 12:12:09 2019 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 22 13:31:58 2020 -0800"
      },
      "message": "aaudio: add AAudioStream_release()\n\nSplit close into close and release phases.\nRelease() will release hardware and service resources.\nClose() will delete the stream object.\nThis allows us to defer the deletion and avoid race conditions.\n\nThe CLOSING state is used to indicate that a stream has been released.\n\nAdded some test cases to test_various.cpp.\nA lone call to close() will automatically call release() so we should\nhave good code coverage for testing.\n\nBug: 136288001\nTest: adb shell test_various\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ia648838f30c521ba101f55259dbcd4594c1263cd\n"
    },
    {
      "commit": "773eeb29115ba9dbaf71ae526185b1c584cb76f2",
      "tree": "fc3231a6f9e1b8d6d0f5db2fdc483c8a75d85518",
      "parents": [
        "c55cdbafff6450155d4282a30ef025d6cecf5b3e",
        "76373c2644ac01ebe1eb79aaccf2986c3684cbdd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 22 18:34:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 22 18:34:48 2020 +0000"
      },
      "message": "Merge \"aaudio: add missing symbols and tests for capture privacy API\""
    },
    {
      "commit": "76373c2644ac01ebe1eb79aaccf2986c3684cbdd",
      "tree": "f93e3b973b6ab22b72b032d88c808819b74084dd",
      "parents": [
        "d1ce689ac43bfd6c75c2f15a349e475396d04dcd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 14 12:38:14 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 22 18:08:11 2020 +0000"
      },
      "message": "aaudio: add missing symbols and tests for capture privacy API\n\nAdd missing symbols for new APIs added to control if an input stream\nis privacy sensitive or not.\nAlso add tests for these new APIs.\n\nBug: 137850106\nTest: test_attributes\nChange-Id: Iab6e37a312dd295f705a3dfb69acddd131dc9142\n"
    },
    {
      "commit": "c55cdbafff6450155d4282a30ef025d6cecf5b3e",
      "tree": "e5aaa53d2052ac340f67e1d0c62991ee5a26420c",
      "parents": [
        "1ecc57a716bd7ace071d2d933a725ef6a566d6be",
        "3e8bbb91f15d1d14a2339bbec8a39c5f1a66a6af"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Jan 22 06:47:57 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 22 06:47:57 2020 +0000"
      },
      "message": "Merge changes from topic \"system_usages\"\n\n* changes:\n  Adding system usages to AAudio\n  Adding support for new System Usages\n"
    },
    {
      "commit": "3e8bbb91f15d1d14a2339bbec8a39c5f1a66a6af",
      "tree": "8ca1499304992e9ffdbc41787073629bac71e824",
      "parents": [
        "524159db6d53cecc93de4133e0875be937437883"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Fri Jan 10 13:37:05 2020 -0800"
      },
      "committer": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Thu Jan 16 15:59:25 2020 -0800"
      },
      "message": "Adding system usages to AAudio\n\nBug: 141006627\nTest: atest CtsNativeMediaAAudioTestCases:AAudioTests\nChange-Id: I64247a3f64f4f7cc32f6c85c2ff790f96831f707\n"
    },
    {
      "commit": "7c96ea7ff84e1084332548583841735b694bfebd",
      "tree": "eb5d7c1bcb91cea21469e46b7c014ae44635a217",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 10 15:46:22 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 16 15:55:18 2020 -0800"
      },
      "message": "Remove mediametrics include symlinks\n\nBug: 143245419\nTest: build\nChange-Id: I6c836e60c0fe078f5ab7370aec156bdd6e8dcbf0\n"
    },
    {
      "commit": "6e7bf72a8ac96d7f88ae406e94db851c41e551c2",
      "tree": "0eb22768bda2af626c4a8f61a9dfcccfad5e7d1b",
      "parents": [
        "39415ab6bc1260796a9af9de834cabb859d29c1e"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Thu Jan 16 12:41:08 2020 -0800"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Thu Jan 16 21:32:47 2020 +0000"
      },
      "message": "libaaudio removing diagnostic\n\nRemoving diagnostic mode for boundsan and integer overflow before release\n\nBug: 147144481\nBug: 143307218\nTest: N/A\nChange-Id: I8910aa439a691e8ee205c998f27fa4719108646c\n"
    },
    {
      "commit": "6363f4b0464b962324e9f2b48e0a3412a32b05eb",
      "tree": "5bb79b5eb459e41f247a37769df55bfdb586646d",
      "parents": [
        "d1ce689ac43bfd6c75c2f15a349e475396d04dcd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jan 10 14:06:51 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jan 10 14:06:51 2020 -0800"
      },
      "message": "aaudio test: allow zero buffer size\n\nTest was too strict.\n\nTest: adb shell test_various\nChange-Id: I465d7956f202b721e85272e39066f7503527c944\n"
    },
    {
      "commit": "62aa0219c222df7318aeae315908ab364413a032",
      "tree": "ba144a4c08568cf6c6a95df49010fe26b420b950",
      "parents": [
        "9c7e2a51e2fb24bbf193b46a3f5e892af19cdfe5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 06 16:00:58 2019 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 19 15:33:25 2019 -0800"
      },
      "message": "aaudio_loopback: port latency analyzer from OboeTester\n\nIntegrate with aaudio_loopback.\nEventually this could be used in the CTS Verifier for latency testing.\n\nPass std:string back from analyze().\nGeneral cleanup.\n\nTest: adb shell aaudio_loopback\nTest: check the latency.msec value\nChange-Id: Ibf7128d78d47d91e0bf314344ca450d7f70b3ceb\n"
    },
    {
      "commit": "6a87ed872a52467fc3807353dcbc706be8880641",
      "tree": "ed96c76483a60640e4973d8d8c0d3e599568a8f3",
      "parents": [
        "42afea265a65a4d0b22f5d2f2af72cbbb2631c80",
        "fb33f9bc854e269bb72520add2d4fa09d3d57cae"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:28:18 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:28:18 2019 +0000"
      },
      "message": "Added usage to init call for audiostream registration. am: 9fb726888d am: 3e6cbbc746 am: fb33f9bc85\n\nChange-Id: If630afb27bb5fdea0384e5fca1bbe4e7bd74955a\n"
    },
    {
      "commit": "fb33f9bc854e269bb72520add2d4fa09d3d57cae",
      "tree": "ddd9f36026c4f5f1c0121f62a6c5b87439433c43",
      "parents": [
        "42c4784b2a161f51bc52e57c8d8dbbd84986101e",
        "3e6cbbc746d141134a67098e385d1cf363630175"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:07:18 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:07:18 2019 +0000"
      },
      "message": "Added usage to init call for audiostream registration. am: 9fb726888d am: 3e6cbbc746\n\nChange-Id: Iaff4f7bf4773af90f5762f6fdb403b6e665fd499\n"
    },
    {
      "commit": "b66ad7275873ed4bc7fb50049d118856e29859eb",
      "tree": "2a987bf034917ee53eb0e4b4310a0272da5718d8",
      "parents": [
        "5882632b9a20a0935ef63189c90a9af092618929"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Fri Nov 08 18:25:39 2019 -0800"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Wed Dec 11 13:36:32 2019 -0800"
      },
      "message": "Added usage to init call for audiostream registration.\n\nPlayer type AAudio are always initialized with AUDIO_USAGE_MEDIA. Added\nfix to initialize with assigned usage.\n\nBug: 143578354\nTest: ran native application with usage of AUDIO_USAGE_NOTIFICATION\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I170e0b55d7f90b59d9b5129b22f4a9080957994b\nMerged-In: I170e0b55d7f90b59d9b5129b22f4a9080957994b\n"
    },
    {
      "commit": "9fb726888dda17b68fd924b963d34e6ce9454ba1",
      "tree": "bf96e99b9047f37c2a0734cf77ae0c8494615a11",
      "parents": [
        "960bbfab7bd5f2fff6afdecb920f21b8eb3fee45"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Fri Nov 08 18:25:39 2019 -0800"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Wed Dec 11 21:33:58 2019 +0000"
      },
      "message": "Added usage to init call for audiostream registration.\n\nPlayer type AAudio are always initialized with AUDIO_USAGE_MEDIA. Added\nfix to initialize with assigned usage.\n\nBug: 143578354\nTest: ran native application with usage of AUDIO_USAGE_NOTIFICATION\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I170e0b55d7f90b59d9b5129b22f4a9080957994b\n"
    },
    {
      "commit": "630f74baaf5280a78350fa1ecb7283768a5c4bf9",
      "tree": "e20620e03a8ef5db88b55dfe70edfaa926ef6c43",
      "parents": [
        "643a5692fb1d1b7b0e2c90faa217816f7b524c51",
        "d17c85023ac2058233121b8a94603687c855c997"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "message": "Merge \"Add explicit private audio recording request\""
    },
    {
      "commit": "d17c85023ac2058233121b8a94603687c855c997",
      "tree": "39fc63d6f1037eafb71dc8046aefedfadfee9b53",
      "parents": [
        "d203cb92c9c9628b3bead45ec08f826544c1d649"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 24 15:58:35 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 04 17:58:34 2019 -0800"
      },
      "message": "Add explicit private audio recording request\n\nAdd the possibility for apps to indicate that their\ncapture use case is private and that a privileged Assistant\nshould not be able to capture concurrently.\nThis allows to override the default behavior tied to the audio\nsource (e.g VOICE_COMMUNICATION is private by default but\nUNPROCESSED is not).\n\n- Add AAudio API to set and get privacy sensitive mode on input stream\n- Add MediaRecorder API to set and get privacy sensitive mode\n- Modify AudioSource constructor to accept audio attributes instead of an\naudio source to specify the use case.\n- Modify audio policy concurrent capture logic to use audio attributes\nflag instead of audio source to decide of a capture client has\nrequested privacy mode or not.\n\nBug: 137850106\nTest: CTS AudioRecordTest and MediaRecorderTest, manual audio smoke tests\n\nChange-Id: I250ea5da4c1da809ceac0da22ae9bee15b937001\n"
    },
    {
      "commit": "b485238eb33dc86c6afaba67ceaee23508e72130",
      "tree": "6d9a4bdcb7063d3fd844477caf223add744f16bb",
      "parents": [
        "b2872d478fbb66eddd59d8a35d81796850927153"
      ],
      "author": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Mon Dec 02 15:28:34 2019 -0800"
      },
      "committer": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Wed Dec 04 00:27:53 2019 +0000"
      },
      "message": "Add stubs so you can use libaaudio from an APEX\n\nBug: 142747680\nTest: compile, verify APEX mounts correctly\nChange-Id: I1350a8e110f5ffc6e1f8316c46a36b8a50b73fb6\nMerged-In: I1350a8e110f5ffc6e1f8316c46a36b8a50b73fb6\n"
    },
    {
      "commit": "99c47ff1654e4991fc971467c97ee8711239c859",
      "tree": "1845298a8f7e56bb1caa35e486de6bc7d92f69f0",
      "parents": [
        "cf4c8b8e7f09cf61ff416167f27f898d6ba96eb2"
      ],
      "author": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Mon Dec 02 15:28:34 2019 -0800"
      },
      "committer": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Tue Dec 03 11:32:25 2019 -0800"
      },
      "message": "Add stubs so you can use libaaudio from an APEX\n\nBug: 142747680\nTest: compile, verify APEX mounts correctly\nChange-Id: I1350a8e110f5ffc6e1f8316c46a36b8a50b73fb6\n"
    },
    {
      "commit": "03a2061d53de78b22fc625c40c284c34da6b4dd3",
      "tree": "ef25c052dfa84dc7b239cf1a47cc6b68c4405610",
      "parents": [
        "30ed594000d6ac4f833bbfcea48eca21ede716f6"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Tue Nov 05 16:18:31 2019 -0800"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Mon Nov 25 20:17:58 2019 +0000"
      },
      "message": "Libaaudio Integer Overflow Sanitizer Bug Fix\n\nUsed built in arithmetic overflow checking function in areas where integer overflow sanitizer exposed bugs with native test test_atomic_fifo.\n\nBug: 143307218\n\nTest: Ran the following native tests:\n  test_atomic_fifo\n  test_aaudio_recovery\n  test_aaudio_marshalling\n  test_n_streams\n  test_bad_disconnect\n  test_various\n  test_session_id\n  test_aaudio_monkey\n  test_attributes\n  test_interference\n  test_flowgraph\n  test_return_stop\n  test_stop_hang\n  test_full_queue\n  test_histogram\nRan the following Cts tests:\n  CtsNativeMediaAAudioTestCases\n\nChange-Id: Ie20ffc1a535dec22d81ec27918e2d3eadda21be2\n"
    },
    {
      "commit": "30ed594000d6ac4f833bbfcea48eca21ede716f6",
      "tree": "8ae61ef14aeeb0bd630635c357c5a05815b6c63e",
      "parents": [
        "54ae7b773e2e1e1f9e373e8d803c39f2295ed2f0"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Wed Oct 30 13:24:37 2019 -0700"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Tue Nov 05 08:37:01 2019 -0800"
      },
      "message": "Libaaudio Enable Integer Overflow and Bound Sanitizers\n\nTurned on sanitizer flags for integer overflow and bound checking for libaaudio and libaaudio_internal.\n\nBug: 143307218\nTest: Ran the following native tests:\n  test_aaudio_recovery\n  test_aaudio_marshalling\n  test_n_streams\n  test_bad_disconnect\n  test_various\n  test_session_id\n  test_aaudio_monkey\n  test_attributes\n  test_interference\n  test_atomic_fifo\n  test_flowgraph\n  test_return_stop\n  test_stop_hang\n  test_full_queue\n  test_histogram\nRan the following Cts tests:\n  CtsNativeMediaAAudioTestCases\n  CtsMediaTestCases\n  CtsMediaHostTestCases\nChange-Id: Ie6af19a5b9618f89f5416bc253ed69351911a359\n"
    },
    {
      "commit": "9ef4f8d690bc42a0f17d6036d70f6769578a76b5",
      "tree": "ff0f220dd8f096a0c77df0b5b81d80c260c41260",
      "parents": [
        "7d484ddc3d22c6d637ac39d9ea4416c0fe68949f",
        "8a58e7282343207d6dc9b7765ecc9969609d81d8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 30 08:17:48 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 30 08:17:48 2019 -0700"
      },
      "message": "Merge \"Consistently say \"Available since API level\".\" am: 2218ec1a22 am: 22cd27bcc5\nam: 8a58e72823\n\nChange-Id: Ie955a04f48091716a1cb5169444a84797f1ef76f\n"
    }
  ],
  "next": "64a3b064787f57525c64fb5431dafc01c3bb33c0"
}
