)]}'
{
  "log": [
    {
      "commit": "6a287c7c18711529b40637927e32c5c865113154",
      "tree": "57b677f4d465649e7e9ce964d7f49041f6e3fd93",
      "parents": [
        "0967c6c06d030636e2c584ce3e24924357a3a854",
        "e14a36f37035c2655df13838c15fdb61e76c3e65"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 23:37:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 23:37:54 2018 +0000"
      },
      "message": "Merge \"Fix TIYUV420PackSemiPlanor color converter to use src crop -- DO NOT MERGE\" into pi-dev"
    },
    {
      "commit": "0967c6c06d030636e2c584ce3e24924357a3a854",
      "tree": "9614233f9011d7645c95a1b84b610aa609845fe3",
      "parents": [
        "2383098d54b6503875bdf0c6b649fa66f22d79ac",
        "1d3556d6a068f141ac390a04f6a9d92a70f8d7ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 05 19:36:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 19:36:31 2018 +0000"
      },
      "message": "Merge \"AudioTrack: Prevent server from reading client data after stop\" into pi-dev"
    },
    {
      "commit": "2383098d54b6503875bdf0c6b649fa66f22d79ac",
      "tree": "fe84dc2f8106f3eca08b4dce0788e00970ea94d0",
      "parents": [
        "ef3dbdbf730a1921aa387eec81f0cd0d46f9260b",
        "829a00bd6e54ce78fe1a28d8739988e24ec4ab6d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 18:38:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 18:38:53 2018 +0000"
      },
      "message": "Merge \"Clear input routing when closeAllInputs().\" into pi-dev"
    },
    {
      "commit": "e14a36f37035c2655df13838c15fdb61e76c3e65",
      "tree": "7e041a71aaf596493ac8bca5671e0c4d87d2324d",
      "parents": [
        "ef3dbdbf730a1921aa387eec81f0cd0d46f9260b"
      ],
      "author": {
        "name": "Angela Stegmaier",
        "email": "angelabaker@ti.com",
        "time": "Wed Mar 01 09:44:06 2017 -0600"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 05 11:37:14 2018 -0700"
      },
      "message": "Fix TIYUV420PackSemiPlanor color converter to use src crop -- DO NOT MERGE\n\nTIYUV420PackSemiPlanor color conversion routine is updated to\noffset src_y using the given crop parameters. Previously it was\nassuming that the mBits were already offset but at least in the\nlatest code base it is not, so it needs to take into account\nthe src crop appropriately.\n\nbug:70844660\n\nChange-Id: I206925ba254cf547241ff30c6211b4dc94c9cac7\nSigned-off-by: Angela Stegmaier \u003cangelabaker@ti.com\u003e\n(cherry picked from commit 7576c34313b9b9a47d64527e346c0a2c4c86904f)\n"
    },
    {
      "commit": "ef3dbdbf730a1921aa387eec81f0cd0d46f9260b",
      "tree": "33bc9794e6c9cbaf9a93dbef80b828a42811e514",
      "parents": [
        "eba668adbdee1ecfcf00fa9f9fc066c022cfddba",
        "47afe0a1a6f37e7807a81acb21ef588aec0a3518"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Apr 05 16:33:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 16:33:39 2018 +0000"
      },
      "message": "Merge \"Add OnMediaTimeDiscontinuity notification\" into pi-dev"
    },
    {
      "commit": "eba668adbdee1ecfcf00fa9f9fc066c022cfddba",
      "tree": "b6935bd6cfd0d641abd14d20240f2b3fdad7df80",
      "parents": [
        "79d1ed9b6473f4d094aaa6b53f41a6ba92916e42"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 05 08:13:15 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 05 08:13:15 2018 -0700"
      },
      "message": "AudioPolicyService: Fix typo in UidPolicy::isUidActive\n\nCopy-paste bug.\n\nBug: 77300296\nBug: 77624334\nTest: make\nChange-Id: Id5352dafe70003d7027a2ec71144570ac927ea73\n"
    },
    {
      "commit": "79d1ed9b6473f4d094aaa6b53f41a6ba92916e42",
      "tree": "37243f3777818b9cbf719bfb7c24b3639d907509",
      "parents": [
        "9b2aa31c73490618a76032e56e2c4a96da399e6a",
        "1cc95d837531b9d80f37dc6c3b848cf000339388"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 02:12:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 02:12:41 2018 +0000"
      },
      "message": "Merge \"stagefright: AMessage: allow finding, editing and removing entries\" into pi-dev"
    },
    {
      "commit": "9b2aa31c73490618a76032e56e2c4a96da399e6a",
      "tree": "a3a31f9c6a00ec6ba8d8308320e09aef20e48ea6",
      "parents": [
        "63977aac6db1bd75a1a1abac3b8836a77b46e09b",
        "15033bd29308cf8d6a177ed871b5b35eda65e8c0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 01:01:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 01:01:33 2018 +0000"
      },
      "message": "Merge \"Fix thumbnail track skipping\" into pi-dev"
    },
    {
      "commit": "63977aac6db1bd75a1a1abac3b8836a77b46e09b",
      "tree": "58bfd5c0c676fb0c20ced94003a1f4de3316e1e7",
      "parents": [
        "e2bd0d498f9f5e9ddac0eb8a0685fc2d7f51745b",
        "eae73eb726c141056caf5a7ff95d45c3bcdd999f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 00:49:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 00:49:24 2018 +0000"
      },
      "message": "Merge \"AudioPolicyService: Properly handle service restarts in UidPolicy\" into pi-dev"
    },
    {
      "commit": "1cc95d837531b9d80f37dc6c3b848cf000339388",
      "tree": "f13af5c9cad5a3344f6589555bc9a81173aa86ca",
      "parents": [
        "e2bd0d498f9f5e9ddac0eb8a0685fc2d7f51745b"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 04 16:42:40 2018 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 04 17:36:09 2018 -0700"
      },
      "message": "stagefright: AMessage: allow finding, editing and removing entries\n\nAllow editing entry names and removing entries to avoid having to\ncreate copies and switch-banks to copy each value type.\n\nBug: 64121714\nTest: unit test\nChange-Id: I83aff86f6511cfbcf7c84fcca08f428ed32ede0b\n"
    },
    {
      "commit": "829a00bd6e54ce78fe1a28d8739988e24ec4ab6d",
      "tree": "6cd0612f5863821718acc89a134c9e41457da163",
      "parents": [
        "93768b1382f021f29772cc72da6f48dc2fb225f7"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 04 16:28:32 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 04 16:28:32 2018 -0700"
      },
      "message": "Clear input routing when closeAllInputs().\n\nWhen the device disconnect, all inputs will be closed before calling\nreleaseInput(). In that case, input route ref count will be wrong due to\nroute couldn\u0027t be removed in releaseInput() since the input is already\nclosed, that may cause the routing error. Clear input routes to prevent\nthe routing error when closing all inputs.\n\nBug: 77520691\nTest: Reconnecting the usb device, check the input routing.\nChange-Id: I754cf2774c9c38b751f918b32e881b6d464a7a01\n"
    },
    {
      "commit": "eae73eb726c141056caf5a7ff95d45c3bcdd999f",
      "tree": "f0e034a867acf3af218b60a9bdc947ddc31e47cc",
      "parents": [
        "728f909a1fecb99e565a0239580c5e9fff264209"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 03 16:57:36 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 04 15:55:12 2018 -0700"
      },
      "message": "AudioPolicyService: Properly handle service restarts in UidPolicy\n\nAdd logic in UidPolicy for handling audioserver restarts as well\nas ActivityManager (system server) restarts.\n\nAlso, refactor the UidPolicy logic to simplify reasoning about\nactive state lookup. As a result, 4 layers are considered:\n\n1. Service UIDs--always active.\n2. Overrides--controlled via \u0027adb shell cmd\u0027.\n3. Cached UIDs from ActivityManager--also updated via IUidObserver.\n4. ActivityManager ground truth.\n\nBug: 73405145\nBug: 77300296\nTest: android.media.cts.AudioRecordTest#testRecordNoDataForIdleUids\n      manual tests with SoloTester\nChange-Id: I426dd5d4d9c9c2570c0e03dde390e18f672c1b1d\n"
    },
    {
      "commit": "e2bd0d498f9f5e9ddac0eb8a0685fc2d7f51745b",
      "tree": "6a764ab4a63bfa53edf83e7ea5e36e050cacd7f7",
      "parents": [
        "7d08bf4ec05777c7089f1ccba1e42c09786a1511",
        "ff0a51f978a6307153cc752b8071144d642b54ac"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 04 20:13:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 20:13:23 2018 +0000"
      },
      "message": "Merge \"Frequency Domain implementation of Dynamics Processing Effect\" into pi-dev"
    },
    {
      "commit": "15033bd29308cf8d6a177ed871b5b35eda65e8c0",
      "tree": "5e42d91bc46cad94cedbd8d621c84f2f2559b72f",
      "parents": [
        "fcf9a4c7e2d646154927a53d7a25bef5c4c380d7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 04 11:48:52 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 04 11:54:23 2018 -0700"
      },
      "message": "Fix thumbnail track skipping\n\nThumbnail tracks are identified by \u0027tref\u0027 box with a \u0027thmb\u0027\ntype reference in it. We can\u0027t skip a track as soon as a \u0027tref\u0027\nbox appears, need to actually parse it and look for \u0027thmb\u0027.\n\nbug: 77556099\n\nTest: playback of audio files in bug, playback of image sequence\n      file (bird_burst.heic) with thumbnail reference.\n\nChange-Id: I7d6ec8af218de2f0cba258f8eaaac9b62f9cb020\n"
    },
    {
      "commit": "7d08bf4ec05777c7089f1ccba1e42c09786a1511",
      "tree": "d6baa9fdf9a7abacac1cb403cf48a706885df805",
      "parents": [
        "24b0a892cd14a0852277f325f7bb8dbceb420969"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Apr 04 10:58:20 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Wed Apr 04 18:01:57 2018 +0000"
      },
      "message": "Build fix - add sHearingAidVolumeCurve definition in Gains.h\n\nTest: compilation\nBug: 69623109\nChange-Id: I021834d8013eced600c669b1be3f08721fd35092\n"
    },
    {
      "commit": "24b0a892cd14a0852277f325f7bb8dbceb420969",
      "tree": "7826feae528654ff25c2901c6ba8ec3feb51dbf7",
      "parents": [
        "e8c3ff270ef06ab3f4d016f864a92de7b78edd6d"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Mon Apr 02 19:17:11 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Tue Apr 03 22:17:57 2018 -0700"
      },
      "message": "Hearing Aid volume curve\n\nHearing Aid uses volume value from -127 to 0dB. Make sure that volume\ncurve used is able to adjust volume in whole range.\n\nTest: play music using Hearing Aid, try lowering volume to smallest\nnon-mute value.\nBug: 69623109\nFixes: 76434849\nChange-Id: I8b8d64405016252f08ddda823fab74115352de4e\n"
    },
    {
      "commit": "e8c3ff270ef06ab3f4d016f864a92de7b78edd6d",
      "tree": "f9b61a98a19a1e2a937b1d32cc9cdf9de392003f",
      "parents": [
        "f8245c132d093e03352648ca9c118c2a0fef2f6a",
        "113b9b3135fdde0167bec340c6d20a42471fb227"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 04 03:03:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 03:03:48 2018 +0000"
      },
      "message": "Merge \"Adds USAGE_ASSISTANT to UsageTypeConverter\" into pi-dev"
    },
    {
      "commit": "f8245c132d093e03352648ca9c118c2a0fef2f6a",
      "tree": "465577237b0dfd017e2dbb938196b86864834adc",
      "parents": [
        "00a3805bf8157b9977c35e6652773040ddc4b05d",
        "d7111ab7c1e7767b15137ee21f543f6460e4c1a3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 04 00:13:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 00:13:54 2018 +0000"
      },
      "message": "Merge \"Fix heif related MediaFormat key names in ndk\" into pi-dev"
    },
    {
      "commit": "ff0a51f978a6307153cc752b8071144d642b54ac",
      "tree": "eac825ffd5ba58ed7babdc559fb3bff785fc4baf",
      "parents": [
        "9f011fed92c4982819f78c7cfb4c07b27adf7651"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Mar 22 09:55:50 2018 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Apr 03 17:00:53 2018 -0700"
      },
      "message": "Frequency Domain implementation of Dynamics Processing Effect\n\nPorted the frequency domain implementation of the effect from the\ndevelopment sandbox.\n\nBug: 64161702\nBug: 38266419\n\nTest: manual with Triton app. Cts tests. Listening tests.\nChange-Id: I9417beba2f98f2a677f0857c7976bf76a0e0d8e0\n"
    },
    {
      "commit": "00a3805bf8157b9977c35e6652773040ddc4b05d",
      "tree": "ef148c07dbed84a02461f3809f9fb75d5c78f40d",
      "parents": [
        "93768b1382f021f29772cc72da6f48dc2fb225f7",
        "9f011fed92c4982819f78c7cfb4c07b27adf7651"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 03 23:47:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 23:47:46 2018 +0000"
      },
      "message": "Merge \"Dynamics Processing Effect\" into pi-dev"
    },
    {
      "commit": "113b9b3135fdde0167bec340c6d20a42471fb227",
      "tree": "edc5ca77c9cf03d470be5314b10e480267d13690",
      "parents": [
        "ac0beb7bc1feeedf643263bd79b7cbe95f0dcc3a"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Apr 03 16:23:22 2018 -0700"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Apr 03 16:23:22 2018 -0700"
      },
      "message": "Adds USAGE_ASSISTANT to UsageTypeConverter\n\nBug: 77547740\nTest: adb shell dumpsys media.audio_policy\nChange-Id: I05fd9e3b59f57800ae91257889ce7768a2dcb2c4\n"
    },
    {
      "commit": "93768b1382f021f29772cc72da6f48dc2fb225f7",
      "tree": "7c14ad6cdd0715173484bb47bd1164cc08f0dc0e",
      "parents": [
        "728f909a1fecb99e565a0239580c5e9fff264209",
        "bc4d3b86ba345d1ee91b0da73db6a26f3194fa31"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 03 21:08:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 21:08:29 2018 +0000"
      },
      "message": "Merge \"Volume curves: alarm and accessibility can\u0027t be muted\" into pi-dev"
    },
    {
      "commit": "9f011fed92c4982819f78c7cfb4c07b27adf7651",
      "tree": "09af80741066b5f45d72e3647f16cef21f7a7b3c",
      "parents": [
        "96fa7ff5c44bc2abbc824c3b300dd53f7189f60c"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Mon Feb 05 09:29:56 2018 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Apr 03 13:46:46 2018 -0700"
      },
      "message": "Dynamics Processing Effect\n\nEffect and command implementation\n\nBug: 64161702\nBug: 38266419\n\nTest: manual testing and cts tests\nChange-Id: Iead2cd5efd22f735fdcdfd17e81180c4b52260c5\n"
    },
    {
      "commit": "d7111ab7c1e7767b15137ee21f543f6460e4c1a3",
      "tree": "8cf6a9c32418e3dc84ee03f62076ecd7ee32aaa5",
      "parents": [
        "fcf9a4c7e2d646154927a53d7a25bef5c4c380d7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 03 12:46:01 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 03 12:47:07 2018 -0700"
      },
      "message": "Fix heif related MediaFormat key names in ndk\n\nbug: 74831433\nChange-Id: Ia78685444ecf40ebdbe2ed6eb30f3db0aecc8a5c\n"
    },
    {
      "commit": "728f909a1fecb99e565a0239580c5e9fff264209",
      "tree": "6f60997bd5daa8f0e1d6589308dcaf3fd1ecfc4d",
      "parents": [
        "ac0beb7bc1feeedf643263bd79b7cbe95f0dcc3a",
        "03f5575dc5c1a4de41dd2f327e59c1938b2a25d1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 03 17:13:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 17:13:39 2018 +0000"
      },
      "message": "Merge \"Camera: sort NDK getCameraIdList output\" into pi-dev"
    },
    {
      "commit": "ac0beb7bc1feeedf643263bd79b7cbe95f0dcc3a",
      "tree": "34f7e12635513b3d123c56fedf3ce1a473516b31",
      "parents": [
        "f4b75c9ad8a79d218ca7ea1770610ab90d131c07",
        "53a068a42aefee50df5630c84425378b1cacd642"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 03 12:57:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 12:57:19 2018 +0000"
      },
      "message": "Merge \"Camera: Update camera docs about external device orientation\" into pi-dev"
    },
    {
      "commit": "f4b75c9ad8a79d218ca7ea1770610ab90d131c07",
      "tree": "c882dac3737c06ab7629b806c8dc32275351d9a2",
      "parents": [
        "19809964b733bafc7e625d13477d594f6fb90dc3",
        "fdd2cad293ab12d4066bb944142ca5d6b862c4b9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 03 06:01:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 06:01:46 2018 +0000"
      },
      "message": "Merge \"Fix potential memory leak.\" into pi-dev"
    },
    {
      "commit": "bc4d3b86ba345d1ee91b0da73db6a26f3194fa31",
      "tree": "475b1c1100377fc91e0c3010881b9248c9da239c",
      "parents": [
        "1f03085b596f185d91ccae11b7c0d9f0bc8cd206"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 02 15:31:45 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 02 18:20:46 2018 -0700"
      },
      "message": "Volume curves: alarm and accessibility can\u0027t be muted\n\nAdd new \"non mutable\" default volume curves, use them for alarm\n  and accessibility.\nVolume curves that start at 1 can be muted (at 0, attenuation\n  is -infinity): modify alarm and a11y curves to start at 0.\n\nBug: 72403580\nBug: 74985293\nTest: try to mute alarms through UI and fail\nChange-Id: Ieed1143f392b359198acabf986caa183536761a5\n"
    },
    {
      "commit": "19809964b733bafc7e625d13477d594f6fb90dc3",
      "tree": "bd8d3e292d3f04beec14d3d3f85e2c988a2867f7",
      "parents": [
        "fcf9a4c7e2d646154927a53d7a25bef5c4c380d7",
        "1e935c739f40cb8247a1f13c02996aaa8331229b"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 02 23:59:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 23:59:31 2018 +0000"
      },
      "message": "Merge \"Fix clearkey return code for setSecurityLevel\" into pi-dev"
    },
    {
      "commit": "1d3556d6a068f141ac390a04f6a9d92a70f8d7ed",
      "tree": "e89b4aa887013efbc8227dcf4c56addf4ab284b9",
      "parents": [
        "1f03085b596f185d91ccae11b7c0d9f0bc8cd206"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 29 16:30:14 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 02 14:19:24 2018 -0700"
      },
      "message": "AudioTrack: Prevent server from reading client data after stop\n\nPrior to this CL, if an AudioTrack client wrote audio data after\nAudioTrack stop(), but before the track was drained by the server,\nthe newly written client data would be consumed in the drain.\n\nWe now limit the server read to the client write position on stop.\nThis interlocking is essential for rapid asynchronous AudioTrack\ncommand processing.\n\nTest: AudioTrack CTS, SoundPool looping, bug test case\nBug: 75788313\nChange-Id: Ib70e3dc46afe047a8c6cf1fb906a618b3c66cc7f\n"
    },
    {
      "commit": "fdd2cad293ab12d4066bb944142ca5d6b862c4b9",
      "tree": "0894d05a22773f61f6d70f11bccdd6bf04c52762",
      "parents": [
        "fcf9a4c7e2d646154927a53d7a25bef5c4c380d7"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Sat Mar 31 16:31:29 2018 -0700"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Sat Mar 31 16:31:29 2018 -0700"
      },
      "message": "Fix potential memory leak.\n\nIn the onTransact DECRYPT case, the allocated subSamples\nare not freed when we encounter an error. Use unique_ptr\nto manage memory instead.\n\nTest: Play Movies \u0026 TV, Netflix\nTest: Gts\n\nbug: 73628269\nChange-Id: I36b7deeff0380ee3be31ad5f93a5598cfe02e381\n"
    },
    {
      "commit": "fcf9a4c7e2d646154927a53d7a25bef5c4c380d7",
      "tree": "b56d15707685ce0732a54d637f968ac86a976b93",
      "parents": [
        "f2c4711aaed2a845e94a50c707c1ba7cec443443",
        "2af67733ac8616ccc763afaa6f6cfebeffc090a3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 31 10:20:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 31 10:20:26 2018 +0000"
      },
      "message": "Merge \"audio policy: disable silencing of background UID record\" into pi-dev"
    },
    {
      "commit": "f2c4711aaed2a845e94a50c707c1ba7cec443443",
      "tree": "7b805d5fc23de244cb5c1c45246724390d60ce36",
      "parents": [
        "f2797b2275e808a73641190899994de639f123f2",
        "b13b35d7e2732227c1593257d4ef1353bf672a1f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 31 04:53:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 31 04:53:21 2018 +0000"
      },
      "message": "Merge \"Add retries in restoreTrack_l if the track does not start\" into pi-dev"
    },
    {
      "commit": "2af67733ac8616ccc763afaa6f6cfebeffc090a3",
      "tree": "50d7ecf1ef9fe42d3c09094ed143e574f50eac9d",
      "parents": [
        "2ad6e528d603fe45d170ecb56ed522fe467244fd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 30 18:17:20 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 30 18:25:22 2018 -0700"
      },
      "message": "audio policy: disable silencing of background UID record\n\nThere is a problem when audioserver process restarts where we fail to\nreload the list of active UIDs causing silent capture for all apps\nuntil they are restarted.\n\nBug: 77300296\nBug: 63938985\nTest: crash audioserver and check that capture still works.\nChange-Id: Ie1a93c496516c1b7208780949054832a8a073044\n"
    },
    {
      "commit": "b13b35d7e2732227c1593257d4ef1353bf672a1f",
      "tree": "81298c334193e551bbfa240ad585678ece8b7eeb",
      "parents": [
        "5915fa32fb6ec38b90a57162bf72c3ef714f03d7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 30 17:21:14 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 30 17:57:10 2018 -0700"
      },
      "message": "Add retries in restoreTrack_l if the track does not start\n\nConnecting to a BT A2DP device supporting multiple codecs causes\na lot of churn on the audio service side, and it can reject\nstarting playback of a previously created track. As a\nworkaround, allow restoreTrack_l to retry in this case.\n\nBug: 74409267\nTest: switching between 2 HD BT headsets while playing audio\nChange-Id: I5d2ecf4da9ff680af7ae5bb837081b22ecd84f85\n"
    },
    {
      "commit": "1e935c739f40cb8247a1f13c02996aaa8331229b",
      "tree": "077345c5393a2a79d7798cbcdf274aa68ef23b1a",
      "parents": [
        "694a72d3ef5f40aa06fb3b43f7bc52eeedd50fed"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 28 11:46:57 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sat Mar 31 00:24:45 2018 +0000"
      },
      "message": "Fix clearkey return code for setSecurityLevel\n\nWhen passing an invalid security level to\nDrmPlugin::setSecurityLevel, an incorrect error code\nwas being returned, based on the drm@1.1 DrmPlugin.hal\ndocumentation. This CL corrects the error code.\n\nChange-Id: If560be07f3945320d28c42cb2cf18d8f8c718229\nrelated-to-bug:73330999\nbug:77308498\nTest:VtsHalDrmV1_1Target\n"
    },
    {
      "commit": "f2797b2275e808a73641190899994de639f123f2",
      "tree": "bafecc46e9f781cd131a959479f05153fe715b28",
      "parents": [
        "1f03085b596f185d91ccae11b7c0d9f0bc8cd206",
        "069c2719e753732d5af9ba51e5fcc34342b0c9f2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 30 22:54:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 22:54:36 2018 +0000"
      },
      "message": "Merge changes from topic \"metadata-audio-hal\" into pi-dev\n\n* changes:\n  Audio V4: Propagate track attributes to HAL\n  Audio V4: Propagate audio attributes to tracks\n  Audio V4: propagate metadata to the HAL\n"
    },
    {
      "commit": "1f03085b596f185d91ccae11b7c0d9f0bc8cd206",
      "tree": "0ea6c5749a7852aea7a5404d85ad45e15111feac",
      "parents": [
        "82e14cda5c0422761821a1d4a4ace26e12d247ba",
        "7017fef261255c679878efdadc13fffefb156c4a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 30 21:28:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 21:28:20 2018 +0000"
      },
      "message": "Merge \"sf_foundation: include media_plugin_headers\" into pi-dev"
    },
    {
      "commit": "069c2719e753732d5af9ba51e5fcc34342b0c9f2",
      "tree": "e3cfa2f8e2ceecd6e20d91b484865a33c195d7ec",
      "parents": [
        "1f564acca544826daaf7dca44e39cec6016b82fd"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 19:09:14 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 14:09:23 2018 -0700"
      },
      "message": "Audio V4: Propagate track attributes to HAL\n\nThis patch does not propagate the volume.\n\nBug: 38184704\nBug: 69623109\nTest: log metadata in HAL\nChange-Id: I313563cafd9f2b29a13839c3c075beb65a170632\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "1f564acca544826daaf7dca44e39cec6016b82fd",
      "tree": "4adc2f15866c6c7bb47f7eb351aa251a94b1aaa2",
      "parents": [
        "a8975a7e857fd745fc88d226d86b53ae088eafb9"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 13:53:10 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 13:15:05 2018 -0700"
      },
      "message": "Audio V4: Propagate audio attributes to tracks\n\nThis patch has not functional changes.\n\nBug: 38184704\nBug: 69623109\nTest: play music and a audio\nChange-Id: Ide6ec7de4dbfab4af2653475901c3b3daee36e52\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "7017fef261255c679878efdadc13fffefb156c4a",
      "tree": "c324066707291dba1efed37f10b884ccd583b1af",
      "parents": [
        "83028d5920884992b16f34aca167cd6c27734d3c"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Mar 30 12:35:14 2018 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Mar 30 12:35:14 2018 -0700"
      },
      "message": "sf_foundation: include media_plugin_headers\n\nBug: 77328578\nTest: builds\nChange-Id: I3376a32f09761e600d21cec276129a06f8dfc82a\n"
    },
    {
      "commit": "a8975a7e857fd745fc88d226d86b53ae088eafb9",
      "tree": "ff82a6124568e640ef8c142939caaa6482e28158",
      "parents": [
        "83028d5920884992b16f34aca167cd6c27734d3c"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 27 10:16:52 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 10:21:14 2018 -0700"
      },
      "message": "Audio V4: propagate metadata to the HAL\n\nThis is needed for the earring aid use case.\n\nBug: 38184704\nBug: 69623109\nTest: check that the correct metadata are propagate to the HALs.\nChange-Id: I285aac9fbb5431cc32c6fbccebdbff4914e6ab92\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "82e14cda5c0422761821a1d4a4ace26e12d247ba",
      "tree": "e8009e74c4fe37625e9551fc1a10d238a88264b5",
      "parents": [
        "83028d5920884992b16f34aca167cd6c27734d3c"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 10:09:42 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 30 17:11:41 2018 +0000"
      },
      "message": "Invalid audio effect config could crash the parser\n\nDue to a typo in an error message.\n\nBug: 74446193\nTest: boot\nChange-Id: Ief4150ff335e53c7b08bbc9ec9fd20ee61d4e13a\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "83028d5920884992b16f34aca167cd6c27734d3c",
      "tree": "84fcfdd9dbb1186a825a77270a69819c087ade7a",
      "parents": [
        "103f5a6268e820daa6a47c560e10a25514dd2ce1",
        "9ff780e58ff96ff98acaae4166bb218880bf9e73"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 30 16:59:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 16:59:41 2018 +0000"
      },
      "message": "Merge \"Support query microphones information.\" into pi-dev"
    },
    {
      "commit": "103f5a6268e820daa6a47c560e10a25514dd2ce1",
      "tree": "043ecbaecd2004261ac7d9c491167084a5b312dc",
      "parents": [
        "c7e85481ec848d4ae91a96fc6ddcec76a5d8de20"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 22 09:20:05 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 29 16:46:43 2018 -0700"
      },
      "message": "Fix flac encoder and decoder EOS handling\n\nWhen the flac encoder saw EOS on its input, it would output an empty\nbuffer with EOS set, without decoding the current buffer or flushing\npending output buffers. The flac encoder also didn\u0027t output CSD, making\nits output unsuitable for feeding back into the flac decoder.\nWhen the flac decoder saw EOS, it would tag the next output buffer\nwith EOS, but didn\u0027t flush pending output buffers.\n\nBug: 75963284\nTest: CTS\nChange-Id: I53ac2f26fe77e50c899587fc62fc66cf0b85d167\n"
    },
    {
      "commit": "c7e85481ec848d4ae91a96fc6ddcec76a5d8de20",
      "tree": "f367f418c202a936e789e443cb25382b65b41a50",
      "parents": [
        "5915fa32fb6ec38b90a57162bf72c3ef714f03d7",
        "01c5c9f4c7a71bf3ead90b5d7e8e679d930b4f02"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 29 21:53:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 21:53:46 2018 +0000"
      },
      "message": "Merge \"metrics on latency through codecs\" into pi-dev"
    },
    {
      "commit": "01c5c9f4c7a71bf3ead90b5d7e8e679d930b4f02",
      "tree": "6e8b6f270d6292016a4d442a0d1411cee6f80e2b",
      "parents": [
        "0c2e7237654f1e92a97583ecc7838d3a92997624"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 22 14:55:52 2018 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 29 17:56:37 2018 +0000"
      },
      "message": "metrics on latency through codecs\n\ntrack the latency for frames to go through the codec and return to the\ncaller. Provide min/max/avg/N information for the total and for the\nlast couple hundred frames. Histogram data is collected, but not yet\nemitted.\n\nBug: 64022743\nTest: dumpsys media.metrics\nChange-Id: I954f0048997c8f65931c4faa678666eec59aaf86\n(cherry picked from commit 44ecf0521fd4ed27089d88bad050f0430139d3ff)\n"
    },
    {
      "commit": "5915fa32fb6ec38b90a57162bf72c3ef714f03d7",
      "tree": "eca91a7b08cc3305954a17a6751bb5708819c9de",
      "parents": [
        "0c2e7237654f1e92a97583ecc7838d3a92997624"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 10:32:44 2018 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 29 17:37:46 2018 +0000"
      },
      "message": "libaudiohal: Fix dereference before NULL check\n\ndeviceAddressFromHal was checking the wrong pointer before dereferencing.\n\nTest: compile\nBug: 77263416\nChange-Id: Ic47af7085dd88f451ae81034b84444719f68cfc5\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "0c2e7237654f1e92a97583ecc7838d3a92997624",
      "tree": "a046f8e4a2944ffb1d6dcc462eb1b119f60f2fe4",
      "parents": [
        "498e03debdb0431a80c3a2aa9fe629651d66c9e6",
        "81e36fc64bb03ff03b96d215c6bf83b44dcccef3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 29 04:50:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 04:50:59 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Change isTrusted() usages to isTrustedForMediaControl\" into pi-dev"
    },
    {
      "commit": "498e03debdb0431a80c3a2aa9fe629651d66c9e6",
      "tree": "7499759ba34d3287860c661b04a585bc0f59f17c",
      "parents": [
        "6dc6d938c33db5ef1f5d17779040bf3c7dd25d3f",
        "179713cce15b5a18a11294e1ac45031afe2f2eac"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 29 04:07:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 04:07:36 2018 +0000"
      },
      "message": "Merge \"VideoView2: Handles viewType attribute\" into pi-dev"
    },
    {
      "commit": "47afe0a1a6f37e7807a81acb21ef588aec0a3518",
      "tree": "7c599aacfa404d393b669e8b68abfe44ea735721",
      "parents": [
        "6dc6d938c33db5ef1f5d17779040bf3c7dd25d3f"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Mar 27 15:15:30 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Mar 28 17:05:20 2018 -0700"
      },
      "message": "Add OnMediaTimeDiscontinuity notification\n\nTest: MediaPlayerTest\nBug: 63934228\nChange-Id: I7efb58d00dc86b17b9d97775d1a2672e40e841d3\n"
    },
    {
      "commit": "81e36fc64bb03ff03b96d215c6bf83b44dcccef3",
      "tree": "bbced254b72511bcfb4657dc13f3fe29dde54ee3",
      "parents": [
        "2ad6e528d603fe45d170ecb56ed522fe467244fd"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 29 08:33:47 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 29 08:33:47 2018 +0900"
      },
      "message": "MediaSession2: Change isTrusted() usages to isTrustedForMediaControl\n\nBug: 75500592\nTest: Builds successfully\nChange-Id: Ifbc2423e5170e54dc96607e250474132b0c3dcad\n"
    },
    {
      "commit": "6dc6d938c33db5ef1f5d17779040bf3c7dd25d3f",
      "tree": "21ff2946068dd2ba07473f2eaa3b9d24b4196ec4",
      "parents": [
        "782f0017806922791b539656b7752a37c0fca5fc",
        "69f64fef23a33837f2605019f749c28f7dfc02f9"
      ],
      "author": {
        "name": "Krzysztof Kosiński",
        "email": "krzysio@google.com",
        "time": "Wed Mar 28 22:37:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 22:37:19 2018 +0000"
      },
      "message": "Merge \"frameworks/av: Documentation fixes for AImage and AImageReader.\" into pi-dev"
    },
    {
      "commit": "782f0017806922791b539656b7752a37c0fca5fc",
      "tree": "c9e414bafbae19bdf0f15fca6e160b793ad8873a",
      "parents": [
        "47f61f07ca6042829740d8df56474d23fd8c18cf",
        "597e03b41dde032d0747df2134f27fc7fdd6a12a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 28 21:01:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 21:01:31 2018 +0000"
      },
      "message": "Merge \"Camera: Add MONOCHROME capability\" into pi-dev"
    },
    {
      "commit": "69f64fef23a33837f2605019f749c28f7dfc02f9",
      "tree": "99c26a1d65f5774847c9aa61529d701b18927ba8",
      "parents": [
        "e1d2f7dd9b8f153fc581144ab4d4a77c6241918a"
      ],
      "author": {
        "name": "Krzysztof Kosiński",
        "email": "krzysio@google.com",
        "time": "Tue Mar 27 20:49:43 2018 -0700"
      },
      "committer": {
        "name": "Krzysztof Kosiński",
        "email": "krzysio@google.com",
        "time": "Wed Mar 28 13:29:43 2018 -0700"
      },
      "message": "frameworks/av: Documentation fixes for AImage and AImageReader.\n\nBug: 64805809\nTest: Not necessary, documentation-only change.\nChange-Id: I87c9a8cc276b1d01852f2371d8eaf766eb0a834d\n"
    },
    {
      "commit": "47f61f07ca6042829740d8df56474d23fd8c18cf",
      "tree": "8a0dee1744a281bfde99894f2dc01b2660871bbb",
      "parents": [
        "2ad6e528d603fe45d170ecb56ed522fe467244fd",
        "bc1d4b41f4df1b6dd04801ea5a526d23f5321340"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Mar 28 18:16:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 18:16:48 2018 +0000"
      },
      "message": "Merge \"Fix Unicode string handling\" into pi-dev"
    },
    {
      "commit": "9ff780e58ff96ff98acaae4166bb218880bf9e73",
      "tree": "b54bf56b7f6ebc5950064d2908004abfe35d7162",
      "parents": [
        "2ca700737c14edc9141af170ee278853fd99fa87"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 19 18:19:52 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 28 10:17:36 2018 -0700"
      },
      "message": "Support query microphones information.\n\nGet list of all/currently active microphones from hal.\n\nBug: 64038649\nTest: Manual Testing and Cts test\nChange-Id: Id39cae38ba040f9bc91571e713487f87c2eb67b0\n"
    },
    {
      "commit": "53a068a42aefee50df5630c84425378b1cacd642",
      "tree": "3bd9ce207ba066a6eb84cdc3874a1079871485b7",
      "parents": [
        "bebc764c6b3e90024a56c9af4517a1a68713f3e7"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Mar 28 11:33:09 2018 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Mar 28 11:33:09 2018 +0100"
      },
      "message": "Camera: Update camera docs about external device orientation\n\nThe orientation and facing of external devices cannot be used\nfor calculating the jpeg orientation.\n\nBug: 72261912\nTest: Android compiles without errors\nChange-Id: Ide8dcdb709dfb2c43a72241c9bf3f65af8d23d87\n"
    },
    {
      "commit": "2ad6e528d603fe45d170ecb56ed522fe467244fd",
      "tree": "fd429373bc125a9ad601158c3f4727ce6875fe8f",
      "parents": [
        "04ba822e09c6daf7f4a5e8a8af6a7e453d5b2916",
        "561a8f47d27dd6e8fe11531a6cc8e3d5e3a1be4c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 28 09:35:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 09:35:10 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add support for Minimal Mode\" into pi-dev"
    },
    {
      "commit": "04ba822e09c6daf7f4a5e8a8af6a7e453d5b2916",
      "tree": "8e759ea35d6b1298677e81a1f861f4b6829b3875",
      "parents": [
        "7b4ab78876db058155bc075385c4db9e33e42a25",
        "d7049e10ee51dc3d02fe7fb06d3ceecc1850ec4e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 28 06:44:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 06:44:38 2018 +0000"
      },
      "message": "Merge \"MediaControlView2: Add Music UX\" into pi-dev"
    },
    {
      "commit": "7b4ab78876db058155bc075385c4db9e33e42a25",
      "tree": "09b83fca623f607047b780e6a87e581427c616da",
      "parents": [
        "e1d2f7dd9b8f153fc581144ab4d4a77c6241918a"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Mar 25 12:48:10 2018 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Mar 28 04:15:32 2018 +0000"
      },
      "message": "Improve camera availability for active UIDs\n\nTest: cts-tradefed run cts-dev -m CtsCameraTestCases\n\nBug: 72863398\n\nChange-Id: I9abfe39ca6bedbb08aea6f1b6678f8d752b2d298\n"
    },
    {
      "commit": "bc1d4b41f4df1b6dd04801ea5a526d23f5321340",
      "tree": "9c40c27d4c306658b10f622f5a32f111e2623c68",
      "parents": [
        "e1d2f7dd9b8f153fc581144ab4d4a77c6241918a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 15:25:03 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 17:32:27 2018 -0700"
      },
      "message": "Fix Unicode string handling\n\nLinux uses UTF8 but java and MTP both\nuse UTF16. In a few places, this results\nin the top byte of a UTF16 string being\ntruncated on conversion to UTF8.\n\nAlso, the hardcoded UTF to byte serialization\nin MtpStringBuffer is incorrect.\nReplace it with conversions from std, and\nreplace usages of MtpString with MtpStringBuffer.\n\nRemove any remaining usages of libutils\nand replace them with corresponding std\nlibraries.\n\nBug: 70546563\nTest: Mtp works, tests pass\nTest: file/folder names containing emoji can be transferred to/from\nwindows\nChange-Id: Idbcb73f1beac17ce8a90843fa254e759dd1a6369\n"
    },
    {
      "commit": "e1d2f7dd9b8f153fc581144ab4d4a77c6241918a",
      "tree": "83f7a8c7e5a91e967b6a42abe6e6e7cee5c14178",
      "parents": [
        "b1eb717472814adea3daa6b276af68d71a6b892f",
        "2d96092030f7bcd3c5c0de53dc8a97bbe3c2e0c4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 19:26:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 19:26:44 2018 +0000"
      },
      "message": "Merge \"Camera2: Add distortion correction support\" into pi-dev"
    },
    {
      "commit": "b1eb717472814adea3daa6b276af68d71a6b892f",
      "tree": "3ebba2c3d8c3f79bbb1ddf46f2a117fd00391dae",
      "parents": [
        "4a7b86426b7139dae80d1362eddb842e675bc069",
        "96c7eed596077ff84e75b7b1c6f20c3a29219bd1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 16:34:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 16:34:36 2018 +0000"
      },
      "message": "Merge \"audioserver: fix UID checks for multi user\" into pi-dev"
    },
    {
      "commit": "96c7eed596077ff84e75b7b1c6f20c3a29219bd1",
      "tree": "cf06852ef755e4d7dccfa81a7d3d4909d6159c60",
      "parents": [
        "bebc764c6b3e90024a56c9af4517a1a68713f3e7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 17:57:01 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 27 14:49:16 2018 +0000"
      },
      "message": "audioserver: fix UID checks for multi user\n\nFix UID checks in audioserver to take into account multi user UIDs\nwhere the top part above AID_USER_OFFSET contains the user number.\n\nBug: 76439650\nTest: manual audio smoke tests.\nChange-Id: I6dbd616021bcb2639c7b7369000ce911c7e7e030\n"
    },
    {
      "commit": "4a7b86426b7139dae80d1362eddb842e675bc069",
      "tree": "298052254e36dd280ce395643dcc8c4d6a4d5c5c",
      "parents": [
        "d5b878d0cf0c987caf18be697a0e1637fb632d66"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 09:39:56 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 17:15:12 2018 +0900"
      },
      "message": "MediaPlayerBase: Add PlayerEventCallback#onSeekCompleted()\n\nPlayerEventCallback#onSeekCompleted() will be called when the\nMediaPlayerBase#seekTo() is completed. Following callbacks are also\nadded to listen the event.\n  - SessionCallback#onSeekCompleted()\n  - ControllerCallback#onSeekCompleted()\n\nBug: 74370608\nTest: Build\nChange-Id: Ib99a3cdfabe34378d0ea6b86a2ae1c9dd99c13c8\n"
    },
    {
      "commit": "d5b878d0cf0c987caf18be697a0e1637fb632d66",
      "tree": "4854dd6caf04e39912f82b5d17bfc54a24711a8f",
      "parents": [
        "076d7da0936e85fc5243761ffd393d5c2beeee20"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 09:13:57 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 17:14:50 2018 +0900"
      },
      "message": "MediaSession2: Pull out Command/CommandGroup from the MediaSession2\n\nBug: 74648408\nTest: Build\nChange-Id: Ie688f4ccc2e26ed99e9f6d931d0fdcf87574cb54\n"
    },
    {
      "commit": "076d7da0936e85fc5243761ffd393d5c2beeee20",
      "tree": "aac44b7e1a5464ffdf84e98dec4288400c75e638",
      "parents": [
        "f5e5100455d16c991b12dcc89233857a507aa141"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 18:03:19 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 16:48:25 2018 +0900"
      },
      "message": "MediaController2: Add fastForward() / rewind()\n\nFollowing CLs are included\n  - Add MediaController2#fastForward() / rewind()\n  - Add MediaSession2.SessionCallback#onFastForward() / rewind()\n\nBug: 74724709\nTest: Build\nChange-Id: Ic987132d69bd3d3ec707ede82c006fd001fb8de3\n"
    },
    {
      "commit": "561a8f47d27dd6e8fe11531a6cc8e3d5e3a1be4c",
      "tree": "677822d6fe7991d8238fcc1154e86f70f38cfd73",
      "parents": [
        "d7049e10ee51dc3d02fe7fb06d3ceecc1850ec4e"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Thu Mar 22 17:21:42 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Mar 27 16:27:46 2018 +0900"
      },
      "message": "MediaControlView2: Add support for Minimal Mode\n\nThis CL adds UX for Minimal mode.\n  - Minimal mode is triggered when the minimum width required for\n    Embedded mode is smaller than the current View width.\n  - Create an MinimalExtraView to place FullScreen button for\n    Minimal mode.\n\nThis CL also adds gradient background color for TitleBar and\nimplements onCallCompleted() callback to update MediaControlView2\nafter successfully seeking.\n\nBug: 74506210\nTest: VideoViewTest.apk\nChange-Id: I6cd35af473d0f796cd35ae8759171cc1722fc679\n"
    },
    {
      "commit": "d7049e10ee51dc3d02fe7fb06d3ceecc1850ec4e",
      "tree": "7d8e85dc0df20b1ad8a8cf6b13bff4a829f38628",
      "parents": [
        "a5e13d9fceb8bf5cebb70686a2376eafe1e81266"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Thu Mar 15 17:50:33 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Mar 27 16:24:45 2018 +0900"
      },
      "message": "MediaControlView2: Add Music UX\n\n1. Create Music View inside VideoView2\n   - Dynamically change layouts based on size and orientation\n   - Disable touch when Full size mode\n2. Create Music Mode button settings inside MediaControlView2\n\nBug: 73873457\nTest: Manually run VideoViewTest.apk\nChange-Id: Iba47ab40b7eb24147c09efbe997bd8e765719d69\n"
    },
    {
      "commit": "f5e5100455d16c991b12dcc89233857a507aa141",
      "tree": "1ed58d397986a1c4b360e877e2d5882fe232738a",
      "parents": [
        "ed4577868299382aa6584f18ec808b671b2cf0e3",
        "0de7babb75683eba98af2db52101d262372235da"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 07:17:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 07:17:24 2018 +0000"
      },
      "message": "Merge \"Remove unneeded context\" into pi-dev"
    },
    {
      "commit": "ed4577868299382aa6584f18ec808b671b2cf0e3",
      "tree": "a5ae476e13828c9296d0940bb6b668e01f8bf46f",
      "parents": [
        "53676d029d563534daf335f9c0409c4273d0900c",
        "09e621a7b1b417b47618e7d8bd71ebade73b9089"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 05:27:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 05:27:30 2018 +0000"
      },
      "message": "Merge \"audiopolicy: increase binder command timeout for some commmands\" into pi-dev"
    },
    {
      "commit": "0de7babb75683eba98af2db52101d262372235da",
      "tree": "db3a669c169612e4ebffd3fc179295540528dda7",
      "parents": [
        "a5e13d9fceb8bf5cebb70686a2376eafe1e81266"
      ],
      "author": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Thu Mar 22 19:43:30 2018 +0900"
      },
      "committer": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Tue Mar 27 13:22:32 2018 +0900"
      },
      "message": "Remove unneeded context\n\nBug: 76001644\nTest: compile\nChange-Id: Ia3647a78ae7b06aa8fa638f9694450f3cb81e07b\n"
    },
    {
      "commit": "53676d029d563534daf335f9c0409c4273d0900c",
      "tree": "7eccf5ea95c905890b9c3978924af3e91b21a0af",
      "parents": [
        "a5e13d9fceb8bf5cebb70686a2376eafe1e81266",
        "63dac45aa868b9048c028967e9865c90a9ba544d"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 02:49:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 02:49:02 2018 +0000"
      },
      "message": "Merge \"Remove configure() from Mtp\" into pi-dev"
    },
    {
      "commit": "09e621a7b1b417b47618e7d8bd71ebade73b9089",
      "tree": "c3d1618fb24a3aba2d74d9567b4ebe24183d624f",
      "parents": [
        "bebc764c6b3e90024a56c9af4517a1a68713f3e7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 16:50:47 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 16:54:34 2018 -0700"
      },
      "message": "audiopolicy: increase binder command timeout for some commmands\n\nExtend timeout for SET_DEVICE_CONNECTION_STATE and HANDLE_DEVICE_CONFIG_CHANGE\nbinder commmands in IAudioPolicyService.cpp while we investigate why BT A2DP\ndevice connection/disconnection can sometimes take more than 5 seconds.\n\nBug: 74840091\nTest: check that no timout occurs for A2DP headset connections\nChange-Id: I7dcba80059898ac1c73d580594d4956b4608ade0\n"
    },
    {
      "commit": "597e03b41dde032d0747df2134f27fc7fdd6a12a",
      "tree": "c7fcce13f54ef312ece3d3e656dc66d4b3b410ec",
      "parents": [
        "a5e13d9fceb8bf5cebb70686a2376eafe1e81266"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Mar 23 13:56:42 2018 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Mar 26 16:13:21 2018 -0700"
      },
      "message": "Camera: Add MONOCHROME capability\n\nTest: Camera CTS\nBug: 74597035\nBug: 64691172\nChange-Id: I4034be668660f913f5e527cb20e2904694818de2\n"
    },
    {
      "commit": "a5e13d9fceb8bf5cebb70686a2376eafe1e81266",
      "tree": "d97af4278dbc8afd70aeab6aa522630e85d4971f",
      "parents": [
        "3abf7858bf1f45c60a9913e6e03d2e2b005960ac",
        "11fed3f9b192f15f06f997c09f4e48aa43b48f47"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 26 18:05:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 18:05:45 2018 +0000"
      },
      "message": "Merge \"Move codec2 out of frameworks/av\" into pi-dev"
    },
    {
      "commit": "3abf7858bf1f45c60a9913e6e03d2e2b005960ac",
      "tree": "24ddb7780e702020027901bd27a2195fd5d046c0",
      "parents": [
        "bebc764c6b3e90024a56c9af4517a1a68713f3e7",
        "32494f5438db362e96b69e5fda7b2fd34633b562"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Mon Mar 26 17:26:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 17:26:59 2018 +0000"
      },
      "message": "Merge \"Fixes serialization of vendor metrics\" into pi-dev"
    },
    {
      "commit": "bebc764c6b3e90024a56c9af4517a1a68713f3e7",
      "tree": "725d73a0e82d0c7c991c6b0b863e58b3893e663a",
      "parents": [
        "b466a4c7dac3d7ed866274e38ce3a42f649ea9b6",
        "c13a4e4c0dad7438ac53db24a1c8e2705ba05484"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 10:55:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:55:30 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Change return type of CommandGroup#getCommands()\" into pi-dev"
    },
    {
      "commit": "b466a4c7dac3d7ed866274e38ce3a42f649ea9b6",
      "tree": "e3610b7570a4ab53a7fa2773f32f3373ea3daa1b",
      "parents": [
        "b23f7190b84d22ae1e88014ff086112a61d4579f",
        "edcbd37d4aa81d66aed7fcbf86486a59df2b4944"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 10:53:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:53:24 2018 +0000"
      },
      "message": "Merge \"MediaMetadata2: Remove radio constants\" into pi-dev"
    },
    {
      "commit": "b23f7190b84d22ae1e88014ff086112a61d4579f",
      "tree": "f53becb217e31005f48c9d35415cc93731729e17",
      "parents": [
        "abfaf7ae5aaf2bbce65dd094b54a662f34b32e5b",
        "54936be442ba7153667cb582fb9d2035f9f1f63c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 10:52:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:52:22 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Revisit command code\" into pi-dev"
    },
    {
      "commit": "abfaf7ae5aaf2bbce65dd094b54a662f34b32e5b",
      "tree": "c8d4fa9adfce23c260675439f547011bd62377e4",
      "parents": [
        "73d344a69447e475a85901129740af63feadeb1c",
        "483a9330a7fb62bd288cacf3e606e9d826d0a67d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 26 10:36:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 10:36:26 2018 +0000"
      },
      "message": "Merge \"MCV2: Add contentDescriptions to buttons\" into pi-dev"
    },
    {
      "commit": "73d344a69447e475a85901129740af63feadeb1c",
      "tree": "d83218cdebc447fc2d92b5a713d55d804b085cda",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b",
        "d8c3b38bc2403e00f2170aeec32b170287a2818a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 26 09:19:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 09:19:30 2018 +0000"
      },
      "message": "Merge \"SessionPlaylistAgent: Handle setDataSource\" into pi-dev"
    },
    {
      "commit": "c13a4e4c0dad7438ac53db24a1c8e2705ba05484",
      "tree": "d210954b643e40535027f5bffde8c78646093d94",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 16:12:41 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 17:18:01 2018 +0900"
      },
      "message": "MediaSession2: Change return type of CommandGroup#getCommands()\n\nBug: 74648408\nTest: Build\nChange-Id: Ie6a54d95ce5142d477665a8e9f132fc871ec7179\n"
    },
    {
      "commit": "179713cce15b5a18a11294e1ac45031afe2f2eac",
      "tree": "a5e9571a523caf816fa2fc2fd2d09b451ae08998",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 15 14:47:32 2018 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Mar 26 15:47:02 2018 +0900"
      },
      "message": "VideoView2: Handles viewType attribute\n\nBug: 70539851\nTest: run \u0027atest VideoView2Test\u0027\nChange-Id: Ic5b797027c838829e49e5ad4fba1b6e26909c1bc\n"
    },
    {
      "commit": "54936be442ba7153667cb582fb9d2035f9f1f63c",
      "tree": "2477f9ab932298cff0365cb0574c739b1a755ff0",
      "parents": [
        "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 17:05:54 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 15:28:26 2018 +0900"
      },
      "message": "MediaSession2: Revisit command code\n\nBug: 74648408\nTest: Build\nChange-Id: If647ce1e23f831d2950508b5649bcd94b027e9f8\n"
    },
    {
      "commit": "edcbd37d4aa81d66aed7fcbf86486a59df2b4944",
      "tree": "545b213f3c02e1a866d1dbe7af1c03b4ead0ecd6",
      "parents": [
        "aec686dc2994ae6e70211cdde96b08a20a609df7"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 14:16:16 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 14:16:16 2018 +0900"
      },
      "message": "MediaMetadata2: Remove radio constants\n\nRemoveing radio constants until their names are finalized.\n\nBug: 75500592\nTest: Build\nChange-Id: I10ffed456faa220ae24290ca9dcee6a67e751892\n"
    },
    {
      "commit": "a1c392eb2dbd6ad1c31da7f4f2a99bd77e62f06b",
      "tree": "2d0efe2ccf34ea33d0280b7a348e232696d37f5b",
      "parents": [
        "aec686dc2994ae6e70211cdde96b08a20a609df7",
        "fcfde5fa27d3a415bed47fd2e83398dfce88fbe3"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 05:12:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 05:12:18 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Match APIs with MediaPlayerBase\" into pi-dev"
    },
    {
      "commit": "d8c3b38bc2403e00f2170aeec32b170287a2818a",
      "tree": "03e55e833a47279d072e4ee0231ca064d49fc36c",
      "parents": [
        "fab385292538d1125b7e99a5837a135f1650461a"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Tue Mar 20 17:00:15 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Mon Mar 26 13:50:03 2018 +0900"
      },
      "message": "SessionPlaylistAgent: Handle setDataSource\n\nBug: 74090741\nTest: SessionPlaylistAgentTest\nChange-Id: If2d97a1836c9ec1064294180489988eb2fe4e2f0\n"
    },
    {
      "commit": "aec686dc2994ae6e70211cdde96b08a20a609df7",
      "tree": "908955c4cd383612d6e0cd1f6ae36f7d4f874b54",
      "parents": [
        "af5a727e3b276c3a00bba61f0974ff253a3902ba",
        "1fe063606ecf3ef1fd71496bc2bcdd0d8ce8342d"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 02:07:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 02:07:57 2018 +0000"
      },
      "message": "Merge \"MediaController2: Match APIs with MediaPlayerBase\" into pi-dev"
    },
    {
      "commit": "af5a727e3b276c3a00bba61f0974ff253a3902ba",
      "tree": "6d2bd45b39429a8fce1a9856896c627f0175a56a",
      "parents": [
        "fab385292538d1125b7e99a5837a135f1650461a",
        "cf1e1332e0b6880b4776d0bab31506092163423f"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 01:24:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 01:24:21 2018 +0000"
      },
      "message": "Merge \"MediaController2: Remove MediaPlaylistAgent in the ControllerCallback\" into pi-dev"
    },
    {
      "commit": "fab385292538d1125b7e99a5837a135f1650461a",
      "tree": "469d5ac480326fe2e879625888d8e49a45c03124",
      "parents": [
        "3296237d65bf169b2cd113eeedd985885306f796",
        "19e990e480245af25ec03ff3a3f53b820b0732cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 23:34:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 23:34:36 2018 +0000"
      },
      "message": "Merge \"aaudio: improve logging to help debugging\" into pi-dev"
    },
    {
      "commit": "3296237d65bf169b2cd113eeedd985885306f796",
      "tree": "6bc615c7bb10241052e8654277ca04e3998fbd2c",
      "parents": [
        "0446336ff3d2dba09e3ca0a84f45dc0df4fbbef5",
        "334adf0ea8a9a5f6e26168864d4fd73a5c9417eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 23:07:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 23:07:12 2018 +0000"
      },
      "message": "Merge \"mediaplayer2: remove redundant line\" into pi-dev"
    },
    {
      "commit": "0446336ff3d2dba09e3ca0a84f45dc0df4fbbef5",
      "tree": "1fd598ed452295255a0314aba164fb3282baa77a",
      "parents": [
        "ce6c8479c587bf61dfbd7b050752fec54135ba1f",
        "ef49805296eb81cd4ba039fa4d25b9358436992b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 23:03:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 23:03:17 2018 +0000"
      },
      "message": "Merge \"Handle failure of creating MediaPlayer properly\" into pi-dev"
    },
    {
      "commit": "19e990e480245af25ec03ff3a3f53b820b0732cd",
      "tree": "8eb6afdfc9a634c835c6cc0d8b28bd69ffbdd2f2",
      "parents": [
        "ce6c8479c587bf61dfbd7b050752fec54135ba1f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 22 13:59:34 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 23 21:50:37 2018 +0000"
      },
      "message": "aaudio: improve logging to help debugging\n\nUse __func__ more often.\nShow thread entry and exit.\nLog illegal state transitions.\nRemove some unnecessary logs.\n\nBug: 64310586\nTest: use AAudio then look at the logs\nChange-Id: I2e289698efc897640588ba534b5513ac39b15043\n"
    },
    {
      "commit": "ce6c8479c587bf61dfbd7b050752fec54135ba1f",
      "tree": "f12d1f286917302773d13fa4ddd01879980999d3",
      "parents": [
        "97e4f64dc67f39b35ae5a5dccedbce567d6437b2",
        "be645507a3ded6a481375419c8185e17c66dcb37"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 21:14:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 21:14:29 2018 +0000"
      },
      "message": "Merge \"aaudio: pass smart pointer to mixer thread\" into pi-dev"
    },
    {
      "commit": "334adf0ea8a9a5f6e26168864d4fd73a5c9417eb",
      "tree": "87c8fa867b66325b0fc3487ddd699b560cfc5a87",
      "parents": [
        "1c57a0e6e0953c2bb192fca2ec6c6700ccbd0b1d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 23 14:08:23 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 23 14:08:23 2018 -0700"
      },
      "message": "mediaplayer2: remove redundant line\n\nTest: MediaPlayer2 plays\nBug: 76144391\nChange-Id: I32bf5e5f0938516821316fd57fe74e96406bc416\n"
    },
    {
      "commit": "ef49805296eb81cd4ba039fa4d25b9358436992b",
      "tree": "ae6e544abdd0050a3c4958331ffa6d2200e05187",
      "parents": [
        "1c57a0e6e0953c2bb192fca2ec6c6700ccbd0b1d"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Mar 23 13:09:44 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Sat Mar 24 05:53:35 2018 +0900"
      },
      "message": "Handle failure of creating MediaPlayer properly\n\nMediaPlayer::setDataSource() doesn\u0027t fail with a non-existing file. So\nwe should check the result of MediaPlayer::prepare() as well.\n\nNote that MediaPlayer::disconnect() is called instead of deleting\nMediaPlayer directly because the latter causes crash of CameraService.\nMediaPlayer::disconnect() is called even in\nCameraService::releaseSound().\n\nBug: 74376839\nTest: tested an app using CameraService\nChange-Id: Idf68837a55d14ad47dbbedff0256269bd90f9dfd\n"
    },
    {
      "commit": "97e4f64dc67f39b35ae5a5dccedbce567d6437b2",
      "tree": "cf6cea1b39c6f0d6e259f5d8feca08ed178240b6",
      "parents": [
        "00f928c514fd5e2ea4004cb6e0ca665e337b57c4",
        "015ae572e7a065f83a7f1d4d0fde560d48ffe18e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 20:49:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 20:49:20 2018 +0000"
      },
      "message": "Merge \"Move Codec2.0 services to hardware/google/av\" into pi-dev"
    },
    {
      "commit": "00f928c514fd5e2ea4004cb6e0ca665e337b57c4",
      "tree": "3a75499da404c6c18f755295b7a8eb8abb3d0746",
      "parents": [
        "4a6842fc1a5787b58474b8495b51ea624d81868c"
      ],
      "author": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Thu Mar 22 13:20:03 2018 -0700"
      },
      "committer": {
        "name": "Jakub Pawlowski",
        "email": "jpawlowski@google.com",
        "time": "Fri Mar 23 18:49:47 2018 +0000"
      },
      "message": "Hearing Aid: use same rules for ring tones and notifications as headsets\n\nBug: 74812203\nChange-Id: I505750c89efed10fb23fd064edf0e9166f7002bb\n"
    }
  ],
  "next": "be645507a3ded6a481375419c8185e17c66dcb37"
}
