)]}'
{
  "log": [
    {
      "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": "c425880bfec08ec5a75566d90cff121ce52a9311",
      "tree": "5799dd282b1f98e8596dddd2bbafc2e5569a6411",
      "parents": [
        "210105afef4f6242fa431f2f67fe6c7cc0d11dcd"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Feb 08 17:14:17 2021 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Feb 08 17:14:17 2021 -0800"
      },
      "message": "libaudiohal: Fix initialization of SinkMetadata for HAL V7\n\nSince \u0027RecordTrackMetadata.channelMask\u0027 is a non-optional field,\nit must be initialized with a channel mask.\n\nBug: 171260360\nTest: atest audio_health_tests\nChange-Id: I8b9378064cd8660d64d7f58fe94377f89e92be45\n"
    },
    {
      "commit": "cc73ef07926e4bb94fa340890085c96f84ae7c91",
      "tree": "64c42f8fc897830ae911b08d21cd5e8a17b9d64f",
      "parents": [
        "cbf517f837f7bf8a59f3ff8aa1e0e3e19612e251"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 06 10:09:52 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Feb 03 01:31:12 2021 +0000"
      },
      "message": "Enable support for audio HAL V7 in the framework\n\nUpdate code in libaudiohal to augment it for the changes\nin the data types.\n\nMoved some conversion code out into a new effect utils\nlibrary under hardware/interfaces.\n\nRenamed VersionUtils.h to ParameterUtils.h to avoid\nfile name clash with the file from hardware/interfaces.\n\nBug: 142480271\nTest: m\nChange-Id: I45d1a8e4f3620f7e6f0a39dccadb7814c4bb086d\nMerged-In: I45d1a8e4f3620f7e6f0a39dccadb7814c4bb086d\n"
    },
    {
      "commit": "cbf517f837f7bf8a59f3ff8aa1e0e3e19612e251",
      "tree": "7209d74d37690d37fbd100c0ddbb44000a000cb5",
      "parents": [
        "6f7a1f3ed04e92c6caa9afd7295f8d51433f1696"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 14 01:51:36 2021 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Jan 30 01:00:20 2021 +0000"
      },
      "message": "Remove support for audio HAL V2 from the framework\n\nDevices on Android O will not be able to update\ndirectly to Android S.\n\nBug: 171260360\nTest: m, check phone audio\nChange-Id: Ib228794a760758f4721ffe33b219b736806c9d82\n"
    },
    {
      "commit": "3bea3a47bf6af84e58eada1964b8590f2727c3dd",
      "tree": "7d24fc611a5341a8aa0e7fde695563c1cb6f8355",
      "parents": [
        "991cfb08051f98b0d28733efda98c96fe1c76e2e"
      ],
      "author": {
        "name": "Kuowei Li",
        "email": "kuowei.li@mediatek.com",
        "time": "Thu Aug 13 14:44:25 2020 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 27 19:20:44 2021 -0800"
      },
      "message": "audio: add implementation for TV related API\n\n1. TunerConfiguration.\n2. AudioDescriptionMixLevel getter/setter.\n3. DualMonoMode getter/setter.\n4. PlaybackRate getter/setter.\n\nTest: TIS player with instrumented HAL\nTest: atest AudioTrackTest#testTunerConfiguration\nTest: atest AudioTrackTest#testDualMonoMode\nTest: atest AudioTrackTest#testAudioDescriptionMixLevel\nTest: atest AudioManagerTest#testGetAdditionalOutputDeviceDelay\nBug: 173482792\nMerged-In: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\nChange-Id: Idb22ce6714fa240b2b4b3b8637b16d3a51228fa1\n"
    },
    {
      "commit": "6109cdbc0b8ce3e32e71a29ecd3e774a8aa662fb",
      "tree": "990d82f194f8a000cd963d717cfa19ef610c825a",
      "parents": [
        "b572b63b6e788e036ff91058df2a7b3ba76ee1f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 20 18:41:04 2020 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 05 12:50:23 2021 -0800"
      },
      "message": "Audio HAL: add channel mask and tags to track metadata\n\nAdd channel mask and audio attributes tags to playback\nand record track metadata sent to audio HAL.\n\nBug: 168751366\nTest: make\nChange-Id: I06a63963e1be53bd965792dec607fa67a89f28bf\nMerged-In: I06a63963e1be53bd965792dec607fa67a89f28bf\n"
    },
    {
      "commit": "f242ab2eee8518a3cb9a94614c668c58dd7429ed",
      "tree": "c394bf33d224a23f68e48d761058a951f8b72fc9",
      "parents": [
        "e9ebb9efbcac3a27a26cb068ac5e8fd187bcaaa2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 14 23:19:54 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 16 01:14:00 2020 +0000"
      },
      "message": "Update usage of HidlUtils functions\n\nHidlUtils have received major changes for the upcoming\nV7 version of audio HAL. Some functions got updated.\nUpdate the code that was using them.\n\nBug: 142480271\nTest: m\nChange-Id: I693ebe17d0c063a1e28018fd55d7da0d9fa64b5d\nMerged-In: I693ebe17d0c063a1e28018fd55d7da0d9fa64b5d\n"
    },
    {
      "commit": "52915ac7140d1e143823e166f27e9f88f229be08",
      "tree": "145f89280cf252103d65d44329555a2aebd46873",
      "parents": [
        "2c52d5aec50e3dd40e6e8097e890c5ddb0fe9135"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 30 09:40:21 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 11 22:11:32 2020 +0000"
      },
      "message": "Update code after moving UUID conversions to their own class\n\nMechanical rename of usages of HidlUtils::uuidFrom/ToHal\nto UuidUtils.\n\nBug: 142480271\nTest: m\nChange-Id: I6634f44abaf0bdc528c33ee5cec564e1d7965ede\nMerged-In: I6634f44abaf0bdc528c33ee5cec564e1d7965ede\n"
    },
    {
      "commit": "e1877efb7964bcb3be72e3ebea75505ca9c4a6e8",
      "tree": "253dde96739f95347b2508e0ad0d89f02ddcdb4d",
      "parents": [
        "712dc00b6f00ae0cc9ff138e57c2820d007d4bd5"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Aug 07 00:16:35 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 20 01:30:58 2020 +0000"
      },
      "message": "Temporarily disable Audio HAL V7 modules\n\nThe new version is WIP, not all modules are compiling.\n\nBug: 142480271\nTest: m\nChange-Id: Ide3917762bf7522496f5495b212fd4c838b44c8a\nMerged-In: Ide3917762bf7522496f5495b212fd4c838b44c8a\n"
    },
    {
      "commit": "712dc00b6f00ae0cc9ff138e57c2820d007d4bd5",
      "tree": "38e8f78f5c7b3dc8ace1038bfda9b2c9e9846f1f",
      "parents": [
        "85486fc425122b2b1984bf323822a7b0933d8158"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jul 23 18:10:20 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Nov 20 01:30:40 2020 +0000"
      },
      "message": "Add Audio HAL V7\n\nAutomatic modifications made by copyHAL.sh script.\n\nBug: 142480271\nTest: m\nChange-Id: I6d85fece9360cd5190fa39c35dc5f3659af264c6\nMerged-In: I6d85fece9360cd5190fa39c35dc5f3659af264c6\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": "2c7d0d39443ac8e64987d3a73a6d8b20da1ed807",
      "tree": "e8a2a325299fa4b9024ca8fbbd07af9129f99daa",
      "parents": [
        "70e96c8d72768b76314a77a7d7b37157fb7f1ae4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 15 14:18:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 05 10:04:47 2020 -0700"
      },
      "message": "Update OWNERS\n\nTest: N/A\nChange-Id: I2d34e3c05e99191ae1d95fd3c5e6557c2b982965\n"
    },
    {
      "commit": "7997351bc447cbbff9dc255faf62bc89c1c180c6",
      "tree": "c7c20ace22c488e57290f9f51ea4c599e4acc5c2",
      "parents": [
        "40eb0159372c16376a0755e5b86a3f7586fc3294",
        "e9458106aa39881cfa08673faf752f6ca6ea8e94"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Jul 01 23:11:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 01 23:11:06 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003ccutils/bitops.h\u003e for popcount\" am: a4d629d311 am: e9458106aa\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1354145\n\nChange-Id: I1613f16bdb589ab57f6d687578b0af9cbc7c664b\n"
    },
    {
      "commit": "76a13443cbfc7af0561522af166937ef370e2b68",
      "tree": "ce5cd8c1203122b61d05e446929977a85856c4b3",
      "parents": [
        "dbb9895007a7ecee6e2cc62705b24ba08b09932d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 01 12:10:59 2020 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 01 12:14:19 2020 -0700"
      },
      "message": "Include what you use: \u003ccutils/bitops.h\u003e for popcount\n\nTest: builds OK\nChange-Id: Ie717272df285303a63518f0342e1a4d2f41362c3\n"
    },
    {
      "commit": "1c4794bfdee92c9491312432bd966d2439c49179",
      "tree": "0947f6dea04e00753357a87d2ab38cb9d6fd13e4",
      "parents": [
        "eaad70fbfcec64206f42a11071efa683efe0c3ab"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue May 05 10:08:05 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri May 08 00:37:55 2020 +0000"
      },
      "message": "Support query encapsualtion modes and metadata types.\n\nWhen a new device is attached to hardware module, query the HAL to get\nthe supported encapsulation modes and metadata types.\n\nTest: atest EnumDevicesTest, manually\nTest: atest audiofoundation_parcelable_test\nBug: 155799506\nChange-Id: I903e46e35a44416c9f2d206c128face8a6c61dcb\n"
    },
    {
      "commit": "fb9c73b74672434872a9f04061489e05fb226fe2",
      "tree": "dcbb344e801c4b43be3edf31baf61a181d9db68e",
      "parents": [
        "21762fa512c3d47bf0a78ffbfe3969ebabed2004"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 06 10:55:34 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 10 15:36:34 2020 -0700"
      },
      "message": "libaudiohal: Allow late registration of HIDL HAL services\n\nDevicesFactoryHalHidl registers a notification callback\nwith a service manager to get notified about registration\nof new HAL services.\n\nThe specific code for the MSD HAL has been removed,\nthis HAL service is now handled using the added generic\nmechanism.\n\nBug: 149854039\nTest: make\nChange-Id: I2f7f83dec11ac2390f674afd9e4451ef46dde04e\nMerged-In: I2f7f83dec11ac2390f674afd9e4451ef46dde04e\n"
    },
    {
      "commit": "7dfc94a0eac6070791f663b9fdb7121b740271e3",
      "tree": "dd5ed47203fc640ffcb81313ed992148c78bc775",
      "parents": [
        "1cd41d5ce183e92a84ba79da0016cb3eef545822",
        "88b30d2c1520112670472ae879b20cc33a1b6eb0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 10 19:07:24 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 10 19:07:24 2020 +0000"
      },
      "message": "Merge changes from topic \"fix-b-149854039-dynamic-hal-modules\" into rvc-dev\n\n* changes:\n  Plumb the notification about audio HAL services update to APM\n  libaudiohal: Allow late registration of HIDL HAL services\n  Allow for late audio module discovery in APM\n"
    },
    {
      "commit": "88de22ff76578985801dd7662acb07a5641298c1",
      "tree": "9e5d0a00ae62a24d245615fb826b84fd9901fabf",
      "parents": [
        "c0d04987f6f7bd6e054210b1ca33a827afce650b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 06 10:55:34 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 10 16:17:26 2020 +0000"
      },
      "message": "libaudiohal: Allow late registration of HIDL HAL services\n\nDevicesFactoryHalHidl registers a notification callback\nwith a service manager to get notified about registration\nof new HAL services.\n\nThe specific code for the MSD HAL has been removed,\nthis HAL service is now handled using the added generic\nmechanism.\n\nBug: 149854039\nTest: make\nChange-Id: I2f7f83dec11ac2390f674afd9e4451ef46dde04e\n"
    },
    {
      "commit": "f6eb4c388b6499752c2ee47b663956dcbf0dd7e4",
      "tree": "032329fc713202ce01d5e17420f47bd6025f041c",
      "parents": [
        "c62ad13ad8da6b31168f0d9f3e5f2a770ed0bbee"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Feb 25 14:06:25 2020 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Feb 26 16:16:44 2020 -0800"
      },
      "message": "Add callback for codec format change.\n\nWhen creating native audio track, a IAudioTrackCallback will be created\nsystematically. All callbacks will be cached in Threads and protected by\na lock. Whenever there is a callback event from audio HAL, it will\nfinally trigger callback to native audio track. Currently, there is only\none callback event, which is codec format change.\n\nBug: 150301890\nTest: manual\nChange-Id: I32293627ed923b17dd25f11f0ee0a0c35cd7c01f\n"
    },
    {
      "commit": "5c5b1bd7f805ac4592ec9873e65bffd3acb67c22",
      "tree": "f3c1b67c766e2136e59b0b13e7faaf0c2735a75d",
      "parents": [
        "eeb2d61b7f123b87c1fdb359035ced62e5f0dbb9",
        "78c75daf3af4f15fafef01aedafa34908f1809f6"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Feb 10 23:09:41 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Feb 10 23:09:41 2020 +0000"
      },
      "message": "Merge \"libaudiohal: Dynamically load appropriate HIDL shim library\" am: 74773d7374 am: bdd76a920b am: 78c75daf3a\n\nChange-Id: Ic19fc8e9d19caef117e08fc5950a42aa81cac00a\n"
    },
    {
      "commit": "d7b2ff012f4864ed0ab312595e39b508b84da39f",
      "tree": "f7e65283f5f8bb2337d53ef92abf4362d7769d99",
      "parents": [
        "7efed09e5ae8d9dd760d03373b69c7c42a545e47"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 07 13:51:04 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Feb 10 12:52:25 2020 -0800"
      },
      "message": "libaudiohal: Dynamically load appropriate HIDL shim library\n\nRemove static linking to libaudiohal@N.0.so libraries.\nInstead, use HIDL IServiceManager to figure out the actual\nversion used by the device and load the appropriate library\ndynamically.\n\nBug: 142480271\nBug: 148118201\nTest: make and check audio on the device\nChange-Id: I8e6eb9eeef3335da516d983d5d4f0f1b128ef0a6\n"
    },
    {
      "commit": "9b2064c3afe14f893afff019bdcd4c4d40ce13ed",
      "tree": "0a49d5049cfd60fb6de3387460f5bb41a58e2ed1",
      "parents": [
        "249dba6eb7b1f71a424290e1c58c3bedb76a0595"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 22 17:25:04 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 13 23:05:34 2020 +0000"
      },
      "message": "AudioFlinger: implement device specific audio effects\n\nAdd management of audio effects applied to a specific input\nor output audio device.\n\nA new class DeviceEffectProxy derived from Effectbase is added\nto represent an effect attached to a particular audio device type and\naddress. This proxy manages one or more actual EffectModule instances\nautomatically added to a playback or capture thread or directly to the\naudio HAL when the targeted audio device is used by an audio patch.\n\nA new DeviceEffectManager class is added to manage creation and release\nof DeviceEffectProxy instances and monitor creation and release of audio\npatches and create or release actual effect instances accordingly.\n\nBug: 136294538\nTest: make\n\nChange-Id: I23b9f9db4459136039c5ee327cf3b1aefa7db5af\nMerged-In: I23b9f9db4459136039c5ee327cf3b1aefa7db5af\n"
    },
    {
      "commit": "d700529501d45ab3d0a0b506b2b76cb0212cf5ce",
      "tree": "7537a0aec018dd1b76c662bfa8a3c2cddb79e5c0",
      "parents": [
        "fefebb5c9692a57aade8955996d7dee7748eb1ec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 13 12:57:33 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 10 11:11:58 2020 -0800"
      },
      "message": "Audio effect HAL: Add device ID to createEffect API\n\nAdd the possibility to specify a target audio device when\ncreating an audio effect by passing its audio port handle\nto createEffect API.\n\nBug: 136294538\nTest: make\nChange-Id: I32a6400278496653b4204175cd8a16d81f9724a0\nMerged-In: I32a6400278496653b4204175cd8a16d81f9724a0\n"
    },
    {
      "commit": "b82e6b724e45b1f88ed746c316b445b3bb8036b3",
      "tree": "4fd55853fe2b97b98bf27bff61142d9b2b92f28f",
      "parents": [
        "9ce5404e8ee6cf247a9004500cb91bf3b8114b14"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 22 17:25:04 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 07 17:05:07 2020 -0800"
      },
      "message": "AudioFlinger: implement device specific audio effects\n\nAdd management of audio effects applied to a specific input\nor output audio device.\n\nA new class DeviceEffectProxy derived from Effectbase is added\nto represent an effect attached to a particular audio device type and\naddress. This proxy manages one or more actual EffectModule instances\nautomatically added to a playback or capture thread or directly to the\naudio HAL when the targeted audio device is used by an audio patch.\n\nA new DeviceEffectManager class is added to manage creation and release\nof DeviceEffectProxy instances and monitor creation and release of audio\npatches and create or release actual effect instances accordingly.\n\nBug: 136294538\nTest: make\n\nChange-Id: I23b9f9db4459136039c5ee327cf3b1aefa7db5af\n"
    },
    {
      "commit": "231698afc6bec6524029a558e20d8386be0cc0a9",
      "tree": "9c1e53551fb61373210b0db3247c963a7ad30544",
      "parents": [
        "1e994a5d0c9544a8090a38e16822f3a5f11ca0f8",
        "73bdf5755213580f0f133092e50fc9a3a36f10f6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Dec 14 08:29:52 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 14 08:29:52 2019 +0000"
      },
      "message": "Merge \"libaudiohal: Use IDevice::updateAudioPatch in V6\""
    },
    {
      "commit": "42afea265a65a4d0b22f5d2f2af72cbbb2631c80",
      "tree": "2d3e13a0371e3f7fd35beebbe4c8c4e0fc75e329",
      "parents": [
        "880971c8f204ae755f1d4d3be7287aeb1041c42d",
        "bad151070e7cd45e3e5bc554f928beca88e98172"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 11 21:36:51 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 11 21:36:51 2019 +0000"
      },
      "message": "Merge \"Add AUDIO_INPUT_FLAG_DIRECT to Audio HAL constants\""
    },
    {
      "commit": "73bdf5755213580f0f133092e50fc9a3a36f10f6",
      "tree": "cebb08d63988237ec791646b419458691f2b9960",
      "parents": [
        "b7a56c52e001d2e361140b07ee1baad4c56e5b2c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 11 12:34:15 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 11 12:34:15 2019 -0800"
      },
      "message": "libaudiohal: Use IDevice::updateAudioPatch in V6\n\nUse new method IDevice::updateAudioPatch when the patch handle\npassed to DeviceHalHidl::createAudioPatch is not \"NONE\" instead\nof releasing and re-creating the patch.\n\nBug: 79248321\nTest: audio \"smoke\" test on coral\nChange-Id: Ifa37d828eb7817105d14d6451ed6121e9d6bb48f\n"
    },
    {
      "commit": "bad151070e7cd45e3e5bc554f928beca88e98172",
      "tree": "8fa748bdac1b3648e0c96081c992765cd620903a",
      "parents": [
        "b7a56c52e001d2e361140b07ee1baad4c56e5b2c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 10 16:44:19 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 10 16:44:19 2019 -0800"
      },
      "message": "Add AUDIO_INPUT_FLAG_DIRECT to Audio HAL constants\n\nThis flag used to be framework only. To simplify constants\nmanagement it\u0027s better to have it defined at all layers.\nCurrently it is only used for MSD module but potentially\ncan be used for HDMI inputs.\n\nBug: 141273649\nTest: use AOSP MSD on Pixel\n      atest VtsHalAudioV6_0TargetTest\n\nChange-Id: I19f6fdb2772878c93e41b635dc6adae83a9fecb0\n"
    },
    {
      "commit": "3b7f51b5fc7ee72f920ee6b749e7aa12a03e37d6",
      "tree": "a8cc15826720d0c409b51f01422c7d69c285f298",
      "parents": [
        "94876034876afd6f642dd1a0ad7c60aee05504d9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 13 12:57:33 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 09 09:46:17 2019 -0800"
      },
      "message": "Audio effect HAL: Add device ID to createEffect API\n\nAdd the possibility to specify a target audio device when\ncreating an audio effect by passing its audio port handle\nto createEffect API.\n\nBug: 136294538\nTest: make\nChange-Id: I32a6400278496653b4204175cd8a16d81f9724a0\n"
    },
    {
      "commit": "b680e955f474a2f81ed35383da67209bcbdd7d10",
      "tree": "8fd48d3bca98f5cc5d96415255711817fc209553",
      "parents": [
        "9e1e25dd418773ad5e574441962dcc771d3ec2a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 15:40:33 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Dec 05 13:00:07 2019 -0800"
      },
      "message": "media utils: dump audio HAL service before restarting audioserver\n\nAdd request to create tombstones of audio HAL servers before restarting\naudioserver process when the watchdog triggers.\n\nAdd audio device factory HAL interface API to retrieve HAL process pids when\npossible (on debug builds).\n\nAdd AudioFlinger service API to set audio HAL process pids from\nJAVA AudioService.\n\nBug: 141528385\nTest: Force watchdog and verify tombstone creation\nChange-Id: I68c1e8fb4db23e5952ad0c93d7d0b9d121b8ec18\nMerged-In: I68c1e8fb4db23e5952ad0c93d7d0b9d121b8ec18\n"
    },
    {
      "commit": "aff2869baaa20b33db5515e70b86450c5fc48e35",
      "tree": "79cf76a532109fffc2c2e3ad6cac4546aba4083d",
      "parents": [
        "b8269fd0946976cc820b0abb815f0fb67fc88b76"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Nov 22 14:10:57 2019 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Dec 05 10:11:19 2019 -0800"
      },
      "message": "Refactor for audio device type in conversion.\n\nAs audio device type can not be used as bit mask any more, refactoring\naudio device type usages in conversion from/to HAL. Use a set of audio\ndevice types instead of bit mask.\n\nBug: 135621476\nTest: atest AudioPlaybackCapture\nTest: play and capture audio with BT and usb headset\nChange-Id: If4a5c5002d6d4ccb7aaf823111b371d417784b19\nMerged-In: If4a5c5002d6d4ccb7aaf823111b371d417784b19\n"
    },
    {
      "commit": "c010683e081f48eb72e21cbcf0458efc17184e6b",
      "tree": "74e8898a4399b0b2fb3693379fcf80b5be1c9199",
      "parents": [
        "8d7522888db87e9533b286431f59c7e0b804a514"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Oct 24 14:58:31 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 17:42:00 2019 -0800"
      },
      "message": "Refactor opening output interface between AF and AP.\n\nRefactor interface between audio flinger and audio policy. Use device\ndescriptor instead of audio device type and address. DeviceDescriptor\ncan contain more information that may be useful when opening an output\nstream.\nIn audio policy, if multiple audio devices are passed in when opening\nan output stream, one device is extracted using the same strategy as\nwhen selecting a device for volume application. When starting source,\naudio policy manager will call audio flinger to create audio patch. In\nthat case, multiple devices will still be patched to the output stream.\n\nTest: atest AudioTrackTest AudioPlaybackCaptureTest\nTest: atest audiopolicy_tests, audio smoke test\nChange-Id: I46dc2da621614f8716c6c73cf807fe7d2d672cda\nMerged-In: I46dc2da621614f8716c6c73cf807fe7d2d672cda\n"
    },
    {
      "commit": "daf49955e69e45f7753ee4d02391816f5af31274",
      "tree": "c3495d8d6b67f3339050acd1ea1b143d694974be",
      "parents": [
        "5c65cc79f1f595d75834165e17ebe14d8b3288fe"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Nov 22 14:10:57 2019 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Nov 22 16:58:20 2019 -0800"
      },
      "message": "Refactor for audio device type in conversion.\n\nAs audio device type can not be used as bit mask any more, refactoring\naudio device type usages in conversion from/to HAL. Use a set of audio\ndevice types instead of bit mask.\n\nBug: 135621476\nTest: atest AudioPlaybackCapture\nTest: play and capture audio with BT and usb headset\nChange-Id: If4a5c5002d6d4ccb7aaf823111b371d417784b19\n"
    },
    {
      "commit": "5a20d9e97f3845da46e726c4ed53a4d470004ebf",
      "tree": "ae4638dd5bd56ab53130b6ab337cf36a7c1d437c",
      "parents": [
        "43251208e388077681869d639d6d9210e277460d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 20 14:20:01 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 21 10:59:07 2019 -0800"
      },
      "message": "libaudiohal: Call IDevice.close in HAL V6\n\nCall IDevice.close when the client doesn\u0027t need the device.\n\nBug: 114451103\nTest: adb shell stop\nChange-Id: I486db716be59cd4ea0f6d75d0e366f802ee9b06d\nMerged-In: I486db716be59cd4ea0f6d75d0e366f802ee9b06d\n"
    },
    {
      "commit": "3355e447a7c3ced0fedf5977f9d9e125feab9fcf",
      "tree": "90b57156cb03f23e498b759602dbd6f6fcc18c40",
      "parents": [
        "68db3a07ae337de45b82c6e45d41c2c325f8e2dd"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 20 14:20:01 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 20 14:20:01 2019 -0800"
      },
      "message": "libaudiohal: Call IDevice.close in HAL V6\n\nCall IDevice.close when the client doesn\u0027t need the device.\n\nBug: 114451103\nTest: adb shell stop\nChange-Id: I486db716be59cd4ea0f6d75d0e366f802ee9b06d\n"
    },
    {
      "commit": "42896a0774caae74ea8c982417ecbefb21913bc8",
      "tree": "6e352631b91856d118f052b8c180085837e4f07a",
      "parents": [
        "484d6119d3ca9140d415dc1841d4c0c500d76a20"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 15:40:33 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 08 15:26:09 2019 -0800"
      },
      "message": "media utils: dump audio HAL service before restarting audioserver\n\nAdd request to create tombstones of audio HAL servers before restarting\naudioserver process when the watchdog triggers.\n\nAdd audio device factory HAL interface API to retrieve HAL process pids when\npossible (on debug builds).\n\nAdd AudioFlinger service API to set audio HAL process pids from\nJAVA AudioService.\n\nBug: 141528385\nTest: Force watchdog and verify tombstone creation\nChange-Id: I68c1e8fb4db23e5952ad0c93d7d0b9d121b8ec18\n"
    },
    {
      "commit": "f22253bc9f5de5a164bf08389ae0f7a8f3fc4d40",
      "tree": "848e8b8f85ccbe051c013183f02529d64d11c06c",
      "parents": [
        "00538f18b8d22af1a27462a25cde65aa7cce33ef"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Sep 30 19:59:31 2019 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 07 14:35:19 2019 -0800"
      },
      "message": "Support Audio HAL V6\n\nTest: push V6 to device and check audio works fine\nBug: 134940862\nChange-Id: Ied5aeccdf8f1e9a085ed9cac9d696271b7a1bb63\nMerged-In: Ied5aeccdf8f1e9a085ed9cac9d696271b7a1bb63\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "00538f18b8d22af1a27462a25cde65aa7cce33ef",
      "tree": "3ab80637d13c01dd29483bc34d9978e1d398fccb",
      "parents": [
        "a8f139322e67234e9260e39176a8ab0f732134a8"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Jun 25 14:26:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 07 14:34:13 2019 -0800"
      },
      "message": "libaudioHAL: reduce version specific code\n\nBug: 134940862\nTest: Plays audio\nChange-Id: Ia8c99c0600425321b4b30ac341168101960eed59\nMerged-In: Ia8c99c0600425321b4b30ac341168101960eed59\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "a8f139322e67234e9260e39176a8ab0f732134a8",
      "tree": "d55a2c5865450ddae99272273099c6f18723a9f3",
      "parents": [
        "e4ff5510d91b613ea59055d0d95035cef1993a5d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Jun 25 16:08:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 07 14:32:51 2019 -0800"
      },
      "message": "Avoid querying the audio service twice\n\nBug: 134940862\nTest: run on target\nChange-Id: Ia884d0e926569d983ba12952817d2cecc8d8d34f\nMerged-In: Ia884d0e926569d983ba12952817d2cecc8d8d34f\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "4381040f77c2907c9a0ba27ece2e00241daadf0e",
      "tree": "b559f2cf74926949bd9f846c627ede38b734158f",
      "parents": [
        "c6fe9c424669d640d8bbe0fc7e130a34bab0b4bd"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Oct 24 14:58:31 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Oct 28 10:38:13 2019 -0700"
      },
      "message": "Refactor opening output interface between AF and AP.\n\nRefactor interface between audio flinger and audio policy. Use device\ndescriptor instead of audio device type and address. DeviceDescriptor\ncan contain more information that may be useful when opening an output\nstream.\nIn audio policy, if multiple audio devices are passed in when opening\nan output stream, one device is extracted using the same strategy as\nwhen selecting a device for volume application. When starting source,\naudio policy manager will call audio flinger to create audio patch. In\nthat case, multiple devices will still be patched to the output stream.\n\nTest: atest AudioTrackTest AudioPlaybackCaptureTest\nTest: atest audiopolicy_tests, audio smoke test\nChange-Id: I46dc2da621614f8716c6c73cf807fe7d2d672cda\n"
    },
    {
      "commit": "9672c53b739ba5307305c1874bc2ac8e88733116",
      "tree": "893d079d802e64a30c5fdc783b02b11057fb635b",
      "parents": [
        "7b12996173c219b168af186986349817df5bb5ea",
        "a4026674ceff52431cd119c58fbc27838d346c5e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 17 18:59:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 17 18:59:40 2019 +0000"
      },
      "message": "Merge changes from topic \"audio-v6\"\n\n* changes:\n  Support Audio HAL V6\n  Rename of the Vendor HAL\n"
    },
    {
      "commit": "53f78b65a144bd04f7b007f2a0776658fc4176cc",
      "tree": "3156f6604446132b26261bc163aa241d69f94b57",
      "parents": [
        "9ee56ec1a7ace45b42b65e01fdda98114b5c0833"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 13:08:50 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 08 09:41:49 2019 -0700"
      },
      "message": "Clean up libaudioclient includes\n\nTest: build\nChange-Id: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\nMerged-In: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\n"
    },
    {
      "commit": "a4026674ceff52431cd119c58fbc27838d346c5e",
      "tree": "15c23d2a0ffbb0b695d292c6e56d8def3d7b5094",
      "parents": [
        "c5b098a76b057f96d04f963e99456cb4e1d6a86f"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Sep 30 19:59:31 2019 +0100"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Oct 07 12:14:25 2019 +0100"
      },
      "message": "Support Audio HAL V6\n\nTest: push V6 to device and check audio works fine\nBug: 134940862\nChange-Id: Ied5aeccdf8f1e9a085ed9cac9d696271b7a1bb63\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "5d05fbe8ba38d16c21974688edd7ad567fe6205c",
      "tree": "49a1c1e3490131bbcb16df72a70fbcc4c6b37aaa",
      "parents": [
        "fb1fb155f9ec3a05ffa9e49f9415b565dcf8c163"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 13:08:50 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 08:17:31 2019 -0700"
      },
      "message": "Clean up libaudioclient includes\n\nTest: build\nChange-Id: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\n"
    },
    {
      "commit": "78cb7123b23c197b296d40b2ffb886bde97ddfc4",
      "tree": "db2db564be30a32fd02232f7bc856b53621eed8f",
      "parents": [
        "a4be0c37e92faf1579b05077d7e3cbef8b93db78",
        "8c7465931249ed0ffea7de99f2d736ce0bc607dc"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Sep 09 14:51:59 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 09 14:51:59 2019 -0700"
      },
      "message": "Merge \"Remove libhwbinder/libhidltransport deps\" am: 6cffe44e0f am: b7d2632c22 am: 2dc8ae5642\nam: 8c74659312\n\nChange-Id: I3ce106ae89de98eb9c438ccc30067a07b44da581\n"
    },
    {
      "commit": "af905470168892078ca85cbd77c844b07f46d1d7",
      "tree": "02acf167a294e18f49a8cf075aa6ee7eb21fbf68",
      "parents": [
        "1210f45ea764f0d186e55a19c068283a4ff6cfac"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Sep 06 12:08:49 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Sep 06 12:08:49 2019 -0700"
      },
      "message": "Remove libhwbinder/libhidltransport deps\n\nSince these were combined into libhidlbase.\n\nBug: 135686713\nTest: build only (libhwbinder/libhidltransport are empty)\nChange-Id: I6cc85a91afb603e31b85090917f9f3b59d82a4d1\n"
    },
    {
      "commit": "c6c78b6cb224a7985c61d47c6b3c2e39180831c3",
      "tree": "1db168b81debf2730a748470d146500df4e93590",
      "parents": [
        "4e00f928aee8a10d2c62920d21ade19aec14d343",
        "7075dc6a21f7439d6d3189b32a88f1adf7f87ed6"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 14 10:42:40 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 14 10:42:40 2019 -0700"
      },
      "message": "Merge \"Move ExtendedAudioBufferProvider and SingleStateQueue\" am: 2a70a39f4c am: 72d2412c27 am: 1cae73f318 am: 5fdaa0f7d2\nam: 7075dc6a21\n\nChange-Id: I2b775d9274b8d0e0e5419c5e945a67a089bb8149\n"
    },
    {
      "commit": "72d2412c271237aa6dfa2a75c41c8c0f69999b34",
      "tree": "5a4e3e6534daafd5c8bdf61be5cacfb21d73c084",
      "parents": [
        "5369de1fd662aa373cbbf4cf5368c66da74d51db",
        "2a70a39f4c88c531be1a7087e6b241532ee0024d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 14 10:14:49 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 14 10:14:49 2019 -0700"
      },
      "message": "Merge \"Move ExtendedAudioBufferProvider and SingleStateQueue\"\nam: 2a70a39f4c\n\nChange-Id: I993318e2a9a5bba3aa65ee8319d80bebb537df50\n"
    },
    {
      "commit": "9f3c02d15167b98b9208687e7e30e07149efbf2d",
      "tree": "60cb2b95b2a1eb630697b5014a05713e4c899366",
      "parents": [
        "646a332acfc525e94e6c1898544201052efa4fc8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 12 11:36:05 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 12 11:47:19 2019 -0700"
      },
      "message": "Move ExtendedAudioBufferProvider and SingleStateQueue\n\nMove ExtendedAudioBufferProvider.h to libaudioclient. This is\na more appropriate location because EABP extends AudioBufferProvider.\n\nMove SingleStateQueue.h to libnbaio_mono. This is a more appropriate\nlocation because SSQ is a non-blocking queue.\n\nThis allows to remove the dependency of libnbaio on libmedia\nwhich is a good thing because libnbaio provides more low-level\nabstractions than libmedia.\n\nAlso, replace a dependency of libnbaio on libbinder with\na dependency on libaudiohal header library.\n\nTest: make\nChange-Id: Ie48b523790cd8230695ec2e4710e50981b616289\n"
    },
    {
      "commit": "f419435ea9e2b21cf3bac2f67e2d9c608a0031a3",
      "tree": "36b65afe5a84610eeb3474ef0b1fd56816cc330e",
      "parents": [
        "b9448c72d5173dc4f1d6c1fc26581722149a0d13"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Jun 25 14:26:29 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Jun 28 10:25:34 2019 -0700"
      },
      "message": "libaudioHAL: reduce version specific code\n\nBug: 134940862\nTest: Plays audio\nChange-Id: Ia8c99c0600425321b4b30ac341168101960eed59\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "b9448c72d5173dc4f1d6c1fc26581722149a0d13",
      "tree": "dea450194d95db2b5f5ebf1d2a29dc2c1b016863",
      "parents": [
        "a00399b46755310ad2407075c69b0caa3cb5838d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Jun 25 16:08:29 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Jun 28 10:07:58 2019 -0700"
      },
      "message": "Avoid querying the audio service twice\n\nBug: 134940862\nTest: run on target\nChange-Id: Ia884d0e926569d983ba12952817d2cecc8d8d34f\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "8711cfda98b1a2ab421b2a7792866681b363c1c2",
      "tree": "22b5e883c3503ba9de88e2b8f34d75bd8a733b5e",
      "parents": [
        "8b7a6326397a6645fbc8abb4d1fa0b32d5999236"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 10 18:06:33 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 10 18:06:33 2019 -0700"
      },
      "message": "audio HAL wrapper: createAudioPatch handle reuse\n\nAdd workaround for missing patch handle in HIDL\ninterface createAudioPatch() method signature.\nThe legacy HAL implementation has the convention of releasing\nprevious audio patch when a valid patch handle is passed.\nThe framework relies on this optimization and does not release previous\npatch explicitly when just updating the sinks of an existing patch.\n\nBug: 117744819\nTest: repro steps in bug\nChange-Id: I93e19e4b16b0beac31438cffd0553f5db3117a1e\n"
    },
    {
      "commit": "8c2e58218d9fc78c3beefc0f7c12afb39e7d0b61",
      "tree": "f0e1f325ef53037e7feec21a9482a3e230b9e8c7",
      "parents": [
        "09cc4b1d530e550167c4ad01c84559c8797e0ff8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 01 18:09:07 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 01 18:09:07 2019 -0700"
      },
      "message": "StreamHal: Enable audio power log for user builds\n\nTest: Flash user build, check AudioFlinger dumpsys\nBug: 129704879\nChange-Id: I9a4665b8588d30279701ca5ae18d5bd353702f4a\n"
    },
    {
      "commit": "1234008771662d2b250d6d4972adb04de963fb0d",
      "tree": "d050c75b3935ed9d20676312df0e7cd1d94cd13c",
      "parents": [
        "60c73a445b632cc2e233b1a275efeee7414a41a4"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Mar 19 09:35:05 2019 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Mar 21 21:51:49 2019 -0600"
      },
      "message": "API changes in MicrophoneDirection\n\nBug: 128523813\nTest: Build, Testbed app\n\nChange-Id: I7b5ee8ba4eec1090866d8aef891a98d50cd09cc5\n"
    },
    {
      "commit": "628286b620d10a2395252a5bab7067bee0f221f6",
      "tree": "668fd26f6f15f6ba6f4b813d7ca8879a5dd14525",
      "parents": [
        "fe610f0fa30cf58c448f718c05d53208431baf08",
        "a31eb276a30e07c6431da1e5ea093fd8f3e3bf55"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Mar 11 09:13:27 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Mar 11 09:13:27 2019 -0700"
      },
      "message": "DO NOT MERGE - Merge PPRL.190305.001 into master\n\nBug: 127812889\nChange-Id: I96d8fdd0e8a40a783a2f4ee91a01dbad44a22956\n"
    },
    {
      "commit": "4d54767b7dad323de5f747096f5cdeea0d7691e5",
      "tree": "3c00980eb567404023bdd03bdc00ed2b906c684f",
      "parents": [
        "16be62ccbfa98508b375c9594728a951ada0021c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 22 14:19:19 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 22 14:19:19 2019 -0800"
      },
      "message": "audio: Add support for dumping info from effect HAL modules\n\nThe implementation uses IBase::debug() method which can write\ndebugging info into the provided file descriptor (same model\nas used for devices and streams).\n\nBug: 69939533\nTest: adb shell dumpsys media.audio_flinger\nChange-Id: I02a74b51977d105edf6f7e624ea26f866c965708\n"
    },
    {
      "commit": "ae1f662a30fe5aea14a020111fe245b2fad3e5b5",
      "tree": "24b76d5a4127cdfe2cbc245a6e7c6b192f317cff",
      "parents": [
        "05677f7f44a753b756709ddbd7eebdffa34f62f4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 21 15:20:05 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 21 15:20:05 2019 -0800"
      },
      "message": "libaudiohal: Allow get/setMasterVolume invocation on IDevice\n\nget/setMasterVolume are defined on IDevice, but DeviceHalHidl\nwas restricting calls to it only for IPrimaryDevice. This seems\nlike a bug lingering from the initial implementation of the shim.\n\nTest: make\nChange-Id: Ia028959690a5ab71aade14d12d5c12488dc83e41\n"
    },
    {
      "commit": "7b417a29df10d12d4cd019e5b3fcaaf2c1208420",
      "tree": "1e085c2078e5c75a008a1892ec2afd099efe2636",
      "parents": [
        "2637984613a75eb2640a73e186a6dd1f08cebbc0"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Thu Jan 31 20:39:42 2019 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 31 17:20:40 2019 -0800"
      },
      "message": "Fix audio HAL 4.0 StreamHalHidl setParameters\n\nTest: make\nChange-Id: I944c417d9b9e51fb39950dd53f2c1ce7b7a818bb\n"
    },
    {
      "commit": "3903e9f58fdbdea94052f5870792f1e61a2f0f2b",
      "tree": "084a33e117db465218fdae52984e1b26d58113fa",
      "parents": [
        "aa1523c14af06a2f213e570d12ce01b71422b26a",
        "b4e037e01450cbc99191a89e507805974d347899"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 18 03:37:23 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 18 03:37:23 2019 +0000"
      },
      "message": "Merge \"AudioFlinger: provide downstream sink device to software patch source\""
    },
    {
      "commit": "bf06f7afdbd7019614c9e31ce43301457a3a7d55",
      "tree": "67fd35b19109aa8a9ebb0a5fec14d51486770f79",
      "parents": [
        "1dfd7ba8c05ff5c8a51f69a3042f3870d99463d4",
        "03a6e6a08dbda1c94e0c9ce6fba4a4abd3df6d59"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Thu Jan 17 21:34:35 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 17 21:34:35 2019 +0000"
      },
      "message": "Merge \"Adding Audio HAL V5: Direction API\""
    },
    {
      "commit": "f6a40939fb77aace764df0cde4f354deae6b9883",
      "tree": "2bb1b69f410b9975e647cadbeb0279393565cd51",
      "parents": [
        "7436115ffe6a5387d8fc11780a4f6ce104c7fb1b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 14 10:48:17 2018 -0800"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Jan 16 18:56:00 2019 +0000"
      },
      "message": "audioserver: Use \u0027_exit\u0027 instead of \u0027exit\u0027 in HalDeathHandler\n\nUsing \u0027exit\u0027 from an RPC threadpool thread is not safe, as \u0027exit\u0027\nruns atexit handlers that destroy global objects. This can interfere\nwith code still running on other threads.\n\n\u0027_exit\u0027 does not run atexit handlers, just terminates the process.\n\nBug: 116665972\nTest: kill android.hardware.audio@2.0-service, check logcat\nChange-Id: I5391a659e359e0ca5bba580f1c51dea5df3ea562\n(cherry picked from commit 5beb4810060cda2afea1c89f98caf5c337763c0a)\n(cherry picked from commit 06c5d535332898944d627b6e114d1f39ae3e6c86)\n"
    },
    {
      "commit": "b4e037e01450cbc99191a89e507805974d347899",
      "tree": "9e1dff2e3afe399eec542594a4ed480a9d1adf99",
      "parents": [
        "8292a716361d0f02de2b79242aec4630664bc770"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 14 15:56:33 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 14 15:56:33 2019 -0800"
      },
      "message": "AudioFlinger: provide downstream sink device to software patch source\n\nWhen opening an input stream for a software patch, pass in\nthe downstream destination device info. This helps the intermediate\nmodule to set up any device-specific processing.\n\nNote that the intermediate module must implement Audio HAL V5.0\nin order to be able to receive this information. It\u0027s not available\non the legacy audio HAL API either.\n\nBug: 120859615\nTest: make\nChange-Id: I542a47d2c299fe19f576d5f5c2b237cc00ae5b93\n"
    },
    {
      "commit": "03a6e6a08dbda1c94e0c9ce6fba4a4abd3df6d59",
      "tree": "e609e29b32764e6fd970f16c78d3bbee5be401bb",
      "parents": [
        "c2684ac61bdbfd9913cf1361a6436272756bc6d6"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Dec 04 10:54:13 2018 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Dec 20 17:37:55 2018 -0700"
      },
      "message": "Adding Audio HAL V5: Direction API\n\nBug: 119137468\nTest: Testbed app.\n\nChange-Id: I1b3c81079000958da80d36616fe06930d876aac3\n"
    },
    {
      "commit": "d9499eb6d127dc53c8aa3deda05a70b03fc464f3",
      "tree": "3fbd4fecd32316f1088dda7785f5f6ecbdbbec93",
      "parents": [
        "4f20844fd9137a1691f59b598e52cd9ada0753d2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 17 16:23:22 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 18 13:01:50 2018 -0800"
      },
      "message": "Audio HAL: Update for the new definition of SinkMetadata\n\nIn Audio HAL V5.0 SinkMetadata receives a new member: optional\nDeviceAddress. Use per field initialization to leave\nthe safe_union in an uninitialized state.\n\nBug: 120859615\nTest: make\nChange-Id: I358b9abbcb0690aebb2c658a72adb287ceec22b5\n"
    },
    {
      "commit": "04395fafea962f68193a3394ae7d460f6c95ade5",
      "tree": "bbd51952890f67c912659d7a340759045df41fd4",
      "parents": [
        "8c3773d839cb2127eafeae4619f98150d1ea2d3d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 14 15:07:26 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 14 15:49:35 2018 -0800"
      },
      "message": "Audio HAL: More generalization for types imports\n\nUse namespace import in ConversionHelperHidl.cpp.\n\nTest: try moving types between audio/types.hal and common/types.hal.\n\nChange-Id: I7ffab98d0e3b8bbc82ab94b8d99b7d05e224e1e4\n"
    },
    {
      "commit": "5beb4810060cda2afea1c89f98caf5c337763c0a",
      "tree": "377deb29ea3236a151adf09f32806b79f642304c",
      "parents": [
        "bcfd6df4b678246993f3c6ae12c0027aba041aa2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 14 10:48:17 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 14 10:48:17 2018 -0800"
      },
      "message": "audioserver: Use \u0027_exit\u0027 instead of \u0027exit\u0027 in HalDeathHandler\n\nUsing \u0027exit\u0027 from an RPC threadpool thread is not safe, as \u0027exit\u0027\nruns atexit handlers that destroy global objects. This can interfere\nwith code still running on other threads.\n\n\u0027_exit\u0027 does not run atexit handlers, just terminates the process.\n\nBug: 116665972\nTest: kill android.hardware.audio@2.0-service, check logcat\nChange-Id: I5391a659e359e0ca5bba580f1c51dea5df3ea562\n"
    },
    {
      "commit": "595caa3bb29626a8da08c318dc009213bd94adca",
      "tree": "55287233440ceef9377791c52c7903fea068b9fd",
      "parents": [
        "801757712fc9f478a1207fe272dd343f332d4a33"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 13 11:08:28 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 13 11:08:28 2018 -0800"
      },
      "message": "Audio HAL: Simplify types updates for \u0027common\u0027 and \u0027effect\u0027 packages\n\nInstead of importing every single type individually (\"using \u003ctype\u003e\"),\nimport entire namespaces of\n::android::hardware::audio::common::CPP_VERSION and\n::android::hardware::audio::effect::CPP_VERSION\ninside the \"implementation\" namespace in the default implementation.\n\nThis simplifies modifying types, as it is not needed anymore\nto surround \"using \u003ctype\u003e\" directives with #if MAJOR_VERSION ...\nNote that the contents of the namespaces are imported inside\nthe \"implementation\" namespace, which reduces risks of name collision\n\nEnclosed EffectHalHidl and supporting classes into \u0027effect\u0027 namespace\nbecause importing namespaces of ::a::h::audio::effect::CPP_VERSION and\n::a::h::audio::CPP_VERSION into the same namespace, as it happens\nfor StreamHalHidl.cpp module, causes name conflicts.\n\nTest: make\nChange-Id: Ia37d672605c7541b19ee40fc1b58eabaa9ed8e17\n"
    },
    {
      "commit": "9ccaa1669136b37c6dec8a9fb701be61b8ce1bf0",
      "tree": "75a50b2e015b59e4b9414af45876009ab40b12bc",
      "parents": [
        "6b01bf3f93113ea19c4f1e8dfd65fe9da7f1a0c9"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 12 10:27:29 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 12 10:27:29 2018 -0800"
      },
      "message": "Audio HAL: Simplify types updates for \u0027common\u0027 and \u0027audio\u0027 packages\n\nInstead of importing every single type individually (\"using \u003ctype\u003e\"),\nimport entire namespaces of\n::android::hardware::audio::CPP_VERSION and\n::android::hardware::audio::common::CPP_VERSION\ninside the \"implementation\" namespace in the default implementation.\n\nThis simplifies modifying types, as it is not needed anymore\nto surround \"using \u003ctype\u003e\" directives with #if MAJOR_VERSION ...\n\nNote that the contents of the namespaces are imported inside\nthe \"implementation\" namespace, which reduces risks of name collision\n\nAlso, fixed the namespace for HidlUtils--it needs to be in\n\u0027implementation\u0027.\n\nTest: make\nChange-Id: I8461d2ac3ad5d8ad4df4a15d99430ae0d7a5ccef\n"
    },
    {
      "commit": "1cf6b4dff62ffa9a3a329ceda23a0a55870adbb4",
      "tree": "15c3b83bc95eea3a29ba8d1a6b5756dfbef86f34",
      "parents": [
        "3d48dcea93b4ff5df265c32f0a61e572e7132415"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Nov 20 18:05:44 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sun Dec 02 17:35:18 2018 -0800"
      },
      "message": "libaudiohal: move to Stream Metadata to common\n\nSo that it can be used by the Bluetooth HAL.\n\nTest: compile\nChange-Id: I5b122d329811de2c10fc25f457a0eed7b5ece7b6\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "3d48dcea93b4ff5df265c32f0a61e572e7132415",
      "tree": "2d9c8abaa08379e41208098fe4a4efb499669c9d",
      "parents": [
        "1268b28c5c65691532d3ffb503a199c677c801b9"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Nov 08 17:16:57 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sun Dec 02 10:53:59 2018 -0800"
      },
      "message": "libaudiohal: Introduce support HAL V5 identical to V4\n\nThe V5 HAL is identical to V4 for now.\nDifference will be added in followup patches.\n\nBug: 118203066\nTest: compile\nChange-Id: I3db5d62cc2412766d8d0a78dab57455236a5019e\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "d46012025aed1bc366982bc0edc93c56c034828e",
      "tree": "5213e0ab66d8d13803687507d38c60dee12ac11e",
      "parents": [
        "2a2837d0dcc63d834b9ca313bf322f967a989eec",
        "7a9f05a68512926f81339d3e42def2ecd9adffa0"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Nov 30 22:20:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 22:20:40 2018 +0000"
      },
      "message": "Merge changes from topic \"audio-pre-v5\"\n\n* changes:\n  libaudiohal: EnumConverter renamed to EnumBitfield\n  libaudiohal: Factorize with audio HAL utils\n  libaudiohal: Factorize more between version\n"
    },
    {
      "commit": "7a9f05a68512926f81339d3e42def2ecd9adffa0",
      "tree": "6d9bab6279e88dce167fc4f8bdf7a02f2eefb0da",
      "parents": [
        "bb165dcf6bfb61dc0a1a09a73d52af7cfe127ed2"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Nov 28 16:52:25 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Nov 28 17:54:34 2018 -0800"
      },
      "message": "libaudiohal: EnumConverter renamed to EnumBitfield\n\nEnumConverter scope was reduced to just convert to/from bitfield\nand its underlying type. This allows for operator\u003d conversion support.\n\nAs part of this rework and to better express the new class behaviour,\nit was renamed as EnumBitfield.\n\nTest: compile\nBug: 118203066\nChange-Id: I2dc108cb3e1757e685490cae978cb62cbf276423\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "bb165dcf6bfb61dc0a1a09a73d52af7cfe127ed2",
      "tree": "4fbf04b82655d1d594cf44408228474e468b2190",
      "parents": [
        "95213bf7d0d5960cd76e64a44b59b49637fefd22"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Nov 10 06:28:41 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Nov 28 17:54:34 2018 -0800"
      },
      "message": "libaudiohal: Factorize with audio HAL utils\n\nUse VersionMacro from the HAL utils.\n\nBug: 118203066\nTest: compile\nChange-Id: If74b73eef7735d3f5a0a4b135a0476c4a77daddc\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "95213bf7d0d5960cd76e64a44b59b49637fefd22",
      "tree": "074671e647b5304c61dd41ebaeff33875cc9faa9",
      "parents": [
        "4183d37fcc58ed1e221c72b298f2d95c9b656c01"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Nov 08 17:16:57 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Nov 28 17:54:34 2018 -0800"
      },
      "message": "libaudiohal: Factorize more between version\n\nUse macro in include to avoid duplicating all the headers.\nThat will be useful when a third version is added.\n\nBug: 118203066\nTest: compile\nChange-Id: I8972b9ac9d098b32c9e7de48ff0544440c29adbf\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "ac917aca235ff5170f00c2ee933f41f07a40232d",
      "tree": "2927cc6419b7fe615ccdc977224f6f3ed656f58e",
      "parents": [
        "e4eb88fa5fe62a9b6b709fbf2ff26f37acf6db20"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 28 14:03:52 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 28 14:44:17 2018 -0800"
      },
      "message": "Add selectPresentation API to IAudioTrack\n\nThe Java AudioTrack interface has a setPresentation API. This\ncalls the setParameters API in IAudioTrack. However, this does\nnot eventuate into a call into the android.hardware.audio@4.0\nIStreamOut selectPresentation API.\n\nAdd selectPresentation API to IAudioTrack and call down to the\nandroid.hardware.audio@4.0 IStreamOut selectPresentation API.\nTranslate into calls to setParameters API for legacy HAL\ninterfaces.\n\nBug: 63901775\nTest: compile\nChange-Id: Id634a107f3f93ab18dc80d2bd0af67bda35e859f\n"
    },
    {
      "commit": "0b21bdd6bcc8d3177c171225ade60315750c2e7e",
      "tree": "86a2cc162f0a17e33520bd1db40143d58935af70",
      "parents": [
        "b9e732b490d1245bf562b4b145cfbb5237864fd7"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Jul 12 19:37:41 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Aug 17 09:39:45 2018 -0700"
      },
      "message": "Aaudio: Implement app shareable flag instead of -size hack\n\nTest: adb shell data/nativetest64/write_sine/write_sine -pl -m3 -x\nBug: 38118159\nChange-Id: I349e10a00a5466f54e084f4745b1ed4776378c81\nMerged-In: I349e10a00a5466f54e084f4745b1ed4776378c81\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "734334fd0045bf7897a6d749c00204a784766a7e",
      "tree": "46178737bf3a89fd1623ebc1d5dddaad8f2e6cb5",
      "parents": [
        "f344afa981e537b5f354352284272a8a51cf6759"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Jul 12 19:37:41 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Aug 02 23:48:54 2018 +0000"
      },
      "message": "Aaudio: Implement app shareable flag instead of -size hack\n\nTest: adb shell data/nativetest64/write_sine/write_sine -pl -m3\nBug: 38118159\nChange-Id: I349e10a00a5466f54e084f4745b1ed4776378c81\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "070e751eee408cc7d23cf6985ef796e424fcc4ba",
      "tree": "2c21fe69bc93073e5c54bfcc1fe2f67c3f6cb476",
      "parents": [
        "df9b420d1a43d4fa7d75e10f00a15e482c994cae"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue May 22 09:29:13 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jun 18 14:42:45 2018 -0700"
      },
      "message": "libAudioHal: factorize V2 and V4\n\nMerge the two versions and ifdef the few\nparts still different.\n\nTest: playback music, assistant\nChange-Id: I750f5d18ba34236637c18a87e2daa54a7c446d91\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "df9b420d1a43d4fa7d75e10f00a15e482c994cae",
      "tree": "c7367730f593d5904396f5ef2bb04010d97090ca",
      "parents": [
        "d308499867c5403eb68113c793727183f82a48cf"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu May 10 19:56:08 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jun 18 12:58:10 2018 -0700"
      },
      "message": "Align LibAudioHal V2 and V4 for factorisation\n\nIn order to merge the two version, they must first align as much\nas possible.\n\nTest: playback music, assistant\nChange-Id: If517cc3f4646a224af3e9b3d42b68a75f1801b39\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "ede0467aa41bdcb1eed2add1fcde9733b0d0ac58",
      "tree": "d394dfb28f37e012e365846a7afc326ed1b74ab5",
      "parents": [
        "9d5eb0a2b71cab3bb2e60f3e0b12acdb69b582b4"
      ],
      "author": {
        "name": "Daniel Van Veen",
        "email": "dvanv@dolby.com",
        "time": "Mon Mar 26 10:57:09 2018 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 20 13:51:29 2018 -0700"
      },
      "message": "libaudiohal: Use IDeviceFactory in MSD HAL when opening a device\n\nThis allows instantiating the MSD device if the HAL is present.\n\nThe directive in the .rc about restarting \"vendor.audio-hal-4-0-msd\"\nservice is ignored when the service is not present.\n\nThe current policy for handling HAL service restarts is to\nterminate the audio service. It is possible to do better,\ne.g. only re-open the devices of the crashed HAL when possible,\nwithout affecting devices from other HALs. Will try to implement\nthat later.\n\nRemove the MSD-related code from the V2.0 shim, as MSD isn\u0027t\nsupported on HAL V2.0.\n\nBug: 63901775\nTest: manual on a MSD HAL prototype, also on taimen with no MSD HAL\nChange-Id: I7f9de692d6e7b8ff52cdbcaba1074692c5f1c90e\n"
    },
    {
      "commit": "9635821851dd5cff89e44fc7e56cb6b6054f3219",
      "tree": "1f1492ec0a4515089727ba4575c3605707c6143c",
      "parents": [
        "8542ae6aa2aa592042d59366b169aee0615fb6a2"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Fri Apr 13 10:42:42 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Fri Apr 13 11:40:14 2018 -0700"
      },
      "message": "Hearing Aid support for audio hal v2.0\n\nBug: 69623109\nTest: try using Hearing Aid on phone running audio hal 2.0\nChange-Id: Ia6b57ea92c6afbce33ed429ee7666fdaa37aa8de\n"
    },
    {
      "commit": "a8975a7e857fd745fc88d226d86b53ae088eafb9",
      "tree": "ff82a6124568e640ef8c142939caaa6482e28158",
      "parents": [
        "83028d5920884992b16f34aca167cd6c27734d3c"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 27 10:16:52 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 10:21:14 2018 -0700"
      },
      "message": "Audio V4: propagate metadata to the HAL\n\nThis is needed for the earring aid use case.\n\nBug: 38184704\nBug: 69623109\nTest: check that the correct metadata are propagate to the HALs.\nChange-Id: I285aac9fbb5431cc32c6fbccebdbff4914e6ab92\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "83028d5920884992b16f34aca167cd6c27734d3c",
      "tree": "84fcfdd9dbb1186a825a77270a69819c087ade7a",
      "parents": [
        "103f5a6268e820daa6a47c560e10a25514dd2ce1",
        "9ff780e58ff96ff98acaae4166bb218880bf9e73"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 30 16:59:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 16:59:41 2018 +0000"
      },
      "message": "Merge \"Support query microphones information.\" into pi-dev"
    },
    {
      "commit": "5915fa32fb6ec38b90a57162bf72c3ef714f03d7",
      "tree": "eca91a7b08cc3305954a17a6751bb5708819c9de",
      "parents": [
        "0c2e7237654f1e92a97583ecc7838d3a92997624"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 10:32:44 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 17:37:46 2018 +0000"
      },
      "message": "libaudiohal: Fix dereference before NULL check\n\ndeviceAddressFromHal was checking the wrong pointer before dereferencing.\n\nTest: compile\nBug: 77263416\nChange-Id: Ic47af7085dd88f451ae81034b84444719f68cfc5\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "9ff780e58ff96ff98acaae4166bb218880bf9e73",
      "tree": "b54bf56b7f6ebc5950064d2908004abfe35d7162",
      "parents": [
        "2ca700737c14edc9141af170ee278853fd99fa87"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 19 18:19:52 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 28 10:17:36 2018 -0700"
      },
      "message": "Support query microphones information.\n\nGet list of all/currently active microphones from hal.\n\nBug: 64038649\nTest: Manual Testing and Cts test\nChange-Id: Id39cae38ba040f9bc91571e713487f87c2eb67b0\n"
    },
    {
      "commit": "58a73fc8445db7fc587e4ef494e59bf5663f8b77",
      "tree": "953f7a1db4c4b6da60818709f0efea126902d3b1",
      "parents": [
        "966c158717dea42a7aa4f69a002f30a73c8713cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 21 18:46:13 2018 -0800"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Sat Mar 10 00:44:56 2018 +0000"
      },
      "message": "Add Bluetooth Hearing Aid routing and configuration\n\nBug: 69623109\nTest: connect to Hearing Aid, make phone call, verify audio is heard\nChange-Id: I92267fb48608fb721c5c4ef7ec9fceeafc8ea192\n"
    },
    {
      "commit": "b9cfbf1fdcfcf3e09f894c8dbf32ce915489a3e2",
      "tree": "3ee86d4f8aebd548528dc07cab6a59c828833a6b",
      "parents": [
        "51e076a8fc69d4275cabc3e6d54eab44d590280d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 23 19:11:06 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 06 11:30:49 2018 -0800"
      },
      "message": "Audio V4: Introduce 4.0 shim to HIDL\n\nThe difference between the 2.0 and the 4.0 is very small\nby design and most of the modification have been made in a\nretro compatible way\nThe intent is to be able to merge the two implementation\nbut it could not be done in this patch due to time constrains.\n\nBug: 38184704\nTest: compile\nChange-Id: I4738928313b7fd1f6332c0f22bb802d4fba41d82\nMerged-In: I4738928313b7fd1f6332c0f22bb802d4fba41d82\nCherry-picked from master\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "51e076a8fc69d4275cabc3e6d54eab44d590280d",
      "tree": "14552fd00b86764988015f3208a517d7ab60dc52",
      "parents": [
        "4bcd67fbb4eca3654ea929742bdf6ccc7c70daec"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 28 14:36:53 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 06 11:30:49 2018 -0800"
      },
      "message": "Audio V4: Update namespace and version of 4.0 shim\n\nPut the shim in a V4_0 namespace to comply with the ODR.\nMake the include guard unique.\nSplit from the error prone interface adaptation change for safer review.\n\nPatch generated with:\nsed -i \u0027s/V2_0/V4_0/g\u0027 *\nsed -i \"/include.*2.0/s/2\\.0/4.0/\" *\nsed -i \u0027/namespace android *{/anamespace V4_0 {\u0027 *\nsed -Ei \u0027s/(ifndef|define|endif)(.*)_H/\\1\\2_4_0_H/\u0027 *\nsed -Ei \u0027s#}(.*)namespace android$#}\\1namespace V4_0\\n\\0#\u0027 *\n\nBug: 38184704\nTest: Compile\nChange-Id: I7d3aa46b3dfec664cbeea8a6b946456b8e8f06e3\nMerged-In: I7d3aa46b3dfec664cbeea8a6b946456b8e8f06e3\nCherry-picked from master\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "4bcd67fbb4eca3654ea929742bdf6ccc7c70daec",
      "tree": "0f75367d70828f4caca61ad0404300631e891f91",
      "parents": [
        "174e1094a41828111c86793232d9492ab8e29395"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 28 14:33:38 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 06 11:30:49 2018 -0800"
      },
      "message": "Audio V4: Copy 2.0 audiohal to 4.0\n\nFor easier review of the changes, first copy 2.0 to 4.0, the changes\nare made in the following patch.\n\nBug: 38184704\nTest: compile\nChange-Id: I5bf16e5f8e7b61cc13e86c06b899ec4e6624a961\nMerged-In: I5bf16e5f8e7b61cc13e86c06b899ec4e6624a961\nCherry-picked from master\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "07be14fb96fc5c106ea2b874faf2b768f468eb8e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "message": "Revert \"Audio V4: Split system and vendor Audio.h\"\n\nThis reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.\n\nReason for revert: Breaks the build of multiple devices\n\nChange-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e\n"
    },
    {
      "commit": "f8ad7f85e9891b2614338330c75ae9e946fccc5a",
      "tree": "957d47ddc7419c688dda1d4c1ac3068eda6d894f",
      "parents": [
        "6d7582e9ad858301b3eeff7b187af6c34808cb7e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 17 15:57:39 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 21:39:40 2018 -0800"
      },
      "message": "Audio V4: Split system and vendor Audio.h\n\naudio.h and its dependencies (audio-effect.h, sound_trigger.h...)\nused to be shared between system and vendor code.\n\nThis led to multiple problems:\n\n1) Such sharing contradicts the Treble policy of\nstrict independence of framework and vendor code.\n\n2) When audio.h was changed, every vendor needed to update\nits code in the next release. This meant that audio*.h\nheaders were mostly changed in backward compatible manner.\nNevertheless, for P the HIDL interface and thus the audio.h\ninterface are changed in backward incompatible way.\n(Some enum are becoming 64 bit long).\n\n3) As the headers were common, some API used only by the framework\nneeded to be visible to the vendors (mostly enum values).\n\n4) Treble policy is to support at least one previous HAL version\n\nAs a result the audio*.h headers are now duplicated,\none set for the framework, and one for the vendor.\n\nEach set will evolve independently. After this split,\nthe framework-only APIs will be removed from the vendor headers\nand vice versa.\n\nThe split is implements as such:\n\n + for system code\n\n    - NOT moving the libaudio_system_headers\n      Eg: system/audio.h and system/audio_effects/effect_equalizer.h\n          are still in system/media/audio\n\n    - the legacy audio HAL API that were in libhardware headers\n          are now in libaudiohal_legacy_headers\n      Eg: hardware/audio.h and hardware/audio_effect.h\n          are now in frameworks/av/media/libaudiohal/legacy/\n\n + for vendor code\n\n    - moving libaudio_system_headers and the legacy audio HAL API\n          that were in libhardware_headers in\n          android.hardware.audio.common.legacy@2.0\n      Note that those headers are now versioned, so migrating to a @4.0\n          HIDL HAL will mean changing the legacy dependency too.\n      Eg: system/audio.h, system/audio-effect.h, hardware/audio.h\n          are now in hardware/interfaces/audio/common/2.0/legacy\n\n    - the legacy audio effect HAL API that was in libaudioeffects\n          is now moved in android.hardware.audio.effect.legacy@2.0\n      Eg: audio_effects/effect*.h are now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\n    - the legacy sound trigger HAL API that were in libhardware_headers\n          is now moved in android.hardware.soundtrigger.legacy@2.0\n      Eg: hardware/sound_trigger.h is now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\nlibaudioutil being used by both system and vendor, had\nto be renamed for system to libaudioutil_system.\n\nVendor libs that now depend on the audio.h of a specific\nversion and are not extensively referenced in non google code,\nappend @2.0 to their name.\n\nNote that headers that are not expected to change in the 4.0 HAL are\nleft in all-versions folder to avoid duplication.\nThis is an implementation detail as the versioned libraries export\nthe all-versions headers.\n\nNote that strict vendor-system separation is enforced by the\nbuild-system. The system headers are not available for vendor\nlibs and vice-versa.\n\nNote that this patch is split between numerous git repository (\u003e10),\nall the commits having the same Change-id for searchability.\n\nNote that audio_policy.h is no longer exposed to vendors\nas the legacy audio policy HAL API was never officially supported.\nAs a result the audiopolicy stub implementation has been removed.\n\nTest: compile taimen-userdebug walleye-userdebug\n              sailfish-userdebug marlin-userdebug\n              gce_x86_phone-userdebug gce_x86_phone\n              full-eng aosp_arm aosp_x86-eng\nTest: check that the emulator booted and played audio\nTest: full QA on sailfish-userdebug and taimen-userdebug\nBug: 38184704\nChange-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "7588ff418aca63b1dc43a85afc1e86c40dd889a3",
      "tree": "bdb7ba0ca788a16d48d8e9945aa76f52f1683245",
      "parents": [
        "51ac542df4beb18dc1cf0285826124644f189c3b"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jan 08 11:11:30 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 10:49:56 2018 -0800"
      },
      "message": "Audio V4: Split HAL wrapper for versioning\n\nBoth core and effect Hal now have one single point of entry.\nThis point of entry is their respective factories:\n - DevicesFactoryHalInterface::create\n - EffectsFactoryHalInterface::create\n\nEach entry point looks for their respective services supported\nversion, starting from the highest (currently only 2.0) and\nreturning the subclass wrapping this version to the most recent audio.h\nframework api.\n\nNote that EffectBufferHalInterface were previously created from static\nmethods (mirror and allocate) which broke the single point of entry\nrequirement.\nAs a result, buffers have now to be created from the factory like the\nother classes.\n\nNote that the death handler also need to be its own library as it is\nused by versioned code and is version independent.\n\nBug: 38184704\nTest: compile\nChange-Id: Iac9b1fda561bb486193d5b9e025a870f50cda530\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "51ac542df4beb18dc1cf0285826124644f189c3b",
      "tree": "da4a862435136cecffeabd874916df27958d7882",
      "parents": [
        "8f3585691717dd36d7124849e52fda983bf35618"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Dec 15 14:22:34 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 10:49:56 2018 -0800"
      },
      "message": "Audio V4: Move audio HIDL wrapper in a 2.0 folder\n\nThis will allow for an easy review of the next patch that splits the\nimplementation to support multiple version.\n\nBug: 38184704\nTest: compile\nChange-Id: I3e8fc3b41aaf2dd8061bd2a3566810efa67c7f9f\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "8f3585691717dd36d7124849e52fda983bf35618",
      "tree": "580e594388bae4bb995aac2e9aa685e942c6892a",
      "parents": [
        "65a438c6429c7f46cb0ab056c7f672ea0aa9e7f5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Dec 15 14:22:34 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 10:49:56 2018 -0800"
      },
      "message": "Audio V4: Move Utils in a versioned namespace\n\nBug: 38184704\nTest: compile\nChange-Id: I2eb3fb23dcbfbde7d2888c07514be2c63af13ce9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "c15aaeec42f2b14cff0f29bb84e58f4388975d91",
      "tree": "05370ca87ddc350edc876e351f82938f29a172c2",
      "parents": [
        "664d6012afe348c6fe906cb05fb981d1a4dbd593"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 27 17:02:40 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 28 12:48:08 2017 -0800"
      },
      "message": "Allow clearing effect hal buffers\n\nTest: SoloTest with int effects\nBug: 69855634\nChange-Id: I273c9da600f3ab04890a7a1cb74b606cc28bea53\n"
    },
    {
      "commit": "ef6cf3fc6cfb12e089e787efcbf1fc485ed54931",
      "tree": "a197eb396f5e84684d937da00e091a27c7de7f2e",
      "parents": [
        "693cb2bde52b4d73c391c529f1c6bf7a02be9f72",
        "94a1ee822686e920a33e312f4032f991731aea07"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 22 19:39:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 19:39:53 2017 +0000"
      },
      "message": "Merge \"Converting effect chains to float point by default.\""
    },
    {
      "commit": "94a1ee822686e920a33e312f4032f991731aea07",
      "tree": "5a8e84b19269529153e94fa2f0a6b927823f6848",
      "parents": [
        "c275189ccbfe8ca29437a24256195c61de2f2a6d"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Fri Jul 21 15:11:02 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 21 20:39:19 2017 -0800"
      },
      "message": "Converting effect chains to float point by default.\n\nRemoved additional conversions from/to int16/float.\nFixed config file restrictions.\nDetection of native format (int16/float) of effects.\nOn-the-fly conversion to/from 16 bit effects if necessary.\nWIP: testing effects in all possible configurations.\n\nBug: 63935479\nTest: Bufflog dumps, frequency analysis comparison, SoloTester\nChange-Id: Id4cabc5c5698befc90a5d68b0b996a9b9adebfc4\n"
    },
    {
      "commit": "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a",
      "tree": "4d26b37f91720dd435ed96cdd94850a8745c34a1",
      "parents": [
        "068fe16a1b8f511046ba787f33605c0ac64f1ab5",
        "ebe144c6709aeb1a09ca2223f7f9c0acb4f9f22d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 18:26:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 18:26:34 2017 +0000"
      },
      "message": "Merge \"libaudiohal: Add optional \"msd\" devices factory\""
    },
    {
      "commit": "ebe144c6709aeb1a09ca2223f7f9c0acb4f9f22d",
      "tree": "4c6dc161fc735dc407e969761c07b21a6c209db5",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 09:38:18 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 09:43:05 2017 -0800"
      },
      "message": "libaudiohal: Add optional \"msd\" devices factory\n\nAdding code that attempts to get an instance of \"msd\" devices\nfactory. The factory isn\u0027t yet used, but having the code in place\nensures that we would know about any changes in HIDL services\ndiscovery protocol.\n\nBug: 63901775\nTest: audioserver starts even if \"msd\" HAL service is absent\nChange-Id: Ia897127ba383fc05d139b633717992a5d5a4f920\n"
    },
    {
      "commit": "7f16ea4d1f6554f653babd0a63b7e97ce1061826",
      "tree": "df8f17772ce517fda38d1120e849effc463e0d9e",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 08:29:49 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 08:31:52 2017 -0800"
      },
      "message": "libaudiohal: Use \u0027exit\u0027 in HalDeathHandler instead of fatal log\n\nFatal log is registered as a process crash. Since these crash\nreports do not bring in any useful info, it\u0027s better to just\nexit the process instead.\n\nBug: 69379459\nTest: kill audio HAL, check logcat\nChange-Id: I0d83d496998248faf3669a1fe8c31944b839bb3e\n"
    }
  ],
  "next": "f33e4b858cdc9a7fdfbd3094620191c86aa42aa6"
}
