)]}'
{
  "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": "12a69173af8a4c030e77c33ebc2959fe8f0bdeec",
      "tree": "eaee013e96832078f0d3baa079f97e1c48725c9a",
      "parents": [
        "9494e4ede7780ce2ff96544ee3a0b67c8d92c7d8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 19 21:29:21 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 09 23:36:31 2020 +0000"
      },
      "message": "Fix AUDIO_TIMESTRETCH_STRETCH value name\n\nThere used to be a discrepancy between the name of the enum\nconstant between HAL, system/audio.h, and PlaybackParams.java.\n\nThe constant should be named AUDIO_TIMESTRETCH_STRETCH_VOICE\nto match Java and HAL.\n\nBug: 122858783\nTest: m\nChange-Id: Ief4d5df482dc7eee710aaa7d2d0ccec422246553\nMerged-In: Ief4d5df482dc7eee710aaa7d2d0ccec422246553\n"
    },
    {
      "commit": "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f",
      "tree": "cc260c7b2867101599cdba75b53b4e0578c7345f",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 24 22:56:29 2020 +0000"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\nMerged-In: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "6f9aad5d7578fc6dff6c7512569bdc52a8088d3a",
      "tree": "8b67661850993ab72db478acdc554b5ea14bfc99",
      "parents": [
        "bc3923f8ef985c4214d8af4d7d54a818b3903ff0"
      ],
      "author": {
        "name": "Kevin Deus",
        "email": "kdeus@google.com",
        "time": "Tue Nov 03 18:47:04 2020 -0800"
      },
      "committer": {
        "name": "Kevin Deus",
        "email": "kdeus@google.com",
        "time": "Wed Nov 11 11:28:24 2020 -0800"
      },
      "message": "Add a fuzzer for RecordBufferConverter.\n\nFix: 172613421\nTest: Built and ran fuzzer on ClusterFuzz.\nChange-Id: I46dec6a4b21f67ca1505928fabd0cd8c051c236e\n"
    },
    {
      "commit": "cb5ddf74f8495f46dc457d8b3b2048ed73ad2312",
      "tree": "29a536c2d211f8ea277aa2a8dac43d06f0af0ad6",
      "parents": [
        "cd2b79a8d7962fa754c0387990c9ff67fa201350"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 14 00:56:03 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 24 16:58:20 2020 -0700"
      },
      "message": "AudioMixer: Fix MONO_EXPAND for more than 2 channels\n\nMono audio going to a HAL with channel position mask might access\ninvalid volumes.\n\nResampling was going through STEREO_EXPAND (OK).\nNon-resampling was going through MONO_EXPAND (BAD) - this is fixed.\nAdd static assert to prevent other stereo assumptions from occurring.\nUpdated benchmark to use the full multichannel mixtypes.\n\nTest: Clarity on 7.1 USB device with HAL channel index mask 8, 7.1\n      positional mask. Mono input, 6 ch input.\n      Sampling rates  48K, 88.2K, 96K.\nTest: mixer_to_wav_tests.sh\nTest: mixerops_benchmark\nBug: 160212351\nMerged-In: I45c1d7b429f66a950885bc2913a50f223a7d0248\nChange-Id: I45c1d7b429f66a950885bc2913a50f223a7d0248\n(cherry picked from commit 2d8397af9a0496c025dae5b9ae95865931820eca)\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": "18d1ffa0188938f20f7d0f8385401049427311c8",
      "tree": "be3e96af9fbdbcc2b1cbc3780325a55b263d198e",
      "parents": [
        "8debb9f333ed410669e3acbd0fb5cb7d694a2bad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 17 15:58:01 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 17 15:58:01 2020 -0700"
      },
      "message": "Remove ununsed #include.\n\nThe header isn\u0027t useful anyway --- new code should just use\nstatic_assert directly.\n\nTest: treehugger\nChange-Id: I85fd0271870342dafea5c33b8df07d8d2c5371d9\n"
    },
    {
      "commit": "785728770dd660d1751afec5256e1f2fb5aea59c",
      "tree": "a516081f189cc94b715c9638611b858abd60db55",
      "parents": [
        "18dcd7461adbd514663b819e460ae7b8e2cfcb7b",
        "054ee166387b6a06aee3dd8fe189bb8b04b8a1a2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 29 17:33:42 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 17:33:42 2020 +0000"
      },
      "message": "Merge \"Update language to comply with Android\u0027s inclusive language guidance\""
    },
    {
      "commit": "18dcd7461adbd514663b819e460ae7b8e2cfcb7b",
      "tree": "7651af36ad6478005ba698686ddb87e6d5ee7e48",
      "parents": [
        "5503e62f4556fdfc17c2b70eccae125e34b76139",
        "a8544f5861c15ff218135842d89b2b944ad47fdc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 29 17:33:22 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 17:33:22 2020 +0000"
      },
      "message": "Merge \"Update language to comply with Android\u0027s inclusive language guidance\""
    },
    {
      "commit": "a8544f5861c15ff218135842d89b2b944ad47fdc",
      "tree": "64665ad825355207bde42d3cb20c51a585b920d4",
      "parents": [
        "c0ef095e07f03141a320f03d15eef1875d4f8f6c"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Jul 28 22:40:39 2020 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Jul 28 22:40:42 2020 +0000"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\n \nBUG\u003d161896447\n\nChange-Id: Ic17a290d79d65ef93bf6e0818a9bfbe663be7b93\n"
    },
    {
      "commit": "10b124c50da3d909fab23679a65a179411807026",
      "tree": "b11fb730d77af9f7065b56e3b4122a82090e6ec8",
      "parents": [
        "c0ef095e07f03141a320f03d15eef1875d4f8f6c"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Jul 28 22:39:30 2020 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Jul 28 22:39:33 2020 +0000"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\n \nBUG\u003d161896447\n\nChange-Id: I33701152a2d2b7a40a427d187fa11754282cc384\n"
    },
    {
      "commit": "054ee166387b6a06aee3dd8fe189bb8b04b8a1a2",
      "tree": "bd3a9ba3696477387ddd99dc51d3a1863b35cc54",
      "parents": [
        "c0ef095e07f03141a320f03d15eef1875d4f8f6c"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Jul 28 22:37:17 2020 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Jul 28 22:37:22 2020 +0000"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\n \nBUG\u003d161896447\n\nChange-Id: I6b51e2823f329c57e7c5e581189ee2630d156c94\n"
    },
    {
      "commit": "e0c3d791757109b0302cf74e7027bcada2221b1f",
      "tree": "4bf6b11b7fd84e06a3b60f94f45cd4f9e5933742",
      "parents": [
        "d40bc7615ff9bb6aac308083c51980437a9c6a21"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 01 09:41:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 01 09:42:02 2020 -0700"
      },
      "message": "AudioMixer: Fix expand mono track to multi-channel\n\nFix commit c5cf9e2c9696fac73b70336deea73f2dfb537689.\n\nTest: Instrumented apk, see bug for apk and details\nBug: 157618660\nChange-Id: Ib4eae82db101f9fd895c3d70b2d24446ce26a7bf\n"
    },
    {
      "commit": "8eca6bba3364c5c4d290b80d11839edcc6e5ecda",
      "tree": "f0c58f418a326b93f4bbe18d89d81cf8a5a9b7dd",
      "parents": [
        "87bb9262ee5421e3b0cbe347cd42d54b537b58b0",
        "3784ab5009e070491c12bbddbf4948eddeac3de6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 21 23:37:33 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 21 23:37:33 2020 +0000"
      },
      "message": "Merge \"Accommodate the move of AudioPlaybackRate to system/audio.h\""
    },
    {
      "commit": "7109a82f92eff9c1547576d4b610dc586d45c252",
      "tree": "77504449d07e7e78f941368c4f117e092ca110a0",
      "parents": [
        "068be4d22e53730ff5f2a621dd6be876bbf219d2",
        "c5cf9e2c9696fac73b70336deea73f2dfb537689"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 21 04:29:25 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 21 04:29:25 2020 +0000"
      },
      "message": "Merge \"AudioMixer: Expand mono track to multi-channel\""
    },
    {
      "commit": "068be4d22e53730ff5f2a621dd6be876bbf219d2",
      "tree": "71c8a379ddf6481c040c329f14ccf16668c27832",
      "parents": [
        "f6f0231a82a3b6d6e6e89edacbf6ea393ac6e826",
        "19e533ccd3a9a8b7d869e53ca2edd052bc558ad1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 21 04:00:14 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 21 04:00:14 2020 +0000"
      },
      "message": "Merge \"AudioMixer: Preserve stereo volume in multi-channel mixing\""
    },
    {
      "commit": "0f2787e8080e92c4fef66498e55bf2dbfe795fc6",
      "tree": "35cc45da5cbb9c428f66856610309cd5c1214f2f",
      "parents": [
        "00a61b56186e072a55e2e101a704dc6809685e70",
        "85296af81a6cfd35472733b47d058949f6e42894"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 01:11:54 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 20 01:11:54 2020 +0000"
      },
      "message": "Merge \"Supported FMA Intrinsics in Audio Resampler FIR processing module\" am: a2fa90baca am: 865d6023aa am: 85296af81a\n\nChange-Id: I6fe62e43b79e8881e7267f0c5fe3c5e11f12dfea\n"
    },
    {
      "commit": "a2fa90bacaec23f48952b8f07a5b12d657e5f47c",
      "tree": "accb4ff5a13925d337927b7d1016a521ccdf51bb",
      "parents": [
        "124176d86bd762628067a8d4480b564524c1dcf4",
        "8070d8dd34a8db21857909de7f4dedf6a352a7fd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 20 00:26:04 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 20 00:26:04 2020 +0000"
      },
      "message": "Merge \"Supported FMA Intrinsics in Audio Resampler FIR processing module\""
    },
    {
      "commit": "3784ab5009e070491c12bbddbf4948eddeac3de6",
      "tree": "04fe406dfa253947440716bbbe234a84bf9b22d5",
      "parents": [
        "ae3b9539cead752af48515f2e43c9985c3fc04e6"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 17:18:24 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 20:03:09 2020 -0800"
      },
      "message": "Accommodate the move of AudioPlaybackRate to system/audio.h\n\nAudioPlaybackRate is now defined in system/audio.h\nas \u0027struct audio_playback_rate_t\u0027 (in global namespace).\nSimilar for the related enums.\n\nTo accommodate the existing code, introduce AudioPlaybackRate\nas a typedef in the \u0027android\u0027 namespace.\n\nUpdate code that was forward declaring AudioPlaybackRate\nas it\u0027s not a struct anymore.\n\nBug: 133526565\nTest: m\nChange-Id: Iba20f1de1e8779cd78ac4573f2082416f2b428e2\n"
    },
    {
      "commit": "c5cf9e2c9696fac73b70336deea73f2dfb537689",
      "tree": "c60990e410e18eecfaa4512ea9c252bb5b568edc",
      "parents": [
        "19e533ccd3a9a8b7d869e53ca2edd052bc558ad1"
      ],
      "author": {
        "name": "Judy Hsiao",
        "email": "judyhsiao@google.com",
        "time": "Thu Aug 15 11:32:02 2019 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 13 18:33:27 2020 -0800"
      },
      "message": "AudioMixer: Expand mono track to multi-channel\n\nExtend MONO_HACK to multi-channel output.\n\nMono track will have only one channel output on multi-channel devices.\nSince ARC++ exposed a 4-channel output device and downmix track in\nChromeOS, we need to add this feature to support mono track sample\nexpansion.\n\nAdd support for both re-sample and non-resample path.\nFor resample path, we need to add MIXTYPE_STEREOEXPAND in\nAudioMixerOps.h since AudioResampler will upmix mono track to stereo\ntrack.\n\nBug: 120222604\nBug: 112341269\nBug: 117116052\nBug: crbug.com/890560\nTest: Play mono tracks without re-sampling on ARC++\nTest: Play mono tracks with re-sampling on ARC++\nTest: Play normal stereo tracks on ARC++\n(cherry picked from commit 9b79e0752e6536c31430aa31838a9de1b7b56f9f)\n\nChange-Id: I51f5914c41dd0196db9c6a2e1a99b44e5d87c0d6\n"
    },
    {
      "commit": "19e533ccd3a9a8b7d869e53ca2edd052bc558ad1",
      "tree": "261e31067f248b9438990c9ea2820a781920f3f2",
      "parents": [
        "61a941ade137394041cd9a5b976cfbc63d05c6b2"
      ],
      "author": {
        "name": "Judy Hsiao",
        "email": "judyhsiao@google.com",
        "time": "Wed Aug 14 16:52:51 2019 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 13 17:53:29 2020 -0800"
      },
      "message": "AudioMixer: Preserve stereo volume in multi-channel mixing\n\nCrOS exposes 4-channel output for ARC++ and mixes samples in CRAS\nserver to real channel format, but AudioMixer will discard right\nchannel volume when mixing a 2-channel track to 4-channel output.\nThis behavior will cause ARC++ fail on Audio Frequency Line Test\nin CTS-V since the right channel can\u0027t be tested.\n\nThe code is also updated to work for 3, 5, 6, 7, 8 canonical output\nchannel position masks, as well as continue the mono volume\nhandling for output channel index masks.\n\nBug: 110551766\nTest: Run CTS-V Audio Frequency Line Test\nTest: atest mixerops_benchmark\nChange-Id: I4c6ee86d30bb8296f0e32f9a17b1135e1313fd64\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": "a51151aacfc820122b45a875a0b6fe0dba60b756",
      "tree": "5250165a3a49942645caf75ade6634fa5c825e22",
      "parents": [
        "bd9f1ed08bb948af54600eb60f13fd6e05068375"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 07 13:37:47 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jan 08 11:21:31 2020 -0800"
      },
      "message": "Link with actual headers instead of symlinks\n\nand remove the symlinks.\n\nBug: 143245419\nTest: build\nChange-Id: I70e450d9db0f65048f86391c4d3f341659cd213f\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": "8070d8dd34a8db21857909de7f4dedf6a352a7fd",
      "tree": "5b208cb7557fc91e4a79a0d8480548f738a8ba62",
      "parents": [
        "1210f45ea764f0d186e55a19c068283a4ff6cfac"
      ],
      "author": {
        "name": "jaishank",
        "email": "jaishankar.rajendran@intel.com",
        "time": "Wed Oct 09 14:32:42 2019 +0530"
      },
      "committer": {
        "name": "jaishank",
        "email": "jaishankar.rajendran@intel.com",
        "time": "Thu Oct 31 10:08:40 2019 +0530"
      },
      "message": "Supported FMA Intrinsics in Audio Resampler FIR processing module\n\nTest: make vts -j\n      run vts run vts-hal run vts-kernel\n      tests/build_and_run_all_unit_tests.sh\n\nChange-Id: I997e0bb3dd1282a3c9ca5a270b57898558162b30\nSigned-off-by: jaishank \u003cjaishankar.rajendran@intel.com\u003e\n"
    },
    {
      "commit": "77819b82784e4a0a9ef4ccea7618c886f175817e",
      "tree": "ed83084e698b6494774dc0cd5b9cfe4815d899f3",
      "parents": [
        "57cf28f79c1d24ed259bcd8ca6227bb06952c24c",
        "00900336c1e2a67fb852758f9790fbf8050c19c5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 13:30:40 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 13:30:40 2019 -0700"
      },
      "message": "Merge \"Remove more header symlinks\" am: a2bc7eada8 am: ec565c575d am: ef6bd3e3a5\nam: 00900336c1\n\nChange-Id: I1ee034dda7407c84110b8fa92a38a427d58203b5\n"
    },
    {
      "commit": "a2bc7eada863d845b04c85195dbb26df37bdef69",
      "tree": "b17e23ebf1c9551620b761a4918994cf930ab6e9",
      "parents": [
        "f65c700c2947c2e89b2b8ced10972fab29ae175d",
        "6b2859450f91f1cdd8b3ca2435df4dd37907cd8a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 19:47:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 25 19:47:54 2019 +0000"
      },
      "message": "Merge \"Remove more header symlinks\""
    },
    {
      "commit": "6b2859450f91f1cdd8b3ca2435df4dd37907cd8a",
      "tree": "4accc947ac99fa7246f5f7fc54f35b3c960636b1",
      "parents": [
        "35f148bc5a1cb1efffd9aee0223a06720a303329"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 21 14:52:30 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 24 21:25:53 2019 +0000"
      },
      "message": "Remove more header symlinks\n\nTest: build\nBug: 143245419\nChange-Id: I9bb03d54c7792625b73602f2d3721e29f8f929be\n"
    },
    {
      "commit": "5e1eb2bea945c3cf9ea5a966ee3c15b2016b6ee6",
      "tree": "936bc352ab5315e96d091c694877d23d37cdaa0d",
      "parents": [
        "3d088e7a7e1948cbcf7a21a1612362b2177808cf",
        "28442a2f2eb1ca1775fbd8c91954ef6b809dc8fc"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Wed Oct 23 20:19:11 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 23 20:19:11 2019 -0700"
      },
      "message": "Merge \"add libaudioprocessing_resampler_fuzzer\" am: 9a5a544b23 am: fab4ec8a2e am: d71c8ff9f2\nam: 28442a2f2e\n\nChange-Id: Ifeb212118293c5a5c318cb5c9da6b37749b6e22c\n"
    },
    {
      "commit": "6d57c2dd34fafe1714de0abb65e8fd8d933db0f1",
      "tree": "681f25b7c3167a09ac8b1579477f0378d4544ce4",
      "parents": [
        "a870fb0afa5b33c788fc361e32389a6659a58474"
      ],
      "author": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Thu Oct 17 14:19:39 2019 -0700"
      },
      "committer": {
        "name": "Kris Alder",
        "email": "kalder@google.com",
        "time": "Wed Oct 23 15:20:57 2019 -0700"
      },
      "message": "add libaudioprocessing_resampler_fuzzer\n\nThis is based on the code from test-resampler.cpp. I simplify out some\nbits and use the data from LibFuzzer as the input audio.\n\nTest: ran fuzzer locally on-device\nChange-Id: I1ed732698feccd4a644a1a8eea4e3862a025e11a\n"
    },
    {
      "commit": "32f0d1689bd2eea6f43d7fb53faaedc23bd101d7",
      "tree": "3144c04d2bba1d717b30fe54fb4e4f08c478f982",
      "parents": [
        "a4f00e2aeadc9dc5c2f4970cd61ace72438136d4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jul 30 14:42:32 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "libaudioprocessing: Extract vendor-available part of AudioMixer\n\nSplit AudioMixer into the base part which doesn\u0027t rely on\nthe framework and can be used in vendor code and the derived part\nwhich is intended to be used by Audioflinger.\n\nTest: A/B compare output from test scripts, manual testing on the phone\nMerged-In: I24c390f67f20baa8109902099359ca6e34eebcfd\nChange-Id: I24c390f67f20baa8109902099359ca6e34eebcfd\n"
    },
    {
      "commit": "a4f00e2aeadc9dc5c2f4970cd61ace72438136d4",
      "tree": "0cad5d0e9d535b38da7d03253141cc7606e45220",
      "parents": [
        "9b6599e1e10232e9c6e67e1d6d26265b8e8da885"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 31 14:53:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "AudioMixer: Cleanups\n\n- remove unused ARRAY_SIZE;\n\n- fix indentation for TIMESTRETCH in setParameter;\n\n- move trackNames method implementation and BLOCKSIZE constant\n  into .cpp file;\n\n- whitespace fixes.\n\nTest: make\nMerged-In: Idc5da55c8c3af0d59b9a7a12d081747b0a99dafc\nChange-Id: Idc5da55c8c3af0d59b9a7a12d081747b0a99dafc\n"
    },
    {
      "commit": "9b6599e1e10232e9c6e67e1d6d26265b8e8da885",
      "tree": "2543d4ef40ca7a67df0f493acf071cb773af7306",
      "parents": [
        "52a42dde3627544fabc6691afcc67df73ed6b5e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 29 15:23:21 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 04 14:06:22 2019 -0700"
      },
      "message": "libaudioprocessing: Trivial dependency cleanups\n\n- Remove unused dependencies on libnbaio and libnblog;\n\n- Move dependencies on libaudiohal and libsonic to libaudioprocessing\n  as AudioMixer implementation does not use them.\n\nTest: make\nMerged-In: I258a450725bdacb4fcf437b6f86582d51d40e622\nChange-Id: I258a450725bdacb4fcf437b6f86582d51d40e622\n"
    },
    {
      "commit": "3230ed8235a39adef82d7c3873e6a87007799ff8",
      "tree": "158042769963aa698a8fbd240d2abfc352220c3d",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 12:12:46 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\nMerged-In: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "cf90b4931734e42c6092318991f213b76d7e849e",
      "tree": "3c0c685cb75bbdc37172d24113f6c0dbcbf3dfb4",
      "parents": [
        "d2dc18b063c548d9646dd1127fea97ccebdba079"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 09:02:30 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "7ad7a25890ce24a37950872ce9a0043b08f27bf6",
      "tree": "a92aa7a2eaeb22bdaffcea7bcb1ac4545fc40eb7",
      "parents": [
        "3b73e994a0e8cf9d718b535fe1f1da157b5c480a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jul 30 14:42:32 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 01 12:38:41 2019 -0700"
      },
      "message": "libaudioprocessing: Extract vendor-available part of AudioMixer\n\nSplit AudioMixer into the base part which doesn\u0027t rely on\nthe framework and can be used in vendor code and the derived part\nwhich is intended to be used by Audioflinger.\n\nTest: A/B compare output from test scripts, manual testing on the phone\nChange-Id: I24c390f67f20baa8109902099359ca6e34eebcfd\n"
    },
    {
      "commit": "3b73e994a0e8cf9d718b535fe1f1da157b5c480a",
      "tree": "a3f55bdd168f868eb5f85170ea014fdd0499d3c6",
      "parents": [
        "f4ebe698379d087dca2c6685935b91ab7e82d003"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 31 14:53:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 01 09:06:35 2019 -0700"
      },
      "message": "AudioMixer: Cleanups\n\n- remove unused ARRAY_SIZE;\n\n- fix indentation for TIMESTRETCH in setParameter;\n\n- move trackNames method implementation and BLOCKSIZE constant\n  into .cpp file;\n\n- whitespace fixes.\n\nTest: make\nChange-Id: Idc5da55c8c3af0d59b9a7a12d081747b0a99dafc\n"
    },
    {
      "commit": "28dd3aa4ad2e5da01dc9ebbd38d8cc333f359415",
      "tree": "6e22c068eee6428aa437b3a0612c1fe61bfba4f3",
      "parents": [
        "32925cc4374ba577f7b5d38867b11db1a582b967"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 29 15:23:21 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 31 10:34:52 2019 -0700"
      },
      "message": "libaudioprocessing: Trivial dependency cleanups\n\n- Remove unused dependencies on libnbaio and libnblog;\n\n- Move dependencies on libaudiohal and libsonic to libaudioprocessing\n  as AudioMixer implementation does not use them.\n\nTest: make\nChange-Id: I258a450725bdacb4fcf437b6f86582d51d40e622\n"
    },
    {
      "commit": "32925cc4374ba577f7b5d38867b11db1a582b967",
      "tree": "52c652b0c4b22b18dfdff953157ee5ef4cd5545a",
      "parents": [
        "2687b89978140e096f958fb37df53d65eecb9aaf"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 29 15:00:21 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 29 20:47:46 2019 -0700"
      },
      "message": "Move AudioMixer.h and BufferProviders.h into correct location\n\nThe implementation files are in libaudioprocessing,\nthus the header files also belong there.\n\nTest: make\nChange-Id: I78ba4ed480413c0a1b871e80971ef5ce1d0c6755\n"
    },
    {
      "commit": "b06277eff473ca8c2d7f403fd39cd954b282484a",
      "tree": "8879f3f3e33f270cca741f3f0eae9a551cbe18ef",
      "parents": [
        "2cb1a8ccbd402d74a06ee34721f5dd787ecb396f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 18 12:19:30 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 18 13:23:26 2019 -0700"
      },
      "message": "RecordBufferConverter: Release converter buffer after conversion\n\nRequired to ensure the RecordThread understands the true\nnumber of frames consumed / available.  Otherwise the RecordThread\nthinks there are more frames than actually present, causing\na buffer provider underrun in the AudioResampler and the\nresampler to reset.\n\nTest: BT phone call, Tee sink\nBug: 130419319\nChange-Id: I96fac6f52233e8519c0cc098329e5b9b89c1dd89\n"
    },
    {
      "commit": "86571a97654dbe09272b0504fe17c71211f4a5e7",
      "tree": "8fc694c113c0455ac74a55b49c11a1d4a7fae909",
      "parents": [
        "0e5a1b3bb64d9a5d38903770e018379856401efd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 02 15:40:54 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 04 19:20:02 2019 +0000"
      },
      "message": "AudioResampler: Add property for resampler testing.\n\nAdd ro.audio.resampler.psd.tbwcheat to allow partner experimentation\n\nTest: native resampler_tests.\nBug: 123920996\nMerged-In: I983ab3ef7303fc9d93fc680de05d0cf3cfd7ff5a\nChange-Id: I983ab3ef7303fc9d93fc680de05d0cf3cfd7ff5a\n(cherry picked from commit 076f690ab192b8f2281ffdf2af6f324553656d89)\n"
    },
    {
      "commit": "06b40f98f1cfd0656033a179a4d9ea53ac269a48",
      "tree": "0de154d160394acbec5895109130ccacf58de0d7",
      "parents": [
        "7eb548022e45ea1f91d88f43aabf7ff0013eaa88"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 26 15:51:41 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 03 12:19:35 2019 -0700"
      },
      "message": "AudioResampler: Improve resampling for voice quality devices\n\nEnabled for devices with sampling rates 16000 or less.\n\nTest: instrumented log, resampler_tests\nBug: 123920996\nChange-Id: Icb2a410b09eccb97188100fd78217123444b2eff\n"
    },
    {
      "commit": "2eaa1ee2ebab87ffa0d5ba0cbb7e403d685ad7f7",
      "tree": "e3463adb7a2897a223856cfd065f9c0b3390b616",
      "parents": [
        "3f692411d2769d32b29b71995e6bc89bcc16b070"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 02 15:49:55 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 03 10:12:25 2019 -0700"
      },
      "message": "AudioResampler: Add downsampling filter response test\n\nTest: resampler_tests\nBug: 123920996\nChange-Id: I835ec033bd1fc6fd6905e32c660c779fafb853cb\n"
    },
    {
      "commit": "3f692411d2769d32b29b71995e6bc89bcc16b070",
      "tree": "be137918529b918bf2db7d47beafd80fb6c467ca",
      "parents": [
        "b02be352c78d9db1c876a114199a9d4259c194e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 02 15:48:22 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 03 10:11:59 2019 -0700"
      },
      "message": "AudioResampler: Minor test code fixes\n\nTest: resampler_tests\nBug: 123920996\nChange-Id: I11aa8f883854ebc492e230bc48311009d5a8920f\n"
    },
    {
      "commit": "ea8fa7a5eea3d55c75982787571d70a70fa5280a",
      "tree": "8e0a6e45768fee1146cfdac9a06471cb0958ef50",
      "parents": [
        "bb08e4d99b0915f4b25fefeda9c833c96ceb785a"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Feb 22 14:41:50 2019 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 06 16:54:23 2019 -0800"
      },
      "message": "Refactor adjust channels buffer provider.\n\nCombine adjust channels buffer provider and adjust channels non-destructive\nbuffer provider.\nWhen contracting mono + haptic channels to mono, do not use\nadjust_channels to avoid mixing haptic channel into audio channel.\n\nBug: 125915810\nTest: play audio-haptic coupled files\nChange-Id: I39916a3e0628a44ed4a148c265564af7135a2176\n"
    },
    {
      "commit": "9a7bdd5592c329703f7d3917f8801b432f30adb9",
      "tree": "6edc904b44ea4333e9bbc0508d9cc8430d97c97d",
      "parents": [
        "bb6d61d78d2a488dd36de7c8cd0c7038732ddd1f",
        "c7c48f1b2522a639f09b2ed095109482809b47b0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 16 01:24:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 16 01:24:49 2019 +0000"
      },
      "message": "Merge \"AudioMixer: Set initial volume to 0 for safer ramping\""
    },
    {
      "commit": "bf6b0ecd91172d6cd6cdd7c44f9ceecab4c29f27",
      "tree": "5af2b932484555dc58c2eb0ec338a4062ba99b81",
      "parents": [
        "f39a648edbb1502f278ab10310e42500692dc3df"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Feb 12 12:30:12 2019 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Feb 15 09:47:23 2019 -0800"
      },
      "message": "Refactor haptic constant.\n\nUse the constant from IExternalVibratorService.\n\nBug: 124318236\nTest: play audio-haptic coupled file\nChange-Id: Ice2ac13d0f6a6a749bb6243230524336144fa5f4\n"
    },
    {
      "commit": "c7c48f1b2522a639f09b2ed095109482809b47b0",
      "tree": "de0082ff51147bf5a6bbebf0ac71b0892f568991",
      "parents": [
        "4d4ca6ada3d9f1d535bc4bee2362ff93f88cd55f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Nov 16 16:42:32 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 06 18:59:06 2019 -0800"
      },
      "message": "AudioMixer: Set initial volume to 0 for safer ramping\n\nTest: Basic audio sanity, AudioFlinger tee\nBug: 117745106\nChange-Id: I25f946a4700323ae7505ec582874939bbb012ec6\n"
    },
    {
      "commit": "77270b880570e07a5d80b23371f53638ec30fb5c",
      "tree": "4cdb67f28ef7bb47dad1ac19cadb48febf2be8a7",
      "parents": [
        "4b7f683cf9fbaa2b427f03bd067ee2588906ac44"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 18 15:41:29 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 30 15:18:23 2019 -0800"
      },
      "message": "Apply intensity control for haptic data.\n\nUse the same logic in VibrationEffect.scale to control the intensity of\nhaptic playback in audio framework. Note that as the maximum amplitude\nof vibrator is 255, convert the haptic data to pcm_8_bit before doing\nscaling.\n\nTest: Manually\nChange-Id: I6136d27c9255a215834b6e3092aa8ad696fbae04\n"
    },
    {
      "commit": "669425507df4a9ee4d062d994cf9549ed5f7723f",
      "tree": "14fa42b2652d5b976c74a14007376267ff9333d6",
      "parents": [
        "ddafe428bbd00f8212380800c2bde0466e2cab17"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 21 16:07:12 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 21 16:14:31 2018 -0800"
      },
      "message": "AudioMixer: Accept a float downmixer\n\nTest: Play Music with multichannel source using float and int16 downmixer\nBug: 121222814\nChange-Id: I1057b3a2f342e42ab56652f724111fa7cd68d1cf\n"
    },
    {
      "commit": "1b74640c7bc024fe10088d67d1e9f81892fa1659",
      "tree": "58c479201738aeb10fb5719fe71327842e70b29a",
      "parents": [
        "341dd3bb36c4ceb77c80b8e8db9f0e1d647dc9ce"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Dec 14 14:39:35 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Dec 14 15:26:45 2018 -0800"
      },
      "message": "Use local buffer for AdjustChannelNonDestructiveBufferProvider.\n\nIt will make the track data disordered when adjusting channels non\ndestructive if the track is a static track.\n\nBug: 121047798\nTest: Manually\nChange-Id: Ibd9bc012ac9d36e0f19f6f6796753f9355cd3c97\n"
    },
    {
      "commit": "9983bcb0df778aed9e09a3c721b87f480c1c9034",
      "tree": "5d8ca81eb4794ab95834e74d4213db1f662c1ba8",
      "parents": [
        "20478518b4b01195f7aa473e12ee2b29509667b8",
        "0c102d404d7f152b7d05433732ef4d1efeac533d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 13 11:36:46 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 13 11:36:46 2018 -0800"
      },
      "message": "resolve merge conflicts of 0c102d404d7f152b7d05433732ef4d1efeac533d to master\n\nBug: None\nTest: I solemnly swear I tested this conflict resolution.\nChange-Id: Ic014ad7b8c661f476239a02c910c33462c6a7178\n"
    },
    {
      "commit": "3c03c8ba1504003f25ee04b49609eb10b20e1bdf",
      "tree": "78956d959c2684a79768a6dffca77bdc7d561dbc",
      "parents": [
        "8dd9d107e9056283bc38c5921cff29c481adc99f",
        "245cdd91559873aeacf21b7c780655ef43c01682"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 12 22:38:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 22:38:27 2018 +0000"
      },
      "message": "Merge changes Ic5f780de,I3f963307\n\n* changes:\n  Support audio-haptic coupled playback.\n  Add buffer provider that can adjust channels.\n"
    },
    {
      "commit": "245cdd91559873aeacf21b7c780655ef43c01682",
      "tree": "336ec5eaea56659c21e9441c0d2b5a03102b9b32",
      "parents": [
        "dce8f8cc41cb6be63d13ad0099d61807746ff5d7"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Dec 07 17:55:15 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Dec 12 11:33:47 2018 -0800"
      },
      "message": "Support audio-haptic coupled playback.\n\nWhen trying to play with haptic channel mask, use adjust channels\nbuffer provider to make the haptic channel the same as the output one.\nIf haptic playback is supported, use adjust channel non destructive\nbuffer provider to output haptic data to the end of the sink buffer.\nOtherwise, haptic data will be ignored.\n\nTest: Manually\nBug: 111454766\nChange-Id: Ic5f780de48c1e71de6ba5c4774d1ed2e9c8c51a0\n"
    },
    {
      "commit": "dce8f8cc41cb6be63d13ad0099d61807746ff5d7",
      "tree": "f85faa34c35ce81c45bcbd5bfed3fc93073e37f8",
      "parents": [
        "6b6a0f05248fc646d42f09cb891d8b6fda19426e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 10 17:49:31 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Dec 12 11:23:05 2018 -0800"
      },
      "message": "Add buffer provider that can adjust channels.\n\n1. Add adjust channels buffer provider, which will expand or contract\nsample data from one interleaved channel format to another. Expanded\nchannels are filled with zeros and put at the end of each frames.\nContracted channels are omitted from the end of each audio frame.\n\n2. Add adjust channels non destructive buffer provider, which could\nexpand or contract sample data from one interleaved channel format to\nanother while not destructing the buffer. Extra expanded channels are\ninterleaved in from the end of the input buffer. Contracted channels are\ncopied to the end of the output buffer. Contracted channels could be\nwritten to an output buffer with certain audio format.\n\nTest: Manually\nBug: 111454766\nChange-Id: I3f963307e73b3f7aa662d4127f78f0c61ac84510\n"
    },
    {
      "commit": "930bbf99ed405fc17c18383d425b46eadd01d805",
      "tree": "6120281ec32b64e40439d48ca801e814e68be784",
      "parents": [
        "f4a342abd2959904caa18b5a0671e8107581ff24"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 11 18:44:27 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 06 10:36:01 2018 -0800"
      },
      "message": "BufferProvider: Clear out mBuffer when changing upstream BufferProvider\n\nTest: QCOM internal stress test\nBug: 111313529\nChange-Id: Ieb7a61eddeb85528fabf7ad8f74b5104d50c2339\n"
    },
    {
      "commit": "9c99f15f442bd22b9846cb4b39bc54c13dde42b3",
      "tree": "2864e5e7e8ec4b27faeefce67b1c5a1b83dc2a88",
      "parents": [
        "a864ea5f2d034069a3ede5fef9180e702666ee37"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Nov 16 15:30:38 2018 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Nov 16 15:34:45 2018 -0800"
      },
      "message": "Convert libaudioprocessing to Android.bp\n\nSee build/soong/README.md for more information\n\nTest: cd frameworks/av/media/libaudioprocessing; mma\nTest: atest resampler_tests\nChange-Id: Icae927b3d4692f7cf15b296e6bf5529329b22325\n"
    },
    {
      "commit": "7d805b2f7e05e297723130eb20327ae9265765be",
      "tree": "48e8a37ddee29e7b438fedc92c8a4db2787f3a0f",
      "parents": [
        "0d089313e729c3848a95cfcebec79ee5c392e811"
      ],
      "author": {
        "name": "Johan Harvyl",
        "email": "johan.harvyl@sony.com",
        "time": "Mon Nov 12 08:02:18 2018 +0100"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Nov 16 15:24:58 2018 -0800"
      },
      "message": "Include pthread.h in AudioResamplerSinc\n\nCurrently it gets included through utils/Log.h which includes\nlog/log.h which will usually be taken as:\n\nsystem/core/liblog/include/log/log.h.\n\nIf on the other hand system/core/liblog/include_vndk/log/log.h gets\nincluded instead, pthread.h will not be included.\n\nTest: Manual - builds OK\nBug: 119390863\nChange-Id: I64255f0812367a55996a7b64da65646fdf1743c2\n"
    },
    {
      "commit": "41e08e5ad644cb379876cf508f80c94e024af45c",
      "tree": "6a2ca5b7b9328f304baa797d2a815ce88480979c",
      "parents": [
        "9cb9bec05f049bb6f5505d3df38b16160bca3369",
        "1e02ed8275655ed9a9171c8e870adde5c04d68c1"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Oct 11 23:40:10 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 11 23:40:10 2018 -0700"
      },
      "message": "Merge \"Fix implicit fallthrough warnings.\" am: 50c5673394 am: eccb7a7e88\nam: 1e02ed8275\n\nChange-Id: Ic2187116d0a070a765887c7b718462acb9e75bfe\n"
    },
    {
      "commit": "6fd8b606edcdbdddcfc1744468b46d287dae9a1c",
      "tree": "0bd3e145b27a23b3d2b2892a789ed67f9d658061",
      "parents": [
        "a499844d1cf45a8dad85d2c4282961994385ece4"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Oct 11 13:49:51 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Oct 11 13:54:12 2018 -0700"
      },
      "message": "Fix implicit fallthrough warnings.\n\nTest: make checkbuild\nBug: 112564944\nChange-Id: I0810479d070cf797623d2da449587d77e36f9754\n"
    },
    {
      "commit": "17a4a0feba513a721b23edeb9a915e4ce87b58a8",
      "tree": "8def40ef260d85ecf5414654a2af5cc1a7e3a94c",
      "parents": [
        "bd9b5935fdbd67d3eaf124e3e80470b8cae1ecd1",
        "d06ae78ee7169fc80c8a29390b2156e33c846c08"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 16:44:40 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 17 16:44:40 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in audioflinger etc.\" am: a494bb1527 am: 8662f3b9a2\nam: d06ae78ee7\n\nChange-Id: Iee095b6e1278d372b3a7c171f926bd730dbc388b\n"
    },
    {
      "commit": "2b48703770efab81143d389d7389166eb1a6c8db",
      "tree": "f309a4bbfbb4f716dee1af20f82ca95aa04b907e",
      "parents": [
        "f8d13dee65d3708ea527e9f565be85031d7021ba"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 14:16:02 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 12:50:12 2018 -0700"
      },
      "message": "Suppress implicit-fallthrough warnings in audioflinger etc.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: I8875bc7ed073aae84d5df97eb39c8c745ca627ef\n"
    },
    {
      "commit": "725e6f10984e255750bf00d22241cf68a73f1dc5",
      "tree": "a2828f403f289cb21c7b985a37d5eb25623ac958",
      "parents": [
        "8d4991797071989e51b08dd58cbe2635ef544f95"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 11 17:17:26 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 11 18:08:45 2018 -0700"
      },
      "message": "AudioResampler: Accumulate for multichannel output\n\nTest: Talkback with multichannel USB\nBug: 113697681\nChange-Id: I1ca92f6c1abe71cea090bd01b31a4c45cb55e320\n"
    },
    {
      "commit": "3a34df9c6e81d4638dcd763f990de89b1de3a8b5",
      "tree": "3ca216b7c13a8bc0617016ed9b177b2431de9044",
      "parents": [
        "aec9c3e4b573862dacb4b4cec4c87cf736a3a28e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Aug 21 12:32:30 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 30 11:56:25 2018 -0700"
      },
      "message": "AudioMixer: Change setBufferProvider order of reset\n\nTest: stress test\nBug: 111313529\nChange-Id: I1269c1e7f1609ee6edca31625cf508ff3101a0a0\n"
    },
    {
      "commit": "19c8e3ae879f446e991d8ff83c7b220d6d583b8c",
      "tree": "d83a6caa53093bc6b3bfc4d98c1a5d453a4cb10f",
      "parents": [
        "51eb281710acec50c28306e03155224cf5198aad"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 23 19:07:37 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 23 19:07:37 2018 -0700"
      },
      "message": "AudioResampler: Clear input buffer on reset\n\nTest: use debug tee - play audio, pause, seek to start, play.\nBug: 73132891\nChange-Id: I9f4237802d203cabd5d1372828eba7c7320f02d7\n"
    },
    {
      "commit": "3c6042759f27fa1bbb3c49c7eda1b4d5bbbcc35d",
      "tree": "cc3a98bf9207afe1e6fc3b6f140bd2b3333e8c41",
      "parents": [
        "34affaed9cc6374e979e3bd29ccfe1671694bfe9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 15 14:58:06 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 15 15:01:11 2018 -0700"
      },
      "message": "Fix undefined error in ALOGV_IF.\n\nError found with clang static analyzer after\nmaking ALOGV_IF to use its parameters.\n\nBug: 111850071\nTest: build with WITH_TIDY\nChange-Id: I35bdfd6583a106d82f30063cbd629bcff1d58289\nMerged-In: I35bdfd6583a106d82f30063cbd629bcff1d58289\n(cherry picked from commit 09f9c0237236f21cf331bcd811da89c26fc9c627)\n"
    },
    {
      "commit": "e36499115c0bbd619358017afa2099edb1f568d8",
      "tree": "511bfc1f1ecf7abffcbf07f0dbfe8986249aabe5",
      "parents": [
        "5bf00e8858de16b294174c35b338b99b5a3259fb"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Aug 07 14:28:29 2018 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Aug 07 14:28:29 2018 -0700"
      },
      "message": "Fix for redundant comparisons bug\n\nFixed typo on comparisons for isAudioPlaybackRateEqual.\n\nBug: 112144275\nTest: manual testing\nChange-Id: Ib7fbcda2bbf8f10499cbff312abee2cc548e9dae\n"
    },
    {
      "commit": "09f9c0237236f21cf331bcd811da89c26fc9c627",
      "tree": "a0a580f9c4f2270437739fc9ab8d1c46d073e4e1",
      "parents": [
        "93adab132cfdd6e71cee2af14eea711b49a4c76d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jul 27 10:22:35 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jul 27 10:22:35 2018 -0700"
      },
      "message": "Fix undefined error in ALOGV_IF.\n\nError found with clang static analyzer after\nmaking ALOGV_IF to use its parameters.\n\nBug: 111850071\nTest: build with WITH_TIDY\nChange-Id: I35bdfd6583a106d82f30063cbd629bcff1d58289\n"
    },
    {
      "commit": "b5d119596a1fea25f24f3c9209e656a684887ed8",
      "tree": "74009f018222e8855d7758051b4e5c2577d12f71",
      "parents": [
        "7bb4333ff2298d0cc1a2125e18a21c174bced01d"
      ],
      "author": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Tue May 22 22:31:14 2018 +0800"
      },
      "committer": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Wed May 23 12:09:15 2018 +0800"
      },
      "message": "AudioMixer: recreate Resampler if the track channel count has changed\n\nthe Resampler is recreated only if mixer channel count has changed.\nI removed the criteria since resampler need recreation when\ntrack channel count has changed.\nThis issue is due to the previous resampler still working with\nthe previous channel mask settings.\nTest: self-tested more then 50 times when a voice call ended\n          and there is an incoming Skype/LINE ringtone.\nBug: 78199280\n\nChange-Id: I042fb9214d07f198704cef3c96bf290c7d203461\n"
    },
    {
      "commit": "b3dee358b18472d6623a9d6342d7f2f7e8e45bec",
      "tree": "a3d6104f1bd6212309642fc7138a3245be5c7ee8",
      "parents": [
        "0dd0949cae167f88f280510cb49151ef32fde639",
        "e053bfaaa6477016b935c98cacf0b297b5d3d6e1"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri May 11 02:15:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 02:15:46 2018 +0000"
      },
      "message": "Merge \"libaudioprocessing: clamp application provided float audio\" into pi-dev"
    },
    {
      "commit": "1a0ecc383391e02a46be7bd4e9ec682e839b79e5",
      "tree": "51cd658083d107fa15ddf2664067516a5e4ac6f5",
      "parents": [
        "527da4c9d30c977c0105a288b20a77f0f9e8d0d3"
      ],
      "author": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Mon May 07 11:09:15 2018 +0800"
      },
      "committer": {
        "name": "Yung Ti Su",
        "email": "andysu@google.com",
        "time": "Mon May 07 16:41:16 2018 +0800"
      },
      "message": "AudioMixer: Always do prepareForReformat() in setChannelMasks()\n\n    Always prepareForReformat() when channelmask has changed,\n    no matter needing a downmix or not.\n    Since ReformatBufferProvider would need to reset when\n    channelmask has changed.\n    Test: self-tested more then 50 times when a voice call ended\n          and there is an incoming Skype/LINE ringtone.\n    Bug: 78199280\n\nTest: bug is fixed.\nChange-Id: I08c74b00fcbaf8aacef7b1d1c1e840cae347accb\nSigned-off-by: Yung Ti Su \u003candysu@google.com\u003e\n"
    },
    {
      "commit": "e053bfaaa6477016b935c98cacf0b297b5d3d6e1",
      "tree": "d2076ced75198bd8f53f291f3b59ca34ffe9e037",
      "parents": [
        "c3d554d42f637a9076473b070b30ba3e8229189c"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Nov 09 22:07:34 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri May 04 17:13:51 2018 -0700"
      },
      "message": "libaudioprocessing: clamp application provided float audio\n\nFor security reason, float buffers provided by application must be\nclamped to FLOAT_NOMINAL_RANGE_HEADROOM.\nWith the new all float pipeline, float are no longer clamped by their\nconversion to fixed point.\n\nThis patch adds a float buffer provider that clamps float samples\nas they are copied to audio pipeline.\n\nTest: Play music, play video in chrome (opensles format float),\n      play float pcm audio file specially crafter with \u003e\u003e 1 samples.\nBug: 68099072\nChange-Id: I220b436d9982bc43a75715a030efd0e6a0c79fa3\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "a6018899f9df9be5ad4e66fd1e38b6ef2b66d64e",
      "tree": "ee9d4e8eb22142cf70833a5995fa4c7412983050",
      "parents": [
        "08de5c2378a0e84ae41c05b26f8cb6de045023ef"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 21 14:32:16 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 21 15:12:13 2018 -0800"
      },
      "message": "AudioMixer: Fix aux effect pointer computation\n\nTest: Solo Tester + BT + Preset Reverb Aux Effect\nBug: 73723887\nChange-Id: Ia765d49214bf855737d0d28a1ba08ba44267aed0\n"
    },
    {
      "commit": "1bc088a918d7038603230637d640941953b314d4",
      "tree": "e231c2b22d944eaed29445fe4a35861fddb50e54",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 09 15:57:31 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 16 15:50:32 2018 -0800"
      },
      "message": "Call AudioMixer only from MixerThread threadLoop.\n\nAs part of change:\nRemove track name offset by TRACK0.\nMove track name management to the Tracks class.\nSync mixer track name to FastMixer track index.\n\nFixes regression introduced by commit 8ed196a.\n\nTest: SoundPool, AudioTrack CTS, Usability\nBug: 72937362\nBug: 73004420\nChange-Id: I2f1a33f6f0da66bcd7aa91e2a4b663ff822df645\n"
    },
    {
      "commit": "c6116926de37cabb1d35ddd57eaff0e19fcec8bc",
      "tree": "fdc9a07eec6b4e7dc446a76149bd0c843d298edd",
      "parents": [
        "7027e8019ad974d2e474a7fcaf43adedbdf08f23",
        "8ed196ac0f4aa8ae811c012dfa6f596fddebf1bf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 24 22:48:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 22:48:08 2018 +0000"
      },
      "message": "Merge \"AudioMixer: Enable 256 tracks, up from 32 tracks\""
    },
    {
      "commit": "8ed196ac0f4aa8ae811c012dfa6f596fddebf1bf",
      "tree": "fda78f06eeb733b00fda71fbd401b6a787b76190",
      "parents": [
        "2917aa469abba347a1ab1e6fa766d62721182788"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 05 13:21:11 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 23 23:04:33 2018 -0800"
      },
      "message": "AudioMixer: Enable 256 tracks, up from 32 tracks\n\nClient apps can have 40 tracks, up from 14 tracks\n\nRelated code cleanup:\na) Removed State nested class\nb) Moved static functions to Track member functions\nc) Moved static function hooks to pointer-to-member-function hooks\nd) Some reorganization of touched code for recent C++ style\n\nTest: test-mixer native mixer test\nTest: SoloTester effect test\nTest: SoundPool with many tracks\nTest: CTS AudioTrackTest\nBug: 64161002\nChange-Id: I0d09620acd715d577e776bb6f76e94e87e554520\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": "c1c11b413026aa47f37960a03f83216bdf891b71",
      "tree": "48530e003c8bfbcc2c5faf2d0d0299fb6ae8605e",
      "parents": [
        "080b934e6da4c1e09c91e236f5d0705edbd6cb0c"
      ],
      "author": {
        "name": "Yahan Zhou",
        "email": "yahan@google.com",
        "time": "Tue Jan 16 12:44:04 2018 -0800"
      },
      "committer": {
        "name": "Yahan Zhou",
        "email": "yahan@google.com",
        "time": "Fri Jan 19 18:33:48 2018 +0000"
      },
      "message": "Audio mixer fix for number of frames not being a multipler of blocksize\n\nWhen the desired number of frames is not a multipler of blocksize,\nprocess__genericNoResampling will ask for 0 frames and crash.\n\nFix it.\n\nBUG: 70902559\n\nTest: cts-tradefed run cts -m CtsMediaTestCases -t\nandroid.media.cts.AudioTrackLatencyTest#testOutputLowLatency\n\nChange-Id: Id2ce771ee8a4e49fe6ea82e500017324c8918a73\n(cherry picked from commit e38b72e410def6c44f090d149879cb620fcc7955)\n"
    },
    {
      "commit": "116a49881b35f561f6ee316990d425fad56e7487",
      "tree": "26d80d6e59138bcf42902cfee61713817cc06c09",
      "parents": [
        "fa69ca3012fb4065dd892f363957a4f9a6d24757"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 30 10:15:08 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 06 19:48:37 2017 -0800"
      },
      "message": "AudioEffect: Convert aux buffer format from q4.27 to float\n\nTest: Solo Tester aux reverb\nBug: 69853407\nChange-Id: I72ca2377036e5ccfd5f4631ac6cc5e86d2e40433\n"
    },
    {
      "commit": "5effdf6d9ed17b4ff67a7e1adc56996c01c43383",
      "tree": "06e5f064d6dc9b5aea55cf9a12c39d9e68091a85",
      "parents": [
        "cd742b9174eac9f8b6a108512818f2d3a2392ea8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 27 13:51:40 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 27 14:47:19 2017 -0800"
      },
      "message": "Deprecate ditherAndClamp with memcpy_to_i16_from_q4_27\n\nTest: test-mixer and SoloTester\nBug: 69636805\nChange-Id: I5cc04d82f3e46fbfc8188a63eb2a90fb70634c90\n"
    },
    {
      "commit": "8da62466e24156861eca9a903665eae11f2bf30b",
      "tree": "a146fefb919dffa1d462b81531bcbfe4bb00e2a6",
      "parents": [
        "4311dcd79aba460ba26fba11a03b43b8d3818281"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Nov 09 22:07:59 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Nov 10 23:02:41 2017 -0800"
      },
      "message": "Fix downcast that was using reinterpret_cast instead of static_cast\n\nTest: compile\nBug: 68099072\nChange-Id: Ic44941862672f4baaf0743f1df1375444d4226a2\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "6bd378feab93c5f975b9afa09650cdaa1d921b90",
      "tree": "79f8cef72e71c634fc6b2a687a0e4ed42a6f92d2",
      "parents": [
        "32d82714da38ad86803a56870734d49bcf30c29d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 24 19:23:52 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 30 19:31:12 2017 -0700"
      },
      "message": "AudioResampler: Add configurable resampler design\n\nCan be modified through properties.\nParameters enabled for 48kHz output sample rate and higher.\nDefault 90dB stopband attenuation.\nDefault cutoff frequency at Nyquist.\n\nTest: native gtest resampler_tests\nBug: 66091148\nChange-Id: Ieb8a959b7473613ef21121ccea0aa7ea3e2f1210\n"
    },
    {
      "commit": "8589ce7045fd4f5520aabbc773f00c7136925fd7",
      "tree": "a02b3ba722bc13f798c9c10cc51d19b670388452",
      "parents": [
        "f24d95960d85c891fc40db6f1e9644385efb4eb3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 08 17:03:42 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 08 17:06:32 2017 -0700"
      },
      "message": "Split nblog off from nbaio\n\nnbaio is an acronym for \"non-blocking audio I/O\", and nblog means\n\"non-blocking logger\" so nblog does not belong with nbaio.\n\nThere are a lot of improvements planned for nblog, and having the\nrestructuring done will make it clearer as more files are added.\n\nTest: builds OK\nChange-Id: Ib28bada2566c1d64bdbe9f5d7a5ce40e080178ef\n"
    },
    {
      "commit": "8499f13735227aab50b4bc859a1ea6f02166e912",
      "tree": "25f47c647364a40db2ece3d0e06496e0f0e42a16",
      "parents": [
        "08455b8df21e586c88d9f66eff71f0d26230192e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 04 08:08:45 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 08 08:13:11 2017 -0700"
      },
      "message": "Update OWNERS to be more specific\n\nStill to do ... media/OWNERS\n\nTest: Gerrit works as expected\nChange-Id: I2645175569b579764d0298641287e56bfabeab9f\n"
    },
    {
      "commit": "53fdc1d748735a82f05fa77d04ec08e4c5d43eaa",
      "tree": "95f1fe2b71fe7a0efd373193c2f4fe20e22cb551",
      "parents": [
        "a48289c0f7dcc5a8f3e379c9d9fc0bee2916d9ef"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:43:09 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:43:09 2017 -0700"
      },
      "message": "Fix audioprocessing headers by moving them to include/media\n\nBug: 63172425\nTest: Build target\nChange-Id: I7d28827f93133af6f94d9f48c2346ff5d4011df5\n"
    },
    {
      "commit": "952a05feddbab2097e4dc4fb72438d51da198396",
      "tree": "8cb58369709691781257115f67a8c00550b36044",
      "parents": [
        "86175456fb088c8cda6c3d6ee3f77254aa1318cd",
        "8aa96b78076a10f803329a49abcdc38204372f6f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 01 15:01:51 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 01 15:01:51 2017 +0000"
      },
      "message": "Merge \"Remove unused #include.\" am: 66f70d2c8f am: ad06541333 am: dfb2379a16\nam: 8aa96b7807\n\nChange-Id: I3c04d3d225e9ebeca3ab6a9bf8a632e3ef2237b4\n"
    },
    {
      "commit": "8aa96b78076a10f803329a49abcdc38204372f6f",
      "tree": "c97c94d2a5d6f4b8a59a1a14c479ff8112cf9e79",
      "parents": [
        "dc57616ef1949898a92d2ef86433dd1918be7b8e",
        "dfb2379a1669a1a50d26fd67742593c1141cd723"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 01 14:59:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 01 14:59:23 2017 +0000"
      },
      "message": "Merge \"Remove unused #include.\" am: 66f70d2c8f am: ad06541333\nam: dfb2379a16\n\nChange-Id: Ic8190f5093c56e5f1b949b7e96aa75fba14e42ad\n"
    },
    {
      "commit": "00f5e1ab711371c5cf0ef3a92920982714730401",
      "tree": "24d4dfdf9e5f4f8065f0b2574efe0fc7189a7539",
      "parents": [
        "fdb3f0a8c33b8a02c9274c84293b70929c1a1da6",
        "23b206dbf8828c7ddddfb7f3029995e63a50cc7e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 26 23:58:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 26 23:58:09 2017 +0000"
      },
      "message": "Merge \"AudioMixer: fix assertion for multichannel playback\" into oc-dev am: b0cc0bc266\nam: 23b206dbf8\n\nChange-Id: Ic4daba25135f4588fe25455609a524a21452a316\n"
    },
    {
      "commit": "85395896e72f8fc943c79c134e79b3ad9c783363",
      "tree": "ac326dd9dc56b5ad6587b1a81a3ed6c18953f967",
      "parents": [
        "94cfe137a105ec7db047e963e18483425e0d2272"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 25 16:47:52 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 25 16:47:52 2017 -0700"
      },
      "message": "AudioMixer: fix assertion for multichannel playback\n\nReset mPostDownmixReformatBufferProvider before changing\ndownmixerBufferProvider.\n\nTest: Play Music with multichannel files\nBug: 27526910\nChange-Id: I5803e169cb9da4e7681bc8caf1452e79e5a4d1d5\n"
    },
    {
      "commit": "3ab8d66ad1c47a5ee1f87ad9f5ee2666cf89b32d",
      "tree": "4e0b0664033e13a14ad1c05652b7ccded31ee87c",
      "parents": [
        "8ae038e457b0b01c4f082ff5504f8b880b087f77"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 03 14:35:09 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:46:29 2017 -0700"
      },
      "message": "Rename symbols to be more consistent\n\nBug: 37153050\nTest: builds OK\nChange-Id: I7e55a03ca8e1f22901db6c8f6f2ad32e4c95a0cd\n"
    },
    {
      "commit": "91164e7f94030b3e49a31d88c91d70d4bd358ebe",
      "tree": "7dd1d0ea1f841ff949f0fb40afef6471d15690ea",
      "parents": [
        "0e4b8e9cb1b422195c49be49b48d039aa0814acf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 15 15:55:01 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 09:01:58 2017 -0700"
      },
      "message": "Use static_assert instead of COMPILE_TIME_ASSERT_FUNCTION_SCOPE\n\nTest: builds OK\nChange-Id: I5923dce96e43d7107f1d8e3145ad4bb5eca261e7\n"
    },
    {
      "commit": "e2b43843fd12783188edd2c54188ea8d26864788",
      "tree": "baab518964134359128ed35e5ebfc36cf977cde4",
      "parents": [
        "b4d5ec0d8f3755ccb8d5ce51798c3004330e1120"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Feb 02 13:35:37 2017 -0800"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Feb 24 11:47:45 2017 -0800"
      },
      "message": "Moved headers from include/ to appropriate libs\n\ninclude/camera -\u003e camera/include/camera\ninclude/media/audiohal -\u003e media/libaudiohal/include\ninclude/media/AudioResampler*.h -\u003e media/libaudioprocessing/include\ninclude/media/Audio*.h,IAudio*.h,IEffect*.h,ToneGenerator.h -\u003e media/libaudioclient/include\ninclude/media/EffectsFactoryApi.h -\u003e media/libeffects/include\ninclude/media/stagefright -\u003e media/libstagefright/include\ninclude/media/nbaio -\u003e media/libnbaio/include\ninclude/media/\u003crest of files\u003e -\u003e media/libmedia/include\ninclude/cpustats -\u003e media/libcpustats/include/cpustats\n\nAdded symlinks from old location to new ones\n\nBug: 33241851\n\nTest: VNDK linked modules will need to add explicit lib dep.\nAll other modules should compile the same\n\nChange-Id: I0ecf754a2132640ae781a3cc31428fb8c0bd1669\n"
    },
    {
      "commit": "66916c26a7055c9e10471720502a29f759609819",
      "tree": "931ce309f34c35775a11240b4f8186db1983f90b",
      "parents": [
        "ceec4a06595253a6dcc167064f318e470e1c3b58"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "message": "audio hal: Fix multichannel playback\n\nCorrectly operate on input and output buffers in DownmixerBufferProvider\n\nNote that playback is a bit choppy, need to investigate further.\n\nChange-Id: I350175dcc9cc7142a1935585a8bd5e9abb1b8eb6\nTest: play back a 5.1 file\n"
    },
    {
      "commit": "8c48184651df8edb5b9490fe616844dbcfbbb0a4",
      "tree": "a394d86ba1dc2e4826c7e6376b0d2bd74d49ca8a",
      "parents": [
        "060a6c53b5022c9e539a4c9b03b16da546964bec",
        "8981605d43e24c46d395acb5f145b99589d45917"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 13 16:19:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 16:19:33 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Move RecordBufferConverter to libaudioprocessing\""
    },
    {
      "commit": "060a6c53b5022c9e539a4c9b03b16da546964bec",
      "tree": "5c517aa0d24e519bb40dcd2431ffefa43959d4d7",
      "parents": [
        "d825ab9d5be990a6a7fb28033cfba84441100731",
        "49d3b5ee8e89e274a5c259dddb7cde38e98c2cde"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 59cfe7de39 am: c6d07e8230 am: 15b18326b6\nam: 49d3b5ee8e\n\nChange-Id: I87a85c85d3f509e0496f5946d6e9e58174398ea5\n"
    },
    {
      "commit": "8981605d43e24c46d395acb5f145b99589d45917",
      "tree": "8bb7ee0e15081201b70730bbaafed49b47d211dc",
      "parents": [
        "d7c5ec857930496bb8a1045dc8b87b2fdd99899c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:08:23 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:19:37 2017 -0800"
      },
      "message": "AudioFlinger: Move RecordBufferConverter to libaudioprocessing\n\nTest: Recording loopback\nBug: 31015569\nChange-Id: I7897d959f36ac7424544e35f47576c99a442dd54\n"
    },
    {
      "commit": "2f607551825066933ef2ab9cac84833306c72db0",
      "tree": "94c1662a40000316608a3157bd81d2387575a60f",
      "parents": [
        "67d0d7eb36e7c36d0a9dec9264c0cab832196d57"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 11 16:09:03 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 11 16:13:57 2017 -0800"
      },
      "message": "Fix crash in DownmixerBufferProvider\n\nIn ag/1768960, I forgot to actually set the buffers for the effect\ninterface. Without that, a \u0027process\u0027 method was attempting to use null\nbuffers.\n\nBug: 34228998\nTest: android.media.cts.AudioNativeTest#testPlayStreamData\nChange-Id: I904a9c08aa75bd5738b3ce981ee54511f37df7ec\n"
    },
    {
      "commit": "068561c8e84569d51df2adbbb53b56fdfd09c06b",
      "tree": "67e6c9c383b4667adc502b0ed6928a672a6a5b6d",
      "parents": [
        "ee454fcb25bff0f9c5d3455775a4cb66429e875e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 03 17:09:32 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 10 17:06:46 2017 -0800"
      },
      "message": "AudioFlinger: Split off audio processing library\n\nTest: native AudioResampler test, general playback test\nBug: 31015569\nChange-Id: Ifb248f4402a583438d756c014dcd7a4577aef713\n"
    }
  ]
}
