)]}'
{
  "log": [
    {
      "commit": "e89a795ba814c3de15c1694c26be43e87a8395b1",
      "tree": "6261076d38fcf40378b193f0905f27bd0da414f6",
      "parents": [
        "55bfd11fd19949f9a657eda09053901a2515060a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon May 04 13:19:20 2020 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon May 04 13:19:20 2020 -0700"
      },
      "message": "Fix race condition in IMediaSource\n\nBug: 148223229\nTest: PoC\nChange-Id: Iafe6ee6b4819765adb0bf46ece7605a23923e241\n"
    },
    {
      "commit": "06a730b1fe80592767b45643cd86bf6006091965",
      "tree": "6043dcb5cf4d85adcca26b1ec162faee2b4f6afc",
      "parents": [
        "b744fafc831e1a13cc5e054aa4812281c3c5c7fc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:28:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:28:31 2020 -0700"
      },
      "message": "AudioClient: Fix clang-tidy warnings\n\nTest: atest AudioTrackTest\nTest: atest AudioRecordTest\nBug: 153658358\nChange-Id: Id24db96188a777336f41d74d4fbdfd90147ee8bc\n"
    },
    {
      "commit": "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5",
      "tree": "77671b8d041a66b35884657fc4e05c5e5214787a",
      "parents": [
        "95ec1b8ea487abbf4ef50d53c227338f559e9599"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:08:23 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 09:48:59 2020 -0700"
      },
      "message": "MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\n\nTest: dumpsys sanity check of mediaserver, audioflinger, drmmanager\nBug: 149850236\nChange-Id: I7a3694444de0f940beacb699bc6f07ebb6a7cc7d\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": "3006a83565b6863f247bf634faa929b84608026e",
      "tree": "d5199b47770c80334a28b94ab827d24e63dc4a9d",
      "parents": [
        "1261c29e1efbe523285dc65138d4c29bf5ae6b39",
        "6c22190e49f47b3debc122e15ca042befdd39cee"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 23 17:03:59 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:03:59 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: limit maximum memory used\" into rvc-dev"
    },
    {
      "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": "eaac82f33f2a064c6ae1a5f1791bb13669820687",
      "tree": "8497decf3df9784b8c66e19d00c7e7a034471ac5",
      "parents": [
        "8d386f779d76eb2a87ec570bf6ee3c0ce674085f"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Sat Mar 07 04:09:55 2020 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Mar 18 22:55:45 2020 +0000"
      },
      "message": "Allow XML file paths to be customized with sysprop\n\nThree properties are declared as vendor-init-settable:\nro.media.xml_variant.codecs\nro.media.xml_variant.codecs_performance\nro.media.xml_variant.profiles\n\nmedia_codecs.xml can now be named\nmedia_codecs${ro.media.xml_variant.codecs}.xml\n\nmedia_codecs_performance.xml can now be named\nmedia_codecs_performance${ro.media.xml_variant.codecs_performance}.xml\n\nmedia_profiles_V1_0 can now be named\nmedia_profiles${ro.media.xml_variant.profiles}.xml\n\nTest: Rename \"media_codecs.xml\" to \"media_codecs_test.xml\",\nset ro.media.xml_variant.codecs to \"_test\", then\ncall \"stagefright -i\".\n\nTest: Rename \"media_codecs_performance.xml\" to\n\"media_codecs_performance_test.xml\",\nset ro.media.xml_variant.codecs_performance to \"_test\", then\nrun android.media.cts.VideoDecoderPerfTest.\n\nTest: Rename \"media_profiles_V1_0.xml\" to \"media_profiles_test.xml\",\nset ro.media.xml_variant.profiles to \"_test\", then\nrun vts_mediaProfiles_validate_test.\n\nBug: 142102953\nChange-Id: I38fa2924e02363639d1cdc3dd85128e0652343ee\nMerged-In: I38fa2924e02363639d1cdc3dd85128e0652343ee\n"
    },
    {
      "commit": "3784ab5009e070491c12bbddbf4948eddeac3de6",
      "tree": "04fe406dfa253947440716bbbe234a84bf9b22d5",
      "parents": [
        "ae3b9539cead752af48515f2e43c9985c3fc04e6"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 17:18:24 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 20:03:09 2020 -0800"
      },
      "message": "Accommodate the move of AudioPlaybackRate to system/audio.h\n\nAudioPlaybackRate is now defined in system/audio.h\nas \u0027struct audio_playback_rate_t\u0027 (in global namespace).\nSimilar for the related enums.\n\nTo accommodate the existing code, introduce AudioPlaybackRate\nas a typedef in the \u0027android\u0027 namespace.\n\nUpdate code that was forward declaring AudioPlaybackRate\nas it\u0027s not a struct anymore.\n\nBug: 133526565\nTest: m\nChange-Id: Iba20f1de1e8779cd78ac4573f2082416f2b428e2\n"
    },
    {
      "commit": "40d077fc65b6e5115b31c51b7a63e8d6bab9db78",
      "tree": "f8a918c26d392bef87ac8b241d16b0f51aabbab5",
      "parents": [
        "3a229574b50a3535626d8278b2411849fd39963e",
        "869f4d73b6c5886655223bf6fbb03c6af8b372df"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Feb 03 05:57:22 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Feb 03 05:57:22 2020 +0000"
      },
      "message": "Merge \"Move DataSourceUnwrapper to MidiIoWrapper class\" am: e512cd3def am: 06e1900225 am: 869f4d73b6\n\nChange-Id: Ifa10feda503d801556d6c0ac9f097415827708ab\n"
    },
    {
      "commit": "c39661e2507d61e18978ed48c0ad051ad1339a4e",
      "tree": "73e4dcf4bf2fe5270af436b661c6793f512eced7",
      "parents": [
        "733c728752ae6958c88b2da4a4c662d266294b70"
      ],
      "author": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Fri Jan 31 11:08:47 2020 -0800"
      },
      "committer": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Fri Jan 31 20:46:41 2020 +0000"
      },
      "message": "Move DataSourceUnwrapper to MidiIoWrapper class\n\nDataSourceUnwrapper is now part of MidiIoWrapper class\nThis is prevent use of this class outside MidiIoWrapper methods\n\nBug: 145332185\nTest: adb shell /data/local/tmp/ExtractorUnitTest -P /data/local/tmp/extractorRes/\nTest: atest android.media.cts.MediaExtractorTest\nTest: atest android.mediav2.cts.ExtractorTest\n\nChange-Id: Ia898539fb95a1eb62b81f522599976fc477bfbee\n"
    },
    {
      "commit": "2496ffbc450029ee9ec26980a101e71352b4f635",
      "tree": "b653a141b92b77c882376f9565909b556cc19f02",
      "parents": [
        "a170e61fb4e99fc56ab328b25180d321d278867e",
        "e4f4b79b8b1304ff3e7650346dd9a6b28346fa1a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 30 16:33:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 30 16:33:28 2020 +0000"
      },
      "message": "Merge \"Implement name() and flags() in IMediaExtractor\""
    },
    {
      "commit": "fb7a76711abb9021d4fec90dac12d3b9eeb49c90",
      "tree": "38cde30a813fc36e07d27e49438bc010908f0ad5",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Dec 27 17:13:33 2019 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Jan 21 20:39:48 2020 -0800"
      },
      "message": "stagefright: MediaCodec buffer API revision\n\nBug: 136283874\nTest: atest CtsMediaTestCases:MediaCodecBlockModelTest\nTest: atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small\nChange-Id: Idc02c7758da8b266099a4134b438e4478c38f912\n"
    },
    {
      "commit": "e4f4b79b8b1304ff3e7650346dd9a6b28346fa1a",
      "tree": "c8bd617164779dd25bf2a825a486132d7825a94d",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 13:15:18 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 13:17:46 2020 -0800"
      },
      "message": "Implement name() and flags() in IMediaExtractor\n\nThese were always present in the interface, but not actually implemented.\nNow name and flags are passed through the Binder interface to the client.\nThe name() method was changed to String8 from \"const char *\" to avoid\nambiguity regarding who owns the string.\n\nBug: 143263164\nTest: manual\nChange-Id: I503d964b70f0affdedba23aa7da530164c14caf1\n"
    },
    {
      "commit": "79673cfb78356afb4bb531d5f6fe115ab41930cc",
      "tree": "82f9a497a3221f4043e4af36f19abd4ee00fbb96",
      "parents": [
        "c1a82b91f050f4b496b2d373046cb4c9fc32c8eb"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Sep 20 21:45:01 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 20 15:58:46 2019 +0000"
      },
      "message": "Implement DrmSessionManager w mediaresourcemanager\n\nBug: 134787536\nTest: DrmSessionManagerTest\nTest: DrmSessionManager_test\nTest: ResourceManagerService_test\nChange-Id: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\nMerged-In: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\n"
    },
    {
      "commit": "7291da64f5c19d4f9144014601bca58f7562ddef",
      "tree": "1ba21f95d03a85b24a699d39736d5c4bf481c2f7",
      "parents": [
        "94e872e6894dce7d89954d0515c140ec626d20ba"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 13:01:55 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 15:32:57 2019 -0800"
      },
      "message": "Remove header symlinks\n\nTest: build\nChange-Id: Ie90eb4fc0233ae6ee152a7bccb182a223b2ceff0\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": "630f74baaf5280a78350fa1ecb7283768a5c4bf9",
      "tree": "e20620e03a8ef5db88b55dfe70edfaa926ef6c43",
      "parents": [
        "643a5692fb1d1b7b0e2c90faa217816f7b524c51",
        "d17c85023ac2058233121b8a94603687c855c997"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "message": "Merge \"Add explicit private audio recording request\""
    },
    {
      "commit": "d17c85023ac2058233121b8a94603687c855c997",
      "tree": "39fc63d6f1037eafb71dc8046aefedfadfee9b53",
      "parents": [
        "d203cb92c9c9628b3bead45ec08f826544c1d649"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 24 15:58:35 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 04 17:58:34 2019 -0800"
      },
      "message": "Add explicit private audio recording request\n\nAdd the possibility for apps to indicate that their\ncapture use case is private and that a privileged Assistant\nshould not be able to capture concurrently.\nThis allows to override the default behavior tied to the audio\nsource (e.g VOICE_COMMUNICATION is private by default but\nUNPROCESSED is not).\n\n- Add AAudio API to set and get privacy sensitive mode on input stream\n- Add MediaRecorder API to set and get privacy sensitive mode\n- Modify AudioSource constructor to accept audio attributes instead of an\naudio source to specify the use case.\n- Modify audio policy concurrent capture logic to use audio attributes\nflag instead of audio source to decide of a capture client has\nrequested privacy mode or not.\n\nBug: 137850106\nTest: CTS AudioRecordTest and MediaRecorderTest, manual audio smoke tests\n\nChange-Id: I250ea5da4c1da809ceac0da22ae9bee15b937001\n"
    },
    {
      "commit": "8d7522888db87e9533b286431f59c7e0b804a514",
      "tree": "ee1a14f6ddd4dea80dac7945c356599cfb5c9628",
      "parents": [
        "020b0dc578cbc5779293e27311c23099996690e0"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Oct 18 15:49:48 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 17:41:16 2019 -0800"
      },
      "message": "Move libmediahelper into a new folder.\n\nThis change mainly aims at refactoring libmediahelper. Libmediahelper\ndoesn\u0027t need to be stored in media folder. In that case, move\nlibmediahelper related file to a new folder. In the meantime, move\nAudioParameter.h from libaudioclient to libmediahelper. There is no\nneed to keep AudioParameter.h in libaudioclient while AudioParameter.cpp\nis in libmediahelper.\n\nTest: make\nBug: 135621476\nChange-Id: Icce6615b7e3a68be8b7492f2a91922ab04464ca2\nMerged-In: Icce6615b7e3a68be8b7492f2a91922ab04464ca2\n"
    },
    {
      "commit": "d054bb721892704815137cfd3d49d9f224dec76a",
      "tree": "0674eee7d8aa55b8e8ccf672bb73fdfd0ab7dbde",
      "parents": [
        "15ccc647468f14ffedf5a6e5eda7290f0131f358",
        "e45ac608ee16361fa4246e38330262fbcc9e0078"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 20:50:55 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 02 20:50:55 2019 +0000"
      },
      "message": "Merge changes from topic \"ndk-binder\"\n\n* changes:\n  DrmSessionManager_test: remove ndk wrappers for IResourceManagerService\n  convert ResourceManager usage in MediaCodec to ndk aidl\n"
    },
    {
      "commit": "817fc5bbbec408d13bbfb23be1f22ea0e1d5d041",
      "tree": "6fcd085282bc0f21597817a16cc3f5b5d472d2a1",
      "parents": [
        "3717431b08a34499eacbc2663c6da19449db5941",
        "dab79b3d09783e5053dc91b860eac06bd415cbfd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Dec 02 17:47:24 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 02 17:47:24 2019 +0000"
      },
      "message": "Merge \"AIDLize MediaExtractorService\""
    },
    {
      "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": "3c4f15aee159bc97a1a551f4a7608eff76f2f703",
      "tree": "6201871204d5bf094979b67a80cf0d114bce51db",
      "parents": [
        "9350e40427202b21750a9ad9d631e2afb1638ad6",
        "16bcc29edb3dac99f85abfe47ea5e731fd977769"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 13:05:58 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 26 13:05:58 2019 -0800"
      },
      "message": "Merge changes from topics \"AddLibaudiofoundation\", \"stdContainers\"\nam: 16bcc29edb\n\nChange-Id: Idc024b9da351b6931482f51da09c0299aa214f22\n"
    },
    {
      "commit": "4562b3b99b5462bd475325bd19a6047c30ce282a",
      "tree": "2e6200fbf5d873e90bdf6f6ccf45ef0c7a871aa3",
      "parents": [
        "41502b244f6107ed57330eb447d8e29960b9cf4f"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Jul 29 10:13:34 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 11:41:08 2019 -0800"
      },
      "message": "Use standard containers for audio stuff in audio framework\n\n1. Add SampleRateSet, FormatSet, ChannelMaskSet, FormatVector\nusing std::vector and std::set in libaudiofoundation.\n2. Use SampleRateSet, FormatSet, ChannelMaskSet, FormatVector in\naudio framework.\n\nBug: 135621476\nTest: make, CTS for AudioRecord, AudioTrack, AudioManagerTest\nTest: play and record audio\nChange-Id: Ic04e637bcc6ba9df84c5e7561ec3c03f18a7d242\nMerged-In: Ic04e637bcc6ba9df84c5e7561ec3c03f18a7d242\n"
    },
    {
      "commit": "dab79b3d09783e5053dc91b860eac06bd415cbfd",
      "tree": "229183838216adea270164035e0544354f4bfb5b",
      "parents": [
        "68db3a07ae337de45b82c6e45d41c2c325f8e2dd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 18 08:25:47 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 21 14:15:00 2019 -0800"
      },
      "message": "AIDLize MediaExtractorService\n\nUse .aidl instead of handwritten binder code for MediaExtractorService.\n\nTest: build, CTS\n\nChange-Id: Ibc93eca9128552c23359218ac3bf12319391e1b1\n"
    },
    {
      "commit": "22a082cd73cc2708e232d9eaa8d59c6c8869f3b6",
      "tree": "d2b1431f03226b35473b65c895df20346342dedd",
      "parents": [
        "8aab9af295c7e4d9a503a3f11831e5b7e4d66a8a",
        "82ea6be9a7750feb6898b7146f286825e59c3e98"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Nov 20 20:16:42 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 20 20:16:42 2019 +0000"
      },
      "message": "Merge \"mediadrm: use stable C interface to record metrics\""
    },
    {
      "commit": "82fe8f2d3e800ef366a3c6c426c42c3345ebe226",
      "tree": "070537dc15b444eea7727e01a85ddb7c2413f012",
      "parents": [
        "aa10126610892c4bb21bee30c20f240ead80c00e",
        "bc0d257bbe16df642b8c75510e2d59665c46dfe4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 19 15:24:21 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 19 15:24:21 2019 -0800"
      },
      "message": "Merge \"Remove DrmInitialization from IDataSource\"\nam: bc0d257bbe\n\nChange-Id: I1423a52edff5d3abb2bdf82010263e4d0c71860d\n"
    },
    {
      "commit": "19b0be6e8b5ffe28215dc00e2c551be46483d0aa",
      "tree": "2bf28aa0a6f9667c0c92de2c3355302e163b0e24",
      "parents": [
        "0501baaa032a55226be40aeeb945dcebba635164"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 15 07:51:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 19 12:20:24 2019 -0800"
      },
      "message": "Remove DrmInitialization from IDataSource\n\nDrmInitialization only needs to be called on PlayerServiceFileSource\nand PlayerServiceMediaHTTP, so just have those initialize the forward\nlock engine automatically, which removes the need to have this in the\nIDataSource interface.\n\nTest: atest cts/tests/tests/drm/src/android/drm/cts/DRMTest.java\n\nChange-Id: I344f46b65b5c473930b16b9b4041e4897384dc18\nMerged-In: I344f46b65b5c473930b16b9b4041e4897384dc18\n"
    },
    {
      "commit": "f9656ff1f117830f2f3d3e24be354fa3a4db3ada",
      "tree": "b8958bc6b2700ebc86cb2afdd992a177c2c1ae23",
      "parents": [
        "7e5e530d39e3de6f904c8587b1c60bed631178c1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 15 07:51:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 15 11:18:27 2019 -0800"
      },
      "message": "Remove DrmInitialization from IDataSource\n\nDrmInitialization only needs to be called on PlayerServiceFileSource\nand PlayerServiceMediaHTTP, so just have those initialize the forward\nlock engine automatically, which removes the need to have this in the\nIDataSource interface.\n\nTest: atest cts/tests/tests/drm/src/android/drm/cts/DRMTest.java\n\nChange-Id: I344f46b65b5c473930b16b9b4041e4897384dc18\n"
    },
    {
      "commit": "82ea6be9a7750feb6898b7146f286825e59c3e98",
      "tree": "58363ced735ec917ade18a190a7eaa540643c135",
      "parents": [
        "b752850e1c8665aede7b56788568a9c82bfc047f"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 07 17:47:23 2019 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Nov 13 03:48:05 2019 +0000"
      },
      "message": "mediadrm: use stable C interface to record metrics\n\nBug: 134787536\nTest: dumpsys media.metrics\nChange-Id: I0156052334d0b52691cde82b71c5dc0f40d13fb5\n"
    },
    {
      "commit": "6fcb941084faecce31909f1c50ee1ba442244f8b",
      "tree": "d8904b383fd5d7e01c3c966c1c57c44266dbad18",
      "parents": [
        "22cd27bcc50b17ebb5104400cece4c34f1729930",
        "c499a089250910118da5a292794d0dc1c9053171"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Oct 30 14:30:59 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Oct 30 14:30:59 2019 -0700"
      },
      "message": "DO NOT MERGE - qt-qpr1-dev-plus-aosp-without-vendor@5915889 into stage-aosp-master\n\nBug: 142003500\nChange-Id: I0de886061b2d75f9c37e8edbd4e7e08225d0186b\n"
    },
    {
      "commit": "93db39b482ef18d6f384bb42cb8d09d89eb1e3a8",
      "tree": "24c2a9ecfac087c3c1f4c99d09ef977060433b8f",
      "parents": [
        "f65c700c2947c2e89b2b8ced10972fab29ae175d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 23 09:19:18 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 20:35:49 2019 +0000"
      },
      "message": "Move Visualizer to libaudioeffect_jni, its only user\n\nThis removes libaudioeffect_jni\u0027s dependency on libmedia and removes\nlibmedia\u0027s dependency on libaudioutils.\n\nTest: build\nChange-Id: Iabd4835f2d09e403ebed8b8ba2e42ac1fa86b044\nMerged-In: Iabd4835f2d09e403ebed8b8ba2e42ac1fa86b044\n"
    },
    {
      "commit": "ea08908d57c9af2be63c9ba2895eb049cc931218",
      "tree": "099a701fa42e4c24e53b1b0e939e1d85f781405b",
      "parents": [
        "bdb7b5d47aa2f3b26b892e2f2c5a4bae0bae0a39",
        "9917d4ab1b26c8770f3d0474849b43a26c0a1535"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 25 19:28:52 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 25 19:28:52 2019 +0000"
      },
      "message": "Merge \"Revert \"Revert \"media: remove IGraphicBufferSource.aidl\"\"\""
    },
    {
      "commit": "e98ca70430381ebd29e131a06c6ea972f33f07d2",
      "tree": "eb5d055be97dc521a4afaa792e7e96fa7824215d",
      "parents": [
        "1efbc0dc63cfe9e6713375ff3f0bec429c09060c",
        "fa287425b098298bd8c467a499f64f485c3fddc2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 04:40:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 25 04:40:47 2019 +0000"
      },
      "message": "Merge \"Move Visualizer to libaudioeffect_jni, its only user\""
    },
    {
      "commit": "9917d4ab1b26c8770f3d0474849b43a26c0a1535",
      "tree": "bc86756a2379a2ac027196513e7e51426b7a146e",
      "parents": [
        "08c3c988eee1391458ccf1adbb5d0f60c7718f8e"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 24 12:56:38 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 24 12:56:38 2019 -0700"
      },
      "message": "Revert \"Revert \"media: remove IGraphicBufferSource.aidl\"\"\n\nBug: 136290435\nBug: 143248118\nTest: atest CtsMediaTestCases:MediaRecorderTest\nTest: atest CtsCameraTestCases:RecordingTest\nTest: m checkbuild\nThis reverts commit 47eaa194717c944098c499061b662c36191bc656.\n\nChange-Id: I0bf3822336e51764d41a6f27c677d19e478af760\n"
    },
    {
      "commit": "fa287425b098298bd8c467a499f64f485c3fddc2",
      "tree": "08cc96c92632a6da19214463257301cc08b2aa3f",
      "parents": [
        "160cb9bef515f0554569b3f7901332b93c5b97f5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 23 09:19:18 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 24 10:14:11 2019 -0700"
      },
      "message": "Move Visualizer to libaudioeffect_jni, its only user\n\nThis removes libaudioeffect_jni\u0027s dependency on libmedia and removes\nlibmedia\u0027s dependency on libaudioutils.\n\nTest: build\nChange-Id: Iabd4835f2d09e403ebed8b8ba2e42ac1fa86b044\n"
    },
    {
      "commit": "08c3c988eee1391458ccf1adbb5d0f60c7718f8e",
      "tree": "9e11a77c1b0d6c3ef971bfff961c1779ca20bfad",
      "parents": [
        "5e1eb2bea945c3cf9ea5a966ee3c15b2016b6ee6",
        "47eaa194717c944098c499061b662c36191bc656"
      ],
      "author": {
        "name": "Bill Napier",
        "email": "napier@google.com",
        "time": "Thu Oct 24 06:14:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 24 06:14:48 2019 +0000"
      },
      "message": "Merge \"Revert \"media: remove IGraphicBufferSource.aidl\"\""
    },
    {
      "commit": "47eaa194717c944098c499061b662c36191bc656",
      "tree": "47ac7c20106ddc9471a2d21adc48874a5d8b001c",
      "parents": [
        "2f6a4b8345d66c54cffa67295f682a5b8ad57848"
      ],
      "author": {
        "name": "Winson Chiu",
        "email": "chiuwinson@google.com",
        "time": "Thu Oct 24 01:14:51 2019 +0000"
      },
      "committer": {
        "name": "Winson Chiu",
        "email": "chiuwinson@google.com",
        "time": "Thu Oct 24 01:14:51 2019 +0000"
      },
      "message": "Revert \"media: remove IGraphicBufferSource.aidl\"\n\nThis reverts commit 2f6a4b8345d66c54cffa67295f682a5b8ad57848.\n\nReason for revert: broken build b/143248118\n\nChange-Id: I1d81103a6992f98264d9afeaa055cab500f0c0b3\n"
    },
    {
      "commit": "3d088e7a7e1948cbcf7a21a1612362b2177808cf",
      "tree": "6897175c5df79e82e9aeb95c7e12e71d5cda3764",
      "parents": [
        "a73f0a53033e03cc66d132aa521cc15524a976ea",
        "2f6a4b8345d66c54cffa67295f682a5b8ad57848"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Oct 23 23:51:43 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 23 23:51:43 2019 +0000"
      },
      "message": "Merge \"media: remove IGraphicBufferSource.aidl\""
    },
    {
      "commit": "c6fe9c424669d640d8bbe0fc7e130a34bab0b4bd",
      "tree": "d821b66cd687346e0d15f6707f8f546c64ccca68",
      "parents": [
        "a987db923b070148ebd42cb4a502f05702630d33",
        "bbb382312e7c8b78dc007ab6ed3020b69346dae4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 23 23:14:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 23 23:14:39 2019 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Move libmediahelper into a new folder.\"\"\""
    },
    {
      "commit": "bbb382312e7c8b78dc007ab6ed3020b69346dae4",
      "tree": "e6ab4705e0b5e4afe880a178f3b44259e5ab9442",
      "parents": [
        "a0877dc731067dd95635b2be3e893f1fe60bf3a1"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Oct 23 21:02:41 2019 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Oct 23 21:02:41 2019 +0000"
      },
      "message": "Revert \"Revert \"Move libmediahelper into a new folder.\"\"\n\nThis reverts commit a0877dc731067dd95635b2be3e893f1fe60bf3a1.\n\nReason for revert: Should work with go/pag/1465463 merging to master.\n\nChange-Id: I17217744eacabf15621d4a5aac9dd1678e37e4ba\n"
    },
    {
      "commit": "2f6a4b8345d66c54cffa67295f682a5b8ad57848",
      "tree": "59da023b9d360b8853ee3d0e30e807982aad5f3c",
      "parents": [
        "5871ab512193274898baca9a4efa734392019ebf"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Oct 22 09:43:39 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Oct 23 12:41:39 2019 -0700"
      },
      "message": "media: remove IGraphicBufferSource.aidl\n\nBug: 136290435\nTest: atest CtsMediaTestCases:MediaRecorderTest \\\n      atest CtsCameraTestCases:RecordingTest\n\nChange-Id: Id159fa99e69760006e80ef6c506b9c890c39997c\n"
    },
    {
      "commit": "81916e150800304153d82b98344dad09d680997a",
      "tree": "7213b3a5b37b46e634850c02a47a6bffef789b2b",
      "parents": [
        "160cb9bef515f0554569b3f7901332b93c5b97f5",
        "63e2c52d1430eb180d3f9c99e7ac8459d3580e90"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 23 19:32:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 23 19:32:05 2019 +0000"
      },
      "message": "Merge \"Move LinearMap from libmedia to audio_utils.\""
    },
    {
      "commit": "9d156bc0946afb725393e263aebf5bf1d1646d9d",
      "tree": "1978749f34abcdf880e0b381b62c90f52da8b1ca",
      "parents": [
        "0562c91f1546865a115e9cfb029b1bf39bdb3879",
        "a0877dc731067dd95635b2be3e893f1fe60bf3a1"
      ],
      "author": {
        "name": "Mohammad Samiul Islam",
        "email": "samiul@google.com",
        "time": "Wed Oct 23 16:24:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 23 16:24:21 2019 +0000"
      },
      "message": "Merge \"Revert \"Move libmediahelper into a new folder.\"\""
    },
    {
      "commit": "a0877dc731067dd95635b2be3e893f1fe60bf3a1",
      "tree": "eceafbd995bb43bfcd277bcd421df42e099cbc6e",
      "parents": [
        "c8888660b53647ef1a9608493ab1a5dc93ba9b0d"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Oct 23 16:05:56 2019 +0000"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Oct 23 16:05:56 2019 +0000"
      },
      "message": "Revert \"Move libmediahelper into a new folder.\"\n\nThis reverts commit c8888660b53647ef1a9608493ab1a5dc93ba9b0d.\n\nReason for revert: Broke elfin build\n\nChange-Id: Idfd67b064b28abf32da332149bdce212249345d8\n"
    },
    {
      "commit": "31ee1db17f3f12160ff258b9a44b92272ac7adaa",
      "tree": "3111400d9d8598c1954d97551d6fc6502df093af",
      "parents": [
        "35f148bc5a1cb1efffd9aee0223a06720a303329"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 22 13:42:38 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 23 07:58:24 2019 -0700"
      },
      "message": "Move MediaDeviceInfo to libamidi, its only user\n\nTest: build\nChange-Id: Iaa3d0bff7e03cb122f525f9cf986f6e17e7978ea\nMerged-In: Iaa3d0bff7e03cb122f525f9cf986f6e17e7978ea\n"
    },
    {
      "commit": "0562c91f1546865a115e9cfb029b1bf39bdb3879",
      "tree": "6a539308b8058e20657e13516cb6d3e5223e0561",
      "parents": [
        "199445d17d37f1e820efb7ae309bee1545288a3c",
        "e9f6c3d54ca462eec3c20df38685b6b9bb920ca1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 23 14:48:14 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 23 14:48:14 2019 +0000"
      },
      "message": "Merge \"Move MediaDeviceInfo to libamidi, its only user\""
    },
    {
      "commit": "c8888660b53647ef1a9608493ab1a5dc93ba9b0d",
      "tree": "e6ab4705e0b5e4afe880a178f3b44259e5ab9442",
      "parents": [
        "f6581aaac9469864be4bd915bca0c1ae9f37d55d"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Oct 18 15:49:48 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 22 17:20:54 2019 -0700"
      },
      "message": "Move libmediahelper into a new folder.\n\nThis change mainly aims at refactoring libmediahelper. Libmediahelper\ndoesn\u0027t need to be stored in media folder. In that case, move\nlibmediahelper related file to a new folder. In the meantime, move\nAudioParameter.h from libaudioclient to libmediahelper. There is no\nneed to keep AudioParameter.h in libaudioclient while AudioParameter.cpp\nis in libmediahelper.\n\nTest: make\nBug: 135621476\nChange-Id: Icce6615b7e3a68be8b7492f2a91922ab04464ca2\n"
    },
    {
      "commit": "63e2c52d1430eb180d3f9c99e7ac8459d3580e90",
      "tree": "bf6684e2cb0741509cf1e2a06569bcb65c8f48df",
      "parents": [
        "f6581aaac9469864be4bd915bca0c1ae9f37d55d"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 22 16:48:20 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 22 17:10:30 2019 -0700"
      },
      "message": "Move LinearMap from libmedia to audio_utils.\n\nLinearMap It is only used in AudioFlinger to associate track frames\nto sink frames. It is not related to media stuff. In that case, move\nit to audio_utils.\n\nTest: make\nChange-Id: I947e1cb61bd6e66d5fd53b4f7d0a8e1c5876cbf4\n"
    },
    {
      "commit": "e9f6c3d54ca462eec3c20df38685b6b9bb920ca1",
      "tree": "0d79af25c6e3ff2f861805b8d8c872edfe5f4ea1",
      "parents": [
        "e2d53408222d3b06462073b9447529c781be6419"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 22 13:42:38 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 22 13:42:38 2019 -0700"
      },
      "message": "Move MediaDeviceInfo to libamidi, its only user\n\nTest: build\nChange-Id: Iaa3d0bff7e03cb122f525f9cf986f6e17e7978ea\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": "1e7d2e99ede705191560d35a376d529822344b29",
      "tree": "3a2d995b2fd85d75445d9182630e413d6b5b78c8",
      "parents": [
        "e2a67de73c5fce9c809b4012ec81cd274ebbd91e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 17 08:54:12 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 17 21:33:22 2019 +0000"
      },
      "message": "Move JetPlayer to JNI\n\nJetPlayer.cpp was only used by the JetPlayer JNI code, so move\nit to the same library.\n\nTest: atest JetPlayerTest\nChange-Id: I14b8241c5eb6c789ebc5d6725db716b9b0f8f31f\nMerged-In: I14b8241c5eb6c789ebc5d6725db716b9b0f8f31f\n"
    },
    {
      "commit": "71124db6de8b9839f71fe60830524c52b7c4b645",
      "tree": "bee3c1bb702f3d4bfe53a34cda7d6058ca99a7b2",
      "parents": [
        "05350c4d1acfa9fb348e3a99f083553a642975b5",
        "a33446ada9ae8d05e64580e900421f03a58b96f8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 17 21:32:28 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 17 21:32:28 2019 +0000"
      },
      "message": "Merge \"Move JetPlayer to JNI\""
    },
    {
      "commit": "a33446ada9ae8d05e64580e900421f03a58b96f8",
      "tree": "2d54b5a4122945e2a7ea6987e841e3343edef50b",
      "parents": [
        "2c0e663dae993c142aad388a6f7a71ebf78c7616"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 17 08:54:12 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 17 10:32:11 2019 -0700"
      },
      "message": "Move JetPlayer to JNI\n\nJetPlayer.cpp was only used by the JetPlayer JNI code, so move\nit to the same library.\n\nTest: atest JetPlayerTest\nChange-Id: I14b8241c5eb6c789ebc5d6725db716b9b0f8f31f\n"
    },
    {
      "commit": "c3af31b8f1a7bac5d3e3c953702c8faec3cd55e3",
      "tree": "30533ca112d60914f2c23acda83394275b97ea25",
      "parents": [
        "32706253ce90531c94b5f2af7caacb443eb09d8c"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Sep 20 21:45:01 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Oct 04 22:05:40 2019 -0700"
      },
      "message": "Implement DrmSessionManager w mediaresourcemanager\n\nBug: 134787536\nTest: DrmSessionManagerTest\nTest: DrmSessionManager_test\nTest: ResourceManagerService_test\nChange-Id: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\n"
    },
    {
      "commit": "71031a89896be183f74a9747c91f7a764c3dfb65",
      "tree": "8fa33aeeda6d151228fb575e79e7778608aa61b9",
      "parents": [
        "52a42dde3627544fabc6691afcc67df73ed6b5e7"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 10:54:35 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 12:57:25 2019 -0700"
      },
      "message": "Remove more remnants of MediaPlayer2\n\nBug: 141546997\nTest: build\n\nChange-Id: Iaa4d9e4205f78d4b4d465b4f128a28a419ff603b\nMerged-In: Iaa4d9e4205f78d4b4d465b4f128a28a419ff603b\n"
    },
    {
      "commit": "273fd3699237ab002d2e0f9f03dbc2ae8c3a3ae8",
      "tree": "cfeffeb747b3e99dfba76fd76051a522a555b50c",
      "parents": [
        "fb1fb155f9ec3a05ffa9e49f9415b565dcf8c163"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 10:54:35 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 11:45:43 2019 -0700"
      },
      "message": "Remove more remnants of MediaPlayer2\n\nBug: 141546997\nTest: build\n\nChange-Id: Iaa4d9e4205f78d4b4d465b4f128a28a419ff603b\n"
    },
    {
      "commit": "99a2c4a2c49f5d32d9ba79585890b5fa7ed52f2a",
      "tree": "c4b3ad327d441c728334593b733c29c39e826d6e",
      "parents": [
        "8eb9e24ea239a05c767ac15f5d25d5b6c56aa8be",
        "b4e0c3b19f11e972c9b789550c4e321cf26fa1c8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 02 14:59:40 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 02 14:59:40 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\nam: b4e0c3b19f\n\nChange-Id: Ib2ecb92e4a07385f201b884f15b8143c9c4c2c02\n"
    },
    {
      "commit": "b4e0c3b19f11e972c9b789550c4e321cf26fa1c8",
      "tree": "0b8ca8cb36cba24e658232e5fa0b286d75318995",
      "parents": [
        "bcc132d8e562375f7830839caf84307f523f623d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 02 19:54:39 2019 +0000"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\nMerged-In: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "55b259cf5ec16df77b52206e8209f5df2fc214c5",
      "tree": "29989150d2cfb026f11ec5d43edb8116442e7311",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 01 13:43:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\nMerged-In: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "13aa1a4b6630a05fc3e48824b911009ecbb33284",
      "tree": "506fa3026d84685c2621157b9b668155c31ae0ec",
      "parents": [
        "e3cdab3c40cb71284a0e186d7d5a82257e7d34a1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 14:04:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "21bbf7d12f74ada28f5b73f3a5bded613df8c609",
      "tree": "49d9e063daf683dc44aadd75efb2a3f9aa637af4",
      "parents": [
        "1167ff999c6a7451e7a328242b3148947cc918ee",
        "0360e714b86ceb1764f888389780d8bee7eec700"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 15:20:59 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 27 15:20:59 2019 -0700"
      },
      "message": "Merge \"Remove symlinks from include dir\" am: 5158f491c6 am: 5582a7360a\nam: 0360e714b8\n\nChange-Id: I74d8495c913ad46396294390b49e9828653fab99\n"
    },
    {
      "commit": "3230ed8235a39adef82d7c3873e6a87007799ff8",
      "tree": "158042769963aa698a8fbd240d2abfc352220c3d",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 12:12:46 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\nMerged-In: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "cf90b4931734e42c6092318991f213b76d7e849e",
      "tree": "3c0c685cb75bbdc37172d24113f6c0dbcbf3dfb4",
      "parents": [
        "d2dc18b063c548d9646dd1127fea97ccebdba079"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 09:02:30 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "920c850f898ae38d488eee7484c46d13f0faa7bd",
      "tree": "54e1456ebe83d83c8d4cfb504bc1b1ef187da9dd",
      "parents": [
        "4811014a958f7cf233b8284fb4a422990c7a3549",
        "50f1e17dbe57177a90cdbf6be76b50f7c109012d"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 20 17:53:06 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 20 17:53:06 2019 -0700"
      },
      "message": "Add support for combining and remove individual resource am: fb092d3b72\nam: 50f1e17dbe\n\nChange-Id: Id428c9f8c4bc8afc91e0ef69832ac6927358837a\n"
    },
    {
      "commit": "50f1e17dbe57177a90cdbf6be76b50f7c109012d",
      "tree": "322a61be7e0ef2cd0b75a02ece0ce6565ac7363b",
      "parents": [
        "93f1e3b3ed255d8ccf0e6815653ca8ec46fa58f9",
        "fb092d3b720923efaf0f9d4f4c16c57da6d657ac"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 20 17:43:06 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 20 17:43:06 2019 -0700"
      },
      "message": "Add support for combining and remove individual resource\nam: fb092d3b72\n\nChange-Id: I8f64a4f1e9f4aa5279d8a7a4cd45a69bd7f16e22\n"
    },
    {
      "commit": "93f1e3b3ed255d8ccf0e6815653ca8ec46fa58f9",
      "tree": "88f7e80d26a7f67ae58d3331c51138c96e169d09",
      "parents": [
        "25259b25f3a6b90ac5c6cf84432575a826bda809",
        "57eeeb00319e8f3c01d547bd0f4b5fc55338326b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 20 16:26:09 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 20 16:26:09 2019 -0700"
      },
      "message": "Merge \"Report video battery on/off from mediaserver\" into qt-qpr1-dev\nam: 57eeeb0031\n\nChange-Id: I72316cc05a0302095ad623f96a6a6d8aad9e968e\n"
    },
    {
      "commit": "fb092d3b720923efaf0f9d4f4c16c57da6d657ac",
      "tree": "c19f0a91dfe61a1e12a64cd9a2531f8af9872315",
      "parents": [
        "57eeeb00319e8f3c01d547bd0f4b5fc55338326b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 12 09:45:44 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 20 22:55:11 2019 +0000"
      },
      "message": "Add support for combining and remove individual resource\n\n- Fix ResourceManagerSerivce handling of adding same-type\nresource in multiple calls, combine entries with the same\n\u003ctype, subtype\u003e. This is not required in existing usage,\nbug could be required if we allow same type to be added\nincrementally (eg. memory usage).\n\n- Add api for removing some resources. Currently we can\nadd resources in multiple calls, but removeResource always\nremove all resources of that client. We need this to toggle\nbattery stat On/Off based on actual usage of the codec.\n\n- Add unit tests for the above.\n\nbug: 138381810\ntest: ResourceManagerService_test; CTS ResourceManangerTest.\n\nChange-Id: Icdba6c6b4c517755291668c52764169aac3071ea\n"
    },
    {
      "commit": "ee33d64bf82f3781ab826863f69d089d0a7400da",
      "tree": "0627c7b51438b3cbd882400331928646ad11dc5b",
      "parents": [
        "5f55524296edd32a00e848febff99b2849cef015"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Aug 08 14:26:43 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 14 17:13:24 2019 -0700"
      },
      "message": "Report video battery on/off from mediaserver\n\n    We can\u0027t track video stats accurately if it\u0027s reported from\n    app side MediaCodec. If the app dies, video stats get stuck\n    in On state forever. This can be easily triggered by forcefully\n    kill and app that uses MediaCodec from app side (instead of\n    through mediaserver\u0027s Recorder or Player service), eg.\n    launch GoogleCamera app and switch to Video tab, and kill it\n    from adb shell.\n\n    In order to track MediaCodec usage from apps we need to move\n    the battery stats reporting from MediaCodec into ResourceManager.\n\nbug: 138381810\ntest:\n1. test if app uses MediaCodec directly and it dies off, the video\n   off is received: launch GoogleCamera app, swipe to Video tab,\n   \"dumpsys batterystats --history\" and see +video; now adb shell\n   kill GoogleCamera, dumpsys should show -video.\n2. test app that uses MediaCodec through mediaserver: use Chrome\n   (which uses MediaPlayer) to play some website with video, kills\n   Chrome from adb shell, and check -video is received.\n   In anycase it shouldn\u0027t stuck in On state.\n3. ResourceManagerService_test\n\nChange-Id: I164b31681c4e72e8cce02342641dbec14b8df374\n(cherry picked from commit 47db2ff19c3ceb2d3b39ff9315a463984e55dec1)\n"
    },
    {
      "commit": "c6c78b6cb224a7985c61d47c6b3c2e39180831c3",
      "tree": "1db168b81debf2730a748470d146500df4e93590",
      "parents": [
        "4e00f928aee8a10d2c62920d21ade19aec14d343",
        "7075dc6a21f7439d6d3189b32a88f1adf7f87ed6"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 14 10:42:40 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 14 10:42:40 2019 -0700"
      },
      "message": "Merge \"Move ExtendedAudioBufferProvider and SingleStateQueue\" am: 2a70a39f4c am: 72d2412c27 am: 1cae73f318 am: 5fdaa0f7d2\nam: 7075dc6a21\n\nChange-Id: I2b775d9274b8d0e0e5419c5e945a67a089bb8149\n"
    },
    {
      "commit": "72d2412c271237aa6dfa2a75c41c8c0f69999b34",
      "tree": "5a4e3e6534daafd5c8bdf61be5cacfb21d73c084",
      "parents": [
        "5369de1fd662aa373cbbf4cf5368c66da74d51db",
        "2a70a39f4c88c531be1a7087e6b241532ee0024d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 14 10:14:49 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 14 10:14:49 2019 -0700"
      },
      "message": "Merge \"Move ExtendedAudioBufferProvider and SingleStateQueue\"\nam: 2a70a39f4c\n\nChange-Id: I993318e2a9a5bba3aa65ee8319d80bebb537df50\n"
    },
    {
      "commit": "72e9b14d858b5850109b13d5e273c2d675040383",
      "tree": "64246320ef987627a9b0f7dd164e9cc649549ab2",
      "parents": [
        "50166f1b76c1243c8e70d16a4b04cd8465a03168",
        "47db2ff19c3ceb2d3b39ff9315a463984e55dec1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 12 20:45:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 20:45:00 2019 +0000"
      },
      "message": "Merge \"Report video battery on/off from mediaserver\""
    },
    {
      "commit": "9f3c02d15167b98b9208687e7e30e07149efbf2d",
      "tree": "60cb2b95b2a1eb630697b5014a05713e4c899366",
      "parents": [
        "646a332acfc525e94e6c1898544201052efa4fc8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 12 11:36:05 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 12 11:47:19 2019 -0700"
      },
      "message": "Move ExtendedAudioBufferProvider and SingleStateQueue\n\nMove ExtendedAudioBufferProvider.h to libaudioclient. This is\na more appropriate location because EABP extends AudioBufferProvider.\n\nMove SingleStateQueue.h to libnbaio_mono. This is a more appropriate\nlocation because SSQ is a non-blocking queue.\n\nThis allows to remove the dependency of libnbaio on libmedia\nwhich is a good thing because libnbaio provides more low-level\nabstractions than libmedia.\n\nAlso, replace a dependency of libnbaio on libbinder with\na dependency on libaudiohal header library.\n\nTest: make\nChange-Id: Ie48b523790cd8230695ec2e4710e50981b616289\n"
    },
    {
      "commit": "47db2ff19c3ceb2d3b39ff9315a463984e55dec1",
      "tree": "8bd25eea554151e9c89bc8c7a3d742637d89f7a6",
      "parents": [
        "28355761d73f1495bba8994dc3c0dc631ae245a8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Aug 08 14:26:43 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 12 11:13:21 2019 -0700"
      },
      "message": "Report video battery on/off from mediaserver\n\n    We can\u0027t track video stats accurately if it\u0027s reported from\n    app side MediaCodec. If the app dies, video stats get stuck\n    in On state forever. This can be easily triggered by forcefully\n    kill and app that uses MediaCodec from app side (instead of\n    through mediaserver\u0027s Recorder or Player service), eg.\n    launch GoogleCamera app and switch to Video tab, and kill it\n    from adb shell.\n\n    In order to track MediaCodec usage from apps we need to move\n    the battery stats reporting from MediaCodec into ResourceManager.\n\nbug: 138381810\ntest:\n1. test if app uses MediaCodec directly and it dies off, the video\n   off is received: launch GoogleCamera app, swipe to Video tab,\n   \"dumpsys batterystats --history\" and see +video; now adb shell\n   kill GoogleCamera, dumpsys should show -video.\n2. test app that uses MediaCodec through mediaserver: use Chrome\n   (which uses MediaPlayer) to play some website with video, kills\n   Chrome from adb shell, and check -video is received.\n   In anycase it shouldn\u0027t stuck in On state.\n3. ResourceManagerService_test\n\nChange-Id: I164b31681c4e72e8cce02342641dbec14b8df374\n"
    },
    {
      "commit": "50166f1b76c1243c8e70d16a4b04cd8465a03168",
      "tree": "01194f0af6069b7abd745f83e8a3f3891c501410",
      "parents": [
        "818244df7fe0f526a1029da1e2c21f212e58149d",
        "b5d463372d508cad4ab3ce3a219a4e666793c45b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Aug 10 03:49:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 10 03:49:49 2019 +0000"
      },
      "message": "Merge \"Revert \"Report video battery on/off from mediaserver\"\""
    },
    {
      "commit": "b5d463372d508cad4ab3ce3a219a4e666793c45b",
      "tree": "6918e584833186110516c89fb5953c348ce09e56",
      "parents": [
        "72f212b79bbd1a9e6b341fe7ddf787690408e5a3"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Aug 10 03:47:55 2019 +0000"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Aug 10 03:47:55 2019 +0000"
      },
      "message": "Revert \"Report video battery on/off from mediaserver\"\n\nThis reverts commit 72f212b79bbd1a9e6b341fe7ddf787690408e5a3.\n\nReason for revert: broke a test build\n\nChange-Id: I3c5e993ebc81c4ee73f0d4c2a9b47954ca85cab0\n"
    },
    {
      "commit": "818244df7fe0f526a1029da1e2c21f212e58149d",
      "tree": "5d219179e30e9a1514722936ded2a563b83499f3",
      "parents": [
        "f1100e3e64cc9aa1934fd8e4625a9a0e85365ba9",
        "72f212b79bbd1a9e6b341fe7ddf787690408e5a3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 10 00:06:28 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 10 00:06:28 2019 +0000"
      },
      "message": "Merge \"Report video battery on/off from mediaserver\""
    },
    {
      "commit": "72f212b79bbd1a9e6b341fe7ddf787690408e5a3",
      "tree": "d60e69e1f59d1e62360dde53bf42bd06df0fc9b8",
      "parents": [
        "28355761d73f1495bba8994dc3c0dc631ae245a8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Aug 08 14:26:43 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Aug 08 15:55:10 2019 -0700"
      },
      "message": "Report video battery on/off from mediaserver\n\n    We can\u0027t track video stats accurately if it\u0027s reported from\n    app side MediaCodec. If the app dies, video stats get stuck\n    in On state forever. This can be easily triggered by forcefully\n    kill and app that uses MediaCodec from app side (instead of\n    through mediaserver\u0027s Recorder or Player service), eg.\n    launch GoogleCamera app and switch to Video tab, and kill it\n    from adb shell.\n\n    In order to track MediaCodec usage from apps we need to move\n    the battery stats reporting from MediaCodec into ResourceManager.\n\nbug: 138381810\ntest:\n1. test if app uses MediaCodec directly and it dies off, the video\n   off is received: launch GoogleCamera app, swipe to Video tab,\n   \"dumpsys batterystats --history\" and see +video; now adb shell\n   kill GoogleCamera, dumpsys should show -video.\n2. test app that uses MediaCodec through mediaserver: use Chrome\n   (which uses MediaPlayer) to play some website with video, kills\n   Chrome from adb shell, and check -video is received.\n   In anycase it shouldn\u0027t stuck in On state.\n\nChange-Id: I0ee02b498bee38979353256711aa50c862494b97\n"
    },
    {
      "commit": "06e4bab5451f1594d6843fc3af698bf8b4c1047e",
      "tree": "2eeec151cc1285a8707bfcaf73582fee9ffc69dd",
      "parents": [
        "433e8a2730ce7280beb2ce49f42f41f9401ad6e4"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Jul 29 10:13:34 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 07 14:36:18 2019 -0700"
      },
      "message": "Use standard containers for audio stuff in audio framework\n\n1. Add SampleRateSet, FormatSet, ChannelMaskSet, FormatVector\nusing std::vector and std::set in libaudiofoundation.\n2. Use SampleRateSet, FormatSet, ChannelMaskSet, FormatVector in\naudio framework.\n\nBug: 135621476\nTest: make, CTS for AudioRecord, AudioTrack, AudioManagerTest\nTest: play and record audio\nChange-Id: Ic04e637bcc6ba9df84c5e7561ec3c03f18a7d242\n"
    },
    {
      "commit": "32925cc4374ba577f7b5d38867b11db1a582b967",
      "tree": "52c652b0c4b22b18dfdff953157ee5ef4cd5545a",
      "parents": [
        "2687b89978140e096f958fb37df53d65eecb9aaf"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 29 15:00:21 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 29 20:47:46 2019 -0700"
      },
      "message": "Move AudioMixer.h and BufferProviders.h into correct location\n\nThe implementation files are in libaudioprocessing,\nthus the header files also belong there.\n\nTest: make\nChange-Id: I78ba4ed480413c0a1b871e80971ef5ce1d0c6755\n"
    },
    {
      "commit": "76a49d617cd817d5be4618757e8d8400aeaad8c9",
      "tree": "360bd0ba999213cf9463c6613d155eb4e57d8f12",
      "parents": [
        "175c7b7e4d9450e017e4453b97cb836da199db67"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jul 12 11:20:33 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jul 12 20:01:55 2019 +0000"
      },
      "message": "Reuse frame decoder for sequential frame retrievel\n\nAllow sequential frame retrieval to reuse the decoder without\nre-init and re-seek.\n\nGet rid of IMediaMetadataRetriever api that retrieves multiple\nframes at a time, this method could hold up more memory than\nwhat\u0027s needed, because the client side has to copy the frames\nto a separate set of bitmaps anyways.\n\nThis change is needed to support animation Drawbles efficiently\nwhich typically get one frame at a time.\n\nbug: 120414514\ntest: cts MediaMetadataRetrieverTest, local tests that tests MetadataRetriever thumbnails\n\nChange-Id: I09924408b51bc7491fc5dee121dce9a286c5911f\n"
    },
    {
      "commit": "33d60a5f0c4249cf8350bc61d16d11b7a6d09c85",
      "tree": "84bdbed720b303c1a614aed2d75fd08bb2c6c5a5",
      "parents": [
        "f5ec24e8df7e61ff0bbc8b9f86b7e24c3a3d29e9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 12 13:45:01 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 12 13:45:01 2019 -0700"
      },
      "message": "avoid crash in emptyBuffer when input buffer handle is invalid\n\nTry to fail with error instead of crashing when the input buffer\nhandle to TWOmxNode::emptyBuffer is invalid. Save an unnecessary\nhandle clone, and let the convertTo to GraphicBuffer do the clone.\nIf the clone fails, return with error.\n\nbug: 133254412\ntest: atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small\n    Change-Id: I6abb5526d8df1e57b70c96f5b32d132e4a5de389\n\nChange-Id: If5ca8fae449a3cdf790c967add3713ad73369f03\n"
    },
    {
      "commit": "a503326e7af89f27c2e65c2c4447e8105547274a",
      "tree": "ba7832aa20f336536c1c0006f3fda4c65dc2a2e7",
      "parents": [
        "3aa95defac2624f05130927ea3e3f5a56ea617e5"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon May 06 14:15:12 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon May 06 20:19:42 2019 -0700"
      },
      "message": "DrmHal: add key status usable_in_future\n\nBug:116738851\nTest: DrmMetrics_test\nChange-Id: Ifdd63ce94d3e145840b155a982612ba980cc456d\n"
    },
    {
      "commit": "0e4c08eb08e39138993cde40c986b569ce595ad1",
      "tree": "a815167e1782fe06f13d911ba0b6aa11248bd209",
      "parents": [
        "ab09f6e62122eb6d09a4013cf54de3a2d2805873"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 19 10:00:45 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 30 14:38:55 2019 -0700"
      },
      "message": "build core bufferqueue functionalities into bqhelper\n\nStatically build the bufferqueue logic from libgui into\nlibstagefright_bufferqueue_helper, so that we don\u0027t need\nto link to the entire libgui.\n\nIn updateable codecs, the dependencies (except llndk) are\ncopied onto the apex, and loaded into a separate namespace\nat runtime. Trimming down unused dependencies help on both\nstorage and runtime memory footprint.\n\nbug: 128894663\n\nChange-Id: I2f696aa85143f74f753fbb0320dce5aee88846c4\n"
    },
    {
      "commit": "393f0e05e3fa7351c81a470e5bd841451bcc13ae",
      "tree": "47d865b1e143a717167b2fff0dd6da2e30b3966b",
      "parents": [
        "698d353587d6d0563a6451b2d701358e6cb4496e"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Apr 10 09:09:08 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 10 12:30:39 2019 -0700"
      },
      "message": "audiopolicy: fix attributes match helper function\n\nRegression caught on Attributes referred by their flags only\n(like BT SCO).\nClient may have more flags than the product strategy, checks\nto be done on all the flags of the product strategy are requested\nby the client.\n\nBug: 130284799\nTest: make\n\nChange-Id: Ie8d41a592342bc0a7a0326f9766e7e7503154e62\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "0fe4c4795015357290b098715f6d3cd17cf554df",
      "tree": "cb9fb49616e0ff7890359f7eefb6563d25426934",
      "parents": [
        "8d14f5ccff2440f39630965486e9601ab6d007b6"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 08 21:51:46 2019 +0000"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 08 14:56:30 2019 -0700"
      },
      "message": "Revert \"Revert \"Remove direct libgui reference from omx server side\"\"\n\nThis reverts commit b4979c59d93a6ca2be7e65489fc39896bfdc2c96.\n\nReason for revert: reland with fixes:\n1) make OMXHarness use OMXClient, not directly IOMX wrappers.\n2) fix ref of consumer listener interface in GraphicBufferSource.\n\nbug: 129272021\nTest: camera recording, aosp_x86 build\n\nChange-Id: Idaaaf412c65cbe89c95a2cb54f3833ff1fc4c304\n"
    },
    {
      "commit": "b4979c59d93a6ca2be7e65489fc39896bfdc2c96",
      "tree": "3da5a8d97ee8f37f4f480ad80104b6f77d3bcd87",
      "parents": [
        "482f60ccccc12e6afe24f9ba503496ce65d1ba43"
      ],
      "author": {
        "name": "Sung-fang Tsai",
        "email": "sungfang@google.com",
        "time": "Sun Apr 07 00:29:22 2019 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Apr 08 10:32:03 2019 +0000"
      },
      "message": "Revert \"Remove direct libgui reference from omx server side\"\n\nThis reverts commit 482f60ccccc12e6afe24f9ba503496ce65d1ba43.\n\nReason for revert: b/130058749 camera recording hang\n\nBug: 130058749\nChange-Id: I358bc9c62c48328c01c8611c7e6f77d16affff54\n"
    },
    {
      "commit": "482f60ccccc12e6afe24f9ba503496ce65d1ba43",
      "tree": "90e04135449e80434f0b399d0e33d91bfce1de20",
      "parents": [
        "6e38e1a2b74bd2ed304080b1dca1f77b1053dada"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Mar 21 16:41:28 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 05 18:12:10 2019 +0000"
      },
      "message": "Remove direct libgui reference from omx server side\n\n- Make mediacodec service/libstagefright_omx not dependent\non libgui. Server should only reference bqhelper (which\ncurrently still have a dependency on libgui, but could be\nremoved later as it\u0027s only used internally).\n\n- Make libmedia_omx not dependent on libgui by moving the\nIOMX wrapper code into a separately that\u0027s only used by\nthe platform.\n\n- Move ConsumerListener references in GraphicBufferSource\nto implementation only, so that other libs including\nGraphicBufferSource doesn\u0027t need to link libgui.\n\n- Remove bqhelper references from some client side libs.\n\n- Remove IOMX ipc related code, as IOMX interface is no\nlonger used for ipc. It\u0027s only used as an interface on\nclient side.\n\nbug: 129272021\ntest: builds;\natest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small\n\nChange-Id: I49d80bf72eba325ee80b223d4a5ba7b0c1ab4d35\n"
    },
    {
      "commit": "ba9a05060f0c0810647f98037dc353fc75e60506",
      "tree": "a7afd7c1c9b999c7a14284a325a6a3f0eaa6743c",
      "parents": [
        "a90aa4e34f88a010ab0d57c908015699756b1bda",
        "6252c87518983a343ef76aabb875497dfc97299d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Apr 02 21:35:09 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 21:35:09 2019 +0000"
      },
      "message": "Merge \"Verbosity and increase buffer limit\""
    },
    {
      "commit": "1234008771662d2b250d6d4972adb04de963fb0d",
      "tree": "d050c75b3935ed9d20676312df0e7cd1d94cd13c",
      "parents": [
        "60c73a445b632cc2e233b1a275efeee7414a41a4"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Mar 19 09:35:05 2019 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Mar 21 21:51:49 2019 -0600"
      },
      "message": "API changes in MicrophoneDirection\n\nBug: 128523813\nTest: Build, Testbed app\n\nChange-Id: I7b5ee8ba4eec1090866d8aef891a98d50cd09cc5\n"
    },
    {
      "commit": "6252c87518983a343ef76aabb875497dfc97299d",
      "tree": "2bc62bd7108d093f8844ce8f17fbdc53a3f5cb8f",
      "parents": [
        "f8e3c419e9a33a960754980bb62a5f51efc5cdb4"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Mar 08 11:24:47 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Mar 08 11:24:47 2019 -0800"
      },
      "message": "Verbosity and increase buffer limit\n\nNew MediaSource inline/shared buffer threshold meant we hit max buffers\nallowed limit more often -- with verbose diagnostics.\nmax buffers now aligned with primary consumer NuMediaExtractor (4-\u003e8)\n\nBug: 115848790\nTest: poc\n"
    },
    {
      "commit": "28da31bbda1f969924c25f72e244a33debfde779",
      "tree": "3e1fb7d0a1fe0339b54fa02a1a9b0657f395e5c8",
      "parents": [
        "9c971b7f3908eb033a7a7204047b9f64c23ce644",
        "366b643d1e674684d7095cdbe36b6791e842fdbc"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Thu Mar 07 23:06:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 07 23:06:07 2019 +0000"
      },
      "message": "Merge \"Surface MicrophoneDirection API in MediaRecorder\""
    },
    {
      "commit": "b70eff200b878224e76ee36e94eb0492c59d03d7",
      "tree": "f8746596be994669f4b4ced23b701f652c844a6d",
      "parents": [
        "9821dd321dafba4a35b8f672b2e247b0bfe2e9f7",
        "4d3e69452332f74a3e6c14381869930fef2e092f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 07 19:33:18 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 07 19:33:18 2019 +0000"
      },
      "message": "Merge \"Multiple extractors from same client vs clients binder space\""
    },
    {
      "commit": "4d3e69452332f74a3e6c14381869930fef2e092f",
      "tree": "0eb2d2930b800569f093bd484ca76e616235693c",
      "parents": [
        "be32a246fc5623c049cf6417ced66dccc741653b"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 07 09:17:48 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 07 09:17:48 2019 -0800"
      },
      "message": "Multiple extractors from same client vs clients binder space\n\nLowered limits for when to use shared buffers vs inline data and how\nmuch total data to allow in a mediasource binder transaction.  Fix typo\nlimiting MediaSource / extractor to only 1 mediabuffer as shared memory.\n\nBug: 115848790\nTest: poc from bug\n"
    },
    {
      "commit": "ea8fa7a5eea3d55c75982787571d70a70fa5280a",
      "tree": "8e0a6e45768fee1146cfdac9a06471cb0958ef50",
      "parents": [
        "bb08e4d99b0915f4b25fefeda9c833c96ceb785a"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Feb 22 14:41:50 2019 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 06 16:54:23 2019 -0800"
      },
      "message": "Refactor adjust channels buffer provider.\n\nCombine adjust channels buffer provider and adjust channels non-destructive\nbuffer provider.\nWhen contracting mono + haptic channels to mono, do not use\nadjust_channels to avoid mixing haptic channel into audio channel.\n\nBug: 125915810\nTest: play audio-haptic coupled files\nChange-Id: I39916a3e0628a44ed4a148c265564af7135a2176\n"
    },
    {
      "commit": "366b643d1e674684d7095cdbe36b6791e842fdbc",
      "tree": "1eaa875ba8bb14b2def251f7f0bdd27fce37cca5",
      "parents": [
        "e1e9cad4d0c7c9825b7f29ebc082dfcbdcace25c"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Mon Feb 25 10:35:51 2019 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Mar 06 14:55:55 2019 -0700"
      },
      "message": "Surface MicrophoneDirection API in MediaRecorder\n\nBug: 126185930\nTest: MicrophoneDirectionTest testbed.\nChange-Id: I6024ede50999aa751d63f272a087f578b8aea93d\n"
    },
    {
      "commit": "9b181958d638af581e98db8e208e3cebd3e99cf7",
      "tree": "c27bfbd78d5a54188b2f6735c0c116a6d57a8859",
      "parents": [
        "a666d61efbe74594e9d441621d20bef8f9def26e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 25 14:53:36 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 25 19:38:04 2019 -0800"
      },
      "message": "TypeConverter: proper conversion of invalid values to strings\n\nOtherwise incorrect state might be hidden.\n\nAlso: Unify devicesToString() and deviceToString() to toString().\n      Miscellaneous cleanup of replicated functionality.\n\nTest: Basic audio sanity, AF and APM dumpsys check\nChange-Id: Ic81167e2d2dbfcca881f0898764cf886215c217c\n"
    },
    {
      "commit": "4507d82ee003d730f010b1b4f9b76d1cb402017e",
      "tree": "f7d2ba68369433b38e592e3ddc31c77db18cc0de",
      "parents": [
        "ab964f9f572df8b2763ae92204aadba0ecc82ab9",
        "3866c7eb51ad35dfcca170b7b2ba8404c5f0c84a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Feb 17 14:57:36 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 17 14:57:36 2019 +0000"
      },
      "message": "Merge \"Use the updated hybrid interface\""
    },
    {
      "commit": "ab964f9f572df8b2763ae92204aadba0ecc82ab9",
      "tree": "36a34f0fc3da7d285385a57ecfd25393f0f920be",
      "parents": [
        "b9b9b069322d5f4a0df778b385ecf50f0fcada94",
        "b5bfa0e2dfc53c22eb7b16d64395aca0f4065d76"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Sat Feb 16 17:38:31 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 16 17:38:31 2019 +0000"
      },
      "message": "Merge \"CamcorderProfiles: Add new camcorder profiles\""
    },
    {
      "commit": "3866c7eb51ad35dfcca170b7b2ba8404c5f0c84a",
      "tree": "c5a6987f240532223a105f9ac52f65128a44c22c",
      "parents": [
        "0e2c6b80cbf498ce376cd356ea65d65ec570f335"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Jan 31 05:21:29 2019 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Feb 12 16:18:09 2019 -0800"
      },
      "message": "Use the updated hybrid interface\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\nBug: 111902308\n\nChange-Id: I7619b6ed3279cc2e31c230b9ab8bd1bca22e16d7\n"
    }
  ],
  "next": "b5bfa0e2dfc53c22eb7b16d64395aca0f4065d76"
}
