)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "5ed2faf66791b345bb94406b4aeddd6271c25e01",
      "tree": "43bd18b557a77a53afaa906dafa7ac38338b001d",
      "parents": [
        "599660ea6a581eda4b2f62caf7b086814f2b2ba3"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 14 16:07:21 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 14 16:07:21 2017 -0800"
      },
      "message": "NuPlayer2Decoder: Count all nuplayer frames\n\nnuplayer counts frames: both total and dropped. One path during\nintentional skipping counted those frames as dropped, but not as\npart of the total. This moves the accumulation of total frames up\nto a point where it will also include these intentionally\nskipped/dropped frames.\n\nBug: 70297008\nTest: manual\nChange-Id: I0f56c1edd949e937c85ff2392415b61bf7422a55\n"
    },
    {
      "commit": "be9b9730488a13add26e1c9f301f7ba3e4a26945",
      "tree": "7974c30804c1003417acabfa9626775e4e8406ed",
      "parents": [
        "00afb7b521a47d1be4ed9f6fa7d72572756042d3",
        "021c8bc0db0a8934881f99ce4926eb9e0f169f6a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 14 17:05:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 17:05:56 2017 +0000"
      },
      "message": "Merge \"Remove unnecessary links\""
    },
    {
      "commit": "3c2ea1859cb6c0dbf6a3e97a85d5d7bec53ea9d2",
      "tree": "cb083204d4b3a101f347ce2a7316dcc625cd847d",
      "parents": [
        "d8e1a06174cea4ceece3cb82923c9318d69c7139",
        "12b9f4a2f866c5917bcce1d510df0d5ffeb99d05"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 14 02:18:17 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 02:18:17 2017 +0000"
      },
      "message": "Merge \"NuPlayer2: send notification on helper thread avoid deadlock.\""
    },
    {
      "commit": "d8e1a06174cea4ceece3cb82923c9318d69c7139",
      "tree": "ed733ebe49afe287d00350b80a46353085ad238c",
      "parents": [
        "c6696cc07c039ed74d2adacb94a6bebdba4eda70",
        "514674257ef6954a7479ac93a26a07061f54462d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 14 01:30:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 01:30:45 2017 +0000"
      },
      "message": "Merge \"Remove IDataSource dependency from DataSource.\""
    },
    {
      "commit": "12b9f4a2f866c5917bcce1d510df0d5ffeb99d05",
      "tree": "6c1aa191cd4dfcfacd2b25837dba59e9e17e9fe1",
      "parents": [
        "7b9317ae3ff924762d7fd7702c8416b1199d3d93"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 13 15:24:13 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 13 15:46:37 2017 -0800"
      },
      "message": "NuPlayer2: send notification on helper thread avoid deadlock.\n\nTest: MediaPlayer2 works for local file playback\nBug: 63934228\nChange-Id: Idb1f9d865f9060a3886f465147d7c1e45a669455\n"
    },
    {
      "commit": "514674257ef6954a7479ac93a26a07061f54462d",
      "tree": "f39d7a94eb112b03d0229f50c35cb71cf22d5f4d",
      "parents": [
        "bc3ebbfa92364d635fa879b901ef83070820e8c0"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Dec 08 06:07:16 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Dec 13 15:26:05 2017 -0800"
      },
      "message": "Remove IDataSource dependency from DataSource.\n\nThe logic for requesting file data source to media extractor service\nmoved to MediaExtractorFactory from GenericSource.\n\nBug: 65851881, Bug: 63934228\nTest: MediaCts post commit tests\nChange-Id: Iaba6d9bec560f0cd8a826f47d74bf491a34c83e9\n"
    },
    {
      "commit": "021c8bc0db0a8934881f99ce4926eb9e0f169f6a",
      "tree": "96beb207bbd52294243a35b2e8933f71f0e7f740",
      "parents": [
        "2ef26a0d04b9cc6cebbda733056e4ac09f738c61"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 13 14:38:49 2017 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 13 14:40:19 2017 -0800"
      },
      "message": "Remove unnecessary links\n\nTest: build\nChange-Id: I5b7c37648df8043795bad9b0544ecf77a5148b69\n"
    },
    {
      "commit": "5096385d0e5c102a7297d53aeb693402f304f5af",
      "tree": "329fa6face6b4bba3c719ac84b5077bd6c2a01f0",
      "parents": [
        "2eee2bf902e9dd3aeaa8dbfed3cdeddc19100878"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 12 06:24:42 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Dec 13 04:29:40 2017 -0800"
      },
      "message": "Make a separate MediaPlayer2Base::NotifyCallback\n\nThis avoids the collision with notify_callback_f.\n\nAlso, this CL should fix the potential use-after-free in notify().\n\nTest: Builds properly\nBug: 70546581\nChange-Id: Ia4919522d00c94591d6f14a27cb6465a8c4efaeb\n"
    },
    {
      "commit": "7b9317ae3ff924762d7fd7702c8416b1199d3d93",
      "tree": "2e82493e024e8c1b55de817667d59d45e40f7ca2",
      "parents": [
        "b72033db3884d544987dc62297859cd6d96d4b09",
        "53692fa54d0bf1d69184035a4c05ea0601a09c14"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 12 00:00:36 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 12 00:00:36 2017 +0000"
      },
      "message": "Merge \"NuPlayer2: fork the native code for MediaPlayer2\""
    },
    {
      "commit": "53692fa54d0bf1d69184035a4c05ea0601a09c14",
      "tree": "19eb348e35448717f1d2d1e45befd2146d7f79db",
      "parents": [
        "fde0931ffe3ceeb06bb61f90a4289691da9380a8"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Dec 11 10:33:46 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Dec 11 13:58:47 2017 -0800"
      },
      "message": "NuPlayer2: fork the native code for MediaPlayer2\n\nForked from fec2f93fae282ad10bbb5e3fcce9f60eff2cfb48\nNuPlayer2Decoder uses NdkMediaCodec, NdkMediaCrypto.\nNuPlayer2Drm uses NdkMediaDrm.\nNo more IMediaHTTPService and IMediaHTTPConnection in NuPlayer2.\nTest: compiles\nBug: 69805888\n\nChange-Id: Ica3c168d40dcf114fb44e8688a9ede671e8d77ef\n"
    },
    {
      "commit": "95cae89392022dce4d0cd4405a4f5a2c4ebd13fa",
      "tree": "edc9c43bddd80e4d2d03cc07de85010254741954",
      "parents": [
        "02ce5a7f42ebe646f92b88988c9e765b7bc3cfbc",
        "93623590f7dc02f3e0a4ee9cb7656ba5888c0449"
      ],
      "author": {
        "name": "Zhuoyao Zhang",
        "email": "zhuoyao@google.com",
        "time": "Fri Dec 08 04:01:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 08 04:01:52 2017 +0000"
      },
      "message": "Merge \"Explicit define getFrameAtIndex as pure virtual function.\""
    },
    {
      "commit": "93623590f7dc02f3e0a4ee9cb7656ba5888c0449",
      "tree": "443f6c6d93eed47536718096583a7e1893a38df2",
      "parents": [
        "b86313b6b3d38632fe0969f94607e66e457dfd5c"
      ],
      "author": {
        "name": "Zhuoyao Zhang",
        "email": "zhuoyao@google.com",
        "time": "Thu Dec 07 16:22:59 2017 -0800"
      },
      "committer": {
        "name": "Zhuoyao Zhang",
        "email": "zhuoyao@google.com",
        "time": "Thu Dec 07 16:22:59 2017 -0800"
      },
      "message": "Explicit define getFrameAtIndex as pure virtual function.\n\n* It is needed for gcov build as no comipler optimization is done with\n  gcov build.\n\nTest: lunch walleye_coverage-userdebug \u0026\u0026 make\nChange-Id: I2e1d70c1bc2dadada70aa1bd1f5c27551f128d3b\n"
    },
    {
      "commit": "fde0931ffe3ceeb06bb61f90a4289691da9380a8",
      "tree": "0f71bc3590ee831f1a6930fbfe4c32e4aaf5f374",
      "parents": [
        "a44e24ea53e61be704387ed8b567818a184e6f25",
        "73feb8cda587e02f1ff68095b17d47e1d6e37c70"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 06 23:41:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 23:41:59 2017 +0000"
      },
      "message": "Merge \"Stagefright: remove binder dependency on IMediaHTTP*\""
    },
    {
      "commit": "73feb8cda587e02f1ff68095b17d47e1d6e37c70",
      "tree": "13bb5adb1c59eef2b1619bf44639a3d4e6267187",
      "parents": [
        "cd742b9174eac9f8b6a108512818f2d3a2392ea8"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 05 14:07:27 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 06 09:42:43 2017 -0800"
      },
      "message": "Stagefright: remove binder dependency on IMediaHTTP*\n\nuse non-binder version of MediaHTTPService and MediaHTTPConnection in\nsource related components\nTest: media continuous CTS tests\nBug: 63934228\nChange-Id: Icfc0b18eb3dfadb8d94979e398a9b94c062c62ed\n"
    },
    {
      "commit": "fec2f93fae282ad10bbb5e3fcce9f60eff2cfb48",
      "tree": "3c2dc6668d62b13c4fe5e53bb0a4e821f8cf8a6d",
      "parents": [
        "b6549b6297c7f6dcbd2c0b27b61407cde144530c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 24 10:10:53 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 28 17:44:09 2017 -0800"
      },
      "message": "Add AudioRouting interface in AudioRecorder.\n\nBug: 64038649\nTest: Run cts in RoutingTest\n      Switching input device when using MediaRecorder\n\nChange-Id: I53f22974f8c3dacaef6044ea742e62951961c1fd\n"
    },
    {
      "commit": "1d5f93d24444ded52a0daf36cb8471a38c88638f",
      "tree": "68103b3d223d44b81024a7e3ef62e2c08be18f03",
      "parents": [
        "6da1a2fefc68e63b72daa6565047b7082135c4c1",
        "fbc97c5266ec4e9fbe98db944f7aa99452299ae8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 22 03:37:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 03:37:56 2017 +0000"
      },
      "message": "Merge \"heif: add muxer support for adding still images\""
    },
    {
      "commit": "fbc97c5266ec4e9fbe98db944f7aa99452299ae8",
      "tree": "99b1eb109a0fafa647ed03a05ec75b89385e7a49",
      "parents": [
        "ef9fc7792d4995da68cb71a3e9f2304e565a016d"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Nov 10 13:49:46 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Nov 21 15:50:34 2017 -0800"
      },
      "message": "heif: add muxer support for adding still images\n\nThis change adds basic support for adding still images to a\nheif container.\n\nbug: 63633199\n\ntest:\nLocally built test app that adds more than one still images\nand video sequences to a heif container. Verified the muxed\nfile can be played by locally built heif viewer app that\nuses MediaExtractor/MediaMetadataRetriever/MediaPlayer apis.\n\nTested media post-submit CTS on Pixel2XL.\n\nChange-Id: I185bbbbed3dbb4e76d64bcf7323ee44a42cc8623\n"
    },
    {
      "commit": "e7b894297aebc24939ddfa632ea3dd2d405d9f93",
      "tree": "9ecbc48782ee462413281ecdf7f5b6b276e96eee",
      "parents": [
        "068fe16a1b8f511046ba787f33605c0ac64f1ab5"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 19:33:39 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:32:11 2017 -0800"
      },
      "message": "Remove dependency on non-Treble OMX\n\nThis essentially reverts commit ba40190c5e8d9bfe5b814984c6861809fea064bd,\nwhich was made originally for b/69110957.\n\nThe change in addition to reverting is the reordering of calls in\nmain_codecservice.cpp. This CL makes the call to SetUpMinijail() come\nbefore the call to ProcessState::self()-\u003estartThreadPool().\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 67990472\nChange-Id: Ic62acf3ae1aa3f9249e5c3ce542fb4f95689704e\n"
    },
    {
      "commit": "068fe16a1b8f511046ba787f33605c0ac64f1ab5",
      "tree": "8012260051c564bb5cfc4b24d94bcbef28cf410c",
      "parents": [
        "2b1f16f57c984c9b4b320788fdb2733c519281e8",
        "ba40190c5e8d9bfe5b814984c6861809fea064bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 01:54:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 01:54:48 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\"\""
    },
    {
      "commit": "ba40190c5e8d9bfe5b814984c6861809fea064bd",
      "tree": "f935c1e123522e1624163278a8b8564c71c9a394",
      "parents": [
        "77a5b891eb2c64246c82d695aac40c5312f0ff3e"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 15:38:46 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:57:36 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\"\n\nThis reverts commit 620e4667dc41e17e365615fda4507fa9f7267ca0, which was\nmade originally for b/67990472.\n\nBug: 69110957\n"
    },
    {
      "commit": "9bb3803a80a680ea7a3bc11e07b8a89ccddee003",
      "tree": "1ad46a98f44bd2c487678c05825c374cca92b338",
      "parents": [
        "63ca96305e389e4504ab8d89111dc8719d00161f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Mar 23 18:00:38 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sun Nov 12 14:32:02 2017 -0800"
      },
      "message": "BufferingSettings: simplify buffering control.\n\nNow only 2 marks, initialMarkMs and resumPlaybackMarkMs, remain.\nTest: pass cts tests\nBug: 36280094\nChange-Id: I03c8e2a0db9f7e845f57e76f51874cd8715a48d4\n"
    },
    {
      "commit": "25a0160e3dfa126266cbe5d8e05c003798276a70",
      "tree": "7ac92c9e53ad197b928304ab34c9371a77468ce4",
      "parents": [
        "94d28be1805800764701225fcae696aa11dab93e",
        "620e4667dc41e17e365615fda4507fa9f7267ca0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\""
    },
    {
      "commit": "8568cb93fc862312923b514b7f4052b9e67bd8ad",
      "tree": "b177247be333681954856c885b396bdfde3fb694",
      "parents": [
        "248c9ee9de29ec6177c39921492661edaee06382"
      ],
      "author": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Mon Oct 30 11:13:36 2017 +0900"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Tue Nov 07 02:54:04 2017 +0000"
      },
      "message": "Remove libmedia_omx_defaults from libmedia\n\nlibmedia_omx_defaults includes source files and this default was\nused in both libmedia.so and libmedia_omx.so. This is an issue because\nlibmedia_omx and libmedia are both loaded in the framework process\nthrough dependency chains such as libstagefright -\u003e\nlibstagefright_omx_utils -\u003e libmedia_omx.\n\nTo fix the issue, libmedia_omx_defaults is removed from libmedia and\nlibmedia now depends on libmedia_omx. Other modules/libs that originally\ndepended on libmedia and need access to libmedia_omx_defaults\u0027 source\nfiles, now depend on libmedia_omx as well.\n\nBug: 67871061\nTest: mma -j and boot test\nChange-Id: I93a10df1fed3c7cea93b580d00f33ba749d80e95\n"
    },
    {
      "commit": "156c6873a5e69af71f3c28b236c5831b9cb2ac95",
      "tree": "3e36c1490f5f2d22e6e79fac3d4f59a9559403ee",
      "parents": [
        "ef9fc7792d4995da68cb71a3e9f2304e565a016d"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Oct 06 09:47:15 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Nov 02 11:14:55 2017 -0700"
      },
      "message": "Add AudioRouting interface for MediaPlayer\n\nBug: 64038649\nTest: Run cts in RoutingTest\n      Switch output device when playing music/video with MediaPlayer\n\nChange-Id: I5b5c288e6557199b0a6986785f9335a18a80ab89\n"
    },
    {
      "commit": "620e4667dc41e17e365615fda4507fa9f7267ca0",
      "tree": "bbeb8927781dba36cea9dd200e9be4f4279ef55e",
      "parents": [
        "ef9fc7792d4995da68cb71a3e9f2304e565a016d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Oct 27 00:12:47 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 31 17:15:15 2017 -0700"
      },
      "message": "Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\n\nThis reverts commit 85e88d9b45d4a9b0b012f81ac068d216f588caac.\n\nAlso, this fixes the crash that would happen on devices that do not have\nfull Treble enabled.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 68340092\nBug: 67990472\nChange-Id: I6d96cecb8eaa8691c4c0f15fe0c8e60d0c74b440\n"
    },
    {
      "commit": "d3e0d861aa68a7ef129fe228595bff734448ebc8",
      "tree": "4bbe13bb4dee4cc5f6059f4f0898f615beac820f",
      "parents": [
        "1e848d329b019e832a03c0e9d0e4eb6796c971c2"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Oct 03 13:17:13 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Oct 30 19:58:30 2017 +0000"
      },
      "message": "heif: fixes for image sequences and dual-function files\n\nAdding support for two new sets of APIs on MediaMetadataRetriever:\n\n- getImageAtIndex() and getPrimaryImage()\n- getFrameAtIndex() and getFramesAtIndex()\n\nOutline of changes:\n\n- Proper indexing of all displayable still images, so that they\n  can be retrieved by getImageAtIndex()\n\n- Exposing still images as \"image/x.android.heic\" tracks in\n  MediaExtractor with necessary descriptive keys (such as \"grid-*\")\n\n- Support to retrieve video frames by absolute index instead\n  of timestamps, as image use cases mostly are interested in\n  getting the images and care less about timing.\n\n- Support to retrieve video frames in batches because retrieving\n  one frame at a time is inefficient.\n\n- Refactor image / frame decoding code into FrameDecoder, and split\n  still image decoding and video sequence decoding into to sub\n  classes to facilite future development.\n\nbug: 63633199\n\ntest:\ncts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg CtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice\n\nChange-Id: I2fe8519fb6907f315a8b513921fc1cc7f436e28d\n"
    },
    {
      "commit": "32d82714da38ad86803a56870734d49bcf30c29d",
      "tree": "b001dbe01990cc9e142d15f3b439cb34c51405f0",
      "parents": [
        "7c7124e693b20eafb4e0e86f996419c5597e0fbf",
        "00c05a502837d834de257623980b5ea1b849e945"
      ],
      "author": {
        "name": "ray-cy.lee",
        "email": "ray-cy.lee@mstarsemi.com",
        "time": "Mon Oct 23 22:22:14 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 23 22:22:14 2017 +0000"
      },
      "message": "Merge \"CTS error while media dump()\" am: 5617fb288b am: 1e216bc835\nam: 00c05a5028\n\nChange-Id: Ic16f7486d6768ddd7e36e396321b8630bd9ad36b\n"
    },
    {
      "commit": "00c05a502837d834de257623980b5ea1b849e945",
      "tree": "8b0e46c13f5f6e770d3b1de8bafe215ed451119b",
      "parents": [
        "90f704352e8a4f10ed0afa37dedffdfc9f45b484",
        "1e216bc835a9e8d0336272ecdb5a398718a8f1db"
      ],
      "author": {
        "name": "ray-cy.lee",
        "email": "ray-cy.lee@mstarsemi.com",
        "time": "Mon Oct 23 22:18:20 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 23 22:18:20 2017 +0000"
      },
      "message": "Merge \"CTS error while media dump()\" am: 5617fb288b\nam: 1e216bc835\n\nChange-Id: Ibd50eb3f30b842634f9d521b45014efda89a0b2e\n"
    },
    {
      "commit": "1e216bc835a9e8d0336272ecdb5a398718a8f1db",
      "tree": "0ef8dbc8994c088c6622426445e4e96a7bf733ce",
      "parents": [
        "d9c907b8fd9bc146c366b55dc689987b4fa31352",
        "5617fb288bc3f8335273f526a5ca7c18d67076cf"
      ],
      "author": {
        "name": "ray-cy.lee",
        "email": "ray-cy.lee@mstarsemi.com",
        "time": "Mon Oct 23 22:14:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 23 22:14:58 2017 +0000"
      },
      "message": "Merge \"CTS error while media dump()\"\nam: 5617fb288b\n\nChange-Id: I28ee37f7842e6723deeac029ee3a60a43eea811a\n"
    },
    {
      "commit": "5617fb288bc3f8335273f526a5ca7c18d67076cf",
      "tree": "159bcef47fd162a37cc8dba27fe2a93b12561665",
      "parents": [
        "cf8437acd9d973e416702d9bddefea3ef2905e05",
        "b596c34e953f167030bf695d1f813e99d238abdd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 23 22:09:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 23 22:09:36 2017 +0000"
      },
      "message": "Merge \"CTS error while media dump()\""
    },
    {
      "commit": "efe396f44fd7d347d4c3266760bfee60e7572da8",
      "tree": "de11c148ca7a8f245e11e864580c7fc99d6df333",
      "parents": [
        "08a5a3a473354c965c32190f8b68549d19e08912"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 17 17:23:30 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Oct 19 14:00:54 2017 -0700"
      },
      "message": "Include external modules statically in extractor implementations\n\n- Statically include libvorbisidec in OggExtractor\n- Statically include libstagefright_flacdec in MatroskaExtractor\n- Statically include libsonivox in MidiExtractor\n- Include MidiIoWrapper as a static lib in MidiExtractor\n\nTest: build\nBug: 65851881\nBug: 67908539\nChange-Id: I1406f86e7a64fe96a1fdbcaeaa47912dfe34f33a\n"
    },
    {
      "commit": "d91dc5a0602f54fc0d4d2187f37b5b8169bb62c3",
      "tree": "4a3b6fb269ae76af3c0567cc1d57780c17bd2c30",
      "parents": [
        "04ce1be860b40e18ca7f5fdf64ecb82567d7fe24"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 10 00:07:09 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 17 13:43:59 2017 -0700"
      },
      "message": "Remove libmedia and libstagefright dependency from extractors\n\n- MediaSource, DataSource and MediaExtractor are moved to\n  libmediaextractor so that they can be used by extractor\n  implementations without depending on libmedia and libstagefright.\n- XXXFactory classes has been added in order not to expose CreateXXX\n  methods in libmediaextractor.\n- avc_utils is moved to libstagefright_foundation since most of\n  extractor implementations are relying on that.\n\nTest: build + post submit media CTS tests\nBug: 65851881\nChange-Id: I7d5cf18dd25abc10478ac3f6e7d1828ad023e3fb\n"
    },
    {
      "commit": "b7798a01d4b68bf2406907bb58f29b48dece8214",
      "tree": "b0b34ca04c0d22b24ac4dddf7a8f31aae333a800",
      "parents": [
        "284aa3014feb77fc89143caa00fc8f31c1300f0f"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Mon Oct 09 23:21:44 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Oct 12 17:14:51 2017 -0700"
      },
      "message": "Remove OMX dependency from MediaPlayerService\n\nAlso, convert Android.mk files to Android.bp.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts \\\n-m CtsMediaTestCases \\\n-t android.media.cts.MediaPlayerTest\n\nBug: 67652488\nChange-Id: I7172d1a2513826a5dafbe51245af11d863f50585\n"
    },
    {
      "commit": "e7a8a637a019d67983bdc858ba5e879431619d5a",
      "tree": "003bb115ddea9d683add0462cb5e74934531ad28",
      "parents": [
        "607612858f3afad1ade51a098aafa2a41523b5f7"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Oct 09 14:52:58 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 11 08:58:10 2017 -0700"
      },
      "message": "Move MediaDefs from libmedia to libstagefright_foundation\n\nThis is needed to remove the libmedia dependency from extractors.\nOther remaining dependencies like IMediaSource::ReadOptions will be\naddressed with a separate change.\n\nTest: build\nBug: 65851881\nChange-Id: I4460e960360db4847a0784732accd0cfe28a9ec0\n"
    },
    {
      "commit": "75226177f20a176d50e3e53bbb34067cb49112c3",
      "tree": "31d809eeb7e884765c8538bac139be1079e1f1a3",
      "parents": [
        "a098be2bfa75d04c07f5bbf7a3eb991add89f260"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 16 14:10:52 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 03 15:03:19 2017 -0700"
      },
      "message": "Make extractors separate libraries\n\ninstead of being integrated into libstagefright\n\nTest: thoroughly\nChange-Id: I11cdfde6d2daf248c8e0f99237db1c74be260eb0\n"
    },
    {
      "commit": "3bf0ed6fbcd491f004183420ae6899073e708023",
      "tree": "f3ac22a0fc637f9f39823ea47bcb6bb1e8ef951f",
      "parents": [
        "90dce865f180e792f472a09b4c9a1f0e66d3a7bf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 20 15:42:12 2017 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 20 15:42:12 2017 -0700"
      },
      "message": "Remove unused libraries\n\nTest: build\nChange-Id: Id76aff6c4b11a95726d8f5a5a1f91898dfe34ddb\n"
    },
    {
      "commit": "d14133d15a41a6fe2d27cf6e408b464f28de9b62",
      "tree": "46c400270697e6667f3ea429a8d74fa92a26f226",
      "parents": [
        "7eaae5b788b37f5e19ca9b03d79ef32bd8b0df8a",
        "d0a98fa05f0f6719b93d000c4638230af06e0b99"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 18 18:35:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 18 18:35:56 2017 +0000"
      },
      "message": "Merge \"stagefright: remove Miracast sender code\""
    },
    {
      "commit": "d0a98fa05f0f6719b93d000c4638230af06e0b99",
      "tree": "438b19e4d9bddffee72c9bab98772d99bd6b7cb1",
      "parents": [
        "5bb3cfe6f3591736a82ac8ede71ced1472e19700"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Sep 14 17:43:10 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 18 18:34:59 2017 +0000"
      },
      "message": "stagefright: remove Miracast sender code\n\nThis has been deprecated for some time. Remove this from codebase\nto avoid introducing new HAL for HDCP. Log warning and return NULL\nwhen remote display is requested. \n\nbug: 62213914\nChange-Id: I3560b60fe83a01c51df0f2e715a8f2c760e57bf8\n"
    },
    {
      "commit": "dddb4326c090fa8ea37168d861eb11cd3a66e0c9",
      "tree": "ac7473cadcb70f130c14ceb9a476fc40d0b41cee",
      "parents": [
        "1841755b4507a8a132895f2e2d214fa759ae7b22",
        "52c2851b30588df1aba00766c37ffde86a3345bc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 20:15:36 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 15 20:15:36 2017 +0000"
      },
      "message": "Merge \"MediaPlayer: add notifyAt at native side\""
    },
    {
      "commit": "52c2851b30588df1aba00766c37ffde86a3345bc",
      "tree": "9ff98868cdbc27ab5cfd19f7cf8cae155b7cd6c4",
      "parents": [
        "014df71ed78023d99ca72578f7866cabbc1e6601"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 13 18:17:51 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 13 18:20:53 2017 -0700"
      },
      "message": "MediaPlayer: add notifyAt at native side\n\nTest: media time is correct when playback rate is not 1.0\nBug: 65204641\nChange-Id: Ie9f67e3cb37267cfd364c9a9b9f674232b68ef27\n"
    },
    {
      "commit": "e8a88b1b0522d1fc761a449cbe9356a0c52cb851",
      "tree": "9b6fbe5f39628daf2d7d4b3d35d071291fb8b795",
      "parents": [
        "6206ce50a6b382256acadd9b3c18b31c597b1ca6",
        "27bb9751401280b1b421ca6b8971a8a556c583d3"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Sep 08 20:39:40 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 08 20:39:40 2017 +0000"
      },
      "message": "Merge \"stagefright: explicitly release extractor in StagefrightMetadataRetriever\" into oc-mr1-dev am: 0faac73f3f\nam: 27bb975140\n\nChange-Id: I89fd791144eb3bd3992102a48a444df5c637ed64\n"
    },
    {
      "commit": "0faac73f3fc3a5327675507fb28dffe0425b8bce",
      "tree": "0104e5734409530119a854cc3d7d382e68fe6d32",
      "parents": [
        "335e0f89aab2a22f0e4259add976c22ac1a087f6",
        "4c6398b1f8f0525c9ff9a53484b3b9b601bca35b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Sep 08 20:20:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 08 20:20:20 2017 +0000"
      },
      "message": "Merge \"stagefright: explicitly release extractor in StagefrightMetadataRetriever\" into oc-mr1-dev"
    },
    {
      "commit": "4c6398b1f8f0525c9ff9a53484b3b9b601bca35b",
      "tree": "1a005a8d0c95f765ecb6eb5de4ae5386fedc2c35",
      "parents": [
        "faf18c58baf4db501c9707a30fd811a4c9386a26"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Sep 07 17:43:19 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Sep 07 18:32:09 2017 -0700"
      },
      "message": "stagefright: explicitly release extractor in StagefrightMetadataRetriever\n\nExtractor dtor on media.extractor side happens asynchronously with the\ndtor of StagefrightMetadataRetriever. If the extractor calls back into\nthe DataSource after mediaserver side released the reference to it, the\nbinder transaction could get stuck.\n\nAdding an explicity release() and call it before StagefrightMetadataRetriever\ncontinues to destruct the DataSource. Only implement it for MPEG4Extractor\nto avoid impacting other extractors at this stage.\n\nAlso adding some code to aggressively release the extractor and data\nsource in HeifDecoderImpl to free up memory.\n\nbug: 65463215\n\nChange-Id: I84c442a1e010dd37a976af5453a353e43f672e22\n"
    },
    {
      "commit": "c74217673708b2efba97301b1c4455b8fd872a7f",
      "tree": "f79927567b2c808b605fda4ec31823d22d294922",
      "parents": [
        "0d786c9f460e83d35b92a046318d5ae82dffe820",
        "fbe70ae7f251d159ed83ab61587a88003f20d44b"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Sep 07 02:20:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 07 02:20:48 2017 +0000"
      },
      "message": "Merge \"Implement IOmxStore\""
    },
    {
      "commit": "6be8c055643c208459915b3aaeb88e4749cd03e7",
      "tree": "9978a42758c47393ea8cc6a5067f45b543c9d509",
      "parents": [
        "144865c5dd27ea8f8662864e25ddddf9ec390c37"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jun 07 18:18:09 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Sep 06 15:04:38 2017 -0700"
      },
      "message": "Fix OMX dependencies.\n\nNote, filed b/62923763 to cleanup xmlparser includes.\n\nBug: 37343418\nTest: builds with BOARD_VNDK_VERSION\u003dcurrent\nTest: (sanity) YouTube on a device\nTest: (sanity) Camera on a device\nTest: (sanity) watch (part of a) movie on a device\nTest: (sanity) YouTube on marlin\nTest: (sanity) Camera on marlin\nTest: (sanity) watch (part of a) movie on marlin\nTest: (sanity) YouTube on angler\nTest: (sanity) Camera on angler\nTest: (sanity) watch (part of a) movie on angler\n\nChange-Id: I461f999122da56cabb9d4d15b182899ced3b0120\nMerged-In: I461f999122da56cabb9d4d15b182899ced3b0120\n"
    },
    {
      "commit": "cbdeea977b79c41910b004cffcb80d81265853e8",
      "tree": "6bebe2d32c969b80b1a54c9453cb905376e31b0b",
      "parents": [
        "3b224af571e8e70ef643a36e144e7427857d271d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Jul 27 02:21:57 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Sep 01 16:22:23 2017 -0700"
      },
      "message": "Implement IOmxStore\n\nSeparate out MediaCodecsXmlParser and implement IOmxStore and IOMXStore.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts -m \\\nCtsMediaTestCases -t android.media.cts.MediaCodecListTest\n\nBug: 37657124\n\nMerged-In: I8c5a3a8fe6defab4f17c8a49bce57452879193dc\nChange-Id: I8c5a3a8fe6defab4f17c8a49bce57452879193dc\n"
    },
    {
      "commit": "fbe70ae7f251d159ed83ab61587a88003f20d44b",
      "tree": "f5a5afbcc4f8f9a755b882a4f346e22488558a12",
      "parents": [
        "c9b7057b6229b6364631918a915266c3aaa1c961"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Jul 27 02:21:57 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Sep 01 16:18:38 2017 -0700"
      },
      "message": "Implement IOmxStore\n\nSeparate out MediaCodecsXmlParser and implement IOmxStore and IOMXStore.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts -m \\\nCtsMediaTestCases -t android.media.cts.MediaCodecListTest\n\nBug: 37657124\n\nChange-Id: I8c5a3a8fe6defab4f17c8a49bce57452879193dc\n"
    }
  ],
  "next": "0b8529fbacaa35634ac24bb62c5890cddcb623b6"
}
