)]}'
{
  "log": [
    {
      "commit": "66cae4fa2d38c0209165b3527a9fbba9b72a65f6",
      "tree": "85d447774ba82b7da906234f078750cea3540d22",
      "parents": [
        "9b3ea76c665a52ede718f6e0efbae550e5727a04",
        "d90aeec7d734fab978b550df142ea3bf75be7dd7"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Feb 24 01:22:11 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 24 01:22:11 2021 +0000"
      },
      "message": "Merge \"Do not add quotes around flags argument\" am: d90aeec7d7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1598336\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I714888749a4a2b79091cd8a67f04925885833ef0\n"
    },
    {
      "commit": "492141a842981ac85c241c4b444a8485f0e270a1",
      "tree": "b732e2e076e9edfe242248d553b2623c8f70e517",
      "parents": [
        "91b07bcea7bb5c6661db16c89abe9805a0d2dacc"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sun Feb 21 18:17:49 2021 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sun Feb 21 19:06:50 2021 -0800"
      },
      "message": "Do not add quotes around flags argument\n\n* build/soong will adds quotes around the whole flags\n  and preserve the quotes around flags argument.\n  The quotes incorrectly became part of a flag\u0027s value.\n* build/soong adds automatically module directory to\n  -header-filter.\n* allow new found .h file clang-tidy warnings, not as errors.\n\nBug: 180862582\nTest: make; make with WITH_TIDY\u003d1\nChange-Id: Ic4aebedf1e13974aa7400fa256325ca3bff764b9\n"
    },
    {
      "commit": "6a08a9293b732532e98607d41a42bc06a52e8184",
      "tree": "a33a0ab6ffb3cf820c22f1a9ee53d2001dfaf9bb",
      "parents": [
        "ad9882e76f9debbd2ada2b616d5f51b8908ed764",
        "0c3f0588700228d4d81dded56480d14857e1b2cd"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:25:04 2021 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:25:04 2021 -0800"
      },
      "message": "Merge ab/7061308 into stage.\n\nBug: 180401296\nMerged-In: Iffdea341e5cd3cc2ef82e1b9c0adf211b3c29381\nChange-Id: I9e0e28ec101bde3ee24c946e9fb5c11b1cceba64\n"
    },
    {
      "commit": "948e6aace91d16acfaa97763c7228029a1c2afe0",
      "tree": "e1213aacab8f21fd8bf9dcd02dbc82741013379f",
      "parents": [
        "367398038247b09a3f92e05affac5f9b1f5e2f90"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 21:02:31 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:09:57 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  camera/cameraserver/Android.bp\n  camera/tests/Android.mk\n  cmds/screenrecord/Android.bp\n  cmds/stagefright/Android.mk\n  drm/common/Android.bp\n  drm/drmserver/Android.bp\n  drm/libdrmframework/Android.bp\n  drm/libdrmframework/plugins/common/util/Android.bp\n  drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.bp\n  drm/libdrmframework/plugins/passthru/Android.bp\n  drm/libmediadrm/Android.bp\n  drm/libmediadrm/fuzzer/Android.bp\n  drm/libmediadrm/protos/Android.bp\n  drm/libmediadrm/tests/Android.bp\n  drm/mediacas/plugins/clearkey/Android.bp\n  drm/mediacas/plugins/clearkey/tests/Android.bp\n  drm/mediacas/plugins/mock/Android.bp\n  drm/mediadrm/plugins/clearkey/common/Android.bp\n  drm/mediadrm/plugins/clearkey/default/Android.bp\n  drm/mediadrm/plugins/clearkey/default/tests/Android.bp\n  drm/mediadrm/plugins/mock/Android.bp\n  media/audioserver/Android.mk\n  media/bufferpool/1.0/Android.bp\n  media/bufferpool/1.0/vts/Android.bp\n  media/bufferpool/2.0/Android.bp\n  media/bufferpool/2.0/tests/Android.bp\n  media/codec2/components/aac/Android.bp\n  media/codec2/components/amr_nb_wb/Android.bp\n  media/codec2/components/aom/Android.bp\n  media/codec2/components/avc/Android.bp\n  media/codec2/components/base/Android.bp\n  media/codec2/components/cmds/Android.bp\n  media/codec2/components/flac/Android.bp\n  media/codec2/components/g711/Android.bp\n  media/codec2/components/gav1/Android.bp\n  media/codec2/components/gsm/Android.bp\n  media/codec2/components/hevc/Android.bp\n  media/codec2/components/mp3/Android.bp\n  media/codec2/components/mpeg2/Android.bp\n  media/codec2/components/mpeg4_h263/Android.bp\n  media/codec2/components/opus/Android.bp\n  media/codec2/components/raw/Android.bp\n  media/codec2/components/vorbis/Android.bp\n  media/codec2/components/vpx/Android.bp\n  media/codec2/components/xaac/Android.bp\n  media/codec2/core/Android.bp\n  media/codec2/faultinjection/Android.bp\n  media/codec2/fuzzer/Android.bp\n  media/codec2/hidl/1.0/utils/Android.bp\n  media/codec2/hidl/1.0/vts/functional/Android.bp\n  media/codec2/hidl/1.0/vts/functional/audio/Android.bp\n  media/codec2/hidl/1.0/vts/functional/common/Android.bp\n  media/codec2/hidl/1.0/vts/functional/component/Android.bp\n  media/codec2/hidl/1.0/vts/functional/master/Android.bp\n  media/codec2/hidl/1.0/vts/functional/video/Android.bp\n  media/codec2/hidl/1.1/utils/Android.bp\n  media/codec2/hidl/client/Android.bp\n  media/codec2/hidl/services/Android.bp\n  media/codec2/sfplugin/Android.bp\n  media/codec2/sfplugin/tests/Android.bp\n  media/codec2/sfplugin/utils/Android.bp\n  media/codec2/tests/Android.bp\n  media/codec2/vndk/Android.bp\n  media/codecs/amrnb/common/Android.bp\n  media/codecs/amrnb/enc/fuzzer/Android.bp\n  media/codecs/amrnb/fuzzer/Android.bp\n  media/codecs/amrwb/dec/fuzzer/Android.bp\n  media/codecs/amrwb/enc/Android.bp\n  media/codecs/amrwb/enc/SampleCode/Android.bp\n  media/codecs/amrwb/enc/fuzzer/Android.bp\n  media/codecs/amrwb/enc/test/Android.bp\n  media/codecs/g711/decoder/Android.bp\n  media/codecs/g711/fuzzer/Android.bp\n  media/codecs/m4v_h263/dec/Android.bp\n  media/codecs/m4v_h263/dec/test/Android.bp\n  media/codecs/m4v_h263/fuzzer/Android.bp\n  media/codecs/mp3dec/fuzzer/Android.bp\n  media/extractors/Android.bp\n  media/extractors/aac/Android.bp\n  media/extractors/amr/Android.bp\n  media/extractors/flac/Android.bp\n  media/extractors/fuzzers/Android.bp\n  media/extractors/midi/Android.bp\n  media/extractors/mkv/Android.bp\n  media/extractors/mp3/Android.bp\n  media/extractors/mp4/Android.bp\n  media/extractors/mpeg2/Android.bp\n  media/extractors/ogg/Android.bp\n  media/extractors/tests/Android.bp\n  media/extractors/wav/Android.bp\n  media/img_utils/Android.bp\n  media/libaaudio/Android.bp\n  media/libaaudio/examples/Android.bp\n  media/libaaudio/examples/input_monitor/Android.bp\n  media/libaaudio/examples/loopback/Android.bp\n  media/libaaudio/examples/write_sine/Android.bp\n  media/libaaudio/src/Android.bp\n  media/libaaudio/tests/Android.bp\n  media/libaudioclient/Android.bp\n  media/libaudioclient/tests/Android.bp\n  media/libaudiofoundation/Android.bp\n  media/libaudiofoundation/tests/Android.bp\n  media/libaudiohal/Android.bp\n  media/libaudiohal/impl/Android.bp\n  media/libaudioprocessing/Android.bp\n  media/libaudioprocessing/audio-resampler/Android.bp\n  media/libaudioprocessing/tests/Android.bp\n  media/libaudioprocessing/tests/fuzzer/Android.bp\n  media/libcpustats/Android.bp\n  media/libdatasource/Android.bp\n  media/libeffects/config/Android.bp\n  media/libeffects/downmix/Android.bp\n  media/libeffects/downmix/tests/Android.bp\n  media/libeffects/dynamicsproc/Android.bp\n  media/libeffects/factory/Android.bp\n  media/libeffects/loudness/Android.bp\n  media/libeffects/lvm/benchmarks/Android.bp\n  media/libeffects/lvm/lib/Android.bp\n  media/libeffects/lvm/tests/Android.bp\n  media/libeffects/lvm/wrapper/Android.bp\n  media/libeffects/preprocessing/Android.bp\n  media/libeffects/preprocessing/benchmarks/Android.bp\n  media/libeffects/preprocessing/tests/Android.bp\n  media/libeffects/proxy/Android.bp\n  media/libeffects/visualizer/Android.mk\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/xsd/Android.bp\n  media/libmedia/xsd/vts/Android.bp\n  media/libmediahelper/Android.bp\n  media/libmediahelper/tests/Android.bp\n  media/libmediametrics/Android.bp\n  media/libmediaplayerservice/Android.bp\n  media/libmediaplayerservice/datasource/Android.bp\n  media/libmediaplayerservice/nuplayer/Android.bp\n  media/libmediaplayerservice/tests/Android.bp\n  media/libmediaplayerservice/tests/stagefrightRecorder/Android.bp\n  media/libmediatranscoding/Android.bp\n  media/libmediatranscoding/tests/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libstagefright/Android.bp\n  media/libstagefright/bqhelper/Android.bp\n  media/libstagefright/bqhelper/tests/Android.bp\n  media/libstagefright/codecs/aacdec/Android.bp\n  media/libstagefright/codecs/aacenc/Android.bp\n  media/libstagefright/codecs/amrnb/dec/Android.bp\n  media/libstagefright/codecs/amrnb/enc/Android.bp\n  media/libstagefright/codecs/amrwbenc/Android.bp\n  media/libstagefright/codecs/avcdec/Android.bp\n  media/libstagefright/codecs/avcenc/Android.bp\n  media/libstagefright/codecs/common/Android.bp\n  media/libstagefright/codecs/flac/dec/Android.bp\n  media/libstagefright/codecs/flac/enc/Android.bp\n  media/libstagefright/codecs/g711/dec/Android.bp\n  media/libstagefright/codecs/gsm/dec/Android.bp\n  media/libstagefright/codecs/hevcdec/Android.bp\n  media/libstagefright/codecs/m4v_h263/dec/Android.bp\n  media/libstagefright/codecs/m4v_h263/enc/Android.bp\n  media/libstagefright/codecs/mp3dec/Android.bp\n  media/libstagefright/codecs/mpeg2dec/Android.bp\n  media/libstagefright/codecs/on2/dec/Android.bp\n  media/libstagefright/codecs/on2/enc/Android.bp\n  media/libstagefright/codecs/opus/dec/Android.bp\n  media/libstagefright/codecs/raw/Android.bp\n  media/libstagefright/codecs/vorbis/dec/Android.bp\n  media/libstagefright/codecs/xaacdec/Android.bp\n  media/libstagefright/colorconversion/Android.bp\n  media/libstagefright/data/Android.bp\n  media/libstagefright/filters/Android.bp\n  media/libstagefright/flac/dec/Android.bp\n  media/libstagefright/flac/dec/test/Android.bp\n  media/libstagefright/foundation/Android.bp\n  media/libstagefright/foundation/tests/AVCUtils/Android.bp\n  media/libstagefright/foundation/tests/Android.bp\n  media/libstagefright/foundation/tests/OpusHeader/Android.bp\n  media/libstagefright/foundation/tests/colorutils/Android.bp\n  media/libstagefright/http/Android.bp\n  media/libstagefright/httplive/Android.bp\n  media/libstagefright/id3/Android.bp\n  media/libstagefright/id3/test/Android.bp\n  media/libstagefright/mpeg2ts/Android.bp\n  media/libstagefright/mpeg2ts/test/Android.bp\n  media/libstagefright/omx/Android.bp\n  media/libstagefright/omx/tests/Android.bp\n  media/libstagefright/rtsp/Android.bp\n  media/libstagefright/tests/Android.bp\n  media/libstagefright/tests/ESDS/Android.bp\n  media/libstagefright/tests/HEVC/Android.bp\n  media/libstagefright/tests/extractorFactory/Android.bp\n  media/libstagefright/tests/fuzzers/Android.bp\n  media/libstagefright/tests/mediacodec/Android.bp\n  media/libstagefright/tests/metadatautils/Android.bp\n  media/libstagefright/tests/writer/Android.bp\n  media/libstagefright/timedtext/Android.bp\n  media/libstagefright/timedtext/test/Android.bp\n  media/libstagefright/webm/Android.bp\n  media/libstagefright/webm/tests/Android.bp\n  media/libstagefright/writer_fuzzers/Android.bp\n  media/libstagefright/xmlparser/Android.bp\n  media/libstagefright/xmlparser/test/Android.bp\n  media/libstagefright/xmlparser/vts/Android.bp\n  media/libwatchdog/Android.bp\n  media/mediaserver/Android.bp\n  media/mtp/Android.bp\n  media/mtp/tests/Android.bp\n  media/tests/benchmark/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/src/main/cpp/Android.bp\n  media/tests/benchmark/src/native/common/Android.bp\n  media/tests/benchmark/src/native/decoder/Android.bp\n  media/tests/benchmark/src/native/encoder/Android.bp\n  media/tests/benchmark/src/native/extractor/Android.bp\n  media/tests/benchmark/src/native/muxer/Android.bp\n  media/tests/benchmark/tests/Android.bp\n  media/utils/Android.bp\n  media/utils/fuzzers/Android.bp\n  services/audioflinger/Android.bp\n  services/audiopolicy/Android.bp\n  services/audiopolicy/common/Android.bp\n  services/audiopolicy/common/managerdefinitions/Android.bp\n  services/audiopolicy/config/Android.bp\n  services/audiopolicy/engine/common/Android.bp\n  services/audiopolicy/engine/config/Android.bp\n  services/audiopolicy/engine/interface/Android.bp\n  services/audiopolicy/engineconfigurable/Android.bp\n  services/audiopolicy/engineconfigurable/config/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/automotive/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/caremu/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.bp\n  services/audiopolicy/engineconfigurable/tools/Android.bp\n  services/audiopolicy/engineconfigurable/wrapper/Android.bp\n  services/audiopolicy/enginedefault/Android.bp\n  services/audiopolicy/enginedefault/config/example/Android.bp\n  services/audiopolicy/manager/Android.mk\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.mk\n  services/audiopolicy/tests/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/tests/Android.mk\n  services/mediacodec/Android.bp\n  services/mediacodec/registrant/Android.bp\n  services/mediaextractor/Android.bp\n  services/medialog/Android.bp\n  services/medialog/fuzzer/Android.bp\n  services/mediametrics/Android.bp\n  services/mediametrics/benchmarks/Android.bp\n  services/mediametrics/fuzzer/Android.bp\n  services/mediametrics/tests/Android.bp\n  services/mediaresourcemanager/Android.bp\n  services/mediaresourcemanager/fuzzer/Android.bp\n  services/mediaresourcemanager/test/Android.bp\n  services/mediatranscoding/Android.bp\n  services/mediatranscoding/tests/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  media/codecs/amrnb/dec/Android.bp\n  media/codecs/amrnb/dec/test/Android.bp\n  media/codecs/amrnb/enc/Android.bp\n  media/codecs/amrnb/enc/test/Android.bp\n  media/codecs/amrwb/dec/Android.bp\n  media/codecs/amrwb/dec/test/Android.bp\n  media/codecs/m4v_h263/enc/Android.bp\n  media/codecs/m4v_h263/enc/test/Android.bp\n  media/codecs/mp3dec/Android.bp\n  media/codecs/mp3dec/test/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    legacy_by_exception_only\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\n    SPDX-license-identifier-Unicode-DFS\nto:\n  apex/testing/Android.bp\n  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Car/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/CarEmu/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoInput/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoOutput/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_by_exception_only\nto:\n  drm/mediadrm/plugins/clearkey/hidl/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: I8360756b326b891b56629127091540310851c941\nMerged-in: Ic169757d64ad8da7eebd0e1febdcbfb467fe81f4\nMerged-in: Ifa3fefe5dc12229e8043a54ffd1f3958d6b02310\nMerged-in: I1e32081a069c4c1b25aa200dcdb165c0feb07b8a\nMerged-in: Ib2050becaf89b8e4db5867bc601dedeb4eb8ebd2\nMerged-in: I5a4d51fb1244ed49bcd70e446aaa26e2aa8ed7b1\n"
    },
    {
      "commit": "1349f47fdb96e0347075b7f6f6ff453e97caba17",
      "tree": "fde4f3762f714a441d05f0108acb6820b6327480",
      "parents": [
        "89715382dcdb87aca5737b0954cdd844bcc58267"
      ],
      "author": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Wed Nov 11 23:49:28 2020 +0000"
      },
      "committer": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Tue Dec 15 22:27:51 2020 +0000"
      },
      "message": "Log MediaExtractor entry point to MediaMetrics\n\nBug: 170386720\nTest: atest libctsmediav2extractor_jni\nTest: atest CtsMediaTestCases\nChange-Id: I648e27b1b483a646df77e2a88ec5ac8af01a0bb9\nMerged-In: I648e27b1b483a646df77e2a88ec5ac8af01a0bb9\n"
    },
    {
      "commit": "7fa4eba54b5b0dc6e2c786feb3dde0df96cd59a1",
      "tree": "892df045ee8b66bbdd9892fe1337f619ba7f0f7b",
      "parents": [
        "a307947b862da2b9942d73d3de942c3966141ecf",
        "1d5300615c3afff3397a57f72d029f284ccb9059"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 05 02:17:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Dec 05 02:17:39 2020 +0000"
      },
      "message": "Merge \"Added mediametrics_service_fuzzer\" am: 3fdd9fb5c3 am: 1d5300615c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1505333\n\nChange-Id: I760a13a41327830d51659bb4ad7efe4939d30335\n"
    },
    {
      "commit": "ab3a6418bb2605a3dbb4dc42c773bcc246762942",
      "tree": "bf03eacd2de782664895cbe1658ac675fe603831",
      "parents": [
        "691ebfea2dc3dab4daeafafe005933adea9fb4cb"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Thu Oct 22 16:13:32 2020 +0530"
      },
      "committer": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Fri Dec 04 11:47:48 2020 +0530"
      },
      "message": "Added mediametrics_service_fuzzer\n\nTest: ./mediametrics_service_fuzzer\nBug: 172429215\n\nChange-Id: I9fe2b593124b80552c5bd8315e0a78018ce3ebbc\n"
    },
    {
      "commit": "9abebbaebcaaa09e98fd1d966289032406089521",
      "tree": "7126439c267d64cdc59a062cdb7a040f2f28ec09",
      "parents": [
        "5ffb3ef0be0aff54df6b554e5c78c598c4a5ce55",
        "a69f0713ab8ae25a7323773c97dfe707c34acdda"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 03 01:21:13 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter am: dc6be0d575 am: a69f0713ab\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1515658\n\nChange-Id: I7a32469c35e17c15bb5d147fcac930eef04c14ff\n"
    },
    {
      "commit": "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b",
      "tree": "33e22ce5f12c4b75414dfa242de2190ae0515091",
      "parents": [
        "d19faf826761db767dc8ee967149fe8939416850"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 25 23:03:05 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:39:39 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter\n\nUse of system functions eliminates the need for listing all enum\nvalues in TypeConverter tables.\n\nSlight changes in the converting functions:\n\n1. \u0027channelMaskFromString\u0027 function now also accepts indexed\n   masks.\n2. Fixed UB in \u0027formatFromString\u0027 function.\n3. Removed \u0027deviceFromString\u0027 function, use\n   \u0027DeviceConverter::fromString\u0027 instead.\n\nReplaced direct includes of \u0027system/audio-base.h\u0027 with\nincludes of \u0027system/audio.h\u0027.\n\nBug: 142480271\nTest: m\nTest: atest libmedia_helper_tests\nChange-Id: Ia0e725026be80621bdc797299e63e134419b2b3d\nMerged-In: Ia0e725026be80621bdc797299e63e134419b2b3d\n"
    },
    {
      "commit": "431bc74360b19153a08d8d062998b31399b70692",
      "tree": "055b5591785861623667afa2a2346d830a980e5e",
      "parents": [
        "55f23e06509010a2a6ace293b4c723c8bba40b33"
      ],
      "author": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:49:32 2020 -0800"
      },
      "committer": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 16:58:13 2020 +0000"
      },
      "message": "Migrate imports to use proto_logging\n\nBug: 167962588\nTest: m -j\nChange-Id: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\nMerged-In: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\n"
    },
    {
      "commit": "f4a007b4c3d036c7767a83e0c1a1a560a32f9763",
      "tree": "aed072aef4f16e57dcb1109c2336598544600aa5",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:49:32 2020 -0800"
      },
      "committer": {
        "name": "Jeffrey Huang",
        "email": "jeffreyhuang@google.com",
        "time": "Wed Nov 25 02:59:41 2020 -0800"
      },
      "message": "Migrate imports to use proto_logging\n\nBug: 167962588\nTest: m -j\nChange-Id: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\nMerged-In: Ib40fe8cb03e52de375cf45ac10b11ed67b2f4196\n"
    },
    {
      "commit": "deac390fc613fce45f81e83b2860a32bff0394fc",
      "tree": "3ed100aa8a23764f99dd2e52c317310d1c5e910c",
      "parents": [
        "226b8e657189db6601611e639473e97d1a2f8146",
        "c1d1f43e46d810a968a444ea3bef1002b9812d36"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 20 21:09:58 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Nov 20 21:09:58 2020 +0000"
      },
      "message": "Merge \"libmediametrics and libmediametricsservice: Updated Android.bp\" am: fe4094eace am: c1d1f43e46\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1505332\n\nChange-Id: I938acfeb59ef9a6a11484fd37dcb8515bd8d0997\n"
    },
    {
      "commit": "1d5f7edc2f5f39ab3685ca995c8959af8d59b6dc",
      "tree": "fafdb242298abb4d2e461bc0eea11b8830c430a2",
      "parents": [
        "85486fc425122b2b1984bf323822a7b0933d8158"
      ],
      "author": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Tue Oct 13 14:09:26 2020 +0530"
      },
      "committer": {
        "name": "Mufaddal Chakera",
        "email": "mufaddal.chakera@ittiam.com",
        "time": "Thu Nov 19 15:21:09 2020 +0530"
      },
      "message": "libmediametrics and libmediametricsservice: Updated Android.bp\n\nUpdated to  build both static and shared library for both the libraries.\n\nTest: Build libmediametrics\nTest: Build libmediametricsservice\nBug: 172429215\n\nChange-Id: I2d2043cab0cc72a36df053005edc6f9adcb1ca4e\n"
    },
    {
      "commit": "c495f7822ed67696883f9e8376b4278edbe11e5c",
      "tree": "1f6399ab8d63af3701ce437cbebc65a74a6b5a66",
      "parents": [
        "84c48590e568e2d29290d53f8022db6c05721cdb",
        "f7022f2a3f4a36a3cb4763a139ee909b60b7b258"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 04 20:46:50 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 20:46:50 2020 +0000"
      },
      "message": "Merge \"Allow MediaMetrics entries from MediaParser\" into rvc-qpr-dev-plus-aosp"
    },
    {
      "commit": "f7022f2a3f4a36a3cb4763a139ee909b60b7b258",
      "tree": "1f8a4f7ef1052d49a9a98b6cb34b3d81828c6269",
      "parents": [
        "9dec61cd738ce145e3ba427c2daaada081389a77"
      ],
      "author": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Fri Aug 07 13:48:45 2020 +0100"
      },
      "committer": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Fri Oct 30 16:43:02 2020 +0000"
      },
      "message": "Allow MediaMetrics entries from MediaParser\n\n- Make MediaMetrcis stable C API visible to the media mainline module.\n- Allow-list MediaMetrics entries from MediaParser.\n\nBug: 158742256\nTest: Manual.\nChange-Id: Icca73a9396195d8cf299eb03bc778a032aacc364\nMerged-In: Icca73a9396195d8cf299eb03bc778a032aacc364\n(cherry picked from commit 49fb4521427825e4d443260d6395446536f778cc)\n"
    },
    {
      "commit": "149f0586e9a9493107964b5989568943cc871246",
      "tree": "1c39a32bb98166189bb67524ffec77707d202c78",
      "parents": [
        "9dec61cd738ce145e3ba427c2daaada081389a77"
      ],
      "author": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Tue Aug 11 17:58:41 2020 +0100"
      },
      "committer": {
        "name": "Santiago Seifert",
        "email": "aquilescanta@google.com",
        "time": "Fri Oct 30 16:42:55 2020 +0000"
      },
      "message": "Pass MediaParser metrics to statsd\n\nAlso include MediaParser JNI in the Media mainline module.\n\nBug: 158742256\nTest: atest CtsMediaParserTestCases\nChange-Id: I4db82cb4b003bd6456862a12fe7882e25687f8e4\nMerged-In: I4db82cb4b003bd6456862a12fe7882e25687f8e4\n"
    },
    {
      "commit": "cfb0ffb0a84349835c5921e590432992ebe9c03f",
      "tree": "e73971da109ef803721c084684611f8c3438b27f",
      "parents": [
        "f2bc04598830a2bfe7c93045b5178db64288ca92"
      ],
      "author": {
        "name": "rogerfang",
        "email": "rogerfang@google.com",
        "time": "Thu Jul 16 16:27:16 2020 +0800"
      },
      "committer": {
        "name": "Roger Fang",
        "email": "rogerfang@google.com",
        "time": "Mon Jul 20 05:51:11 2020 +0000"
      },
      "message": "MediaMetric:Save each item indiviually for AudioPowerUsage\n\nBug: 161091764\nTest: Making any voice call with any combo devices\n\nSigned-off-by: rogerfang \u003crogerfang@google.com\u003e\nChange-Id: I7ec4fe6b530d30d1f5c1a6c8a4d25d2de354cb42\nMerged-in: I7ec4fe6b530d30d1f5c1a6c8a4d25d2de354cb42\n"
    },
    {
      "commit": "74daafd483d50bb2b09ff4523f90542efa34db02",
      "tree": "a989773f2ace67fac6ca753a8629193a45ee09d8",
      "parents": [
        "e943989e64eeb03234ff48d14c5af946a529b6cd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 17 12:58:54 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 17 23:40:55 2020 +0000"
      },
      "message": "MediaMetrics: Suppress device names\n\nTest: BT connection and playback, verify mediametrics\n      dumpsys logs for statsd atoms show SUPPRESSED.\nTest: statsd_testdrive\nBug: 161554630\nMerged-In: I16a85c514a8a8db02f44a512b90fd0a5896976af\nChange-Id: I16a85c514a8a8db02f44a512b90fd0a5896976af\n(cherry picked from commit 3deef2b2ee1d5a00d87440335e2c985c01ccbf97)\n"
    },
    {
      "commit": "de38ff80042687152302c73df823fccad2b8c25e",
      "tree": "3fa91a1555944515f8209bc43651b62a96dcd369",
      "parents": [
        "eb622de2f80055505b921a05484178b150232796",
        "5a557295627932e9b8e78abe7383c4ba5c07f2e4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 22 23:26:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 23:26:49 2020 +0000"
      },
      "message": "Merge \"Push new codec values to statsd\" into rvc-dev"
    },
    {
      "commit": "b18f506c3c29f2aee335a6d205a77793d7b539fd",
      "tree": "d793a782a2d832ad7d68de41e809ce3a83d843cb",
      "parents": [
        "47178c2d75ab261903ab859c28ecd10ffe90d212"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 23:10:08 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 12:28:17 2020 -0700"
      },
      "message": "MediaMetrics: Retain previous audio state a limited time.\n\nClears after 1 hour to reduce memory footprint.\nOnly one previous state is kept at any time.\n\nTest: reboot, wait, mediametrics dumpsys/logcat\nBug: 159410113\nChange-Id: I1bce419a69dc14699e70ac481354c1121477b194\n"
    },
    {
      "commit": "47178c2d75ab261903ab859c28ecd10ffe90d212",
      "tree": "ff9b1743ced2b7d812dcf404224fa27fa7561129",
      "parents": [
        "453044a3a0b190548ef15b27201444617bfec5d9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 18:57:35 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 12:27:47 2020 -0700"
      },
      "message": "MediaMetrics: Tune garbage collection\n\nReduce thresholds for garbage collection.\nTrack the number of gcs in the dumpsys.\n\nTest: 30x repeated invocation of AudioTrackTest\nTest: adb shell showmap \u0027$(pgrep -f audioserver)\u0027\nTest: adb shell dumpsys media.metrics --all\nBug: 159410113\nChange-Id: I3ff7bb84bc45e44fe3d5ea84fecdf05c76cf5733\n"
    },
    {
      "commit": "087b37c360200e3e97935efd958ce4384a6675cd",
      "tree": "72d22173c3730582683e078d8e1a7192e3c8d94c",
      "parents": [
        "19d51164324653a7312c6d7bc0fd0ac43d581503"
      ],
      "author": {
        "name": "Muhammad Qureshi",
        "email": "muhammadq@google.com",
        "time": "Tue Jun 16 16:37:36 2020 -0700"
      },
      "committer": {
        "name": "Muhammad Qureshi",
        "email": "muhammadq@google.com",
        "time": "Tue Jun 16 18:05:47 2020 -0700"
      },
      "message": "Rename \"Westworld\" to \"Statsd\"\n\nBug: 158725651\nTest: N/A; trivial name change\nChange-Id: I39f8847059c6decac070aaea901b7d0d418c75e9\n"
    },
    {
      "commit": "a0a5ad220b5fe5ef6bf880ea41b7476f0fcc703b",
      "tree": "8843cd288e1dc090acc622d564d6373ed8345b17",
      "parents": [
        "a629bd13e9f224b8472365135757f0676636f8e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 09:30:34 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 10:54:39 2020 -0700"
      },
      "message": "MediaMetrics: Enable proto upload to statsd\n\nMediaMetricsAudioRecordDeviceUsageReported\nMediaMetricsAudioThreadDeviceUsageReported\nMediaMetricsAudioTrackDeviceUsageReported\nMediaMetricsAudioDeviceConnectionReported\n\nTest: adb shell dumpsys media.metrics (after BT connection)\nTest: statsd_testdrive (294-297)\nBug: 149850236\nChange-Id: I10ec2945488860cddfe35e58613f207d305d8a55\n"
    },
    {
      "commit": "a629bd13e9f224b8472365135757f0676636f8e2",
      "tree": "4bdce444fd726634f20803fd279ab254a478c262",
      "parents": [
        "752adf7f1a340cbb6599fcff1842cf3659c75612"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 05 16:03:53 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 10:43:37 2020 -0700"
      },
      "message": "MediaMetrics: Prepare audio device usage protos for statsd\n\nMediaMetricsAudioRecordDeviceUsageReported\nMediaMetricsAudioThreadDeviceUsageReported\nMediaMetricsAudioTrackDeviceUsageReported\nMediaMetricsAudioDeviceConnectionReported\n\nAdd track traits to identify static AudioTracks.\nFix AudioTrack/AudioRecord flag communication.\nMove debug logging to verbose (delivered protos show in dumpsys).\nUnknown strings which fail validation become empty.\nTest statsd type validation.\n\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics (after BT connection)\nTest: statsd_testdrive (294-297)\nBug: 149850236\nChange-Id: I53c5d18a346af54941007b9938a8ab10e34b7038\n"
    },
    {
      "commit": "5a557295627932e9b8e78abe7383c4ba5c07f2e4",
      "tree": "ec536e69d02d6b046b44da52ee799a6125b56518",
      "parents": [
        "752adf7f1a340cbb6599fcff1842cf3659c75612"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jun 10 21:31:33 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jun 12 06:02:42 2020 -0700"
      },
      "message": "Push new codec values to statsd\n\nWe can enable these now that statsd is ready to accept them\n\nBug: 139143194\nTest: dumpsys mediametrics\nTest: statsd_testdrive for field presence/sanity\nChange-Id: I6d1304ef5d3d518039c8aa351e6ebb93adccb16a\n"
    },
    {
      "commit": "a38704a692224aebca63c430ab15acf5a9d5b29f",
      "tree": "8c48a0b2b05e6fd1fb99cfa88c4179b611db3abc",
      "parents": [
        "d40bc7615ff9bb6aac308083c51980437a9c6a21"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jun 01 13:56:28 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jun 01 15:57:32 2020 -0700"
      },
      "message": "replace char * with std::string\n\nchange some statsd parameters that were formerly bare C strings to\nuse std::string; statsd changed behavior from Q (NULL was tolerated) to\nR (NULL causes crash within statsd).\n\nBug: 157887206\nBug: 155363739\nTest: playback of protected content\nChange-Id: Id3f65c43212f20d1b042a445753d57432c94a259\n"
    },
    {
      "commit": "09a88538622f7e97e3ec4ca7fe43e09bb60290e8",
      "tree": "3bbd430cd0fd5e3c9a4c04a0a91880e79c6c476a",
      "parents": [
        "701a08e2d4d991d076ec66a1b5929e1342c9bba5",
        "a21a3d3540689439043ce1559e82a8224d2f7088"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 30 01:04:38 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 30 01:04:38 2020 +0000"
      },
      "message": "Merge \"Additional mediametrics for MediaCodec\" into rvc-dev"
    },
    {
      "commit": "a21a3d3540689439043ce1559e82a8224d2f7088",
      "tree": "24bd0e01f1885c3371ad5f71f9a7c8c0bdbd863f",
      "parents": [
        "bf74c089dc2f02f46bfc252e02ddf12cbff9198e"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun May 10 21:08:10 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed May 27 19:38:16 2020 -0700"
      },
      "message": "Additional mediametrics for MediaCodec\n\nbitrate + bitrate mode\nhandle updates to profile/level coming back from codec.\nlifetime of the codec\n\nBug: 139143194\nTest: instagram recording/playback\nChange-Id: Ic6f4074b65d1307782de4aeff4ed196218dfb00f\n"
    },
    {
      "commit": "1ea842e9b24b2e3fcb92afe90309ccd96a571a1d",
      "tree": "d795e6e97330a175fd197126045212f952146713",
      "parents": [
        "b4a3b65d297a8436ba48138ce7ce2ba6b7a652b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 27 11:32:19 2020 -0700"
      },
      "message": "MediaMetrics: Update and clean proto formatting\n\nMake code compatible with both string\nand integer enumeration in the protos.\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: I0a1c21be711f82915f3bb403860b40c695a0587d\n"
    },
    {
      "commit": "3ab1b329780cdd4c93741128b0003bbaa4a7c938",
      "tree": "9d4002f18913fb752fc2e8f4aeb10c962fd38a6a",
      "parents": [
        "6296cc3b9c44867131e651ca058b56614cb4a472"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 21 09:36:52 2020 -0700"
      },
      "message": "MediaMetrics: Add and fix clang-tidy\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: Ia02fad2cbefdbfe3deba3897526a21dd88270c27\n"
    },
    {
      "commit": "0a37803c9c9432ab156ea40f52ae0f32da3bff9c",
      "tree": "7c7a417b457e701f0d23a1aa458b25b532734f63",
      "parents": [
        "f7d03e830d791cfcfc4540e290a48e06c4438207"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 15 11:35:12 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 15 11:43:00 2020 -0700"
      },
      "message": "MediaMetrics: Enable AudioPowerUsage to statsd\n\nTest: adb shell dumpsys stats --metadata | grep 275\nBug: 121318157\nChange-Id: Iba2416ceb4c113a8fc219f670c7f99ba55969efa\n"
    },
    {
      "commit": "ea84038803580b4c35ce4cb60918c0c384127417",
      "tree": "d8c91402af2f630e4f1c36f7798d161767d01301",
      "parents": [
        "38e65911a65a51edf2efd5ca63c4e00daac24852"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 21:50:17 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 13 11:15:49 2020 -0700"
      },
      "message": "MediaMetrics: Prepare statistics for protos\n\n1) Add AudioRecord to Analytics trigger.\n2) Log RecordThread statistics.\n3) Rename DURATIONNS to EXECUTETIMENS to avoid confusion.\n4) Use streamType from server not client.\n5) Split MMAP types to MMAP_PLAYBACK and MMAP_CAPTURE.\n6) Use string flags for AudioTrack and AudioRecord.\n7) Compute underrun frames for MixerThread.\n8) Log BT connection state.\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nTest: adb shell dumpsys stats --metadata\nBug: 149850236\nChange-Id: Iacf3f117c00ec9f377e62862080252aef9dc084f\n"
    },
    {
      "commit": "5298998e5749ce5883cda027b0791d071c4c8b0b",
      "tree": "2d5cd73553f7795e4dae085e1bddad5bc48686d3",
      "parents": [
        "ad531ce5d938385330ec260d4049914b354d1c37"
      ],
      "author": {
        "name": "Joey Poomarin",
        "email": "poomarin@google.com",
        "time": "Thu Mar 05 17:40:49 2020 +0800"
      },
      "committer": {
        "name": "Robert Lee",
        "email": "lerobert@google.com",
        "time": "Thu May 07 12:25:59 2020 +0800"
      },
      "message": "MediaMetrics: Implement audio power usage metrics\n\n- Trigger audio power usage logging when\n   1. endAudioIntervalGroup event for track/record\n   2. setMode to NORMAL for telephony\n- Aggregate audio usage by type and device\n- Send audiousage data every 24hrs by default, using property\n  persist.media.audio_power_metrics.interval_hr to config the interval\n- Add property persist.media.audio_power_metrics.disable to disable\n  audio power metrics\n\nBug: 121318157\nBug: 140909217\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics --all\nChange-Id: I94ff00a5609a49c96a14827d3260d481c1310abe\nSigned-off-by: Robert Lee \u003clerobert@google.com\u003e\n"
    },
    {
      "commit": "b3cedfdf595bbb3538a7a6e36b70de5e62a58fa1",
      "tree": "ed9f3624e2615c3260276284eaaafdba4469e179",
      "parents": [
        "40fae84d5e67baab376c831df2b1ad33f9b989ce",
        "ce9b66343a4bbd570bddbd8916279af612d6341f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 02:53:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 02:53:29 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add device-based actions for Bluetooth\" into rvc-dev"
    },
    {
      "commit": "ce9b66343a4bbd570bddbd8916279af612d6341f",
      "tree": "2285bebd7f0bd11fe8553a0e470ff993bba98747",
      "parents": [
        "25b1e25a724ac10547670382745789bdf8a18e0b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 28 20:15:17 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 17:46:17 2020 -0700"
      },
      "message": "MediaMetrics: Add device-based actions for Bluetooth\n\nLog summary group statistics by device.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: I31fef89fa020de175e59784049ef4741914f3a2c\n"
    },
    {
      "commit": "029f52b0d1c235f83723d22533fb9f129b172f24",
      "tree": "53d5d50b4ba6fa4f62851bebd610213aed9561b5",
      "parents": [
        "12a6940bb181aae48383e9365b6ab62e24663bfd"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Thu Apr 30 14:39:39 2020 -0700"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Sat May 02 00:29:57 2020 +0000"
      },
      "message": "Replace direct pid writes with setting task profiles\n\nFor easy transition from SchedTune to UtilClamp, direct access to these\ncgroups should be abstracted by using task profiles. Replace writepid\ncommands with new task_profiles command.\n\nBug: 155419956\nTest: change .rc file and confirm task profile is applied\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\nChange-Id: Id00370b25af973a4b3813a4a1d6ccbd1e555c87f\nMerged-In: Id00370b25af973a4b3813a4a1d6ccbd1e555c87f\n"
    },
    {
      "commit": "d203eb6b3cd99af3c9616df2bd0d982796b0f918",
      "tree": "0f2cfa6c24a30d32913de484c6dd52514b37a9a3",
      "parents": [
        "2578a95a57dd9796b55095dc22b8171dd5da73c3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 09:12:46 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 23:42:41 2020 -0700"
      },
      "message": "MediaMetrics: Use AllowUid property for services to control client access\n\nRemove implicit first client uid access.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: I4f953db4688bf5f174c3e1611f492f31d2926e96\n"
    },
    {
      "commit": "7d391087f86cee1c4dc87c03e5549aa4359ddfe6",
      "tree": "e67969f57ea54f0beaa950d6f5c9351e5182ee72",
      "parents": [
        "369ad274564c02b79c15b13e8e69ccb73080d6fb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 18 15:03:51 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 16:32:38 2020 -0700"
      },
      "message": "MediaMetrics: Misc fixes\n\nRemove unneeded headers from MediaMetricsItem.\nOptimize map writes with emplace_hint.\n\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: Ice6fddb8402a5ccbf1df6e6e02fa4aae4c1b42d5\n"
    },
    {
      "commit": "f7c14104673750445bd1c2553021fd61aaeb7f2c",
      "tree": "bbdef5be71641b2b894f543a36472f0f581e581a",
      "parents": [
        "a6127a935639f127db56974851abc2dda360eca2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 18 14:54:08 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 20 18:07:51 2020 -0700"
      },
      "message": "MediaMetrics: Add thread-safety checking\n\nTest: atest mediametrics_tests\nBug: 70398235\nBug: 149850236\nChange-Id: I288ef92e6444785e02043c2629355c229c14e85c\n"
    },
    {
      "commit": "b744fafc831e1a13cc5e054aa4812281c3c5c7fc",
      "tree": "8ac63b4df77923f6a8ba054036b43dee8ef79211",
      "parents": [
        "cc39f3d7fe665dcb39ce6757f5811f7c9ab6c992"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:09:26 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:09:26 2020 -0700"
      },
      "message": "MediaMetrics: Fix clang-tidy warnings\n\nTest: atest mediametrics_tests\nBug: 153658358\nChange-Id: Ic3c05de5466df24ffd37b224c97ac1138257a73c\n"
    },
    {
      "commit": "709b91e1e8a646f17117fc5e9baa224182cbec64",
      "tree": "00f091b41d344a9ef0609d11e0a750bdeddb024a",
      "parents": [
        "1ad04e663d0f6eb86032b7c4ac7ef7b3dba01de1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:23:36 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 12:22:38 2020 -0700"
      },
      "message": "MediaMetrics: Update dumpsys parameters\n\nMake --prefix and --since work for analytics.\n\nTest: adb shell dumpsys media.metrics --all\nTest: adb shell dumpsys media.metrics --clear\nTest: adb shell dumpsys media.metrics --heap\nTest: adb shell dumpsys media.metrics --help\nTest: adb shell dumpsys media.metrics --prefix c\nTest: adb shell dumpsys media.metrics --prefix audio.volume\nTest: adb shell dumpsys media.metrics --since -100\nTest: adb shell dumpsys media.metrics --unreachable\nBug: 149850236\nChange-Id: Id3e0cb6fe789027b5d5c86cce93ce07f636736bf\n"
    },
    {
      "commit": "9099a1a58dfd8828381fe080a8c897d7d06c88be",
      "tree": "7d4741e9fa1d965cefd957d5aa9f6474e8ffae49",
      "parents": [
        "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:23:36 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 14:41:40 2020 -0700"
      },
      "message": "MediaMetrics: Use libmemunreachable for memory testing\n\nFull testing steps:\n\n// required for unreachable\n$ adb shell setenforce 0\n// set up debug malloc\n$ adb shell setprop libc.debug.malloc.program mediametrics\n$ adb shell setprop libc.debug.malloc.options backtrace\u003d8\n\n// kill media metrics\n$ adb shell pkill -f media.metrics\n// verify media.metrics has restarted with new pid\n$ adb shell pgrep -f media.metrics\n\n// now check media metrics heap (largest 100 items) and unreachable memory.\n$ adb shell dumpsys media.metrics --heap\n$ adb shell dumpsys media.metrics --unreachable\n\nTest: adb shell dumpsys media.metrics --heap\nTest: adb shell dumpsys media.metrics --unreachable\nBug: 149850236\nChange-Id: I269003485dd6933c399171fbd9d9a152cee50886\n"
    },
    {
      "commit": "d7e0dd45243735bed789589ca767485ce3fc4e7b",
      "tree": "4ad113977dd16b064452aafdc74db03b99214e7c",
      "parents": [
        "36696ba9a249d629c4827fda442352b396a11056"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 27 16:42:34 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 30 10:03:22 2020 -0700"
      },
      "message": "MediaMetrics: Move LimitProcessMemory to libmediautils\n\nEliminates the need for libmedia in media.metrics, cutting\nRSS nearly in half.\n\nTest: adb shell showmap \u0027$(pgrep -f media.metrics)\u0027\nTest: adb shell showmap \u0027$(pgrep -f media.extractor)\u0027\nBug: 152256321\nChange-Id: Id8aae66de84e712915888422b7372fd2b880570d\n"
    },
    {
      "commit": "6c22190e49f47b3debc122e15ca042befdd39cee",
      "tree": "e1f359598e1b2f0fd2810780e649def0ef00c349",
      "parents": [
        "8d386f779d76eb2a87ec570bf6ee3c0ce674085f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 16:35:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 17:30:41 2020 -0700"
      },
      "message": "MediaMetrics: limit maximum memory used\n\nUse media utility function limitProcessMemory().\n\nTest: restrict mediametrics memory by property, ensure restart\nBug: 152084875\nChange-Id: I20b51cecd67e9ac5e03ab34c1c68b1cfd0b8a964\n"
    },
    {
      "commit": "ed416da90cd9d91c959d4dbd64b974aefd9b448b",
      "tree": "c11ee8428e14bbb1e1c4cd2079365c345b4e6644",
      "parents": [
        "831ed185aa1dd8211bc37a05c9af8ed6941bf809"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 05 18:42:55 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 06 14:35:21 2020 -0800"
      },
      "message": "MediaMetrics: Remove remaining BOOTTIME references\n\nUse SYSTEM_TIME_REALTIME instead.\nAs we always specify the time when the item arrives,\nthis has no real effect, just for internal consistency.\n\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: I34d7bed0c4e25b288493ce1ecf3574c4d87334d9\n"
    },
    {
      "commit": "5d3f2d1e104ffc9133afd4f2befe8f2cff9797db",
      "tree": "b4b4b0bcfa5d20d781ab441198700cbae25f879e",
      "parents": [
        "084b328e1cf091a9eedda20ee92a41be3bdc978e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 04 19:55:03 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 05 16:32:07 2020 -0800"
      },
      "message": "MediaMetrics: Garbage collection fixes\n\n1) Correct TransactionLog low water mark\n2) Limit number of items historically stored in any TimeMachine property.\n\nTest: Special instrumented atest\nBug: 150547711\nBug: 150598686\nChange-Id: I67b25c84b1fb62ce83caa5ec48b800cab85467c9\n"
    },
    {
      "commit": "a199662c6a891c009329b619782f2475dff60822",
      "tree": "1e2b9a0544c9a77b12e63cb6763d719b8811eb43",
      "parents": [
        "8a93a1f6dd74f82b15ab2b72d605df2d36834591",
        "8d188356677501759610c7fcca69aaf54738c295"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 13 19:20:32 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 13 19:20:32 2020 +0000"
      },
      "message": "Merge \"Displays mediadrm and Widevine metrics in dumpsys\""
    },
    {
      "commit": "4f105393429fc9e35fa7ba5b9caeb479d78e55b1",
      "tree": "1319c0b31c1ddb3e0682545630626b224c43f9db",
      "parents": [
        "371c9749317fb1dbcbd762f4adf26eda70992ed9"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Feb 12 14:55:00 2020 -0800"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Thu Feb 13 07:23:28 2020 -0800"
      },
      "message": "Add top level DRM playback metric\n\nAdd meteric to show the difference between drm\nplayback of protected vs unprotected content.\nWe log onQueueInputBuffer errors.\n\nBug: 138862395\n\nTest: adb shell dumpsys media.metrics | grep -i InputBuffer\nChange-Id: I26aae706267956b6f944955877347747e573e3c8\n"
    },
    {
      "commit": "8d188356677501759610c7fcca69aaf54738c295",
      "tree": "2f1378065ec0cbe85f622cee048dc341540a7797",
      "parents": [
        "18be13327912181099e2a3174664ce083bf63dba"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Tue Feb 11 11:59:34 2020 -0800"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Feb 12 11:05:44 2020 -0800"
      },
      "message": "Displays mediadrm and Widevine metrics in dumpsys\n\nMake the list of keys in allowedKey to match the\nstatsd_handlers[] in iface_statsd.cpp for dumpsys\nto display mediadrm and Widevine metrics.\n\nBug: 149246413\n\nTest: adb shell dumpsys media.metrics | grep -i drm\nTest: adb shell dumpsys media.metrics | grep -i widevine\nChange-Id: I7811eb3a4228a906bb3dbc615ce42d1947082a07\n"
    },
    {
      "commit": "f0fde89bdce97705981758515eac27d3e718f54b",
      "tree": "afd7dd8fe0985264eb2b2bc3550848f9380b239c",
      "parents": [
        "cf8d3de655c48d3ca5aeedc1dd3e5e2c28bee3f5",
        "5edf2451d012f5418cbaaae205d5291428f1e60b"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Feb 12 00:58:38 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 12 00:58:38 2020 +0000"
      },
      "message": "Merge \"mediametrics: locally aggregate legacy drm metrics\""
    },
    {
      "commit": "5edf2451d012f5418cbaaae205d5291428f1e60b",
      "tree": "26caf7a1654adfb775718fc888693dea530a7152",
      "parents": [
        "93fb84c8d59eb3db95dd90bc34573b7c6c5b5b67"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sat Feb 08 14:58:05 2020 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Feb 11 22:38:34 2020 +0000"
      },
      "message": "mediametrics: locally aggregate legacy drm metrics\n\nBug: 134789967\nTest: statsd_testdrive\nChange-Id: I053e58d2bccc1a14fafcb2fcb0bd40ec7d1fad17\n"
    },
    {
      "commit": "8f06962f2daccff7e5489bf4d9b6e9db91f0925c",
      "tree": "96260918ba2ae88fb4c78885e84e87b7a78d3b58",
      "parents": [
        "eeb2d61b7f123b87c1fdb359035ced62e5f0dbb9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 10 15:44:01 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 11 09:53:35 2020 -0800"
      },
      "message": "MediaMetrics: Change the duplicate logging suffix\n\nThe duplicate log allowed suffix ! (e.g. \"event!\") looked more like\n\"not equals\" so changing from ! to #.\n\nTest: adb shell dumpsys media.metrics\nBug: 138583596\nChange-Id: I642334770ed8f5ff0d1f1e187e25eca596603252\n"
    },
    {
      "commit": "333bb3d798380d17ebd652b244d4be58c745cd0a",
      "tree": "baff29f6041653b1e2d2ac3e1b0372b7e9825f26",
      "parents": [
        "9e89b4f032783fbbfb9169d51d8538674fe720ca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 31 20:17:48 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 05 14:42:51 2020 -0800"
      },
      "message": "MediaMetrics: Minor logging fixes\n\nRemove extraneous right brace in Time Machine dump.\nDo not suppress repeated EVENT properties in the Time Machine.\nUse \"--\" prefix instead of \"-\" for long dumpsys argv options.\n\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics\nBug: 138583596\nChange-Id: I874be909ac08641b14dd12fb2c83de7a276a1796\n"
    },
    {
      "commit": "d39f41fb3a52a291c90a5386ed350ab827a410d2",
      "tree": "45a06561dedf03c502e17a32dc9e462cd8fd19f5",
      "parents": [
        "5bde28f5616e666f69e71820bbdb2a985d1cb7ac"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 29 15:56:14 2020 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 30 11:10:49 2020 -0800"
      },
      "message": "Add micro-benchmark for media metrics\n\nTest: this is it\nChange-Id: I3762223eb5ca67757debba02245a2ad87dd7e75e\n"
    },
    {
      "commit": "3b4c1f0320efc7a54c4ab811727c432cda73dd37",
      "tree": "98e6951e1188db70e465b5a3330e04cf2176ed4b",
      "parents": [
        "6425bcd8d5698b44127550d00c0d3e8ea876f7d7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 23 18:58:32 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 27 11:44:27 2020 -0800"
      },
      "message": "MediaMetrics: Change dumpsys format\n\nAs the dumpsys no longer needs to be parseable by a program\nconvert to a more human readable form.\n\n1) Make default time REALTIME consistently.\n2) Dump time as a human readable string.\n3) Remove dumpsys versioning code.\n4) Delimiter changes.\n\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics\nBug: 138583596\nChange-Id: I6ee7d81a18e0e220b258c722d232c05805118abb\n"
    },
    {
      "commit": "7c96ea7ff84e1084332548583841735b694bfebd",
      "tree": "eb5d7c1bcb91cea21469e46b7c014ae44635a217",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 10 15:46:22 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 16 15:55:18 2020 -0800"
      },
      "message": "Remove mediametrics include symlinks\n\nBug: 143245419\nTest: build\nChange-Id: I6c836e60c0fe078f5ab7370aec156bdd6e8dcbf0\n"
    },
    {
      "commit": "ea186fae038399fe8814543f62e9490c4854a960",
      "tree": "5bc96a7de31db2b9d936b8f9866eb6d55361457d",
      "parents": [
        "2cdae31e8bb09fbfe4b655987d25b6902bdc0211"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 09 18:13:15 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 13 14:40:03 2020 -0800"
      },
      "message": "MediaMetrics: Add AudioAnalytics actions\n\nUnderrun handling\nLatency handling\n\nTest: adb shell dumpsys media.metrics\nBug: 138583596\nChange-Id: I4c0a5ba0f4f4ce9209146dab99433e33646d959b\n"
    },
    {
      "commit": "42b993041ee851317b30106ebf2a0f91cdcfc194",
      "tree": "18eedc1649405cc32492b86972c16dbf7ee56edc",
      "parents": [
        "bc09c4795886053e60a45fcc0e9e85b8f54c86bf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 10 12:01:18 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 10 13:08:53 2020 -0800"
      },
      "message": "MediaMetrics:LockWrap: Use recursive mutex.\n\nBecause one might reference the object twice when\nthe end of the full expression goes to ;\n\nTest: atest mediametrics_tests\nBug: 138583596\nChange-Id: I80ced3af615578d63310acaf70142be900855902\n"
    },
    {
      "commit": "0f7ad8cd2c109b224e4f652d6c216e1105953d79",
      "tree": "3091563a5833d203a6816d1e294025e9c1c35ab6",
      "parents": [
        "9468f951e6b85446ddde11f2dfce060caaa5f261"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 03 13:24:34 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 07 15:32:39 2020 -0800"
      },
      "message": "MediaMetrics: Add AnalyticsActions and AnalyticsState\n\nFactor out common analytics code from audio specifics.\n\nAllow for saving and clearing analytics state if audioserver crashes.\n\nTest: atest mediametrics_tests\nTest: instrumented check on audioserver restart\nBug: 138583596\nChange-Id: I1073f3ef95f44a383a7f14b0c2ea6f978a84ee24\n"
    },
    {
      "commit": "cd24ccacbc03d6ec8eed6692af7a7a628923ec2a",
      "tree": "d13049e6b204189d08fa3864a858c7a05183c1ce",
      "parents": [
        "a8f1c6e4921c53ccf4d6edc1d30322b69484ccc1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 02 18:27:43 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 06 12:21:35 2020 -0800"
      },
      "message": "MediaMetrics: Add copy constructor to TransactionLog\n\nTest: atest mediametrics_tests\nBug: 138583596\nChange-Id: If2510ab39e89ce09b22ae4cfaebb40554fffbb2b\n"
    },
    {
      "commit": "a8f1c6e4921c53ccf4d6edc1d30322b69484ccc1",
      "tree": "1794bc870ab89f91f297eba68cd8a37a7af1653a",
      "parents": [
        "fb0aaa0fb6d102ca0694a52327b9a95ef3aa7978"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 02 18:25:41 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 06 12:07:41 2020 -0800"
      },
      "message": "MediaMetrics: Add copy constructor to TimeMachine\n\nTest: atest mediametrics_tests\nBug: 138583596\nChange-Id: I811f3109e84cbfc7f7a44a407fe21c1013a34cd0\n"
    },
    {
      "commit": "fb0aaa0fb6d102ca0694a52327b9a95ef3aa7978",
      "tree": "119d4fdaa28b3a17140c791bfff2f8f895b853ba",
      "parents": [
        "7336ce3e12ccd69ffadedc55d64dda35abfe0234",
        "e8989ae17c6b399c70b8d2c9f24800b348510059"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 06 17:49:35 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 06 17:49:35 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Unify Elem of TimeMachine with Elem of Item\""
    },
    {
      "commit": "a85efab79edd376e328559b3e2b45504a1a99f32",
      "tree": "9490b54b787f065aeae73acc1c3b32ba7fecdde7",
      "parents": [
        "370e94071d88ff787c26bdf49982d828ce484115"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 23 11:41:29 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 03 19:23:59 2020 -0800"
      },
      "message": "MediaMetrics: Move package name from uid to service utilities\n\nAllows sharing class with AudioFlinger.\n\nBug: 129355845\nBug: 138583596\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics\nChange-Id: I6654dc9456dcd7c93821a8d83dd75d96b658f254\n"
    },
    {
      "commit": "e8989ae17c6b399c70b8d2c9f24800b348510059",
      "tree": "4466936024cb4429acc6daf6bbe13c6b9bb14d13",
      "parents": [
        "370e94071d88ff787c26bdf49982d828ce484115"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 03 12:20:43 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 03 12:20:43 2020 -0800"
      },
      "message": "MediaMetrics: Unify Elem of TimeMachine with Elem of Item\n\nAllows simplified management of item data storage.\n\nTest: atest mediametrics_tests\nBug: 138583596\nChange-Id: Iaefc53564f1863b77e5e1d3b1be798b4c8ef0175\n"
    },
    {
      "commit": "37de9b7193255993b6547b05792b611a87f18407",
      "tree": "41808006ac416ca7df42338542e1563c29ff6d07",
      "parents": [
        "692870bd73532e69a0f541496365cddc09f93418"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 02 13:54:05 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 02 17:27:00 2020 -0800"
      },
      "message": "MediaMetrics: Add Defer class\n\nThis is a helper which assists logging on exit of a method.\n\nTest: atest mediametrics_tests\nBug: 138583596\nChange-Id: I73c0e7e469dc9fd1b29934ef308f9d2f15146bec\n"
    },
    {
      "commit": "692870bd73532e69a0f541496365cddc09f93418",
      "tree": "d7edfa4c45b73056e58ff226a7329636341ca8c2",
      "parents": [
        "565cc485a0ec357c559acf458fc853ec69180be8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 02 13:46:06 2020 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 02 17:25:20 2020 -0800"
      },
      "message": "MediaMetrics: Add Elem getter to Item\n\nAnd minor edits.\n\nTest: atest mediametrics_tests\nBug: 138583596\nChange-Id: I9161f98f4c17516ea04fc143eb1ccbd656f17796\n"
    },
    {
      "commit": "611268d7a114200c46c517996617f15586108149",
      "tree": "d3bfae505dc6cbb00159081f3c9ce58eac7bbd5a",
      "parents": [
        "f1ba94795895e917e4046a26923a478c7a2cadd5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 19 13:54:02 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 19 15:45:35 2019 -0800"
      },
      "message": "MediaMetrics: Unify bundle key naming for service set properties\n\nComment on relationship of MediaMetricsItem.h with MediaMetrics.java.\n\nTest: adb shell dumpsys media.metrics\nBug: 138583596\nChange-Id: Id535914a88e2814a6e1704267617761ed2e46087\n"
    },
    {
      "commit": "b7aadb3f772357d017ccb362eee67e0270dfb1c6",
      "tree": "7a8ff124e1c3c319df85782f23c0a626bbc31cf1",
      "parents": [
        "47e58d60fe1c5f78df382e744fefad45b86b3f22"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 09 19:40:42 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 18 18:58:05 2019 -0800"
      },
      "message": "MediaMetrics: Use variant instead of union for properties\n\nTest: Verify media.metrics dumpsys, atest mediametrics_tests\nBug: 138583596\nChange-Id: Ic6e2a090b890f5bec1e818637f6e31150924add1\n"
    },
    {
      "commit": "47e58d60fe1c5f78df382e744fefad45b86b3f22",
      "tree": "800caf3a67827db68cc41505369d29d8b5a79668",
      "parents": [
        "9c7e2a51e2fb24bbf193b46a3f5e892af19cdfe5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 06 18:40:19 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 18 13:52:52 2019 -0800"
      },
      "message": "MediaMetrics: Remove friend access, use STL map\n\nTest: Verify media.metrics dumpsys, atest MediaMetricsTest\nBug: 138583596\nChange-Id: I6b085553af3fd1a0c98261d133f251c2db27c93b\n"
    },
    {
      "commit": "f27e987d277c186010e8bdd1d5e781158b31f9af",
      "tree": "87703f33fe40f06c2faa78daa4105bb6cb8db79d",
      "parents": [
        "b7b870db0c6cc0c6375b154400a813b84f5056b4"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat Dec 07 06:28:46 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 17 11:20:57 2019 -0800"
      },
      "message": "Naming consistency: MediaAnalytics to MediaMetrics\n\nBug: 145780674\nTest: build, boot, dumpsys media.metrics\nTest: atest mediametrics_tests CtsNativeMediaMetricsTestCases\nChange-Id: Icbfa98da9e61702aee9a1d807b5e126b4b9c6458\n"
    },
    {
      "commit": "40e8e5eff0ba7dd2712d02f0f4646ea1c7ecb1ab",
      "tree": "3b1c533277712929d36473e345ca5d2c7055a6d0",
      "parents": [
        "7d95f9010d782f3b80997d356cd389c892699770"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Dec 05 20:19:40 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Dec 06 09:53:43 2019 -0800"
      },
      "message": "change media analytics references to media metrics\n\npart 1: make directory names coherent.\n\nBug: 145780674\nTest: build\nTest: atest mediametrics_test\nTest: atest CtsNativeMediaMetricsTestCases\nChange-Id: If552a742df02206f703801a6530b66fe5addac53\n"
    }
  ]
}
