)]}'
{
  "log": [
    {
      "commit": "d5701f0ecbd2f9461dbdf52862c489a27eaa8613",
      "tree": "335dbdadfb1ad67bc5c71376a1fa387b371b0129",
      "parents": [
        "a2c50b1da8dddd1ff865225ae3f5eb133773378b",
        "ce795489eee594899f364c2ace7f64c6de716b25"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 10 00:38:42 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 10 00:38:42 2019 +0000"
      },
      "message": "Merge \"AudioTrack: getLatency continues UnsupportedAppUsage\" into qt-dev"
    },
    {
      "commit": "ce795489eee594899f364c2ace7f64c6de716b25",
      "tree": "f3916972fa092f1e8195e9f098d2d062b7af3084",
      "parents": [
        "e320cdb4415d9e1fd42d8e0b2dd96be1088ae684"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 09 13:23:50 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 09 13:30:33 2019 -0700"
      },
      "message": "AudioTrack: getLatency continues UnsupportedAppUsage\n\nExoplayer needs this API for devices with timestamp issues.\n\nTest: compiles\nBug: 112561552\nBug: 130237544\nChange-Id: I136d80011765ac83be8f5258c4ba139ee1f1ef75\n"
    },
    {
      "commit": "79dd28f87435a74968c6d8dab8a12b606bdf33a3",
      "tree": "151a6cd704818ee08afe0bd7dac3b1f03279105c",
      "parents": [
        "85e35eb118fb2a762cf76fc1e64fcada7800520c",
        "5b9febae78f84a87a3995a3e438e48f2faa874f5"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Mon Apr 08 18:15:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 08 18:15:39 2019 +0000"
      },
      "message": "Merge changes I4e32a588,I202c5653 into qt-dev\n\n* changes:\n  Make MediaHTTPConnection thread safe.\n  Revert \"MediaHTTPConnection: move connection states into an inner class\"\n"
    },
    {
      "commit": "5b9febae78f84a87a3995a3e438e48f2faa874f5",
      "tree": "26ff1a18474df5b03550bc2cd1b49973765190d2",
      "parents": [
        "241377b10a732fa11eaa2be32e4106519a062a8f"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Apr 02 20:14:20 2019 +0100"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Mon Apr 08 18:14:42 2019 +0000"
      },
      "message": "Make MediaHTTPConnection thread safe.\n\nMediaHTTPConnection\u0027s public methods are called from multiple Binder\nthreads. Since both HttpURLConnection and access to the various\nconnection related fields is not thread safe, this CL guards most\nmethods by a single lock. This means that the methods can now block\nwhen called, although this should be rare:\n\n - there are two processes that call these methods. One process\n   only calls getSize(), and the other process calls methods\n   from a single thread (ie. at not overlapping clock times).\n - should lock contention unexpectedly increase in future, then\n   that would be bad (because Binder thread pool threads would\n   be blocked/unavailable), but it would not be easy to detect.\n   It would be easy to detect if we could stop getSize() being\n   called at overlapping clock times, since we could then use\n   ReentrantLock.tryLock() to assert that the lock is never contended\n   outside of disconnect().\n\nBecause it\u0027s a requirement for disconnect() to quickly stop another\nthread that is blocked in readAt(), disconnect() is the only method\nthat doesn\u0027t acquire the lock immediately; the mConnection field\nis marked volatile so that disconnect() has a high chance of reading\nthat field and calling disconnect() on it without waiting for\nanother thread (there\u0027s a small risk that another thread might\nacquire the lock and start a new connection while disconnect()\nis waiting for the lock; in that case, after acquiring the lock,\ndisconnect() will also disconnect that new connection; this is\nsubject to potential change in future.\n\nInitially, a ReentrantLock object was considered but for now this\nCL instead uses the synchronized lock on \"this\" because:\n\n - it minimizes churn on the lines of code in this file because\n   synchronized (this) { } can be expressed by introduction of\n   the word \"synchronized\" on the method header, whereas\n   mLock.lock(); try { ... } finally { mLock.unlock(); } would\n   indent all the lines in-between and thus pollute git annotate.\n - some methods were already synchronized.\n - ReentrantLock.tryLock() is not used for now; most of the time,\n   lock acquisition should be uncontended but the two cases of\n   lock contention mentioned above exist, which makes it difficult\n   to distinguish surprising from unsurprising lock contention.\n   While this is the case, it seems better to keep the code\n   simple and to just unconditionally block.\n\nBug: 114337214\nFixes: 114337214\nFixes: 119900000\nFixes: 129444137\nFixes: 128758794\nFixes: 63002045\n\nTest: Checked manually that bug 114337214 no longer reproduces on\n      Android API level 27 (Oreo MR1) after cherrypicking this CL.\nTest: Ran the following on internal master with this CL:\n      make cts \u0026\u0026 cts-tradefed run cts -m CtsMediaTestCases \\\n      -t android.media.cts.NativeDecoderTest#testAMediaDataSourceClose \\\n      --abi arm64-v8a\nTest: Ran the following both on AOSP (158 tests) and internal master (178):\n      atest CtsMediaTestCases:android.media.cts.{MediaPlayer{,2},Routing}Test\n\n      All these tests pass except that on AOSP only, the following test\n      fails both before and after my CL (appears unrelated):\n      android.media.cts.RoutingTest#test_MediaPlayer_RoutingChangedCallback\n\n(cherry picked from commit 8d9fccee62e2c73abe952f2a1de575c28bcd9410)\n\nChange-Id: I4e32a58891c3ce60ddfa72d36060486d37906f8d\nMerged-In: I4e32a58891c3ce60ddfa72d36060486d37906f8d\n"
    },
    {
      "commit": "241377b10a732fa11eaa2be32e4106519a062a8f",
      "tree": "6d57c1f7509daa3a8180fa3c4807372708aa4b17",
      "parents": [
        "dd07ae579c291a2b6ffe09bd576fd908eb9e5ddd"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Mar 22 11:15:44 2019 +0000"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Mon Apr 08 18:14:04 2019 +0000"
      },
      "message": "Revert \"MediaHTTPConnection: move connection states into an inner class\"\n\nThis reverts commit 621e7968adf0253d5e22406f02ccc8bcc0eda5ec.\n\nMany of the fields that were moved are annotated @UnsupportedAppUsage,\nso the CL would have had undesirable app compat impact. Further,\nbecause investigation has revealed that lock contention *is* possible,\nwe need to always acquire the lock anyway so there is no longer a\nbenefit in keeping all of the mutable state in a single field that\ncan be atomically set to null.\n\nBug: 114337214\nTest: Treehugger\n\n(cherry picked from commit dc9f4b4d5d28fc68b1b5e4e8500bf67d4b11621d)\n\nChange-Id: I202c5653cb086d99228491e161a159bad640105a\nMerged-In: I202c5653cb086d99228491e161a159bad640105a\n"
    },
    {
      "commit": "960c4f06ae93a6102cee0c3312791c8455a8d597",
      "tree": "3ebe972c68a0fc71de527f332714e5627840249c",
      "parents": [
        "f83192de7927cdd0f5a7f39da5a382f41f059963",
        "337a86626e1b400a113ce5facf62fa4f6c7e7c43"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 05 16:00:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 16:00:00 2019 +0000"
      },
      "message": "Merge \"fix AudioAttributes matching rule in AudioProductStrategy\" into qt-dev"
    },
    {
      "commit": "f83192de7927cdd0f5a7f39da5a382f41f059963",
      "tree": "e03d70c24e4ff317dc1dab7e0e27951a0f5caf2a",
      "parents": [
        "3b74731f4e67c60bd727f5a050a47fef3ec46d68",
        "c9d353dcf8d7d6c2216353bc65977a5349796c09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 05 16:00:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 16:00:00 2019 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Mute haptic channels by default.\"\"\" into qt-dev"
    },
    {
      "commit": "b06132ad90debc044dc51327f961b190d533ac67",
      "tree": "1ca09b91c84c21794c5a14ee8daa0101b262525e",
      "parents": [
        "dd07ae579c291a2b6ffe09bd576fd908eb9e5ddd"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Apr 01 14:48:10 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Apr 04 12:54:59 2019 -0700"
      },
      "message": "media: fix documentation for MediaFormat.KEY_PREPEND_HEADERS_TO_SYNC_FRAMES\n\nBug: 32746212\nTest: builds\nChange-Id: I38ecfa879091bc4016fbae04eab77ed6fd9eb1c1\n"
    },
    {
      "commit": "c9d353dcf8d7d6c2216353bc65977a5349796c09",
      "tree": "6e7a1707ae46693969420c740e86d0ec1b1628c2",
      "parents": [
        "dd07ae579c291a2b6ffe09bd576fd908eb9e5ddd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 03 16:16:14 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 04 18:07:25 2019 +0000"
      },
      "message": "Revert \"Revert \"Mute haptic channels by default.\"\"\n\nThis reverts commit e6243996efb90d6e9dd0b855aa47c8795cf4ba9f.\n\nBug: 129721367\nTest: change volume in Play Music\n(cherry picked from commit ab3a3f8c02503f8a53a14f6b3f413e0cf739c957)\n\nChange-Id: Id6e63e87265717130dde0e1b46e28edbb0b53edb\n"
    },
    {
      "commit": "337a86626e1b400a113ce5facf62fa4f6c7e7c43",
      "tree": "3475eb5f70937ca2419179b7d9e292315a353b50",
      "parents": [
        "dd07ae579c291a2b6ffe09bd576fd908eb9e5ddd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 03 16:41:39 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 04 18:07:02 2019 +0000"
      },
      "message": "fix AudioAttributes matching rule in AudioProductStrategy\n\nThe matching rule on audio attributes flags must be that ALL flags\nset in the reference attributes are present in the compared attributes\nand not just some flags.\n\nBug: 129721367\nTest: change volume in Play Music\nChange-Id: I462fd73fb9b78b094411c6f3b52004349f49bcf3\n(cherry picked from commit 9b0bb840cd082822487e6cfe8c4470ce928d7531)\n"
    },
    {
      "commit": "23961b92bb366d636b4d928d717a48aac61347ad",
      "tree": "88f8e294e647e94e16606d7485b735dca8dda47f",
      "parents": [
        "055d58ae207605f58e6a6aa6584279a38315d7ba",
        "506541c1d1ce9ef2e4c8f18e86c37b305c377237"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 21:18:17 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 21:18:17 2019 +0000"
      },
      "message": "Merge \"Add AudioAttribute flag missing in FLAG_ALL\""
    },
    {
      "commit": "c6d746014056dd60c106d6ffdcc069f2aa0b751d",
      "tree": "186dd147c111237303db75e9d207d64ce6f5538c",
      "parents": [
        "da0e27e7e4aede3caf0e0f569843d48f8d08203b",
        "fcf1e54d29e84bbe335550c9420faf28ce017c3f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 03 19:58:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 19:58:59 2019 +0000"
      },
      "message": "Merge \"PlayerBase: conditional muting on OP_PLAY_AUDIO changes\""
    },
    {
      "commit": "506541c1d1ce9ef2e4c8f18e86c37b305c377237",
      "tree": "4a5e221558d557d529e10e2ec4e3bcb6ebc37725",
      "parents": [
        "f71f015ffa965ce570399c33980a47abe0a353bb"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 03 12:35:46 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Apr 03 12:45:01 2019 -0700"
      },
      "message": "Add AudioAttribute flag missing in FLAG_ALL\n\nTest: Compile\nBug: 111453086\nChange-Id: I09212262f56253decd48fd9204404e744f0772ab\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "e6243996efb90d6e9dd0b855aa47c8795cf4ba9f",
      "tree": "8d77883e030dfdc2bc194440a1538a9f8d457599",
      "parents": [
        "368ae7ff106b1ebf1c316383e3f037b214d8dfa5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 02 18:34:23 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 02 18:59:12 2019 -0700"
      },
      "message": "Revert \"Mute haptic channels by default.\"\n\nThis reverts commit 48af5aeeba37112821eab0869ea8274612798c6f.\n\nNo idea on how this simple CL can cause this problem but A/B tests\nand bisection show that the problem disabpears when reverted.\n\nBug: 129721367\nTest: no repro on build with revert.\nChange-Id: I13e3d788d255c4b6e873bb1e9ce2cf92d2a18e41\n"
    },
    {
      "commit": "bb261a3caf60a620836c45cf8f8dda194f334dc3",
      "tree": "89ad85cb3eb3fb6b5fe418b32a3ac667c165edd6",
      "parents": [
        "18c3f9c551db244eb8950be2b8fb1b4a3720e6a5",
        "33c666d955ff41b6a299e2b029e22afa8053f867"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 02 20:23:35 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 20:23:35 2019 +0000"
      },
      "message": "Merge \"Fix ringtone null pointer exception\""
    },
    {
      "commit": "33c666d955ff41b6a299e2b029e22afa8053f867",
      "tree": "20e986512b952e5601dd0f38b210c48b2e7cffad",
      "parents": [
        "38076cdc883c4466d2b399d625733f9b97bc1c79"
      ],
      "author": {
        "name": "Youming Ye",
        "email": "paulye@google.com",
        "time": "Mon Apr 01 15:52:50 2019 -0700"
      },
      "committer": {
        "name": "Youming Ye",
        "email": "paulye@google.com",
        "time": "Tue Apr 02 19:53:15 2019 +0000"
      },
      "message": "Fix ringtone null pointer exception\n\nBug: 128468578\nTest: Build\nChange-Id: If65f0194712c8358fdbd88e7d04478f8395a012b\n"
    },
    {
      "commit": "2118cc304212baf41eeed8f4ad4167773e6df04d",
      "tree": "5e6aed0a18d8059c1dc96fd5b56d47109656164b",
      "parents": [
        "a1189dcf6870564b893dd4c35933bc6400a58fb1",
        "48af5aeeba37112821eab0869ea8274612798c6f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Mar 31 22:52:58 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 31 22:52:58 2019 +0000"
      },
      "message": "Merge \"Mute haptic channels by default.\""
    },
    {
      "commit": "48af5aeeba37112821eab0869ea8274612798c6f",
      "tree": "b0d93e7241ee2dd0615a3908f5bdbd9c0fae96c8",
      "parents": [
        "35c240e1a295510861bebc889cf9427e2e788614"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Mar 29 11:05:47 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Mar 29 11:05:47 2019 -0700"
      },
      "message": "Mute haptic channels by default.\n\nIn case the apps start vibration while playing asserts containing haptic\nchannels, it will be safer to mute haptic channels by default. Apps will\nneed to explicitly enable haptic channels if they want haptic via audio.\n\nBug: 129544270\nTest: play with/without enabling haptic channels.\nChange-Id: Id35d25c2be1c0b26053389f0b277b1ce321ad29e\n"
    },
    {
      "commit": "dcb8edfc4d7bc4b99640350d4e7c3181fcbb662f",
      "tree": "229be119459bf1fbb0a6593c6eb884789903f6bd",
      "parents": [
        "cb1f204387bdbfd2c49398d3aa649f3d70b6b295",
        "aff8c04b25364bdfbcfc719d75057ded46edc225"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 28 20:14:17 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 20:14:17 2019 +0000"
      },
      "message": "Merge \"MediaRecorder: Add IntDef to setAudioSource\""
    },
    {
      "commit": "20309bb9c3c734d260297506e00883b94d16a2db",
      "tree": "a3d8ec61ad8e5f215274f65ad9fd44ceb6ed2a63",
      "parents": [
        "9ad0766f167f560e069b0dc5afa0c61eefc681db",
        "ace9250688faeded567ae2d4626b1b9dc02035b2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 28 19:38:19 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 19:38:19 2019 +0000"
      },
      "message": "Merge \"Remove deprecateStreamTypeForPlayback from HwAudioSource\""
    },
    {
      "commit": "9ad0766f167f560e069b0dc5afa0c61eefc681db",
      "tree": "47e74192f1bd7eca8dbde09b21d7ca079d40509f",
      "parents": [
        "5cf9f7318722486b522d487303972ad7dffe532d",
        "7919c2acc95ee95e776cd6f088a60d402c60e410"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 28 19:37:13 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 19:37:13 2019 +0000"
      },
      "message": "Merge \"Add application wide capture policy\""
    },
    {
      "commit": "50b1abc246069f4b4681bcea188eede08156dfae",
      "tree": "cf517688d0b715dd9f3af0b3632b8320a8bfc965",
      "parents": [
        "d711ed3021a68e106b1eb1654671434043f0e5d5",
        "e220d3b5c4c8c6a4e2c794f5a9c28fec16e89955"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Thu Mar 28 08:21:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 08:21:59 2019 +0000"
      },
      "message": "Merge changes from topic \"renault-non-api-change\"\n\n* changes:\n  Get volume indexes from Audio Policy Service\n  Use AudioProductStrategies within AudioAttributes\n"
    },
    {
      "commit": "cba4b211e5d96908657f33dffbcfbe1437441489",
      "tree": "d9921ad63a14a65cd8d7a8a21a0febe51eeaae89",
      "parents": [
        "49cf94e9d4da13e241dd09e80bd05868f6aef743",
        "a3a4bbba98f08cb60b18a3cb2790bdb26c2d71d5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Mar 27 20:41:06 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 20:41:06 2019 +0000"
      },
      "message": "Merge \"Introduce a system APC with its corresponding opt-out\""
    },
    {
      "commit": "49cf94e9d4da13e241dd09e80bd05868f6aef743",
      "tree": "7284a38637e405c006b952dd0a2ac4d0c76dde4c",
      "parents": [
        "53b7e93cc37bc90dd74d867fc30d089d9efeb82d",
        "d18e1f34fe547c7a36cc902a94ed3e22ead9b685"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 27 20:30:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 20:30:47 2019 +0000"
      },
      "message": "Merge \"media: rename KEY_MAX_BFRAMES to KEY_MAX_B_FRAMES\""
    },
    {
      "commit": "ace9250688faeded567ae2d4626b1b9dc02035b2",
      "tree": "d22654c6e1796d44099686e0a9f35f11fdca785b",
      "parents": [
        "65b245a1380dfa6a56d4a211b5950ce73daec8d6"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Mar 27 11:24:34 2019 -0700"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Mar 27 11:24:34 2019 -0700"
      },
      "message": "Remove deprecateStreamTypeForPlayback from HwAudioSource\n\nIt used to be there to hide from API list, and since it\u0027s been addressed\nin PlayerBase, this pseudo override is no longer needed.\n\nBug: 126702177\nTest: make system-api-stubs-docs-update-current-api\nChange-Id: I8caa75410d1ffb2b0e690a82396ac978b03a2844\n"
    },
    {
      "commit": "d18e1f34fe547c7a36cc902a94ed3e22ead9b685",
      "tree": "cf3d47ab98dc16b55e0f429410bedc5221a35adf",
      "parents": [
        "1993b95b3119fcb9558895a0e81a711023c7f559"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Mar 27 08:49:58 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Mar 27 08:49:58 2019 -0700"
      },
      "message": "media: rename KEY_MAX_BFRAMES to KEY_MAX_B_FRAMES\n\nRename it to be consistent with use of I_FRAME.\n\nBug: 129344870\nTest: builds\nChange-Id: I816439074837452cdbd9ed2a734ea237517ad26f\n"
    },
    {
      "commit": "4e953bb406022876f0cb7d3d8a73dde1536680e1",
      "tree": "7e345493fa38d961bc4eb023c01dc7ed08600616",
      "parents": [
        "95f616da803f28eb203bfb2ae707200c386edb3f",
        "4e4459b403df61c57359583381e7e97549dd649c"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Mar 27 00:20:14 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 00:20:14 2019 +0000"
      },
      "message": "Merge \"Remove ControllerCallbackLink\""
    },
    {
      "commit": "02aefee5336364dc1d2b63e575c746812963bf92",
      "tree": "1ec918f7b2573b61c1a38c2419a8d867bd7c52ca",
      "parents": [
        "362f85e222475e29792d911dd47811f551a7fbcd",
        "859856d8d69ebcbe2f32d27a2884a58ed4cae802"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Tue Mar 26 23:54:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 23:54:22 2019 +0000"
      },
      "message": "Merge \"Unify media permissions enforcement in framework.\""
    },
    {
      "commit": "859856d8d69ebcbe2f32d27a2884a58ed4cae802",
      "tree": "974b18e874c653b3f35e4a45c3ac218168424cfa",
      "parents": [
        "13fa465291f01cc562042870f07dcb36a7f1881d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 25 11:44:11 2019 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Tue Mar 26 23:54:08 2019 +0000"
      },
      "message": "Unify media permissions enforcement in framework.\n\nThis opens the door to the same consistent logic being shared by\nanyone across the OS who wants to enforce storage permissions.\n\nBug: 126788266\nTest: atest --test-mapping packages/apps/MediaProvider\nExempted-From-Owner-Approval: Trivial permissions refactoring\nChange-Id: I3107425f8dafa6ba05918bb67c3c0cb5d3899657\n"
    },
    {
      "commit": "4e4459b403df61c57359583381e7e97549dd649c",
      "tree": "ba0c8538611372bf6d831a8023f661e41bd8a89b",
      "parents": [
        "5e94ae17ae7181b2f8aa99c0c98af87aad3304d5"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 26 19:18:45 2019 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 26 20:05:29 2019 +0900"
      },
      "message": "Remove ControllerCallbackLink\n\nBug: 129323028\nTest: atest CtsMediaTestCases:android.media.cts.MediaSessionTest;\n      atest CtsMediaTestCases:android.media.cts.MediaControllerTest;\n      atest CtsMediaTestCases:android.media.cts.MediaBrowserTest;\n      atest CtsMediaTestCases:android.media.cts.MediaSessionManagerTest;\nChange-Id: I5b1fedc70cee7311364925562ad253a68b2bfe6e\n"
    },
    {
      "commit": "2d70f04a1de6c55a9fcf155b287f138a05381a66",
      "tree": "8e9c6a5d7c2a8f7fcacf20a0c05c907d8141099f",
      "parents": [
        "1993b95b3119fcb9558895a0e81a711023c7f559",
        "1c8188f2b40cad3dcefdcc3b7e308451bd705180"
      ],
      "author": {
        "name": "Kyunglyul Hyun",
        "email": "klhyun@google.com",
        "time": "Mon Mar 25 23:39:34 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 23:39:34 2019 +0000"
      },
      "message": "Merge \"Media: Add MediaRouterManager to control media route of other apps\""
    },
    {
      "commit": "fcf1e54d29e84bbe335550c9420faf28ce017c3f",
      "tree": "4bd3af39bbac829ce95b90f4404fbbaab3f5a447",
      "parents": [
        "3111cff3c790a340ab479cf086b2a537fb2e8df1"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Feb 25 12:20:35 2019 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 25 16:13:41 2019 -0700"
      },
      "message": "PlayerBase: conditional muting on OP_PLAY_AUDIO changes\n\nDo not mute based on OP_PLAY_AUDIO client side.\nDisable legacy behavior with constant without affecting\n  audio service logs.\n\nBug: 112339570\nTest: enter DnD, play notifications, verify not heard\nChange-Id: I8a963af02fc2b42844470a4212fec8e2f6a5e4e0\n"
    },
    {
      "commit": "ff200957fd93d2eae2db46714e23fabd89ff1696",
      "tree": "01a82fa6dd7ae5f35f9c7e5c6fa886daa6a3a9c5",
      "parents": [
        "1c3ef21ab8db3cf661b2af5390809bcf9935f190"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 24 12:50:51 2019 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 24 14:21:01 2019 -0600"
      },
      "message": "Query specific collections for properties.\n\nWe\u0027re now enforcing the public API schema, so clients like MTP need\nto query specific collections when asking for properties that are\nspecific to those media types.\n\nAlso refactor MediaScanner calls to go through MediaProvider, so\nthey can be handled by ModernMediaScanner.  We no longer directly\ntry inserting items, and instead rely completely on the scanner.\n\nBug: 127625964, 122263824\nTest: atest MediaProviderTests\nTest: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*\nChange-Id: Ic86982766606a619afafe725f9c60013a5671840\n"
    },
    {
      "commit": "2809f8fe1e72f38532342af1b9fdef5e54c3dfee",
      "tree": "bff2b53f8913b3c2dd10852ee853786343781257",
      "parents": [
        "d598976589935048fabf05ca6c3f666b9ea303ce",
        "7969f77f9515a1f0e2a3186ef926bca7114663c7"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Sun Mar 24 12:15:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 24 12:15:07 2019 +0000"
      },
      "message": "Merge \"Remove SessionCallbackLink\""
    },
    {
      "commit": "ae80b5417bb2a87782731439e358dcb0b96edb00",
      "tree": "2c7df218c3131ddda7c97a1338ef68425e9cd8ce",
      "parents": [
        "4b58630ef2d5fd776bb393b07fcd61e51063774d",
        "13d02b59252cdf358bd65c629aa0af2741bb6f08"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Sat Mar 23 17:59:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 23 17:59:03 2019 +0000"
      },
      "message": "Merge changes from topic \"mar22z\"\n\n* changes:\n  Point people towards ModernMediaScanner.\n  Translate paths before leaving app sandbox.\n"
    },
    {
      "commit": "aff8c04b25364bdfbcfc719d75057ded46edc225",
      "tree": "a1acaa0b59283745b9c3cdf7979bb70d91e6ff10",
      "parents": [
        "8c6eee1124e7fcc7253e53f7ca4297bfbcc250eb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 21 14:29:56 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 22 18:04:50 2019 -0700"
      },
      "message": "MediaRecorder: Add IntDef to setAudioSource\n\nBug: 128414080\nTest: make\nChange-Id: I1f0b5c75becf89e995fb33f85a79c834d5fa9625\n"
    },
    {
      "commit": "f0ae16b7d0cf885b649b8bb5be47881e6e013e39",
      "tree": "b8337e1335ad17122a336c6598e811a6a4812e4c",
      "parents": [
        "dd72d2f8cda488b2bb03913f5b532bcfa8a3c75c",
        "12683c7d9d40ca4cd56eb97561643c88ae0c3e12"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 22 17:36:20 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 22 17:36:20 2019 -0700"
      },
      "message": "Merge \"Add self to OWNERS for MediaProjection.\" am: 00ccf23ebd am: 187bd825b8\nam: 12683c7d9d\n\nChange-Id: I716cf4f93ca453a69e054f3b455cc4ba62be8941\n"
    },
    {
      "commit": "12683c7d9d40ca4cd56eb97561643c88ae0c3e12",
      "tree": "066ec6457e3c23808555b42ddc2c3435bc0d654c",
      "parents": [
        "1b8dfb39828e57d8084e90fb8d5d3c5782486ea5",
        "187bd825b80c9ff6280ad32f0ccde4aef4568db8"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 22 17:26:57 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 22 17:26:57 2019 -0700"
      },
      "message": "Merge \"Add self to OWNERS for MediaProjection.\" am: 00ccf23ebd\nam: 187bd825b8\n\nChange-Id: Ic59abd88618d5b06dedf5f618a428f8ab1c4f022\n"
    },
    {
      "commit": "187bd825b80c9ff6280ad32f0ccde4aef4568db8",
      "tree": "42d9771f5705f3578c2469672086bf1b78405340",
      "parents": [
        "3b176bc1dedfccbbe396aff9a3cf3e21096eb3e6",
        "00ccf23ebdf660e30ed468938e7f64ee774e1594"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 22 17:14:39 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 22 17:14:39 2019 -0700"
      },
      "message": "Merge \"Add self to OWNERS for MediaProjection.\"\nam: 00ccf23ebd\n\nChange-Id: I34369b2d81c8fea7c56000e305ee8f82a18135de\n"
    },
    {
      "commit": "00ccf23ebdf660e30ed468938e7f64ee774e1594",
      "tree": "f9e0f78af924542900c0fe0b22b30e461a2619ed",
      "parents": [
        "dedc27142d515f084c59b4fc70abefebbed19ae0",
        "f64ba348d7ea28f13c4439d8934928c929fd01bd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 22 23:48:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 22 23:48:31 2019 +0000"
      },
      "message": "Merge \"Add self to OWNERS for MediaProjection.\""
    },
    {
      "commit": "13d02b59252cdf358bd65c629aa0af2741bb6f08",
      "tree": "f7132a97ebb8f6e311f5b6358b211c1c48228764",
      "parents": [
        "9c9ee953e65e0246533884a2c76fdeb05dcfa0b0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 22 17:30:46 2019 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 22 17:30:48 2019 -0600"
      },
      "message": "Point people towards ModernMediaScanner.\n\nThe platform media scanner has served faithfully for many years, but\nit\u0027s become tedious to test and maintain, mainly due to the way it\nweaves obscurely between managed and native code.\n\nBug: 128243527\nTest: none\nChange-Id: I44c5e9840acc0afde4aeaf9a44a21e0f8939b44b\n"
    },
    {
      "commit": "3330585f06cde74e739122a7204a0e8c88f67f33",
      "tree": "e7de75f3e50d846e81d915ce29ee47e93a8cb901",
      "parents": [
        "b0d3aff544757f6f577ccb39ba1bfdc49f8408cc",
        "22f157713ff2dc7f6457d8707694c7b8e50f9d9d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 22 22:59:19 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 22:59:19 2019 +0000"
      },
      "message": "Merge \"Add status for license starting in the future\""
    },
    {
      "commit": "7919c2acc95ee95e776cd6f088a60d402c60e410",
      "tree": "df8fed38c5ee339c93c72e027870ea6df68f49b8",
      "parents": [
        "a3a4bbba98f08cb60b18a3cb2790bdb26c2d71d5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 21 10:28:01 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 22 15:28:51 2019 -0700"
      },
      "message": "Add application wide capture policy\n\nApps were previously forced to set their allowed capture policy from\neither their manifest which is not flexible or from each track which is\na very fine grain but difficult when using libraries like exoplayer.\n\nThus add an application level policy set with AudioManager.\n\nTest: atest android.media.cts.AudioPlaybackCaptureTest#testCaptureMediaUsage\nBug: 111453086\nChange-Id: Id360f1c3f3157c60694c039e51ff16e71d8f93cd\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "a3a4bbba98f08cb60b18a3cb2790bdb26c2d71d5",
      "tree": "5381be9d500e4a17cae8ee88498bec06ebd0228d",
      "parents": [
        "d3304bfd0ab8c8f10051a9cd10df8c23f65e71a9"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 07 18:29:48 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 22 15:28:51 2019 -0700"
      },
      "message": "Introduce a system APC with its corresponding opt-out\n\nFor system application with the new permission CAPTURE_MEDIA_OUTPUT, or\nCAPTURE_AUDIO_OUTPUT, allow to capture the audio of playing apps that\nallow it.\n\nTest: adb shell audiorecorder --target /data/file1.raw\nTest: atest android.media.cts.AudioPlaybackCaptureTest\nBug: 111453086\nChange-Id: I5bfca51e48992234508897c595a076d066db26b2\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "22f157713ff2dc7f6457d8707694c7b8e50f9d9d",
      "tree": "9d1a0601b633d2d58f910e6b055c12d539297ba4",
      "parents": [
        "5ca35d19a4810970eef095983e0b5c8c410cd6ad"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Oct 16 10:19:47 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 22 10:12:00 2019 -0700"
      },
      "message": "Add status for license starting in the future\n\nbug:116738851\nChange-Id: Ifd38733f2f5704fbc93d23e6b53994430736dd17\n"
    },
    {
      "commit": "b8d4c59b089cb302759a77584c2a5ee1583e6852",
      "tree": "1a058be5f0ceabcc6f1d10d583c35cc1a3fff97a",
      "parents": [
        "006ab03fb71a91b0aa9d7742e544ee45bd0f1a3a",
        "6e7a47932f1afb86cd31aa7e8fdac6140c08b4d0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 22 15:57:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 15:57:49 2019 +0000"
      },
      "message": "Merge \"API changes in MicrophoneDirection\""
    },
    {
      "commit": "3d97b27ce0039cd3f0c70e47695e3c258a3f1b7d",
      "tree": "eef12c7a4def8e6adb81780070a164593ad222df",
      "parents": [
        "ebc9015d59b1500397ed6e09d6bf92d3a23b0c3a",
        "f3fd84adfec519440907fdc39e37fbd1063850b1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 22 09:20:17 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 09:20:17 2019 +0000"
      },
      "message": "Merge \"Offloaded playback: use AudioAttributes in support check\""
    },
    {
      "commit": "7969f77f9515a1f0e2a3186ef926bca7114663c7",
      "tree": "14271e01275a5001b51104f88d5c2efc7ddd72f4",
      "parents": [
        "05591aeaf99507664934718b3d25d8f9d991f4c9"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 21 17:16:16 2019 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 22 15:22:17 2019 +0900"
      },
      "message": "Remove SessionCallbackLink\n\nBug: 129037153\nTest: atest CtsMediaTestCases:android.media.cts.MediaSessionTest;\n      atest CtsMediaTestCases:android.media.cts.MediaControllerTest;\n      atest CtsMediaTestCases:android.media.cts.MediaBrowserTest;\n      atest CtsMediaTestCases:android.media.cts.MediaSessionManagerTest;\nChange-Id: I79cd69854fce2448544fd517c1af7d7321df6a79\n"
    },
    {
      "commit": "34cfe56bdcca8126cd70eaed17f70de89ed62be3",
      "tree": "969fd1ed2223fc1a0a094f6438dce9225e118666",
      "parents": [
        "37d4372c35f5816bb152c76da9cf86caf2a3ea08",
        "073edf0ecf0088e78a7f8989c8b6789995c645e0"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 22 05:30:13 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 05:30:13 2019 +0000"
      },
      "message": "Merge \"Remove MediaSessionEngine\""
    },
    {
      "commit": "f3fd84adfec519440907fdc39e37fbd1063850b1",
      "tree": "07f76c7c85c8214036513b44447640ebf7ad9f2b",
      "parents": [
        "70974aa123542576ab403cc33ca8f2a6f0acc93d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 21 16:08:50 2019 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 21 21:21:23 2019 -0700"
      },
      "message": "Offloaded playback: use AudioAttributes in support check\n\nAudioAttributes can influence offload support, add them in\n  method to check for support\n\nBug: 86837964\nTest: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.AudioTrackOffloadTest#testAudioTrackOffload\nChange-Id: If4037d0611ec1264d23d1779b9ac6efd9fd1244c\n"
    },
    {
      "commit": "643ba1862dd375d1a11469c101725646df76a1bb",
      "tree": "8226e8c5cb94c8cd3446c3219947a084e2081648",
      "parents": [
        "4bb646d204e6ee33b577530aa05d6ee02815fcd2",
        "f11261ba884b217526babbfc2724490602f75fd1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 22 01:57:35 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 01:57:35 2019 +0000"
      },
      "message": "Merge \"Resolve feedback from API review: MediaDrm\""
    },
    {
      "commit": "701077f51c6221ddfbbce02d67114407e453eba0",
      "tree": "da67ebf014f712fa6664ad633571e2594f108d1c",
      "parents": [
        "3662ca14a9968eb86b10b62e0d449c31a5b06fea",
        "ee7d2456e10812c37f2f1abdbae7036f7c12f60a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 22 01:34:34 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 01:34:34 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: add test flagging for focus policy tests\""
    },
    {
      "commit": "f11261ba884b217526babbfc2724490602f75fd1",
      "tree": "5adb167e05c1f0af29c8f543c5720ca895c5f3d2",
      "parents": [
        "5ca35d19a4810970eef095983e0b5c8c410cd6ad"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Feb 26 18:11:37 2019 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Mar 21 23:38:07 2019 +0000"
      },
      "message": "Resolve feedback from API review: MediaDrm\n\nbug:123939401\ntest:media playback test\nChange-Id: I8166535fe537a633a0ddac917217a5ac627f4ca8\n"
    },
    {
      "commit": "1930893edc25afdd5b543843f38a7e0b8fb89af8",
      "tree": "883c3da0ef20668cb10a93c67c8331a41b42cfc1",
      "parents": [
        "38076cdc883c4466d2b399d625733f9b97bc1c79",
        "ad225205f51fc80987a0b3b163d6f47797551387"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 21 23:33:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 23:33:25 2019 +0000"
      },
      "message": "Merge changes from topic \"APIForQueryingHapticsExist\"\n\n* changes:\n  Add API in RingtoneManager to query if files contain haptic channels.\n  Add key for haptic channel count.\n"
    },
    {
      "commit": "ee7d2456e10812c37f2f1abdbae7036f7c12f60a",
      "tree": "a89147d1c375bd7cb23e4dd98601cbd76f56b7f2",
      "parents": [
        "70974aa123542576ab403cc33ca8f2a6f0acc93d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 19 12:29:27 2019 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 21 10:29:59 2019 -0700"
      },
      "message": "AudioPolicy: add test flagging for focus policy tests\n\n(Note there is no @TestApi for @SystemApi, so rely\n  on javadoc to document that the new method is\n  for testing purposes only)\nAdd method to flag a focus policy as a test policy for\n  devices that run their own focus policy to customize\n  audio focus management. When a test policy is installed\n  it will replace the current one, and will restore it\n  when it is unregistered.\nAdd nullability annotations in Builder.\n\nBug: 123717363\nTest: make system-api-stubs-docs-update-current-api\nTest: gts-tradefed run gts --skip-device-info --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker -m GtsGmscoreHostTestCases -t \u0027com.google.android.gts.audiopolicy.AudioPolicyHostTest#testFocusPolicy\u0027\nChange-Id: I572487bb53f85aade22da8529db9491a542ef0db\n"
    },
    {
      "commit": "33b6db9d7639a1a376d2c57dd1c22574ab91718c",
      "tree": "b3104b38a7bff6f364c2b2ac46a7beef07a43e2b",
      "parents": [
        "12add0df8ea094f7c75ab3002b951b9f5a9ea398",
        "0d5a4801f4777f6c805fc62a7e3471b4e060fab6"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Mar 21 16:29:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 16:29:26 2019 +0000"
      },
      "message": "Merge \"media: add MediaFormat.KEY_PREPEND_HEADERS_TO_SYNC_FRAMES\""
    },
    {
      "commit": "34e53cf69e287f1b944c59607596d287a3b3f973",
      "tree": "669c2da7053f161d16438c74741d5c9cf965eab7",
      "parents": [
        "e9e1886860353cc0bb20600017fa3bcb711efb5c",
        "048c3888bcdd82c81b4710c73066c5225d6ded01"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 21 13:41:27 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 13:41:27 2019 +0000"
      },
      "message": "Merge \"Add getter to AudioPlaybackCaptureConfiguration\""
    },
    {
      "commit": "048c3888bcdd82c81b4710c73066c5225d6ded01",
      "tree": "ca238e94e6cf5ad3bcac1460ad0512efc96063e3",
      "parents": [
        "865351445040bb6c9ec8df08d6df0084215c37d3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Mar 18 10:47:48 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 21 05:50:48 2019 +0000"
      },
      "message": "Add getter to AudioPlaybackCaptureConfiguration\n\nAs requested by the API concil.\n\nTest: atest android.media.cts.AudioPlaybackCaptureTest\nBug: 128454287\nChange-Id: I205fe03d1d23d67ecf3e4590b62bde24f56e4e83\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "a7aafac2cff169cca322b9c47663eb2ad461009b",
      "tree": "75f0257be8ee26bc42317e22a5af4c0eedc98bc0",
      "parents": [
        "865351445040bb6c9ec8df08d6df0084215c37d3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 19 02:52:22 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 21 05:49:06 2019 +0000"
      },
      "message": "AudioMix: Do not compare rules of different types\n\nThat would lead to NullPointerException as some fields of\nAudioMixMatchCriterion are null in some type but not others.\n\nWhen first registering a UID rule, the register criterion had a null\nmAttr. If a USAGE criterion was then added, it would be compared to the\nexsting rule as if it was an USAGE rule. As mAttr was null, a\nNullPointerException was thrown.\n\nTest: first register a UID rule, then a USAGE rule.\nTest: atest android.media.cts.AudioPlaybackCaptureTest#testCaptureMediaUsage\nBug: 111453086\nChange-Id: Iece913b87a627171c0a1f872aa57c5125d0ba782\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "865351445040bb6c9ec8df08d6df0084215c37d3",
      "tree": "d6bcd6fa8bec7c5a19579fab5e1f2ad3b5b7fdee",
      "parents": [
        "48d81faf16fe71b84ed888d6a4772e13790e540a",
        "613d6121a037b7b6efecf38884bbe8e02125ba4d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 21 05:48:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 05:48:40 2019 +0000"
      },
      "message": "Merge \"Improve Audio Playback Capture API\""
    },
    {
      "commit": "455756633c1b4e3d4429ba15e4ef97b2602344b4",
      "tree": "d1637c8ffdb8483f5eacaa2ed68535bdfd4af16a",
      "parents": [
        "c9a92abca4cd113b5a13fa9d2ddfba73dca1154f",
        "b911907651b6d629765841438e9cc3966c990f0d"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Mar 21 03:37:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 03:37:05 2019 +0000"
      },
      "message": "Merge \"Address feedback on MediaTimestamp, SubtitleData and TimeMetadata\""
    },
    {
      "commit": "5e8dc2c87c755d21dda42980377a1f58c3f3c805",
      "tree": "e89a2b557f76a0f349ac5830fc1305a0f1fc3835",
      "parents": [
        "9499118892e1a4b62a1014d0168d2005f5efde94",
        "d7400f7b9045fefffbd498719d29281dd65ef350"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 21 02:51:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 02:51:48 2019 +0000"
      },
      "message": "Merge \"media: refine MediaCodecInfo video PerformancePoints\""
    },
    {
      "commit": "ad225205f51fc80987a0b3b163d6f47797551387",
      "tree": "668df6566dafaaace02404383b8b4a692d3fc802",
      "parents": [
        "6977b323975e5b9a67794a979482656c2d35e245"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 20 15:22:50 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 20 18:11:16 2019 -0700"
      },
      "message": "Add API in RingtoneManager to query if files contain haptic channels.\n\nThe query will go to AudioService in case the app itself does not have\nthe permission to access the files.\n\nTest: test with files (not) containing haptic channels.\nBug: 128012181\nChange-Id: I0a3410161e9718197276dc9d6abecada81cf0ee4\n"
    },
    {
      "commit": "b911907651b6d629765841438e9cc3966c990f0d",
      "tree": "ed616efe3fc03a53d7d4f5df0a83eb508f116cd4",
      "parents": [
        "3d3b861a5c86e0c9f8f4c01aafb5814b5489105c"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Mar 20 11:38:06 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Mar 21 00:33:15 2019 +0000"
      },
      "message": "Address feedback on MediaTimestamp, SubtitleData and TimeMetadata\n\nTest: MediaTimestampTest, SubtitleDataTest, TimeMetadataTest\nBug: 128547839, Bug: 128460405\nChange-Id: I9f2b0e10b6fecbf7b0338586974ab8a720ab77b7\n"
    },
    {
      "commit": "6977b323975e5b9a67794a979482656c2d35e245",
      "tree": "7dbc30124a15bd785d59fa020488d97beda4a728",
      "parents": [
        "f54473a80beef59c591fa5ca4862ea4019a7a244"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 20 14:52:38 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 20 15:50:59 2019 -0700"
      },
      "message": "Add key for haptic channel count.\n\nTest: test with files (not) containing haptic channels.\nBug: 128012181\nChange-Id: I02438c2b49a2adc7c1643405209877c3747a5558\n"
    },
    {
      "commit": "0c21cc9096da6fcc56ee1abe7891f2cae6607dd5",
      "tree": "25644e9c4130fee1b222f2ec81f2b2ffe3c1e480",
      "parents": [
        "f54473a80beef59c591fa5ca4862ea4019a7a244"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 19 15:41:24 2019 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 20 15:33:07 2019 -0700"
      },
      "message": "media: break out subprofiles for AV1\n\nBug: 128933583\nChange-Id: I7d664736908d049602e88e927983d7d46b802f77\n"
    },
    {
      "commit": "6e7a47932f1afb86cd31aa7e8fdac6140c08b4d0",
      "tree": "b579f1947315b5c1efa3bc6150df38abd4a0d733",
      "parents": [
        "70974aa123542576ab403cc33ca8f2a6f0acc93d"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Mar 15 10:43:41 2019 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Mar 20 13:43:27 2019 -0600"
      },
      "message": "API changes in MicrophoneDirection\n\nBug: 128523813\nTest: build, flash, testbed app.\nChange-Id: Ie71cb58351c7c5ab617851c7ccaff4ec0ba34215\n"
    },
    {
      "commit": "073edf0ecf0088e78a7f8989c8b6789995c645e0",
      "tree": "4946e49e82ad6a4d9f57f61eaf3c92297db094ac",
      "parents": [
        "3ec026d67de1d30594e59a32b9048a9a287d45ef"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Mar 20 21:03:22 2019 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Wed Mar 20 23:27:30 2019 +0900"
      },
      "message": "Remove MediaSessionEngine\n\nBug: 128970771\nTest: atest CtsMediaTestCases:android.media.cts.MediaSessionTest;\n      atest CtsMediaTestCases:android.media.cts.MediaControllerTest;\n      atest CtsMediaTestCases:android.media.cts.MediaBrowserTest;\n      atest CtsMediaTestCases:android.media.cts.MediaSessionManagerTest;\nChange-Id: I7276de966b17b4b5c806e2b9c5ac5e4646e2fd07\n"
    },
    {
      "commit": "0d5a4801f4777f6c805fc62a7e3471b4e060fab6",
      "tree": "ca20b2ae8ed7314a9271d6fcc152810d359f2d7a",
      "parents": [
        "1d5732212be6943784b8daea3c21d9a7cb3b0a8f"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 12 15:54:33 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 19 22:46:15 2019 -0700"
      },
      "message": "media: add MediaFormat.KEY_PREPEND_HEADERS_TO_SYNC_FRAMES\n\nBug: 32746212\nTest: atest CtsMediaTestCases:MediaCodecCapabilitiesTest#testPrependHeadersToSyncFrames\nChange-Id: I4f99a27f28c897c1259d1bd52ef62a81017587f1\n"
    },
    {
      "commit": "d28eaf750e58530821b216947bb78927b338f2b4",
      "tree": "ebb6c843504a403b888ab0bb2545085b44118607",
      "parents": [
        "1d5732212be6943784b8daea3c21d9a7cb3b0a8f"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Mar 08 11:42:14 2019 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 19 22:34:38 2019 -0700"
      },
      "message": "MediaFormat: add a key for B frames\n\nBug: 127315857\nTest: builds\nChange-Id: I680712fd11515579c56dd17173c28faa545a7ad3\n"
    },
    {
      "commit": "613d6121a037b7b6efecf38884bbe8e02125ba4d",
      "tree": "39f880e7a46b09b0e3908f392882bc38a59e0538",
      "parents": [
        "cf49db1265539c41931306a2d797e2f72d8e9611"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 27 22:43:21 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 19 14:51:09 2019 -0700"
      },
      "message": "Improve Audio Playback Capture API\n\nThe API too closely resembled the underlying system API, in forcing the\nclient to construct a full AudioAttribute when only the usage was\nuseful.\n\nTest: atest android.media.cts.AudioPlaybackCaptureTest#testCaptureMediaUsage\nBug: 111453086\nChange-Id: Ic3944120ab4d5dc7b85e5baf7718a39a171a4333\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "70974aa123542576ab403cc33ca8f2a6f0acc93d",
      "tree": "4a72c367b001dc117517e5f8b71cb16e6520c03d",
      "parents": [
        "7ccfdd170eae846f9631e5741f06b6fe5aff3444",
        "90682ff7c5ce406e100d2161712b8bdd0559301b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 19 15:34:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 19 15:34:07 2019 +0000"
      },
      "message": "Merge \"New intent action for speakerphone state change\""
    },
    {
      "commit": "ba7f46d12da5c037bbf981d3364659b205770364",
      "tree": "ba3043bb01ec0837eeaad0fb2e2ff8d6b4e871d7",
      "parents": [
        "65d986c974454dc419bc20345d571b1a1155cc54",
        "24f366b73fd798f78167e241e48d93cc70c7cec7"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Tue Mar 19 04:53:56 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 19 04:53:56 2019 +0000"
      },
      "message": "Merge \"Remove SessionLink\""
    },
    {
      "commit": "11ba311912adf99b48b127e097bf6d37c5aebb66",
      "tree": "65982afb549785dc31151435a29c8637a08d1e2b",
      "parents": [
        "6625e37e17c8c441b6518c408d79b0094377e4f0",
        "33435110a26ccd19dbf6b03600f50e4b74e47f94"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Mar 18 19:09:29 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 18 19:09:29 2019 -0700"
      },
      "message": "Merge \"MediaHTTPConnection: move connection states into an inner class\" am: abe16aff07 am: 6be164a330\nam: 33435110a2\n\nChange-Id: I8042e41f795a49ce421cb59229b1974bf0afc19a\n"
    },
    {
      "commit": "33435110a26ccd19dbf6b03600f50e4b74e47f94",
      "tree": "903ffd8005fa71e1a99db9933f61d1f60ba83d47",
      "parents": [
        "4e7abb98d1d7835afc1b971910c4ef5e6efb369b",
        "6be164a33058a6c69a602000189fa6e6308e06f1"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Mar 18 18:56:41 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 18 18:56:41 2019 -0700"
      },
      "message": "Merge \"MediaHTTPConnection: move connection states into an inner class\" am: abe16aff07\nam: 6be164a330\n\nChange-Id: Ic78d25d9889999186b236f5b6ab978ae5a95e3e6\n"
    },
    {
      "commit": "6be164a33058a6c69a602000189fa6e6308e06f1",
      "tree": "5db3c118f5dc4a42138970b6b0fa9a63ae7ba256",
      "parents": [
        "c6d673901a83beb1bda63f63d6ce1fa55b9e00fd",
        "abe16aff07c6c7a09c34ceef9a0203877e0258c6"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Mar 18 18:48:41 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 18 18:48:41 2019 -0700"
      },
      "message": "Merge \"MediaHTTPConnection: move connection states into an inner class\"\nam: abe16aff07\n\nChange-Id: I3b501494ebdd882df2e0073b2e5eb752742a35b1\n"
    },
    {
      "commit": "abe16aff07c6c7a09c34ceef9a0203877e0258c6",
      "tree": "609b86be6df6999cb90c97262f220f70d6f1526b",
      "parents": [
        "853983ef32f7cca0a847d260192d2a64d54c65a8",
        "621e7968adf0253d5e22406f02ccc8bcc0eda5ec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 19 01:29:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 19 01:29:24 2019 +0000"
      },
      "message": "Merge \"MediaHTTPConnection: move connection states into an inner class\""
    },
    {
      "commit": "90682ff7c5ce406e100d2161712b8bdd0559301b",
      "tree": "e233865322e7eb177870d3a3ee1e80558fe4866a",
      "parents": [
        "04b8032de5bcdbb368fa98b04664542b0048ff16"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 18 15:52:00 2019 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 18 15:52:00 2019 -0700"
      },
      "message": "New intent action for speakerphone state change\n\nNew intent action ACTION_SPEAKERPHONE_STATE_CHANGED to indicate\n  speakerphone state changed.\n\nBug: 74541410\nTest: m -j ; make -j api-stubs-docs-update-current-api ; m -j ; atest android.media.cts.AudioManagerTest#testSpeakerphoneIntent\nChange-Id: I01963493001e31b1edf1f1ba85b5744eb924d887\n"
    },
    {
      "commit": "4cecad06f139bf219194b692bfcc112114464f86",
      "tree": "9065328d188fb9210486e948bb8b17af9ed6af10",
      "parents": [
        "4d6c66bf7807ee4dba1ceb005c613ad76eca27b9",
        "9c968fdb4f6535f45b0828e5c192164542d35821"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 18 22:47:55 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 18 22:47:55 2019 +0000"
      },
      "message": "Merge \"MTP: remove usages of device identifiers with virtual serial number\""
    },
    {
      "commit": "621e7968adf0253d5e22406f02ccc8bcc0eda5ec",
      "tree": "c2a2c7e40fa45be6ad38a4d242b1d5c565bd60a8",
      "parents": [
        "00a4170c0ccc51aa587d911296bb6793daf16d3a"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Mar 18 15:02:17 2019 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Mar 18 15:06:49 2019 -0700"
      },
      "message": "MediaHTTPConnection: move connection states into an inner class\n\nBug: 119900000\nTest: go/ag/5140159\nChange-Id: I8edae85ea614dd537758f342c0c4b57be09c2da5\n"
    },
    {
      "commit": "3ae9ff30f70fa22ed65a7379ec6c85d48db3f283",
      "tree": "3dfbdb91de5e993a97f66a4750b65c977d124dc0",
      "parents": [
        "d13ac3c727950ef4ce4a32d50ab83a12d2f3ea78",
        "72e6a4a250fba2c19b6692b39201f79074095e4d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 18 21:15:32 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 18 21:15:32 2019 +0000"
      },
      "message": "Merge \"AudioTrack: fix javadoc in setOffloadDelayPadding\""
    },
    {
      "commit": "d7400f7b9045fefffbd498719d29281dd65ef350",
      "tree": "8d7c5ae71560d0e8dd5ea5e1d26101824157d74a",
      "parents": [
        "2de33b0f4bcb4e588161df562f82ada626647de9"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 18 13:47:43 2019 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 18 13:58:56 2019 -0700"
      },
      "message": "media: refine MediaCodecInfo video PerformancePoints\n\nAdded internal constructors to test API\nMade bare fields test API-only getters\n\nBug: 126440182\nBug: 126442533\nBug: 126442812\nBug: 126360150\nBug: 126701033\nChange-Id: I1983a10f760e9a359a55e7cfd1992f0a2d63e146\n"
    },
    {
      "commit": "3d5fdce30b5df824357f72b76ba98ae224653779",
      "tree": "cc15abaacb513a767dae50c597362a881f70b7ee",
      "parents": [
        "09e2fbe60543183b1146adcbfee97b1cd69ffbf4",
        "345bc8de5d1f14cb09e99545d204804230906413"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 18 20:35:55 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 18 20:35:55 2019 +0000"
      },
      "message": "Merge \"Documentation for AVC* and AV1* Profile Constants\""
    },
    {
      "commit": "e6d280d660dcd5563a4f7ac1417c0de3fd9ef6be",
      "tree": "74ae631fa054561e359d44a62621803b9d1fe2f2",
      "parents": [
        "b426499958ba75130151d8c54981d338b97a533b"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Mar 21 16:08:33 2018 +0100"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Mon Mar 18 13:28:34 2019 -0700"
      },
      "message": "Use AudioProductStrategies within AudioAttributes\n\nAudioProductStrategies allows to avoid any hard coded operation in AOSP,\nand the matching between the stream type and the attributes can also\nbe exposed by the XML audio policy engine configuration file.\nThis CL updates the AudioAttributes to make use of product strategies\nto implement the legacy conversion between stream type and attributes.\nIt will continue fallbacking in hard coded mapping.\n\nBug: 124767636\nTest: dumpsys media.audio_policy\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: I143403a81e363ed064cb8b422e5ca53cb4b6e18b\n"
    },
    {
      "commit": "72e6a4a250fba2c19b6692b39201f79074095e4d",
      "tree": "ce461480460e87f3d39e4f6b74a234e153251b1d",
      "parents": [
        "04b8032de5bcdbb368fa98b04664542b0048ff16"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 18 10:46:52 2019 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 18 10:46:52 2019 -0700"
      },
      "message": "AudioTrack: fix javadoc in setOffloadDelayPadding\n\nBug: 128676433\nTest: make offline-sdk-docs\nChange-Id: I1ba2524aad71bd3d2611a76897e644a98afe81c4\n"
    },
    {
      "commit": "8ed14e107b6999950393e33ba92e03c03d6ab847",
      "tree": "7a8a58c559410094f54dff6817d6408f49fbc139",
      "parents": [
        "ecfad0220bb514ea23e77288b7569422929444e2",
        "79ed2c06dda71fdcf8b2bfb914686656bdf19289"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Mar 18 17:25:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 18 17:25:47 2019 +0000"
      },
      "message": "Merge \"MediaDrm: remove @StringProperty/@ArrayProperty\""
    },
    {
      "commit": "2d0d22268b3022fdfaf94ce4f278fbbb62d4bace",
      "tree": "4499503915b9803433d8b7b80815298e13a22fe3",
      "parents": [
        "f7a0b28443d8997f19892cc3806e6b7a94150aab",
        "8b1f97599ff8b6ade8ca58c4e5aead82064d50e5"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Mar 18 10:03:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 18 10:03:07 2019 +0000"
      },
      "message": "Merge \"Remove ControllerLink\""
    },
    {
      "commit": "1c8188f2b40cad3dcefdcc3b7e308451bd705180",
      "tree": "b1f49c32029bad5c293787a5579adf4f579a9833",
      "parents": [
        "a47b222a5fba9e319af249c9cc43ee1f1a3aa97f"
      ],
      "author": {
        "name": "Kyunglyul Hyun",
        "email": "klhyun@google.com",
        "time": "Fri Feb 01 10:50:11 2019 +0900"
      },
      "committer": {
        "name": "Kyunglyul Hyun",
        "email": "klhyun@google.com",
        "time": "Mon Mar 18 14:23:38 2019 +0900"
      },
      "message": "Media: Add MediaRouterManager to control media route of other apps\n\nThis CL is a draft for supporting seamless transfer\n\nMediaRouterManager is added to notify providers seamless transfer request.\n\nIt also adds MediaRouter.setControlCategories() to let application notify\ntheir control categories and filter out irrelevant routes.\n\nTest: atest mediaroutertest after installing mediarouteprovider.apk\n\nChange-Id: I7446855271d27ffaad2e82dda133bed80b9f9630\n"
    },
    {
      "commit": "465d20a7bbd72a5d5899cda01fe7030120e01f8e",
      "tree": "fdc832043640ecb7acba8af44bd38af995aedad8",
      "parents": [
        "cdc1dfd1bd005300e92e68ad03ec4e8de83806e5"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 17 12:24:14 2019 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 17 12:24:17 2019 -0600"
      },
      "message": "Fix synthetic RingtoneManager column.\n\nIt was querying a column that didn\u0027t exist internally; instead it\nneeds to fake that value for its clients.\n\nBug: 128349496\nTest: atest android.media.cts.RingtoneTest\nChange-Id: I7c3738cdb21ac5c92df55a8622b24f5c6a118154\n"
    },
    {
      "commit": "cdc1dfd1bd005300e92e68ad03ec4e8de83806e5",
      "tree": "6ddce30faa784ecbe3fc966b597ca288d489aa6c",
      "parents": [
        "9bb54f203eeae15e8f1ba9818939f66095d451d5"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 17 11:05:53 2019 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 17 11:05:56 2019 -0600"
      },
      "message": "Fix recent ExifInterface regression.\n\nIt needs to open files using absolute path, not relative path.\n\nBug: 128782519\nTest: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*\nChange-Id: I173b7b5dcb3c351b8554547e89e5441f9bdb19d1\n"
    },
    {
      "commit": "79ed2c06dda71fdcf8b2bfb914686656bdf19289",
      "tree": "d534ca64981933d3cf2762d1e3bfdbc110eef310",
      "parents": [
        "b3e900902aa5e55ae27beb587223be9af9f7890a"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Mar 17 00:33:07 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Mar 17 00:34:18 2019 -0700"
      },
      "message": "MediaDrm: remove @StringProperty/@ArrayProperty\n\nBug:32137960\nTest: build\nChange-Id: I33ce396decc8b3f5c0c36f48b7b332c713c93aad\n"
    },
    {
      "commit": "5937c6e6e0b6cb1f2df1e7fce51e7804a8a32e50",
      "tree": "b73ec2ab2132080c905ff802709766e8a9170285",
      "parents": [
        "7ccc9d7674496ec24c49f65abb4d879818bfc4ef",
        "b5f801f4584275660ceab59098ea0679de7cfd1a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 16 00:57:55 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 16 00:57:55 2019 +0000"
      },
      "message": "Merge \"Do not ignore runID in SRTTrack\""
    },
    {
      "commit": "80b1dc175b4d28e1af04218c94a63deb53eae217",
      "tree": "c9aab67ed71f62938df99ff30bb5dd10de74b945",
      "parents": [
        "ff3abed98f3d50cc49ed4ff143bfb26264d6994a",
        "37b6f2593f64f949e3f07ee2da7ab9c77025be72"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 16 00:11:17 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 16 00:11:17 2019 +0000"
      },
      "message": "Merge \"MediaPlayer: fix use after free for mMediaTimeProvider\""
    },
    {
      "commit": "b5f801f4584275660ceab59098ea0679de7cfd1a",
      "tree": "8cd2556f8b6ec02286342e4003f7431ea36b8652",
      "parents": [
        "6d9f995c8bb3018f8f42299bc7f99eea8384130b"
      ],
      "author": {
        "name": "Dariusz Budner",
        "email": "dariusz.budner@sonymobile.com",
        "time": "Fri Jan 15 19:29:03 2016 +0100"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Mar 15 14:41:43 2019 -0700"
      },
      "message": "Do not ignore runID in SRTTrack\n\nSet mRunID parameter when adding cue to the list because of\nmRunID value depends if past cues are removed from the list\nduring active cues update. Keeping past cues on the list makes\nit possible to find and set proper active cue after seeking\nbackward.\n\nBug: 68034458\nTest: play video with srt subtitle and seek\n\nChange-Id: I8439840d5925607127fadc1082913d9d91f688af\n"
    },
    {
      "commit": "68cee05fc30749a053c629173316ea2c5072f257",
      "tree": "c5bc8668b49a1c468c8fc79c7a4224c1354bc6d5",
      "parents": [
        "b7fef05bc7ec863f1dd37cc0695df7652d8e3163"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 15 13:59:06 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 15 14:01:52 2019 -0700"
      },
      "message": "MediaDrm: [Security,Hdcp]Level @deprecated javadoc\n\nBug: 127625289\nTest: build\nChange-Id: I1d5559eb8e46f7df7952daca09fdd0c0a55dc114\n"
    },
    {
      "commit": "37b6f2593f64f949e3f07ee2da7ab9c77025be72",
      "tree": "14104884a4c2ab201fd4e6257e3d002759e0c52c",
      "parents": [
        "f3d07377781d9dae8182624857aa56cc6c0cf833"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 15 11:34:15 2019 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 15 11:52:05 2019 -0700"
      },
      "message": "MediaPlayer: fix use after free for mMediaTimeProvider\n\nTest: cts\nBug: 128327073\nChange-Id: I4c9a9e3bfe27d6ec3d533a4ef8c5706d32221eed\n"
    },
    {
      "commit": "72aa96ffb26fa264083a94e96828468225f1b6a0",
      "tree": "6b5f5772bdada6ccabdffd7f6e041272c65c512a",
      "parents": [
        "2665fc079fe93a275de39f473a0c1f14d5260ec7",
        "68c12432cb257791e64442e67b46bf73ce256949"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 15 15:58:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 15 15:58:03 2019 +0000"
      },
      "message": "Merge \"MediaDrm: @Deprecate SecurityLevel \u0026 HdcpLevel\""
    },
    {
      "commit": "24f366b73fd798f78167e241e48d93cc70c7cec7",
      "tree": "532be3883b62a5d0fc0818a7286570cff66b3f80",
      "parents": [
        "8b1f97599ff8b6ade8ca58c4e5aead82064d50e5"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 15 15:16:00 2019 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 15 15:59:43 2019 +0900"
      },
      "message": "Remove SessionLink\n\nBug: 128640153\nTest: atest CtsMediaTestCases:android.media.cts.MediaSessionTest;\n      atest CtsMediaTestCases:android.media.cts.MediaControllerTest;\n      atest CtsMediaTestCases:android.media.cts.MediaBrowserTest;\n      atest CtsMediaTestCases:android.media.cts.MediaSessionManagerTest;\nChange-Id: I54a93a740c81f98d714f59e421aea8eca355392c\n"
    },
    {
      "commit": "8b1f97599ff8b6ade8ca58c4e5aead82064d50e5",
      "tree": "0565b796d909876b99a77b386c2f61e5a49ba851",
      "parents": [
        "fc0fbbb3af201499c5df7e8d7b813f336bdc2078"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Thu Mar 14 17:44:29 2019 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Mar 15 15:06:37 2019 +0900"
      },
      "message": "Remove ControllerLink\n\nBug: 128591619\nTest: atest CtsMediaTestCases:android.media.cts.MediaSessionTest;\n      atest CtsMediaTestCases:android.media.cts.MediaControllerTest;\n      atest CtsMediaTestCases:android.media.cts.MediaBrowserTest;\n      atest CtsMediaTestCases:android.media.cts.MediaSessionManagerTest;\nChange-Id: I83a1795e1b1e2c0203c20451d943547ec91bc55b\n"
    },
    {
      "commit": "bd3e21904681ae80c65369613aca2fb95be480a1",
      "tree": "957cc5af4d69c62c96cf7af1d159f9cc7b452eaf",
      "parents": [
        "5f2b3dedc7d3e6448443ed919ab8f3ed88e6b9b9",
        "1464e4438558e27a3880caa9b362d0ffb1f48d58"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 15 00:41:20 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 15 00:41:20 2019 +0000"
      },
      "message": "Merge \"SubtitleData: fix doc\""
    }
  ],
  "next": "ee658bc3e4f5be7db684b9c3224f3dc997e9d821"
}
