)]}'
{
  "log": [
    {
      "commit": "210451e595dc955124b8926cdb2abf86aae0f22c",
      "tree": "3a843ca2b27a095a9b4385400c6855040a576d62",
      "parents": [
        "44be1730bb46f706efed1014ef9a2f3403406b49"
      ],
      "author": {
        "name": "Anubhav Phukan",
        "email": "anubhavp@codeaurora.org",
        "time": "Fri Jul 28 13:05:31 2017 +0530"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 11 14:39:48 2018 -0700"
      },
      "message": "media: Print stats when application stops playback\n\nCurrently,  stats are printed only when clip reaches EOS. If\nThe app stops by calling reset(), stats are not printed. To\nget the stats in such scenarios, we need to dump the stats in\nthe reset() method.\n\nBug: 64121714\nChange-Id: If064b8391ed01a6605791625ddead4fdef50aa1d\n"
    },
    {
      "commit": "355b2bb6b32c5ca2a7a61f91f947e4f339ce520d",
      "tree": "ef12c8254a2bce3ced92da7bd7dcb487403010c7",
      "parents": [
        "4354cf89469067ef9a264d67b4bfef35213fa60a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Apr 09 16:36:23 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Apr 10 17:17:44 2018 -0700"
      },
      "message": "NuPlayer: add more logging to debug offload teardown.\n\nTest: CTS tests\nBug: 73561958\nChange-Id: I3a10b7ff98853119e105f89ec624d2732630c409\n"
    },
    {
      "commit": "0967c6c06d030636e2c584ce3e24924357a3a854",
      "tree": "9614233f9011d7645c95a1b84b610aa609845fe3",
      "parents": [
        "2383098d54b6503875bdf0c6b649fa66f22d79ac",
        "1d3556d6a068f141ac390a04f6a9d92a70f8d7ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 05 19:36:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 19:36:31 2018 +0000"
      },
      "message": "Merge \"AudioTrack: Prevent server from reading client data after stop\" into pi-dev"
    },
    {
      "commit": "1d3556d6a068f141ac390a04f6a9d92a70f8d7ed",
      "tree": "e89b4aa887013efbc8227dcf4c56addf4ab284b9",
      "parents": [
        "1f03085b596f185d91ccae11b7c0d9f0bc8cd206"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 29 16:30:14 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 02 14:19:24 2018 -0700"
      },
      "message": "AudioTrack: Prevent server from reading client data after stop\n\nPrior to this CL, if an AudioTrack client wrote audio data after\nAudioTrack stop(), but before the track was drained by the server,\nthe newly written client data would be consumed in the drain.\n\nWe now limit the server read to the client write position on stop.\nThis interlocking is essential for rapid asynchronous AudioTrack\ncommand processing.\n\nTest: AudioTrack CTS, SoundPool looping, bug test case\nBug: 75788313\nChange-Id: Ib70e3dc46afe047a8c6cf1fb906a618b3c66cc7f\n"
    },
    {
      "commit": "47afe0a1a6f37e7807a81acb21ef588aec0a3518",
      "tree": "7c599aacfa404d393b669e8b68abfe44ea735721",
      "parents": [
        "6dc6d938c33db5ef1f5d17779040bf3c7dd25d3f"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Mar 27 15:15:30 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Mar 28 17:05:20 2018 -0700"
      },
      "message": "Add OnMediaTimeDiscontinuity notification\n\nTest: MediaPlayerTest\nBug: 63934228\nChange-Id: I7efb58d00dc86b17b9d97775d1a2672e40e841d3\n"
    },
    {
      "commit": "35cc20b52fdc551b5b0ed1fc32803a56d82e8881",
      "tree": "543ac71490ea72be6b8038fd2b9e7bbd55e8e20d",
      "parents": [
        "ecff3f95aece364d5b35600c6cfda1b04af52a7c"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Feb 22 11:16:23 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Mar 09 16:45:28 2018 +0000"
      },
      "message": "Additional media.metrics for media recorder\n\ncapture the output mime times (audio + video)\ncapture duration recorded\ncapture info about how the \u0027pause\u0027 capability is used [duration + count]\n\nBug: 73774549\nTest: manual recordings w\u0026w/o pauses\nChange-Id: Iae3d95984a97babb52afdbbb09872e44dd869573\n(cherry picked from commit 6145803cf8ad2b657d52348dbfbcebf031b49d3d)\n"
    },
    {
      "commit": "174e1094a41828111c86793232d9492ab8e29395",
      "tree": "5953220a17f0194dc236c61a720a155db6401bb4",
      "parents": [
        "9f0cfbc8e914c414b227fd174e4f205ecf95353d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 23 15:14:50 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 06 11:30:49 2018 -0800"
      },
      "message": "Audio V4: *CNT and *MAX are no longer part of the enum\n\naudio.h used to have *_CNT and *_MAX values in its enum\nmostly for enum iteration.\n\nThis was not compatible with Treble as it denied any enum\ninheritance.\n\n*_CNT and *_MAX are now implemented with macro that can\nbe updated and are not part of the API.\n\nBug: 38184704\nTest: Compile\nChange-Id: I3921fdf3435ba114ca77a4595ba8fc97a5e0438d\nMerged-In: I3921fdf3435ba114ca77a4595ba8fc97a5e0438d\nCherry-picked from master\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "d83d4f4a43616f38217591ba2d3f10d77fd4e748",
      "tree": "8c4c462635c15290a3436b01dc2614caade4ff84",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sat Feb 24 19:02:46 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Mar 05 20:36:13 2018 +0000"
      },
      "message": "NdkMediaExtractor: per-sample format metadata API\n\nBug: 63934228\nTest: MediaPlayer2Test\nChange-Id: I8ac081ba91152b1bb2e7bb61bf6977f90bcb8e3c\n"
    },
    {
      "commit": "7c9123d1bc697dc0496374908281b7a76914574a",
      "tree": "5cfe914cb04a18b9bb9564595c15519e3deeab52",
      "parents": [
        "baea52472c0e8b1dd2f63b2c39539fd477552abd",
        "a1d39ba72fd92df6b447939b1bbede5c56df17e6"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Mar 02 04:46:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 04:46:55 2018 +0000"
      },
      "message": "Merge \"Revert \"NdkMediaExtractor: per-sample format metadata API\"\""
    },
    {
      "commit": "a1d39ba72fd92df6b447939b1bbede5c56df17e6",
      "tree": "54fff7206b48bd7123929128a4fc1e2b1d0a44d4",
      "parents": [
        "062ffd042fcbd237f445d499bc8ea8c5baf61d98"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Mar 02 04:33:02 2018 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Mar 02 04:33:02 2018 +0000"
      },
      "message": "Revert \"NdkMediaExtractor: per-sample format metadata API\"\n\nThis reverts commit 062ffd042fcbd237f445d499bc8ea8c5baf61d98.\n\nBug: 63934228\nBug: 74089496\n\nReason for revert: original change bypassed presubmit, causing mediaextractor crash, \n\nChange-Id: Iac4c49659dfa7415908d60da98a2285c583a1196\n"
    },
    {
      "commit": "ca791b98577f2843c9fe8bc7ed28aadf02fb255c",
      "tree": "b95cfa1ec40d713a937b0105bb48e38141d5dc82",
      "parents": [
        "b66d56699b899ebc19d662abb0b1a3dbc3736e22",
        "062ffd042fcbd237f445d499bc8ea8c5baf61d98"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Mar 01 23:51:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 23:51:40 2018 +0000"
      },
      "message": "Merge \"NdkMediaExtractor: per-sample format metadata API\""
    },
    {
      "commit": "062ffd042fcbd237f445d499bc8ea8c5baf61d98",
      "tree": "689681687a4f67f44b6532a904718eb984919c25",
      "parents": [
        "006b7eebe4c86eba7a67471d99b061b6b76177f5"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sat Feb 24 19:02:46 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Mar 01 14:11:11 2018 -0800"
      },
      "message": "NdkMediaExtractor: per-sample format metadata API\n\nBug: 63934228\nTest: MediaPlayer2Test\nChange-Id: I3e6dc40d39bcb6d939ef7c555c2373995a9b6ae4\n"
    },
    {
      "commit": "9b887324b8c3f86f012915a6f637081b158a221b",
      "tree": "6cd32e39ff1d679900044598bbc84bafc0cf461c",
      "parents": [
        "8954d94d24e9078672b952bd29e0bb5e651c9aba",
        "eda325241ec3bca25e828b24538c7640efd7e24e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 18:50:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 18:50:59 2018 +0000"
      },
      "message": "Merge \"better playback time tracking in nuplayer\""
    },
    {
      "commit": "eda325241ec3bca25e828b24538c7640efd7e24e",
      "tree": "d8e98beab89a580fbf8df33f26212f2c80ec0c28",
      "parents": [
        "bb4bbb08398548e29e6804c5cc674b340830f719"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Feb 28 12:08:28 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Feb 28 12:08:28 2018 -0800"
      },
      "message": "better playback time tracking in nuplayer\n\nFixes problem where playback time was being cleared as part of\na reset before media.metrics stats were logged.\nAdded code so that getMetrics() calls will return proper in-progress\nplayback time (previously, playback time was added to the metrics data\nonly at the end).\nAdded initialization of timestamp tracking pauses for rebuffering.\n\nBug: 74008613\nTest: dumpsys media.metrics observation\n"
    },
    {
      "commit": "4f8f900d3cb8ee117980705ac5df250f9df63bfc",
      "tree": "9cb144737b86c91e2053293b611589ec79946af0",
      "parents": [
        "547921396126d2e5e6387a04bc971e616250574b",
        "7d2c6e8be2c9a4f3c1364d243856a345f17f851e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 27 22:02:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 27 22:02:33 2018 +0000"
      },
      "message": "Merge \"Move mediadrm-related headers\""
    },
    {
      "commit": "c2c0aabfef24cbf48cdf6755f8627386971abdd3",
      "tree": "9ae9ca31e811a59e6530f362f6bac9f324a30209",
      "parents": [
        "4c96b75c87bc3f8dd2da7f76b08a81333b43ce22",
        "6969da62b068aff2aee650d57590532f8fc8de69"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 26 23:30:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 23:30:00 2018 +0000"
      },
      "message": "Merge \"Revert \"Remove IDataSource dependency from DataSource.\"\""
    },
    {
      "commit": "3d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0",
      "tree": "4e73f99782f61c1d3d76767b9e03e2aae7ea6130",
      "parents": [
        "13cb23855c3b5242818725262d8822dd4f9be24e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 16 08:24:08 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 23 10:04:34 2018 -0800"
      },
      "message": "Remove RefBase from the extractor API\n\n- Add MetaDataBase base class that MetaData derives from, but which\n  does not derive from RefBase.\n- MediaBuffer::meta_data() now returns a MetaDataBase\u0026 rather than an\n  sp\u003cMetaData\u003e\n- Rename MediaSourceBase to MediaTrack.\n- MediaSource no longer derives from MediaSourceBase (or MediaTrack)\n- MediaTrack::getFormat(), MediaExtractor::getTrackMetaData() and\n  MediaExtractor::getMetaData() all take a MetaDataBase\u0026 parameter that\n  they fill out, rather than returning a MetaData directly (the\n  corresponding methods on MediaSource and RemoteMediaExtractor continue\n  to return MetaData)\n\nBug: 67908544\nTest: CTS MediaPlayerTest, DecoderTest, EncodeDecodeTest, manually record video\n\nChange-Id: Ib531ab309061290be33d40d6100c9a8127e22083\n"
    },
    {
      "commit": "7d2c6e8be2c9a4f3c1364d243856a345f17f851e",
      "tree": "3aab41fe8acce7056a1e7b01ebc2e8882e416b9a",
      "parents": [
        "987ac7056040ed1594dc975c8a9d7cee463fa834"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 16:14:59 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 17:04:00 2018 -0800"
      },
      "message": "Move mediadrm-related headers\n\nRelocate drm and crypto headers from media\nto mediadrm to have finer grained ownership\n\nbug:73556221\nChange-Id: I7d1b5944f261f9b1fdeed7605e4c0b4b4ca43e1a\n"
    },
    {
      "commit": "1889c3edad32995c0cf26ae2248fe7c957b7ec84",
      "tree": "5a4bd7fec36d039f75d04124b46d6295ac65e200",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Feb 01 13:44:57 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 23:59:34 2018 -0800"
      },
      "message": "Add MediaBufferBase and use it in MediaSource and MediaBufferGroup.\n\nMediaBuffer class exposes internal classes, ABuffer and IMemory, which\nwe don\u0027t want to expose to plugins. This change introduces\nMediaBufferBase which does not expose any classes from system library.\n\nTest: build and post-submit media cts tests\nBug: 67908556\nChange-Id: Ic9ee239caf9b84b2b3740e2d533257afa25c8784\n"
    },
    {
      "commit": "6969da62b068aff2aee650d57590532f8fc8de69",
      "tree": "129cd94c2c16f00fa845abd2b12892acab0cdb84",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 20:55:14 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 23:26:00 2018 -0800"
      },
      "message": "Revert \"Remove IDataSource dependency from DataSource.\"\n\nThis reverts commit 514674257ef6954a7479ac93a26a07061f54462d.\n\nThe original change Iaba6d9be is no longer needed since we\nseparated out DataSourceBase from DataSource. Now, DataSource\nmay have a method relying on a class from libmedia, IDataSource.\n\nTest: checked the correct wrapping path with \u0027dumpsys media.extractor\u0027\nBug: 72869975\n\nChange-Id: Ib0d5ca863fa70a4a96f97b3377c209e1f288f443\n"
    },
    {
      "commit": "c84dc0762ef685b6ccd698c027a987218f09af28",
      "tree": "9c8e40eb55d5ea7ecde4928aa154beeadc7626bd",
      "parents": [
        "e307dc4e7b2c9d3c4018a755db687309cf590369"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 20:03:39 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 20:03:39 2018 -0800"
      },
      "message": "Fix build error in topic fix_set_security_level\n\nChange-Id: I199713a577422e23c922aa31860daa93bec6a3c1\nrelated-to-bug:3565352\n"
    },
    {
      "commit": "7a498a96c082fd6baee468261128e9f0080ef2df",
      "tree": "1cf4a24c90a8a16eca9e2fc973e86ea589aac297",
      "parents": [
        "97df29e2b9c6df88fae9c14daa8e21c9ce5d45bf",
        "dd9010c7151e8224e46e5700f71c210a0df39f93"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Feb 09 10:07:52 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 09 10:07:52 2018 +0000"
      },
      "message": "Merge \"Refactor MediaPlayerBase\u0027s notify\" into oc-dev am: 01970bf6fb am: 5c7f325b00 am: d7baca3dbb\nam: dd9010c715\n\nChange-Id: I811b366fda6b63301a543d11f63c555ce489a5cd\n"
    },
    {
      "commit": "d7baca3dbb2a7beb040c89482f103d12e9b6a38e",
      "tree": "e882b54d9af3581e3b8328a20b65323b163b75eb",
      "parents": [
        "ef977699de69f6d8f016cc98cf2fcadbb9632a18",
        "5c7f325b007088741da1b7d505615d0254786ce6"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Feb 09 09:56:00 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 09 09:56:00 2018 +0000"
      },
      "message": "Merge \"Refactor MediaPlayerBase\u0027s notify\" into oc-dev am: 01970bf6fb\nam: 5c7f325b00\n\nChange-Id: Iacf293765dea6571e2ae1882babdf53c2a746214\n"
    },
    {
      "commit": "5c7f325b007088741da1b7d505615d0254786ce6",
      "tree": "6d0c9a84751be23df2a026f159fce57753ab17ac",
      "parents": [
        "8347d50e63d8f92bbad06a844b744c4a376e16f7",
        "01970bf6fb6ddb58e10fc9bea659f90aee74148a"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Feb 09 09:50:29 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 09 09:50:29 2018 +0000"
      },
      "message": "Merge \"Refactor MediaPlayerBase\u0027s notify\" into oc-dev\nam: 01970bf6fb\n\nChange-Id: I2bf9b28a046a1415c5e087129c73006206c0e54f\n"
    },
    {
      "commit": "de15b8c160c720c48b93796016801e7ae0b6bd2d",
      "tree": "49044f23ead7f0dca058f477f5b1365a16a6e144",
      "parents": [
        "a2544c5431224995ade19611642d2b534939fb14"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Jan 30 16:35:56 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Feb 07 11:55:19 2018 -0800"
      },
      "message": "link media.metrics native strings to api-controlled java strings\n\nadd comments to native media.metrics code pointing to how they\nare (and aren\u0027t) to be kept in synch with their java counterparts\nthat are part of the public API (and therefore pretty much fixed).\n\nBug: 72492234\nTest: compilation\nChange-Id: Ic096545a5cdfb2160c6b66438d345d8e625384b9\n"
    },
    {
      "commit": "54f957b1d0ee1050218bb1f7569afa1d0b5cae91",
      "tree": "b272648e6c226de46e49458c442800ea13a733a6",
      "parents": [
        "839daf18d567c0cd5982ba7baf4c433d55e875a5",
        "609850df59219845a8c4ebe18a2687447ea570cc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 01 07:52:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 07:52:55 2018 +0000"
      },
      "message": "Merge \"Support query active microphones in MediaRecorder.\""
    },
    {
      "commit": "92d23b433bd770c22c2d4a30b573602f5565de1b",
      "tree": "e2ff902f2be5d131e8a1cd4af09868d3a5af2794",
      "parents": [
        "3923b1b71628e668f9b11ed4891ed2840dd331cd"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 29 12:10:30 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 29 14:38:27 2018 -0800"
      },
      "message": "Remove finalized concept from media.metrics\n\nthe \u0027finalized\u0027 concept didn\u0027t pan out -- remove references to it.\nSimplifies the code flow.\nAlso purged some uses of generateSessionID().\n\nBug: 71874686\nTest: logcat/dumpsys\nChange-Id: I39e48526a5696158d8195f47154881ca6ecda266\n"
    },
    {
      "commit": "609850df59219845a8c4ebe18a2687447ea570cc",
      "tree": "909d46e051bb0569796992c9ffa15b86b7fe98ac",
      "parents": [
        "653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Jan 23 10:56:49 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 26 17:51:56 2018 -0800"
      },
      "message": "Support query active microphones in MediaRecorder.\n\nThis is part of device enumeration. With the new add API, developer\ncould get the active microphones information for each channel.\n\nBug: 64038649\nTest: Run cts and check the print log.\nChange-Id: I01941d8d1ca0f49d0af48210ef8b1149de31676a\n"
    },
    {
      "commit": "49ce671c4efa4c5d038351ca441e34c5afa5241f",
      "tree": "f269ef96d9f6dbcb169e29accb4f9f1f54830e3e",
      "parents": [
        "d21fb560b26be64a588ff96979022ae4d52f5d3a"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 24 10:16:25 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Jan 26 08:48:56 2018 -0800"
      },
      "message": "Remove unused includes and forward declarations in libmediaextractor/include\n\nTest: make checkbuild\nBug: 67908556\nChange-Id: If840305af5c043bb8014590eb208cf11c99e61ee\n"
    },
    {
      "commit": "bc8f53b8c1c220d9ce01526b6e3834f14af98ed5",
      "tree": "0742ac2262f28acb9c827f5ad96fae12f13fb354",
      "parents": [
        "de9a7b5caa3cd8b59630b2bc13e1cb4420618940"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 17:01:44 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 18:11:38 2018 -0800"
      },
      "message": "Revert \"Revert \"Move MediaBufferXXX from foundation to libmediaextractor\"\"\n\nThis reverts commit 95a8bfab98a73a75eb60ecf2cc8683f4a1f04b35.\nPlus, keeps \u0027virtual\u0027 keyword for ~MediaBuffer which has a child class.\n\nTest: cts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg\nCtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice\nBug: 67908542\nChange-Id: Ib94d574d6bbd6245c174dd1c9bcca379015724cc\n"
    },
    {
      "commit": "4b780702948d19caef60617666c69b6d7f64aa29",
      "tree": "a92a9693b7b424dc973c3d541d7739d26aa14a18",
      "parents": [
        "047b5872d4278ee0426db3ba78d0f3fefabaaabd"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 11:21:26 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 25 11:34:48 2018 -0800"
      },
      "message": "Revert \"Move MediaBufferXXX from foundation to libmediaextractor\"\n\nThis reverts commit f03606d9034730bea1a394e6803f9ebc36f3d2eb.\n\nTest: build and plays the file attached in the bug.\nBug: 72479511\nChange-Id: Ifdb8225a7140480649cecd52668ac7dcdd489252\n"
    },
    {
      "commit": "f03606d9034730bea1a394e6803f9ebc36f3d2eb",
      "tree": "839c704657518a5442389de9bc7a9c0f719be242",
      "parents": [
        "ae73ce1d0338e0ae3054b9c2458836f6bf4a88fe"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jan 23 15:38:53 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jan 23 19:03:54 2018 -0800"
      },
      "message": "Move MediaBufferXXX from foundation to libmediaextractor\n\nRemoved MediaBufferBase in favor of MediaBufferHolder\nwhich contains a MediaBuffer inside. Instead of set/getMediaBufferBase,\nnow it set/finds MediaBufferHolder in ABuffer-\u003emeta().\n\nTest: build. pass MediaPlayerDrmTest and EncodeDecodeTest.\nBug: 67908542\nChange-Id: Icb4f7ac350a7876f5e4596bae8be2a9e95956c2f\n"
    },
    {
      "commit": "0b466551491988f38394a66135cee19ab13b8479",
      "tree": "69a17f0d4e73bcde917452c2f4c34ccf5e7262f3",
      "parents": [
        "0726a4e4086dc6b6c44b90a775a8ded96cc80c31",
        "15d02f84351eaca14099bde11cfbf6f124bea71f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 20 02:06:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 20 02:06:37 2017 +0000"
      },
      "message": "Merge \"Define constants in IStreamListener in MediaKeys.h\""
    },
    {
      "commit": "307f6056aea8f2ec98e7451742e307d2fc7acb35",
      "tree": "0294f9425f56017a241eeeaba4ea540e396473e5",
      "parents": [
        "3d2c309be468a0a66fad3a6dd35525bf059a35ac"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Nov 22 11:53:48 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Dec 19 14:17:12 2017 +0900"
      },
      "message": "Remove unused MediaSource::setBuffers\n\nOriginally added with Ie03b285265099db, but the use case was gone with\nOMXCodec.\n\nTest: make checkbuild\nBug: 67908542\nChange-Id: I6c4953126ab80f876a6dca258e112bb2eaee440d\n"
    },
    {
      "commit": "15d02f84351eaca14099bde11cfbf6f124bea71f",
      "tree": "0d867f26034186e29b8271391ad6a1baf3516fdb",
      "parents": [
        "2a8dbc7611d3861d696c167ebdced50158bbebe1"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Dec 14 16:32:18 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Dec 19 01:26:18 2017 +0000"
      },
      "message": "Define constants in IStreamListener in MediaKeys.h\n\nCurrently, constants in IStreamSource are being used in ATSParser while\nthey are separate entities. This defines those constants in MediaKeys.h\nso that ATSParser can be used without depending on IStreamSource.\n\nThis removes libmedia dependency from libmpeg2extractor.\n\nTest: build.\nBug: 67908537\nChange-Id: I503a4cdb530825b1932463efae999d120b839e56\n"
    },
    {
      "commit": "082e4f75a383f957a6ed9186ca0692b694e1ce45",
      "tree": "a336d965809441cc46c928b186dcb29464f64be8",
      "parents": [
        "028cf0973f928503e89124c3f6493a5226826ed9"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Sun Dec 17 02:31:18 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Sun Dec 17 02:51:06 2017 -0800"
      },
      "message": "Refactor MediaPlayerBase\u0027s notify\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nBug: 70546581\nChange-Id: Ia3a8eb99c2faf6935c63800ba08f65970cede48e\n"
    },
    {
      "commit": "51f4c87119e8c09396411f32cc82db3fd62e19e7",
      "tree": "ce6a1df2e5da46a76d0f02670f68fb94adfbf16c",
      "parents": [
        "2a8dbc7611d3861d696c167ebdced50158bbebe1"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Dec 15 12:27:56 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Dec 15 14:58:18 2017 -0800"
      },
      "message": "nuplayer/2 emit state name, not number\n\naugment both nuplayer and nuplayer2 so that the state information\nthey emit to media metrics for error exits is symbolic, not numeric.\n\nBug: 70525617\nTest: manual\nChange-Id: Ie43266cd75810ff4ea6e00f32a1666dc9a5a37dc\n"
    },
    {
      "commit": "ede9ead9e79adece54bc1ccee4405f722927d931",
      "tree": "df15748f0e995f4b26d8ffa4dbdbd077b3587315",
      "parents": [
        "ada6dd9ae523818374ec4138f5e4454a8eb7deac",
        "45ff66df1b3c9909faab0fb9d364f6a1257fe6fd"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Dec 14 23:54:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 14 23:54:00 2017 +0000"
      },
      "message": "Prevent MediaPlayerService::Client\u0027s use-after-free am: 028cf0973f\nam: 45ff66df1b\n\nChange-Id: I59170b5482e31d81739dc4db9bf5622a08a0e9d9\n"
    },
    {
      "commit": "45ff66df1b3c9909faab0fb9d364f6a1257fe6fd",
      "tree": "23a805a202da2dd39084d7b4a7fed7cbfd3ce4fc",
      "parents": [
        "e4f5e4f946695e132fd1735ef05faaa6085a63ff",
        "028cf0973f928503e89124c3f6493a5226826ed9"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Dec 14 23:49:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 14 23:49:17 2017 +0000"
      },
      "message": "Prevent MediaPlayerService::Client\u0027s use-after-free\nam: 028cf0973f\n\nChange-Id: Ifb469a4173a8f650715ceb5fed174c0c4ce6c4ba\n"
    },
    {
      "commit": "586073e21ba7711d52f763006b7e6cdec012dc5c",
      "tree": "e2e758912259a0246d9c4bea222130fa6efdf93a",
      "parents": [
        "599660ea6a581eda4b2f62caf7b086814f2b2ba3",
        "c6e9f6ebdf3b784b2c6b8daaccacd4ec833ec4f5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 14 21:52:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 21:52:26 2017 +0000"
      },
      "message": "Merge \"Count all nuplayer frames\""
    },
    {
      "commit": "028cf0973f928503e89124c3f6493a5226826ed9",
      "tree": "d726b12d56f9b32a7fc29667c0be3c3e558cae7c",
      "parents": [
        "97eb375c515ab9cf7ad8e23b678b32f279059139"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 12 01:56:40 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Dec 14 16:29:26 2017 +0000"
      },
      "message": "Prevent MediaPlayerService::Client\u0027s use-after-free\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nBug: 70546581\nMerged-In: Ia142a7735c6685eb67b2c00917c0ed5ea7e0da9e\nChange-Id: Ia142a7735c6685eb67b2c00917c0ed5ea7e0da9e\n(cherry picked from commit d27ad6bae3215db0ed174f5f036339c9515fbba7)\n"
    },
    {
      "commit": "d8e1a06174cea4ceece3cb82923c9318d69c7139",
      "tree": "ed733ebe49afe287d00350b80a46353085ad238c",
      "parents": [
        "c6696cc07c039ed74d2adacb94a6bebdba4eda70",
        "514674257ef6954a7479ac93a26a07061f54462d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 14 01:30:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 01:30:45 2017 +0000"
      },
      "message": "Merge \"Remove IDataSource dependency from DataSource.\""
    },
    {
      "commit": "514674257ef6954a7479ac93a26a07061f54462d",
      "tree": "f39d7a94eb112b03d0229f50c35cb71cf22d5f4d",
      "parents": [
        "bc3ebbfa92364d635fa879b901ef83070820e8c0"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Dec 08 06:07:16 2017 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Dec 13 15:26:05 2017 -0800"
      },
      "message": "Remove IDataSource dependency from DataSource.\n\nThe logic for requesting file data source to media extractor service\nmoved to MediaExtractorFactory from GenericSource.\n\nBug: 65851881, Bug: 63934228\nTest: MediaCts post commit tests\nChange-Id: Iaba6d9bec560f0cd8a826f47d74bf491a34c83e9\n"
    },
    {
      "commit": "d27ad6bae3215db0ed174f5f036339c9515fbba7",
      "tree": "1322a7c128be6fee21ecf194723cd115f04c4923",
      "parents": [
        "5096385d0e5c102a7297d53aeb693402f304f5af"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 12 01:56:40 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Dec 13 04:39:05 2017 -0800"
      },
      "message": "Prevent MediaPlayerService::Client\u0027s use-after-free\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nBug: 70546581\nChange-Id: Ia142a7735c6685eb67b2c00917c0ed5ea7e0da9e\n"
    },
    {
      "commit": "c6e9f6ebdf3b784b2c6b8daaccacd4ec833ec4f5",
      "tree": "215d281d5e3cc64bee02f61067cebb191b432b82",
      "parents": [
        "44804b4c684b4b870cf0df1e7ace11a152eeec19"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Dec 07 16:57:36 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Dec 07 16:57:36 2017 -0800"
      },
      "message": "Count all nuplayer frames\n\nnuplayer counts frames: both total and dropped. One path during\nintentional skipping counted those frames as dropped, but not as\npart of the total. This moves the accumulation of total frames up\nto a point where it will also include these intentionally\nskipped/dropped frames.\n\nBug: 70297008\nTest: manual\n"
    },
    {
      "commit": "fec2f93fae282ad10bbb5e3fcce9f60eff2cfb48",
      "tree": "3c2dc6668d62b13c4fe5e53bb0a4e821f8cf8a6d",
      "parents": [
        "b6549b6297c7f6dcbd2c0b27b61407cde144530c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 24 10:10:53 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 28 17:44:09 2017 -0800"
      },
      "message": "Add AudioRouting interface in AudioRecorder.\n\nBug: 64038649\nTest: Run cts in RoutingTest\n      Switching input device when using MediaRecorder\n\nChange-Id: I53f22974f8c3dacaef6044ea742e62951961c1fd\n"
    },
    {
      "commit": "58e0f7a3b65d4e107e32e7d15a1af6410446fcf5",
      "tree": "68c89afea8470166d95093c2dde9ecf78b34211e",
      "parents": [
        "6b0e0f0299748dad99dfb5f65c7203bef1abb757"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Nov 21 10:59:38 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Nov 21 10:59:38 2017 -0800"
      },
      "message": "Track rebuffering time in nuplayer\n\ntrack the time the player spends rebuffering content so that it\ncan be logged through media.metrics for later analysis. records\ntime rebuffering, number of rebuffering events, and whether player\nwas rebuffering at exit time (e.g. did user get impatient and quit)\n\nBug: 69616719\nTest: playback on deliberately lossy network\n"
    },
    {
      "commit": "8df81580634ea8ca563a6689c295962fd75c8310",
      "tree": "db206ab98a378023eca13762007c101de2343081",
      "parents": [
        "e5a1a62ec0a9ee0d3856fd8d99a7eccd8ae36221",
        "161b64fc1c9ee03d32b3bd634be950fac5ad6ed8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 23:20:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 23:20:07 2017 +0000"
      },
      "message": "Merge \"Cache routed device in case returning null when switching device.\""
    },
    {
      "commit": "161b64fc1c9ee03d32b3bd634be950fac5ad6ed8",
      "tree": "d04f2f4d842a5309716bf8993c1d897feb6d4395",
      "parents": [
        "45145a39251970da167ff6cd31817673820fc134"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Nov 17 09:31:48 2017 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Nov 17 09:31:48 2017 -0800"
      },
      "message": "Cache routed device in case returning null when switching device.\n\nBug: 69366408\nTest: runtest --path cts/tests/tests/media/src/android/media/cts/RoutingTest.java\nChange-Id: I270fe60abdf22eada927bf0c5fc594de294c8428\n"
    },
    {
      "commit": "e7b894297aebc24939ddfa632ea3dd2d405d9f93",
      "tree": "9ecbc48782ee462413281ecdf7f5b6b276e96eee",
      "parents": [
        "068fe16a1b8f511046ba787f33605c0ac64f1ab5"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 19:33:39 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:32:11 2017 -0800"
      },
      "message": "Remove dependency on non-Treble OMX\n\nThis essentially reverts commit ba40190c5e8d9bfe5b814984c6861809fea064bd,\nwhich was made originally for b/69110957.\n\nThe change in addition to reverting is the reordering of calls in\nmain_codecservice.cpp. This CL makes the call to SetUpMinijail() come\nbefore the call to ProcessState::self()-\u003estartThreadPool().\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 67990472\nChange-Id: Ic62acf3ae1aa3f9249e5c3ce542fb4f95689704e\n"
    },
    {
      "commit": "068fe16a1b8f511046ba787f33605c0ac64f1ab5",
      "tree": "8012260051c564bb5cfc4b24d94bcbef28cf410c",
      "parents": [
        "2b1f16f57c984c9b4b320788fdb2733c519281e8",
        "ba40190c5e8d9bfe5b814984c6861809fea064bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 01:54:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 01:54:48 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\"\""
    },
    {
      "commit": "ba40190c5e8d9bfe5b814984c6861809fea064bd",
      "tree": "f935c1e123522e1624163278a8b8564c71c9a394",
      "parents": [
        "77a5b891eb2c64246c82d695aac40c5312f0ff3e"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 15:38:46 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:57:36 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\"\n\nThis reverts commit 620e4667dc41e17e365615fda4507fa9f7267ca0, which was\nmade originally for b/67990472.\n\nBug: 69110957\n"
    },
    {
      "commit": "e0ce8445a111156fcbf8cb77f928a38d0abc8ac3",
      "tree": "4ea405e9db24b766b562467cfa379089ab742699",
      "parents": [
        "7c66f8e5b4347d7597c2ecba9a3c391ff8c81660",
        "c899fc0738e738fe8bce5c1949cdc93da27c44de"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 16 18:49:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 16 18:49:25 2017 +0000"
      },
      "message": "Merge \"GenericSource: perform seekTo on own looper\""
    },
    {
      "commit": "c899fc0738e738fe8bce5c1949cdc93da27c44de",
      "tree": "927ed9be1f3851932476e23d3fcfc8753db8156b",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 15 17:28:53 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 15 18:04:29 2017 -0800"
      },
      "message": "GenericSource: perform seekTo on own looper\n\nTest: pass Media continuous CTS tests\nBug: 69328257\nBug: 66952371\nChange-Id: Ia02abbf7a19a01cb6d6051ef9f2461679852dd56\n"
    },
    {
      "commit": "68f1d2842541f043ca318b01690a7cdb41b1df78",
      "tree": "1f9ff368cbfa15e7da447b66322b23a3289e7446",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486",
        "0d98c1809f2f763be0b68ffb1daff916d5ed0bb2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 14 21:10:24 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 14 21:10:24 2017 +0000"
      },
      "message": "Merge \"Improve tracking of \u0027playing time\u0027 metrics\""
    },
    {
      "commit": "9bb3803a80a680ea7a3bc11e07b8a89ccddee003",
      "tree": "1ad46a98f44bd2c487678c05825c374cca92b338",
      "parents": [
        "63ca96305e389e4504ab8d89111dc8719d00161f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Mar 23 18:00:38 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sun Nov 12 14:32:02 2017 -0800"
      },
      "message": "BufferingSettings: simplify buffering control.\n\nNow only 2 marks, initialMarkMs and resumPlaybackMarkMs, remain.\nTest: pass cts tests\nBug: 36280094\nChange-Id: I03c8e2a0db9f7e845f57e76f51874cd8715a48d4\n"
    },
    {
      "commit": "4201c1c4fd0287e95d4b7cac34d9d0d44ea32737",
      "tree": "59507ed1dace9a3586e88b5a6af2e2a77b54c25f",
      "parents": [
        "4311dcd79aba460ba26fba11a03b43b8d3818281",
        "67744bd64a12d95f30925724f490074e63f81d7e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 10 21:17:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 21:17:34 2017 +0000"
      },
      "message": "Merge \"GenericSource: release mLock when operation might take long time.\""
    },
    {
      "commit": "67744bd64a12d95f30925724f490074e63f81d7e",
      "tree": "e6a29a8896509cca9aa2920a01dd98d304b4df31",
      "parents": [
        "dd97f52b3969ee8d6fb611e045ada26037e44e27"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 10 11:27:04 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 10 11:27:04 2017 -0800"
      },
      "message": "GenericSource: release mLock when operation might take long time.\n\nThis allows disconnect() to be done quickly in order to not block\nreset() in mediaplayer.\nTest: pass android.media.cts.MediaPlayerFlakyNetworkTest\nBug: 68954085\n\nChange-Id: I3ebfef66098066f2169d9946c417fe530cc1fa1b\n"
    },
    {
      "commit": "0d98c1809f2f763be0b68ffb1daff916d5ed0bb2",
      "tree": "155f499e5c019f931eb9bd90f25fad3132a4cd07",
      "parents": [
        "dd97f52b3969ee8d6fb611e045ada26037e44e27"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Nov 09 13:42:42 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Nov 09 13:42:42 2017 -0800"
      },
      "message": "Improve tracking of \u0027playing time\u0027 metrics\n\nSome field records sometimes showed non-zero frames played, but zero\nplayback time; a combination that should not be possible. Tracked to\nalternate exit conditions that didn\u0027t go through the existing \u0027update\nthe stat here\u0027.  Now managing time at some other identified possible\npaths for playback exit.\n\nBug: 68273679\nTest: manual video playback\nChange-Id: I196120c49ec92d2e30d53a6e9eed9c60f1b8f2a7\n"
    },
    {
      "commit": "25a0160e3dfa126266cbe5d8e05c003798276a70",
      "tree": "7ac92c9e53ad197b928304ab34c9371a77468ce4",
      "parents": [
        "94d28be1805800764701225fcae696aa11dab93e",
        "620e4667dc41e17e365615fda4507fa9f7267ca0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\""
    },
    {
      "commit": "8568cb93fc862312923b514b7f4052b9e67bd8ad",
      "tree": "b177247be333681954856c885b396bdfde3fb694",
      "parents": [
        "248c9ee9de29ec6177c39921492661edaee06382"
      ],
      "author": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Mon Oct 30 11:13:36 2017 +0900"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Tue Nov 07 02:54:04 2017 +0000"
      },
      "message": "Remove libmedia_omx_defaults from libmedia\n\nlibmedia_omx_defaults includes source files and this default was\nused in both libmedia.so and libmedia_omx.so. This is an issue because\nlibmedia_omx and libmedia are both loaded in the framework process\nthrough dependency chains such as libstagefright -\u003e\nlibstagefright_omx_utils -\u003e libmedia_omx.\n\nTo fix the issue, libmedia_omx_defaults is removed from libmedia and\nlibmedia now depends on libmedia_omx. Other modules/libs that originally\ndepended on libmedia and need access to libmedia_omx_defaults\u0027 source\nfiles, now depend on libmedia_omx as well.\n\nBug: 67871061\nTest: mma -j and boot test\nChange-Id: I93a10df1fed3c7cea93b580d00f33ba749d80e95\n"
    },
    {
      "commit": "156c6873a5e69af71f3c28b236c5831b9cb2ac95",
      "tree": "3e36c1490f5f2d22e6e79fac3d4f59a9559403ee",
      "parents": [
        "ef9fc7792d4995da68cb71a3e9f2304e565a016d"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Oct 06 09:47:15 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Nov 02 11:14:55 2017 -0700"
      },
      "message": "Add AudioRouting interface for MediaPlayer\n\nBug: 64038649\nTest: Run cts in RoutingTest\n      Switch output device when playing music/video with MediaPlayer\n\nChange-Id: I5b5c288e6557199b0a6986785f9335a18a80ab89\n"
    },
    {
      "commit": "620e4667dc41e17e365615fda4507fa9f7267ca0",
      "tree": "bbeb8927781dba36cea9dd200e9be4f4279ef55e",
      "parents": [
        "ef9fc7792d4995da68cb71a3e9f2304e565a016d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Oct 27 00:12:47 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 31 17:15:15 2017 -0700"
      },
      "message": "Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\n\nThis reverts commit 85e88d9b45d4a9b0b012f81ac068d216f588caac.\n\nAlso, this fixes the crash that would happen on devices that do not have\nfull Treble enabled.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 68340092\nBug: 67990472\nChange-Id: I6d96cecb8eaa8691c4c0f15fe0c8e60d0c74b440\n"
    },
    {
      "commit": "fb5614c226c2998545c68ce4232c1576212ab6b4",
      "tree": "e04482cb07165ef970577e46ebaf93e3124adbc6",
      "parents": [
        "333d25015d9878fad6a2fcf82432fcc5ee0ad521",
        "d3e0d861aa68a7ef129fe228595bff734448ebc8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Oct 31 18:34:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 31 18:34:53 2017 +0000"
      },
      "message": "Merge \"heif: fixes for image sequences and dual-function files\""
    },
    {
      "commit": "67d876b17e6589a47c5f8906201ec2494119104f",
      "tree": "e01df7ead6aaf7f67e768fb60ad6afcece3bb18b",
      "parents": [
        "19d6df66e43d4caa4a5f7091cf51c09a424d0589",
        "db42765c36920975fbe0c02252397d1a5813197b"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 31 02:30:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 31 02:30:12 2017 +0000"
      },
      "message": "Merge \"Protect against possible race conditions\" into oc-dev am: 21076bf34e am: dc31a5d47c am: 516a132ea8\nam: db42765c36\n\nChange-Id: Ibda6f5f36af85be82f6f09e3d9f55ae50bed9abe\n"
    },
    {
      "commit": "516a132ea87ec6a1251bfd825834bee141a1735f",
      "tree": "696352c397dc57370634d333276122294f2cac60",
      "parents": [
        "408fae922f035e8985219292ff9a87af85bddb59",
        "dc31a5d47cf4e2de82c622101e149db5e7f594a4"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 31 02:21:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 31 02:21:59 2017 +0000"
      },
      "message": "Merge \"Protect against possible race conditions\" into oc-dev am: 21076bf34e\nam: dc31a5d47c\n\nChange-Id: Icbd64228602c4a32dfe3e1cecc0a2b57e67190f1\n"
    },
    {
      "commit": "dc31a5d47cf4e2de82c622101e149db5e7f594a4",
      "tree": "db745cfcd97144703a26d3b791603b41db9a58fb",
      "parents": [
        "8577216c08c0eb51338b64b4d5210ca7d6869a2c",
        "21076bf34eb928eff1ce1f2526a0a291c7ba96ba"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 31 02:16:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 31 02:16:28 2017 +0000"
      },
      "message": "Merge \"Protect against possible race conditions\" into oc-dev\nam: 21076bf34e\n\nChange-Id: I0a0fd4feded52ca8a31caa100dcbd6740b186fdc\n"
    },
    {
      "commit": "d3e0d861aa68a7ef129fe228595bff734448ebc8",
      "tree": "4bbe13bb4dee4cc5f6059f4f0898f615beac820f",
      "parents": [
        "1e848d329b019e832a03c0e9d0e4eb6796c971c2"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Oct 03 13:17:13 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Oct 30 19:58:30 2017 +0000"
      },
      "message": "heif: fixes for image sequences and dual-function files\n\nAdding support for two new sets of APIs on MediaMetadataRetriever:\n\n- getImageAtIndex() and getPrimaryImage()\n- getFrameAtIndex() and getFramesAtIndex()\n\nOutline of changes:\n\n- Proper indexing of all displayable still images, so that they\n  can be retrieved by getImageAtIndex()\n\n- Exposing still images as \"image/x.android.heic\" tracks in\n  MediaExtractor with necessary descriptive keys (such as \"grid-*\")\n\n- Support to retrieve video frames by absolute index instead\n  of timestamps, as image use cases mostly are interested in\n  getting the images and care less about timing.\n\n- Support to retrieve video frames in batches because retrieving\n  one frame at a time is inefficient.\n\n- Refactor image / frame decoding code into FrameDecoder, and split\n  still image decoding and video sequence decoding into to sub\n  classes to facilite future development.\n\nbug: 63633199\n\ntest:\ncts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg CtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice\n\nChange-Id: I2fe8519fb6907f315a8b513921fc1cc7f436e28d\n"
    },
    {
      "commit": "85e88d9b45d4a9b0b012f81ac068d216f588caac",
      "tree": "1eb2868ab206357f4707667eb5def5106bbc04d4",
      "parents": [
        "442459bca04f95ef2acd34e3de01f55bd5ede132"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 26 16:16:55 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 26 16:17:25 2017 -0700"
      },
      "message": "Revert \"Remove unused modules made for non-Treble OMX\"\n\nThis reverts commit 37c79ffe2fa52a1eaa4db74b5e15c6d41646efbf\n\nBug: 68340092\nTest: revert\nChange-Id: If7736b745f981105bed4ffda2e63691d8862d259\n"
    },
    {
      "commit": "c62a59c4a1a94376af8a5c503983fe65e9b3aa59",
      "tree": "640e8aa96ba6ecbfd58d296d54d1d4fedf52c90b",
      "parents": [
        "7b8989bfbbc0886861c6f4988fbad668084c4021",
        "37c79ffe2fa52a1eaa4db74b5e15c6d41646efbf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 26 02:58:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 26 02:58:57 2017 +0000"
      },
      "message": "Merge \"Remove unused modules made for non-Treble OMX\""
    },
    {
      "commit": "37c79ffe2fa52a1eaa4db74b5e15c6d41646efbf",
      "tree": "47f71622b0928c1c9b2ded9e739b4fb06913662c",
      "parents": [
        "7f5b7818ff6e6bd973c510a1f41dd8c308f51db1"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Sat Oct 21 05:31:38 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 24 16:13:38 2017 -0700"
      },
      "message": "Remove unused modules made for non-Treble OMX\n\nAll devices should use Treble with OMX hals now.\n\nThis CL removes\n1. Non-Treble implementations of OMX and OMXStore\n2. MediaCodecService\n3. All dependencies on sysprop system.persist.treble_omx\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 67990472\nChange-Id: I245ecf89d30d532f232e05e362e1cea76f5c37de\n"
    },
    {
      "commit": "542a81af9f403de1b94be896d943c4891e600217",
      "tree": "9b67d4972afe3d808b0e12a9bd889fd8c68a303b",
      "parents": [
        "c56f27b269800c1e8441908c3d564c63e0257f56"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 16 10:31:29 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 23 10:45:21 2017 -0700"
      },
      "message": "GenericSource: enable autonomous buffering\n\nAlso fix possible racing conditions. Now buffering control is time based\nonly.\nTest: media post submit tests passed\nBug: 66952371\nChange-Id: Ia115787511b2f3e612167a61c8df3a9a2b2d9abf\n"
    },
    {
      "commit": "08a5a3a473354c965c32190f8b68549d19e08912",
      "tree": "ae35414f1dc918ce7249295bbb6f009a67159de5",
      "parents": [
        "eeff0cf82433a151b59e87d695b2189e7ff0858d",
        "d91dc5a0602f54fc0d4d2187f37b5b8169bb62c3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 17 22:11:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 17 22:11:54 2017 +0000"
      },
      "message": "Merge changes from topic \"remove-dep\"\n\n* changes:\n  Remove libmedia and libstagefright dependency from extractors\n  Clean move of files to keep the git history\n  Sort shared libs in Android.bp for extractors\n"
    },
    {
      "commit": "d91dc5a0602f54fc0d4d2187f37b5b8169bb62c3",
      "tree": "4a3b6fb269ae76af3c0567cc1d57780c17bd2c30",
      "parents": [
        "04ce1be860b40e18ca7f5fdf64ecb82567d7fe24"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 10 00:07:09 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 17 13:43:59 2017 -0700"
      },
      "message": "Remove libmedia and libstagefright dependency from extractors\n\n- MediaSource, DataSource and MediaExtractor are moved to\n  libmediaextractor so that they can be used by extractor\n  implementations without depending on libmedia and libstagefright.\n- XXXFactory classes has been added in order not to expose CreateXXX\n  methods in libmediaextractor.\n- avc_utils is moved to libstagefright_foundation since most of\n  extractor implementations are relying on that.\n\nTest: build + post submit media CTS tests\nBug: 65851881\nChange-Id: I7d5cf18dd25abc10478ac3f6e7d1828ad023e3fb\n"
    },
    {
      "commit": "dc293e342677c8e61ff79f49f117f8e69bb2b863",
      "tree": "9fd24e45236e7c6f1e5912cd9bd0e4ed70425677",
      "parents": [
        "92b01549f05ab42c1bc5e1f11aa13d5cf95b7817"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 16 18:29:37 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 16 18:29:37 2017 -0700"
      },
      "message": "NuPlayerRenderer: update max media time when audio EOS is reached.\n\nThis allows the just scheduled video frame to be rendered when its timestamp\nis larger than max audio media time.\nTest: media post-submit tests passed\nBug: 67854291\nBug: 65204641\n\nChange-Id: Iadee5690b8895b1d9be3fdefcafe3535837d12e8\n"
    },
    {
      "commit": "f9c81464b9494082fa7cdff9f70c5402e8ac78c0",
      "tree": "12d5376268e2c464064b063537b428196fee4595",
      "parents": [
        "402b8a0ef5c4fa0f7a70020bf0d93ec4714edbf3"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Sep 28 05:31:11 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Oct 12 18:33:56 2017 -0700"
      },
      "message": "Protect against possible race conditions\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: Run the poc in b/38234812\n\nBug: 38234812\nChange-Id: I28322e5a812c02c8e449ab8773715f60b9f5d976\n"
    },
    {
      "commit": "b7798a01d4b68bf2406907bb58f29b48dece8214",
      "tree": "b0b34ca04c0d22b24ac4dddf7a8f31aae333a800",
      "parents": [
        "284aa3014feb77fc89143caa00fc8f31c1300f0f"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Mon Oct 09 23:21:44 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Oct 12 17:14:51 2017 -0700"
      },
      "message": "Remove OMX dependency from MediaPlayerService\n\nAlso, convert Android.mk files to Android.bp.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts \\\n-m CtsMediaTestCases \\\n-t android.media.cts.MediaPlayerTest\n\nBug: 67652488\nChange-Id: I7172d1a2513826a5dafbe51245af11d863f50585\n"
    },
    {
      "commit": "0222d33937b18dd72c581a3d34a0ddf680c05388",
      "tree": "4e4f6e1fd6e1e588886babf3c67339c3398d6509",
      "parents": [
        "ac835db1e69d8e5cdd785a6d1f3f182a827840d8",
        "607612858f3afad1ade51a098aafa2a41523b5f7"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 11 16:02:02 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 11 16:02:02 2017 +0000"
      },
      "message": "Merge \"Move UXX_AT families to libstagefright_foundation\""
    },
    {
      "commit": "ac835db1e69d8e5cdd785a6d1f3f182a827840d8",
      "tree": "c6b81a9b0ab82d222254210d9cce2a13a8c06ee3",
      "parents": [
        "960a62f229b1bafcd1b1b5f6624c16364e586fc0",
        "3dced075597b6457cbec377f4e0dabb81f6e5724"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 11 16:00:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 11 16:00:43 2017 +0000"
      },
      "message": "Merge \"Move AWakeLock from foundation to libmediaplayerservice\""
    },
    {
      "commit": "607612858f3afad1ade51a098aafa2a41523b5f7",
      "tree": "351d21ec35304967695c01b845369c117759f144",
      "parents": [
        "3dced075597b6457cbec377f4e0dabb81f6e5724"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Oct 09 11:16:48 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 11 08:58:10 2017 -0700"
      },
      "message": "Move UXX_AT families to libstagefright_foundation\n\nByte handling utilities moved to libstagefright_foundation so that\nthey can be used in extractors without depending on libstagefright.\n\nTest: build\nBug: 65851881\nChange-Id: If72d8befadf3e63a93396f08efac0d6e3f4e273e\n"
    },
    {
      "commit": "3dced075597b6457cbec377f4e0dabb81f6e5724",
      "tree": "dd2c8e49dcda780a5d1366e8e49a8f0639bbdeef",
      "parents": [
        "df36af1052a82c6961839918f7ba9d109bec6831"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Oct 09 08:55:22 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 11 08:58:10 2017 -0700"
      },
      "message": "Move AWakeLock from foundation to libmediaplayerservice\n\nThis removes libpowermanager dependency from libstagefright_foundation.\nAWakeLock is being used only in libmediaplayerservice.\n\nTest: build\nBug: 65851881\nChange-Id: I1a34210f66fd4fdc30b7aa6467b642fd99b71731\n"
    },
    {
      "commit": "ac8b6868a34f46c54ca29abc20f627b775bdf9ad",
      "tree": "e832aebee2231e5889f1350f01f857183b244d27",
      "parents": [
        "7de1920b41a7c5a6aa466dcd4fffc936193328b1",
        "e36c3fa9432401f5da859b2cac9020ef8f62aee1"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Oct 09 20:00:42 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 09 20:00:42 2017 +0000"
      },
      "message": "Merge \"Enable integer sanitizer in libmediapleyrservice.\""
    },
    {
      "commit": "e36c3fa9432401f5da859b2cac9020ef8f62aee1",
      "tree": "e4f07c91d1cbddf8d4cf4a34c6f5f7515850a286",
      "parents": [
        "ad764cd0e198a0ede404c53e2da5fd38ecb1e049"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Oct 09 10:37:53 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Oct 09 10:37:53 2017 -0700"
      },
      "message": "Enable integer sanitizer in libmediapleyrservice.\n\nThis turns on unsigned and signed integer overflow sanitization in\nlibmediaplayerservice.\n\nBug: 67010565\nTest: Ran CtsMediaTestCases, device boots.\nChange-Id: I86b5726bd5c6ca7add0eafa11890e1a35d27563b\n"
    },
    {
      "commit": "75226177f20a176d50e3e53bbb34067cb49112c3",
      "tree": "31d809eeb7e884765c8538bac139be1079e1f1a3",
      "parents": [
        "a098be2bfa75d04c07f5bbf7a3eb991add89f260"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 16 14:10:52 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 03 15:03:19 2017 -0700"
      },
      "message": "Make extractors separate libraries\n\ninstead of being integrated into libstagefright\n\nTest: thoroughly\nChange-Id: I11cdfde6d2daf248c8e0f99237db1c74be260eb0\n"
    },
    {
      "commit": "17648f365e5914fa772bbfebaf9f5c6a37ddfb99",
      "tree": "78ec7a8b4e8e2a8cb3f3eac566d783ae25596c48",
      "parents": [
        "75e61dba572b8d9d4b4e7f720c107ebf10519438"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Sep 19 13:16:30 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 27 11:45:25 2017 -0700"
      },
      "message": "NuPlayerRenderer: use timer for video rendering\n\nMediaClock: timer can be adjusted by system time offset\nTest: plays many media files\nBug: 65204641\nChange-Id: Icd73a06d9b2fe720224ed951db94136f399d82f8\n"
    },
    {
      "commit": "028577e9655d3b81027a6f0e875d439f074720b3",
      "tree": "f7a90839c679edf261394a7d21d144b5c3653023",
      "parents": [
        "e0e89ceaa7056b3df02545ce9d9483cc02d2ac3e",
        "1fb35b71b044adb6d8cfd3a740b94e211f28dabe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 26 01:08:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 26 01:08:59 2017 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: work around some racing condition in audio track\""
    },
    {
      "commit": "1fb35b71b044adb6d8cfd3a740b94e211f28dabe",
      "tree": "5de6e2dd4e56eafd74e6fc22051e870eea59c6d4",
      "parents": [
        "dddb4326c090fa8ea37168d861eb11cd3a66e0c9"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Sep 25 16:08:13 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Sep 25 16:30:20 2017 -0700"
      },
      "message": "NuPlayerRenderer: work around some racing condition in audio track\n\nTest: no more super long delay when seeking/pausing/resuming\nBug: 66917327\nChange-Id: Ic43ef543984f299d6ea7197c9e55d76518474c8a\n"
    },
    {
      "commit": "d14133d15a41a6fe2d27cf6e408b464f28de9b62",
      "tree": "46c400270697e6667f3ea429a8d74fa92a26f226",
      "parents": [
        "7eaae5b788b37f5e19ca9b03d79ef32bd8b0df8a",
        "d0a98fa05f0f6719b93d000c4638230af06e0b99"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 18 18:35:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 18 18:35:56 2017 +0000"
      },
      "message": "Merge \"stagefright: remove Miracast sender code\""
    },
    {
      "commit": "d0a98fa05f0f6719b93d000c4638230af06e0b99",
      "tree": "438b19e4d9bddffee72c9bab98772d99bd6b7cb1",
      "parents": [
        "5bb3cfe6f3591736a82ac8ede71ced1472e19700"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Sep 14 17:43:10 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 18 18:34:59 2017 +0000"
      },
      "message": "stagefright: remove Miracast sender code\n\nThis has been deprecated for some time. Remove this from codebase\nto avoid introducing new HAL for HDCP. Log warning and return NULL\nwhen remote display is requested. \n\nbug: 62213914\nChange-Id: I3560b60fe83a01c51df0f2e715a8f2c760e57bf8\n"
    },
    {
      "commit": "dddb4326c090fa8ea37168d861eb11cd3a66e0c9",
      "tree": "ac7473cadcb70f130c14ceb9a476fc40d0b41cee",
      "parents": [
        "1841755b4507a8a132895f2e2d214fa759ae7b22",
        "52c2851b30588df1aba00766c37ffde86a3345bc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 20:15:36 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 15 20:15:36 2017 +0000"
      },
      "message": "Merge \"MediaPlayer: add notifyAt at native side\""
    },
    {
      "commit": "bc3da580439715e67876ff213a5c58b9b61d8dd8",
      "tree": "0b24a2fb0da572064f64c8a0c0d7d88272c6e022",
      "parents": [
        "7374d0182a525acb5dfe86f7dc7181c382502667",
        "992c559859e518056d5e8546dc978fab13fb180e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 14 23:48:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 14 23:48:23 2017 +0000"
      },
      "message": "Merge \"GenericSource: fix sending time for text data\""
    },
    {
      "commit": "992c559859e518056d5e8546dc978fab13fb180e",
      "tree": "b68c672964cf313959ed06e3926ab9be393a23d2",
      "parents": [
        "014df71ed78023d99ca72578f7866cabbc1e6601"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Sep 01 14:20:23 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 14 12:57:39 2017 -0700"
      },
      "message": "GenericSource: fix sending time for text data\n\nTest: text data was sent at correct time when playback rate is not 1.0\nBug: 65204641\nChange-Id: I72ea818f52ca35f3a13bb0d62a5f20bb7f5db087\n"
    },
    {
      "commit": "52c2851b30588df1aba00766c37ffde86a3345bc",
      "tree": "9ff98868cdbc27ab5cfd19f7cf8cae155b7cd6c4",
      "parents": [
        "014df71ed78023d99ca72578f7866cabbc1e6601"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 13 18:17:51 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 13 18:20:53 2017 -0700"
      },
      "message": "MediaPlayer: add notifyAt at native side\n\nTest: media time is correct when playback rate is not 1.0\nBug: 65204641\nChange-Id: Ie9f67e3cb37267cfd364c9a9b9f674232b68ef27\n"
    },
    {
      "commit": "e247023e785e581349d8fb926c4a1bed239b623c",
      "tree": "850157e9f268725e25dd0e1b98dfd729e61e0e76",
      "parents": [
        "fdf4151313d35e0ef504955ae738550b6ffd338b",
        "0fbd5badd563360827c81b9096381096e9eadf9c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 06 16:26:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 06 16:26:55 2017 +0000"
      },
      "message": "Merge \"AudioTrack: Limit timestamp time lag after start\" into oc-mr1-dev am: cea54cf940\nam: 0fbd5badd5\n\nChange-Id: I910d96c6901bad81987191ea2485435a6fcf8a7f\n"
    },
    {
      "commit": "ffa3695a012d22c6c81cf311232c5c84c06f9219",
      "tree": "9efbe30bf98b6a75977fe842083808e8b9d69806",
      "parents": [
        "90153cae7ffd321338f90678a80abd62fb56e877"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 17 10:41:51 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 05 17:02:15 2017 -0700"
      },
      "message": "AudioTrack: Limit timestamp time lag after start\n\nTest: Photos with long pause and resume\nBug: 63614330\nBug: 63976584\nChange-Id: I81ac650c821600fee507c72c3b0c1be60f5e7ab6\n"
    },
    {
      "commit": "7b6f67d18a4a4e94fddb836de1176b609968643a",
      "tree": "84d2d048574eb7de82c7c85e60bd90dcb8d42a36",
      "parents": [
        "f24d95960d85c891fc40db6f1e9644385efb4eb3"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Aug 24 17:20:29 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Sep 05 14:53:52 2017 -0700"
      },
      "message": "MediaClock: add timer\n\nTest: compiles\nBug: 65204641\nChange-Id: Id80a41481255a8f8a9adce40cf10f629f996c6aa\n"
    },
    {
      "commit": "fb70e75da021eca82378d4ded6589d3a86672e96",
      "tree": "0d5fe47dbae3f8b5b05007ad6ecc39f7e1fcd7eb",
      "parents": [
        "0b8529fbacaa35634ac24bb62c5890cddcb623b6",
        "baf9bda6a488248063ec7a5384a41e157ff69e05"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Sep 01 23:23:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 01 23:23:31 2017 +0000"
      },
      "message": "Merge \"track pkgname/version in media.metrics\" into oc-mr1-dev am: dbedf0ab12\nam: baf9bda6a4\n\nChange-Id: Ibd812b72b8f3383097ee5eb8bb556dbbab8865a9\n"
    },
    {
      "commit": "0b8529fbacaa35634ac24bb62c5890cddcb623b6",
      "tree": "f2ae5de5ae80bb6f69b929172804410e3335abf8",
      "parents": [
        "f238bd3c57632b7f4eeb6b1a6a9542058e911a5b",
        "8cf3a0788df2ee184b498086b1b8da322eeadcca"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Sep 01 23:07:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 01 23:07:08 2017 +0000"
      },
      "message": "Merge \"Generate the IPlayer interface with AIDL.\""
    },
    {
      "commit": "8cf3a0788df2ee184b498086b1b8da322eeadcca",
      "tree": "1bd36129bbd4afa491689deca23977dbf30930f6",
      "parents": [
        "a5ec8b0ec9c94fd9474fae1d1d1dc798ae6c4d2d"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Aug 09 09:01:33 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Sep 01 10:14:30 2017 -0700"
      },
      "message": "Generate the IPlayer interface with AIDL.\n\nThis removes the manually rolled IPlayer implementation and instead uses\nan aidl generated implementation. The IPlayer aidl file is moved from\nframeworks/base/.\n\nTest: run cts --module CtsMediaTestCases\nBug: 64223827\nChange-Id: Ia609f7ba1cc6f71ce919d6174dd8b5e0e1b05575\n"
    },
    {
      "commit": "c9b7057b6229b6364631918a915266c3aaa1c961",
      "tree": "df0b85a9e1f9adef41b51570e4985b572e948607",
      "parents": [
        "7b40873793fa1f788677a3844b56ccee4b888a0a",
        "0a68f66af2ce55a7110cd901c7e91365abf60cea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 31 23:00:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 31 23:00:12 2017 +0000"
      },
      "message": "Merge \"NuPlayer: make MediaClock a player-wide resource.\""
    }
  ],
  "next": "f65f421540d8d1e2aad17b86368405b83cb40a26"
}
