)]}'
{
  "log": [
    {
      "commit": "81b4dff2763c795792f524e1e4cb068b64e659ad",
      "tree": "df6fdda0f8fc8f342458de2245eed1744389c30d",
      "parents": [
        "d2ce2b807b26a46570cb823544a86c0589ceddc6",
        "7dfe28f246bce404778f94e977b52699adfcb4ea"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 20:07:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 20:07:49 2018 +0000"
      },
      "message": "Merge \"Fix missing check of hidl return status\""
    },
    {
      "commit": "81be7d85ab3e1a5897be623d040a26d4d9ede207",
      "tree": "1161cef3aa4aca94ac6625369d5adde614cf2359",
      "parents": [
        "46b5c79e2f02b946a58e8c501f7930d439d42771",
        "1889c3edad32995c0cf26ae2248fe7c957b7ec84"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Feb 15 23:07:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 23:07:17 2018 +0000"
      },
      "message": "Merge \"Add MediaBufferBase and use it in MediaSource and MediaBufferGroup.\""
    },
    {
      "commit": "7dfe28f246bce404778f94e977b52699adfcb4ea",
      "tree": "13c730c428948f355ffc46da6c8e8032ccc98311",
      "parents": [
        "f51cb69506670403cf1da2c66a3290c2f47344b6"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Feb 15 12:17:40 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Feb 15 12:17:40 2018 -0800"
      },
      "message": "Fix missing check of hidl return status\n\ncloseAllSessions() was calling into the hidl interface closeSession\ndirectly, and neglected to check the return status which resulted in\nan abort. Instead, call the DrmHal::closeSession() method which handles\nthe hidl return status correctly.\n\nTest: gts media tests\n\nbug:72400509\nChange-Id: I697997eb73ef6d8746fe695509671c4695124cee\n"
    },
    {
      "commit": "8ff8cab83dacf0263d7675d265c30bc1b8fd5dfd",
      "tree": "f2924f58b9d6a547caef4249feaebfe6ce877197",
      "parents": [
        "f51cb69506670403cf1da2c66a3290c2f47344b6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 13 13:50:22 2017 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 15 10:12:48 2018 -0800"
      },
      "message": "Remove dead code\n\nRemove code that was unreachable or never called.\n\nTest: build\n\nChange-Id: I82da1a3a046a7fe66bf012aa749d5a2de669d807\n"
    },
    {
      "commit": "fb679e38bbc91614faa917024adddeb51ff07d0a",
      "tree": "71c39782f7a5378ab9f383d31e053bff59ef41d2",
      "parents": [
        "8cc97b178bc6c744eaeef526eca7a4e3f24a1a0e"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Feb 07 10:25:48 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Tue Feb 13 12:57:37 2018 -0800"
      },
      "message": "Add logging support for FW metrics\n\nAdds proto serialization and logging support for media drm framework metrics.\n\nBug: 64001676\n\nTest: Ran CTS tests, unit tests and Google Play.\nChange-Id: Ie350ac93caa6b35610eb63e4acc860c8e8a5cf5b\n"
    },
    {
      "commit": "8cc97b178bc6c744eaeef526eca7a4e3f24a1a0e",
      "tree": "5a094043d266c0c87b0292e659eab22ae7d034be",
      "parents": [
        "031b695b8e37ca3591ac2f5eb952f6c21439d445",
        "568b3c45d48fab64c80b2780e8547564d35722e9"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Tue Feb 13 18:14:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 18:14:40 2018 +0000"
      },
      "message": "Merge changes from topic \"media-drm-fix-list-metrics\"\n\n* changes:\n  Fix Metrics with PersistableBundle support\n  Fix DrmHal implementation to return all metrics\n"
    },
    {
      "commit": "04ce77ffc7d7466c40c226d995c0f6d389e8bbe6",
      "tree": "710d87b8b1a85db69b7ed39deba6a1f18dbe4aa1",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Feb 13 00:27:24 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Feb 13 17:50:29 2018 +0000"
      },
      "message": "Initialize mDataSource in MidiIoWrapper c-tors.\n\nTest: App in question works well.\nBug: 73105500\nChange-Id: I6ffd52bf10e23c8ee144bbc74e157a6a7b26168c\n"
    },
    {
      "commit": "1889c3edad32995c0cf26ae2248fe7c957b7ec84",
      "tree": "5a4bd7fec36d039f75d04124b46d6295ac65e200",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Feb 01 13:44:57 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 23:59:34 2018 -0800"
      },
      "message": "Add MediaBufferBase and use it in MediaSource and MediaBufferGroup.\n\nMediaBuffer class exposes internal classes, ABuffer and IMemory, which\nwe don\u0027t want to expose to plugins. This change introduces\nMediaBufferBase which does not expose any classes from system library.\n\nTest: build and post-submit media cts tests\nBug: 67908556\nChange-Id: Ic9ee239caf9b84b2b3740e2d533257afa25c8784\n"
    },
    {
      "commit": "6c17751f5f85303e4300b11a716d2c7e009a1452",
      "tree": "87f9f48f4f2aeaf80a8992f6f97ac47d4efdce08",
      "parents": [
        "46bf6bdab5a6f41ff42107907906647417edab7c",
        "dc31017ea51ee7ba0db2068f82305eb86e2967a2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 03:16:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 03:16:12 2018 +0000"
      },
      "message": "Merge changes I7ea9f150,Idd98a522\n\n* changes:\n  CCodec: Episode VI --- Set Persistent Surface\n  CCodec: isolate input surface buffer passing from CCodec\n"
    },
    {
      "commit": "c91ac47d242dc269f342edb470d738447fe25486",
      "tree": "defc1e18a4c1b167242ec35dd5c2e16e55b1be25",
      "parents": [
        "31832c60d57558c2d5ddb2e45e4c6111ce9e55bb",
        "d4faf9e7cec12cf85e5901e81b7e05301012351c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 02:42:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 02:42:43 2018 +0000"
      },
      "message": "Merge \"Ndk wrapper: wrap new Ndk datasource/extractor APIs\""
    },
    {
      "commit": "568b3c45d48fab64c80b2780e8547564d35722e9",
      "tree": "18cb767806a83262cb74a7d1ab25bcd0e1334ab8",
      "parents": [
        "637b7855829920114a8863b93fe52203b7471eea"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Jan 31 12:57:16 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Mon Feb 12 14:35:27 2018 -0800"
      },
      "message": "Fix Metrics with PersistableBundle support\n\nSome metrics required a conversion to using PersistableBundle to support\nslightly richer structure (lists, and nested PBs).\n\nBUG: 64001676\n\nTest: Ran updated CTS test and verified Google Play works.\nChange-Id: I8f8d67ba04b234f2ac5ac348a8945e20837f98d6\n"
    },
    {
      "commit": "d4faf9e7cec12cf85e5901e81b7e05301012351c",
      "tree": "4d43046bd139d994757622b751e4ded3bd6b8cfc",
      "parents": [
        "9111804e9051b2888c66e26ee1a872bb3ef7a988"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Jan 21 17:52:25 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Feb 12 12:03:54 2018 -0800"
      },
      "message": "Ndk wrapper: wrap new Ndk datasource/extractor APIs\n\nBug: 63934228\nChange-Id: Id6200b5b5be3c7fa22cfb0233f749fc0e8ef2bc4\n"
    },
    {
      "commit": "e307dc4e7b2c9d3c4018a755db687309cf590369",
      "tree": "05cb67d957ee0b3f7f193df6914b4d6aa487fb8b",
      "parents": [
        "41d279a7f3bc55a63b510d4dce07e18964cda152"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 19:53:54 2018 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 12:52:11 2018 -0800"
      },
      "message": "Revert \"Revert \"Update drm hal to find drm@1.1 factories\"\"\n\nThis reverts commit d3eece8aa39560e8458ba8231b8684d99f11ee6b.\n\nChange-Id: I15ca1dba1a384ccc026406f0a9a02c2598873456\n"
    },
    {
      "commit": "41d279a7f3bc55a63b510d4dce07e18964cda152",
      "tree": "5d2c1f4a1ddabe93b57e6e3b0e616cab1f871645",
      "parents": [
        "c23849a8ea5d7e2939e9d8a0aa8b6da9c08ee625"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 19:52:08 2018 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 12:51:19 2018 -0800"
      },
      "message": "Revert \"Revert \"Fix MediaDrm security level APIs\"\"\n\nThis reverts commit 5f5e43fa83551a3636b92871bd2ad6b260a8815b.\n\nChange-Id: I72d585fd3768730eef6ad9effdbda81b32418dea\n"
    },
    {
      "commit": "c23849a8ea5d7e2939e9d8a0aa8b6da9c08ee625",
      "tree": "c569b1e589dfb58fd73cc07c7824180770dcf55e",
      "parents": [
        "4afda1eaee1c954b08177fb18fe755c370a6637e",
        "5f5e43fa83551a3636b92871bd2ad6b260a8815b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Feb 11 17:16:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 11 17:16:14 2018 +0000"
      },
      "message": "Merge \"Revert \"Fix MediaDrm security level APIs\"\""
    },
    {
      "commit": "4afda1eaee1c954b08177fb18fe755c370a6637e",
      "tree": "5d2c1f4a1ddabe93b57e6e3b0e616cab1f871645",
      "parents": [
        "1a099eb7b58c3aab997b960030ea533a33006898",
        "d3eece8aa39560e8458ba8231b8684d99f11ee6b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Feb 11 17:09:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 11 17:09:07 2018 +0000"
      },
      "message": "Merge \"Revert \"Update drm hal to find drm@1.1 factories\"\""
    },
    {
      "commit": "d3eece8aa39560e8458ba8231b8684d99f11ee6b",
      "tree": "e6010dce1f091847db51b7464c566af774a98f74",
      "parents": [
        "a3c77911df570d4378ae4869d1060915001f0eba"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Feb 11 15:22:12 2018 +0000"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Feb 11 15:22:12 2018 +0000"
      },
      "message": "Revert \"Update drm hal to find drm@1.1 factories\"\n\nThis reverts commit a3c77911df570d4378ae4869d1060915001f0eba.\n\nReason for revert: build cop here. The original CL broke build git_master / walleye_asan, hence I\u0027m reverting.\n\nhttps://android-build.googleplex.com/builds/submitted/4597721/walleye_asan-userdebug/latest/view/logs/build_error.log\n\nIn file included from vendor/google/tools/security/fuzzers/libFuzzer/ICrypto_fuzzer/ICrypto_fuzzer.cpp:24:\nframeworks/av/include/media/CryptoHal.h:23:10: fatal error: \u0027android/hardware/drm/1.1/ICryptoFactory.h\u0027 file not found\n\nChange-Id: I185d5310cadb9990b864d71e42bba94f4740160c\n"
    },
    {
      "commit": "5f5e43fa83551a3636b92871bd2ad6b260a8815b",
      "tree": "e6010dce1f091847db51b7464c566af774a98f74",
      "parents": [
        "56134cc9e790f39b3b10a18b701b0607c20b6154"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Feb 11 15:00:57 2018 +0000"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Feb 11 15:04:10 2018 +0000"
      },
      "message": "Revert \"Fix MediaDrm security level APIs\"\n\nThis reverts commit 56134cc9e790f39b3b10a18b701b0607c20b6154.\n\nReason for revert: Build cop here. The CL topic that I\u0027m reverting broke several builds: Drm.h\u0027s openSession(Vector\u003cuint8_t\u003e \u0026sessionId) hides overloaded virtual function openSession(DrmPlugin::SecurityLevel securityLevel, ..) from IDrm.h.\n\nhttps://android-build.googleplex.com/builds/submitted/4598692/full-eng/latest/view/logs/build_error.log\n\nChange-Id: I0de7738748ab793249df68bcbf18232d6a2d120a\n"
    },
    {
      "commit": "fa84ada543c66b83e8328dc9bdf4982394fa4347",
      "tree": "05cb67d957ee0b3f7f193df6914b4d6aa487fb8b",
      "parents": [
        "d0e0b1a1262c80e71fa2a1bb0f4880389b1e985b",
        "56134cc9e790f39b3b10a18b701b0607c20b6154"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 10 03:28:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 10 03:28:04 2018 +0000"
      },
      "message": "Merge \"Fix MediaDrm security level APIs\""
    },
    {
      "commit": "51fbf99c725544b8511ec9613f9607ff68561055",
      "tree": "b2ff6ec3707c1ed185ece8749b745cbaf8a42fd0",
      "parents": [
        "ceeee83aaf61fc61e47773da0ac97659057e1c77",
        "a3c77911df570d4378ae4869d1060915001f0eba"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 10 01:44:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 10 01:44:58 2018 +0000"
      },
      "message": "Merge \"Update drm hal to find drm@1.1 factories\""
    },
    {
      "commit": "637b7855829920114a8863b93fe52203b7471eea",
      "tree": "c33e93ec282c2d3f2c01581907dfdfc1fb63a0bf",
      "parents": [
        "ceeee83aaf61fc61e47773da0ac97659057e1c77"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Tue Jan 30 12:09:36 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Fri Feb 09 16:13:49 2018 -0800"
      },
      "message": "Fix DrmHal implementation to return all metrics\n\nThis change in DrmHal allows us to transfer a PersistableBundle containing\npreviously unavailable metrics.\n\nBug: 64001676\nTest: CTS test for metrics and GPlay test\nChange-Id: I1fa87c76dd980a3f91b4e2d02b37329f6c0a88ec\n"
    },
    {
      "commit": "a3c77911df570d4378ae4869d1060915001f0eba",
      "tree": "8bca142feb4cb8a202611ab20a68247a6d25180d",
      "parents": [
        "1bfabb36f5d6f09d87e9d52778b5a1cca9512722"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Feb 07 12:30:20 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Feb 07 22:53:14 2018 +0000"
      },
      "message": "Update drm hal to find drm@1.1 factories\n\nbug:73072898\ntest: cts android.media.cts.MediaDrmClearkeyTest\nChange-Id: I80c7b8864dc86fda8aa6afc0ec74f6f068da6401\n"
    },
    {
      "commit": "dc31017ea51ee7ba0db2068f82305eb86e2967a2",
      "tree": "074f4820862e6407c5b839848bd6e06083547ecb",
      "parents": [
        "0fa28dcc1198d14b6bf34fb673c5603d225bcba5"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Jan 30 16:51:07 2018 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Feb 06 14:17:12 2018 -0800"
      },
      "message": "CCodec: Episode VI --- Set Persistent Surface\n\n- Implement CCodec::setInputSurface().\n- Introduce InputSurfaceWrapper to handle both IInputSurface and\n  IGraphicBufferProducer.\n- Create C2OMXNode to wrap codec 2.0 component in IOMXNode, so that\n  it can be used in IGraphicBufferPrdoucer::configure().\n\nTest: setprop debug.stagefright.ccodec yes\nTest: screenrecord --codec-name c2.google.avc.encoder /sdcard/record.mp4\nTest: screenrecord --persistent-surface --codec-name c2.google.avc.encoder /sdcard/record.mp4\nChange-Id: I7ea9f150ae06996f03a78645d6e748d265b975df\n"
    },
    {
      "commit": "56134cc9e790f39b3b10a18b701b0607c20b6154",
      "tree": "51d3279074ad852d1c8ce03cb5f2f024542f1267",
      "parents": [
        "1bfabb36f5d6f09d87e9d52778b5a1cca9512722"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Feb 05 13:09:23 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Feb 06 10:27:45 2018 -0800"
      },
      "message": "Fix MediaDrm security level APIs\n\nVendors implementing the newly added MediaDrm.setSecurityLevel\nHAL found that it was difficult to implement properly. Also the\nsemantics are somewhat ambiguous from the Java platform API\nlevel. This CL binds the security level assignment to openSession\nwhich clarifies the API for apps as well as making it more\nnatural to implement in HAL modules.\n\nbug:72831697\nbug:64001680\n\ntest: VtsHalDrmV1_1TargetTest, GTS media tests\nChange-Id: Iaa07727be86ec2bc92be907d5a48c92136dc2014\n"
    },
    {
      "commit": "51b6956bc8e09eb2237a10a401baebb35096e6ab",
      "tree": "dfec915d73c7795b3b115037555c2160ebe69c72",
      "parents": [
        "65fdcf74e09717b6e67fa90ff78af45f2c9414cc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Feb 05 16:17:13 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Feb 05 16:22:13 2018 -0800"
      },
      "message": "MediaPlayer2: move MediaPlayer2 native code to libmediaplayer2\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: Ibec6d15524510a4d8618d1f684456c6c24b79828\n"
    },
    {
      "commit": "65fdcf74e09717b6e67fa90ff78af45f2c9414cc",
      "tree": "79d751c9e4f91740a0e4aeee0a2c4a9eddeb63b2",
      "parents": [
        "a97e318d3fac9a47a7e0615473982f170148a52d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 02 17:43:04 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 02 17:43:04 2018 -0800"
      },
      "message": "MediaPlayer2: remove unused code.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I046c7be126a329dfd8f11cdc7471a7ec70a1c64f\n"
    },
    {
      "commit": "a97e318d3fac9a47a7e0615473982f170148a52d",
      "tree": "eaf2fdb9396ee6f73afe1a16b4c1b6f99ced74a3",
      "parents": [
        "226acb291cb25b41bc95a32afca0e7deec26fa18",
        "2409c87361b78ec733e2481c52198bea245fe1da"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 03 00:22:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 03 00:22:26 2018 +0000"
      },
      "message": "Merge \"rename some files related to MediaPlayer2.\""
    },
    {
      "commit": "2409c87361b78ec733e2481c52198bea245fe1da",
      "tree": "16881e26e1c35941a5663ca0f0cb4135c77cf495",
      "parents": [
        "9e5be7f0dccf9dfd99e022527b01ea684c1dfddc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 02 10:34:33 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 02 14:16:42 2018 -0800"
      },
      "message": "rename some files related to MediaPlayer2.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I6def3f7f0aadabdbd9c8d6e722e7b8056a55aade\n"
    },
    {
      "commit": "24aabf915e8252ab318d0df6888a0d61a4c7a904",
      "tree": "f4d8dcf0f150c6b63ebc741089b32025198c4bec",
      "parents": [
        "9e5be7f0dccf9dfd99e022527b01ea684c1dfddc",
        "2a243f08193fe9ff1afe018e9953f01c44ced9de"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 02 19:08:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 02 19:08:50 2018 +0000"
      },
      "message": "Merge \"Remove RefBase from plugin-side DataSource\""
    },
    {
      "commit": "9e5be7f0dccf9dfd99e022527b01ea684c1dfddc",
      "tree": "76e0cb0d6f9a3e4337fc29a67c6d8a8ccc66824c",
      "parents": [
        "df9e45cc7dc78113aa790f1b6574ffbcc39a1da2",
        "c2636035f0a7990cf9da95d2531f9f1c03b8c172"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 02 18:45:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 02 18:45:50 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: add native DataSourceDesc.\""
    },
    {
      "commit": "2a243f08193fe9ff1afe018e9953f01c44ced9de",
      "tree": "80d5f40de50cd826248cfe4265b383677f25d0c0",
      "parents": [
        "58bce947568db8f6dd5e12e6548aff27af26ae96"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 30 08:29:57 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 02 07:52:05 2018 -0800"
      },
      "message": "Remove RefBase from plugin-side DataSource\n\nExtractor plugins now use DataSourceBase, which is not refcounted.\nFramework-side DataSource derives from DataSourceBase and RefBase.\nAlso remove MediaExtractor::release, because it is not needed\nanymore due to the way the extractor/track/datasource lifecycle\nis managed now.\nAlso add source and target pid to CallbackDataSource name, to\nmake the extractor dumpsys more useful.\n\nBug: 67908556\nTest: build, boot, CTS, skia test app for heif\nChange-Id: I6b9cbe903f76b0cf27ba87f4a456f424803efd08\n"
    },
    {
      "commit": "c2636035f0a7990cf9da95d2531f9f1c03b8c172",
      "tree": "079818a0f400ab799c797860707c945e3ecc3199",
      "parents": [
        "4b8dbfc9e85ca7c2cc4acdcddca997f197fee718"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 01 09:15:25 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 01 10:30:36 2018 -0800"
      },
      "message": "MediaPlayer2: add native DataSourceDesc.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: Idd5bda81c2cc26c7aac8e64a21ccc2f6b3ac8a39\n"
    },
    {
      "commit": "de2c195a218cc24eaf3a7ced149f7eb723656a97",
      "tree": "90f7ece00616bf5c905fe14ae1b17ee864041685",
      "parents": [
        "4b8dbfc9e85ca7c2cc4acdcddca997f197fee718",
        "a70eef730d7665c9f4b2dfd25faf072785f80a2d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 01 16:46:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 16:46:08 2018 +0000"
      },
      "message": "Merge changes from topic \"fix-b-63901775-add-presentation\"\n\n* changes:\n  Audio presentation selection for AudioTrack native\n  Add presentation API interface\n"
    },
    {
      "commit": "54f957b1d0ee1050218bb1f7569afa1d0b5cae91",
      "tree": "b272648e6c226de46e49458c442800ea13a733a6",
      "parents": [
        "839daf18d567c0cd5982ba7baf4c433d55e875a5",
        "609850df59219845a8c4ebe18a2687447ea570cc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 01 07:52:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 07:52:55 2018 +0000"
      },
      "message": "Merge \"Support query active microphones in MediaRecorder.\""
    },
    {
      "commit": "31067d4b87475dd0a90145d4849cf66f7bf93f86",
      "tree": "61656e49f84e02ae6382e94169916356f65c8e1f",
      "parents": [
        "e9ba24a984610b09d33a739034caf8949bb53f7e",
        "92d23b433bd770c22c2d4a30b573602f5565de1b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 31 22:37:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 31 22:37:49 2018 +0000"
      },
      "message": "Merge \"Remove finalized concept from media.metrics\""
    },
    {
      "commit": "48843255503e162706279a417c0bd4282a63dffe",
      "tree": "afe3c913fa89e404a5ef36d30bf0c2e63cad01d8",
      "parents": [
        "9111804e9051b2888c66e26ee1a872bb3ef7a988"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jan 09 15:24:07 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jan 30 15:11:39 2018 -0800"
      },
      "message": "Remove parcel reference from NuPlayer2Drm::retrieveDrmInfo\n\nBug: 63934228\nChange-Id: Iaa66fb613006c4de67d20c76f4ecbcf6d2cfbae1\n"
    },
    {
      "commit": "9111804e9051b2888c66e26ee1a872bb3ef7a988",
      "tree": "4d52f31286ea8aa6b1539e801169d75621416fe9",
      "parents": [
        "d24be7ca2491048892905734cb8a1e77440df948",
        "33abcc7f15ef40a7d57a2f49dd8cce231c405016"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 22:10:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 22:10:14 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: remove MediaPlayerHWInterface\""
    },
    {
      "commit": "33abcc7f15ef40a7d57a2f49dd8cce231c405016",
      "tree": "1fac600bfbc48657e59a63ebb3122e3fed52ffb4",
      "parents": [
        "678c54ce82b41e3232c9e0c96cd84323fff653b2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 30 09:47:38 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 30 09:47:38 2018 -0800"
      },
      "message": "MediaPlayer2: remove MediaPlayerHWInterface\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: Ia9a75e49938f63a02c240f6aa98185d74f9f4656\n"
    },
    {
      "commit": "4778250a89a7a74c187dca45186a501a97b003c3",
      "tree": "ffa8876f386f468976bc8a9debe128bd378ada70",
      "parents": [
        "9fc650091ca868202644176308f1834b9968bd01",
        "678c54ce82b41e3232c9e0c96cd84323fff653b2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 17:26:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 17:26:38 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: remove factory\""
    },
    {
      "commit": "678c54ce82b41e3232c9e0c96cd84323fff653b2",
      "tree": "e4be5626a611958253584d3eb084f3de6312ced2",
      "parents": [
        "d21fb560b26be64a588ff96979022ae4d52f5d3a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 29 18:30:07 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 29 18:30:07 2018 -0800"
      },
      "message": "MediaPlayer2: remove factory\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: Idc6fb33b4bb69bb65dca34d2b8fc9e3595a05774\n"
    },
    {
      "commit": "edab478b7490f6519a0b44b9dc99b47c2ee78d09",
      "tree": "de4b4dc15ade9b47ddadc8b2ae5d48530751ed55",
      "parents": [
        "fc70138c8841ef5479580ba5efd35b30229db9a2",
        "15177d7eab8c2300b4f1d577267e528bd7e4eedc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 02:16:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 02:16:44 2018 +0000"
      },
      "message": "Merge \"Add new secure stop methods\""
    },
    {
      "commit": "92d23b433bd770c22c2d4a30b573602f5565de1b",
      "tree": "e2ff902f2be5d131e8a1cd4af09868d3a5af2794",
      "parents": [
        "3923b1b71628e668f9b11ed4891ed2840dd331cd"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 29 12:10:30 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 29 14:38:27 2018 -0800"
      },
      "message": "Remove finalized concept from media.metrics\n\nthe \u0027finalized\u0027 concept didn\u0027t pan out -- remove references to it.\nSimplifies the code flow.\nAlso purged some uses of generateSessionID().\n\nBug: 71874686\nTest: logcat/dumpsys\nChange-Id: I39e48526a5696158d8195f47154881ca6ecda266\n"
    },
    {
      "commit": "609850df59219845a8c4ebe18a2687447ea570cc",
      "tree": "909d46e051bb0569796992c9ffa15b86b7fe98ac",
      "parents": [
        "653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Jan 23 10:56:49 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 26 17:51:56 2018 -0800"
      },
      "message": "Support query active microphones in MediaRecorder.\n\nThis is part of device enumeration. With the new add API, developer\ncould get the active microphones information for each channel.\n\nBug: 64038649\nTest: Run cts and check the print log.\nChange-Id: I01941d8d1ca0f49d0af48210ef8b1149de31676a\n"
    },
    {
      "commit": "15177d7eab8c2300b4f1d577267e528bd7e4eedc",
      "tree": "d3032e8309d53cabd47ada0ad50607b899829534",
      "parents": [
        "5f07c65af5356a4a95410804ce19fc017d6478f8"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 25 12:57:55 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jan 26 16:02:04 2018 -0800"
      },
      "message": "Add new secure stop methods\n\nMethods are needed to release a secure stop by ID and\nreturn a list of secure stops.\n\nTests: gts media tests\n\nbug:67361434\nbug:64001680\nChange-Id: If6cb180cb4d2e3b655028955d105aee0cb8d70b6\n"
    },
    {
      "commit": "49ce671c4efa4c5d038351ca441e34c5afa5241f",
      "tree": "f269ef96d9f6dbcb169e29accb4f9f1f54830e3e",
      "parents": [
        "d21fb560b26be64a588ff96979022ae4d52f5d3a"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 24 10:16:25 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Jan 26 08:48:56 2018 -0800"
      },
      "message": "Remove unused includes and forward declarations in libmediaextractor/include\n\nTest: make checkbuild\nBug: 67908556\nChange-Id: If840305af5c043bb8014590eb208cf11c99e61ee\n"
    },
    {
      "commit": "bc8f53b8c1c220d9ce01526b6e3834f14af98ed5",
      "tree": "0742ac2262f28acb9c827f5ad96fae12f13fb354",
      "parents": [
        "de9a7b5caa3cd8b59630b2bc13e1cb4420618940"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 17:01:44 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 18:11:38 2018 -0800"
      },
      "message": "Revert \"Revert \"Move MediaBufferXXX from foundation to libmediaextractor\"\"\n\nThis reverts commit 95a8bfab98a73a75eb60ecf2cc8683f4a1f04b35.\nPlus, keeps \u0027virtual\u0027 keyword for ~MediaBuffer which has a child class.\n\nTest: cts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg\nCtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice\nBug: 67908542\nChange-Id: Ib94d574d6bbd6245c174dd1c9bcca379015724cc\n"
    },
    {
      "commit": "81e6eb80ec340d91d20cb29f036288f23f84ce02",
      "tree": "3a0dc701806996d279292c274a7ad7488cf7738b",
      "parents": [
        "6e075b43b0ba324a97fc0f89ef65196ed25be671",
        "787ed44fe9d26ef1603819c699ad32823ded70fb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 26 01:00:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 26 01:00:18 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2Factory: use on demand initialization for static variable.\""
    },
    {
      "commit": "787ed44fe9d26ef1603819c699ad32823ded70fb",
      "tree": "205214b04bdf7eb30a8fd72b849b205237968c1b",
      "parents": [
        "0defd00c221a5e96cdd699a6f0f682b421c69897"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 24 18:03:04 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 25 14:36:08 2018 -0800"
      },
      "message": "MediaPlayer2Factory: use on demand initialization for static variable.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I0eb42a9eaf61ba2d4d49900d2926288e932e65cb\n"
    },
    {
      "commit": "a70eef730d7665c9f4b2dfd25faf072785f80a2d",
      "tree": "3139b8b7898a5a539b9c1ee0533e1a386da459e9",
      "parents": [
        "9ee64f139ceff98ea5f9afcc2eaab42901922d56"
      ],
      "author": {
        "name": "Dean Wheatley",
        "email": "dwhea@dolby.com",
        "time": "Thu Jan 04 14:23:50 2018 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 25 12:33:52 2018 -0800"
      },
      "message": "Audio presentation selection for AudioTrack native\n\nBug: 63901775\nTest: make\nChange-Id: I63c9bdef880c7c387fd05f093b8d1094307a2754\nSigned-off-by: Previr Rangroo \u003cprang@dolby.com\u003e\n"
    },
    {
      "commit": "4b780702948d19caef60617666c69b6d7f64aa29",
      "tree": "a92a9693b7b424dc973c3d541d7739d26aa14a18",
      "parents": [
        "047b5872d4278ee0426db3ba78d0f3fefabaaabd"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 11:21:26 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 11:34:48 2018 -0800"
      },
      "message": "Revert \"Move MediaBufferXXX from foundation to libmediaextractor\"\n\nThis reverts commit f03606d9034730bea1a394e6803f9ebc36f3d2eb.\n\nTest: build and plays the file attached in the bug.\nBug: 72479511\nChange-Id: Ifdb8225a7140480649cecd52668ac7dcdd489252\n"
    },
    {
      "commit": "566a7290c6af684947c1a757a60eae5da8ab9dee",
      "tree": "eb7f393fbc1f50f400c92439d64d4e4fbc8fcbe7",
      "parents": [
        "eefbdd95b6c0614527bddc188fb112b9b486212e",
        "cea91ce60260d7ebb94449ad7674150fdc227886"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Thu Jan 25 14:00:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 14:00:17 2018 +0000"
      },
      "message": "Merge \"Adds most remaining framework metrics\""
    },
    {
      "commit": "eefbdd95b6c0614527bddc188fb112b9b486212e",
      "tree": "fde2a92d37f28b4114ccf6144d4196a549459db4",
      "parents": [
        "227d7bd4a05039a06db70513c55e0b658a2eb86a",
        "f0e618d0ee16c63f918c7bb87ec1ff264d177746"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Thu Jan 25 11:20:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 11:20:57 2018 +0000"
      },
      "message": "Merge \"Add EventMetric and a single use case.\""
    },
    {
      "commit": "cea91ce60260d7ebb94449ad7674150fdc227886",
      "tree": "4330319ec2121bdcc33f6014ddca527e334f73eb",
      "parents": [
        "f0e618d0ee16c63f918c7bb87ec1ff264d177746"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Mon Jan 22 19:23:28 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Jan 24 17:41:44 2018 -0800"
      },
      "message": "Adds most remaining framework metrics\n\nAdds nearly all of the remaining specified framework level metrics.\nAlso adds a basic unit test to verify that metrics are exported\ncorrectly. A follow-up CL will update the CTS test to touch all metric\nvalues in DrmHal.\n\nBUG: 64001676\nTest: New unit test. Smoke tested with GPlay/Walleye.\nChange-Id: I4df90675ae304d3c62b7886537328b3d848fd77c\n"
    },
    {
      "commit": "f0e618d0ee16c63f918c7bb87ec1ff264d177746",
      "tree": "c57a89695d8305242ccacabc5e692606989d831f",
      "parents": [
        "38428ce1b306d8922778f4994d67f0ddffb4fcd2"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Jan 17 19:20:41 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Jan 24 17:24:43 2018 -0800"
      },
      "message": "Add EventMetric and a single use case.\n\nAdds an EventMetric class, associated unit tests, and an instance of the\nEventMetric to DrmHal. Also added a unit test for CounterMetric and\ncreated a class to hold all of the future metric instances.\n\nBUG: 64001676\n\nTest: Added and ran unit tests.  Also added a CTS test case.\nChange-Id: Ic94bedd5f8293a58a939613a4ae69ce656a772be\n"
    },
    {
      "commit": "f6f36868691e7c1a0cda39b088386cb1edded683",
      "tree": "1ffbaf34fa1571c1be98a6431cb83f7176cc6dd9",
      "parents": [
        "c6116926de37cabb1d35ddd57eaff0e19fcec8bc",
        "ee54eeffbd021ec267d58cdf5f41dd9329862e02"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 23:25:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 23:25:41 2018 +0000"
      },
      "message": "Merge \"Nuplayer2 metrics under \u0027nuplayer\u0027\""
    },
    {
      "commit": "ee54eeffbd021ec267d58cdf5f41dd9329862e02",
      "tree": "7b8e7a48806c40a18753dc73b7abc6253758a595",
      "parents": [
        "c01a25e1759549d90c8e9f2446bc3c0023a8cd83"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 24 11:16:54 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 24 11:16:54 2018 -0800"
      },
      "message": "Nuplayer2 metrics under \u0027nuplayer\u0027\n\nWe should be logging the nuplayer2 metrics under \u0027nuplayer\u0027, not\n\u0027nuplayer2\u0027.  I had made the poor suggestion that they be nuplayer2.\n\nBug: 72445608\nTest: build\n"
    },
    {
      "commit": "e05a10f6d8783f7bc3cd2f78a9115bf3ab63efff",
      "tree": "e6774ea67b3f60541fbf9295c5c58227d82df350",
      "parents": [
        "c3c1fc630e21f36d2e3f56fac3503c471fbc3a15",
        "aaf87dd09686bdb47df0a638b622a4c2ea37a331"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Jan 24 17:54:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 17:54:36 2018 +0000"
      },
      "message": "Merge \"Add CounterMetric and a single use case.\""
    },
    {
      "commit": "254d783c0db9d7af6b863ad1819f5c4a543a939d",
      "tree": "592b2f1674cc677139d67186732e581aac73a7bd",
      "parents": [
        "9ae88bd5135a2612db3e938546a8304f1a0f1d14",
        "f03606d9034730bea1a394e6803f9ebc36f3d2eb"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 24 16:46:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 16:46:46 2018 +0000"
      },
      "message": "Merge \"Move MediaBufferXXX from foundation to libmediaextractor\""
    },
    {
      "commit": "34abab103a6eb3fc7417c9e9169ee172b2303952",
      "tree": "df4065ab25ab83d7380715b42ad7c79d0d436873",
      "parents": [
        "fe4e4db4615585fd70a55d52f21c55dd517d2bfa",
        "07be14fb96fc5c106ea2b874faf2b768f468eb8e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "message": "Merge \"Revert \"Audio V4: Split system and vendor Audio.h\"\""
    },
    {
      "commit": "07be14fb96fc5c106ea2b874faf2b768f468eb8e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "message": "Revert \"Audio V4: Split system and vendor Audio.h\"\n\nThis reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.\n\nReason for revert: Breaks the build of multiple devices\n\nChange-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e\n"
    },
    {
      "commit": "6a784e71ca122347789faa73367877d41831592f",
      "tree": "de25d71706442e18346a5785f4174aba5604454d",
      "parents": [
        "f7a14c051ee9bd5f288963f3c190642e4915250b",
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-v4-tmp\"\n\n* changes:\n  Audio V4: Split system and vendor Audio.h\n  Audio V4: Use the framework audio.h instead of the HAL\u0027s\n"
    },
    {
      "commit": "981fff0065d95fa52bb151ce10ea909cfcf2c86a",
      "tree": "d2590cce92d113d0818b4001d01a1317f5b09d7a",
      "parents": [
        "061ee8fd486658446d27048939e557f899f31def"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 23 19:09:58 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 23 19:09:58 2018 -0800"
      },
      "message": "NuPlayer2: explicit dependency on libmedia_helper\n\nTest: compiles\nBug: 72411788\nChange-Id: I32e41c6de8aa429e2598cbdc3f8f085db3755821\n"
    },
    {
      "commit": "f03606d9034730bea1a394e6803f9ebc36f3d2eb",
      "tree": "839c704657518a5442389de9bc7a9c0f719be242",
      "parents": [
        "ae73ce1d0338e0ae3054b9c2458836f6bf4a88fe"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jan 23 15:38:53 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jan 23 19:03:54 2018 -0800"
      },
      "message": "Move MediaBufferXXX from foundation to libmediaextractor\n\nRemoved MediaBufferBase in favor of MediaBufferHolder\nwhich contains a MediaBuffer inside. Instead of set/getMediaBufferBase,\nnow it set/finds MediaBufferHolder in ABuffer-\u003emeta().\n\nTest: build. pass MediaPlayerDrmTest and EncodeDecodeTest.\nBug: 67908542\nChange-Id: Icb4f7ac350a7876f5e4596bae8be2a9e95956c2f\n"
    },
    {
      "commit": "aaf87dd09686bdb47df0a638b622a4c2ea37a331",
      "tree": "055e6f879ea604b1f66bc9cea091481308b17487",
      "parents": [
        "a13ac6c89d0246f081127eec11cd5eb467d168d3"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Mon Jan 08 11:55:06 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Tue Jan 23 16:51:17 2018 -0800"
      },
      "message": "Add CounterMetric and a single use case.\n\nThis adds a new class CounterMetric which is used to hold metric\ninformation.  It also adds a single use case for recording and\nreporting a counter metric.\n\nBUG: 64001676\n\nTest: Added and ran a new test for the specific CounterMetric use case.\nChange-Id: I39cab8328f135e579f80b6c2fab721da5f569795\n"
    },
    {
      "commit": "ab7429b4cec5e619f0ed77d13363da4167212874",
      "tree": "0422b04eca116f462e5b29345934cbd8a0bec9d3",
      "parents": [
        "1c838c481692c45b96786dcdd520296b73a71809",
        "74065036f03cb9f96acb43c6e4f105ec91132395"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 23 19:17:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 19:17:44 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary includes and forward declarations\""
    },
    {
      "commit": "1c838c481692c45b96786dcdd520296b73a71809",
      "tree": "654d3e1aa9989216316d2d6eba385e5f72e8a17e",
      "parents": [
        "c42670b837dc6e0d63dad891f66735fd7cb3d969",
        "3d4d19e61b593909f1e1bcc2e04172d215f7990d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 17:17:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 17:17:34 2018 +0000"
      },
      "message": "Merge \"Fix incall music flag entry in type converter\""
    },
    {
      "commit": "c42670b837dc6e0d63dad891f66735fd7cb3d969",
      "tree": "0ea6e2a4a47671977c8099c1f8c248971622b588",
      "parents": [
        "164071326bcc752214ed800cba3d07206398f53d",
        "6d998b67be330843f633a563c23c606593060165"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 17:07:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 17:07:40 2018 +0000"
      },
      "message": "Merge \"Implement new MediaDrm methods\""
    },
    {
      "commit": "164071326bcc752214ed800cba3d07206398f53d",
      "tree": "ac96bab2b8167c1e92c78ddb964f0e1698e395ce",
      "parents": [
        "3e20fdd61fba228edaa2f1f4f4c6c69b02ae5111",
        "4049f13fb3d1c588d3e4dc518ede15d45dca4c9e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 16:37:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 16:37:25 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: build static libs for some components\""
    },
    {
      "commit": "74065036f03cb9f96acb43c6e4f105ec91132395",
      "tree": "d7d742dd47b2ec50224f37dc35899f62c93ab0b5",
      "parents": [
        "da60340a9e5ce64270f1106239b736296f280df4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 23 08:16:29 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 23 08:16:29 2018 -0800"
      },
      "message": "Remove unnecessary includes and forward declarations\n\nBug: 67908544\nTest: build\nChange-Id: I824625940ba562571b16ed21e351ee17807d7d30\n"
    },
    {
      "commit": "3d4d19e61b593909f1e1bcc2e04172d215f7990d",
      "tree": "d051b3c0a34ecf7d14927fc2c797d80df7c511ec",
      "parents": [
        "bd1f998721a5c17623043c415fa2a0bb3e57601f"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Tue Jan 23 11:59:16 2018 +0200"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Tue Jan 23 11:59:19 2018 +0200"
      },
      "message": "Fix incall music flag entry in type converter\n\nFix an issue that was introduced in the latest commit due to the\ntemporary definition of AUDIO_OUTPUT_FLAG_INCALL_MUSIC as a MACRO.\nThis change explicitly adds the flag in TypeConverter.\n\nBug: 69973354.\nTest: Tested manually.\nChange-Id: Id56f746a481a246b109ac1b8458d494575263f99\n"
    },
    {
      "commit": "4049f13fb3d1c588d3e4dc518ede15d45dca4c9e",
      "tree": "3f0566fb3f3f9cb441e3b466f95341c600c9c1ef",
      "parents": [
        "205266aacc675dfb7a7f9f985c4ca973163cb59e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 22 10:37:31 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 22 18:48:46 2018 -0800"
      },
      "message": "MediaPlayer2: build static libs for some components\n\nTest: compiles\nBug: 63934228\nChange-Id: I1791b40a67c87ea3146825767699e5022444e433\n"
    },
    {
      "commit": "766fb020a50b64bf9a808bd80df60c54c2ca8cc3",
      "tree": "acb92cb201889d2b56f41bc2a437da1aaae72c4e",
      "parents": [
        "652f9299bb8a7a50148d57a75de6ede831bfed85"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Sun Jan 07 12:18:03 2018 +0200"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Mon Jan 22 23:05:23 2018 +0200"
      },
      "message": "Support routing audio playback to telephony uplink\n\nThis change enables phone apps to play audio to the uplink stream\nduring a call.\nThis change maks the AUDIO_OUTPUT_FLAG_INCALL_MUSIC_UPLINK flag to be added to the flags that are sent to the HAL when an ongoing call is active, the chosen output device is the TX telephony device, the stream type is music, and the calling app has the MODIFY_PHONE_STATE permission.\nFor this change to take place, the following changes were made to the signature of getOutputForAttr in IAudioPolicyService:\n  1. Add pid (process id) parameter to getOutputForAttr.\n  2. Make the flags parameter a pointer so changed value can be\n  examined by calling function.\n\nBug: 69973354.\nTest: tested manually.\nChange-Id: I74cef3f8b66de6e0e8f87b6235130c2cdf423da7\n"
    },
    {
      "commit": "6d998b67be330843f633a563c23c606593060165",
      "tree": "c9bfa7867b2610593e81ca8bf6d13b4b18501e14",
      "parents": [
        "e18835269d8e875297603d889b3f928a13f93d6c"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Dec 18 14:37:43 2017 -0800"
      },
      "committer": {
        "name": "Rahul Frias",
        "email": "rfrias@google.com",
        "time": "Mon Jan 22 01:29:32 2018 -0800"
      },
      "message": "Implement new MediaDrm methods\n\nMethods for querying HDCP, security levels and\nnumber of sessions\n\nbug:64001680\nbug:33657579\n\nTest: cts: MediaDrmMockTest, ClearKeySystemTest\ngts: GtsMediaTestCases\n\nChange-Id: I7c84df02ec33d305b6bd5ac7479922f87aa64863\n"
    },
    {
      "commit": "652f9299bb8a7a50148d57a75de6ede831bfed85",
      "tree": "76804bc03c444867871a07eccfd7d8a37e78270f",
      "parents": [
        "84e2145289fae9e16a374a2d68007d17231ef53a",
        "904183eeeeb8e9f7345c3e5f517719d6b5c93128"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 22 06:36:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 06:36:27 2018 +0000"
      },
      "message": "Merge \"JAudioTrack: Add getRoutedDeviceId() and other methods\""
    },
    {
      "commit": "904183eeeeb8e9f7345c3e5f517719d6b5c93128",
      "tree": "7216749c4810ce6f33680182ac56087253842249",
      "parents": [
        "aa50659081021a1708d9692be1c1576a939245b6"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Sun Jan 21 20:43:41 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Sun Jan 21 21:49:01 2018 +0900"
      },
      "message": "JAudioTrack: Add getRoutedDeviceId() and other methods\n\nThis CL adds following methods:\n - getRoutedDeviceId()\n - latency()\n - dump()\n\nBug: 70363744\nTest: build successfully\nChange-Id: I31d2299828a3e389b070f5d9b2c4240dfb98c57d\n"
    },
    {
      "commit": "f8ad7f85e9891b2614338330c75ae9e946fccc5a",
      "tree": "957d47ddc7419c688dda1d4c1ac3068eda6d894f",
      "parents": [
        "6d7582e9ad858301b3eeff7b187af6c34808cb7e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 17 15:57:39 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 21:39:40 2018 -0800"
      },
      "message": "Audio V4: Split system and vendor Audio.h\n\naudio.h and its dependencies (audio-effect.h, sound_trigger.h...)\nused to be shared between system and vendor code.\n\nThis led to multiple problems:\n\n1) Such sharing contradicts the Treble policy of\nstrict independence of framework and vendor code.\n\n2) When audio.h was changed, every vendor needed to update\nits code in the next release. This meant that audio*.h\nheaders were mostly changed in backward compatible manner.\nNevertheless, for P the HIDL interface and thus the audio.h\ninterface are changed in backward incompatible way.\n(Some enum are becoming 64 bit long).\n\n3) As the headers were common, some API used only by the framework\nneeded to be visible to the vendors (mostly enum values).\n\n4) Treble policy is to support at least one previous HAL version\n\nAs a result the audio*.h headers are now duplicated,\none set for the framework, and one for the vendor.\n\nEach set will evolve independently. After this split,\nthe framework-only APIs will be removed from the vendor headers\nand vice versa.\n\nThe split is implements as such:\n\n + for system code\n\n    - NOT moving the libaudio_system_headers\n      Eg: system/audio.h and system/audio_effects/effect_equalizer.h\n          are still in system/media/audio\n\n    - the legacy audio HAL API that were in libhardware headers\n          are now in libaudiohal_legacy_headers\n      Eg: hardware/audio.h and hardware/audio_effect.h\n          are now in frameworks/av/media/libaudiohal/legacy/\n\n + for vendor code\n\n    - moving libaudio_system_headers and the legacy audio HAL API\n          that were in libhardware_headers in\n          android.hardware.audio.common.legacy@2.0\n      Note that those headers are now versioned, so migrating to a @4.0\n          HIDL HAL will mean changing the legacy dependency too.\n      Eg: system/audio.h, system/audio-effect.h, hardware/audio.h\n          are now in hardware/interfaces/audio/common/2.0/legacy\n\n    - the legacy audio effect HAL API that was in libaudioeffects\n          is now moved in android.hardware.audio.effect.legacy@2.0\n      Eg: audio_effects/effect*.h are now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\n    - the legacy sound trigger HAL API that were in libhardware_headers\n          is now moved in android.hardware.soundtrigger.legacy@2.0\n      Eg: hardware/sound_trigger.h is now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\nlibaudioutil being used by both system and vendor, had\nto be renamed for system to libaudioutil_system.\n\nVendor libs that now depend on the audio.h of a specific\nversion and are not extensively referenced in non google code,\nappend @2.0 to their name.\n\nNote that headers that are not expected to change in the 4.0 HAL are\nleft in all-versions folder to avoid duplication.\nThis is an implementation detail as the versioned libraries export\nthe all-versions headers.\n\nNote that strict vendor-system separation is enforced by the\nbuild-system. The system headers are not available for vendor\nlibs and vice-versa.\n\nNote that this patch is split between numerous git repository (\u003e10),\nall the commits having the same Change-id for searchability.\n\nNote that audio_policy.h is no longer exposed to vendors\nas the legacy audio policy HAL API was never officially supported.\nAs a result the audiopolicy stub implementation has been removed.\n\nTest: compile taimen-userdebug walleye-userdebug\n              sailfish-userdebug marlin-userdebug\n              gce_x86_phone-userdebug gce_x86_phone\n              full-eng aosp_arm aosp_x86-eng\nTest: check that the emulator booted and played audio\nTest: full QA on sailfish-userdebug and taimen-userdebug\nBug: 38184704\nChange-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "da98abadbca65909dbd8b040eddd4b1a2b7633e8",
      "tree": "2471af8816ad4dfba9dc883254fed202620296ca",
      "parents": [
        "65a438c6429c7f46cb0ab056c7f672ea0aa9e7f5",
        "ab394d13bab3a84f23677357576cee7a6f0c7899"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Sun Jan 21 02:25:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jan 21 02:25:17 2018 +0000"
      },
      "message": "Merge \"Add support for getMetrics to IDrm\""
    },
    {
      "commit": "ab394d13bab3a84f23677357576cee7a6f0c7899",
      "tree": "49544ed51667ba0850b776529294be75de491961",
      "parents": [
        "0b68d531017a66db63cc8c41ba28a4f15e9816f0"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Fri Dec 22 12:34:20 2017 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Fri Jan 19 16:29:47 2018 -0800"
      },
      "message": "Add support for getMetrics to IDrm\n\nAdds support for the new getMetrics call to the IDrm interface and the\nDrmHal implementation. The implementation currently returns a dummy\nmetric collection. Follow-up CLs will flesh out the implementation.\n\nBug: 64001676\n\nTest: Ran the new unit test created in a related CL; ran Google Play.\nChange-Id: Ia6a3af5b59a30ca55267f7e3ba278a510fc8c81e\n"
    },
    {
      "commit": "7ffa062a68c1b8ec41e79e480a23c01ab0b5d4a2",
      "tree": "8e3883ed00c46feae81fe33f553bdf2329014103",
      "parents": [
        "e18835269d8e875297603d889b3f928a13f93d6c"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 15 16:07:12 2017 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 18 12:43:27 2018 -0800"
      },
      "message": "Remove unnecessary exports from various libraries\n\nThis reduces library size by about 10-15%\n\nTest: build, run CTS\nChange-Id: I9ecb3f08a8bd6128e601656125e3523c0c52ddb6\n"
    },
    {
      "commit": "26477a994d438eb13569094a485093f25571374e",
      "tree": "7449073eecab24464d3a9947b7ae15dc5e29c019",
      "parents": [
        "f755f27697051d28556e7f23a38c8e4ec257d3d8",
        "fd328170d288e337cb779b2ef14f9e4c5e860c6a"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Jan 17 07:31:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 17 07:31:19 2018 +0000"
      },
      "message": "Merge changes I30cb80e7,I790acca4,I51e05100\n\n* changes:\n  JAudioTrack: Add 6 more methods\n  JAudioTrack: Add 14 methods\n  Create constructor of JAudioTrack class\n"
    },
    {
      "commit": "fd328170d288e337cb779b2ef14f9e4c5e860c6a",
      "tree": "feb524d00c904dc0b4ef075f7d73aaf0bd110e99",
      "parents": [
        "9b26e9467a77e2ee03f1d19e1dbf9671c3770286"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Dec 14 10:46:54 2017 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Jan 17 14:37:26 2018 +0900"
      },
      "message": "JAudioTrack: Add 6 more methods\n\nThis CL adds following methods in JAudioTrack:\n - getTimeStamp\n - setPlaybackRate / getPlaybackRate\n - applyVolumeShaper\n - write\n - getBufferDuartionInUs\n\nTest: build successfully\nChange-Id: I30cb80e7f1c7597c583941966a4cfa0a6a2b5f4b\n"
    },
    {
      "commit": "9b26e9467a77e2ee03f1d19e1dbf9671c3770286",
      "tree": "9aae29e1899be7332457fd67d7fc7a050cf949ad",
      "parents": [
        "660a74ebf0a8b5b6c79f9a016b202ccfaf815d3b"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Dec 14 10:46:54 2017 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Jan 17 14:37:24 2018 +0900"
      },
      "message": "JAudioTrack: Add 14 methods\n\nThis CL adds following methods in JAudioTrack:\n - frameCount / channelCount\n - getPosition\n - setAuxEffectSendLevel / attachAuxEffect\n - setVolume (2 different versions)\n - start / pause / flush / isPlaying / stopped\n - getSampleRate\n - format\n\nTest: build successfully\nChange-Id: I790acca4405f41a94fbe14daf5824e82d1d67b4c\n"
    },
    {
      "commit": "660a74ebf0a8b5b6c79f9a016b202ccfaf815d3b",
      "tree": "f3f829a87ab0b3b8ad3a4d00cbeb826a5bd326b6",
      "parents": [
        "fddc1453b67977dac1c56f98399b6b988c232366"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Dec 13 11:29:45 2017 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Jan 17 14:37:19 2018 +0900"
      },
      "message": "Create constructor of JAudioTrack class\n\nBug: 70363744\nTest: Built successfully (mmm libmedia -j48)\nChange-Id: I51e0510039fca2e84d1ced103fea62156cd1e5c2\n"
    },
    {
      "commit": "41069f2ade1fb66c86973d4a241eeb52d2818330",
      "tree": "baa75d27abb90390582a9078a0f89af16165a555",
      "parents": [
        "0cde7e5863df60ece6986ad9b5b4358dc82380eb",
        "3e6d245e154f8a382fd88529c2572d1117685511"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 16 22:46:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 16 22:46:26 2018 +0000"
      },
      "message": "Merge changes from topic \"load_plugins\"\n\n* changes:\n  Load extractor libs directly from update APK\n  Keep the in-use extractor plugins when updating.\n"
    },
    {
      "commit": "3e6d245e154f8a382fd88529c2572d1117685511",
      "tree": "c80af5c77faac575297581c4d82448f53e16609e",
      "parents": [
        "5e1897bbd25d8353d9567b746ce50d4b80d30564"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jun 29 15:21:53 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Jan 12 18:03:50 2018 -0800"
      },
      "message": "Load extractor libs directly from update APK\n\nTest: play MP4 file. install and uninstall media update apk.\nBug: 67908547\nChange-Id: I80c7772e25ba010be468834ce238f0fb86bc8d14\n"
    },
    {
      "commit": "66d3fc1ff54c855139a8af91d4927474e3b5b0dc",
      "tree": "46a0d2f19a353028870b0a4c4a98a679d7eb3598",
      "parents": [
        "e56fc185471f2d678af96a120cfd899bd6c8a42d",
        "ed30470cf0a20c0c1edb2b82075985ccaa6c75c1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 12 05:46:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 12 05:46:16 2018 +0000"
      },
      "message": "Merge \"collect media.metrics from audiotrack\""
    },
    {
      "commit": "ed30470cf0a20c0c1edb2b82075985ccaa6c75c1",
      "tree": "b90723f645ab06ca927b3e9a7d81fdef1f99d57e",
      "parents": [
        "21f6d6cbecf190724b044251576edf6ee6f48364"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 12 14:00:57 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 11 14:57:53 2018 -0800"
      },
      "message": "collect media.metrics from audiotrack\n\ninitial pass at collecting metrics information from audiotrack.\n\nBug: 70569777\nTest: manual via dumpsys media.metrics\nChange-Id: Ia6ed6d93bd487e4323b86dd4ffabae232f79f94b\n"
    },
    {
      "commit": "9321dc866ea81a90e765c06fe20adec7e163338a",
      "tree": "a9eea32e29c038e32518b379d17b5a9da4c612f9",
      "parents": [
        "f7ad0ee1aa095b9e6dd9d15f2465909d6f74c825",
        "17459336d0ce08a6b9c3b679fdccbf83c26f1ef5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 10 00:07:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 10 00:07:49 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: call close when reset\""
    },
    {
      "commit": "17459336d0ce08a6b9c3b679fdccbf83c26f1ef5",
      "tree": "82b79a3ffb1faa740a33415c41d73a0ebf648e3c",
      "parents": [
        "fddc1453b67977dac1c56f98399b6b988c232366"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 09 14:21:23 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 09 14:21:23 2018 -0800"
      },
      "message": "MediaPlayer2: call close when reset\n\nTest: MediaPlayer2Test pass\nBug: 63934228\nChange-Id: I88f95abbcca7c66929cc5aeb491b817344d32e83\n"
    },
    {
      "commit": "4af3bd591191ed6377a2ab8021c1e76ca8824597",
      "tree": "1b966c7f0d25df6a3ddba403a839d3f763b7dcfa",
      "parents": [
        "4228c5350a4a1e1a90b418cd63ae02a53e00064e",
        "4e69ad15e481883b53ddd37e371ab5f3560dca7a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 09 20:34:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 09 20:34:39 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: allow JAVA on HLS loopers\""
    },
    {
      "commit": "4e69ad15e481883b53ddd37e371ab5f3560dca7a",
      "tree": "c0b69cb664cd6514f1d764bc1db772ca2dcfaeba",
      "parents": [
        "fddc1453b67977dac1c56f98399b6b988c232366"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 08 16:18:56 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 08 16:18:56 2018 -0800"
      },
      "message": "MediaPlayer2: allow JAVA on HLS loopers\n\nTest: StreamingMediaPlayer2Test pass\nBug: 63934228\nChange-Id: Ic66df9cd8812897aa4213c49591f3b5c56c3949d\n"
    },
    {
      "commit": "fad26c14c7e68c3fe40bda8fd5692b8dbfac1000",
      "tree": "8d2450c188a3887abb20473d32fcfb57b6b382bb",
      "parents": [
        "bf4637b5b8d8086fdfc92e691d470d283ce6e37f"
      ],
      "author": {
        "name": "Santhosh Behara",
        "email": "santhoshbehara@codeaurora.org",
        "time": "Mon Oct 16 17:23:54 2017 +0530"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Jan 05 18:03:44 2018 +0700"
      },
      "message": "libmedia: Fix null pointer crash in secure buffer allocation.\n\nAdd null pointer check for native_handle as it is null if\nsecure memory allocation fails.\n\nAuthor: Vasantha Balla\u003cvballa@codeaurora.org\u003e\n\nTest: fix the bug\nBug: 71053053\nChange-Id: I204ca69b9808448788c83a1ae5a642618eca8973\n(cherry picked from commit 617b0827bc7daf66272455034c1dddd10b846663)\n"
    },
    {
      "commit": "c5c79dacf6664f2c86704b75003dd13ffeddfb45",
      "tree": "9ae9a39fe5eac1416308239120d0fb99f0e7baa3",
      "parents": [
        "28288fb0b1da843cdd37edab0cdecff32abacdce"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 21 18:03:05 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 21 18:03:05 2017 -0800"
      },
      "message": "MediaPlayer2: use DataSource to replace IDataSource.\n\nAlso fix deadlock by always posting notification to NuPlayer2Driver\u0027s\nlooper.\nTest: MediaPlayer2 can play callback source.\nBug: 63934228\n\nChange-Id: Ie27bc0038bcc07ffef5c610662db3fcb5df7aec4\n"
    },
    {
      "commit": "28288fb0b1da843cdd37edab0cdecff32abacdce",
      "tree": "918728942ac72639cdb27f1ad927ba8243e228bf",
      "parents": [
        "8074715204c83d00a340429cb4a41e52425c0a51"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Dec 15 13:45:29 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 20 14:54:42 2017 -0800"
      },
      "message": "MediaPlayer2: use ANativeWindow to replace Surface and IGraphicBufferProducer\n\nTest: MediaPlayer2 plays video files\nBug: 63934228\nChange-Id: Id655aa19125cfc5554dbf36c223d0a27318ebb24\n"
    },
    {
      "commit": "8074715204c83d00a340429cb4a41e52425c0a51",
      "tree": "b2cbfb383b395e4dfbdd7432f4b1d1d7267f6fcf",
      "parents": [
        "9af21f112c6e3feff780626240f4d172b16f8d3b",
        "ff282cbc6bbe58d84b041bb68339f5ca9b55d4cf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 20 21:42:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 20 21:42:07 2017 +0000"
      },
      "message": "Merge \"Add Ndk MediaExtractor wrapper\""
    },
    {
      "commit": "ff282cbc6bbe58d84b041bb68339f5ca9b55d4cf",
      "tree": "8eb251126d46a086a1dd0a78d26de136f052ef27",
      "parents": [
        "68d8897638cf8b1a572cd63b659bf7c1a88fb323"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Dec 18 14:10:56 2017 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Dec 20 19:52:19 2017 +0000"
      },
      "message": "Add Ndk MediaExtractor wrapper\n\nBug: 69805888\nChange-Id: Id41ba3a6984171643d53e2a5de615829071b16d4\n"
    },
    {
      "commit": "0b466551491988f38394a66135cee19ab13b8479",
      "tree": "69a17f0d4e73bcde917452c2f4c34ccf5e7262f3",
      "parents": [
        "0726a4e4086dc6b6c44b90a775a8ded96cc80c31",
        "15d02f84351eaca14099bde11cfbf6f124bea71f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 20 02:06:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 20 02:06:37 2017 +0000"
      },
      "message": "Merge \"Define constants in IStreamListener in MediaKeys.h\""
    },
    {
      "commit": "307f6056aea8f2ec98e7451742e307d2fc7acb35",
      "tree": "0294f9425f56017a241eeeaba4ea540e396473e5",
      "parents": [
        "3d2c309be468a0a66fad3a6dd35525bf059a35ac"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Nov 22 11:53:48 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Dec 19 14:17:12 2017 +0900"
      },
      "message": "Remove unused MediaSource::setBuffers\n\nOriginally added with Ie03b285265099db, but the use case was gone with\nOMXCodec.\n\nTest: make checkbuild\nBug: 67908542\nChange-Id: I6c4953126ab80f876a6dca258e112bb2eaee440d\n"
    },
    {
      "commit": "15d02f84351eaca14099bde11cfbf6f124bea71f",
      "tree": "0d867f26034186e29b8271391ad6a1baf3516fdb",
      "parents": [
        "2a8dbc7611d3861d696c167ebdced50158bbebe1"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Dec 14 16:32:18 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Dec 19 01:26:18 2017 +0000"
      },
      "message": "Define constants in IStreamListener in MediaKeys.h\n\nCurrently, constants in IStreamSource are being used in ATSParser while\nthey are separate entities. This defines those constants in MediaKeys.h\nso that ATSParser can be used without depending on IStreamSource.\n\nThis removes libmedia dependency from libmpeg2extractor.\n\nTest: build.\nBug: 67908537\nChange-Id: I503a4cdb530825b1932463efae999d120b839e56\n"
    },
    {
      "commit": "51f4c87119e8c09396411f32cc82db3fd62e19e7",
      "tree": "ce6a1df2e5da46a76d0f02670f68fb94adfbf16c",
      "parents": [
        "2a8dbc7611d3861d696c167ebdced50158bbebe1"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Dec 15 12:27:56 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Dec 15 14:58:18 2017 -0800"
      },
      "message": "nuplayer/2 emit state name, not number\n\naugment both nuplayer and nuplayer2 so that the state information\nthey emit to media metrics for error exits is symbolic, not numeric.\n\nBug: 70525617\nTest: manual\nChange-Id: Ie43266cd75810ff4ea6e00f32a1666dc9a5a37dc\n"
    }
  ],
  "next": "5ed2faf66791b345bb94406b4aeddd6271c25e01"
}
