)]}'
{
  "log": [
    {
      "commit": "183a63474f395c875c1521c70c1825eb285acaf1",
      "tree": "886fdb08b114890e9cc2e563a0a8b2d34a0ebdc0",
      "parents": [
        "e62c41ef3ea44ea67ee06cafdbbd1a837e53e9ef",
        "77748b623c893f3c11714580d1a99fae934185ff"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu May 10 04:48:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 10 04:48:35 2018 +0000"
      },
      "message": "Merge \"MediaSessionService: Provide caller information for media key events\" into pi-dev"
    },
    {
      "commit": "77748b623c893f3c11714580d1a99fae934185ff",
      "tree": "81879294940a2af0793825063b91dac6d7894288",
      "parents": [
        "8f5b3f19b4b10a55e283c48ba64261e1f33c9b0c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu May 03 19:43:33 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue May 08 15:53:00 2018 +0900"
      },
      "message": "MediaSessionService: Provide caller information for media key events\n\nCurrent limitation is that we cannot distinguish between key events\nfrom Window#injectInputEvent() and key presses from physical devices.\n\nBug: 79185725\nTest: Manually verified with the test app, and Cts\nChange-Id: I1c3da4a963238512eec8b57fbc2d825c7436b140\n"
    },
    {
      "commit": "7d32a1e0457999bade05a967463c51600db6ebc6",
      "tree": "6b73706b3cd5e51c625a0a0e775a748ac8878607",
      "parents": [
        "efaec53af9722b5c3282f8f41f6e9aa764eb0b07",
        "15c1da270b8eee6c20dbcb2ac3f280006d38986c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 08 00:53:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 08 00:53:02 2018 +0000"
      },
      "message": "Merge \"AudioFocusRequest: fix doc for focus listener dispatch\" into pi-dev"
    },
    {
      "commit": "89f979849a5cf2fa4e16d4f24ab41409f16a9956",
      "tree": "49b1df84666341eda80fb4fd9dd2c4100e3e3b35",
      "parents": [
        "b9147471eccd4728777bf0385be09f564f9126b7"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Wed May 02 19:10:56 2018 -0700"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Fri May 04 19:49:49 2018 -0700"
      },
      "message": "Bluetooth: Fix HFP SCO logic and documentation\n\nAudioService:\n* Call setBtScoActiveDevice and setBluetoothScoOn both in AudioService\u0027s\n  broadcast receiver so that these two methods must be triggerred in\n  the same sequence as ACTIVE_DEVICE_CHANGED and AUDIO_STATE_CHANGED\n  intents are sent and we no longer need to handle race condition by\n  synchronously checking active device in setBluetoothScoOn\n* Default sco audio mode when no headset is active should be virtual\n  voice call, as many HFP devices do not accept SCO audio without an\n  ongoing call\n* Synchronize checkScoAudioState() method with mScoClients\n* Add helper functions connectBluetoothScoHelper and\n  disconnectBluetoothScoHelper to call various SCO setup and tear down\n  methods based on sco audio mode\n* Try raw, virtual call, and voice recognition mode when disconnecting\n  externally started SCO\n* Add new sco state SCO_STATE_DEACTIVATING to allow back to back calling\n  of startBluetoothSco and stopBluetoothSco\n\nAudio Manager:\n* Modified AudioManager logic so that removed devices callback is called\n  before newly added devices\n\nBluetoothHeadset:\n* Modified BluetoothHeadset so that start and stop SCO using virtual\n  voice call no longer need a parameter and will use active device by\n  default\n* Modified documentation around various sco mangement APIs to match\n  their expected behaviors\n\nBug: 76114959\nTest: VoIP calls sanity test cases\nChange-Id: Id50db88f4ff36069b0f392c81dd9d90c24cd2206\n"
    },
    {
      "commit": "15c1da270b8eee6c20dbcb2ac3f280006d38986c",
      "tree": "2a4384701ace9616eccd461f329dc0c93ea6afaf",
      "parents": [
        "8aec7be10eb87507a5dc1d8e264c8b6225b1e185"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 04 18:16:11 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 04 18:16:11 2018 -0700"
      },
      "message": "AudioFocusRequest: fix doc for focus listener dispatch\n\nBug: 78617702\nTest: make offline-sdk-docs\nChange-Id: I6eeacfdc309f76295276e271bb5700ec6f89148a\n"
    },
    {
      "commit": "353a9bc4bfca38462bf3b2ddd25214375d69371c",
      "tree": "a15952745058f7609cea5d65f32ef559bdecc111",
      "parents": [
        "594d6e9e22a64be3b69567433858e0a8624db36c",
        "af71bb69e1939ad656fce0992c0e0f43c823d980"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Fri Apr 27 23:46:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 27 23:46:07 2018 +0000"
      },
      "message": "Merge \"Fix documentation bug that breaks generation\" into pi-dev"
    },
    {
      "commit": "bab75909fac9c65b71012f4c06302503c2f72be1",
      "tree": "b5367d961276fb35d7972e91475ecf8df71c41b4",
      "parents": [
        "2b382c94a4b28ab2ee875a184555872492309db6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Apr 25 12:24:11 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Apr 25 14:39:04 2018 -0700"
      },
      "message": "Don\u0027t treat failed scans as valid media files\n\nInstead, add them to the MediaProvider as non-media files.\nBug: 77656952\nTest: manual, CTS\n\nChange-Id: I3b72b3e28f481b6775349337588225daeacbe552\n"
    },
    {
      "commit": "af71bb69e1939ad656fce0992c0e0f43c823d980",
      "tree": "e638ff467858768518214de1958879dc207458ec",
      "parents": [
        "1e034fd2ed2a0823397184fe3e9129cb7973a674"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 25 11:31:51 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 25 19:22:59 2018 +0000"
      },
      "message": "Fix documentation bug that breaks generation\n\nbug:78536565\nChange-Id: Ic30762459e888c355e5995067377486b8ac34557\n\nTest:make offline-sdk-docs\n"
    },
    {
      "commit": "a98bb36fedb2e577f5ff83b6c1f2ac24ea082e80",
      "tree": "e2fc1840225810a55c0bcde62c17736340d3b9b4",
      "parents": [
        "cef96f69d7b6bc2c435db0905ee37b3a48f1c865",
        "59cf9aa283425a8206e6eb95f7d180db8c3f4bc9"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 23 19:58:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 23 19:58:46 2018 +0000"
      },
      "message": "Merge \"Guard against native crash due to null Surface\" into pi-dev"
    },
    {
      "commit": "6cc4575ced3e61fc003793914d86f2845a674547",
      "tree": "2c3d10a8817b15d45e399a791a6a60998ccc716a",
      "parents": [
        "d101084db7d94e5fb0700b24e3d69e3e4c3b9291",
        "12e7aa58826edbf88b99d67e3bd4c6feaddc45b7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 20 02:43:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 02:43:54 2018 +0000"
      },
      "message": "Merge \"ExifInterface: Prevent infinite loop\" into pi-dev"
    },
    {
      "commit": "12e7aa58826edbf88b99d67e3bd4c6feaddc45b7",
      "tree": "f4a53c701e780052a475adad85a91b5aa7049e52",
      "parents": [
        "7f0afb4958142cc85513c6e6c4812f192b58bffd"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Fri Mar 30 18:07:30 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Fri Apr 20 10:36:00 2018 +0900"
      },
      "message": "ExifInterface: Prevent infinite loop\n\nA corrupted image file may create two problems.\n1. A corrupted IFD pointer may point to an IFD that has already\nbeen read, thus creating an infinite loop and a stack overflow.\n2. A corrupted IFD offset value may have a negative value, thus\nprompting a random reading of the file and creating an infinite\nloop.\nThis CL addresses these issues.\n\nBug: 63800695\nTest: Run cts (ExifInterfaceTest)\nChange-Id: I706a0c3eae6af8301af69407333ea88e5681df3c\n"
    },
    {
      "commit": "59cf9aa283425a8206e6eb95f7d180db8c3f4bc9",
      "tree": "648914e57ce4da532d3ca422803a05fb927139fd",
      "parents": [
        "575fc02edf86b5394c2385fa6c0567a29042d347"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 19 11:02:00 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 19 12:33:36 2018 -0700"
      },
      "message": "Guard against native crash due to null Surface\n\nBug: 77874529\nTest: record video, mini CTS\nChange-Id: I00815fa334a9701e344b263e62549655299013cf\n"
    },
    {
      "commit": "11d203ea0d1edc25444462c37aca3044cbfc7af5",
      "tree": "e34ee1d536388b90a542c0dbc8c8af7b547ee09e",
      "parents": [
        "59abd6aa25915e5d3662f674eacfd83747f39837",
        "7d12714020eced2717468efcb3efaa219acc3722"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 14 00:23:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 14 00:23:37 2018 +0000"
      },
      "message": "Merge \"Use heif embedded thumbnail if available\" into pi-dev"
    },
    {
      "commit": "fd3e190cbf56fb88ece9466154d32d4e8d7d2bab",
      "tree": "412d5ed6a32ac6f80244c741244dab46a8323c2c",
      "parents": [
        "5d1db91ecb4b61b8c297f821b9d53d3bb303204b",
        "4a649366d57405417b78d438b4daf201eeb12387"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 20:54:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 20:54:46 2018 +0000"
      },
      "message": "Merge \"Use system property to get the package name for media update\" into pi-dev"
    },
    {
      "commit": "ccaba49ab541b19acc0a0ec9bd8159109e66154b",
      "tree": "83e14a14e0fe60caf51a6781abd97bd8183fcfe7",
      "parents": [
        "c11cb1b15180107527093d0b40cec335441954d7",
        "a26a76230f0dc5b70f8b26e997240af2e9c17a2b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 17:05:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 17:05:12 2018 +0000"
      },
      "message": "Merge \"Change log level when microphone enumeration APIs native call fail.\" into pi-dev"
    },
    {
      "commit": "773791a94c7598f4154bf0f6b4f35f529ac49a90",
      "tree": "cb7dd414693f05e6b860b6dfe104420f6a197cee",
      "parents": [
        "4738c7d0ab7e2158135556f4765b637ba4c893ee",
        "93cf8b260e5b1d5fdad364f24fbdcd3864874fb6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 09:59:28 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 09:59:28 2018 +0000"
      },
      "message": "Merge \"Fix missing video caps for HEIC type encoders\" into pi-dev"
    },
    {
      "commit": "ed01dfba3e062ee6433e7c8359732caeedcfd311",
      "tree": "0d1c422db15455d75845ac5c5ebe079cc10356a4",
      "parents": [
        "08d79be6bdd098a1adef6c3f707a4b8169f3ada2",
        "3715ec579af92cebc63670755d8c17850c88faff"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 06:51:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 06:51:52 2018 +0000"
      },
      "message": "Merge \"Fix possible NPE in MediaSessionManager\" into pi-dev"
    },
    {
      "commit": "437b252c96ac0ab494724ccd594da53bc8d24a50",
      "tree": "693ab78e831213067213f698a0968fabcdb567e4",
      "parents": [
        "ce9fe591ac250e4625117a8ebf7c647f69600e6a",
        "76e124bcd3ee2e5ba98dcbdb99965a4c133fe7e4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 01:46:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 12 01:46:52 2018 +0000"
      },
      "message": "Merge \"PlayerBase: fix deadlock\" into pi-dev"
    },
    {
      "commit": "76e124bcd3ee2e5ba98dcbdb99965a4c133fe7e4",
      "tree": "3652aec979992b85381635ad82088b9cd8eede92",
      "parents": [
        "42c686861c76f49cc5dd97335b9308224dc2cab5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 10 14:06:07 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 11 17:22:59 2018 -0700"
      },
      "message": "PlayerBase: fix deadlock\n\nSource of deadlock between PlayerBase.mLock and\n  PlaybackActivityMonitor.mPlayerLock:\n\nandroid.media.MediaPlayer.release()\n\u003e android.media.PlayerBase.baseRelease()\n  \u003e synchronized (mLock)\n    \u003e com.android.server.audio.PlaybackActivityMonitor.releasePlayer()\n       \u003e synchronized(mPlayerLock)\nand:\n\ncom.android.server.audio.PlaybackActivityMonitor.unmutePlayersForCall()\n\u003e synchronized (mPlayerLock)\n  \u003e android.media.PlayerProxy.setVolume()\n    \u003e android.media.PlayerBase$IPlayerWrapper.setVolume()\n      \u003e android.media.PlayerBase.baseSetVolume()\n        \u003e synchronized (mLock)\n          playerSetVolume()\n\nSince system_server can have its own players, the calls to\n AudioService from PlayerBase can be synchronous, hence the\n deadlock.\nThe fix consists in never holding the lock in PlayerBase\n while calling into AudioService.\nRefactor the playstate update into a method used for\n start / stop / pause.\n\nBug: 72294559\nTest: see bug\n\nChange-Id: I6451aa3bf19a0365472ba007b116a9e6151ab33e\n"
    },
    {
      "commit": "7d12714020eced2717468efcb3efaa219acc3722",
      "tree": "96eb1c605b24e6604a53151109f48d02db990fcf",
      "parents": [
        "d1366f604aa624c48c4f5636ea89f311e05da772"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 09 14:43:01 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 12 00:08:57 2018 +0000"
      },
      "message": "Use heif embedded thumbnail if available\n\nUse the heif embedded thumbnail as long as it\u0027s not\ntoo small to avoid decoding the full image and downscale.\n\nbug: 74395267\nTest: CTS MediaMetadataRetriever test; manual test of thumbnail\nextraction by browsing new folders containing heif files in\nDownloads app.\nChange-Id: I5b2be0521452376153a773cb7671fefe7f9bc439\n"
    },
    {
      "commit": "a26a76230f0dc5b70f8b26e997240af2e9c17a2b",
      "tree": "59324da8e87befa901af9315d1f9140a9b685de8",
      "parents": [
        "cd7a174c591e315450992e47a6f5c4bb25960315"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 11 15:38:46 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 11 16:18:51 2018 -0700"
      },
      "message": "Change log level when microphone enumeration APIs native call fail.\n\nFor microphone enumeration APIs, it could fail due to hal v2,\nwhich is WAI. We shouldn\u0027t log as error. Using warning instead.\n\nBug: 64038649\nTest: build\nChange-Id: I1a64b8537e27e712a09f122d4763e0e5a345b08f\n"
    },
    {
      "commit": "fb052cc3c0caf5f2eb63a25d30aef9b3157f847d",
      "tree": "7e5e48a9b67b0a81780b3ace97aa6f49c82c7c2b",
      "parents": [
        "c2375d9b3d517cf5b54d7a49fb7f9bb945c0cbd1",
        "5d78d8749311163275753f79b94ee42c16f8d931"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 18:01:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:01:24 2018 +0000"
      },
      "message": "Merge \"BufferingParams: add annotation @TestApi\" into pi-dev"
    },
    {
      "commit": "93cf8b260e5b1d5fdad364f24fbdcd3864874fb6",
      "tree": "370a6fa5e7c8231db5be23b5e34067283c21a092",
      "parents": [
        "d1366f604aa624c48c4f5636ea89f311e05da772"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 10 12:20:45 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 11 10:29:12 2018 -0700"
      },
      "message": "Fix missing video caps for HEIC type encoders\n\nBug: 63633199\nBug: 74343403\nChange-Id: If1faff529aadce62566fe45a8b758e574e215154\n"
    },
    {
      "commit": "0b5dd8e56040e2cd3dc95abfebe7fdb71cc7f0bc",
      "tree": "191755ea4453f224b4762fbcf61bd5ff9b31f26d",
      "parents": [
        "02fea072ab9390eb263128eea540964a646e72a0",
        "d0be5b212f17166d728761b854c912ec71305cf0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 15:46:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 15:46:49 2018 +0000"
      },
      "message": "Merge \"Fix mic enumeration CTS fail on marlin.\" into pi-dev"
    },
    {
      "commit": "3715ec579af92cebc63670755d8c17850c88faff",
      "tree": "dfb6a48412547cecd7ac961a1716ef29ae7d88e1",
      "parents": [
        "5f91d5ee942ed2af54349a2a78f635237a84dbb4"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Apr 11 15:59:35 2018 +0900"
      },
      "committer": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Wed Apr 11 17:16:15 2018 +0900"
      },
      "message": "Fix possible NPE in MediaSessionManager\n\nBug: 77885219\nTest: build\nChange-Id: Id20dd73f00521beeccd4704f722547ba32bb5722\n"
    },
    {
      "commit": "d0be5b212f17166d728761b854c912ec71305cf0",
      "tree": "9b65f363a37b7482b833baea8d5d6c76b780c07e",
      "parents": [
        "806be6b602f9a7fbcb1c918602bfe24107c47c0b"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 10 14:10:04 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 10 14:44:41 2018 -0700"
      },
      "message": "Fix mic enumeration CTS fail on marlin.\n\nThe mic enumeration APIs only support on audio hal v4. Marlin failed due\nto on audio hal v2. Make the APIs return mic with unknown\ncharacteristics if the native call fail.\n\nBug: 77732156\nBug: 77732289\nTest: run cts on marlin and walleye\nChange-Id: I64b3e6a249ad76b754e841d630e8cf178dde9a86\n"
    },
    {
      "commit": "5d78d8749311163275753f79b94ee42c16f8d931",
      "tree": "f2bfb36ceca2c0853812207f68ed2206c444cd4b",
      "parents": [
        "b35baa53f70efa42b985f83a0cf0fb205de01900"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Apr 10 10:45:44 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Apr 10 10:45:44 2018 -0700"
      },
      "message": "BufferingParams: add annotation @TestApi\n\nTest: CTS test passed\nBug: 77723586\nChange-Id: I3811f16380f6465f884d6dd84ce969a0a5886107\n"
    },
    {
      "commit": "a57290a49d76d156e7234049702acdfa7dce3cc0",
      "tree": "eb845a4b8c6a42e620d53f227bf8b2db34d6c42d",
      "parents": [
        "9dbe4d8e6b976209155306775ed5a0a744af1343",
        "9bc88b378cf2f1953a08b2df11c58223e8eb2f23"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 23:26:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 23:26:35 2018 +0000"
      },
      "message": "Merge \"soundpool: fix muted channel\" into pi-dev"
    },
    {
      "commit": "6d38a1b2603da502de1f90c26ccfe46dfed21d84",
      "tree": "004b94c2d9e664982ad6227cddc64134cb018928",
      "parents": [
        "cfa439f02fd43ebeb8c85f0e7b0787e9fc1f4aeb"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 09 10:54:36 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 09 21:24:25 2018 +0000"
      },
      "message": "AudioAttributes: handle unknown usage like media\n\nIn the native audio policy management, the default stream type\n  for volume is STREAM_MUSIC, i.e. any player by default is\n  considered a \"media\" player. Do the same for audio attributes\n  with regards to suppressible behaviors.\n\nBug: 74052135\nTest: ZenModeHelperTest + see bug\nChange-Id: I8f65044807fd3e745f21e031a0aa01a5e6f74cd2\n"
    },
    {
      "commit": "9bc88b378cf2f1953a08b2df11c58223e8eb2f23",
      "tree": "0b5b0158229e953fa35be79705d102698118ccfe",
      "parents": [
        "b175d0db8f2cf175a6eaa9cd29a7105ab3371729"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 13:35:15 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 09 13:35:15 2018 -0700"
      },
      "message": "soundpool: fix muted channel\n\nMuted state was not taken into account when starting\nsound channel playback.\n\nBug: 77618929\nTest: manual check that camera shutter sound is muted in DnD.\nChange-Id: Ia123154d76b388ab6da19f3fe3b369e2ab65b020\n"
    },
    {
      "commit": "8ec4be4be98e1a791fecf3dee50c06198521a46f",
      "tree": "a0e383cc52538080dd63a749032b3c704604672a",
      "parents": [
        "301a925597812a28c93b6c6c20f6876e286fa107"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 06 15:37:56 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 06 19:23:53 2018 -0700"
      },
      "message": "PlaybackParams: Add @TestApi annotation to access stretch mode\n\nRequired due to CTS access restrictions in P.\n\nTest: CTS ParamsTest\nBug: 77723867\nChange-Id: I68b5fbc2096d5d1cb01c60fe1028def5ecfe2959\n"
    },
    {
      "commit": "d043c3aba0f42b2e52bcd5e114574c5c177c0f78",
      "tree": "75405c7aa335b27277da3c3646eabf41db4511a8",
      "parents": [
        "d1bc30a405665cc7bb51bcc88b9504501beb358a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 05 15:46:06 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 06 16:59:21 2018 -0700"
      },
      "message": "AudioFocusRequest: getOnAudioFocusChangeListener in test API\n\nBug: 77651038\nTest: CTS AudioFocusTest\nChange-Id: I071057f1ed0ed6c56c16182a48191d763d408ae1\n"
    },
    {
      "commit": "436ee824226cd2262faff104b55b6d1d50dff7c0",
      "tree": "f13aa252b61ed0a27ef3ecdb567f8761914bc2d6",
      "parents": [
        "086633e03db1c0f12eec6ae15bdf39b3fc05e0d2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 06 13:04:14 2018 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 06 13:30:28 2018 -0700"
      },
      "message": "AudioPresentation: Replace @VisibleForTesting with @TestApi\n\nThis is to fix CTS tests failures.\n\nBug: 77715867\nTest: make\nChange-Id: I99a5ff8fab208a0e1f2e889cb7ad256e6ba08437\n"
    },
    {
      "commit": "320c1ade6772fd597775a5485917f37440ed04c5",
      "tree": "e1891d80e2aca5440209e02cddfb13ec1fdc74f3",
      "parents": [
        "919f606df9763f920850fc0fdc9beed526ea195b",
        "3ce023b02eec04874b4c659f0973b6a05182970b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 06 18:19:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 18:19:48 2018 +0000"
      },
      "message": "Merge \"Add TestApi annotation to AudioEffect, AudioFormat, VolumeShaper\" into pi-dev"
    },
    {
      "commit": "893c5e0c70179fc8c000508afe9f89a6af8e220d",
      "tree": "b1b07cd55e1aa20eae14114dc2c34e69faad6a2e",
      "parents": [
        "1b5a0deb8125ccb5a64c7b941f34a161b0c76400",
        "750aec6f3bf8353fb619773862f3181b5766d42e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 06 17:06:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 17:06:44 2018 +0000"
      },
      "message": "Merge \"media: Populate Image scaling mode in reader and writer\" into pi-dev"
    },
    {
      "commit": "750aec6f3bf8353fb619773862f3181b5766d42e",
      "tree": "49256665ecbb2816b287b340c3cd92306b5b9317",
      "parents": [
        "8a585a6f1fc33f2bc4c011abebbf909e3c24fe25"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri Apr 06 12:55:00 2018 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri Apr 06 13:01:45 2018 +0100"
      },
      "message": "media: Populate Image scaling mode in reader and writer\n\n\"ImageReader\" and \"ImageWriter\" must pass information about the\nspecific buffer scaling mode.\n\nBug: 76022384\nTest: Manual using application,\nCamera CTS\n\nChange-Id: I116f00cbf3b1487d8e44661e8fd15e2aa16e6e0d\n"
    },
    {
      "commit": "0c42369361f08c316d864de085b573edeb95d8b5",
      "tree": "b50e03ba13e5e8d6907fcc4fc2c6f120b7c0300a",
      "parents": [
        "9c2c8f5df69819fab99d94e4ec5f0657682507ff",
        "2cc0a2eca995b5f5d1ebe193a34f880439fb62ec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 06 05:13:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 05:13:33 2018 +0000"
      },
      "message": "Merge \"Extract exif data from mp4 extractor if available\" into pi-dev"
    },
    {
      "commit": "3ce023b02eec04874b4c659f0973b6a05182970b",
      "tree": "808a6b1cc233a292c381e4f3bdedde3ab323d9f0",
      "parents": [
        "9cb6759072eefacb114782ebdfc3b779693535de"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 05 17:38:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 05 20:28:33 2018 -0700"
      },
      "message": "Add TestApi annotation to AudioEffect, AudioFormat, VolumeShaper\n\nTest: AudioEffectTest\nTest: AudioRecordTest\nTest: AudioTrackTest\nTest: AudioTrackSurroundTest\nTest: AudioTrack_ListenerTest\nTest: BassBoostTest\nTest: EnvReverbTest\nTest: EqualizerTest\nTest: LoudnessEnhancerTest\nTest: PresetReverbTest\nTest: VirtualizerTest\nTest: VisualizerTest\nTest: VolumeShaperTest\nBug: 77652246\nBug: 77651563\nBug: 77652497\nChange-Id: I3a95cb6834fac0cd0cb88ea3ed0ba028aeddb3f2\n"
    },
    {
      "commit": "4a649366d57405417b78d438b4daf201eeb12387",
      "tree": "7c79120080d66dfebc190fa8c36721db60b7e08e",
      "parents": [
        "cb331c32db391e1f3518ef873af23ee295a39cad"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 09 17:24:08 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Apr 05 16:45:05 2018 -0700"
      },
      "message": "Use system property to get the package name for media update\n\nAlso, disabled updatable apk usage on Media2 APIs since\nthey are hidden and they shouldn\u0027t be used in P.\n\nTest: build and boot on aosp and non-aosp build\nBug: 67908547\nChange-Id: Ic93cc0f07604020ec47be25725b05af8a9794572\n"
    },
    {
      "commit": "d8a6f0cd9493a154c8727ceb295395c0a8370866",
      "tree": "f844652c733b4e0104ad5b8cca2b41158b06295d",
      "parents": [
        "c5395907689c36d6a99f423e0663ae180db911bf",
        "a7de44935634f398da1d90dde8cd7d6a822e418c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 20:41:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 20:41:24 2018 +0000"
      },
      "message": "Merge \"Add @TestApi for field needed for test\" into pi-dev"
    },
    {
      "commit": "2cc0a2eca995b5f5d1ebe193a34f880439fb62ec",
      "tree": "6cac7cc7b693ff26b53939dc0b495ce6661eae17",
      "parents": [
        "8303baf4d0b1e41f6a4eba41a6c49f4e04157ff7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 04 13:35:59 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 05 11:25:45 2018 -0700"
      },
      "message": "Extract exif data from mp4 extractor if available\n\nQuery the extractor for the exif data offset and length,\nif it\u0027s available, read the exif block from the file.\nOtherwise, set image dimension and rotation only.\n\nbug: 76149934\n\nChange-Id: I85f24b526fb356a9227941e20807fc96369c8536\n"
    },
    {
      "commit": "a7de44935634f398da1d90dde8cd7d6a822e418c",
      "tree": "2bb57197bc4f1a7da9e5831f778777f3e46ec1d6",
      "parents": [
        "2d2f598d691039403e8875ff7f58cc988d5ef8b2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 02 09:04:37 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 05 16:43:06 2018 +0000"
      },
      "message": "Add @TestApi for field needed for test\n\nAlso update truncated comment.\nBug: 13249737\nBug: 77485791\nTest: CTS\n\nChange-Id: I1351a6ef28dfd7e881f32830c436315ffdbfffaa\n"
    },
    {
      "commit": "b9c661f79ff0ee4e1dfff06f21f572c3a5fb9dc8",
      "tree": "ac72c7f8f715dfca68ff5045cf209a75d91ba844",
      "parents": [
        "a4d6570b2fd990d61b68e7bd20f1b917d4715710",
        "2fab5bfb7b1ee6b3b5328d6fd5e0013a2c70d85f"
      ],
      "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": "8a585a6f1fc33f2bc4c011abebbf909e3c24fe25",
      "tree": "90bc9a8cd50de2855351a84fccaa4e17e280c644",
      "parents": [
        "73961397e5ba774dcb7cdd60772647dce2d528fb",
        "532a992e9b53bb7588101e7f349c295b20ee3ebd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 10:03:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 10:03:22 2018 +0000"
      },
      "message": "Merge \"MediaController: Fix annotation of Callback#onPlaybackStateChanged()\" into pi-dev"
    },
    {
      "commit": "628f59aa45c9536e2fb9d753fed1a2d8beb67d18",
      "tree": "a2b7cde2590efd95345cd023aaf909a10b48665c",
      "parents": [
        "c274fb2d22da480cd48100bbfd13e19a5c0d78aa",
        "03cba65b91c44ea2b08f198d165724b60b0518e8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 05:25:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 05:25:15 2018 +0000"
      },
      "message": "Merge \"MediaSessionManager: Apply API council review\" into pi-dev"
    },
    {
      "commit": "532a992e9b53bb7588101e7f349c295b20ee3ebd",
      "tree": "f87390cb2fbe94c6231469e86aca5a693e7b716a",
      "parents": [
        "f0e74ae8ac115f415ec1e3f104ea688c55a4dddb"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Apr 05 11:13:38 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Apr 05 11:13:38 2018 +0900"
      },
      "message": "MediaController: Fix annotation of Callback#onPlaybackStateChanged()\n\nPlaybackState can be null and it\u0027s annotated as @Nullable in other\nplaces. So we\u0027d better to fix the annotation.\n\nBug: 77532207\nTest: Run CtsMediaTestCases\nChange-Id: I8974c6c99d9d188934f74775977631fb7b37e5d2\n"
    },
    {
      "commit": "9a30362790d9975d0bb29c30af8a9bfb2226f172",
      "tree": "632e2cb3eeb2c47f884c2620cbc2624666f1eff3",
      "parents": [
        "654598b542174440837f16d8b899f776c2e25478"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 30 18:27:50 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 04 14:16:40 2018 -0700"
      },
      "message": "MediaCodecInfo: define AACObjectXHE profile level\n\nBug: 71430241\nTest: CTS DecoderTest and DecoderTestAacDrc\nChange-Id: I03ede882db420eeaa871991d1d5cba8955b2cdba\n"
    },
    {
      "commit": "2fab5bfb7b1ee6b3b5328d6fd5e0013a2c70d85f",
      "tree": "9268b7afc49d7f2c8d8d323466fb70550aa4328f",
      "parents": [
        "1c967fe075ba6adaf127ae741ff177434c5bd866"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Mar 27 16:57:38 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Apr 04 09:54:14 2018 -0700"
      },
      "message": "Add OnMediaTimeDiscontinuity notification\n\nTest: MediaPlayerTest\nBug: 63934228\nChange-Id: I1914f32867416c5c052b6ae3bfe23e597fb314e4\n"
    },
    {
      "commit": "03cba65b91c44ea2b08f198d165724b60b0518e8",
      "tree": "60c3840534218b711d03f1de5cd151eb457988af",
      "parents": [
        "f0e74ae8ac115f415ec1e3f104ea688c55a4dddb"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Apr 04 16:25:35 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Apr 04 19:13:59 2018 +0900"
      },
      "message": "MediaSessionManager: Apply API council review\n\nHere\u0027s the comments from the review\n  - RemoteUserInfo needs to override .hashCode() as well\n  - Verify package name and the UID in the RemoteUserInfo\n  - Docs: Document how to get RemoteUserInfo\n  - Docs: Document that RemoteUserInfo is only valid on thread that the\n          command is being called from\n    * It\u0027s already documented in the\n      MediaSession#getCurrentControllerInfo() and\n      MediaBrowserService#getCurrentBrowserInfo().\n\nBug: 77507337\nTest: Run following CtsMediaTestCases\n  - MediaBrowserTest\n  - MediaBrowserServiceTest\n  - MediaControllerTest\nChange-Id: If37560a7bc59d1ef5517ec1f3e0a8b74c2bb2980\n"
    },
    {
      "commit": "1b322dd0423ad29dd41962ff87ea70d548f52a71",
      "tree": "789fafcb9b61ec01167fcf6b56f3c79d4130a233",
      "parents": [
        "3e57c9f52573fdf15414fdda50bd988776e8ea3d"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Apr 03 16:22:06 2018 -0700"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Apr 03 16:22:06 2018 -0700"
      },
      "message": "Adds comment how to deal with newly added audio usage\n\nBug: 77547740\nTest: adb shell dumpsys media.audio_policy\nChange-Id: If0d9f1d0ac2205900532cb9f761746ce4d164d32\n"
    },
    {
      "commit": "1c967fe075ba6adaf127ae741ff177434c5bd866",
      "tree": "d724bdd8abe3b4a1501470216f18fc1f02b7096f",
      "parents": [
        "3f6b7714a7afd826c2e66d1baf747469145f8d77",
        "1e034fd2ed2a0823397184fe3e9129cb7973a674"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 02 20:00:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 20:00:46 2018 +0000"
      },
      "message": "Merge \"Updates MediaDrm developer docs\" into pi-dev"
    },
    {
      "commit": "1e034fd2ed2a0823397184fe3e9129cb7973a674",
      "tree": "49332602a9314d5324136ad27203f641c67d5f02",
      "parents": [
        "cbbab8339c686453f0401bff1661844d3134d636"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 30 17:38:56 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 30 17:38:56 2018 -0700"
      },
      "message": "Updates MediaDrm developer docs\n\nDistinguish between secure stops and secure stop ids\n\nbug:76449152\nChange-Id: I4ff26b645bd4a156738ba358de598e2ccb1b0584\n"
    },
    {
      "commit": "d41d56e3482206383df25a8247e8166cc201ac61",
      "tree": "5dd1eb49187f7796137632fc1253d89a3a67e839",
      "parents": [
        "a26795a8841bd19b6570de340e7ca088ce9b8816",
        "1584bb80ced45c8002cfd1e77492da1e339cbbce"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 31 00:05:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 31 00:05:32 2018 +0000"
      },
      "message": "Merge \"Dynamics Processing Effect\" into pi-dev"
    },
    {
      "commit": "1b7162ad3de05b0e5f6c8666830ea8fb8bef2e3c",
      "tree": "774de7e11a7aad9c6a5b5b083671d0dc09ffca95",
      "parents": [
        "36f2d8a4e1247b4556d10691eb8e40b26122f92c",
        "a0cbc6f6b0497da3ff6048afc14a1539a86361ab"
      ],
      "author": {
        "name": "Rahul Frias",
        "email": "rfrias@google.com",
        "time": "Fri Mar 30 20:33:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 20:33:24 2018 +0000"
      },
      "message": "Merge \"Clarified app behavior on REQUEST_TYPE_NONE\" into pi-dev"
    },
    {
      "commit": "1584bb80ced45c8002cfd1e77492da1e339cbbce",
      "tree": "4543524be7ac6b676cf9bdef362e609dc320e281",
      "parents": [
        "b8d853732c71bda480956f7e7001bda5c0bb14af"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Feb 28 13:51:22 2018 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Fri Mar 30 11:50:22 2018 -0700"
      },
      "message": "Dynamics Processing Effect\n\nFixing parameter integration with Dynamics Processing engine.\n\nBug: 64161702\nBug: 38266419\n\nTest: manual testing and CTS tests\nChange-Id: I0ff66d6fd60f2854aa93a45044cfa91c7ef344b3\n"
    },
    {
      "commit": "cfe67aa57500d5a58fb91632bdf2f58ac594b3d0",
      "tree": "8e95f90b6f690217c3853cf0303b52505cbc5c53",
      "parents": [
        "912853be102cc854f77d25f0946f4e6435b100b9",
        "9697c6c5611e7520d5a11c3a938d778c3035071e"
      ],
      "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 \"Make back mic available when getting all available mic.\" into pi-dev"
    },
    {
      "commit": "a0cbc6f6b0497da3ff6048afc14a1539a86361ab",
      "tree": "79049a01b1c9ace67b5de3461633fa77cb0ced31",
      "parents": [
        "a6855037412d12145bf110caf846c514a1860132"
      ],
      "author": {
        "name": "Rahul Frias",
        "email": "rfrias@google.com",
        "time": "Mon Mar 12 11:04:56 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 30 02:11:09 2018 +0000"
      },
      "message": "Clarified app behavior on REQUEST_TYPE_NONE\n\nIndicated that when this request type is returned in response\nto a getKeyRequest no license exchange is required and\nthe key is available for use.\n\nBug: 73750909\nTest: javadocs change only. Compiled Sailfish.\nChange-Id: I4f124158160bf7e74f0228788c7b24bcefbb5dd0\n"
    },
    {
      "commit": "b814355d170388312288cf78875363db29897e1b",
      "tree": "57d827645c1088d8dc5f8e8c3dae8eb7bb3d9074",
      "parents": [
        "3c4e33a4fe58a03a2cbb3183fe2bce161a5b9d3e",
        "2492c00ae347de412a7772343156f051c08f8979"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Mar 30 01:25:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 01:25:59 2018 +0000"
      },
      "message": "Merge \"Unhide MediaPlayer#MEDIA_INFO_STARTED_AS_NEXT\" into pi-dev"
    },
    {
      "commit": "2492c00ae347de412a7772343156f051c08f8979",
      "tree": "97789681fc88bab4e2318cae79377c182c3d378f",
      "parents": [
        "631f55ba540651744d6e9856fac70d77b50dfefa"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Mar 29 15:00:43 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Mar 29 15:14:26 2018 -0700"
      },
      "message": "Unhide MediaPlayer#MEDIA_INFO_STARTED_AS_NEXT\n\nExpose a listener constant which is used with OnInfoListener() in\norder to notify that the player instance started the playback since\nprevious player just completed the playback.\n\nBug: 76121592\nTest: make offline-sdk-docs\nChange-Id: I69ade8e9f6916bc653ea2831e3721dc7d171dc0e\n"
    },
    {
      "commit": "5fa492f9b69e4fe6d27b86a5dad4170db75959bc",
      "tree": "375c7dcb8709df91cc2e0f179a0097285edd3536",
      "parents": [
        "7a3593d0b6ad131bca2795c90961b4fd5bec0963",
        "cbbab8339c686453f0401bff1661844d3134d636"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 29 05:18:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 05:18:32 2018 +0000"
      },
      "message": "Merge \"Rename MediaDrm security levels\" into pi-dev"
    },
    {
      "commit": "7a3593d0b6ad131bca2795c90961b4fd5bec0963",
      "tree": "e0ebdfb93623ff12a6386428e096ccb4ce5b5df1",
      "parents": [
        "4f52f3fd522093d555a6962bccea6f052ac51a06",
        "c2f557a49ede485bcfcce34aa8ceab5b5915700e"
      ],
      "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 changes from topic \"MediaSessionManager_isTrustedForMediaControl\" into pi-dev\n\n* changes:\n  MediaBrowserService: Create getCurrentBrowserInfo()\n  MediaSession: Create getCurentControllerInfo()\n  MediaSessionManager: Add isTrustedForMediaControl()\n"
    },
    {
      "commit": "c2f557a49ede485bcfcce34aa8ceab5b5915700e",
      "tree": "2ddbe9dba03a1b21f4b6da6a4816de05decbbafa",
      "parents": [
        "b1e344eaab519aa9bc9db20c891831dfe2bf92ab"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 26 17:12:21 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 29 11:28:28 2018 +0900"
      },
      "message": "MediaBrowserService: Create getCurrentBrowserInfo()\n\nBug: 65739365\nTest: Ran MediaBrowserServiceTest\nChange-Id: I629d74bcf9a08a2271463fecbacc2d998dce4387\n"
    },
    {
      "commit": "b1e344eaab519aa9bc9db20c891831dfe2bf92ab",
      "tree": "fdccbeb0f138a77a9889471e138838da9ab1a139",
      "parents": [
        "b0e32b0856ac398ccac475cd0fac0fce88cc4ce2"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 22 17:22:14 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 29 11:25:03 2018 +0900"
      },
      "message": "MediaSession: Create getCurentControllerInfo()\n\nBug: 65739365\nTest: Ran MediaControllerTest\nChange-Id: I05c9179546d826e8fabb4fd4e4e03837dd4685ff\n"
    },
    {
      "commit": "b0e32b0856ac398ccac475cd0fac0fce88cc4ce2",
      "tree": "5361a16cc55e8fba917d295585dd50ca38834e94",
      "parents": [
        "1c73370df4c6b8399a264923e1f370b64019fca3"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Mar 23 00:13:51 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Mar 29 11:19:20 2018 +0900"
      },
      "message": "MediaSessionManager: Add isTrustedForMediaControl()\n\nThe API checks whether an app is granted MEDIA_CONTENT_CONTROL\npermisison or has enabled notification listener. Such apps can be\nconsidered as the system component (e.g. Bluetooth) or equivalent (e.g.\nAuto/Wearable companion app), so sessions shouldn\u0027t refuse connection\nrequest from it.\n\nIt needs to be public because API for checking whether an app has an\nenabled notification listener can only be called by the system service.\n(see: NotificationManager.getEnabledNotificationListeners(int))\nWith the MediaSessionManager#isTrustedForMediaControl(),\nMediaSessionService will query the information indirectly for a session\nto tell an app is trusted.\n\nNote that this isn\u0027t workaround for bypassing permission check of\nNotificationManager API calls. It\u0027s indirectly available through\nthe android.provider.Settings.Secure with the *deprecated* key\nENABLD_NOTIFICATION_LISTENERS and it doesn\u0027t need any permission.\nMediaSessionManager#isTrustedForMediaControl() is needed to avoid using\ndeprecated key for querying notification listeners.\n\nBug: 75500592\nTest: Build\nChange-Id: I8d1183aa946aa0d2ec35dbd7f31933d1c2717f99\n"
    },
    {
      "commit": "cbbab8339c686453f0401bff1661844d3134d636",
      "tree": "e508c61a56982519e02afb33e89cf2d72bd9c430",
      "parents": [
        "86ed912f5afb6384e38d87c517ce6b25aa4466f4"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 28 17:16:50 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 28 17:16:50 2018 -0700"
      },
      "message": "Rename MediaDrm security levels\n\nAPI review requested that MediaDrm security\nlevels be prefixed with a common string.\n\nbug:76449152\nbug:74831432\nChange-Id: I2b4d5ed2c881f736659f29aa76c556a79d1335f4\n"
    },
    {
      "commit": "26ef7344c934311c2d3424799fa6421c889f00c0",
      "tree": "ce2ed70464a763fd9aaf861b5ae1519c337cafc4",
      "parents": [
        "66cb4e287181855a339baa7f893ddf99825b519a",
        "aabf284cbbf4ee9f3110f8d229810aafc39c2555"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 28 20:30:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 20:30:02 2018 +0000"
      },
      "message": "Merge \"MediaPlayer subtitle data / time discontinuity interfaces\" into pi-dev"
    },
    {
      "commit": "aabf284cbbf4ee9f3110f8d229810aafc39c2555",
      "tree": "281a3ceba3dbfe78494267a2e48353c6f9f72c9e",
      "parents": [
        "15db763bca1c2959be59c6619c0602bccb472443"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 27 15:29:08 2018 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 28 11:35:14 2018 -0700"
      },
      "message": "MediaPlayer subtitle data / time discontinuity interfaces\n\nExpose in SDK the interfaces necessary to implement unbundled\n  subtitle support, which requires:\n  - exposing an interface to receive the encoded subtitle data\n  - exposing an interface while allows a renderer to synchronize\n    its rendering clock with the media time of the player.\nDeprecate duplicated timed text constant, all timed text / sub\n  mime types are defined in MediaFormat.\n\nBug: 76121592\nTest: make offline-sdk-docs\nChange-Id: I42cc1d69069babb69a2feeba3f54da89889f4602\n"
    },
    {
      "commit": "59f888d94c5fbb3c492cd6daab8629c6ee1a3743",
      "tree": "fcb6011bdd5b5e8bd954765abb65a74497eec467",
      "parents": [
        "39531e28ed88c4e5cbf9a5c1db748bbf08882736",
        "d9f3005fc3d3e6544e5e94052d9229413b0181d1"
      ],
      "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 handling.\" into pi-dev"
    },
    {
      "commit": "9697c6c5611e7520d5a11c3a938d778c3035071e",
      "tree": "d6e87568bd365cacd87e350219110f09887efa12",
      "parents": [
        "32ca41d02880686148cfa730897c575104cf045c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Mar 20 17:13:04 2018 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 28 08:23:19 2018 -0700"
      },
      "message": "Make back mic available when getting all available mic.\n\nRemove the checkType of filtering back mic. Make getAddress() public in\nAudioDeviceInfo to distinguish different built in mic.\n\nBug: 64038649\nTest: run cts\nChange-Id: I943b7f74f44db7068644f5ffa1b5410cbf567f11\n"
    },
    {
      "commit": "d9f3005fc3d3e6544e5e94052d9229413b0181d1",
      "tree": "d3b7d63283f2c0aa8b103714a639d933dadd3013",
      "parents": [
        "56e9c026b33da783088c10a3d1162076a8e25cb6"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 15:29:09 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 17:18:35 2018 -0700"
      },
      "message": "Fix Unicode handling.\n\nChange type usages based on changes\nin libmtp.\n\nBug: 70546563\nTest: Mtp works, tests pass\nChange-Id: Id38c30e3a1311328ec2293792ae0866da2cf90be\n"
    },
    {
      "commit": "a7d2de48684315a88c9e8a5631b51173e747b057",
      "tree": "4684c4ce8ec5901b4701d7f4ff1b76aedd33f57a",
      "parents": [
        "d9afdee26f01d1e0277749959094d9f396799a69"
      ],
      "author": {
        "name": "Clément Julliard",
        "email": "clju@google.com",
        "time": "Tue Mar 27 13:48:27 2018 -0700"
      },
      "committer": {
        "name": "Clément Julliard",
        "email": "clju@google.com",
        "time": "Tue Mar 27 13:48:27 2018 -0700"
      },
      "message": "Relax constraints on valid ImageReader usage flags\n\nThe only allowed format - usage pairs are currently:\n* PRIVATE with USAGE_GPU_SAMPLED_IMAGE\n* PRIVATE with USAGE_VIDEO_ENCODE\n* PRIVATE with USAGE_GPU_SAMPLED_IMAGE | USAGE_VIDEO_ENCODE\n* Non-PRIVATE with USAGE_CPU_READ_RARELY\n* Non-PRIVATE with USAGE_CPU_READ_OFTEN\n\nThis commit enable other cases, ie. PRIVATE with\nGRALLOC_USAGE_HW_COMPOSER.\n\nBug: 77148005\nTest: Manually tested it.\nChange-Id: I414c25bc62d52a3573461df6cec4d88512509ec4\n"
    },
    {
      "commit": "bb54f62d1a7afc2879a576267f753ad898c09a3d",
      "tree": "257f6f294a03ba6b36c8757e3eda13284009ef9c",
      "parents": [
        "766343cbbcc0ef53a87920a829bde4a69b8929b4",
        "2ecbc7acdb6f87e34228e67e36333f64eb021f82"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 17:54:21 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 17:54:21 2018 +0000"
      },
      "message": "Merge \"Guard against null server\" into pi-dev"
    },
    {
      "commit": "51e33d1948e68c5ccbceb283a4a9fc857d44b62b",
      "tree": "3ab765df5449761942d3ed6b7bf5e03d9c6fc892",
      "parents": [
        "4f3d29de545a1edb63be2e7037adcf64650648b8",
        "598265bd862b61ede23e50ce00749eb66ade7c87"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 08:39:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 08:39:45 2018 +0000"
      },
      "message": "Merge changes from topics \"session2_seekcompleted\", \"session2_pullout\", \"session2_fastforward\" into pi-dev\n\n* changes:\n  MediaPlayerBase: Add PlayerEventCallback#onSeekCompleted()\n  MediaSession2: Pull out Command/CommandGroup from the MediaSession2\n  MediaController2: Add fastForward() / rewind()\n"
    },
    {
      "commit": "30d648ab7ae785677d6d36df4ebb1a60096f1959",
      "tree": "2c6f5c5f5620575e5c159b92140522f694d9d8c8",
      "parents": [
        "3caac870ef4c4df2248099ac30161ab0bd102e21",
        "473201868c0cb6d6fef4550c7aeb9c1ba7432d98"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 07:57:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 07:57:14 2018 +0000"
      },
      "message": "Merge \"ExifInterface: Remove casting int[] to long[]\" into pi-dev"
    },
    {
      "commit": "598265bd862b61ede23e50ce00749eb66ade7c87",
      "tree": "421fcd07f9b83c0bc69805fef906b046030cbd6a",
      "parents": [
        "3b15124eccc61fd8adbcae0ee8d2179fd453a9ab"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 09:35:59 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 16:51:51 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: Ib1ecd75f7e217ed9a927db3ab443073a1aef2074\n"
    },
    {
      "commit": "3b15124eccc61fd8adbcae0ee8d2179fd453a9ab",
      "tree": "44b70359ba33d2cad8a228e05633ecd14cfb5e8e",
      "parents": [
        "ab715ec20be7d5b16e176d1b1bff1c477c4841bf"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 08:32:25 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 16:48:26 2018 +0900"
      },
      "message": "MediaSession2: Pull out Command/CommandGroup from the MediaSession2\n\nBug: 74648408\nTest: Build\nChange-Id: I0a3d1ab6320c7b276e7b1defdccf9fa371ae02c0\n"
    },
    {
      "commit": "ab715ec20be7d5b16e176d1b1bff1c477c4841bf",
      "tree": "26774c771b1adf65bf151c4864174c561bdadd1e",
      "parents": [
        "cdc9d9008bc2ccbf35d345557b64c3f0d2f184eb"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 19 23:09:00 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 27 16:48:26 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: I0dd2b6c21931df937006ae26011ea9538720afee\n"
    },
    {
      "commit": "72e895fd9fdff36e891d1fee4d05226502566b9d",
      "tree": "b278f539c0891d0e6ba7c44bf37e372384528fdc",
      "parents": [
        "c2bdecb8c88c614a7c883ef93b142e2dd7c73c10",
        "6823d81d8c2ea8c7b9c3a4c72f9005174050c22f"
      ],
      "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": "473201868c0cb6d6fef4550c7aeb9c1ba7432d98",
      "tree": "99cf287c1c8696798ccd01635e6ff243cc9021c5",
      "parents": [
        "855617501c4a8be95586962ce2612f493754e1f3"
      ],
      "author": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Mar 20 10:23:46 2018 +0900"
      },
      "committer": {
        "name": "Jin Seok Park",
        "email": "jinpark@google.com",
        "time": "Tue Mar 27 14:58:52 2018 +0900"
      },
      "message": "ExifInterface: Remove casting int[] to long[]\n\nThis CL removes code that directly casts int[] to long[] and instead\niterates through the individual values and casts to int if necessary.\nThey are cast to integer because StripOffsets/StripByteCounts\nAttributes can return either int[] or long[] values, but the maximum\nlength of a file that ExifInterface can handle is the maximum value\nof integer, so it should be safe to cast the long values to integer\nvalues.\n\nBug: 73091048\nTest: Cts\nChange-Id: I9f3b98204e0829a8a8a30927bb8c0a698c457654\n"
    },
    {
      "commit": "02a005703a95d83537c05c34595861a53a72c5bf",
      "tree": "901f7579a73fc43df558347bd6bf6304dac923b7",
      "parents": [
        "df101a459692cda5c73d149c582d68dc42ece852",
        "63a69fd4f8d21c19fefc88437cc27a96775a87ca"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 02:49:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 02:49:30 2018 +0000"
      },
      "message": "Merge \"Revert \"Add additional context to MtpDatabase\"\" into pi-dev"
    },
    {
      "commit": "df101a459692cda5c73d149c582d68dc42ece852",
      "tree": "6eb5a6b4f443047a80d8db2d957611d7e98670f1",
      "parents": [
        "31e1171fd8a476cb4d580233b95dfd3c31b624e8",
        "6d319b8aaa961862afac48010d96d03afb11fa1c"
      ],
      "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 \"Write descriptors for Mtp in UsbService\" into pi-dev"
    },
    {
      "commit": "6823d81d8c2ea8c7b9c3a4c72f9005174050c22f",
      "tree": "0a4cf0df7a0f55ea900d82f1f365199f6b1b937b",
      "parents": [
        "855617501c4a8be95586962ce2612f493754e1f3"
      ],
      "author": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Thu Mar 22 23:20:39 2018 +0900"
      },
      "committer": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Tue Mar 27 11:33:17 2018 +0900"
      },
      "message": "Remove unneeded context\n\nBug: 76001644\nTest: compile\nChange-Id: Ib6d581650ff22d90da2bdc9ad295eab595aefb25\n"
    },
    {
      "commit": "855617501c4a8be95586962ce2612f493754e1f3",
      "tree": "628acb94756c203cf61ca13b42726aee996967cd",
      "parents": [
        "fee443bfabea4f1f04dc12f9478b6a244bd55de6",
        "8001abf7386a29ad0d4b0f98e1700ae43b0b1496"
      ],
      "author": {
        "name": "Christofer Åkersten",
        "email": "akersten@google.com",
        "time": "Tue Mar 27 01:46:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 01:46:42 2018 +0000"
      },
      "message": "Merge \"Hide Media*2 APIs\" into pi-dev"
    },
    {
      "commit": "2ecbc7acdb6f87e34228e67e36333f64eb021f82",
      "tree": "b0ceb5b09377a0f002853cc08329ae717c3f6071",
      "parents": [
        "642c0be3f35354df689e40010f106526411d2f15"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Mar 26 14:59:39 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 00:01:33 2018 +0000"
      },
      "message": "Guard against null server\n\nIf MtpService stops before MtpServer\nshuts down, the server will be null,\nso don\u0027t attempt to use it in that\ncase.\n\nBug: 76433619\nTest: no errors\nChange-Id: I6744cb78908e6a0663a4b60107d5c9c18dda62bb\n"
    },
    {
      "commit": "0aeb37438096068c2209c3ac4d2397f7bb6a7bc2",
      "tree": "f82d65517bc651d2f56cd33caed9fc9f2e9df1bd",
      "parents": [
        "8eaee9eea5f970b2a45011151a6f6b74603ab3a5",
        "890e4e4546322ede7a08f609c26e8bfdb9dc72e0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 26 16:06:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 16:06:22 2018 +0000"
      },
      "message": "Merge \"AudioSystem: Add case for FOR_VIBRATE_RINGING in forceUseUsageToString\" into pi-dev"
    },
    {
      "commit": "d21b33d8cadeb3d618e31031939f9d26ab1f6c17",
      "tree": "de21c0b69c40fccebb57d92783613433a483be2d",
      "parents": [
        "449e358feaf23dcb7a2b16cab85aef18b16711c8",
        "a84c9eb1c440506f8693c8d985f5dea899707593"
      ],
      "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": "449e358feaf23dcb7a2b16cab85aef18b16711c8",
      "tree": "9d1984d3d52f06abbda47aa05f4eadc63dc86218",
      "parents": [
        "ec0ab63ccbad7c9d85ed0b198f1fd5512fb781f2",
        "c889c307b05b9f4a66d09617ced4a20a00161e7e"
      ],
      "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": "ec0ab63ccbad7c9d85ed0b198f1fd5512fb781f2",
      "tree": "415e4ecba341449d72ffeddd267c152425c0c525",
      "parents": [
        "ab1abe1fe71b9a70bff1fc9f8dd24762e5a4e691",
        "e32fa0db4a8ca2d0c981c20ac3fe2d9d073377c1"
      ],
      "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": "2a3505105113976ad02cffc8f9db86e85426e93a",
      "tree": "3985888c97145bd1124dbc77686e1a214836b621",
      "parents": [
        "c92f8b405323f5ebc4b61e02a1ef7dcc77e2769c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 16:19:07 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 08:10:22 2018 +0000"
      },
      "message": "MediaSession2: Add CommandGroup#add/removeCommand(int)\n\nBug: 74648408\nTest: Build\nChange-Id: Icfcde5946e75ad74c2123be8064eb365366f5960\n"
    },
    {
      "commit": "c889c307b05b9f4a66d09617ced4a20a00161e7e",
      "tree": "31a882e158cb812f73bf5afa14228d1985caa0f8",
      "parents": [
        "a5b29ffffe82e504726c1bbd288023c5d081e0c3"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 14:13:37 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 17:07:12 2018 +0900"
      },
      "message": "MediaMetadata2: Remove radio constants\n\nRemoveing radio constants until their names are finalized.\n\nBug: 75500592\nTest: Build\nChange-Id: I6f7a219c19dd24579a76c2064e9781ca53618c69\n"
    },
    {
      "commit": "a84c9eb1c440506f8693c8d985f5dea899707593",
      "tree": "a0bcddf57bd6233f4a916d9dd29f3fc2243c82af",
      "parents": [
        "c92f8b405323f5ebc4b61e02a1ef7dcc77e2769c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 16:11:40 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 15:30:44 2018 +0900"
      },
      "message": "MediaSession2: Change return type of CommandGroup#getCommands()\n\nBug: 74648408\nTest: Build\nChange-Id: I443dd0a1f244b285754561a4c485ef2e8530d42d\n"
    },
    {
      "commit": "e32fa0db4a8ca2d0c981c20ac3fe2d9d073377c1",
      "tree": "df650c21c8e252179bd933d64e222a67638d9ccb",
      "parents": [
        "c92f8b405323f5ebc4b61e02a1ef7dcc77e2769c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 20 17:06:01 2018 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 15:28:40 2018 +0900"
      },
      "message": "MediaSession2: Revisit command code\n\nBug: 74648408\nTest: Build\nChange-Id: I0c66d6dec7f5a25bd4c36aa6e2c140951ea38855\n"
    },
    {
      "commit": "c92f8b405323f5ebc4b61e02a1ef7dcc77e2769c",
      "tree": "476e3dc5e7c08f2394a90796118e62315675e9ad",
      "parents": [
        "a6ba53d69d999dacb6c6052d4097b312eedc8e8c",
        "888ccd17aa963f5e7438adcfbb09c292c2400a06"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 05:12:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 05:12:17 2018 +0000"
      },
      "message": "Merge \"MediaSession2: Match APIs with MediaPlayerBase\" into pi-dev"
    },
    {
      "commit": "a6ba53d69d999dacb6c6052d4097b312eedc8e8c",
      "tree": "823aba2188fc7b549aa69a78c47a170f4c5f9fe6",
      "parents": [
        "a5b29ffffe82e504726c1bbd288023c5d081e0c3",
        "6fac589d48339fa4ba46dfc3233470cd8645a5a6"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 04:57:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 04:57:48 2018 +0000"
      },
      "message": "Merge \"MediaPlayerBase: Add PlayerEventCallback#onPlaybackSpeedChanged()\" into pi-dev"
    },
    {
      "commit": "c4f56a6be5b6eda77088810894d684b4139678f1",
      "tree": "e687262c15d07688082566939a17ddb57ec80b2f",
      "parents": [
        "46c07f3bd3a6cce4c5669bcd99efd82e7672f13b",
        "abf686e02c352378892b0e94229145c5528b1bd3"
      ],
      "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": "46c07f3bd3a6cce4c5669bcd99efd82e7672f13b",
      "tree": "3044029914ed04972f42a68163c0910701904991",
      "parents": [
        "a7fac1c1154a166d3ea12dd245fffb8237a8c0ce",
        "5df18392633f339cea55fe3c01472ce839984b98"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Mar 26 01:31:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 01:31:54 2018 +0000"
      },
      "message": "Merge \"MediaPlaylistAgent: Add getMediaItem()\" into pi-dev"
    },
    {
      "commit": "a7fac1c1154a166d3ea12dd245fffb8237a8c0ce",
      "tree": "7796c5f7b17e24ab884d0a216d3a7bd6bac594da",
      "parents": [
        "4b46d3e1e4ac5e9c329141b853aec0d8b34c1e0b",
        "e98b8990bc7067f7be935e111b2bf0b4a4bfb92c"
      ],
      "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": "890e4e4546322ede7a08f609c26e8bfdb9dc72e0",
      "tree": "b7e454e649f698fc9da376c85849105b0d0fd288",
      "parents": [
        "3991138f3a58cdee447c74c3bf9bcf7923900747"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Sat Mar 24 00:21:16 2018 -0700"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Sat Mar 24 00:21:16 2018 -0700"
      },
      "message": "AudioSystem: Add case for FOR_VIBRATE_RINGING in forceUseUsageToString\n\nBug: 72647074\nTest: make, dumpsys audio\nChange-Id: Ieaf2bf0e0ef6624409d1e91d9a1d232726460fc7\n"
    },
    {
      "commit": "3d9601d60e4080703307b9b875853cb3a5842c58",
      "tree": "8f4a123055f02ae75df6f08d5ea2fc0ad3301905",
      "parents": [
        "a5a982732853b5d19cefd7141c0b47bc2a93bc0c",
        "b8748c65b8ccc645eeec95e8922058238e72cc9d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 24 02:14:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 24 02:14:38 2018 +0000"
      },
      "message": "Merge \"PlayerBase: log when startWatching fails\" into pi-dev"
    },
    {
      "commit": "01aaabdea5037dafc7282bec13cbb64f0c1498f9",
      "tree": "d842d5320bebe3ad879e5a71ec6f77ba123cd885",
      "parents": [
        "ba22b7f4fdd0c8d7c8550a3aa03c3f360ceaf503",
        "3edfdab205ea061493d25284cd720665c285759b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 23 22:17:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 22:17:35 2018 +0000"
      },
      "message": "Merge \"insert exif info for HEIF files\" into pi-dev"
    }
  ],
  "next": "b8748c65b8ccc645eeec95e8922058238e72cc9d"
}
