)]}'
{
  "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": "eb33d944605247b32015140e7a650d41c8cd0003",
      "tree": "5b4776d9b5ae25252e22240ca7cbf3530c242d01",
      "parents": [
        "d5a46a87e8a35495843ec141ecf3b62d963bdcb2"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue Oct 06 12:33:01 2020 +0100"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue Oct 06 12:33:01 2020 +0100"
      },
      "message": "Remove AIcu_initializeIcuOrDie() call\n\nBug: 132621877\nTest: device boots\nChange-Id: I53323fb1f78d1ce02f0312d85ec3e85f23d206cc\n"
    },
    {
      "commit": "3257b3657bc3c4baef54aa228ac176bd9036c277",
      "tree": "1a4e6b50aa562d1dbbbb8e6f6eb10fbb2bb73de7",
      "parents": [
        "699960dbd1dd37a9bc3ace4e006c574c57de2409",
        "13de788c0bef4be20bf3de7cf44420c87aed1cbb"
      ],
      "author": {
        "name": "Alistair Delva",
        "email": "adelva@google.com",
        "time": "Tue Jul 07 01:44:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 07 01:44:09 2020 +0000"
      },
      "message": "Merge \"Build 64-bit mediaserver on 64-bit-only\" am: b29806e2f6 am: 13de788c0b\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1327538\n\nChange-Id: I630ba2271348774d2d3f96ebffc2e918b2e2cd18\n"
    },
    {
      "commit": "1ab0b88dd176855fde022b2e27d1a539434f599f",
      "tree": "7d03d5928be56baa5215527aa0fe565bd6cf1b1f",
      "parents": [
        "a4d629d3112cb6d27222eff7a24fc47f39da9539"
      ],
      "author": {
        "name": "Alistair Delva",
        "email": "adelva@google.com",
        "time": "Tue Jun 09 11:47:23 2020 -0700"
      },
      "committer": {
        "name": "Alistair Delva",
        "email": "adelva@google.com",
        "time": "Mon Jul 06 09:53:03 2020 -0700"
      },
      "message": "Build 64-bit mediaserver on 64-bit-only\n\nThis change also updates the mediaresourcemanager tests to be buildable\non both 32-bit and 64-bit, without adding additional libraries to the\nsystem image.\n\nBug: 16890215\nChange-Id: Icf8f1d0b098217d34bf27911a72346124588cc5b\n"
    },
    {
      "commit": "a4c39654219a7ed7ee6bb3ef5acbb1afd32a4a48",
      "tree": "c6f8ea77b418a0971d6252dc2948b0961024a835",
      "parents": [
        "ae87d21ce7b5a6b76a88fdefbe80ba0e3120b16a"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Jun 30 09:30:58 2020 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Jun 30 16:47:24 2020 +0000"
      },
      "message": "mediaserver: add more hwbinder threads\n\nSince we\u0027re now using HIDL IGraphicBufferSource in CCodec, the\nexistence of a callstack with mixed binder and hwbinder calls can cause\na stall when all threads are in use. (b/35283480) The recommended\nworkaround was to increase the number of threads. This CL does that.\n\nTest: atest CtsMediaTestCases\nTest: atest CtsCameraTestCases\n\nBug: 153828976\nChange-Id: I37f02b6237ad032e311a8219b209713d2e4463a6\n"
    },
    {
      "commit": "3caf60c2592e7f623001f30cdd33372802b1a3a6",
      "tree": "215521b50b9f08e8c7e3832a4dadf0329ca03aed",
      "parents": [
        "6c96fda768fd01267033ccf05b5e4e7d85a25b0f"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Thu Apr 30 13:18:10 2020 -0700"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Sun May 03 08:11:28 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": "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": "2608138da200690e8e3f993289f7fb6973ce5017",
      "tree": "51fea04aa5e1386ca8fcb9c9578d3c19f5c6aa04",
      "parents": [
        "c6f97aa688537d180a8760133460a75a299b2f01"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jan 17 15:11:53 2020 +0000"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jan 17 15:13:24 2020 +0000"
      },
      "message": "Revert \"Register C2 HAL Service v1.0 instead v1.1\"\n\nThis reverts commit c6f97aa688537d180a8760133460a75a299b2f01.\n\nReason for revert: breaks hidl_implementation_test.Hidl#InterfacesImplemented\n\nBug: 147843370\nChange-Id: Ifa2a62de25b3029eda28dc74b2c9b6854f010af1\n"
    },
    {
      "commit": "c6f97aa688537d180a8760133460a75a299b2f01",
      "tree": "a2dec133ebb948f68e9ab32fc76e7c70602ca1ea",
      "parents": [
        "e3fa518b987f7ccfd042f28e9744ec42813d7e34"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Dec 09 13:53:34 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 13 20:30:43 2020 -0800"
      },
      "message": "Register C2 HAL Service v1.0 instead v1.1\n\nswcodec doesn\u0027t implement video tunneling feature, so v1.1 is not\nneeded.\n\nTest: TARGET_BUILD_APPS\u003dcom.android.media.swcodec m dist \u0026\u0026 adb install\n--staged out/dist/com.android.media.swcodec.apex \u0026\u0026 adb reboot userspace\nTest: atest CtsMediaTestCases -- --module-arg\nCtsMediaTestCases:exclude-annotation:android.media.cts.NonMediaMainlineTest\n\nBug: 144271235\nChange-Id: I461ebb2ee7b6e47c1a58e1b88ba0b227285d0745\n"
    },
    {
      "commit": "fdd512ab3eaeee9bfb12a5e9c6f4dfe18ff2f2cf",
      "tree": "dfcee29b05a8c5b6c8bbc6d204b8b11c5704daec",
      "parents": [
        "88468e169aa02aec147006aa8de1e5468e253f4e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Nov 22 11:03:14 2019 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Nov 27 17:04:06 2019 -0800"
      },
      "message": "convert ResourceManager usage in MediaCodec to ndk aidl\n\nbug: 142396029\ntest: ResourceManagerService_test, DrmSessionManager_test,\nCTS ResourceManagerTest, manual test battery stats and cpuset\n\nChange-Id: I77f5de54a83b17d906798659e1b3281c90cde92c\n"
    },
    {
      "commit": "f8ac9920f6168a48f93ec7f08f3297cbb9129c41",
      "tree": "28a5370f50513df1c0c26c0a91aeaf92e033e835",
      "parents": [
        "78291ae950933c7264d4b03b5ddf32ca0191d070",
        "bf69de9ebd9c7881a24d858158d9d60b0ff9064c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 02:05:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 19 02:05:47 2019 +0000"
      },
      "message": "Merge \"Codec2Utils: Add support for media.c2@1.1\""
    },
    {
      "commit": "b7d71b64458724e188bd8688d60b132a4a350c35",
      "tree": "5e68011edc1b7c4d6898f5f8e1dc3165c3333477",
      "parents": [
        "40076d32187e34b1bfbfa039104282bac054dd53"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Nov 17 19:11:07 2019 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Nov 17 19:11:07 2019 -0800"
      },
      "message": "Alias init.svc.mediadrm to init.svc.media\n\nBug: 134787536\nTest: WidevineGenericOpsTests.testL1\nChange-Id: I0a8fb89b3244a672941fbc490edd4cd838c4ea74\n"
    },
    {
      "commit": "88888a463630ea507291b246d0f72ef96c171b7f",
      "tree": "0b861091764036f918878f7d1cc8d1eb40e3cba7",
      "parents": [
        "54482b573e82b92c64058777305613eacc55cefa"
      ],
      "author": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Sat Nov 16 18:45:26 2019 +0000"
      },
      "committer": {
        "name": "Jaewoong Jung",
        "email": "jungjw@google.com",
        "time": "Sat Nov 16 19:24:46 2019 +0000"
      },
      "message": "Revert \"Remove (I)MediaDrmService\"\n\nThis reverts commit 54482b573e82b92c64058777305613eacc55cefa.\n\nReason for revert: Broke git_master on build_test\n\nFixes: 144601027\nChange-Id: Id98fe3875a7e06bcae9c640958e28217a68fbc25\n"
    },
    {
      "commit": "54482b573e82b92c64058777305613eacc55cefa",
      "tree": "89a02b913b5b245a7fa79e91616ec9f2f5de9ecc",
      "parents": [
        "bb4a40fb1347ffe7f1a9aa0f03523477439af92c"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 14 17:26:10 2019 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Nov 15 12:01:13 2019 -0800"
      },
      "message": "Remove (I)MediaDrmService\n\nAlso alias init.svc.mediadrm to init.svc.media.\n\nBug: 134787536\nTest: WidevineGenericOpsTests\nChange-Id: I09d4c459ae2fd7fb4e7f499c08f87be3f22973fd\n"
    },
    {
      "commit": "bf69de9ebd9c7881a24d858158d9d60b0ff9064c",
      "tree": "1d38033e2949ee4eaf3cff1dc740ced599b5015b",
      "parents": [
        "8acbb6ce1856c479014a8f870b6f8ec7c2fe3bca"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 29 06:21:27 2019 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Nov 15 05:58:33 2019 -0800"
      },
      "message": "Codec2Utils: Add support for media.c2@1.1\n\nmediaswcodec will now present\nandroid.hardware.media.c2@1.1::IComponentStore.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n-m VtsHalMediaC2V1_0Host\n\nBug: 136316504\n\nChange-Id: I5a78e4faf5961861a07d6ea6e95198cd0d49f0f2\n"
    },
    {
      "commit": "181e6950a1ce5b9705c47c4b4e288d978cb7283a",
      "tree": "b92dc19041aec4465161b112f45185cd4598c09a",
      "parents": [
        "318b26e722112462f93df797bf47ca3dabc80048"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 09 13:23:39 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 18 14:55:23 2019 -0700"
      },
      "message": "Convert IResourceManagerService to stable AIDL\n\nConvert with minimal change to the interface itself.\n\nAdd additional test to cover DrmSessionManager\u0027s usage\nof possible negative value field (which is signed now).\n\nbug: 142396029\ntest: ResourceManagerService_test, DrmSessionManager_test,\nCTS ResourceManagerServiceTest;\nManually check battery stats reporting.\n\nChange-Id: I5c537a54efc2663281c96ddbdbd4ee56f23c1adf\n"
    },
    {
      "commit": "c976f1260aa56ffdd6778754f208bc619c9dbf94",
      "tree": "3889acfcf913357ecb137ef5e26b4d823ed8a4b1",
      "parents": [
        "81526c7e3e632e6e183b9c94ce554f701e4cfc6d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Apr 10 02:08:28 2019 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Apr 10 04:43:33 2019 -0700"
      },
      "message": "Move vintf_fragments for sw C2 to mediaserver\n\nThis is a workaround for b/130058564.\n\nTest: adb shell stagefright -i | grep \"c2.android\"\n\nBug: 130254909\nChange-Id: I8e8f7bbd9c1f777285cdcc58ea6610639122c928\n"
    },
    {
      "commit": "a2cfcba3b2db5c7ee464a318ab94422a5c24212e",
      "tree": "6b7d5e4f45884b7932f3a59ade04deb196d1c08e",
      "parents": [
        "1a05ccfebe5b7c6242d145a75b4ae6967b0828c0",
        "6d5636d7719d08fcde5e98e54bab854d235ecbfd"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Mar 29 08:00:00 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 29 08:00:00 2019 -0700"
      },
      "message": "Merge \"Remove updatable from mediaserver and mediaextractor\" am: 207ff86dce am: 6e046089ac\nam: 6d5636d771\n\nChange-Id: I1e345f9d2625c421d854cb29a38a225845cb7313\n"
    },
    {
      "commit": "207ff86dcec301503f3db080b2d1105e6760da16",
      "tree": "1c791c7735e4fb9a53bf28824cb7c3d2e45ab1aa",
      "parents": [
        "75a0fc7cd7f856ae41c38d11b591b90dc6eb156f",
        "8892ca82ad2bb759cf22fca5da46355ce7f3ef82"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 29 14:30:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 29 14:30:21 2019 +0000"
      },
      "message": "Merge \"Remove updatable from mediaserver and mediaextractor\""
    },
    {
      "commit": "f6254a307e688ce9d7b5a7bdc676b8349499325d",
      "tree": "53e84b79cd3b2cf6a7d7843125aceb2f01f57573",
      "parents": [
        "5ee05596015a14d01212ad73c085f0558bb3c863"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Mar 11 19:35:25 2019 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Mar 20 17:34:40 2019 +0000"
      },
      "message": "Switch to use aicu/AIcu.h\n\nSwitch to using a dynamically-linked library function to initialize\nICU, not a statically-linked function. This means the knowledge of file\npaths stays in the runtime module.\n\nBug: 120493361\nTest: build/boot\nExempt-From-Owner-Approval: It\u0027s just a cherry-pick\nMerged-In: Ibe1d5ffd50e5cce76b1b01788954dcfb4762b1c6\nChange-Id: Ibe1d5ffd50e5cce76b1b01788954dcfb4762b1c6\n"
    },
    {
      "commit": "9447c68921904a3cb05faf1fed358a7d1d78313c",
      "tree": "bf26b85ae4d1e5a4660e3ad1bddcee2b678a649c",
      "parents": [
        "0428b8e5a53c3c37e0f76decc7a8f32854488062"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Mar 11 19:35:25 2019 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Mar 15 19:27:21 2019 +0000"
      },
      "message": "Switch to use aicu/AIcu.h\n\nSwitch to using a dynamically-linked library function to initialize\nICU, not a statically-linked function. This means the knowledge of file\npaths stays in the runtime module.\n\nBug: 120493361\nTest: build/boot\nChange-Id: Ibe1d5ffd50e5cce76b1b01788954dcfb4762b1c6\n"
    },
    {
      "commit": "8892ca82ad2bb759cf22fca5da46355ce7f3ef82",
      "tree": "25be44543a04983c76d25c2d4b5023ccf2702dce",
      "parents": [
        "5ee05596015a14d01212ad73c085f0558bb3c863"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Mar 05 21:52:08 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Mar 14 07:35:53 2019 +0900"
      },
      "message": "Remove updatable from mediaserver and mediaextractor\n\nBug: 125549215\nTest: m; device boots\nTest: play some video\nChange-Id: Ib8ec81bcb476e0d1c9736962b49e4c5ccb58af03\n"
    },
    {
      "commit": "3c9b0120e7ea330b2b638c2457fddd07d94a86ee",
      "tree": "87d068a6da13a7f59225eaff844681b455ec3a4b",
      "parents": [
        "be32a246fc5623c049cf6417ced66dccc741653b"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Mar 01 10:17:32 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Mar 01 10:17:32 2019 -0800"
      },
      "message": "Mediaserver back to 32-bits\n\nforce mediaserver to 32-bits, 64-bit version failed wider testing.\n\nBug: 126502613\nBug: 16890215\nTest: use camera app to record video\nTest: android.media.cts.MediaPlayer2Test#testRecordedVideoPlayback0\nTest: android.media.cts.MediaPlayerTest#testRecordedVideoPlayback0\n"
    },
    {
      "commit": "c3ce3cb96eda9876d614d6dbb2664199ed1ac007",
      "tree": "b7d77477245675a2aaf83285bf91302e158b7be3",
      "parents": [
        "15c6b6df6338529e10b4fc3ce1a904e82c0d6b6b"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Feb 12 14:18:05 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Feb 25 16:10:18 2019 -0800"
      },
      "message": "build mediaserver in 64 bit mode\n\nmediaserver is no longer forced to 32-bit mode, floating to primary\narchitecture which is usually 64 bits.\n\nBug: 16890215\nTest: boot, record video, android.media.cts.MediaPlayerTest\nChange-Id: If5265e251a4201e7037ddaa2f36fa998936622aa\n"
    },
    {
      "commit": "33de46e8f32aaf803bc4e2c0efebc15660d7045e",
      "tree": "1d096aa210da1bdb42a23a46e77f2a8ea346b80c",
      "parents": [
        "1128b3fa1a8c3859e517d141c8f289ec4e35ef91"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 11:17:57 2019 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 11:40:58 2019 +0000"
      },
      "message": "Convert three media binaries to Android.bp\n\nThis converts mediaserver, mediametrics and screenrecord and the\nlibraries they depend on to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122331945\nBug: 80410283\nTest: boot blueline\nTest: youtube\nTest: screenrecord\nChange-Id: I132b8b4f7965449df68fb1544034a7241c594a63\n"
    },
    {
      "commit": "38354d04ae7562cdbf8b30b5b1dbbf8253ccf480",
      "tree": "277626956a585f6c24fabbab2a002cdc3d298a3e",
      "parents": [
        "55e72131c26aa4d276bbb319c8dacebc06ce6e55"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jan 23 10:59:24 2019 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jan 23 13:57:49 2019 +0000"
      },
      "message": "Delay mediaserver/mediaextractor during boot\n\nDelay start of mediaserver and mediaextractor during boot until after the\nRuntime APEX is mounted.\n\nThey depend on ICU / the ICU .dat file which are provided by the Runtime\nAPEX.\n\nTest: flash \u0026 boot\nBug: 123275379\nBug: 113373927\nBug: 123176717\nChange-Id: Idfe80054b6afe8f7449e698f59413ecefb280957\n"
    },
    {
      "commit": "f36cccb50b189965177ecd7bdc3b3f36ad207fa6",
      "tree": "fc90e02d7d10e42bb9665678d9ac85437ae4cd5a",
      "parents": [
        "1ce37f1de3f7185ccffd4d9145b036941a582fe4"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Tue Nov 20 19:11:07 2018 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Jan 07 18:36:10 2019 +0000"
      },
      "message": "Use ICU in libandroidicu\n\nlibicuuc and libicui18n are moved into APEX, but\nthey have no stable ABI due to the version suffix.\n\nUse libandroidicu which provides stable symbol.\nSee http://go/apex-stable-icu4c-interface for the design.\nSee http://aosp/801855 for libandroidicu implementation.\n\nBug: 117094880\nTest: m checkbuild\nMerged-In: Ida6aac85dfb79bf8e7a3a2540e567ee211279e09\nChange-Id: Ida6aac85dfb79bf8e7a3a2540e567ee211279e09\n(cherry picked from commit b6826d9e88b521c5c970cf748db83b43c70d56d1)\n"
    },
    {
      "commit": "9c47c97ecac581d66b6febafd156618247e86742",
      "tree": "c49b5394e42b293c0333754bf01c71d387227833",
      "parents": [
        "6ab6061131a10b7f38074c156fd529fa3719a32b"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Feb 08 04:09:38 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Feb 16 11:16:06 2017 -0800"
      },
      "message": "Enable full migration of OMX to Treble.\n\n1. Toggling between Treble and non-Treble OMX will now be controlled by\ntwo properties: \"persist.hal.binderization\" and\n\"persist.media.treble_omx\". (Before this CL, this was controlled by\n\"debug.treble_omx\".)\n- If persist.media.treble_omx is not set, it will assume a default value\nof -1.\n- If persist.media.treble_omx is -1, persist.hal.binderization will be\nused to determine whether OMX will be created as a Treble or non-Treble\nservice.\n- If persist.media.treble_omx is 1, OMX will be created as a Treble\nservice.\n- If persist.media.treble_omx has any other value, OMX will be created\nas a non-Treble service.\n- persist.media.treble_omx can be changed without rebooting, but it will\nonly take effect after media.codec and mediaserver processes are killed.\n\n2. Remove all dependencies on non-Treble service. This was not done for\nMediaCodec, MediaPlayerService::Client, MediaRecorderClient, stagefright\ncommand, and omx_tests command. OMXClient and media.codec process will\nnow pick the right version of OMX based on properties mentioned above.\nBefore this CL, media.codec would always present the non-Treble version\nof OMX regardless of the flag.\n\n3. Provide workarounds for some HIDL issues.\n- A sequence of nested binder and hwbinder calls require many threads to\nhandle. (b/35283480) The workaround is to increase the number of threads\nin the thread pool of media.codec process.\n- android.hidl.base@1.0::IBase::unlinkToDeath takes a strong pointer\ninstead of a weak pointer. (b/35233970) This causes an infinite\nrecursion in the destructor of ServiceDeathNotifier in\nMediaPlayerService::Client and MediaRecorderClient. The workaround moves\ncalls to unlinkToDeath() outside of the destructor.\n\nTest: Recorded and played videos with Camera app. Ran stagefright and\nomx_tests commands.\nBug: 31399200\n\nChange-Id: Id1940ed982838e10bf10fe8ed5b7bb912a5a2d3a\n"
    },
    {
      "commit": "dbb1afd703c1435e0be5d5fd85248ab48dac2b02",
      "tree": "15d98e08641ee0fbcecec3e6ace4d2a19e9bf32f",
      "parents": [
        "66c42ee95b42bea78cfc8035a1ea4e00c34d6cac"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 01 12:52:10 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 01 13:10:25 2016 -0800"
      },
      "message": "Remove unneeded libcutils references\n\nmediaserver, mediadrmserver, cameraserver don\u0027t actually use libcutils\n\nChange-Id: Ieac17ec8bce73910672db4e3e239bc6cbe5f0be0\n"
    },
    {
      "commit": "c661ae6165338fd5f0bca50a63058b4bcd6def4b",
      "tree": "1fabefad176045b256eb3282f391b9e1ae4ee654",
      "parents": [
        "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 25 13:17:47 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 26 15:42:11 2016 -0700"
      },
      "message": "Remove unneeded links with dynamic libraries\n\nVarious media components were linking against dynamic libraries that weren\u0027t needed.\n\nTest: built and booted\n\nChange-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e\n"
    },
    {
      "commit": "c8deb6dde12f68f7625ea50fd398942bb896d37b",
      "tree": "c9f298f3be35855ea384338f25ab078a35cbe1f1",
      "parents": [
        "eaa26fe35d6faa7eba9adb424ee55b50e89f59cb",
        "f68051a6beb8bb390d12fb700f1721be3f95e54f"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sun Sep 25 00:03:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Sep 25 00:03:19 2016 +0000"
      },
      "message": "Merge \"Add missing liblog dependency\" am: 9200a9aab7 am: cb092999cb\nam: f68051a6be\n\nChange-Id: I412248e299c26325a1992b58f4edeec83fdbfe0f\n"
    },
    {
      "commit": "b8c32f06401c8948a69fa896a9afd768528b299f",
      "tree": "03f478cad7b90b0ed6fc1cf63a5e8a96aab40090",
      "parents": [
        "7449b5e025eeb79b04d67c4595c0497b942fe785"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 23 17:15:38 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Sat Sep 24 15:15:46 2016 -0700"
      },
      "message": "Add missing liblog dependency\n\nBug: http://b/31289077\nBug: http://b/27171986\nTest: remove liblog from libcutils and recompile\nChange-Id: Ic2e8a3d9e62d778d32863a4b794dc4c80b1b1b2b\n"
    },
    {
      "commit": "38e5def8d85d5db568c4bf4d5388d82685bdab87",
      "tree": "f11fd526b90ffa9e7e5fdd9eaa65aee25a16bb68",
      "parents": [
        "9959f5aa7e66764e6f2fc4325e7657fcc2776427"
      ],
      "author": {
        "name": "Srinath Sridharan",
        "email": "srinathsr@google.com",
        "time": "Mon Jul 18 16:01:50 2016 -0700"
      },
      "committer": {
        "name": "Srinath Sridharan",
        "email": "srinathsr@google.com",
        "time": "Mon Jul 18 23:33:01 2016 +0000"
      },
      "message": "Making sure mediaserver can write into foreground cpuset\n\nIf multiple writepids, all must be in one line to take effect.\nElse, only the last one will take effect.\n\nbug: 30192722\nbug: 28312446\n\nChange-Id: I35eea3f604fb5f0c2c0a6bce9e22cfde9d5805a9\n"
    },
    {
      "commit": "caba519fa5d7c8f223678d729776c5045d6339fb",
      "tree": "d0863c04eea66b9b359d46b4b57ca3498e8f36e1",
      "parents": [
        "af0c7dfd5744b7c9e67e9afd26af417aadc6dc20"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Jul 12 14:09:11 2016 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Jul 12 14:09:11 2016 -0700"
      },
      "message": "Put mediaserver and audioserver in the foreground stune group.\n\nbug 29512132\n\nChange-Id: Id727977d832bdb291790e603e8a65416b9f0c76a\n"
    },
    {
      "commit": "58f3e5541361cb04d64b8ad6a676ad0d77a4ee57",
      "tree": "c9141eb0d37fe71c38956b341840845e7d3a697c",
      "parents": [
        "d298fb880ba440793ce206e5f519d4f7c8c8bb54"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Apr 15 14:27:22 2016 +0200"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Apr 26 08:48:12 2016 +0000"
      },
      "message": "Move system services into correct cpusets.\n\nTo foreground:\n- cameraserver\n- mediaserver\n- audioserver\n- mediacodec\n- drmserver\n- mediadrmserver\n- mediaextractor\n\nBug: 24949295\nChange-Id: I182e5cf6fa4b33d87a0a2f77b0b03fa8d76b8e27\n"
    },
    {
      "commit": "d7c2909c90e462c45bb2fa9e69ecc82836f22629",
      "tree": "a8ec648171b6ef6e24258f0c474ba451e40c61d3",
      "parents": [
        "984b4f2db2f5969afff6420739f6d785f4a14bf3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 30 15:13:26 2016 +0000"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 30 15:13:26 2016 +0000"
      },
      "message": "Revert \"Revert \"Make build warnings be errors\"\"\n\nThis reverts commit 984b4f2db2f5969afff6420739f6d785f4a14bf3.\n\nChange-Id: I4d0f420a063c611afe5b5c9fa809e34799f66ea1\n"
    },
    {
      "commit": "984b4f2db2f5969afff6420739f6d785f4a14bf3",
      "tree": "617bd547225bd6d87363bd35db1f8bf245161f06",
      "parents": [
        "20b89a97a8294c05b8da86f415b0b1bf65ac0fe0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 28 22:36:24 2016 +0000"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 28 22:36:24 2016 +0000"
      },
      "message": "Revert \"Make build warnings be errors\"\n\nThis reverts commit 20b89a97a8294c05b8da86f415b0b1bf65ac0fe0.\n\nChange-Id: I8d840d89bb1eaaa33af64fa04dd422f56b4c2a58\n"
    },
    {
      "commit": "20b89a97a8294c05b8da86f415b0b1bf65ac0fe0",
      "tree": "a8ec648171b6ef6e24258f0c474ba451e40c61d3",
      "parents": [
        "f4044e892d3939fb99ee545a5e8e8e2999f476b2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 22 14:03:12 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 23 11:53:20 2016 -0700"
      },
      "message": "Make build warnings be errors\n\nChange-Id: I207ec8e429bad1fe6bb3821892670af47f15b1d6\n"
    },
    {
      "commit": "d56db1d2bee182d1851097a9c712712fc094d117",
      "tree": "243fda59e2b4d51491af628b49b3a35b267e0051",
      "parents": [
        "cf7913e2389a5e850e01aa6f905d252ee54c9891"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Dec 17 16:50:35 2015 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 02 10:27:36 2016 -0800"
      },
      "message": "Camera: Switch camera2 to auto-gen C++ binder interfaces\n\n - Move camera service AIDL files to frameworks/av\n - Build C++ interface stubs with AIDL tools\n - Add necessary native-side parcelables and update existing ones\n - Remove manually-written stubs, rearrange remaining manual stubs\n - Adjust implementations to work with auto-generated stubs\n   - Adjust method signatures for auto-gen differences\n   - Add rich error messages using binder::Status\n\nBug: 25091611\nChange-Id: I6f69f34b9d1a3f8d1fb7db87357363f8fa8483ff\n"
    },
    {
      "commit": "ae0cff1d48b2cd10aeff9627398faf684894eece",
      "tree": "4aef282efa85820a4bba79027e26ea6fb394b904",
      "parents": [
        "f70077e43576f876bac08f3cf1f702b3c19b8184"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 13:57:49 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 15:44:12 2016 -0800"
      },
      "message": "Restore media.log service\n\nBug: 26306954\nChange-Id: I00319f4869f46941e4c814a29b2f69a62e572743\n"
    },
    {
      "commit": "e924b6729bd9c0ef3f043e1f150a1923ecc94999",
      "tree": "6c76c37b7c594230c7178497d3d3864935cd102e",
      "parents": [
        "f25f8410c01922c58d78ec35da420c3b4fed7e38"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 09:27:35 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 09:27:35 2016 -0800"
      },
      "message": "mediaserver still needs icu\n\nBug: 26742500\nChange-Id: I4c0a124b19c84debdbe6e458b975feb69f7a433f\n"
    },
    {
      "commit": "1f36e3b27abfb16bc5e788e253d367eff4886dba",
      "tree": "9beb331c3175fd92fa5d184322590ab82a6e21f9",
      "parents": [
        "e564c201c290c24f94e1478fea3fca2e7422980d"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Dec 03 16:42:53 2015 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Jan 25 13:07:12 2016 -0800"
      },
      "message": "Add cameraserver process\n\nMove camera service from mediaserver to cameraserver.\n\nBug: 24511454\nChange-Id: I9a818c2786ade304777c44b3536f18ee9cd2a6f7\n"
    },
    {
      "commit": "dcb346b7dc5b88c3e85db8a70bbd6a2fee8192b9",
      "tree": "e0038e85e097843f469a6befe9fae1014435f4f5",
      "parents": [
        "ebdddf82b07fa2c4134c3c00dbbbaa1ad3286726"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 09 10:47:29 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 11:29:11 2015 -0800"
      },
      "message": "Run audio services in audioserver instead of mediaserver\n\naudioflinger, audiopolicy, (fm) radio, soundtrigger moved to audioserver.\nmedialog is removed from mediaserver.\naudioserver has same permissions and rights as mediaserver.\n\nmediaserver is allowed to specify client uid to audioserver.\n\nSubsequent CL will add medialog to audioserver.\n\nTBD: Pare down permissions.\n\nBug: 24511453\nChange-Id: Iccaa08b874a502710d142e72f8abbb3d97c44cfa\n"
    },
    {
      "commit": "dc6d89a52807fc216012467dcba6091c608dae56",
      "tree": "f005da706f84464d6009595496d919a19a5e3226",
      "parents": [
        "e6d2838dcb92a3277c59f4a13c4703b98b837bce",
        "9abb6302e30ed276cf36904bbf09697ccc065a1f"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Aug 21 18:24:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 21 18:24:24 2015 +0000"
      },
      "message": "am 9abb6302: am f7ddd009: Merge \"bundle init.rc contents with its service\"\n\n* commit \u00279abb6302e30ed276cf36904bbf09697ccc065a1f\u0027:\n  bundle init.rc contents with its service\n"
    },
    {
      "commit": "c6dd768006362ced8ef7ae3606cac40312099fd7",
      "tree": "7d14c1f9bb07a565a0d00a9b032489ba7dbc216f",
      "parents": [
        "d7c2effc0494a88b8b11ecf3c01f883b04c465e1"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Aug 14 13:01:03 2015 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Aug 19 17:23:25 2015 -0700"
      },
      "message": "bundle init.rc contents with its service\n\nBug: 23186545\nChange-Id: I18c6062f9e30d72e5a7ffd67c61b9eeec5c24e3b\n"
    },
    {
      "commit": "6697ab9e63ef0b631a8a6c5d49f6413b91daaaef",
      "tree": "9d036250ff19da7866faf3121639ced609ae7200",
      "parents": [
        "ed2abf42e155909c8da201a7b8b06e527fe07cfb"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jun 10 15:12:38 2015 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 11 13:49:27 2015 +0100"
      },
      "message": "Switch to using shared over local code for initializing ICU\n\nA static library now exists in external/icu/android_utils.\n\nContains cherry-picks from commits:\n4b60b068c27a40731bd4a0049cb632da18bf521d\n2f3406517d1fd4486b8b90eb2635d784fad17a48\n\nBug: 21730722\n\nChange-Id: Ibc264ed881465736ce74fa493deb83cc15f9fceb\n"
    },
    {
      "commit": "4b60b068c27a40731bd4a0049cb632da18bf521d",
      "tree": "9565fcd81affa99e9215abb4b0deda71bf683a35",
      "parents": [
        "2f3406517d1fd4486b8b90eb2635d784fad17a48"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jun 10 15:12:38 2015 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 11 12:59:18 2015 +0100"
      },
      "message": "Switch to using shared over local code for initializing ICU\n\nA static library now exists in external/icu/android_utils.\n\nBug: 21730722\nChange-Id: I8302b585d3c87fd1a975301ceca4ceebaccbcac9\n"
    },
    {
      "commit": "2f3406517d1fd4486b8b90eb2635d784fad17a48",
      "tree": "55ff130219cf9ac6b68ebf58b0aa848159852b90",
      "parents": [
        "356f08476db6191cdcbad20caf69d7bd642a09b2"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 09 17:42:34 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jun 10 08:52:17 2015 +0000"
      },
      "message": "mediaserver : Initialize ICU on startup.\n\nIn change 2b29e461c in external/icu, we stopped hardcoding the ICU\ndata path at compile time to avoid two sets of mappings in zygote forked\nprocesses. This means we\u0027ll have to tell ICU where its data is if the\nprocess in question isn\u0027t forked from the zygote.\n\nbug: 21705078\nChange-Id: I829d9fa34fe8209aa8a6d55145ca26fdf0d934e8\n"
    },
    {
      "commit": "67e7f543c7f1c4fe4ee1989ceb0aebe44a63b49e",
      "tree": "7de894fc9626b36de6eed70812962380ca217f22",
      "parents": [
        "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Mar 13 10:47:08 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 14:16:12 2015 -0700"
      },
      "message": "media: use ResourceManagerService with MediaCodec\n\nBug: 19620911\nChange-Id: I235a97e5195b28645b7834dda0dd77307d93f4a8\n"
    },
    {
      "commit": "f097cae65bfce7200938c5bd89e7e9b61cba78b3",
      "tree": "c69ed57deac44c243d914a3c8fa7b88bf3327ca6",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Apr 13 12:17:21 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Apr 13 17:20:19 2015 -0700"
      },
      "message": "TimestretchBufferProvider integration with Sonic Library\n\nUsing Sonic as backbone for time stretching algorithm.\nAdding libsonic to needed makefiles.\n\nbug: 19196501\nChange-Id: I1ea9221d2f56e4e79fba8746ce0ad350b5079e82\n"
    },
    {
      "commit": "2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb",
      "tree": "5051da296e1fbc067db7ac190334d7d98a4410eb",
      "parents": [
        "dfd7409c1b708f6c429aa43722ca8493a91d8df0"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Mar 24 08:41:51 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Split ManagerDefault into manager and engine\n\nThis patch defines an interface for a new component: policy engine.\nThe APIs found under this interface are the one we may want to customize\nand to configure easily.\nThis patch also split the current manager code into manager and engine to\nprovide a default version of the policy engine.\n\nChange-Id: I97cf59760b53d248fe9efe466ae5e73bd7e5cc06\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "98cc191247388132b6fd8a4ecd07abd6e4c5a0ed",
      "tree": "b447149a320aabc6fb28f2522e6a55db835ce537",
      "parents": [
        "ad3183e2d4cecd02f6261270a7ea1c68be0efa0f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Mar 18 17:52:40 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:19:16 2015 -0700"
      },
      "message": "Split ManagerDefault into Manager and ManagerDefinitions\n\nThis patch splits the managerdefault into a manager and a manager\ndefintion library that contains all pillar elements of a policy manager.\n\nIt renames the file with the name of the main class they contains.\n\nIt splits the AudioPort into AudioPort and AudioPatch.\n\nChange-Id: I992cf0b8aed895805cc003ba0980d2c9e92c985b\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "231c3d169ad029689f9d688b68179af7e96b8d78",
      "tree": "09dbf8d4dc47f5698c08190f498357b455a396c7",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Mar 11 15:10:32 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 23 17:02:28 2015 -0700"
      },
      "message": "media: add ResourceManagerService\n\nBug: 19620911\nChange-Id: Iea173d310d31781bc50effe3d9bd6553cb5139eb\n"
    },
    {
      "commit": "4e09069a29fc18d0799808cc26f71e9b068e98ad",
      "tree": "c546f0130241ac0fea083fca8ec2582e22785aaa",
      "parents": [
        "dedc86dcb6d63e93518c8974c077e50912d15e9c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 05 15:12:40 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 10 18:20:33 2015 -0700"
      },
      "message": "radio service initial implementation\n\nFirst implementation of broadcast radio service.\n\nThis native service runs in mediaserver process and\ncontrols broadcast radio hardware modules.\nThere is one ihardware module per broadcast radio class.\nThe service allows serveral clients to control tuners\non hardware modules and manages resource conflicts.\n\nChange-Id: I21469a084c7ccd65042b8ac5f724d060044c45ab\n"
    },
    {
      "commit": "56ec4ffcbae8aeac6c5245fc7b825d02e2e6cefd",
      "tree": "914941adb956f3af389b9a7b955f3534eec4fe7a",
      "parents": [
        "8f7b7fa417566e9a6a29ea9f0e220b3cd6d1a9e3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jan 23 16:45:18 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 18 17:29:20 2015 -0800"
      },
      "message": "Refactor AudioPolicyManager\n\nAudioPolicyManager implementation is now split into the\nfollowing files:\n\nfiles managerdefault/Gains.*\n  class AudioGain\n  class VolumeCurvePoint\n  class StreamDescriptor\n\nfiles managerdefault/Devices.*\n  class DeviceDescriptor\n  class DeviceVector\n\nfiles managerdefault/Ports.*\n  class AudioPort\n  class AudioPortConfig\n  class AudioPatch\n\nfiles managerdefault/IOProfile.*\n  class IOProfile\n\nfiles managerdefault/HwModule.*\n  class HwModule\n\nfiles managerdefault/AudioInputDescriptor.*\n  class AudioInputDescriptor\n\nfiles managerdefault/AudioOutputDescriptor.*\n  class AudioOutputDescriptor\n\nAll files for libaudiopolicyservice are moved under service/\n\nAll files for libaudiopolicymanager are moved under manager/\n\nChange-Id: I43758be1894e37d34db194b51a19ae24461e066e\n"
    },
    {
      "commit": "c52fb038dc91712fc5159226006e03ce59b21b9a",
      "tree": "226c3461133ec9c183f7c1543b1108820c8def60",
      "parents": [
        "49d44ef14da70f3159cf7908cab58c32ed3dbf26"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 02 15:04:55 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 02 15:04:55 2015 -0800"
      },
      "message": "Cleanup annoying whitespace that causes red markers\n\nChange-Id: I0b1be110b0e0a9606d272c4d023f40ff93522725\n"
    },
    {
      "commit": "b7a11d83f749ad0200778c4815e907d011d4b5d3",
      "tree": "28c744c0e8fe9c1f198ddd0999b4c5d95de9610a",
      "parents": [
        "24c01a8417fe195e5ba2187dbbdf9bd1e3a6553f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 18 17:40:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 15:34:20 2014 -0700"
      },
      "message": "add sound trigger native service\n\nChange-Id: I0cd954c1c7d28a334e786d0004431d4f6a1227ec\n"
    },
    {
      "commit": "d83062287758be57d1d0908b30bb18aa9b367f38",
      "tree": "0efd8542cfb286a9d59c3c13ca455be14ba06f2f",
      "parents": [
        "7ac0039611ea7ea18f9545f96a8f5cb31dcdebe5",
        "98c6be0e30fa28e752b13f3dd5986d41710bb7ae"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 22 00:40:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 22 00:40:14 2014 +0000"
      },
      "message": "Merge \"audio policy: split audio policy library\""
    },
    {
      "commit": "98c6be0e30fa28e752b13f3dd5986d41710bb7ae",
      "tree": "f4184b5bd860b09ffa8172257212862e0352425d",
      "parents": [
        "272b7f26c300d2029f278cf2af523cf94e513b89"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 21 08:14:08 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 21 08:58:19 2014 -0700"
      },
      "message": "audio policy: split audio policy library\n\nSplit audio policy library into a service part and a policy part.\nThis will allow OEMs to customize the policy part:\n- libaudiopolicyservice for the service.\n- libaudiopolicymanager for the policy.\n\nTwo build options can be defined in device make file to select\nthe policy library:\n- USE_LEGACY_AUDIO_POLICY \u003d 1: this will use the legacy policy\nin hardware/libhardware_legacy implemented by AudioPolicyManagerBase class.\nThis policy is loaded as a harware module and exposes the audio policy HAL\ndefined in include/hardware/audio_policy.h and is in a library called\naudio_policy.XXX.so (e.g audio_policy.default.so)\n\nThe legacy HAL will not be updated with new features.\n\nIf USE_LEGACY_AUDIO_POLICY is not defined, the policy is implemented by\na class named AudioPolicyManager exposing an interface defined in\nAudioPolicyInterface.h.\nThe corresponding library is libaudiopolicymanager.so.\n\nNew features will be added only to AudioPolicyInterface.h\n\nThe default implementation is provided here in file AudioPolicyManager.cpp\n\nOEMs wanting to cutomize the policy can implement the AudioPolicyManager class\nand provide the libaudiopolicymanager.so library.\nIn this case the device make file should define:\n- USE_CUSTOM_AUDIO_POLICY \u003d 1\n\nFor now, USE_LEGACY_AUDIO_POLICY \u003d 1 is forced in audio policy service make file.\nThis will be removed when the new audio policy is enabled.\n\nChange-Id: I066799dacc9b182b468a43d48ff7798c9109a414\n"
    },
    {
      "commit": "c56f3426099a3cf2d07ccff8886050c7fbce140f",
      "tree": "9e486a809f9d500a70fd26c4e1d2596ded190dbe",
      "parents": [
        "7c96d53a65085f42ac2b6d416cbc16fd36ed72ff"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 21 17:53:17 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 19 09:46:25 2014 -0700"
      },
      "message": "Pass stereo gains as packed minifloat\n\nThis will allow (eventually) a greater dynamic range for gains.\nHowever there are still a few remaining places in effects and mixer\nthat will also need to be changed in order to get the full benefit.\n\nAlso fixes a minor bug: was not checking for NaN in AudioTrack C++.\n\nChange-Id: I63bce9e82e0a61546d8ff475fb94bcb700d99c96\n"
    },
    {
      "commit": "314869117d5e3365fc3e43fee01209d18515ca42",
      "tree": "a1975d895276c929a5e5a20166124368f2e21eb9",
      "parents": [
        "37e05edf1cfe297f9c7d382787ecab53d5a2b5c8",
        "c7e5040aa8b8e4da86814bf560346c7571e48087"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 18 00:14:12 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 18 00:14:12 2014 +0000"
      },
      "message": "Merge \"move audio policy service to a separate library\""
    },
    {
      "commit": "758799cef41fc5495f59eeb6249d02ce9154cde8",
      "tree": "5cbfa825fd668d81c6fe6a8ec485dd8ebb2fd151",
      "parents": [
        "beb57a5a08207af80180b93dd80d611a85997c43",
        "3c7801882bbb6d5f3cc641525a54cb8a6c4aca34"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "message": "resolved conflicts for merge of 3c780188 to master\n\nChange-Id: Ic579d346c27ff05ea6444faaa60fa6caaec86fbf\n"
    },
    {
      "commit": "af783aa91f7a279153fb8bab8d0d6b9f737996e9",
      "tree": "25c5b54bf884f220cce4ee21a9cbaf6583820f91",
      "parents": [
        "19afb3869eb6a3e3733dc1f7420e1d4c3c03d376"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Sun Mar 02 19:48:19 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 12 11:24:53 2014 -0700"
      },
      "message": "mediaserver and associated services are 32-bit only\n\nalso 32-bit only command-line apps\n\nChange-Id: I9ac557a8d02bbf6986a9b5c3cdce23d400b306a3\n"
    },
    {
      "commit": "c7e5040aa8b8e4da86814bf560346c7571e48087",
      "tree": "8cd35c3ea6a2f9849d27a8299705dd7aea494894",
      "parents": [
        "1ac1638077277de52d1dd4c54db71e67753f1960"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 06 14:35:55 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 13:52:14 2014 -0700"
      },
      "message": "move audio policy service to a separate library\n\nChange-Id: Ibc3ef07aa9860b7fd4f9aaff27b0dbe0dcbf1cbf\n"
    },
    {
      "commit": "0f11b51a57bc9062c4fe8af73747319cedabc5d6",
      "tree": "3a9156d700b18a53f856ac8ae51a44604af36fe1",
      "parents": [
        "0520e05f9083cf13fa7062629bc6606f4b39f08a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 31 16:18:54 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 03 07:48:43 2014 -0800"
      },
      "message": "Fix unused parameter warnings in audio\n\nChange-Id: I665ba3358dd9502f0adec70d486e7bf8a2e1b0fe\n"
    },
    {
      "commit": "7226c059cda892ffa384b455ecfc49989e9bf6f0",
      "tree": "10e13405a2bd59737a6e2ab41c52317e058d0621",
      "parents": [
        "269a7e210949c4b28ba84dc71b9f99f6ef14f94e"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Jan 17 14:46:21 2014 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Jan 17 14:46:21 2014 -0800"
      },
      "message": "Fix build. Missing vendor_tag header.\n"
    },
    {
      "commit": "ecba7488c5cceaacef95836b1b476433451e7761",
      "tree": "83245c19c2dda5c557531edb19478056034b5db5",
      "parents": [
        "5544c66ba0aa789a997b376df503a5ffae425dc7"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6",
      "tree": "67aa5a912048834766759d1842f7e54a20f74481",
      "parents": [
        "ec77122351b4e78c1fe5b60a208f76baf8c67591"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "8029ea41c8851c527ed5829e8c26fbf939661f34",
      "tree": "5ef58bfba85abac9234c739ab65ef4d195e285b6",
      "parents": [
        "2f8025eef6c681920579f75d298a262b12a80ac9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 20 16:47:28 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 20 16:47:28 2013 -0800"
      },
      "message": "Permit conditional registry of mediaserver extensions\n\nChange-Id: I94dc0d038e702dfe1779a50a1de0fae9bad15057\n"
    },
    {
      "commit": "feb2179f15bde8241814c8c35f8dace13a923ee7",
      "tree": "9d8e325d2d38e6366944f186008accea0fb123b5",
      "parents": [
        "fc900c922e219771d0cd3c075720d90026e1ca4a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 20 16:47:28 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 20 16:47:28 2013 -0800"
      },
      "message": "Permit conditional registry of mediaserver extensions\n\nChange-Id: I94dc0d038e702dfe1779a50a1de0fae9bad15057\n"
    },
    {
      "commit": "fdf4e4f1859771b95585cbc87f8cd038ea2815c6",
      "tree": "7bbc12a9d0e9c7ad29346b04b26c55d390a0b032",
      "parents": [
        "10eb4b33545a58e4b09249c30c100bc7b992250a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:31:41 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 25 15:12:14 2013 -0800"
      },
      "message": "Add media.log service based on NBLog\n\nChange-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f\n"
    },
    {
      "commit": "6f1c1918d0dfece10f728711b055441e4d135c73",
      "tree": "e82c0166e895f9c61c11ff0800d2871298e63b30",
      "parents": [
        "11d8dfcc063425ae7d59229f54b6752fd8987c10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:31:41 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 25 15:12:14 2013 -0800"
      },
      "message": "Add media.log service based on NBLog\n\nChange-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f\n"
    },
    {
      "commit": "7acd13defdb3f33b2e266f1ef8f3ac85285c5e27",
      "tree": "c1b190f6e1e14b1d144d5ad8a275cf20556a26b8",
      "parents": [
        "b32761634799f00488f890cd3e38f47ce7cc3452"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:17:05 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:24:49 2013 -0800"
      },
      "message": "Remove obsolete audioflinger reference\n\nChange-Id: I9ae754c908f3b0102c3828c71d6f542851a74341\n"
    },
    {
      "commit": "2a330d6cbb25f0cdd6208aeee53b4a3b88dae3b0",
      "tree": "ee5cf0c2ca89c31227b665448c426980d699c209",
      "parents": [
        "5faf610fa384a81dbefb7ac67d2452216e3acead"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:17:05 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:24:49 2013 -0800"
      },
      "message": "Remove obsolete audioflinger reference\n\nChange-Id: I9ae754c908f3b0102c3828c71d6f542851a74341\n"
    },
    {
      "commit": "4e1e73ebe1049538678d0343e4b2e51eb54352f8",
      "tree": "717818f3dc5bbbf97da2fa8ed47fe8d007dae7f9",
      "parents": [
        "a799a40491f8fbd3cdc8681bff6f7fac3933db95"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 17 12:16:50 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 17 18:15:17 2012 -0700"
      },
      "message": "Ignore SIGPIPE during write() to broken pipe\n\nThis happens occasionally when taking a bugreport.\n\nBug: 6447319\nChange-Id: Ia6531a4a3658461f8fd3f7106e7996da7cc5933a\n"
    },
    {
      "commit": "879d503a5d4460a4265279985c63af954afe4a2c",
      "tree": "290f4e6dae0a80845a66e9ab1f4ca12eb41e1dda",
      "parents": [
        "44ddca42f472b839dd0352a3582fdb57684d907e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 17 12:16:50 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 17 18:15:17 2012 -0700"
      },
      "message": "Ignore SIGPIPE during write() to broken pipe\n\nThis happens occasionally when taking a bugreport.\n\nBug: 6447319\nChange-Id: Ia6531a4a3658461f8fd3f7106e7996da7cc5933a\n"
    },
    {
      "commit": "3d51d5cb53cc630709a0ba78d0e60501a675f2d5",
      "tree": "c01dc8011b4e0061343c8b60b0da3508c63ae822",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 12 18:10:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 13 15:18:29 2012 -0700"
      },
      "message": "Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/\n\nChange-Id: I0a3af3e2abdedebd5934f3d941d01c32cfc75e26\nrelated-to-bug: 6647465\n"
    },
    {
      "commit": "559bf2836f5da25b75bfb229fec0d20d540ee426",
      "tree": "d7dd708b17eeca96a3e5d8bcc25a51ff3d1b5d0d",
      "parents": [
        "b0b2b4d890cf3bfb274797a759642b4e733343d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:29:14 2012 -0700"
      },
      "committer": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Wed Mar 28 12:07:41 2012 -0700"
      },
      "message": "AV Android make files changes\n\no plus a few file relocation: ActivityManager.cpp/h, SoundPool.h, etc\no remove some runtime dependencies to libandroid, libandroid_runtime, etc\n\nChange-Id: I047a47c5fb361dd5cf85cd98798c39f629a75d10\n"
    },
    {
      "commit": "8e5b72c39cf0e4d4bec6f843bb54f6409b073c64",
      "tree": "db5db6697bf2a34fd3ebf117269bf4c5ffe7f03f",
      "parents": [
        "d191213ab0146526541913f3fed2d5aa95f58899",
        "0e9350254736c4aea154a7a871dd212038050f70"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 13:56:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 13:56:25 2012 -0700"
      },
      "message": "Merge \"Prepare frameworks/native/services/audioflinger\""
    },
    {
      "commit": "b4d307481960b6b348fae4b4e8edefd003c3d36c",
      "tree": "d357f30c9cf6541cbe3de6de7cc71a860f66c80b",
      "parents": [
        "f67fdc6d8bb31226ffeeecbff6aca610befd0110"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 14:46:23 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:14:19 2012 -0700"
      },
      "message": "Use correct syntax for #include \u003c\u003e \"\"\n\nChange-Id: I943137108668ae66f8eba18dafe069a7951bcd8f\n"
    },
    {
      "commit": "0e9350254736c4aea154a7a871dd212038050f70",
      "tree": "a3a6f653b383e5767c6ed6b6c47c464099339298",
      "parents": [
        "f67fdc6d8bb31226ffeeecbff6aca610befd0110"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:09:39 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:13:17 2012 -0700"
      },
      "message": "Prepare frameworks/native/services/audioflinger\n\nPart of this change will be reverted after the move is complete.\n\nChange-Id: Ie7f6355368258f2b1344f4ef754da9151a06e41d\n"
    },
    {
      "commit": "22f3efdefddc855ea0763275310850bf55bd4fd1",
      "tree": "8982998eb1ac559f98e7c198fdeb5a6e853c0b07",
      "parents": [
        "9770988e61961d34033fd2c12f0de85a267df68f",
        "33df529414c248972587d97cbb2e3309e0a7eeff"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 11 10:22:45 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 11 10:22:45 2012 -0800"
      },
      "message": "Merge \"Fix missing tag in mediaserver ServiceManager: log\""
    },
    {
      "commit": "33df529414c248972587d97cbb2e3309e0a7eeff",
      "tree": "1b70171fcd19e781e778d798fd7841c3eaa9fc06",
      "parents": [
        "a2a0a5d7d56baa831870f4bf2a0d942a477d92ef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 19 14:09:14 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 06 14:40:14 2012 -0800"
      },
      "message": "Fix missing tag in mediaserver ServiceManager: log\n\nChange-Id: I2d5525ffee0b66c0bc361a02b313ec4dd61e6552\n"
    },
    {
      "commit": "df64d15042bbd5e0e4933ac49bf3c177dd94752c",
      "tree": "ff04eb3e1a1ce8c8d8559b93a438f278d984aa87",
      "parents": [
        "b8a805261bf0282e992d3608035e47d05a898710"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "837b8184e1307991578de5d5d25b62a67bb225f6",
      "tree": "dff89f05576533422f8e5caf2c25efac5c4455d0",
      "parents": [
        "eebeceec684a36222b4559e3157b0db04c0a67ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 30 09:05:19 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 12 13:40:06 2011 -0800"
      },
      "message": "Delete obsolete includes\n\nChange-Id: I960a179a026ff8d710b43b64cb358f18ee04de16\n"
    },
    {
      "commit": "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0",
      "tree": "da088916c7cadadcddf47467f20cc8b0b6ff7f41",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    },
    {
      "commit": "c2f1f07084818942352c6bbfb36af9b6b330eb4e",
      "tree": "88ac93be41edadd8cbfe6448e1421d5165883f59",
      "parents": [
        "a64c8c79af1a15911c55306d83a797fa50969f77"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 17 12:17:14 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 06:03:39 2009 -0700"
      },
      "message": "Fix issue 1795088       Improve audio routing code\n\nInitial commit for review.\nIntegrated comments after patch set 1 review.\nFixed lockup in AudioFlinger::ThreadBase::exit()\nFixed lockup when playing tone with AudioPlocyService startTone()\n"
    },
    {
      "commit": "7562408b2261d38415453378b6188f74fda99d88",
      "tree": "6b2ac284c1b721385d695045357d9e1d60ece03a",
      "parents": [
        "615a9bfbd98b90e09d868c128db84836feb658e4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "615a9bfbd98b90e09d868c128db84836feb658e4",
      "tree": "8820d731b046206d781bb302cc79d7303c44dbbb",
      "parents": [
        "8bae84582c2836a605d3ec3382a5e2f0b233ca52"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 18 15:08:03 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:02 2009 -0700"
      },
      "message": "checkpoint: split libutils into libutils + libbinder\n"
    },
    {
      "commit": "89fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5",
      "tree": "28d26f7b71e943e25c7da6e8043d79b7b8d9cf7b",
      "parents": [
        "15f767b960b38059a74a42a33e16d8df2aec8bc1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "15f767b960b38059a74a42a33e16d8df2aec8bc1",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "ad04d9201452001dbaac4349f084cc9316190b89"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "2729ea9262ca60d93047e984739887cfc89e82eb",
      "tree": "25962a3f1c5f70586af45c926c037e03c643857f",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
