)]}'
{
  "log": [
    {
      "commit": "68b3d9f49e68a11af5225175dc9e60ce88819e84",
      "tree": "750d8fe493c2ec45542968192ecfe52d83133a02",
      "parents": [
        "9b088162cb9cdeb542f106a45d06a1f802e91e6e"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jan 06 19:07:54 2017 -0800"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Mon Jan 30 15:26:51 2017 -0800"
      },
      "message": "Pass application packagename to drm plugin.\n\nPass application package name to createPlugin and createDrmPlugin.\nThe application packagename will be used as part of a unique\nidentifier for drm plugin.\n\nTest: Play Movies.\n\nTest: ANDROID_BUILD_TOP\u003d ./android-gts/tools/gts-tradefed run gts -m\nGtsMediaTestCases --test\ncom.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P60\n\nVerify the application\u0027s packagename is reachable in the drm plugin\u0027s\ndebug log.\n\nbug: 27101531\n\nChange-Id: I84fb09b591a7af63f6e20004e910112a4ce6ebac\n"
    },
    {
      "commit": "1784ec91786ed3a9e1fffcaa20fec8c33830b1ad",
      "tree": "64112aa6e6f4f8d6947c0edeeaa4140123a44f76",
      "parents": [
        "3a0a8b4cc0632a09fa9c669edf9c6a27be5d37d9",
        "071437a2005e39969983ec619a4c7bc54c2dc5a9"
      ],
      "author": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Fri Jan 27 18:07:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 18:07:59 2017 +0000"
      },
      "message": "Merge \"Modular DRM for MediaPlayer\""
    },
    {
      "commit": "3a0a8b4cc0632a09fa9c669edf9c6a27be5d37d9",
      "tree": "236ab0766f2787b1935a9c4dd517df65f21b2238",
      "parents": [
        "45cc284af254a71ae9294585448419f91ae27ee4",
        "db1221479a7ffe7094c51c463bbd36522ed106ab"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 02:33:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 02:33:46 2017 +0000"
      },
      "message": "Merge \"Media Metrics for NuPlayer, Codec, Extractor\""
    },
    {
      "commit": "45cc284af254a71ae9294585448419f91ae27ee4",
      "tree": "c68a2845c1155d92657b8ef825fbde2e15ff0e56",
      "parents": [
        "2b118b8f939c0cf1b287b1641d17b057a8e25ce7",
        "e08ab77d276e83388da1f811c556d105a38a81d3"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 02:33:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 02:33:46 2017 +0000"
      },
      "message": "Merge \"Provide access for metrics-\u003eJava Bundle conversion\""
    },
    {
      "commit": "2b118b8f939c0cf1b287b1641d17b057a8e25ce7",
      "tree": "5ec25bd81b9d5e692fcab16b4f143fb3f6206ede",
      "parents": [
        "fb388a72e613d669e4de8b0e07d64a6bf640b63a",
        "eeac97b18ca5c939bf2ac59334d36d54f705af3d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Jan 27 01:16:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 01:16:33 2017 +0000"
      },
      "message": "Merge changes from topic \u0027OMX Treble 2\u0027\n\n* changes:\n  Split Treble conversion module into two sides: impl and utils.\n  Use HIDL\u0027s memory in CodecBuffer and add wrapper classes for IOmxBufferProducer and IOmxProducerListener.\n"
    },
    {
      "commit": "e08ab77d276e83388da1f811c556d105a38a81d3",
      "tree": "ce38745514e66c5d093f8a872d0b7fb9111eb050",
      "parents": [
        "fb388a72e613d669e4de8b0e07d64a6bf640b63a"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 25 17:47:51 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 00:40:03 2017 +0000"
      },
      "message": "Provide access for metrics-\u003eJava Bundle conversion\n\nprovide \u0027friend\u0027 access for the class that converts Media Metrics\nproperties into a Java Bundle to be handed to users through local APIs.\nActual code to do conversion is in frameworks/base/\n\nBug: 34716157\nTest: compilation passes\n"
    },
    {
      "commit": "db1221479a7ffe7094c51c463bbd36522ed106ab",
      "tree": "9d551bf00c96d22d529561669e411e3a4416c2be",
      "parents": [
        "fb388a72e613d669e4de8b0e07d64a6bf640b63a"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 25 17:51:55 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 00:12:08 2017 +0000"
      },
      "message": "Media Metrics for NuPlayer, Codec, Extractor\n\nCollect metrics for nuplayer/mediaplayer, codec, extractor.\npublishes them to media.metrics service\nprovides hooks that local APIs use to connect to retrieve metrics\nfrom the above when running on their behalf.\n\nSeparate set of changes does the final hop to the local APIs.\n\nBug: 34715803\nTest: build \u0026 run, observed code/extractor/player metrics in logs\nChange-Id: Ic5a0a7b3b93a5a41af93d81050ba038f0f7a4329\n"
    },
    {
      "commit": "eeac97b18ca5c939bf2ac59334d36d54f705af3d",
      "tree": "fa4ba549c27134217df62344ed01793f54364d2f",
      "parents": [
        "f62ea8018813951e8f6a182880cadb3217e4ce37"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Jan 18 05:03:07 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Jan 26 00:53:44 2017 -0800"
      },
      "message": "Split Treble conversion module into two sides: impl and utils.\n\nimpl is on the HAL side. utils is on the framework side.\n\nTest: Compiles\nBug: 31399200\nChange-Id: Ib88a80f406fa2b897aa7c65f5faba6cdd9d6a700\n"
    },
    {
      "commit": "f62ea8018813951e8f6a182880cadb3217e4ce37",
      "tree": "2484670a6fcf5e32d2c700d920f9f17796cae0fe",
      "parents": [
        "1d399328e24b3ea0512e10f0925d8d09b43225ef"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 20 04:24:47 2016 +0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Jan 26 00:52:10 2017 -0800"
      },
      "message": "Use HIDL\u0027s memory in CodecBuffer and add wrapper classes for\nIOmxBufferProducer and IOmxProducerListener.\n\nTest: Compiles\nBug: 31399200\nChange-Id: Ia09973ee7b25120bc35cff02b1409f33b28a4b4e\n"
    },
    {
      "commit": "29bcb38457deb3c69e0b5d2e8658446e969bd380",
      "tree": "261579eed10dce5b39c0b1e857191205decca154",
      "parents": [
        "6b2704c86f5f34217d820427da979c6bd6624bb8",
        "a53d6553fce1818bdf87833f93633c93ad1b5915"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 26 02:43:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 02:43:41 2017 +0000"
      },
      "message": "Merge \"Implement client code to use Drm and Crypto HALs\""
    },
    {
      "commit": "6b2704c86f5f34217d820427da979c6bd6624bb8",
      "tree": "accffac85c38dc9d2c03bb03182e19b59aa82ff0",
      "parents": [
        "3b8a6c9a638dba5584d40d00d0d38423c128e874",
        "c0dede99d99ab22f59cf34c3b7d262c80d7bbc4a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 01:23:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 01:23:24 2017 +0000"
      },
      "message": "Merge \"camera: Add enable ZSL key\""
    },
    {
      "commit": "a53d6553fce1818bdf87833f93633c93ad1b5915",
      "tree": "8fbbb7b32d753c75a7350d748d6fa08d47402289",
      "parents": [
        "2a0c6d54dc34fdd8cca4e8ed7f39ad512133a878"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jan 20 00:31:46 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 25 15:41:12 2017 -0800"
      },
      "message": "Implement client code to use Drm and Crypto HALs\n\nThis change adds DrmHal \u0026 CryptoHal classes that connect to the Treble\nHAL interfaces for drm.  These classes mirror the existing Drm and\nCrypto classes that connect to the DrmPlugin and CryptoPlugin\ninterfaces. Having both allows mediadrmserver to run in either mode\nwhile the HAL is stabilized.\n\nThe shared memory interfaces between mediaserver\u0027s ACodecBufferChannel\nand ICrypto had to be reworked to use the Treble HALs. Specifically,\nthe shared memory path for returning decrypted buffers in the\nnon-secure case had to become separate instead of piggy-backing on the\nsource shared memory buffer. A separate shared memory destination\nbuffer is now allocated on the buffer channel. An abstraction for a\ndecrypt destination buffer was also introduced to clarify ICrypto\u0027s\ndecrypt method.\n\nTests: Playback using Play Movies and ExoPlayer works on angler\nwith and without the treble hal enabled.\n\nbug: 32815560\nChange-Id: I5a3dc84f99902eb8cf8eabab9ad074d307744950\n"
    },
    {
      "commit": "071437a2005e39969983ec619a4c7bc54c2dc5a9",
      "tree": "0b1b44c249e3513e1bb96395484b707c194904d0",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Mon Jan 23 09:19:40 2017 -0800"
      },
      "committer": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Wed Jan 25 15:02:11 2017 -0800"
      },
      "message": "Modular DRM for MediaPlayer\n\nBug:  34559906\nTest: Manual through the test app\nChange-Id: I752c3e2bbc2fac9c75f7ddc986014c4b8ce75d84\n"
    },
    {
      "commit": "c0461f5b18eb6d5516804810f315e6c23879a09d",
      "tree": "409c82898f26abeb75bc1b9430c08578c051ad9a",
      "parents": [
        "b4728afbf8095d5349de9fcd49f3f34b900682ad",
        "66916c26a7055c9e10471720502a29f759609819"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 25 17:03:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 17:03:13 2017 +0000"
      },
      "message": "Merge \"audio hal: Fix multichannel playback\""
    },
    {
      "commit": "b4728afbf8095d5349de9fcd49f3f34b900682ad",
      "tree": "7c89ffe2147137b42c8e961a029488c13bec48d2",
      "parents": [
        "a437457c4f802c8df577da452f3a26a64f55bba4",
        "758c215374dba397dabe17b8e96dd38593c09dd7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 25 01:54:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 01:54:21 2017 +0000"
      },
      "message": "Merge \"Camera: Combine handling of deferred surface and shared surface\""
    },
    {
      "commit": "66916c26a7055c9e10471720502a29f759609819",
      "tree": "931ce309f34c35775a11240b4f8186db1983f90b",
      "parents": [
        "ceec4a06595253a6dcc167064f318e470e1c3b58"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "message": "audio hal: Fix multichannel playback\n\nCorrectly operate on input and output buffers in DownmixerBufferProvider\n\nNote that playback is a bit choppy, need to investigate further.\n\nChange-Id: I350175dcc9cc7142a1935585a8bd5e9abb1b8eb6\nTest: play back a 5.1 file\n"
    },
    {
      "commit": "c0dede99d99ab22f59cf34c3b7d262c80d7bbc4a",
      "tree": "5cd422223a04b98ac4ee89b26afb47d3fa2fe3ff",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Jan 11 11:10:28 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 24 15:41:39 2017 -0800"
      },
      "message": "camera: Add enable ZSL key\n\nAdd enableZsl key so the apps can choose to allow or\ndisallow out of order frame contents and metadata like\ntimestamp.\n\nTest: Camera CTS tests on Marlin\nBug: 30983997\nChange-Id: I715ef24ab55d6941c0ece16f09f325c26b83ea54\n"
    },
    {
      "commit": "758c215374dba397dabe17b8e96dd38593c09dd7",
      "tree": "d3c1326f44d95e97d5c73270f0195c5e2b7297ae",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 10 18:26:18 2017 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 24 11:25:06 2017 -0800"
      },
      "message": "Camera: Combine handling of deferred surface and shared surface\n\n- Refactor the OutputConfiguration to contain isDeferred and isShared\n  flag, and not contain NULL surface.\n- Unify the handling of deferred surface and shared surface.\n\nTest: Camera CTS, and manual testing of GoogleCamera use cases\nBug: 33777818\nChange-Id: I5dd3472f0f2133699b0e9fbdd8ba456956222746\n"
    },
    {
      "commit": "d38e174ddbde8e7419ba01deaded4ff0ead1caaa",
      "tree": "cd62ea763bf947133d4fb6a66b693672294a2694",
      "parents": [
        "efbd36c8f57f41b0ef061cde5a88a3d384538fc9"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 23 15:17:06 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Jan 24 09:46:01 2017 -0800"
      },
      "message": "Change from mediaanalytics to mediametrics\n\nreflect the change from \"media.analytics\" to \"media.metrics\" in\nwhat service names we use; bring the metrics service main code into the\nservice directory (vs an additional shared library).\nRemoved references to tentative binder functions that the service\nwon\u0027t be offering, at least not in the near future.\n\nBug: 34615027\nTest: build, boot, new services run, clients talking to said services.\nChange-Id: If17772a8f03c05b142e8d5779830d198710210c1\n"
    },
    {
      "commit": "d112296453154c6974433d860f270e9d8bc7d0d0",
      "tree": "da4b1c15d138189c47e7a53d529405571ecd0ecd",
      "parents": [
        "9e26267afc9bd9b80c44b50b4a40c050f79d15cd",
        "ed32086f6a93a9a22f3877c54030af5c2567939a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 19 22:08:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 22:08:37 2017 +0000"
      },
      "message": "Merge \"mediaplayer: add getBufferingSettings.\""
    },
    {
      "commit": "ed32086f6a93a9a22f3877c54030af5c2567939a",
      "tree": "ce0af9c6ba0e532db654f80f4cffbcccf610ecca",
      "parents": [
        "13ff5b0ce7ae1d31eaa30f21c9d83290ebff0756"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 18 14:03:40 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 19 11:33:30 2017 -0800"
      },
      "message": "mediaplayer: add getBufferingSettings.\n\nTest: compiles\nBug: 32524218\nChange-Id: Ifd6243d524d1554dfbbfc1381414100cfafdc02d\n"
    },
    {
      "commit": "e482d3a819edb60038ba5c4ca7f33935b27dd35f",
      "tree": "a2fb03633089ff6c68104dd389a39eb996af8738",
      "parents": [
        "dffb51f4e35fe93215b025bdf4216f3b411c734b",
        "fe44e4f74fe2582cbf012687059278dbcbdaa6f7"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Jan 19 18:17:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 18:17:40 2017 +0000"
      },
      "message": "Merge \"media: Support recording exceeds filesize limit by splitting files.\""
    },
    {
      "commit": "cac8d4ea54ece7aeb4b2ffa7aafd06fbec731a62",
      "tree": "ed02d8653145fded2d53bcf4c6d7033cca7eb1cf",
      "parents": [
        "d0ffd62e89bf97fa20a63f282d034b6745328210",
        "44344b05261cb9ad46a43e635f637b89aecc7afe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 03:17:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 03:17:59 2017 +0000"
      },
      "message": "Merge \"audio policy: allows dumping Audio Policy Mix\""
    },
    {
      "commit": "addae1cfa92c3bae2b59917160da5520d2a25865",
      "tree": "d1b4f95e84a693a1f932337f9e45a47e35cf2d0a",
      "parents": [
        "7a667f6675f6dfc07892e0f9e67c60b26002e8f8",
        "0129d52df9794d6fdf06be304722b5cb51a2eab5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 01:54:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 01:55:02 2017 +0000"
      },
      "message": "Merge \"camera2: Add support for secondary surface for stream\""
    },
    {
      "commit": "1acece4c23ba36e71bc42d8b44b8b62bd4423620",
      "tree": "36498ad93f4bcbbc852a9eee54774555509ef89a",
      "parents": [
        "3670ef95286d8eb028d30a95448b8f93f8f74007",
        "d621ac82e648c8ef395068edb1af2747f49b700a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 17 23:16:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 23:16:30 2017 +0000"
      },
      "message": "Merge \"Monitor crashes of audio hal service via linkToDeath\""
    },
    {
      "commit": "d621ac82e648c8ef395068edb1af2747f49b700a",
      "tree": "3c37b8d97c0c7feec6c567d407d05c8343ec9e6e",
      "parents": [
        "a72ef28f8cc2b894119b470fe6c93d1abe566398"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 17:17:45 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 17 13:42:54 2017 -0800"
      },
      "message": "Monitor crashes of audio hal service via linkToDeath\n\nHwbinder \u0027linkToDeath\u0027 mechanism is used to track abrupt\ndisappearance of server hal objects due to hal server crash.\n\nUpon hal server crash, notifications can be sent to binder\nclients if needed, then the audioserver crashes itself as the\ncurrent audio HAL design does not provide an easy way to restore\nall the transient objects (devices, streams, effects) in their\npre-crash state.\n\nBug: 34158778\nTest: In binderized mode, kill audio hal server\nChange-Id: If9265711edc445984601fcb5c29d2c173a370762\n"
    },
    {
      "commit": "dc6f340e537ce511ea1d2f8ce7dc1c4ed231f6a6",
      "tree": "45fc471ff4d3c46d91281d75b2c049bf73104748",
      "parents": [
        "c62b65fd690a585c674caa6e79559bb847e5b3bd"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 09 15:04:18 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 17 10:49:33 2017 -0800"
      },
      "message": "mediaplayer: add buffering settings API\n\nTest: compiles, checked that params is passed all the way to source.\nBug:32524218\nChange-Id: I637d1ab09f94a3830a33a39e7e9f1b3efb22357f\n"
    },
    {
      "commit": "c62b65fd690a585c674caa6e79559bb847e5b3bd",
      "tree": "89d7086548553e1a1aa8d9b96a8ba9c4dce9967a",
      "parents": [
        "eadba76ec937ead68bbd267585547c0bbdd459c1",
        "4453f452577064b4907a941225f7fc6e87800e37"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 16 16:18:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 16 16:18:58 2017 +0000"
      },
      "message": "Merge \"Remove DRMExtractor\""
    },
    {
      "commit": "2872c7ab71fb554ee14d4e8b65677f9c7a97f966",
      "tree": "9f7dc45786534b506ad0804d6a1c81813a33fdaf",
      "parents": [
        "7e95f0e695f16584416881d17e6193e11ae3559a",
        "48fa06d1e80a872c7495804979256e021e566ae0"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sat Jan 14 02:54:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 14 02:54:24 2017 +0000"
      },
      "message": "Merge \"BufferingSettings: hook up internal BufferingSettings API.\""
    },
    {
      "commit": "fe44e4f74fe2582cbf012687059278dbcbdaa6f7",
      "tree": "cbe39fbaa7b5e36134061c4e863489437a2fd5a6",
      "parents": [
        "3cc1da3dc8f367d8a29251088945d67fede8bfb8"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Tue Jan 03 16:38:11 2017 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Fri Jan 13 14:03:48 2017 -0800"
      },
      "message": "media: Support recording exceeds filesize limit by splitting files.\n\nTest: Hacking camera app to record file larger than size limit.\nBug:28150626\nChange-Id: I500913ec96d8ef49a78989d3f973bc7e8d923cb7\n"
    },
    {
      "commit": "4453f452577064b4907a941225f7fc6e87800e37",
      "tree": "3bc5657171b31ab92eb9ade0ab9cbe48fa72f66a",
      "parents": [
        "67d0d7eb36e7c36d0a9dec9264c0cab832196d57"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 13 12:51:08 2017 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 13 21:54:03 2017 +0000"
      },
      "message": "Remove DRMExtractor\n\nIt was not used, untested and untestable.\n\nBug: 33354165\nTest: ran forward lock and media playback CTS tests, manual playback.\nChange-Id: I4dd3f07ca5b019a5fed0c860aa573fc993464712\n"
    },
    {
      "commit": "35f537fc5aa479caa6fd9055cdc63989d029e8a3",
      "tree": "b67c9f5a8d2a60db36dc3e1b2df52d27843ac9d8",
      "parents": [
        "f95fa3333f03cf5fa45a08402d5c7a671835e042",
        "49b2b4d30a0f74314630a5ea5f0e59697d90443e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 13 20:06:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 20:06:50 2017 +0000"
      },
      "message": "Merge \"stagefright: add rangeOffset to OMXBuffer\""
    },
    {
      "commit": "8c48184651df8edb5b9490fe616844dbcfbbb0a4",
      "tree": "a394d86ba1dc2e4826c7e6376b0d2bd74d49ca8a",
      "parents": [
        "060a6c53b5022c9e539a4c9b03b16da546964bec",
        "8981605d43e24c46d395acb5f145b99589d45917"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 13 16:19:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 16:19:33 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Move RecordBufferConverter to libaudioprocessing\""
    },
    {
      "commit": "49b2b4d30a0f74314630a5ea5f0e59697d90443e",
      "tree": "824ecd9c69be3ea97ba4589ae48c73c76b9c1821",
      "parents": [
        "d825ab9d5be990a6a7fb28033cfba84441100731"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 11 17:19:42 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jan 12 15:54:01 2017 -0800"
      },
      "message": "stagefright: add rangeOffset to OMXBuffer\n\nbug: 31399200\nbug: 22804304\n\nChange-Id: I0ac9a7ee684067d40a26135ab26ebd3de3a2f06d\n"
    },
    {
      "commit": "44344b05261cb9ad46a43e635f637b89aecc7afe",
      "tree": "f088a40f3512f177136b78f02e091d42db7d0934",
      "parents": [
        "38267b773f2cdec4d684b12fde73179bcc66e0c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 13 11:21:02 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 13:19:26 2017 -0800"
      },
      "message": "audio policy: allows dumping Audio Policy Mix\n\nThis patch adds the dump of AudioPolicyMix if registered.\nIt also adds the required conversion map to human readable strings\nof the types involved in Mixes.\n\nAdapted for the development branch from the AOSP patch:\nhttps://android-review.googlesource.com/#/c/309127/\n\nChange-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89\nTest: build, dumpsys media.audio_policy\n"
    },
    {
      "commit": "b04aa125744b7e1d5c56a4c2151eaaa890d68e4c",
      "tree": "d5f4d7530b6233288d812a93a824a39fa6410dba",
      "parents": [
        "a6f38cc3723252b0cac46912ae65adef778e6b14",
        "bdbe7ca3586ec2d4d32793fff9b3d858ad1c1dff"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 12 17:31:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 17:31:07 2017 +0000"
      },
      "message": "Merge \"Fix plugin loading\""
    },
    {
      "commit": "bdbe7ca3586ec2d4d32793fff9b3d858ad1c1dff",
      "tree": "0c2aa083f328d263f1fe0687844172c2f6fcd140",
      "parents": [
        "96966995da4418326a01dd53719c8355a0db9415"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 11 19:01:41 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 11 19:08:22 2017 -0800"
      },
      "message": "Fix plugin loading\n\nChange-Id: I3572f8bc1c90c5f0697054497bde52e4cbc4e71e\nrelated-to-bug:32815560\n"
    },
    {
      "commit": "8981605d43e24c46d395acb5f145b99589d45917",
      "tree": "8bb7ee0e15081201b70730bbaafed49b47d211dc",
      "parents": [
        "d7c5ec857930496bb8a1045dc8b87b2fdd99899c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:08:23 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:19:37 2017 -0800"
      },
      "message": "AudioFlinger: Move RecordBufferConverter to libaudioprocessing\n\nTest: Recording loopback\nBug: 31015569\nChange-Id: I7897d959f36ac7424544e35f47576c99a442dd54\n"
    },
    {
      "commit": "068561c8e84569d51df2adbbb53b56fdfd09c06b",
      "tree": "67e6c9c383b4667adc502b0ed6928a672a6a5b6d",
      "parents": [
        "ee454fcb25bff0f9c5d3455775a4cb66429e875e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 03 17:09:32 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 10 17:06:46 2017 -0800"
      },
      "message": "AudioFlinger: Split off audio processing library\n\nTest: native AudioResampler test, general playback test\nBug: 31015569\nChange-Id: Ifb248f4402a583438d756c014dcd7a4577aef713\n"
    },
    {
      "commit": "ee454fcb25bff0f9c5d3455775a4cb66429e875e",
      "tree": "c3951ebbde22c8c3e33712ccc2241f01f4647ca3",
      "parents": [
        "b554bff208ec1af8b6a8cfd78a86103c8dd46089",
        "022b9953153bdb1984f0abb17d21ef8c1826ad49"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 10 23:22:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 10 23:22:50 2017 +0000"
      },
      "message": "Merge \"Re-implement HIDL effect processing using FMQ and IMemory\""
    },
    {
      "commit": "0129d52df9794d6fdf06be304722b5cb51a2eab5",
      "tree": "f1d74ea701960753675b03385434c90a7c3c5875",
      "parents": [
        "844800fb97bfd061f845cd13d42fbdfacdbca6c5"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Sun Oct 30 22:43:41 2016 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 10 10:31:40 2017 -0800"
      },
      "message": "camera2: Add support for secondary surface for stream\n\n- Enhance OutputConfiguration to contain multiple surfaces for one\n  underlying stream.\n- Create Camera3SharedOutputStream to handle streams with multiple\n  surfaces.\n- Create Camera3StreamSplitter to handle buffer flows between camera and\n  multiple consumers.\n\nTest: cts, and manually test camera preview/snapshot/recording\nBug: 33777818\nChange-Id: Ia010c3cc9d9b4bd5b9ea03cc42fe4e0a0d8033f1\n"
    },
    {
      "commit": "022b9953153bdb1984f0abb17d21ef8c1826ad49",
      "tree": "aff19a7663d75cbb16bc003424bacb6f97b738cd",
      "parents": [
        "e61f9e57e61cbf4d86d6385dd3cddb41e245f749"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 04 16:36:51 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 09 18:18:18 2017 -0800"
      },
      "message": "Re-implement HIDL effect processing using FMQ and IMemory\n\nResult: no hwbinder calls due music processing.\n\nTest: make, use Play Music with effects, check traces\nBug: 30222631\nChange-Id: I06d0e94e603688874b31824427f3b0878b5f7c8e\n"
    },
    {
      "commit": "f44271816fcdc38eee139df872d57fd513347325",
      "tree": "5948f475df6be0007db1d8d87d0b0bfc70b84ab4",
      "parents": [
        "e020b2cd79e5b0d28c4b1806814a88b7f3a8b5ec",
        "9ee321c347c64886d1078a4e4afb57ec98dd54a2"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Jan 10 00:48:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 10 00:48:56 2017 +0000"
      },
      "message": "Merge changes from topic \u0027mediacodec_2b\u0027\n\n* changes:\n  stagefright: fix premature change of buffer ownership\n  Revert \"Revert \"MediaCodec refactoring part 2-b: introduce BufferChannel\"\"\n"
    },
    {
      "commit": "5e3030fd4ef828cc7254e96030f38ad64f162151",
      "tree": "5145869e0dac4277524eea0e904159bf0d954668",
      "parents": [
        "f0b3e3be1ead1cb40b50e3dc048947220acb62a5",
        "535e161e2e404dffb8389dd331be0132704b6d82"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 06 23:50:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 06 23:50:51 2017 +0000"
      },
      "message": "Merge \"media.log: re-implement NBLog using audio_utils_fifo\""
    },
    {
      "commit": "dff26e5f53b248fd8cc6605850240c7e7c5438dc",
      "tree": "44bf496554011f1187e0641781c2db44d031af9d",
      "parents": [
        "186673877157260cbfb05c5be51e9ac6e6a4d8bc"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Dec 01 16:11:42 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Sat Jan 07 00:46:17 2017 +0900"
      },
      "message": "Revert \"Revert \"MediaCodec refactoring part 2-b: introduce BufferChannel\"\"\n\n- MediaCodec stops tracking the whole buffer array from OMX.\n- BufferChannel handles array management instead, if necessary.\n- MediaCodec delegates secure buffer management to BufferChannel.\n- Remove sf2.\n\nBug: 32133435\nTest: adb shell am instrument -e size small -w \u0027android.media.cts/android.support.test.runner.AndroidJUnitRunner\u0027\nTest: Play an encrypted content in Play Movies\nTest: Mirror the screen via Cast.\nChange-Id: I1ca705687956ad972e31257853c54e29cbd7181a\n"
    },
    {
      "commit": "186673877157260cbfb05c5be51e9ac6e6a4d8bc",
      "tree": "cb9faec85a33ff26eef0c72836c71ec514e692cc",
      "parents": [
        "4efe5dcbde4266b807a2c27c004b0851ad36fe10",
        "fad01bc45bd47b8f12c89857fee20b7e37310125"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 06 01:26:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 06 01:26:48 2017 +0000"
      },
      "message": "Merge \"Revert \"MediaCodec refactoring part 2-b: introduce BufferChannel\"\""
    },
    {
      "commit": "fad01bc45bd47b8f12c89857fee20b7e37310125",
      "tree": "02131fe258f37b38db813b4215ef07596a13ab60",
      "parents": [
        "11b72100e02e02b6cd8a6b14cd2068c96dc49b7d"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Jan 05 23:37:13 2017 +0000"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Jan 05 23:37:13 2017 +0000"
      },
      "message": "Revert \"MediaCodec refactoring part 2-b: introduce BufferChannel\"\n\nBug: 34059849\n\nThis reverts commit 11b72100e02e02b6cd8a6b14cd2068c96dc49b7d.\n\nChange-Id: I0ab93a617477861a4e6f43152e6b03d5c88783ab\n"
    },
    {
      "commit": "e1c4b5d7a94c21b8ce0c5707b4af84de596fbb79",
      "tree": "8c448787f6c4f7bfe7647cc32601350247d4066a",
      "parents": [
        "2b934d36939c571a47cc972670176bc0356c54be"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 22 09:22:45 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 04 20:50:54 2017 -0800"
      },
      "message": "Re-implement HIDL stream read and write using FMQ\n\nResult: no hwbinder calls due read / write session.\n\nTest: make, perform Loopback RTT, check traces\nBug: 30222631\n\nChange-Id: I4a8792525ec374111302cfd5c0a2e41f9f4cc418\n"
    },
    {
      "commit": "856132debf024e0bb02f1bbc86caec89c57f1fc2",
      "tree": "ec6066e81b018776fdbcbe742faf71d735e22fbc",
      "parents": [
        "36867767ba86244b0d942255b9d241b092151309",
        "35dfca88f18a105dad2c4d6f718c6c4bc89498e7"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Jan 03 20:16:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 03 20:16:59 2017 +0000"
      },
      "message": "Merge \"Remove superfluous type parameter to PluginLoader\""
    },
    {
      "commit": "36867767ba86244b0d942255b9d241b092151309",
      "tree": "1fa1b0a4cf8fe6b7f780bb8950f6ad659ae7a5d5",
      "parents": [
        "af86dcee9d97e02e9069548684ef8c9db5190ff9"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 29 12:03:28 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 29 12:35:25 2016 -0800"
      },
      "message": "USAGE_ASSISTANT/ACCESSIBILITY in audio policy manager\n\nAdd support for USAGE_ASSISTANT.\nFix stream type for USAGE_ACCESSIBILITY.\n\nTest: enable Talkback, check volume; make\nBug: 30947943\n\nChange-Id: Ie35adf0115dce1fac6d3deddc1e57e36b36913f6\n"
    },
    {
      "commit": "535e161e2e404dffb8389dd331be0132704b6d82",
      "tree": "61afd43df445dbf8329bd248493770ee506b5814",
      "parents": [
        "af86dcee9d97e02e9069548684ef8c9db5190ff9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 05 12:19:36 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 29 11:12:19 2016 -0800"
      },
      "message": "media.log: re-implement NBLog using audio_utils_fifo\n\nNBLog previously has its own shared memory circular buffer code.\nNow NBLog operates on top of the circular buffer code in audio_utils.\n\nTest: media.log still works\nChange-Id: Ib3026d2a96e6c0b433603e8baf19164ad97a1e1f\n"
    },
    {
      "commit": "af86dcee9d97e02e9069548684ef8c9db5190ff9",
      "tree": "e101e7b1fd7d39c4c4880f5b4a7c55819b2f1d6a",
      "parents": [
        "5fd7ccaeba88da7e170f067bfd754b3f64ff5566",
        "ed99c2b5a99a8bfc163a6ffa0b767c82032b09b5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 29 17:51:57 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 29 17:51:58 2016 +0000"
      },
      "message": "Merge \"NBAIO: re-implement NBAIO Pipe and MonoPipe using fifo\""
    },
    {
      "commit": "35dfca88f18a105dad2c4d6f718c6c4bc89498e7",
      "tree": "5089b32239fbeb53e8b7bde3c535674b5c7d670a",
      "parents": [
        "5fd7ccaeba88da7e170f067bfd754b3f64ff5566"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Dec 28 18:38:55 2016 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Dec 28 18:55:43 2016 -0800"
      },
      "message": "Remove superfluous type parameter to PluginLoader\n\nbug:32815560\nChange-Id: I70ca8c30a3e7c96671c8781ece3a45f71caceee8\n"
    },
    {
      "commit": "5fd7ccaeba88da7e170f067bfd754b3f64ff5566",
      "tree": "5e2a0f1495c8ea9a68598cea2028e3c092049e3a",
      "parents": [
        "0ce91633d8a4f5dcb3706a7734c02ddb5099eefd",
        "c6fe843463abc965f3082738c8812506cf5ba232"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Thu Dec 29 00:25:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 00:25:36 2016 +0000"
      },
      "message": "Merge \"Add a mechanism for handling audio device configuration change\" am: 549e431947 am: a1b496ac35 am: fcc1132010\nam: c6fe843463\n\nChange-Id: I7812e3e4426e526b886c1a414ac8ddec7649291e\n"
    },
    {
      "commit": "c6fe843463abc965f3082738c8812506cf5ba232",
      "tree": "8818a3ad8b5a4f776510672fb5100e60b2ffba20",
      "parents": [
        "4532a36bf509d822a77cbc1b7837f9f1158c7796",
        "fcc113201018703727a0d6b17dd165efce00db1a"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Thu Dec 29 00:19:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 00:19:05 2016 +0000"
      },
      "message": "Merge \"Add a mechanism for handling audio device configuration change\" am: 549e431947 am: a1b496ac35\nam: fcc1132010\n\nChange-Id: I4c25c229b0bb8a385a231c7a9f444b923bb46456\n"
    },
    {
      "commit": "f862bc6a7a35054e38cb50fa16ae7a07f683ee01",
      "tree": "12f33970e876ba71df008d7e38a58984c5b357b5",
      "parents": [
        "a05da2eea41306d526ce645ea44aa2e05054f651"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Dec 26 18:57:22 2016 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Wed Dec 28 14:35:01 2016 -0800"
      },
      "message": "Add a mechanism for handling audio device configuration change\n\n* Added new call handleDeviceConfigChange() to the Media Framework.\n  That call can be used when there are device configuration changes\n  (e.g., Bluetooth A2DP codec configuration has changed).\n* Added new method AudioPolicyManager::handleDeviceConfigChange().\n  That method toggles the UNAVAILABLE/AVAILABLE connection state of the\n  device, so it can be reconfigured as appropriate - e.g., the audio\n  feeding parameters can be updated.\n* Fix ALOGVV compilation errors when extra logging is enabled.\n\nTest: A2DP streaming to headsets\nBug: 30958229\nChange-Id: I388abbbb3ec4d1a003b441cb0c77e00d80cad668\n"
    },
    {
      "commit": "704f71980464987a352a16ac95ffe1f9e24aa10b",
      "tree": "673c9cf677b7cab0da0e494f1f11f4431a4857e1",
      "parents": [
        "a96898c40c38449d4f28c72cee434eee062021a1",
        "1de11dc03234dabb5faffe74c72f17da0c1c6992"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Dec 22 17:43:17 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 22 17:43:18 2016 +0000"
      },
      "message": "Merge \"Added a plugin loader class for drm+crypto HALs\""
    },
    {
      "commit": "1de11dc03234dabb5faffe74c72f17da0c1c6992",
      "tree": "e9db6811e5862615cd8361131aef5fe65fc46e0f",
      "parents": [
        "e2bc75d146276c3cfe2b349073cf46f7706fa38d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Dec 19 15:21:26 2016 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Dec 21 23:55:49 2016 -0800"
      },
      "message": "Added a plugin loader class for drm+crypto HALs\n\nbug:32815560\nChange-Id: Iccd9451ff09e037db25eea672327912dd41c140f\n"
    },
    {
      "commit": "da913494a93667a037e7923258b46d0d1dd2bf50",
      "tree": "d030e20ef4a5dc6337f29f3241613ea54e7a5555",
      "parents": [
        "d8915d994177d93f5e6b0dee69f1d2a82db6bed5",
        "b5fac8ef36b302c12f897d06c7e097981843f3a0"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Dec 21 23:11:28 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 21 23:11:28 2016 +0000"
      },
      "message": "Merge \"Refine MediaAnalytics framework\""
    },
    {
      "commit": "48fa06d1e80a872c7495804979256e021e566ae0",
      "tree": "dfe4dbc77af088971108446620c2cb6717ff4452",
      "parents": [
        "d0c3b930668c9ae76e21f7b0cb6a8ffa7cea3f3b"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 20 15:30:49 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 21 12:43:09 2016 -0800"
      },
      "message": "BufferingSettings: hook up internal BufferingSettings API.\n\nTest: compiles\nBug: 32524218\n\nChange-Id: I4b3f1689681560f0c1af3bfc62adee1ce630e218\n"
    },
    {
      "commit": "834b8b37f1aed1a49c21a407959845af18b9a4b7",
      "tree": "852111aed9063541024c9e62ff9b396d5005547e",
      "parents": [
        "5b8655e002bd96b91907b68ebbf27b2b13503cdb",
        "af35aadb7ab558035b6cf45bd3930ecaa3a3b330"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 21 18:12:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 21 18:12:09 2016 +0000"
      },
      "message": "Merge \"audio HAL: implement mmap stream functions\""
    },
    {
      "commit": "b5fac8ef36b302c12f897d06c7e097981843f3a0",
      "tree": "cad2d297cf98424f0a53a60d45c335430f0d1e23",
      "parents": [
        "51ac35503501692300f9772c29c2d2f4dc43a245"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Dec 12 11:33:56 2016 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 20 14:36:27 2016 -0800"
      },
      "message": "Refine MediaAnalytics framework\n\nRework some interfaces to avoid unnecessary sp\u003c\u003e mechanisms;\ndocument which side of caller/callee owns pointers afterwards.\nRework internal attribute representation, add support routines.\n\nBug: 33547720\nTest: Boot, ran subset of CTS media tests\nChange-Id: Id0d65bd6a847704dc98d38be9aa5e1ce63c20e1c\n"
    },
    {
      "commit": "af35aadb7ab558035b6cf45bd3930ecaa3a3b330",
      "tree": "ef709fefc01bbf3efb1f0bcddd9ecee0920977e4",
      "parents": [
        "e2bc75d146276c3cfe2b349073cf46f7706fa38d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 14:25:36 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 20 12:57:13 2016 -0800"
      },
      "message": "audio HAL: implement mmap stream functions\n\nBug: 33398120\nTest: make marlin-eng with ENABLE_TREBLE true\n\nChange-Id: I10df5440b9946398a73a7ee309eca860eae0bfcd\n"
    },
    {
      "commit": "aadfdb27bb6afab4fd5d07616fb5e53e0b2122e8",
      "tree": "5ef8048dcc58227598b89edf4c7cafe5c52ea4ea",
      "parents": [
        "ae2026ecfe37e92b0a2ba5084a8ab9fe07b7134d",
        "517b0e090680e378f056677201426ed9dc325c65"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 20 00:14:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 20 00:14:08 2016 +0000"
      },
      "message": "Merge \"Add conversion functions.\""
    },
    {
      "commit": "517b0e090680e378f056677201426ed9dc325c65",
      "tree": "25c34ae6ace8462c46298865a255dfb443d48b59",
      "parents": [
        "ae9f2761b79b112f42c285a288b3ecb7f919b345"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Dec 02 05:15:17 2016 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 20 04:13:50 2016 +0700"
      },
      "message": "Add conversion functions.\n\nThere are 5 pairs of wrapper classes for the 5 HIDL interfaces: IOmx,\nIOmxNode, IOmxObserver, IOmxBufferSource and IGraphicBufferSource.\nSome additional functions of OMXBuffer and OMXFenceParcelable are needed\nin the implementation of these wrapper classes, so they are added in\nthis CL as well.\n\nAuto-generated files that correspond to interfaces without queryable\ninstances are removed.\n\nTest: Compiles.\n\nBug: 31399200\nChange-Id: Iaec9c0e0afee6fc847f324c3eb3c105d6342a1fe\n"
    },
    {
      "commit": "ed99c2b5a99a8bfc163a6ffa0b767c82032b09b5",
      "tree": "83282572ca34b0e9c03acf1f5d5f39336e74cac2",
      "parents": [
        "ae9f2761b79b112f42c285a288b3ecb7f919b345"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 12 08:31:24 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 16 15:42:28 2016 -0800"
      },
      "message": "NBAIO: re-implement NBAIO Pipe and MonoPipe using fifo\n\nAlso removed const from NBAIO_Sink::availableToWrite() because\nat least one implementation can no longer implement the const-ness.\n\nTest: normal mixer, tee sink, and remote submix still work\nChange-Id: I8461177efdf53bba8295b147e97835b018804903\n"
    },
    {
      "commit": "6a308b02f138e358fb239ee2df5d54dd988f34fd",
      "tree": "730e19d7ae133e2086c37dcec42d0b88e77ba01b",
      "parents": [
        "0a2ea58394190408a3d532bfcc242ba64ca71538",
        "20b9ef0b55c9150ae11057ab997ae61be2d496ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 16 17:12:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 16 17:12:23 2016 +0000"
      },
      "message": "Merge \"Add unique audio port IDs to AudioTrack and AudioRecord\""
    },
    {
      "commit": "96c9aef07127f3830e227cb9436b8cf4044ea817",
      "tree": "ac90fa32a03c24c53c3c1dc2428cad87b3fe7f94",
      "parents": [
        "eda8806f6794aac57d67b17b0be6ca99f606d3db",
        "18a2c141b1ddf32024265b269a5b79d557da08b8"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 15 21:01:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 21:01:28 2016 +0000"
      },
      "message": "Merge \"Fix CameraParameters2::OrderedKeyedVector::removeItem tautological-compare\" am: 2142e027a4 am: 6b5f42dcc5 am: 7be4072d4a\nam: 18a2c141b1\n\nChange-Id: If91589cf2abc50dd4f50217ee291d5c137f11e27\n"
    },
    {
      "commit": "c7e4f8e44f40e43c884b87f7ed7a8c0caa365352",
      "tree": "a038693e4dde648c1787326930b55ccd4a1d4862",
      "parents": [
        "18a2c141b1ddf32024265b269a5b79d557da08b8",
        "8f9439a3589c50eb1f66e153dd1b95ef2bd8f62c"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 15 20:53:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 20:53:42 2016 +0000"
      },
      "message": "Merge \"Fix unused-parameter warnings\" am: f7f08afc8b am: d276716104\nam: 8f9439a358\n\nChange-Id: Iba2e7dfbbb30cdb7d95badee8ff42ee6c355bfa2\n"
    },
    {
      "commit": "18a2c141b1ddf32024265b269a5b79d557da08b8",
      "tree": "0e81c5f9950e43440d4bcd87e5f18bd949df3c12",
      "parents": [
        "e0df74555db49c7402113992eea3309a3d5cba51",
        "7be4072d4a98698fd2b4e9b5e8bbd4ba7050b195"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 15 20:53:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 20:53:27 2016 +0000"
      },
      "message": "Merge \"Fix CameraParameters2::OrderedKeyedVector::removeItem tautological-compare\" am: 2142e027a4 am: 6b5f42dcc5\nam: 7be4072d4a\n\nChange-Id: Iad4a9c1ee59ebbadd8708df5c5a32a57b34c19df\n"
    },
    {
      "commit": "e0df74555db49c7402113992eea3309a3d5cba51",
      "tree": "0e6aa0d94975a98b309bfa33a492b36a02ffcc42",
      "parents": [
        "5afa6ae2cbe17fa3edba1dbf89352149c479403e",
        "9d64132b04e59e00e9b0d7947e1506eae3909103"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 15 20:26:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 20:26:21 2016 +0000"
      },
      "message": "Merge \"Fix mismatched-tags error\" am: 604224ed40 am: 004ac55aef\nam: 9d64132b04\n\nChange-Id: I37563d77d2eaf6db5d1c5b579ad1f930f2d8f1e1\n"
    },
    {
      "commit": "f7f08afc8be3160299a3afc2fa96d7ed7d6dbf8d",
      "tree": "eae1477c0a2738af3b7e1fe105cd5a5099c93b85",
      "parents": [
        "2142e027a4255d042f7a5727b78f9c860617c6c6",
        "7e7a469129e03c98ad4fda43b759cf1eb72d4ca7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 15 20:24:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 20:24:17 2016 +0000"
      },
      "message": "Merge \"Fix unused-parameter warnings\""
    },
    {
      "commit": "2142e027a4255d042f7a5727b78f9c860617c6c6",
      "tree": "f0c98356a0a3b778d3b7ab6b1d5248fcec8ac1eb",
      "parents": [
        "604224ed404ce9521a92f5d264ac3b3a076d02e8",
        "f07f807b5ed57930232a2185971cab309886033b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 15 20:18:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 15 20:18:35 2016 +0000"
      },
      "message": "Merge \"Fix CameraParameters2::OrderedKeyedVector::removeItem tautological-compare\""
    },
    {
      "commit": "7e7a469129e03c98ad4fda43b759cf1eb72d4ca7",
      "tree": "df2d30b518bbecf373a474c9e9d920e102c479d7",
      "parents": [
        "16b37bb46933ab6bbd38912cdc91bc3039decd65"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Dec 13 20:34:11 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 15 18:48:20 2016 +0000"
      },
      "message": "Fix unused-parameter warnings\n\nThese are exposed when frameworks/av/include is moved from being a\nsystem include directory to a normal include directory.\n\nTest: m -j checkbuild\nChange-Id: I0e3787fbee70339f7dcbc979f448800ecfff0f17\nMerged-In: I0e3787fbee70339f7dcbc979f448800ecfff0f17\n"
    },
    {
      "commit": "81974909fc06ca0d83586a628a48e50bb46e04a1",
      "tree": "101efa7893731fbe86914713ea272d57e8a99778",
      "parents": [
        "16b37bb46933ab6bbd38912cdc91bc3039decd65"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Dec 13 20:32:25 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 15 18:47:53 2016 +0000"
      },
      "message": "Fix mismatched-tags error\n\nThese are exposed when frameworks/av/include is moved from being a\nsystem include directory to a normal include directory.\n\nTest: m -j checkbuild\nChange-Id: Iaa8f3808d578ebedc75e863b9818cfbbec9080b2\nMerged-In: Iaa8f3808d578ebedc75e863b9818cfbbec9080b2\n"
    },
    {
      "commit": "516f071d63671ad4708f30c2d13bf2e0be9cc8e3",
      "tree": "7ebfcd30d98ea690553a86d1be5401d3f4575705",
      "parents": [
        "8b6a3d237f53d6c1279d350a609d2edda345c9c9",
        "b5fc9e5454e606df9bed9ca81c1ab7f9317f8b54"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Dec 15 18:40:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 15 18:40:02 2016 +0000"
      },
      "message": "Merge \"Fix unused-parameter warnings\""
    },
    {
      "commit": "b5fc9e5454e606df9bed9ca81c1ab7f9317f8b54",
      "tree": "45c40a818c0c712594654ce0d5ac75ca78262def",
      "parents": [
        "51ac35503501692300f9772c29c2d2f4dc43a245"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Dec 13 20:34:11 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Dec 14 19:27:04 2016 -0800"
      },
      "message": "Fix unused-parameter warnings\n\nThese are exposed when frameworks/av/include is moved from being a\nsystem include directory to a normal include directory.\n\nTest: m -j checkbuild\nChange-Id: I0e3787fbee70339f7dcbc979f448800ecfff0f17\n"
    },
    {
      "commit": "61c2351da89cb281b2dfd56c6c6779ccb4bc1172",
      "tree": "06467964d8028baca22b8e968e4954d32c2780c6",
      "parents": [
        "51ac35503501692300f9772c29c2d2f4dc43a245"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Dec 13 20:32:25 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Dec 14 19:23:08 2016 -0800"
      },
      "message": "Fix mismatched-tags error\n\nThese are exposed when frameworks/av/include is moved from being a\nsystem include directory to a normal include directory.\n\nTest: m -j checkbuild\nChange-Id: Iaa8f3808d578ebedc75e863b9818cfbbec9080b2\n"
    },
    {
      "commit": "f07f807b5ed57930232a2185971cab309886033b",
      "tree": "f9792d8c67b7f7f2634ef28472861c3df1c61ad9",
      "parents": [
        "5d26ace4feff6a1b527b538a9c78d88b33814988"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Dec 13 21:57:26 2016 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Dec 14 16:42:59 2016 -0800"
      },
      "message": "Fix CameraParameters2::OrderedKeyedVector::removeItem tautological-compare\n\nThe tautological-compare warning/error is uncovered when\nframeworks/av/include is moved from being a system header directory to a\nnormal include directory.\n\nTest: m -j checkbuild\nChange-Id: Ie2d6c354f11e162416a1ac5e8ea185fa62a959a0\n"
    },
    {
      "commit": "51ac35503501692300f9772c29c2d2f4dc43a245",
      "tree": "1953c83bcf4e7db014d471cf822fead9cb0643e3",
      "parents": [
        "439caf852001dee70dc5c40d42cdc1571f4bef80",
        "f51fca277eb5b86bd0b2e3fc90ecb2b63089de29"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Dec 14 23:08:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 14 23:08:10 2016 +0000"
      },
      "message": "Merge \"Camera service: Updates in preparation for HIDL\""
    },
    {
      "commit": "f51fca277eb5b86bd0b2e3fc90ecb2b63089de29",
      "tree": "4c9b0b9c9e3969dca6ee7a0e0f4b0904a1757d8c",
      "parents": [
        "07f49573613aee5a8e661f74a324db371ecc8551"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Dec 13 11:25:55 2016 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Dec 13 16:32:23 2016 -0800"
      },
      "message": "Camera service: Updates in preparation for HIDL\n\n- For all camera2 paths, and anything shared between the legacy API and\n  camera2, switch to using strings for camera IDs\n- Update ICameraService.addListener to return current set of known\n  devices and their status, to allow for immediate return of camera\n  devices when first connecting to camera service\n- Remove unused code path for getCameraCharacteristics with HALv1\n- Add namespace qualifiers to Binder objects that are also used by\n  hardware binder.\n- Switch to using new HIDL DeviceStatus and TorchStatus enumerations\n  for better type safety in the service; map more clearly between\n  the HAL, service-internal, and Binder enums.\n\nTest: cts-tradefed run cts -m Camera --skip-connectivity-check -d -o --abi armeabi-v7a --disable-reboot\nBug: 32991422\nChange-Id: I765951d9a21000a8432bed9aa0e3604709daa4b1\n"
    },
    {
      "commit": "4278ba02628d915b52d59dcf5477880cf99f39cd",
      "tree": "38dafeb207d44b1b63d569046b9bad5015128ad2",
      "parents": [
        "07f49573613aee5a8e661f74a324db371ecc8551"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 20 11:05:16 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Dec 12 12:31:55 2016 -0800"
      },
      "message": "SimpleDecodingSource: fix handling of Vorbis buffers\n\nThe Vorbis decoder needs the number of samples in a page added to\nthe end of the encoded data, which SimpleDecodingSource wasn\u0027t doing.\nThis affected Vorbis decoding using OpenSL ES.\n\nBug: 32258336\nTest: ran CTS and OpenSLES tests\nChange-Id: I436e4a1ee998ce4581eb540bea8b66154960a4e7\n"
    },
    {
      "commit": "20b9ef0b55c9150ae11057ab997ae61be2d496ef",
      "tree": "21bd57d748dd47600b1e62bfb18d4acb08e15438",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 05 11:03:16 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 12 12:29:41 2016 -0800"
      },
      "message": "Add unique audio port IDs to AudioTrack and AudioRecord\n\nThis will allow to track activity at the track level instead of\nat audio session level as only possible with current implementation.\n\nAudioTracks and AudioRecords will receive a unique audio port ID the\nfirst time they register to audio policy with\ngetOutputForAttr()/getInputForAttr() and keep this ID for their\nlifetime.\n\nThis CL is the first partial change and just updates the\naudio policy and audio flinger APIs used at track creation time.\n\nTest: basic regression test of audio playback and capture use cases\n\nChange-Id: I8d612e67738e120494f61e3f7c60bfd0b2c6a329\n"
    },
    {
      "commit": "5249a5583df9a17dc3899100ea642f29eb86a23e",
      "tree": "3143680dce5f6f288154823a75b46d2e39a6c0b6",
      "parents": [
        "2b3867fb87f48a0627e3f8bb37826021df8dbd13"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Dec 05 10:03:53 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 09 15:22:55 2016 -0800"
      },
      "message": "Clean up DRM handling\n\nAvoid calling SniffDrm twice, and remove [gs]etDrmFlag methods\nsince they serve no purpose anymore.\n\nTest: ran forward lock CTS test, and played protected content in Play Movies\n\nChange-Id: I8313d2dae459151bf965a76ac1125d36ce8176e6\n"
    },
    {
      "commit": "b643627a557e44b9ab5879cf71e162af2d514ce3",
      "tree": "995bc0b0fa9a614687aa8df2f119ab7fff0c7a88",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 07 19:24:50 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 08 12:14:32 2016 -0800"
      },
      "message": "fix client pid for effects applied by audio policy\n\nTest: Hangouts call, Play Music with and w/o effects\n\nChange-Id: Ia9b20f94be667dd92e0497f8ef9c0dc0e95afe28\n"
    },
    {
      "commit": "56da4ce4783301fe11554289562b68a00654287e",
      "tree": "0154bcd664a6b967b02089a41f0f8994ded69064",
      "parents": [
        "dfe84776b02a8ef2810a75cf9d718d6313e71b56",
        "bda0543787ac57cf984381c34b6acbad0339d6c0"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Dec 07 23:08:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 07 23:08:51 2016 +0000"
      },
      "message": "Merge \"media: Support muxing multiple video and audio tracks.\""
    },
    {
      "commit": "9b46a8f9ebcca3b86662e7ea998a2afea0153478",
      "tree": "011b117d3fa1fa492ff9037e09a19eac74d8de7b",
      "parents": [
        "0567940b9eca82b99dbe631b020873b85059cc19",
        "11b72100e02e02b6cd8a6b14cd2068c96dc49b7d"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Dec 07 01:14:55 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 07 01:14:56 2016 +0000"
      },
      "message": "Merge \"MediaCodec refactoring part 2-b: introduce BufferChannel\""
    },
    {
      "commit": "0567940b9eca82b99dbe631b020873b85059cc19",
      "tree": "ce726ee501b4bcf6485ced51fcc08549dfec43bd",
      "parents": [
        "c744370facd47991ad009e053490778050493132",
        "1b35986c5045a97dbe852ab93046ab29bcb6a2de"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 06 22:06:31 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 06 22:06:32 2016 +0000"
      },
      "message": "Merge \"stagefright: don\u0027t update meta for the same buffer\""
    },
    {
      "commit": "1b35986c5045a97dbe852ab93046ab29bcb6a2de",
      "tree": "1f6447165598740ae0be09b8c809d4a710d77f24",
      "parents": [
        "7cdef381717e3a96acc6c5786c88bf1eaf03d2f2"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Dec 06 11:19:42 2016 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Dec 06 12:02:04 2016 -0800"
      },
      "message": "stagefright: don\u0027t update meta for the same buffer\n\nEven in dynamic ANW buffer mode, if the graphic buffer\nis not changing, send sPreset instead of the same graphic\nbuffer, so that OMX server side doesn\u0027t update the meta.\n\nIn theory it should make no difference, however when the\nsame buffer is parcelled again, a new handle could be\ncreated on server side, and some decoder doesn\u0027t recognize\nthe handle even if it\u0027s the same buffer.\n\nbug: 33186735\nChange-Id: Iff9e2958b90778ac37f93e74cb9cec1b89a9b5b8\n"
    },
    {
      "commit": "bda0543787ac57cf984381c34b6acbad0339d6c0",
      "tree": "8d050611ead45b002a4a9dc2dc21f51f37935003",
      "parents": [
        "c744370facd47991ad009e053490778050493132"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Nov 09 17:24:49 2016 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Tue Dec 06 18:27:03 2016 +0000"
      },
      "message": "media: Support muxing multiple video and audio tracks.\n\nTest: CTS test.\n\nBug:32781701\nChange-Id: I0b92601ce0cd8668e3b141d18dac393e0da789e4\n"
    },
    {
      "commit": "11b72100e02e02b6cd8a6b14cd2068c96dc49b7d",
      "tree": "d81fbb4c974c772209cc49e0ec357aa465f509e4",
      "parents": [
        "c2d29c48ea9314f1db836a906c95ee9bd6ef11c8"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Dec 01 16:11:42 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Dec 07 01:46:44 2016 +0900"
      },
      "message": "MediaCodec refactoring part 2-b: introduce BufferChannel\n\n- MediaCodec stops tracking the whole buffer array from OMX.\n- BufferChannel handles array management instead, if necessary.\n- MediaCodec delegates secure buffer management to BufferChannel.\n- Remove sf2.\n\nBug: 32133435\nTest: adb shell am instrument -e size small -w \u0027android.media.cts/android.support.test.runner.AndroidJUnitRunner\u0027\nTest: Play an encrypted content in Play Movies\nTest: Mirror the screen via Cast.\nChange-Id: Idc9fdee42ea0cdd3b5f15ba5c51647c3e16504a1\n"
    },
    {
      "commit": "f967d6ab32360cab729a103ccf2a6b6c6da53f34",
      "tree": "43a76fe59d486dc4b99387364f5ad19ac3ef711d",
      "parents": [
        "7cdef381717e3a96acc6c5786c88bf1eaf03d2f2",
        "82e147049625a4cfdcb228a1de7efda594d446c9"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Dec 06 00:01:19 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 06 00:01:20 2016 +0000"
      },
      "message": "Merge \"MPEG2TSExtractor: get duration by seeking to end\""
    },
    {
      "commit": "65abff18873fab87305049418c9b7c24fc0a2ef4",
      "tree": "eb3efca31c93830534ea8ac57ffdccf23e43eceb",
      "parents": [
        "abf6ff26df459d991cdbc2dca3b78046c97469db",
        "3938dc6363949ef126bb6188d26b5bef6db8be4d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat Dec 03 15:41:59 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 03 15:41:59 2016 +0000"
      },
      "message": "Merge \"initial mediasanalytics framework\""
    },
    {
      "commit": "3938dc6363949ef126bb6188d26b5bef6db8be4d",
      "tree": "fe9553c997bd8a827cea887461895b7551085626",
      "parents": [
        "c2d29c48ea9314f1db836a906c95ee9bd6ef11c8"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Nov 01 08:56:56 2016 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Dec 02 16:25:42 2016 -0800"
      },
      "message": "initial mediasanalytics framework\n\nThis encompasses the basic framework files for mediaanalytics.  This\nincludes the library code to run in clients, the interface definitions\nto get to the service, and the mediaanalytics service.\n\nThis version of the patchset also incorporates a wholesale change from\n\"Media Statistics\" to \"Media Analytics\" -- which involved both textual\nchanges and file renaming\n\nThis does not include the changes to other entities that will be sending\ndata. We\u0027ll do those under separate per-entity commits.\n\nBug: 30267133\nTest: run through cts\u0027 media stress tests\nChange-Id: Iee7e722d10fd57c5d6b14e2947117ed0d3af4f2a\n"
    },
    {
      "commit": "2c192ad2ef8474bf752a638e7adb49ef2011f548",
      "tree": "2ea4f4d8cd58e42cfe54a0f1603b9749200b8459",
      "parents": [
        "3b6889c296786b9d7d062abaa2e736c9246e0622",
        "e322cc51459b3fac11e7a080c3eb8ee1bfb36fc8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 02 04:14:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 02 04:14:02 2016 +0000"
      },
      "message": "Merge \"stagefright/foundation: add AUnion and AData templates\""
    },
    {
      "commit": "f558e0218d2677a813c9c600886f673894eec927",
      "tree": "a2e02a7e9999fe3eb08071d09acd30d9e50f87a8",
      "parents": [
        "d71f16268227c15a0ac2043e15900db5df2c417d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 14 17:45:17 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 01 09:36:07 2016 -0800"
      },
      "message": "libaudiohal: Implement simple HIDL client\n\nThis client requires both HIDL client and server to be of the same\nABI version (e.g. 32-bit).\n\nEffectHalHidl::process and EffectHalHidl::processReverse are stubs.\n\nSome extra warnings are logged due to unimplemented functions\nin the legacy HAL.\n\nBug: 30222631\nChange-Id: Id074131dec6d6c4f1031695abcf3ea066e92a5af\nTest: Play Music (play / EQ), YouTube, Loopback RTLT, Ok Google on N5X\n"
    },
    {
      "commit": "82e147049625a4cfdcb228a1de7efda594d446c9",
      "tree": "2aa56b12eec33051bccae24057c208441438df78",
      "parents": [
        "c2d29c48ea9314f1db836a906c95ee9bd6ef11c8"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 17 11:24:29 2016 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Nov 30 14:35:56 2016 -0800"
      },
      "message": "MPEG2TSExtractor: get duration by seeking to end\n\nPrerequisites for this implementation (included in this commit):\n* DataSources:\n  + add kIsLocalFileSource flag\n* AnotherPacketSource:\n  + implement getEstimatedBufferDurationUs\n* ATSParser:\n  + expose Event SourceType\n  + expose first pts\n\nTest: adb shell am start -a android.intent.action.VIEW -n \u003cvideo player activity\u003e -d \u003clocal ts file\u003e\nBug: 31964524\nChange-Id: Ifcb6b3246cfa3748ee4d87ed09dbdf62e963a6e5\n"
    },
    {
      "commit": "d71f16268227c15a0ac2043e15900db5df2c417d",
      "tree": "ddcbcd595155f9e8517848e7c2dca053ef557902",
      "parents": [
        "1f28e57bba33aca40775ae0e62cd28dbc22e834f",
        "79054b1f53b448511f1edb6e0dcab1d7b6f39964"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Nov 29 02:38:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 02:38:08 2016 +0000"
      },
      "message": "Merge \"MediaCodec refactoring part 2-a: introduce callback\""
    },
    {
      "commit": "e322cc51459b3fac11e7a080c3eb8ee1bfb36fc8",
      "tree": "ff129ab397e2d8ea0bbaa6f62f6b754eee43035a",
      "parents": [
        "1f28e57bba33aca40775ae0e62cd28dbc22e834f"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Nov 16 07:49:26 2016 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 28 15:10:47 2016 -0800"
      },
      "message": "stagefright/foundation: add AUnion and AData templates\n\nBug: 32885576\nChange-Id: I33e09f3b91ea8e680779c0e0f77d1de9660c02d9\n"
    },
    {
      "commit": "1f28e57bba33aca40775ae0e62cd28dbc22e834f",
      "tree": "7bdd5ef900a88d89699a1b9e51fae43b470df048",
      "parents": [
        "382bbc8fd1617e96881693c5f747def476c5786f",
        "92d57f926eb39d72e8fd8f3b3c9e40d25f77ad47"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 28 22:28:48 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 28 22:28:49 2016 +0000"
      },
      "message": "Merge \"Move \u0027sniff\u0027 functionality from DataSource to MediaExtractor\""
    }
  ],
  "next": "92d57f926eb39d72e8fd8f3b3c9e40d25f77ad47"
}
