)]}'
{
  "log": [
    {
      "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": "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": "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\""
    },
    {
      "commit": "92d57f926eb39d72e8fd8f3b3c9e40d25f77ad47",
      "tree": "42986a629018563b7bb286b4a05082cd83d0216d",
      "parents": [
        "bd54eef2d289f786a7ae02139ce3bb9db2b03b24"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 22 10:36:03 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 28 19:04:03 2016 +0000"
      },
      "message": "Move \u0027sniff\u0027 functionality from DataSource to MediaExtractor\n\nand don\u0027t register the sniffers in every process that plays media,\nbut only in the extractor process.\n\nBug: 33166870\n\nChange-Id: Id269d1eab8be1549542adad3037729a63b5ebaef\n"
    },
    {
      "commit": "b54cab90d4bf84745a57232080d72a50c3b731da",
      "tree": "0b7cebfd0d3dfb111e427af7dfcd3fb195d68f28",
      "parents": [
        "e025595095b70df689b2e783d91fbd37c813e119",
        "d399e7e6065aa310e025ab633f633d5b4831a358"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 23 23:26:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 23 23:26:17 2016 +0000"
      },
      "message": "Merge \"BufferingSettings: define internal BufferingSettings API.\""
    },
    {
      "commit": "d399e7e6065aa310e025ab633f633d5b4831a358",
      "tree": "161b8ee63095e28937e041299ae66a650197f265",
      "parents": [
        "48d8020342a4de6b0b925328ddbdfe34f22253a3"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 26 15:49:11 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 23 10:50:24 2016 -0800"
      },
      "message": "BufferingSettings: define internal BufferingSettings API.\n\nTest: compiles\nBug: 32524218\nChange-Id: I9a95b2fdfa497179305e031aac69e5a987614dbb\n"
    },
    {
      "commit": "fc88363032d90492845ad5b917496589ca225f63",
      "tree": "862f236ce05d7f83003f2be6c57cc6f764240cb5",
      "parents": [
        "48d8020342a4de6b0b925328ddbdfe34f22253a3",
        "29b7dcf6d3cdb97103467dc8106151c6260c239a"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Nov 21 17:53:13 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 21 17:53:14 2016 +0000"
      },
      "message": "Merge \"Removing widevine classic\""
    },
    {
      "commit": "79054b1f53b448511f1edb6e0dcab1d7b6f39964",
      "tree": "ec7b24befa1733bf6fec43ffc07d4103551daae1",
      "parents": [
        "9ea205b1302f85bbf9364c1f41210c1837863f00"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Nov 14 23:49:45 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Nov 21 23:59:08 2016 +0900"
      },
      "message": "MediaCodec refactoring part 2-a: introduce callback\n\nCodecBase instances do not post reply messages back to MediaCodec\nexplicitly --- Callback does the job instead.\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\nChange-Id: I210993a3bbc306f970b8e9395a91e8697cfa832e\n"
    },
    {
      "commit": "44a580a5262ba19c275aac3537b9306679819f94",
      "tree": "6fe755a55a245ddb2a31f2c60b0777d55b4fb0e4",
      "parents": [
        "6299e7b1626713ff75377537245f8ba3aa6dec35",
        "c5de09127e9e0d5df7aa587be317e1487d793245"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 23:42:20 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 18 23:42:20 2016 +0000"
      },
      "message": "Merge \"mediaplayer: support same seek mode as MediaMetadataRetriever.\""
    },
    {
      "commit": "c5de09127e9e0d5df7aa587be317e1487d793245",
      "tree": "f27828fe26714b003613ef894579539228dfd134",
      "parents": [
        "b59c2fb19f03bba8a558be71848bafa6a0ad3cbc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 10:22:14 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 15:41:24 2016 -0800"
      },
      "message": "mediaplayer: support same seek mode as MediaMetadataRetriever.\n\nTest: manually force 4 seek modes in mediaplayer.\nBug: 32557491\nChange-Id: Iea4f6dbfc224fc6da39624300c6d872b79142f07\n"
    },
    {
      "commit": "0736a5eeb6a5f4139352ea033c0628cfa85b6b42",
      "tree": "f269d02378587ddcfaeca47f2d831aa0b526e68b",
      "parents": [
        "81d472ef3635bcf5cf05e4567f715c52f2cf3b22",
        "349b8b4c47817a565ded94ff351caf48782f1252"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 18 03:16:54 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 18 03:16:55 2016 +0000"
      },
      "message": "Merge \"stagefright: fix potential codec leaks in async stop/reset\""
    },
    {
      "commit": "349b8b4c47817a565ded94ff351caf48782f1252",
      "tree": "2e907eb35aca41fc603faa2c304eaba93180466b",
      "parents": [
        "4d2bf460f16044c89d55a4444716cb2ee673975a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Nov 17 17:05:26 2016 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Nov 18 02:09:17 2016 +0000"
      },
      "message": "stagefright: fix potential codec leaks in async stop/reset\n\nCurrently if stop is followed by a reset from another thread,\nwe unblock the stop first (to avoid ANR) without waiting for\nkWhatShutdownCompleted, and proceed with the reset request.\nBut this could cause release to return too early when the\nkWhatShutdownCompleted for the stop is received. When this\nhappens, the reset() will unregister ACodec\u0027s handlers before\nthe real shutdown with deallocation is processed, causing\na codec node instance to be leaked.\n\nTo solve this problem, separate kWhatShutdownCompleted into\ntwo messages kWhatStopCompleted and kWhatReleaseCompleted.\nRelease should only return upon kWhatReleaseCompleted.\n\nAlso initializing the fence fd in the metadata buffer (even\nthough it\u0027s not used) to avoid warning in freeBuffer.\n\nbug: 32750454\nbug: 32971559\n\nChange-Id: If218c853955729a2a2f2e8356908115a79c442e3\n"
    },
    {
      "commit": "fba972f9d7f87c47ac0820b7f99420acc7e5dc36",
      "tree": "21ae67a62d5ae44b4cfdd6489572f044e9cb0ce2",
      "parents": [
        "856ccbf720ab623debbe549da29067a687a82979"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 14 17:11:22 2016 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Nov 15 18:32:05 2016 -0800"
      },
      "message": "stagefright/foundation: add TypeTraits.h and Flagged.h\n\nTypeTraits.h includes some additional type utility templates not\ncovered by \u003ctype_traits\u003e.\n\nFlagged.h is a template that allows adding flags to an arbitrary\ntype, and combine additional flags into that.\n\nBug: 32885576\nChange-Id: I13faa6d265cc06df76609b255704d0cf22e2d904\n"
    },
    {
      "commit": "29b7dcf6d3cdb97103467dc8106151c6260c239a",
      "tree": "c9b06ff2e5708d4197a916489eeb652fa12d8cee",
      "parents": [
        "856ccbf720ab623debbe549da29067a687a82979"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Oct 24 10:28:30 2016 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Nov 16 02:11:38 2016 +0000"
      },
      "message": "Removing widevine classic\n\nbug:30505334\nChange-Id: I40ac8020b5442857936037a15847b0271359e624\n"
    },
    {
      "commit": "aad28fc2465edadca45b2953c92186cb26f5ef51",
      "tree": "6933b415e5ae2741426f833087c9fbf0f0ec8dd6",
      "parents": [
        "3628f79cc3bad4c333992149d0e101cb2be07548"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 14 14:56:09 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 14 16:06:25 2016 -0800"
      },
      "message": "AudioParameter: add functions for working with parameter keys\n\nAdded functions that are helpful for building parameter query\nstrings to be used with HAL\u0027s \u0027get_parameter\u0027 methods.\n\nTest: make\nChange-Id: I66a4e94d65660b04ded4abb59a89d8288056a920\n"
    },
    {
      "commit": "4c1d94395a64f4c3acd8f9e0d378a778e438221d",
      "tree": "b46559134550f3139a56c70d55abfdfd3440aef0",
      "parents": [
        "f7aba583d095ad250bfd067ef809bec26704e1af",
        "d02c08671d666e12a94bcadd943787a9ab2ceea8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 14 22:20:54 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 14 22:20:54 2016 +0000"
      },
      "message": "Merge \"IOMX: add API for setPortMode\""
    },
    {
      "commit": "d02c08671d666e12a94bcadd943787a9ab2ceea8",
      "tree": "ede05629c929d1daacbf2d555e6d8153ff75b38a",
      "parents": [
        "300379ab01ec4c5f9f538284dbb1e49ad012de29"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 13 14:32:32 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Nov 10 18:42:02 2016 -0800"
      },
      "message": "IOMX: add API for setPortMode\n\n- Add setPortMode to centralize port mode configuration\n\n- Remove storeMetaDataInBuffers and enableNativeBuffers. These are\n  no longer exposed to the client. Metadata mode and native/secure\n  buffer mode will be enabled by OMX as needed by the port mode.\n\n- Move handling of legacy adpative experiment (legacy metadata mode)\n  to OMX side. Legacy mode will now appear the same as non-metadata\n  mode to client.\n\nbug: 31399200\n\nChange-Id: Iaf33bd7c30fab4acbc19e9fb8c19e322f9b4a0a0\n"
    },
    {
      "commit": "59d49567c207c104c1f242f55e2ce5b9e5b2b3f6",
      "tree": "7af3b1161790b91c517c8c5d4779905073c92e8d",
      "parents": [
        "9cab746b116b8aed38ca6b97bfea35103535e522",
        "ad60a0f6cd9012507f8086fe741236d12d280ef3"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Nov 11 00:05:11 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 11 00:05:12 2016 +0000"
      },
      "message": "Merge \"stagefright: reuse buffers instead of cloning\""
    },
    {
      "commit": "ad60a0f6cd9012507f8086fe741236d12d280ef3",
      "tree": "a4d8e4f1e94a881bcdcf53bdd0fa756bf8fcdc55",
      "parents": [
        "93f52337443196a95d183cb8fd8984aa86c41235"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Nov 10 16:18:06 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Nov 11 08:46:59 2016 +0900"
      },
      "message": "stagefright: reuse buffers instead of cloning\n\nIn buffer array mode, the buffer reference is kept in clients of\nMediaCodec, so allocating new buffer for new input/output does not\nwork in that case.\n\nBug: 32577275\nBug: 32579231\nTest: use screenrecord and investigate the output file.\nTest: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.EncodeDecodeTest\nChange-Id: I26d89f6b5735094062b8a2027bcab4754576d574\n"
    },
    {
      "commit": "77109420fe285b4e9618bd5f0cd12e0fcef6eced",
      "tree": "f738962f880d4a2a14bc46e598f4f049e8ed2962",
      "parents": [
        "eb6300d4bbe1cb0e24e26b15e3b5af8afe874c5f",
        "1f12a8ad958344c50733b948628ffa06db9c5bc6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:15:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 10 19:15:46 2016 +0000"
      },
      "message": "Merge \"Audio: Use uid_t for uids\""
    },
    {
      "commit": "49778b36d39a86caeff6069cb8ccefc177135ab0",
      "tree": "66a6bab77802c263c64cb979ac9804e38479e146",
      "parents": [
        "8d029bffae6ab6592ea0f2aaa8938d04bf4c8a97",
        "e1b943f21dff25044b349d4d628d9adb0c2e0b74"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Nov 09 18:43:12 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 09 18:43:13 2016 +0000"
      },
      "message": "Merge changes from topic \u0027metadata-support\u0027\n\n* changes:\n  media: Limit the maximum size of per-frame metadata.\n  media: Add metadata track support to MPEG4Writer.\n"
    },
    {
      "commit": "1f12a8ad958344c50733b948628ffa06db9c5bc6",
      "tree": "d9ce12941c1461657bf32779f6d18605defd5cf1",
      "parents": [
        "062bfceaefab29f0f71db7d5a248b3f5f0572b6a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 16:10:30 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:43:39 2016 -0800"
      },
      "message": "Audio: Use uid_t for uids\n\nTest: Power manager shows correct uids for audio\nBug: 32713790\nChange-Id: If5337e17283268f74dc0f00cc66ece9153d680ef\n"
    },
    {
      "commit": "a36591ba9ce6258c3b2f9477761add084ac4ec47",
      "tree": "296b7cd5753b59b9c950f88b68d61ecd4b5c9d20",
      "parents": [
        "74d3601bea717111f77376cf1678d2bc65dd51a1",
        "144868295f75a650a0b487c60f6983a0790fe39a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Nov 08 19:29:27 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 19:29:28 2016 +0000"
      },
      "message": "Merge \"NuPlayer: hook up seekTo for precise seeking.\""
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "b03b155f66553a097c732b0728564dbca0886d0d",
      "tree": "2b7d04b580531314baccfb5333a56f03b9f11e5f",
      "parents": [
        "5c743395a9940cf82812c9b02f67735dbd59e31c",
        "2817be0fad2330cb040aef33ceb309ce273863c5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 16:56:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 04 16:56:28 2016 +0000"
      },
      "message": "DO NOT MERGE SimpleDecodingSource: fix handling of Vorbis buffers\nam: 2817be0fad\n\nChange-Id: Iff73c1d4e7efdfae56c281aa105ae186d26fc11e\n"
    },
    {
      "commit": "144868295f75a650a0b487c60f6983a0790fe39a",
      "tree": "9e5f06c4ffd170b6f7e9f552edbfa55b28a244a2",
      "parents": [
        "d592974f4e1d8afc753ada8c10d2b252d8f852af"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 02 17:51:30 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 03 09:59:45 2016 -0700"
      },
      "message": "NuPlayer: hook up seekTo for precise seeking.\n\nTest: compiles\nBug: 32557491\nChange-Id: Idda3c87658f43101b9fd0fe22d2399710fb80211\n"
    },
    {
      "commit": "d592974f4e1d8afc753ada8c10d2b252d8f852af",
      "tree": "81a42e8dc27923441106272b0d48305e7fe02571",
      "parents": [
        "a109007c56de4e683adfb00ca0632e25f7702b97",
        "67b6dccfd7b59efa772a3c2c553e7382c8f9f24c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 02 21:03:19 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 21:03:19 2016 +0000"
      },
      "message": "Merge \"mediaplayer: add precise argument to seek function\""
    },
    {
      "commit": "25adc33c1ba77b95162ebce8a4c2a7a07baeb98f",
      "tree": "5adfbe445c60de4446ff13ab347841b7cf82ac68",
      "parents": [
        "d6f63bed0cf4a9cf162f9e16c1600117a4bcbc08"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Oct 20 15:46:04 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Tue Nov 01 14:01:44 2016 -0700"
      },
      "message": "media: Add metadata track support to MPEG4Writer.\n\n1. Remove the restriction that MPEG4Writer could only write at most one video\ntrack and one audio track.\n2. Allow muxing mutiple metadata tracks into the file. Did not put a limit on\neach sample\u0027s metadata size now.\n3. metadata mime format must start from prefix \"application/\".\n4. metadata\u0027s format/layout is defined by the application.\n5. Generated MP4 file use TextMetaDataSampleEntry defined in section 12.3.3.2\nof the ISOBMFF to signal the metadata\u0027s mime format.\n\nTest: Manual test.\n\nBug: 28536560\nChange-Id: I97829e235e598e35fcad31f948eea5943f8c4fd5\n"
    },
    {
      "commit": "67b6dccfd7b59efa772a3c2c553e7382c8f9f24c",
      "tree": "d9d03e901bf841099593e0d2b3edb32aa23ac12b",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 31 17:01:37 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 31 17:01:37 2016 -0700"
      },
      "message": "mediaplayer: add precise argument to seek function\n\nTest: compiles\nBug: 32557491\nChange-Id: Id8c3a938edd5a0b34a9b33e86a4dbff32cf10c98\n"
    },
    {
      "commit": "fd27cc04a3eafab479d635ef058756c56bfbad5f",
      "tree": "2bdf68fc8e67d890e64d88cc7cb0ed0e592d491b",
      "parents": [
        "d4855ba417bcc0f9c50ea813dca51c8e33e84175",
        "4f998cdef97b9c027f145b2da5c48278e19c3d33"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Mon Oct 31 17:51:14 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 31 17:51:14 2016 +0000"
      },
      "message": "Merge \"media: Use audio timestamp for recording.\""
    },
    {
      "commit": "d72ffc4416959d2c94838888c781468b2351716d",
      "tree": "fd86f3df09a73281964ca910f87f4ce67fa7f032",
      "parents": [
        "d4370268adbbb95eca7a518a55abe42678df93ef",
        "f2ae3e19080938db8cbf29a963fd744a3964fcc2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 28 19:23:01 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 28 19:23:01 2016 +0000"
      },
      "message": "Merge \"BatteryNotifier: attribute battery usage of video to correct uid.\""
    },
    {
      "commit": "4f998cdef97b9c027f145b2da5c48278e19c3d33",
      "tree": "6501d66538a2772c84ffd34ce95a26f251b03ebd",
      "parents": [
        "9de2d727b63c5ff4ce7a6f041138faba015c9de7"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Oct 27 12:46:36 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Fri Oct 28 12:22:33 2016 -0700"
      },
      "message": "media: Use audio timestamp for recording.\n\nTest: Manual test.\n\nBug: 32243250\nChange-Id: Iac9009acf1c86388e835975f83f91d40cbffb22f\n"
    },
    {
      "commit": "f2ae3e19080938db8cbf29a963fd744a3964fcc2",
      "tree": "f5f1ef5ff03ae54e10af8e2726ce1db80b49f87d",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 27 17:10:59 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 28 10:09:28 2016 -0700"
      },
      "message": "BatteryNotifier: attribute battery usage of video to correct uid.\n\nTest: manual check batterystats\nBug: 32361950\nChange-Id: Id052220e87f6667ca908d5bf6be6164dc8c14c53\n"
    },
    {
      "commit": "d4370268adbbb95eca7a518a55abe42678df93ef",
      "tree": "64407880fc17380f022345415100248b0adaf91b",
      "parents": [
        "9de2d727b63c5ff4ce7a6f041138faba015c9de7",
        "3fd200feb657c157125e45e30c2a7262e3c0244d"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 27 21:55:12 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 21:55:13 2016 +0000"
      },
      "message": "Merge \"IOMX: consolidate buffer passing on IOMX\""
    },
    {
      "commit": "2817be0fad2330cb040aef33ceb309ce273863c5",
      "tree": "b092d123095482ec9f7e71e58c50334f9253244e",
      "parents": [
        "ce43e0f6b9bc157b8340726550d63e9b58b0bf66"
      ],
      "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": "Thu Oct 27 21:26:14 2016 +0000"
      },
      "message": "DO NOT MERGE 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": "3fd200feb657c157125e45e30c2a7262e3c0244d",
      "tree": "be20fc0543dbc04357f4b189dc74af1580b07049",
      "parents": [
        "6f6555a169316f1b9e2acda2b8e7042e285de310"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 07 17:25:58 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 27 13:02:36 2016 -0700"
      },
      "message": "IOMX: consolidate buffer passing on IOMX\n\n- Use OMXBuffer to parcel different buffer types.\n\n- Only leave one useBuffer, emptyBuffer and fillBuffer.\n\n- Remove the update metadata calls.\n\nbug: 31399200\nChange-Id: I307e59415c3c5be61772210431bd8225ce6b75a3\n"
    },
    {
      "commit": "3311417b219e5baa6a05e46637e553061fcd7268",
      "tree": "b050b8739cacced1dd8624e4587e844543beeea7",
      "parents": [
        "2e6d8d607fb3bd38d87fb7c1274680bbc4424398",
        "000d4156172b2595a47a6005f64af71055e128d7"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Oct 27 19:48:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 27 19:48:41 2016 +0000"
      },
      "message": "media: Adjust the first video/audio sample time in slow motion.\nam: 000d415617\n\nChange-Id: Ie3f0d36dbbce0c50df62acb2a5ce021fdc37f434\n"
    },
    {
      "commit": "5737a69a910de65b67d2703bcb18d6d8058ebe48",
      "tree": "cbd2abe43b0f22ae3a9bd01e4ab5e259cf150a76",
      "parents": [
        "7405dc62bbec9eed2384325db40ed95277217fa3",
        "bd83e4b3e77b31e089832bcfbebde086392216c9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 27 01:45:04 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 01:45:05 2016 +0000"
      },
      "message": "Merge \"media: Adjust the first video/audio sample time in slow motion.\""
    },
    {
      "commit": "000d4156172b2595a47a6005f64af71055e128d7",
      "tree": "e10099c702156fb2d78f5b3127558400c1df4083",
      "parents": [
        "7215694e2abc0f260262ae443bc92d69e38ff440"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Oct 26 13:56:11 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Oct 27 01:27:29 2016 +0000"
      },
      "message": "media: Adjust the first video/audio sample time in slow motion.\n\nTest: Manual test.\n\nBug: 32243250\nChange-Id: I9469d6f9929ca67f2f12e658382bc76e7236b256\n"
    },
    {
      "commit": "6f6555a169316f1b9e2acda2b8e7042e285de310",
      "tree": "0a7d90a6bcc0f7be17abf63600e6df4f54550c2f",
      "parents": [
        "9270397b832d7acd670ed704008290f7f96f81a8",
        "fd44d8e2f2d37184f7add67125657f3fbfb5a085"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 27 00:29:29 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 00:29:30 2016 +0000"
      },
      "message": "Merge \"MediaCodec refactoring part 1-c: buffer ownership\""
    },
    {
      "commit": "bd83e4b3e77b31e089832bcfbebde086392216c9",
      "tree": "320ff4a44999040819e26a031f7ada9e61d9c795",
      "parents": [
        "7b01847d0e7211989e8b452976258356afcd45d4"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Oct 26 13:56:11 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Oct 26 16:16:51 2016 -0700"
      },
      "message": "media: Adjust the first video/audio sample time in slow motion.\n\nTest: Manual test.\n\nBug: 32243250\nChange-Id: I9469d6f9929ca67f2f12e658382bc76e7236b256\n"
    },
    {
      "commit": "fd44d8e2f2d37184f7add67125657f3fbfb5a085",
      "tree": "d5f5db87a94f6f4d13ba6fe8c1328617271270c1",
      "parents": [
        "1e4d737fcd3129f3b3cf29499f344b42219c6bc7"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 20 23:20:12 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Oct 26 14:59:06 2016 +0900"
      },
      "message": "MediaCodec refactoring part 1-c: buffer ownership\n\n- Buffers are (roughly) owned by themselves.\n- As a corollary, remove output format change related events\nand replace by inspecting formats associated with each buffers.\n\nBug: 32133435\nTest: gts-tradefed run gts -m GtsExoPlayerTestCases\nTest: (manual) Run Play Movies app to play a secure content.\nChange-Id: I6b57da61c2d71acd0d5be4281de823ba1c95b72f\n"
    },
    {
      "commit": "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49",
      "tree": "c7630795f1623d784fb17e1e129fdd93bdabea6e",
      "parents": [
        "1e4d737fcd3129f3b3cf29499f344b42219c6bc7",
        "559d439c6fe8679e3c52f1cf265d46d7d2e65b68"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "message": "Merge \"Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\""
    },
    {
      "commit": "3604cb1a5548694393c7b7a87191eb517bebaa47",
      "tree": "f53caa6e99adfd9262b6683438b61b6b3a07cf7a",
      "parents": [
        "68f912b81df3d3bb32328ad3767a09978cad24f9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Oct 10 12:08:11 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 19 11:55:45 2016 -0700"
      },
      "message": "IOMX: move max pts gap handling to OMX\n\nbug: 31399200\n\nChange-Id: I52177d6826caeedf670ecf3e6d0ff85d0e3bf1df\n"
    },
    {
      "commit": "559d439c6fe8679e3c52f1cf265d46d7d2e65b68",
      "tree": "9e23625c0b55e45e79842d6605e027dba01f0fe0",
      "parents": [
        "bd0f59e493dbd67d1871b243ddad9cce3b50d7ce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:42:57 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 19 18:19:29 2016 +0000"
      },
      "message": "Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\n\nBug: 27903060\nChange-Id: Iafc2095f484b74978c6f080c54f548e293bf945e\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "commit": "65fb65678345f03f38771523b7020f6777eff5c4",
      "tree": "73b42913d08115480cbbbe1b6897917f4c1ae6a2",
      "parents": [
        "9a79c8f84a6de3b942c6b0a347aece7ecb7daed5",
        "388360c786cdcbec650b79db65c734b8952dfec0"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "message": "Merge \"Brush up audio parameters usage\""
    },
    {
      "commit": "388360c786cdcbec650b79db65c734b8952dfec0",
      "tree": "a3ba18b19471046dddb8218a1461269b101bd1e0",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "message": "Brush up audio parameters usage\n\nIt is preferred to use the constants from AudioParameter\n(which can now serve as an abstraction layer similar to libaudiohal).\n\nGrepped for usages of defines and just string values\nand replaced with references to AudioParameter.\n\nSince the parameter definitions are being moved to system/audio.h,\nupdate includes in AudioParemeter and stagefright Utils.\n\nChange-Id: I2addb983707d866b16f39d45d0e14b802595e292\nTest: make\n"
    }
  ],
  "next": "5bc1a9aa19fbf9c952cc9ccb212ff1aa8c2386c3"
}
