)]}'
{
  "log": [
    {
      "commit": "810e018e2459cf81f80480fdd61e7355e2fd250e",
      "tree": "ca5ca7f25682f0e95d8527da83e84f7419fd3561",
      "parents": [
        "df50b6486031400ba2bce31828b4913e30700839",
        "845eef05ffea53f4ce7a1e0551896be874c4f302"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 05 00:42:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 05 00:42:58 2017 +0000"
      },
      "message": "Merge \"Remove useless GraphicBuffer() constructor\" into oc-dev"
    },
    {
      "commit": "8d84e4cd1c1ea46caaf29660a74f65ca7d9fda39",
      "tree": "08187f2c5bb61d66e8dd93697cc4b343cbfcda60",
      "parents": [
        "7a7e415967ace2d554cedb4ceb76123324c0ef94",
        "0a1c6a54d271b7e72c1c5296744e9f6bd2557aa9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 19:23:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 19:23:25 2017 +0000"
      },
      "message": "Merge \"TIF: hide BaseProgramColumns and BasePreviewColumns\" into oc-dev"
    },
    {
      "commit": "6cf445bd3d97ea72f89bfbc7c1681f288cae28d5",
      "tree": "fafa2497ffd2b7de28fab4a5e7aff6e65c1bd1c9",
      "parents": [
        "f9340ca491f1e5bd7ba2d937c8e7d1c42a4edb6f",
        "e4a9911b68d847cd720a7b506dc705f97bd1c3f0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 04 19:08:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 19:08:37 2017 +0000"
      },
      "message": "Merge \"Revert \"AudioAttributes: remove static getVolumeControlStream method\"\" into oc-dev"
    },
    {
      "commit": "e4a9911b68d847cd720a7b506dc705f97bd1c3f0",
      "tree": "bd392b5052a19ad80830fd18e85845012b3c9390",
      "parents": [
        "e0b5bf50d6cf4621e483d0c85898a61a19ff6d45"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 04 18:26:44 2017 +0000"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 04 18:26:44 2017 +0000"
      },
      "message": "Revert \"AudioAttributes: remove static getVolumeControlStream method\"\n\nThis reverts commit e0b5bf50d6cf4621e483d0c85898a61a19ff6d45.\n\nChange-Id: I2f3f10c149b205d22c41d5c9767ea10b0dee7682\n"
    },
    {
      "commit": "0a1c6a54d271b7e72c1c5296744e9f6bd2557aa9",
      "tree": "80c6c1eb13b5e1f47fa696efb0b53566b67324d5",
      "parents": [
        "2ac969827115c1b8bc86d9017eb1c7c1d5421b10"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 24 16:47:56 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Apr 04 10:11:45 2017 -0700"
      },
      "message": "TIF: hide BaseProgramColumns and BasePreviewColumns\n\nNote: BaseColumns(API 1) and BaseTvColumns(API 21) remains public due to\nthe backward compatability. Plus, inheritence between BaseProgramColumns\nand BasePreviewColumns is also removed to follow patterns in other\nContracts.\n\nTest: cts-tradefed run cts -m CtsTvTestCases -t android.media.tv.cts.TvContractTest\nBug: 36395855\nChange-Id: Ie73a2e48217676be53f373f8524afd04f7d8fc37\n"
    },
    {
      "commit": "adc160553092883c07ca34490f3f77eb662af562",
      "tree": "cb661f5b63631995d0bb904628451d851408b14a",
      "parents": [
        "49028f019976cef2db02ce2c9e03fc1f65466bf3",
        "e0b5bf50d6cf4621e483d0c85898a61a19ff6d45"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 15:32:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 15:32:25 2017 +0000"
      },
      "message": "Merge \"AudioAttributes: remove static getVolumeControlStream method\" into oc-dev"
    },
    {
      "commit": "4d52ae97070d91ed61c383aec17cf6bcf17767b0",
      "tree": "327b5bf93ad78403e5b0291a4b16340c8bf20afb",
      "parents": [
        "c56defe9c0e2652deecd993186f5e8a6a132c8db",
        "126cf03f7c8e825a23e47dd133e77eb1b3b7633d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 02:39:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 02:40:02 2017 +0000"
      },
      "message": "Merge \"Audio focus: API for external audio focus policy\" into oc-dev"
    },
    {
      "commit": "b43a5305bddb81881992819a40846b52e72afd3e",
      "tree": "1b9c0a7252ebea0a277c1a854a7665bd61d66d7b",
      "parents": [
        "df9cf5450cec9bc8b92d25a66c1f348cdc4b3498",
        "f9bbac1dafe27579d15556eb1dbe7c139ec8dcb4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 01:10:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 01:10:44 2017 +0000"
      },
      "message": "Merge \"TIF: use integer for constants instead of string\" into oc-dev"
    },
    {
      "commit": "845eef05ffea53f4ce7a1e0551896be874c4f302",
      "tree": "8e64bc698fa312fe3176c071dae91d316adac900",
      "parents": [
        "64731b1d41eccdf53450195d63ff9e3bd8c57fd7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 03 17:51:15 2017 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 03 17:51:15 2017 -0700"
      },
      "message": "Remove useless GraphicBuffer() constructor\n\nTest: compiled \u0026 run\nBug: 36869708\nChange-Id: Ie825979cd03874904b6f953ece4a05d4a0d52253\n"
    },
    {
      "commit": "99442d34277e469d37d74b36cc959d75de5af579",
      "tree": "bd5870b3fdb27a9696e8a59852249803d06b2e35",
      "parents": [
        "d490fe0372415df0515b16aa964c5a19c6495dcf",
        "9ef7fe43c9cd78382d699882e3b3170a50f62653"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 00:33:42 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 00:33:46 2017 +0000"
      },
      "message": "Merge \"media: unhide mediarecorder\u0027s setVideoEncodingProfileLevel api.\" into oc-dev"
    },
    {
      "commit": "126cf03f7c8e825a23e47dd133e77eb1b3b7633d",
      "tree": "c3f979ffd4bfed9644bcc3aaa79f9ff2aa5e3727",
      "parents": [
        "8371f96e9967c93e482dfb995c6092b2e7b78cec"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Apr 02 23:19:02 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 03 14:44:47 2017 -0700"
      },
      "message": "Audio focus: API for external audio focus policy\n\nSystem API for an external audio focus policy. Extends\n the system focus listener with interception of\n focus requests and abandons. Adds method for the focus\n policy to dispatch focus grants and losses.\n\nTest: gts-tradefed run gts -m GtsGmscoreHostTestCases -t \u0027com.google.android.gts.audio.AudioHostTest#testFocusPolicy\u0027\nBug: 30258418\nChange-Id: If408569a2dce07a774e0e2f1be9f1af8e426d2d3\n"
    },
    {
      "commit": "9ef7fe43c9cd78382d699882e3b3170a50f62653",
      "tree": "7e6fcf5e8ed91d707af4d7fc239cffbaf2177287",
      "parents": [
        "20959b2d406d6b76fb6f16075230da7542e1e3e8"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Fri Sep 09 17:34:52 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Mon Apr 03 12:56:39 2017 -0700"
      },
      "message": "media: unhide mediarecorder\u0027s setVideoEncodingProfileLevel api.\n\nTest: GoogleCmaera app.\nbug: 35151543\nChange-Id: I37dee948298a14d338bca670af0bc01450c83529\n"
    },
    {
      "commit": "f9bbac1dafe27579d15556eb1dbe7c139ec8dcb4",
      "tree": "73cd025e71697617577eafac70b0ac83991a982b",
      "parents": [
        "70fb40c17a84a708a7c85e4d76dfd5dd95a34e38"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 31 12:40:20 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Apr 03 12:51:53 2017 -0700"
      },
      "message": "TIF: use integer for constants instead of string\n\nTest: cts-tradefed run cts -m CtsTvTestCases\nBug: 36395855\nChange-Id: I9f0d62acb73883f543219a1ee4ed961140221a11\n"
    },
    {
      "commit": "70fb40c17a84a708a7c85e4d76dfd5dd95a34e38",
      "tree": "d13e8a25506e07d81004172a5e66c45c503a7e99",
      "parents": [
        "ef7dff2563ccbe74564ab3b417d810a04df556e7"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Mar 23 17:05:38 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Apr 03 12:51:52 2017 -0700"
      },
      "message": "TIF: Rename COLUMN_APP_LINK_INTENT_URI to COLUMN_INTENT_URI\n\nTest: cts-tradefed run cts -m CtsTvTestCases\nBug: 35856179\nChange-Id: I284cb1b764203c646e3edb3f105d90d59a7688d1\n"
    },
    {
      "commit": "e0b5bf50d6cf4621e483d0c85898a61a19ff6d45",
      "tree": "673432a0d339496170424f8158bfa21d819fa21f",
      "parents": [
        "38344ac4e923704bb121de6c2c59ef14d6d32619"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 03 11:58:38 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 03 12:02:19 2017 -0700"
      },
      "message": "AudioAttributes: remove static getVolumeControlStream method\n\nRemove (unreleased) getVolumeControlStream static method.\n\nTest: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioAttributesTest\nBug: 36724262\nChange-Id: Ieab0f61eb0ce032d9dd6716bf78f7cfc59b6eb51\n"
    },
    {
      "commit": "0a198d10347ef30fbd0d066faaebbed40621fa19",
      "tree": "87c25f7310b017871bc7fe5eb94bbbc5eedca726",
      "parents": [
        "b9dedd43cff7f0c6d0c652f198759f98fc50bfa2",
        "5e038e54282ac23ee9869a3c5c8847565bc9fff4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 01 03:01:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 01 03:01:04 2017 +0000"
      },
      "message": "Merge \"Add TYPE_PREVIEW in the javadoc of Channels.COLUMN_TYPE\" into oc-dev"
    },
    {
      "commit": "32e45042c9c63f0cd9c4c94846f14dbbe8d42f45",
      "tree": "830f2b7ba9a0d7f4ace0f17320e4270a2b00ef74",
      "parents": [
        "e577a840a1d07ecf08a34636f58ca28501ea8f64",
        "c87143446887d0ed0bcd1216a487d093c0a91530"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 30 23:20:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 30 23:20:55 2017 +0000"
      },
      "message": "Merge \"TIF: Remove redundant modifiers in TvContract\" into oc-dev"
    },
    {
      "commit": "c87143446887d0ed0bcd1216a487d093c0a91530",
      "tree": "629c3a6347b5a7683d172b6ceaee9ca9ddb43b36",
      "parents": [
        "1af2928767af7ffd95ce61946b95a7b5ef877bd5"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 10 16:07:25 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Mar 29 13:35:20 2017 -0700"
      },
      "message": "TIF: Remove redundant modifiers in TvContract\n\nTest: build\nBug: 36138179\nChange-Id: I313bdf421bc2af956a8b08933e5a86141a90a52f\n"
    },
    {
      "commit": "bf6b4efa6d75dbafa5056f80e736074335b2ed04",
      "tree": "840b40554d461e35fc918dd3c8d4eaacbbd9d0f2",
      "parents": [
        "ddb280b1ac873698a8c3ffa230cc7d64e1e70449",
        "e67bc4d484028de8a38237f21074dc4e7256c9d6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 29 17:39:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 29 17:40:01 2017 +0000"
      },
      "message": "Merge \"AudioAttributes: make getVolumeControlStream() non static\" into oc-dev"
    },
    {
      "commit": "5e038e54282ac23ee9869a3c5c8847565bc9fff4",
      "tree": "5450ec3fbec7058d80b6ce071b8a1615a7fdf096",
      "parents": [
        "79a973f643c7f9e54b698da0fcee8e6152a0d805"
      ],
      "author": {
        "name": "Chulwoo Lee",
        "email": "chulwoo@google.com",
        "time": "Tue Mar 28 19:19:04 2017 -0700"
      },
      "committer": {
        "name": "Chulwoo Lee",
        "email": "chulwoo@google.com",
        "time": "Wed Mar 29 02:22:42 2017 +0000"
      },
      "message": "Add TYPE_PREVIEW in the javadoc of Channels.COLUMN_TYPE\n\nAdding missing value in the javadoc.\n\nTest: build\nChange-Id: I1904c36b8fcc39acaf404101b198bafa7d92fbdc\n"
    },
    {
      "commit": "e67bc4d484028de8a38237f21074dc4e7256c9d6",
      "tree": "aac37bc856422abc8effab270d80ec7d032d3877",
      "parents": [
        "36e24836637492db68527ab9a9183aea2986d0b3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 27 11:52:18 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 28 21:37:35 2017 +0000"
      },
      "message": "AudioAttributes: make getVolumeControlStream() non static\n\nIn AudioAttributes class:\n - deprecate static getVolumeControlStream(AudioAttributes) method,\n - add non-static getVolumeControlStream() method.\n\nTest: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioAttributesTest\nChange-Id: Ic2276cb7367e0bcb0c07e1fe63de68dafddbccb5\n"
    },
    {
      "commit": "e710843fc780047fceaaecae86499c5d302f30dc",
      "tree": "42631aec27164ceb79f4733d861c304830d99269",
      "parents": [
        "3ab5c0173a7371c1757c52029cde5f4f84d3bd22"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Mon Mar 27 13:22:06 2017 -0700"
      },
      "committer": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Tue Mar 28 18:41:45 2017 +0000"
      },
      "message": "TIF: open transient columns to public\n\nTest: build\nBug: 36557756\nChange-Id: Ieb45ee5e6bd27fb33d84799ec1510a410ff7b027\n"
    },
    {
      "commit": "668c34444d13b67949836baa4eac560afcc527c5",
      "tree": "c0884687fd0c22757b92bec87fa007fa7a337e82",
      "parents": [
        "9a8eb3db62e9bc0eff4088cd83f0df29d9c0e830",
        "f1a9aff96261a40d16c36dd3d47a8190c308d744"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Mar 28 03:58:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 28 03:58:16 2017 +0000"
      },
      "message": "Merge \"Fix permission checking for a11y volume.\""
    },
    {
      "commit": "b567b580a83b3db45b7a170df66fdf859fb1a013",
      "tree": "d841c63f64b99c3527d7c3691a29a7c7eed11ae8",
      "parents": [
        "9d421ba0501535e2824b5b56ca2db84d4f4bb6b4",
        "39f285d5a75f653d2d2309b47cfaa143da42a0ca"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 28 00:02:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 28 00:02:23 2017 +0000"
      },
      "message": "Merge \"Sync the constants in HAL and framework\""
    },
    {
      "commit": "39f285d5a75f653d2d2309b47cfaa143da42a0ca",
      "tree": "00ff6c7abb1e9904e3f01d2c2501e70942b39d9d",
      "parents": [
        "117e0c9b5a65370b7895f73014adbc211f598c68"
      ],
      "author": {
        "name": "Shubang",
        "email": "shubang@google.com",
        "time": "Tue Mar 21 12:56:08 2017 -0700"
      },
      "committer": {
        "name": "Shubang",
        "email": "shubang@google.com",
        "time": "Mon Mar 27 15:15:46 2017 -0700"
      },
      "message": "Sync the constants in HAL and framework\n\nTest: Build and flash device\n\nBug: 36233336\nChange-Id: Ie81862825b601bdafd7653564d7393686d54f531\n"
    },
    {
      "commit": "f1a9aff96261a40d16c36dd3d47a8190c308d744",
      "tree": "82f4112935dd8c222902714b456d4ee822a42051",
      "parents": [
        "a2a3b1d7b55f3a147672dedbeb27e899e08a36e7"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Thu Mar 23 17:21:29 2017 -0700"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Mon Mar 27 14:59:26 2017 -0700"
      },
      "message": "Fix permission checking for a11y volume.\n\nAdding new permission for changing accessibility volume\nto allow system UI to change it. Also providing audio\nmanager with a whitelist of bound accessibility service\nuids so it can allow servics to change the volume.\n\nBug: 36569297\nTest: Adding CTS test in linked CL.\nChange-Id: I4f327e3a251fc3780c5957f41217c2ef5bb8b16e\n"
    },
    {
      "commit": "92dea33bfebed04533264b06e036d04cc16b9608",
      "tree": "edb2133071bb436fec31e5a9c4b1c8da834be89c",
      "parents": [
        "7c665f783f6e2eafad3fc3bffc4ff19df0883742"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Feb 02 11:52:08 2017 +0900"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Mar 27 14:58:43 2017 -0700"
      },
      "message": "Simplify the media button handling logic\n\nHere\u0027s the new media handling logic.\n\n1. If the foreground app consumes the media key event\n  (Activity.onKeyDown/Up() or Activity.setMediaController()),\n  we stop here.\n2. Find the media app whose AudioPlaybackConfiguration becomes\n  PLAYER_STATE_STARTED lastly across the boot. The media app is the app\n  with the media session.\n  - If its session is still alive, send the media key event\n    to the media session.\n  - If its session has been released but the session set the media\n    button receiver, send the media key event through the media button\n    receiver.\n  - If it has multiple media sessions, pick the media session whose\n    PlaybackState matches with the AudioPlaybackConfiguration\u0027s player\n    state.\n3. Stop here. Don\u0027t try revive any other app.\n\nThis approach has two limitations.\n1. If an app has multiple AudioPlaybackConfigurations and/or\n   media sessions, the MediaSessionService may pick the wrong media\n   session to send media key events.\n2. If an app with a media session plays sound effects differently from\n   the SoundPool class, the MediaSessionService would consider the app\n   as the lastly played media app.\n\nBug: 33032080\nTest: Manual tests as follows\n  1. Checked that the lastly played app receives the media key events\n     although the app\u0027s media session doesn\u0027t report its playback state.\n  2. Checked that the lastly played app receives the media key events\n     although the app\u0027s media session is released.\n  3. Checked that the lastly played app doesn\u0027t receive the media key\n     events if its playback is remote.\nChange-Id: I1fd6f9eee0750da4dea9fcc7401fdb1c3f249a72\n"
    },
    {
      "commit": "b3544c15651425173d486d7f83958ae51b51a61a",
      "tree": "7a024dff532972f6287f4bf6d1c903173a89e44a",
      "parents": [
        "e259c2c42be68fa2ead28eeed1df5042452d0eae",
        "dadee0c33e6cb659978ce4fa6aa21f7c384fc43c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 27 20:17:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 27 20:17:15 2017 +0000"
      },
      "message": "Merge \"MediaCas: rethrow MediaCas specific exception\""
    },
    {
      "commit": "034799db2fa3b5c48c4b1ddce947366599ac606f",
      "tree": "617a8bf7a384f168edee3ec82219372ca75c7f7d",
      "parents": [
        "1e8fd460fdd2ad2af0403a8cd63a819dcd30ce66",
        "16b21b864c219f7a84bd35465c7540405134647f"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Sat Mar 25 05:34:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 25 05:34:25 2017 +0000"
      },
      "message": "Merge \"MediaFrameworkTest: don\u0027t set surface if video format is unsupported\""
    },
    {
      "commit": "dadee0c33e6cb659978ce4fa6aa21f7c384fc43c",
      "tree": "d3346dbf8fe1889fce76ea3142531c06945af238",
      "parents": [
        "71e06d9d29f732a9df47702d8ea8db96c378f88f"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 14 10:05:36 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Mar 24 14:28:43 2017 -0700"
      },
      "message": "MediaCas: rethrow MediaCas specific exception\n\nTranslate ServiceSpecificException from aidl to CAS-specific\nexceptions. Also, throw CAS specific exception for descramble().\n\nbug: 22804304\n\nChange-Id: I6d68c335c87fbb95fd8cc227e432eed4e5951550\n"
    },
    {
      "commit": "16b21b864c219f7a84bd35465c7540405134647f",
      "tree": "e0e8bdc1bde92b2c28d715bd059969396823d047",
      "parents": [
        "b3ba20fe52b0b78e8fb3dffa693e80e4b69930cc"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 21 16:12:03 2017 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Mar 24 11:19:28 2017 -0700"
      },
      "message": "MediaFrameworkTest: don\u0027t set surface if video format is unsupported\n\nBug: 31964524\nTest: adb shell am instrument -w -r -e class com.android.mediaframeworktest.stress.MediaPlayerStressTest com.android.mediaframeworktest/.MediaPlayerStressTestRunner\nChange-Id: Ied3b1eefe952dd878b413027c9747a8dd58e4f27\n"
    },
    {
      "commit": "475032173866afebfc94a3edd59942cc4b2ce121",
      "tree": "346cd1eab3653ad38c9030d5a275967a4e8a9906",
      "parents": [
        "42aec90730ea9f6c37d6b2bc1b8e3a266126d72c",
        "01d3c73576a74c48d3029484a0a361080c17244c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 24 05:57:27 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 24 05:57:32 2017 +0000"
      },
      "message": "Merge \"MediaBrowser: Add a disconnecting state\""
    },
    {
      "commit": "17142506bbd7c6d63be5c1277c93707028da11b5",
      "tree": "a19d21dac13639f8fcf0772a49d2d699e867a5af",
      "parents": [
        "2204abdca92d9c5c4da9d2e408d6efc27895c647",
        "bd6118ffb453c7597c8679bc6bfefb4887d7662f"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Fri Mar 24 04:40:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 24 04:40:40 2017 +0000"
      },
      "message": "Merge \"Set volume handling of the default route properly\""
    },
    {
      "commit": "ca47020270f85e328d17df67eba764ff8cd5092b",
      "tree": "b5a37b57e3c89b706d605467ec286e863ec4a4b4",
      "parents": [
        "b3ba20fe52b0b78e8fb3dffa693e80e4b69930cc",
        "3afa1de7abc62747180ee34827767465586c522b"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Thu Mar 23 22:31:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 23 22:31:09 2017 +0000"
      },
      "message": "Merge \"TIF: Make COLUMN_LOCKED of channels table public\""
    },
    {
      "commit": "3afa1de7abc62747180ee34827767465586c522b",
      "tree": "441c2718b98be4bfdffb5fd8d6bd2ae12d7b90ba",
      "parents": [
        "a03686cc2ecc694f26e3bb211a490fb00c47a806"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Mon Mar 20 14:16:13 2017 -0700"
      },
      "committer": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Thu Mar 23 10:53:58 2017 -0700"
      },
      "message": "TIF: Make COLUMN_LOCKED of channels table public\n\nTest: cts-tradefed run cts -m CtsTvTestCases\nBug: 31340604\nChange-Id: I5bf155cb2bdea02f0841ecba0872077cc6609c06\n"
    },
    {
      "commit": "ce48965cf284a3173d18cd3b861d25b9aa0a6c9e",
      "tree": "a2d5b9be115b5f880d134b32c0836b452f9b479d",
      "parents": [
        "503b5cccd72e81a317bf7bad647534f115f5d962",
        "50750ff1624a5d4059b67ceceade595d45247c0e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 23 15:11:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 23 15:11:53 2017 +0000"
      },
      "message": "Merge \"Audio focus: SDK/System API updates\""
    },
    {
      "commit": "01d3c73576a74c48d3029484a0a361080c17244c",
      "tree": "85c712096f46c51d1dbb5b0a4578d1c0a34078b8",
      "parents": [
        "6099e75df2c12f5b4b9e73cf3f8acdbaea4b3146"
      ],
      "author": {
        "name": "Sungsoo",
        "email": "sungsoo@google.com",
        "time": "Wed Mar 22 17:41:02 2017 +0900"
      },
      "committer": {
        "name": "Sungsoo",
        "email": "sungsoo@google.com",
        "time": "Thu Mar 23 13:50:38 2017 +0900"
      },
      "message": "MediaBrowser: Add a disconnecting state\n\nBy adding a CONNECT_STATE_DISCONNECTING, we could prevent\nthe ConnectionCallback to be called after disconnect().\n\nBug: 36106103\nTest: manual using Support4Demos\nChange-Id: Ia6f9864dce90b1e58437c07bbcaf6300e162ab92\n"
    },
    {
      "commit": "0f04917d21f28dbb190d85e5e35c30aa7c78f65e",
      "tree": "197f6d3768ef840e3d5dfb017d442323d4f12440",
      "parents": [
        "55c85cadf698687edd991792a87e7780f45641cb",
        "742e379863ff08a880cb6d9e5f274da7589f9a53"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 23 02:34:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 23 02:34:31 2017 +0000"
      },
      "message": "Merge \"Revisit logging in MediaRouter and MediaSessionRecord\""
    },
    {
      "commit": "55c85cadf698687edd991792a87e7780f45641cb",
      "tree": "75dfa11e98b45d219f0a3c460eaa9fe7c3d9832c",
      "parents": [
        "c7798c4f00a4f7a0a42be290b3f2de328aa02557",
        "2eb39497bc6da4c793247d48db06b45a78903c97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 23 02:22:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 23 02:22:54 2017 +0000"
      },
      "message": "Merge \"Add missing type for USB headset devices\""
    },
    {
      "commit": "742e379863ff08a880cb6d9e5f274da7589f9a53",
      "tree": "0a3c4df56b913ecec7ea04ef002b2519618157a9",
      "parents": [
        "ec50f7031c81280700197dc32211ff419f7f9713"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Mar 22 18:22:40 2017 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 23 09:39:35 2017 +0900"
      },
      "message": "Revisit logging in MediaRouter and MediaSessionRecord\n\nThis limits excessive logs from MediaRouter and MediaSessionRecord\n- MediaRouter: Leave log only if there\u0027s change in the audio route.\n- MediaSessionRecord: Leave log for the controller callback instead of\n    dumping verbose stack traces.\n\nBug: 36497125\nTest: Manual test\nChange-Id: Ie0fe9f33388d1aa9f25c26b3b3f7c71fec409ba8\n"
    },
    {
      "commit": "50750ff1624a5d4059b67ceceade595d45247c0e",
      "tree": "b3c5c0227ead19cbbf84ab1807a437cb8379d656",
      "parents": [
        "0a637ecd1b082c93bfbcfecfae5b051573fed1c3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 21 11:18:24 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 22 15:12:05 2017 -0700"
      },
      "message": "Audio focus: SDK/System API updates\n\nAddressed API council notes: document some missing default values\n  of AudioFocusRequest builder, remove getters on lister and\n  handler.\nFix missing support of custom Handler for focus listener.\nIntegrate focus lock feature from AudioManager SystemAPI into\n  new AudioFocusRequest class and builder. Deprecate system\n  methods for focus requests that don\u0027t use AudioFocusRequest\nSwitch to a ConcurrentHashMap in AudioManager instead of a\n  lock and HashMap to maintain the list of focus listeners\n  for each AudioManager instance.\nClean up: all local IAudioService references can be made final.\n  Add missing @Override for the Stub implementations.\n\nTest: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioFocusTest\nBug: 30258418\n\nChange-Id: I9e903379a607c723a2620821200547de679231d1\n"
    },
    {
      "commit": "a00f86009eb84a96a2086d3e3e065bd812cdcee3",
      "tree": "34fb882ad03f0c52e8bbede3cd92cc8431c645b7",
      "parents": [
        "229ce701279110080dd9e4241637cc72347eb5d8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 22 08:39:42 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 22 08:39:42 2017 -0700"
      },
      "message": "PlayerBase: more general exception catching in release\n\nWhen stopping AppOps watching in the player release, catch\n  any exception to be safer.\n\nTest: see bug repro steps\nBug: 36240191\nChange-Id: I8e11cfc12c305878699dc57131e35e2a98eb7b16\n"
    },
    {
      "commit": "bd6118ffb453c7597c8679bc6bfefb4887d7662f",
      "tree": "094ee9fc89468a57834cc6540d4903bfc20dfa56",
      "parents": [
        "6099e75df2c12f5b4b9e73cf3f8acdbaea4b3146"
      ],
      "author": {
        "name": "Sungsoo",
        "email": "sungsoo@google.com",
        "time": "Mon Mar 20 14:39:34 2017 +0900"
      },
      "committer": {
        "name": "Sungsoo",
        "email": "sungsoo@google.com",
        "time": "Wed Mar 22 13:53:35 2017 +0900"
      },
      "message": "Set volume handling of the default route properly\n\nThe volume handling of the default route of the devices which use\nfixed volume should be set PLAYBACK_VOLUME_FIXED instead of\nPLAYBACK_VOLUME_VARIABLE.\n\nBug: 36492333\nTest: passed CTS of MediaRouterTest\nChange-Id: I4bc42063b71ae9087b36f1529b7689b96d9e53e7\n"
    },
    {
      "commit": "e30d5723e4f20bf078ea3326b4ca77db88a5de59",
      "tree": "d24677ac4cc5c387d4c40eb2561401c816f1fba2",
      "parents": [
        "1514f9a69dcfa65fd14ca8fff95db7b1172b78b0",
        "136f37b88f0faaebb401d251c18a4f727c5ba8e4"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Mar 20 21:54:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 20 21:54:28 2017 +0000"
      },
      "message": "Merge \"Add support for MTP perceived device type property.\" am: b6ed343e85 am: 7644b885c7\nam: 136f37b88f\n\nChange-Id: I446cd52e5fd8cda48e9af46ee3faee5578cae286\n"
    },
    {
      "commit": "7644b885c7cce095a18f3deb6d46a56e40755153",
      "tree": "ab37c17711a19d80c9b1f68623b3ec988729252d",
      "parents": [
        "69be98ae52d03599c8c6a662f1e84ab690dfaca2",
        "b6ed343e85914771da21b7cb44ac0286bac09ecc"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Mar 20 21:39:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 20 21:39:17 2017 +0000"
      },
      "message": "Merge \"Add support for MTP perceived device type property.\"\nam: b6ed343e85\n\nChange-Id: I58417625aa6c669eb82af3a11a4e35c77952f539\n"
    },
    {
      "commit": "b6ed343e85914771da21b7cb44ac0286bac09ecc",
      "tree": "84981807d56b6ebf24094447b69bae8b7dae0c32",
      "parents": [
        "cb4a3c55cf6baacc586bd75ecc1e21d36a9fd04b",
        "13bb2f4ddadcfee8e82a0eea3cb76a2448bb2ccb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 20 21:23:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 20 21:23:10 2017 +0000"
      },
      "message": "Merge \"Add support for MTP perceived device type property.\""
    },
    {
      "commit": "2eb39497bc6da4c793247d48db06b45a78903c97",
      "tree": "c1c4f1cc43f6d32e914f1f5489ed074894cb5dcf",
      "parents": [
        "08153e655afbc5ba010f04077fa282e23abcd5fd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 17 17:23:08 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 17 17:25:15 2017 -0700"
      },
      "message": "Add missing type for USB headset devices\n\nChange-Id: Ib3195442bfefd00edf46592e743617fe37b81a33\nTest: audio playback and capture regression tests\n"
    },
    {
      "commit": "96f6a1a7d60147eb51db5e18aa52b7d084b9f64e",
      "tree": "c9e3400ad4c6859bb191bcc81419ff47ea4cbfed",
      "parents": [
        "741a898514c7d2b53dd4d3f60f56317df46028f0",
        "fcc884005a4f070d2ae9906bcd022be9a3d9f6d8"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Fri Mar 17 19:39:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 17 19:39:44 2017 +0000"
      },
      "message": "Merge \"Block modifying types of channels\""
    },
    {
      "commit": "fcc884005a4f070d2ae9906bcd022be9a3d9f6d8",
      "tree": "89afa7d982c0d34c3ccdfeaf1defa26149023c50",
      "parents": [
        "2bd530e1562bcbf99b6d1b2f447b4b835d3bc43e"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Thu Mar 16 11:49:01 2017 -0700"
      },
      "committer": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Thu Mar 16 11:49:01 2017 -0700"
      },
      "message": "Block modifying types of channels\n\nThe type of channels should not be changed once it\u0027s set.\nBlocks this column from being modified.\n\nTest: cts-tradefed run cts -m CtsTvTestCases\nChange-Id: I9f7c99b4693db5553e85a1cab5cf1130425630c7\n"
    },
    {
      "commit": "5204ad0a2aa5903d9edf2e8814d0224afd1313cf",
      "tree": "1b4071e556d1b49a834c8cccbf21d62c7ef9276c",
      "parents": [
        "9ed74a81d9112f59ee6b33ee6fb73dd245bc0d4c",
        "f2d0e40bf01fa133dd6b36f3716005d53fa9776c"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 16 01:02:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 16 01:02:25 2017 +0000"
      },
      "message": "Merge \"Integrate API Council feedback into Media Metrics APIs\""
    },
    {
      "commit": "287a68e62af9e4278dd5270c70fa62b146f7bccc",
      "tree": "af7f39ad87422a3f563fd726c87e4b287a88d09d",
      "parents": [
        "32eb4602c1024e355141f0b21817bb3144c315b5",
        "3f547dcce2493831ed97cdb6e3ea7dfc9089529b"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Thu Mar 16 00:16:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 16 00:16:15 2017 +0000"
      },
      "message": "Merge \"Deprecate settingsActivity field in TvInputService\""
    },
    {
      "commit": "32eb4602c1024e355141f0b21817bb3144c315b5",
      "tree": "39b3879aff869a8d7a2fae3df28a802c32afe151",
      "parents": [
        "c2d761a445da4ba4cce99849e59e5d8f6c7fabc8",
        "6b7a4f7b95044f6baa82d2adc0dd95ae858d3524"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 16 00:10:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 16 00:10:33 2017 +0000"
      },
      "message": "Merge \"AudioRecord: more information in text of IllegalArgumentException\""
    },
    {
      "commit": "849008cc5686bfdaa48876178c9c7277fbaad5c4",
      "tree": "942f109338904efa3596220c592270361a0f811c",
      "parents": [
        "825cc3ac6502609157138f86cc8ca5a1df5d4b3a",
        "34cca21eac17d70c6558987c717f5d52247bb4a2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 15 20:55:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 15 20:55:45 2017 +0000"
      },
      "message": "Merge \"Make IGraphicBufferProducer a hybrid interface.\""
    },
    {
      "commit": "f2d0e40bf01fa133dd6b36f3716005d53fa9776c",
      "tree": "a03a063db18a399aa6008e916e2110576c8d2208",
      "parents": [
        "cf8a98af481923bc61db347fdf053ea6e9152731"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 09 10:17:51 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Mar 15 11:43:08 2017 -0700"
      },
      "message": "Integrate API Council feedback into Media Metrics APIs\n\nIntegrates the API Council\u0027s feedback into the Media Metrics\nrelated APIs.\n-- return types for the getMetrics() calls\n-- definition of keys in the set of data that comes back\n\nBug: 35811992\nTest: booted, CTS subset, checked dumpsys media.metrics output\nChange-Id: Ib750f9631bd3453be3132760273ccfff0a891f88\n"
    },
    {
      "commit": "6b7a4f7b95044f6baa82d2adc0dd95ae858d3524",
      "tree": "5600a084a61f69a4ea4c07bb826eb37f7c0d42e1",
      "parents": [
        "538d5a3d079aa60a6cf84befdda301469ab0b6a5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 15 10:34:00 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 15 10:40:08 2017 -0700"
      },
      "message": "AudioRecord: more information in text of IllegalArgumentException\n\nAdd more debug information inside the IAEs thrown during\n  audio parameter check.\n\nTest: try invalid params for recording, read exception text\nBug: 34119793\n\nChange-Id: Ic4f36fd6ef99c18107e3204ef5e25cc1bc9e704d\n"
    },
    {
      "commit": "3ff3dde601f9cec0e4ee72265e4e6ac22fd6d1dc",
      "tree": "e0effd68d0add9d35b3ea1ac2a9b119b60cca187",
      "parents": [
        "7d754b150f17ddb126a42d846b72e30c4ca10470",
        "71d5c76f19e8714102073bf774c025d5ccdebc11"
      ],
      "author": {
        "name": "Shubang Lu",
        "email": "shubang@google.com",
        "time": "Wed Mar 15 17:29:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 15 17:29:11 2017 +0000"
      },
      "message": "Merge \"TIF: add cable detection for TV inputs\""
    },
    {
      "commit": "42abe23ae30e562cd7f7747ed57d2ed8a8785fca",
      "tree": "8a67db00f489570b97d6d38ce7dbb3dc0249ca78",
      "parents": [
        "22b0d5dc6b56d322d4bae563084cefb7f2a58d47",
        "51396777aa1da55b73d6881ae9fb5cd086a34842"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 15 02:33:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 15 02:34:02 2017 +0000"
      },
      "message": "Merge \"Block modifying channel IDs of preview programs\""
    },
    {
      "commit": "34cca21eac17d70c6558987c717f5d52247bb4a2",
      "tree": "f43e37f150f5994d9437f151b6a9afdba0696843",
      "parents": [
        "a5af24cd02f9dadbea7d23c59ce5f04ce045080d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Mar 09 06:53:51 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Mar 14 18:45:26 2017 -0700"
      },
      "message": "Make IGraphicBufferProducer a hybrid interface.\n\nandroid::IGraphicBufferProducer will now become a hybrid\ninterface on\ntop of the HIDL interface\nandroid::hardware::graphics::bufferqueue::V1_0::IGraphicBufferProducer.\n\nTest: With CtsMediaTestCases.apk installed,\nadb shell am instrument -e size small -w\n\u0027android.media.cts/android.support.test.runner.AndroidJUnitRunner\u0027\n\nBug: 33854657\nChange-Id: Ia8914ea49d2acf3d43682982a164d7e10f7b8542\n"
    },
    {
      "commit": "3f547dcce2493831ed97cdb6e3ea7dfc9089529b",
      "tree": "59a96be768ce8f240bf5242c6697cae924039594",
      "parents": [
        "54eb1d4910cfd37104d40650fe7ad3b6d5c2ecda"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Tue Mar 07 18:30:26 2017 -0800"
      },
      "committer": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Tue Mar 14 18:08:47 2017 -0700"
      },
      "message": "Deprecate settingsActivity field in TvInputService\n\nTest: build\nBug: 27325064\nChange-Id: Ieb38cc06f49b3944387ba4bbb11b953e35f06d89\n"
    },
    {
      "commit": "6dbf377ef0432169996d0eb90ec86a1b886ca818",
      "tree": "c5a53ec0c07595f518d3772124712c434b35d1b2",
      "parents": [
        "9b0a5d191960668e6884b85588f4d9f31c662153",
        "4a6d31a8f328be6163051f3d5d2da16ff551d128"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 13 19:21:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 19:21:09 2017 +0000"
      },
      "message": "Merge \"Update javadoc about TIS.onTimeShiftGetCurrentPosition\""
    },
    {
      "commit": "4a6d31a8f328be6163051f3d5d2da16ff551d128",
      "tree": "ce73c1422e11b50cd6c4dd72ca1fb3d99063c7ed",
      "parents": [
        "fe0103861684fcf883b13ce9fb75dc321881b77a"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Wed Mar 08 17:55:42 2017 -0800"
      },
      "committer": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Mon Mar 13 10:34:24 2017 -0700"
      },
      "message": "Update javadoc about TIS.onTimeShiftGetCurrentPosition\n\nTest: build\nBug: 31099933\nChange-Id: Idc85d01b560cf8380473a0c9eb054f920864f91f\n"
    },
    {
      "commit": "71d5c76f19e8714102073bf774c025d5ccdebc11",
      "tree": "b6011e2003d0ee68d3c755a92f8baee659f387fb",
      "parents": [
        "d4bd7f1ee69793ed70e38bf42aa8488745e29193"
      ],
      "author": {
        "name": "Shubang",
        "email": "shubang@google.com",
        "time": "Thu Feb 23 15:46:40 2017 -0800"
      },
      "committer": {
        "name": "Shubang",
        "email": "shubang@google.com",
        "time": "Mon Mar 13 10:28:09 2017 -0700"
      },
      "message": "TIF: add cable detection for TV inputs\n\nTest: plug-in and unplug cable to TV and/or run VTS, or add fake\npass-through inputs (OTT devices).\n\nBug: 28715954\nChange-Id: I4229a1a16a61218714e2cd620d1284f7ef8e5d7a\n"
    },
    {
      "commit": "d6f4be8ee36f961382379476e94cd76869d2424a",
      "tree": "23b385ede0ddcc2264cead9f2a855428e9106bd6",
      "parents": [
        "ccdc6b82b8ea4868c740409f8b68cc8f84467183",
        "4564cbceb4471ed3e318557a6a1c7f0999ff0d46"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 13 02:54:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 02:54:15 2017 +0000"
      },
      "message": "Merge \"ExifInterface: Correct thumbnail compression info\""
    },
    {
      "commit": "b8feaa5eaaddc6b70879a69a07925c5b8729c75f",
      "tree": "44d384d30ec45272f3393d59c5b23482f39f84a7",
      "parents": [
        "c51d55eae649283d576b4a53eec50e76856790c8",
        "71f672b98a0c31001ca28de86d9ac99fef0812b1"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Sat Mar 11 17:49:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 11 17:49:22 2017 +0000"
      },
      "message": "Merge \"Switching Native MIDI API to an \"opaque pointers\" model.\""
    },
    {
      "commit": "61234d54c5af278ad721028c448f452d2a9e576f",
      "tree": "1839dd132355871fe58904bf2bc13c440974654e",
      "parents": [
        "097ee43b763cc6ab47faec4d9dc8b41d645a90e4",
        "b0b212014bbff37e61c8bdde4081c55bdfe36f12"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Sat Mar 11 12:03:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 11 12:03:36 2017 +0000"
      },
      "message": "Merge \"Throw IllegalStateException in MediaBrowser.search()\""
    },
    {
      "commit": "51396777aa1da55b73d6881ae9fb5cd086a34842",
      "tree": "46ea808cbd217205802553b36971fb23e07db61a",
      "parents": [
        "fe0103861684fcf883b13ce9fb75dc321881b77a"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Wed Mar 08 17:07:16 2017 -0800"
      },
      "committer": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Fri Mar 10 18:36:05 2017 -0800"
      },
      "message": "Block modifying channel IDs of preview programs\n\nTest: cts-tradefed run cts -m CtsTvTestCases\nBug: 34466631\nChange-Id: I9f16bfa23f6920292752465b40860b162fe9465e\n"
    },
    {
      "commit": "71f672b98a0c31001ca28de86d9ac99fef0812b1",
      "tree": "a4ca0e175f221a40870c7886f8a3033f5425cb12",
      "parents": [
        "f7683a6f173cca09b33e7eaeb51f3b867f68deaa"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Sun Mar 05 08:12:18 2017 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Mar 10 15:54:16 2017 -0700"
      },
      "message": "Switching Native MIDI API to an \"opaque pointers\" model.\n\nTest: manual\n\nChange-Id: Ic181008427e6e81106d867cc3a70deef8c591841\n"
    },
    {
      "commit": "4856ae4d0bd992ef06258aed47619196f6e0d306",
      "tree": "4603c99664e813972d94fc00d9157a3f5ab77abb",
      "parents": [
        "6b9cb3f520864fd088bc3125fb6e2f8383ea5c19",
        "36bdb6627a44be2e81c622c1e022ac39807692d8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 10 22:34:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 10 22:34:07 2017 +0000"
      },
      "message": "Merge \"AudioFocusRequest.Builder build exception and focus request deprecation\""
    },
    {
      "commit": "17e5a2d85150cd116cb1f502b09f5894003456cb",
      "tree": "3a15259f5c941bc6bab269c8abcd0f82211a08ca",
      "parents": [
        "652aa82d7ee4262a3708e84277aa66fb1936c29d",
        "2a3a4f81f9d9a176a0e67a6e27e5a94740931924"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Mar 10 20:43:07 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 20:43:07 2017 +0000"
      },
      "message": "Merge \"Refactor code incompatible with Mockito 2.7.13\"\nam: 2a3a4f81f9\n\nChange-Id: I259dc2116f1ba7d409729d739404dca501f4a5e8\n"
    },
    {
      "commit": "f26f346a27d72d34d1bd0c9a9f96e9fc3e619847",
      "tree": "4da95a435728ba30d78fcd3f208f07cae47c7d91",
      "parents": [
        "d7cf3b48d5564037ceb02cc1799332f3852cc4a8",
        "252f3b20bb158ddde6ffa687eff9c4d070919091"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 20:09:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 10 20:10:00 2017 +0000"
      },
      "message": "Merge \"JNI ImageReader: propagate exceptions when creating surface planes\""
    },
    {
      "commit": "36bdb6627a44be2e81c622c1e022ac39807692d8",
      "tree": "287ae3f7e2a215ad5cd1b44925d0d9e8f4aede74",
      "parents": [
        "c638e226c6d1111fc81a626e03ba027a2461afa3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 09 11:56:51 2017 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 10 12:01:55 2017 -0800"
      },
      "message": "AudioFocusRequest.Builder build exception and focus request deprecation\n\nAudioFocusRequest.Builder.build() throws IllegalStateException\n  when invalid parameters were set.\nDeprecate legacy focus request methods that used stream types.\n\nTest: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioFocusTest\nBug: 30258418\n\nChange-Id: Ie8960e686bc495fd06ac1b6f9eec3613ea19aaaa\n"
    },
    {
      "commit": "252f3b20bb158ddde6ffa687eff9c4d070919091",
      "tree": "4ac0600f7c9c6d1fe2cfcca86039b38ad1ef55dc",
      "parents": [
        "1f1416e51ae676af1a7f2a7a7151be12762b13d4"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Mar 09 12:40:09 2017 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 10 18:18:00 2017 +0000"
      },
      "message": "JNI ImageReader: propagate exceptions when creating surface planes\n\nBug: 36082388\nTest: Manual\nChange-Id: I4a0ad08c9b3c53aa7ca702e1c6e2d486b788f3ff\n"
    },
    {
      "commit": "26e81d2a47de64e8cc6b160ea44033aa6b23a907",
      "tree": "10f689ca9590fa47850b609853f74718a9d428c2",
      "parents": [
        "b224b318a03f794fa378e488f6844f8a1e66e7e7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Mar 09 18:49:41 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Mar 10 14:19:18 2017 +0000"
      },
      "message": "Refactor code incompatible with Mockito 2.7.13\n\nBug: 32912773\nTest: make checkbuild\nMerged-In: I96e3da967fad731fc8f39bde9db95f50ab7353fb\nChange-Id: I445b32432eea8a1ccb2060a73460a882a9ebe76f\n"
    },
    {
      "commit": "192bb0bc54f6bb418f5778fe26eb2e68514290fb",
      "tree": "599617fd46ee2642b76a0edab3dc65d56e111f5c",
      "parents": [
        "19d1e1d09dd3101fa27172e79c4de3f4fe83aa5c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Mar 09 18:49:41 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Mar 10 14:18:53 2017 +0000"
      },
      "message": "Refactor code incompatible with Mockito 2.7.13\n\n(cherry picked from 76e319f015c2b43498ce3ce610a253d63e76cbf3)\n\nSome additional internal only refactorings were done as well.\n\nBug: 32912773\nTest: make checkbuild\nChange-Id: I96e3da967fad731fc8f39bde9db95f50ab7353fb\n"
    },
    {
      "commit": "b0b212014bbff37e61c8bdde4081c55bdfe36f12",
      "tree": "0c9ed138f0a732a8a959387ba31d38ad078d5929",
      "parents": [
        "d5386fd4ef6cddd9dbc9f3f157d2a09a8577b545"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 09 15:26:39 2017 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 10 19:27:16 2017 +0900"
      },
      "message": "Throw IllegalStateException in MediaBrowser.search()\n\nThis CL makes MediaBrowser.search() throw IllegalStateException\nwhen the browser is not connected to the service.\n\nBug: 35346000\nTest: Flashed the image on angler and locally tested.\nChange-Id: I8fda53e31555337107c4e42f388ff82a7929b084\n"
    },
    {
      "commit": "4564cbceb4471ed3e318557a6a1c7f0999ff0d46",
      "tree": "d763d79a2497e878079d1b131258482961775ecc",
      "parents": [
        "d5386fd4ef6cddd9dbc9f3f157d2a09a8577b545"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 10 18:36:26 2017 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 10 19:15:05 2017 +0900"
      },
      "message": "ExifInterface: Correct thumbnail compression info\n\nExifinterface sets the thumbnail\u0027s compression information as JPEG\nwhenever the image has no compression tag in it. As a result, even\nan image with no thumbnail can have the thumbnail compression info.\nThis CL fixes the problem.\n\nTest: Run CTS test on angler\nChange-Id: I4b06956b1bac672e1bf235df6f458b31e8ee82bb\n"
    },
    {
      "commit": "cfdfd997bd3aa8e32d9d1eefddb1d5921c1db5ee",
      "tree": "a4a072ac5836189adcb9afc572142abaf9822165",
      "parents": [
        "6698ff30c41a6142bcc08149bd3169859ea638fc",
        "d5c7dd6da810a6b89151b337bea79fd817e6b72a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 05:15:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 10 05:15:21 2017 +0000"
      },
      "message": "Merge \"Modify SurfaceView to use SurfaceFlinger child surfaces.\""
    },
    {
      "commit": "40a07a8cc1d5e70d3f8e7487a7f9e6a4706aa532",
      "tree": "3e8462fb60a485277c94685f286b8f75483b9780",
      "parents": [
        "18f805e73d944fade201f94b7c324fb71bb2bd16"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 09 12:10:39 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 09 12:10:39 2017 -0800"
      },
      "message": "VolumeShaper: Use ISE for Builder methods with no arguments\n\nTest: VolumeShaperTest#testVolumeShaperConfigurationBuilder\nBug: 31015569\nChange-Id: Id442ac55a129e32280075ed59db39a3e7ed1ffe5\n"
    },
    {
      "commit": "d5c7dd6da810a6b89151b337bea79fd817e6b72a",
      "tree": "900f90bfc47d999d7e74bc4b4cd7dda3ac523320",
      "parents": [
        "cf8a98af481923bc61db347fdf053ea6e9152731"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 08 10:39:30 2017 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 08 17:36:10 2017 -0800"
      },
      "message": "Modify SurfaceView to use SurfaceFlinger child surfaces.\n\nHere we have SurfaceView bypass the WindowManager and speak\ndirectly to SurfaceFlinger using child surfaces. We also\nimplement some logic in the WM to handle child surfaces\nin various Surface replacement scenarios.\n\nFor those following along in the revert Saga, this\nalso includes the follow up CLs to the original CL.\n- Surface inset calculation\n- Animation fixes.\n\nThe error causing the revert was an incorrect JNI signature\naround deferTransactionUntilSurface. I\u0027ve noted it inline.\n\nBug: 28858420\nBug: 31518219\nBug: 34888808\nBug: 35588318\nBug: 35396882\nTest: Existing tests still pass (except for the ones that don\u0027t and will be deleted).\nChange-Id: Ie56b6f7ab16f32d7fc459b8eba26594337ad55de\n"
    },
    {
      "commit": "8810e9c0bc9ee9ead4a16d70d58a25777b7781dd",
      "tree": "2b23d65692c2a1cd65d5c17aae8ac6e3c4c2e44d",
      "parents": [
        "25e72b35e8fd1b29a07219755e46c7edb5cbff5a",
        "d4f1e86190fbe6b280635902a3cd734d65eded52"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 09 00:31:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 09 00:31:23 2017 +0000"
      },
      "message": "Merge \"VolumeShaper: Update Builder methods and Object overrides\""
    },
    {
      "commit": "d4f1e86190fbe6b280635902a3cd734d65eded52",
      "tree": "ab7e1db40170901e83ef787050b257a1179bbdc7",
      "parents": [
        "6f9347895177c43132edd9169d7989c1ff89f4b1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 06 11:39:10 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 08 10:52:26 2017 -0800"
      },
      "message": "VolumeShaper: Update Builder methods and Object overrides\n\nBuilder methods now throw IllegalArgumentExceptions on invalid\nconditions.\n\nObject hashCode, toString, equals updated for element-wise structural\nequivalence.\n\nTest: CTS VolumeShaperTest\nBug: 31015569\nChange-Id: I02860a51da58d8207145a9b8a5d2cb13806774b4\n"
    },
    {
      "commit": "b95d7b5af42107d022d4f450d96563134895cf87",
      "tree": "d6b498b0de11bd15b5177fd0055d7feb0d37cef6",
      "parents": [
        "b6f8556cb4efca43447c5a8f3c0c84578d1d7e2f"
      ],
      "author": {
        "name": "ZhiWei Chen",
        "email": "nick.chen@mediatek.com",
        "time": "Thu Feb 23 20:02:18 2017 +0800"
      },
      "committer": {
        "name": "Wally Yau",
        "email": "wyau@google.com",
        "time": "Wed Mar 08 17:48:19 2017 +0000"
      },
      "message": "AC3/EAC3 MaxInputChannelCount support\n\nbug: 33972143\nChange-Id: I63b6d5f8dcb66734ce0bd640febd91fb40bda333\n"
    },
    {
      "commit": "5aec7b90310ba05f9816fd89030ba41ce48c568e",
      "tree": "8c2f21ab63ec54660403a1ebe9a4c7776312da71",
      "parents": [
        "a851664403a6ddad6e3a8fbd71410c9948161dd4"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 07 17:15:50 2017 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Mar 08 01:52:19 2017 +0000"
      },
      "message": "Revert \"Modify SurfaceView to use SurfaceFlinger child surfaces.\"\n\nThis reverts commit cd4aeef88052571365d4e193a2c41e2e6d145491.\n\nBug: 36027342\nBug: 36015884\nChange-Id: Ifd5b69caf64d65a8cd6570b7fe1fb6abe90e30b8\n"
    },
    {
      "commit": "e0c121a4b7ab4bc21adcb1a6261330294a18617d",
      "tree": "1ddc367f64f88fd1c1c72dfe2efe6028255c0773",
      "parents": [
        "e5b770e47d44a40d412c7d42010b2cf67920d9e3",
        "0e6215391d79de9743545637832e07579edc3cd0"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Sun Mar 05 14:18:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 05 14:18:12 2017 +0000"
      },
      "message": "Merge \"Modify JavaDoc of MediaBrowserService.getBrowserRootHints\""
    },
    {
      "commit": "227bdecf0272c0327e8641f0c4e6bbbcf54a24b1",
      "tree": "b736175d04686541080a57467307e389a2663d0e",
      "parents": [
        "ae3c244944267e2fd5fdd7bd3e1cd09e599ee118",
        "df7707cb4f34138b423dde493fccfa4e7fb50c20"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 04 00:52:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 04 00:52:50 2017 +0000"
      },
      "message": "Merge \"fallout of cleaning-up libutils includes\""
    },
    {
      "commit": "f1e54c9a1cb294096dcf361eb9511a4baa2f51fc",
      "tree": "b3da83c4366807cb5ebae922a6212f2ae7af709e",
      "parents": [
        "e096df0063f9b22af1bf9159e4b6056c1c5c70f0",
        "cd4aeef88052571365d4e193a2c41e2e6d145491"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 22:45:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 22:45:24 2017 +0000"
      },
      "message": "Merge \"Modify SurfaceView to use SurfaceFlinger child surfaces.\""
    },
    {
      "commit": "cd4aeef88052571365d4e193a2c41e2e6d145491",
      "tree": "5c4a115dafe671bcd3b200013c73328243488a92",
      "parents": [
        "1ec752f2dac36b2bf32a9d3fdf5f1f022a09228c"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 10:48:11 2017 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 13:06:59 2017 -0800"
      },
      "message": "Modify SurfaceView to use SurfaceFlinger child surfaces.\n\nHere we have SurfaceView bypass the WindowManager and speak\ndirectly to SurfaceFlinger using child surfaces. We also\nimplement some logic in the WM to handle child surfaces\nin various Surface replacement scenarios.\n\nFor those following along in the revert Saga, this\nalso includes the follow up CLs to the original CL.\n- Surface inset calculation\n- Animation fixes.\n\nThe error causing revert was a deferTransactionUntil(-1)...-1\ncast to uint, defer transaction until MAX_UINT.\n\nBug: 28858420\nBug: 31518219\nBug: 34888808\nBug: 35588318\nBug: 35396882\nTest: Existing tests still pass (except for the ones that don\u0027t and will be deleted).\nChange-Id: Ib37236950a1dd3c4f9f4b58fd41ef9003c0557ef\n"
    },
    {
      "commit": "bfde1bea54391db4dd82b1ec89a9c8c3067cd272",
      "tree": "bd2d3f7a52d1b2e7e862c91dee1395c251724a36",
      "parents": [
        "8b5ca97a6ccdcd5ee7beb924c5eafd63a310a3cb",
        "c276c59eb5d0f36a1133ad718e5e1244390f4688"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Fri Mar 03 20:51:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 20:51:48 2017 +0000"
      },
      "message": "Merge \"nativemidi: Prototype demonstrating native access to IMidiDeviceServer\""
    },
    {
      "commit": "df7707cb4f34138b423dde493fccfa4e7fb50c20",
      "tree": "b2449ebca18e277ecacd685abb3c75267b8acb74",
      "parents": [
        "8b5ca97a6ccdcd5ee7beb924c5eafd63a310a3cb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 28 17:43:39 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 03 12:37:54 2017 -0800"
      },
      "message": "fallout of cleaning-up libutils includes\n\nTest: run \u0026 compile\nBug: n/a\nChange-Id: I0f6a0be03f4b120b1b5876aae0c0618c025d9f2b"
    },
    {
      "commit": "c276c59eb5d0f36a1133ad718e5e1244390f4688",
      "tree": "fe7c51b880eefcdc087b4e701b14e8978f060843",
      "parents": [
        "56fee637e90d9fb02196681cf62ca3bc54f39b9a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 31 18:08:10 2016 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Mar 03 12:00:33 2017 -0700"
      },
      "message": "nativemidi: Prototype demonstrating native access to IMidiDeviceServer\n\nFramework changes and a demo app\nComment and finalized Native MIDI API\nReplaced fixed PortRegistry tables with std::map.\nmore error handling.\nRemoved not-very-useful MidiDeviceManager class.\nMade Java API functions @hide.\n\nBug: 30252756\n\nTest: Manual\nChange-Id: Iae98e589f38ef6d625ff0842401193fe98c5d881\n"
    },
    {
      "commit": "0e6215391d79de9743545637832e07579edc3cd0",
      "tree": "f73068045454cb39fb909424adadbc7c1dce52a7",
      "parents": [
        "b5144655c20e4362087c3797d17838a4d54fe7b3"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 02 10:57:02 2017 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 03 13:24:53 2017 +0900"
      },
      "message": "Modify JavaDoc of MediaBrowserService.getBrowserRootHints\n\nThe method MediaBrowserService.getBrowserRootHints can be called\ninside of onSearch(), but the JavaDoc does not mention it.\nThis CL adds this information in the JavaDoc.\n\nTest: Called getBrowserRootHints inside of onSearch method.\nChange-Id: If82a371c8d06aab396e29141827c8991cff2cd3e\n"
    },
    {
      "commit": "2ff633cbc3368678133ef94fcc7895183f4ce9b8",
      "tree": "2e2b666fe3fb1c3daab3e7397c8cfbf73818beed",
      "parents": [
        "2e65f7c4e37532f8fe2047a1d8c5636b8599f4db",
        "3896db14751f16f4053e8fa4a82c3d6803054e5b"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 01:19:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 01:19:08 2017 +0000"
      },
      "message": "Merge \"Revert \"Modify SurfaceView to use SurfaceFlinger child surfaces.\"\""
    },
    {
      "commit": "3896db14751f16f4053e8fa4a82c3d6803054e5b",
      "tree": "73fc26fab80b97ed96da530914218bf6071909fb",
      "parents": [
        "693f3432ae77d1fcfaaf9d168de861192aacb4c4"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 03 00:20:22 2017 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 03 00:48:00 2017 +0000"
      },
      "message": "Revert \"Modify SurfaceView to use SurfaceFlinger child surfaces.\"\n\nThis reverts commit 693f3432ae77d1fcfaaf9d168de861192aacb4c4.\n\nP0: When playing encrypted content the Fugu displays a blank screen.\n\nTest: with topic \"surfaceview-without-wm\" reverted, encrypted playback\nworks on ToT oc-release. See repro steps in 35917840#12.\n\nbug:35917840\n\nChange-Id: I37fa1e427daff3a1c18ed1c92d035421d891f67c\n"
    },
    {
      "commit": "72a489c035dd536cd13c0a87fc74e9b45da43cae",
      "tree": "ab30477cb2ab89cc8156a898864de9a1f0060237",
      "parents": [
        "e1c54d53f1fcb04337e6fc5654e24fddb52edc02",
        "f0f6685eeb2093f52b8024b8e4643719e798636a"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 02 23:03:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 02 23:04:03 2017 +0000"
      },
      "message": "Merge \"Javadoc for the recently added getMetrics()\""
    },
    {
      "commit": "f0f6685eeb2093f52b8024b8e4643719e798636a",
      "tree": "7021ea14fda48c5fe328db0365f8d0171cabb30a",
      "parents": [
        "a120091195809edf60232a266c720abb25c27f47"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Mar 01 17:23:48 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Mar 01 17:23:48 2017 -0800"
      },
      "message": "Javadoc for the recently added getMetrics()\n\nAdd javadoc comments for the getMetrics() functions that\nwe\u0027ve added to android.media.Media{Codec,Extractor,Player}.\nThis describes the currently implemented functionality.\n\nBug: 35096098\nTest: Compilation\n"
    },
    {
      "commit": "0e06ccf488bb7744709b8f3421f3a5a2f5ae69f7",
      "tree": "5393e32af701a61c63bfb72f8ecbf77f9dc0ad08",
      "parents": [
        "e2a3c4e8c4d902213726039c701484c6c1c721f5",
        "693f3432ae77d1fcfaaf9d168de861192aacb4c4"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 01 17:49:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 01 17:49:27 2017 +0000"
      },
      "message": "Merge \"Modify SurfaceView to use SurfaceFlinger child surfaces.\""
    },
    {
      "commit": "fe25c7ea5718c476351c1cc949a6c2d63a59bbbd",
      "tree": "a31dedde0a248e2434c6e0f3c3541f373c122daf",
      "parents": [
        "546389580503d38fd1925cc5fa65914790696e35",
        "5fecfb37e328bd3b15afed0e1e37acb44d4961a1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 28 23:14:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 23:14:57 2017 +0000"
      },
      "message": "Merge \"TIF: add WatchNextPrograms in TvContracts\""
    },
    {
      "commit": "cb9fe891975f3ba67c42aea0f21d74c0a009214f",
      "tree": "bd9eeaee85c0cd4b6be5bdf970da0c44ddd6238a",
      "parents": [
        "77dde67d64aa068db4d80fd144d2874a8fb88e37",
        "8606c335c302d90ccd5545537bc1f7e4d217ebf9"
      ],
      "author": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Tue Feb 28 21:21:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 21:22:00 2017 +0000"
      },
      "message": "Merge \"Earlier processing of DrmInfo notification\""
    },
    {
      "commit": "77dde67d64aa068db4d80fd144d2874a8fb88e37",
      "tree": "a8d70a0eaf6acf4b5009d914af13ca1bb8049a9a",
      "parents": [
        "90ebaa8d2d720d30d453bac8995519fac459d840",
        "3bfdf8ddf706cc5a425e191bb5bb985fd376f796"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Feb 28 20:36:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 20:36:44 2017 +0000"
      },
      "message": "Merge \"TIF: make Channels.COLUMN_BROWSABLE visible\""
    },
    {
      "commit": "5fecfb37e328bd3b15afed0e1e37acb44d4961a1",
      "tree": "95bf0e3c5c238bbd1aad7075ee28b92cc8e9904c",
      "parents": [
        "3bfdf8ddf706cc5a425e191bb5bb985fd376f796"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Sat Feb 25 07:27:39 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Feb 28 11:04:10 2017 -0800"
      },
      "message": "TIF: add WatchNextPrograms in TvContracts\n\nTest: cts-tradefed run cts -m CtsTvTestCases\nBug: 35723325, Bug: 35724854\nChange-Id: I3e476c514c73aa90fa20065e10202c2e363d5612\n"
    }
  ],
  "next": "8606c335c302d90ccd5545537bc1f7e4d217ebf9"
}
