)]}'
{
  "log": [
    {
      "commit": "4383fdc52899bf614e7c555c252dd4b9a3c81d32",
      "tree": "bb60b1106a99fa24ef65a7190487d81e0b86f646",
      "parents": [
        "f151b811f0b63e074e5449c3259b9993c1a2f49f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Apr 10 11:18:29 2019 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Apr 10 15:31:27 2019 -0700"
      },
      "message": "mediaplayer2: fix state during transitioning\n\nTest: cts\nBug: 130292355\nChange-Id: I18dd97aebe816280abf498a856bb387e73b0511a\n"
    },
    {
      "commit": "e9e801bff7cdd6f6fe5a82263d4686c1cbda76f4",
      "tree": "9f36b2096ab3b42d979495f8bdb9cfed4d565bcc",
      "parents": [
        "72b8b7df5e563a46910dd324b7b0fb35112b1663",
        "ccd5914d720d3bc3c2a17e2fe6b7bd01a63992ee"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 09 20:43:28 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 09 20:43:28 2019 +0000"
      },
      "message": "Merge \"mediaplayer2: fix state during data source switching\" into qt-dev"
    },
    {
      "commit": "ccd5914d720d3bc3c2a17e2fe6b7bd01a63992ee",
      "tree": "102e9b81175bb40367001e28520395efd60dc09d",
      "parents": [
        "0e5a1b3bb64d9a5d38903770e018379856401efd"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Apr 08 17:55:59 2019 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Apr 08 17:55:59 2019 -0700"
      },
      "message": "mediaplayer2: fix state during data source switching\n\nTest: cts\nBug: 130126316\nChange-Id: Ic2022435954521a113082a13b05947abbe84ba2f\n"
    },
    {
      "commit": "0fe4c4795015357290b098715f6d3cd17cf554df",
      "tree": "cb9fb49616e0ff7890359f7eefb6563d25426934",
      "parents": [
        "8d14f5ccff2440f39630965486e9601ab6d007b6"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 08 21:51:46 2019 +0000"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 08 14:56:30 2019 -0700"
      },
      "message": "Revert \"Revert \"Remove direct libgui reference from omx server side\"\"\n\nThis reverts commit b4979c59d93a6ca2be7e65489fc39896bfdc2c96.\n\nReason for revert: reland with fixes:\n1) make OMXHarness use OMXClient, not directly IOMX wrappers.\n2) fix ref of consumer listener interface in GraphicBufferSource.\n\nbug: 129272021\nTest: camera recording, aosp_x86 build\n\nChange-Id: Idaaaf412c65cbe89c95a2cb54f3833ff1fc4c304\n"
    },
    {
      "commit": "b4979c59d93a6ca2be7e65489fc39896bfdc2c96",
      "tree": "3da5a8d97ee8f37f4f480ad80104b6f77d3bcd87",
      "parents": [
        "482f60ccccc12e6afe24f9ba503496ce65d1ba43"
      ],
      "author": {
        "name": "Sung-fang Tsai",
        "email": "sungfang@google.com",
        "time": "Sun Apr 07 00:29:22 2019 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Apr 08 10:32:03 2019 +0000"
      },
      "message": "Revert \"Remove direct libgui reference from omx server side\"\n\nThis reverts commit 482f60ccccc12e6afe24f9ba503496ce65d1ba43.\n\nReason for revert: b/130058749 camera recording hang\n\nBug: 130058749\nChange-Id: I358bc9c62c48328c01c8611c7e6f77d16affff54\n"
    },
    {
      "commit": "482f60ccccc12e6afe24f9ba503496ce65d1ba43",
      "tree": "90e04135449e80434f0b399d0e33d91bfce1de20",
      "parents": [
        "6e38e1a2b74bd2ed304080b1dca1f77b1053dada"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Mar 21 16:41:28 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 05 18:12:10 2019 +0000"
      },
      "message": "Remove direct libgui reference from omx server side\n\n- Make mediacodec service/libstagefright_omx not dependent\non libgui. Server should only reference bqhelper (which\ncurrently still have a dependency on libgui, but could be\nremoved later as it\u0027s only used internally).\n\n- Make libmedia_omx not dependent on libgui by moving the\nIOMX wrapper code into a separately that\u0027s only used by\nthe platform.\n\n- Move ConsumerListener references in GraphicBufferSource\nto implementation only, so that other libs including\nGraphicBufferSource doesn\u0027t need to link libgui.\n\n- Remove bqhelper references from some client side libs.\n\n- Remove IOMX ipc related code, as IOMX interface is no\nlonger used for ipc. It\u0027s only used as an interface on\nclient side.\n\nbug: 129272021\ntest: builds;\natest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small\n\nChange-Id: I49d80bf72eba325ee80b223d4a5ba7b0c1ab4d35\n"
    },
    {
      "commit": "cc9515118a01c27f9942782606bb1de0c5d47550",
      "tree": "9466b7f89c3bd565c08dfef197abdd6a6adab949",
      "parents": [
        "0e5a1b3bb64d9a5d38903770e018379856401efd"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Apr 03 16:10:42 2019 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 04 10:17:39 2019 -0700"
      },
      "message": "NuPlayerRenderer: allow video rendering after flushing audio\n\nTest: test file can play\nBug: 129733716\nChange-Id: Iaaac854267901bd577496689a2d997271c942000\n"
    },
    {
      "commit": "2a1a52ce489357d58f03c4e3455187ea70fa68ef",
      "tree": "6a8f1c3af41defed820f8da0df71c4b3a4a510a7",
      "parents": [
        "d9c99eafe6d3727b2892aeae5df568c6a97b6e76"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Mar 14 16:57:47 2019 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Fri Mar 15 11:56:52 2019 -0700"
      },
      "message": "Fix addAudioDeviceCallback() memory leak bug\n\nStore jobjects and JObjectHolders as backup, delete JObjectHolders after\nusage\n\nBug: 128341809\nTest: RoutingTest#test_MediaPlayer2_RoutingChangedCallback\nChange-Id: I70b2312519ab0efef0ed40ce721ae8c26dc1aed2\n"
    },
    {
      "commit": "b71ede1347121e6a5fdefdc18f20587a92863f47",
      "tree": "3620aa91a747ffece2ac3771632d98de976c919c",
      "parents": [
        "39f4bc12d049acec9bf8a665f362b8a18ad14f6f"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Mar 11 19:10:19 2019 +0000"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Mar 11 19:10:19 2019 +0000"
      },
      "message": "Revert \"Fix memory leaks\"\n\nThis reverts commit 39f4bc12d049acec9bf8a665f362b8a18ad14f6f.\n\nReason for revert: not the right fix\n\nChange-Id: I6b6150f6a7c0df6517406a4c385b153fec839c3a\n"
    },
    {
      "commit": "39f4bc12d049acec9bf8a665f362b8a18ad14f6f",
      "tree": "7e06b837274c0be7b3bb7c8244804d57a2b78fc8",
      "parents": [
        "0428b8e5a53c3c37e0f76decc7a8f32854488062"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Sun Mar 10 10:04:47 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Sun Mar 10 10:39:22 2019 -0700"
      },
      "message": "Fix memory leaks\n\nThese are `new`ed, but never passed to anything else. It looks like\nsimply stack allocating will do what we want here.\n\nCaught by our static analyzer:\n\nframeworks/av/media/libmediaplayer2/MediaPlayer2AudioOutput.cpp:524:5:\nwarning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]\nframeworks/av/media/libmediaplayer2/MediaPlayer2AudioOutput.cpp:527:9:\nwarning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]\nframeworks/av/media/libmediaplayer2/MediaPlayer2AudioOutput.cpp:529:9:\nwarning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]\n\nBug: None\nTest: Ran the analyer again. It was happy.\nChange-Id: I8f4cda4a5993f43ad50cf5a0d152ed7158d7c8e1\n"
    },
    {
      "commit": "4e9bfa02a291f69a181e9de6d5f9902cb756d6a0",
      "tree": "61d83c6f9d3392ca5941c351cdf7072aca956823",
      "parents": [
        "63c0f36d2ba1b752a040b47d108f4cc907da227b"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Mar 06 16:33:59 2019 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Mar 06 16:36:25 2019 -0800"
      },
      "message": "Fixed routing change bug\n\n(1) Change logic of addAudioDeviceCallback() since mJAudioTrack is\nlikely to be null when this function is called.\n(2) Replace add/removeGlobalRef() with JObjectHolder\n(3) Replace std::vector with utils/Vector.h\n\nTest: android.media.cts.RoutingTest#test_MediaPlayer2_RoutingChangedCallback with routing change log\nBug: 127314187\n\nChange-Id: I62d9c7600c710b49f0435bd1fc2741d79c928b55\n"
    },
    {
      "commit": "134d945b9119d3edd7ca36fa587e368aa0997bba",
      "tree": "2b6bca222dc1263733886fe2f996f41b79a73888",
      "parents": [
        "6ce01631b8a7710186bef4d2b4872f255613d6eb",
        "372e8f2b19f3a0018b926f226c8ad0ca62320652"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 14 01:36:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 01:36:03 2019 +0000"
      },
      "message": "Merge \"Improve concurrency access for updateMetrics()\""
    },
    {
      "commit": "cf272c82a2bda2cb759b62a01ad38d89bd31d356",
      "tree": "d8aae1d1a4d0b6a15386afa95b8ecb26a8cd9ce1",
      "parents": [
        "ba76e4f4a6dc67c93307983d41b52c6441c7349e",
        "f875b213e0655511bc8283f46d701296092838d6"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 13:24:27 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 13 13:24:27 2019 -0800"
      },
      "message": "Merge \"NuPlayer2: Call video flush on audio teardown\" am: bf430563f8 am: d98913f7b5\nam: f875b213e0\n\nChange-Id: Ib523ce5acae56fa834da438e14f71ba54d8e5ed5\n"
    },
    {
      "commit": "f875b213e0655511bc8283f46d701296092838d6",
      "tree": "94bed3826747c7b85ed54ab923ba159ea4763ea1",
      "parents": [
        "29c6a1fa100592aed5654913ddbd9ad5adf0e775",
        "d98913f7b54e9f7a622325d6544789cccf72eebe"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 13:17:13 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 13 13:17:13 2019 -0800"
      },
      "message": "Merge \"NuPlayer2: Call video flush on audio teardown\" am: bf430563f8\nam: d98913f7b5\n\nChange-Id: I4c1f8cf10cd6bbc555d6b453f2555c284ebc5eda\n"
    },
    {
      "commit": "d98913f7b54e9f7a622325d6544789cccf72eebe",
      "tree": "decb3ea5a382eacb9da0ed762c5236d8a47a2c7f",
      "parents": [
        "436d9e9d91adead6f62c1f1fb0b88808414d92ec",
        "bf430563f889db13dbd463dcea92c79b40ec82e9"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 13:11:13 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 13 13:11:13 2019 -0800"
      },
      "message": "Merge \"NuPlayer2: Call video flush on audio teardown\"\nam: bf430563f8\n\nChange-Id: I7c83aed564ac4bb5b4e4a006958ceb87d198a32d\n"
    },
    {
      "commit": "bf430563f889db13dbd463dcea92c79b40ec82e9",
      "tree": "62b80cf250aeb38ef10cee2dd53203eef01ad8c1",
      "parents": [
        "d0939173441f0ff2efcfea44de6924ef18454e6c",
        "8bd4d3946b0308da0fa457ac5ceb6dccb591d78b"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 20:52:26 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 20:52:26 2019 +0000"
      },
      "message": "Merge \"NuPlayer2: Call video flush on audio teardown\""
    },
    {
      "commit": "8bd4d3946b0308da0fa457ac5ceb6dccb591d78b",
      "tree": "ff59d867724608353a6e18466f76286efbf738cf",
      "parents": [
        "eca08fb8619db79e7e47b0dba9f8f5f9e961dfef"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 10:38:06 2019 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 10:38:06 2019 -0800"
      },
      "message": "NuPlayer2: Call video flush on audio teardown\n\nwhen audio tear down happens, audio gets flushed and seek is issued.\nIf video is not flushed before seek, previous video buffers will be\nrendered and leads to A/V sync issue. Hence call video flush.\n\nBug: 70919418\nTest: MediaPlayer2Test\nChange-Id: I66b6f8e024f29e797a89e68d52c819cddbf37016\n"
    },
    {
      "commit": "8d7fea64521c9e79e81051d615875e8a4e6af610",
      "tree": "ea89a48bdf8764c15a3de328840a5b2b65bd4449",
      "parents": [
        "8c27636d64b702659b6dfe3bc9872a30e8935d01",
        "e0aad0c92795f012e061b7a428ef66cd009d2642"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 12 21:23:40 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 12 21:23:40 2019 -0800"
      },
      "message": "Merge \"Fix bugs regarding clamping of numFrames variable.\" am: f4935e88d1 am: 716f64f54c\nam: e0aad0c927\n\nChange-Id: Icc90f9b1e561d4b3db61730509d65b0a8b0cc0f2\n"
    },
    {
      "commit": "e0aad0c92795f012e061b7a428ef66cd009d2642",
      "tree": "8b4293f5d25c3fc98802db7c11a2e31ab62071ac",
      "parents": [
        "752403d7b33cb3242316037cbd3c1e1a4951ffd8",
        "716f64f54cfef823e8b996427d4c52c9348db5cb"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 12 21:04:08 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 12 21:04:08 2019 -0800"
      },
      "message": "Merge \"Fix bugs regarding clamping of numFrames variable.\" am: f4935e88d1\nam: 716f64f54c\n\nChange-Id: Id52b35a1b5d4fb4f803172f57cabf6487242be85\n"
    },
    {
      "commit": "716f64f54cfef823e8b996427d4c52c9348db5cb",
      "tree": "dd7492506b355a86ac67aedfb7894be9cf98000d",
      "parents": [
        "e08a1f04f3d98d479325bd6ddf91ceaad1c03d1a",
        "f4935e88d1b38756033727c6a70d1530532636b7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 12 20:54:40 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 12 20:54:40 2019 -0800"
      },
      "message": "Merge \"Fix bugs regarding clamping of numFrames variable.\"\nam: f4935e88d1\n\nChange-Id: Ibac7f239c1c60deae4b17e2ce5d422576c6112a8\n"
    },
    {
      "commit": "82b657f45c39cc22adc13b1fcb16c42ec9228336",
      "tree": "6c2d49631fa56bcc18992980b90cbff3499bb1cb",
      "parents": [
        "bceab46baa96f4b0f77707ec7e1f08c083f6fd14"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 12 18:11:36 2019 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 12 18:15:00 2019 -0800"
      },
      "message": "Fix bugs regarding clamping of numFrames variable.\n\nthere is a clamping value in getDurationUsIfPlayedAtSampleRate function\nnumFrames parameter is uint32_t type. when return value, cast uint32_t to int32_t.\nthat make clamp value of numFrames\nTest: compiles\nBug: 123665692\n\nChange-Id: I12e35df3030659bc10b3e86ed9d1712be6b62a88\n"
    },
    {
      "commit": "062780418f2d259b3649e18bb48c0502943bf9b4",
      "tree": "d5c1a1be42982843e8bf62df7a653f79177561e9",
      "parents": [
        "1342d0740e9a7accd48a7c28725ca61ded231ee1"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Feb 12 12:20:02 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Feb 12 12:23:39 2019 -0800"
      },
      "message": "Log nuplayer2 version information\n\nadd apk/pkg version for mediaplayer2 / nuplayer2 media.metrics info.\n\nBug: 119817586\nTest: logcat\n"
    },
    {
      "commit": "372e8f2b19f3a0018b926f226c8ad0ca62320652",
      "tree": "dcbae95dac10ab55bb8a999f340c0306b30cbe34",
      "parents": [
        "1342d0740e9a7accd48a7c28725ca61ded231ee1"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Feb 11 11:38:31 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Feb 11 11:43:46 2019 -0800"
      },
      "message": "Improve concurrency access for updateMetrics()\n\nnuplayer\u0027s updateMetrics() referenced an unprotected shared stats buffer.\nIt\u0027s a small buffer, so we now make a copy during updateMetrics()\n[at a point where we are mutexed] instead of putting a mutex on the\nunderlying frequently used construct.\n\nEnsure that nuplayer2 has the same protections.\n\nBug: 123256408\nTest: race condition\n"
    },
    {
      "commit": "a6d5e8b33ce1f7e3133d7474ac3bed3550c309a8",
      "tree": "7ad7506a21dbc316eac4f2edc6b728e216996750",
      "parents": [
        "8ec576b7abfc01ac99f3542d29a86ddc3533541b",
        "e5cd43c99ea50692e8ccfa2459afab1039208b36"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Feb 05 21:23:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 21:23:00 2019 +0000"
      },
      "message": "Merge \"Remove CFI diagnostics.\""
    },
    {
      "commit": "e5cd43c99ea50692e8ccfa2459afab1039208b36",
      "tree": "98592f2cd75ab20758dcb30f3a364072d8f77952",
      "parents": [
        "25d3eb576ca166b23ff294595e9efedc3a6923c8"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Feb 05 10:10:15 2019 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Feb 05 10:10:15 2019 -0800"
      },
      "message": "Remove CFI diagnostics.\n\nRemove diagnostics mode from CFI across the board. This should reduce\nperformance overhead and also allows the minimal runtime to work when\nother ubsan sanitizers are enabled. CFI stack dumps should include a\nCFI related function, so it should be apparent when a crash is\nCFI-related.\n\nBug: 117417735\nTest: make -j\nChange-Id: Ia16ac02e844a7cd17e647ddb2208c3583a9e852b\n"
    },
    {
      "commit": "58d4be5a5a5d24f18b7a207148c7caa317fef366",
      "tree": "37e0a5e790187815757bd906c7767cfcea0e1f74",
      "parents": [
        "6054a7765cfd65c34d49a5a435bee1d0cdfb2d32"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 15:30:12 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 00:18:00 2019 +0000"
      },
      "message": "audio: get rid of hardcoded translation stream \u003c--\u003e attributes\n\nIMPORTANT NOTE:\n    CL depends on another CL in frameworks/base\n    https://partner-android-review.googlesource.com/c/platform/frameworks/base/+/1206275\n\nAudioProductStrategies offers the possibility to dynamically\ntranslate attributes to stream types (and vice versa) within\naudio policy engine.\nLegacy engine has hard coded rules to maintain the translation\nservice.\n\nThis patch removes the hardcoded translation within the helper\nand replaces them by AudioProductStrategy APIs.\n\nTest: AudioPolicyTests: AudioProductStrategiesAllStreamsTest\nIt loops on all stream types supported by strategy and ensures\ndevice selection matches. Hard coded stuff would prevent right device\nselection.\nTest: CTS: AudioTrackTest AudioRecordTest\nTest: audio smoke test on sailfish, walleye blueline\n\n\nChange-Id: I76589df5555136ed49dbacc7aac9b0b5e828bef2\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "adb59ecb9ed2baac6adc32d448eaa71dfdf81998",
      "tree": "d1b7eae3d9c50f072f38de808396730d50894828",
      "parents": [
        "7e88dc6836ad2eee3500cf33b4a7147e107a54ac",
        "daca30ef426e30f921a6a2d39e07a31d789b837e"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Jan 28 22:22:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 28 22:22:59 2019 +0000"
      },
      "message": "Merge \"mediaplayer2: allow prepare DRM in non-prepare states\""
    },
    {
      "commit": "a3cd8681f48863d7cf5f1611f141ca0f73e5ef5b",
      "tree": "1d917df24a54062f7f9db2f63a060239d2fab337",
      "parents": [
        "00174ae636c4160df106f44e3edfc32270cf513c",
        "f707b40645e852fc0ebaafd2685bccda64f439e5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 28 19:45:28 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 28 19:45:28 2019 +0000"
      },
      "message": "Merge changes from topic \"mp2_fix32\"\n\n* changes:\n  Revert \"Revert \"Fix MediaPlayer2Test on 32bit mode\"\"\n  Remove libbinder dependency from libmedia2_jni.\n"
    },
    {
      "commit": "daca30ef426e30f921a6a2d39e07a31d789b837e",
      "tree": "d45a9090880f2fd8a7045ed40719b2fead1dfc00",
      "parents": [
        "b5a34d6debebc05a16775b14f064964aa6a313c5"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Jan 25 14:59:54 2019 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Jan 28 11:26:47 2019 -0800"
      },
      "message": "mediaplayer2: allow prepare DRM in non-prepare states\n\nRequired because mediaplayer2 needs to prepare DRM for pending playlist\nitems while mediaplayer2 is in `started` state.\n\nBug: 123425309\nTest: MediaPlayer2DrmTest\nChange-Id: I20bd2afdc415e716a20cfca7c6b97d62e599aaad\n"
    },
    {
      "commit": "79e337367c2c7bda80a89fa188966e5934b854ea",
      "tree": "45d5cb02d0e18a1cf8cf16e7f71e792e44b228d9",
      "parents": [
        "70eb2960026daced74a70411404dfd98800fe719"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Jan 25 16:35:26 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 28 09:37:02 2019 -0800"
      },
      "message": "Remove libbinder dependency from libmedia2_jni.\n\n-BufferingSettings doesn\u0027t need to be a parcelable.\n-Use libstagefright_foundation_without_imemory.\n\nTest: build and MediaPlayer2Test\nBug: 123361167\nChange-Id: I1c02bc4ed38a697950a9fd31f9fa395a219927e4\n"
    },
    {
      "commit": "342d98554de86ed62580bd142dd4ab70c9cb764e",
      "tree": "c79d9ae418102269d979377f2310b12758460ab1",
      "parents": [
        "8d1e0c5b73c03d6d2e1d00c1ad3126b9b92d6cd6"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Jan 27 17:14:15 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Jan 27 17:16:30 2019 +0000"
      },
      "message": "Use the correct headers for header_only_library dependencies on\nlibnativehelper.\n\nBug: 119840313\nTest: m -j100\nChange-Id: I9d9afeb8713cc8daca486c6f96fff09f6f8a473e\n"
    },
    {
      "commit": "89269d69b4d93deed90aa50881d0a5d88b3fd8d9",
      "tree": "b90605dcd07492d22dede6ac3295190892982520",
      "parents": [
        "ba8c48429d82d22737a84d2713fa1880a4654cbd"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun Jan 20 14:46:19 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 24 15:57:51 2019 -0800"
      },
      "message": "MediaPlayer2 using the new mediametrics stable interface\n\nconverts mediaplayer2 to use the new interface.\n\nBug: 112555455\nTest: boot / relevant ctsMediaTests\nChange-Id: I186c1931408414e9fd42bbc501e636a9624b6a6e\n"
    },
    {
      "commit": "c657c0dab64de5a8832a7d367e26e0a10ef90c8b",
      "tree": "09ece53a4696eb0da525219a40f02a147dc6732d",
      "parents": [
        "59041cc73732e16e74ac8ee3b7d561cd909a915e",
        "5253b344a9d3f7007958561dacddb8da732e63f0"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 16 17:48:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 16 17:48:22 2019 +0000"
      },
      "message": "Merge changes from topic \"mp2_move_to_apex\"\n\n* changes:\n  Include libmediaplayer2_jni to media apex\n  Ensure that Thread(/*canCallJava*/ true) is attached to the VM.\n"
    },
    {
      "commit": "7aafa219855503a52acae4e0526a31b4177a835e",
      "tree": "4d030f166d41069837fd7e2badacfaab33e44838",
      "parents": [
        "83af7a3c9eb82028ff26561e58615cd34ca4ec8c"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Jan 11 11:08:24 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jan 15 11:48:26 2019 -0800"
      },
      "message": "Ensure that Thread(/*canCallJava*/ true) is attached to the VM.\n\nThis is supposed to be done by runtime, but when libutils is\ndual-loaded with linker namespace, CreateThreadFunc should be\ninitialized separately within the namespace since libutils keeps\nit in a global variable.\n\nTest: build \u0026 boot \u0026 atest MediaPlayer2Test\nBug: 112766913\nChange-Id: I23eac262c8b88178bf151d7c6ab49a48af932001\n"
    },
    {
      "commit": "54c88096751d736a4b91d1f3eb0c6e0d5c3470ea",
      "tree": "4be4375a8807d2f540eace2bc32cedce62462b85",
      "parents": [
        "cccfb3fe54e4d45a6f02e197765eebfbd5926c34"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 11 14:06:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 14 16:59:13 2019 +0000"
      },
      "message": "Remove libmediaextractor\n\nMove DataSourceBase and MediaSource to libstagefright, and\nMediaBuffer, MediaBufferGroup and MetaData to libstagefright_foundation.\n\nTest: build\n\nChange-Id: I4f0ae01d40a32f4b773a2f74d5f2ae136e375322\n"
    },
    {
      "commit": "d4ece817f96685f89892d9e0305096be6208c451",
      "tree": "3b04caa49b5006fcf4b1986f701e3e0ad013d463",
      "parents": [
        "723be42fdbbbfe0e50c044952496acb313b2a7a6",
        "b2521645be978f16844aff42222b363ef9d62930"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 09 21:12:22 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 09 21:12:22 2019 -0800"
      },
      "message": "Merge \"NuPlayer2Renderer: support 8/16 bit and float PCM types\" am: d19b646398\nam: b2521645be\n\nChange-Id: Iefe37b747371593f193fcdc37afe4acf269410ef\n"
    },
    {
      "commit": "b2521645be978f16844aff42222b363ef9d62930",
      "tree": "2a141039dfa407cd89ee3f92cc8d9079c024f0b4",
      "parents": [
        "f7f5ab992415e8b62e3a63c054072cfcff04758a",
        "d19b646398356eb6c883246562c291e344a7203b"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 09 21:00:45 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 09 21:00:45 2019 -0800"
      },
      "message": "Merge \"NuPlayer2Renderer: support 8/16 bit and float PCM types\"\nam: d19b646398\n\nChange-Id: I06eb5ea1be91af3c56644f440018bfe4041f91c6\n"
    },
    {
      "commit": "d19b646398356eb6c883246562c291e344a7203b",
      "tree": "c5cf71c436bde0db710469212f9ff8a797ead149",
      "parents": [
        "bccd73e209ca599c9e585ae23b62e30df094f1af",
        "4a16e2ae916cad2f070c85a0052be938377c33ce"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 10 04:39:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 10 04:39:46 2019 +0000"
      },
      "message": "Merge \"NuPlayer2Renderer: support 8/16 bit and float PCM types\""
    },
    {
      "commit": "4a16e2ae916cad2f070c85a0052be938377c33ce",
      "tree": "b6072395cf870bfbb1baba83ef58448be332dfcc",
      "parents": [
        "c6b48fe6272db5d3ca910598565c2b48b547ce7f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jan 04 15:26:48 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 09 23:48:12 2019 +0000"
      },
      "message": "NuPlayer2Renderer: support 8/16 bit and float PCM types\n\nTest: cts\nBug: 120749869\nChange-Id: I95f9865e7cea00e57f3faebeefd5cd095736201d\nMerged-In: I95f9865e7cea00e57f3faebeefd5cd095736201d\n"
    },
    {
      "commit": "fc9f40f380004ac7f23aa9f4312fdf227181235f",
      "tree": "4cc14286eb62e339895861bb90d2c4731bc67ccc",
      "parents": [
        "435ba2e250da24bed173d4ca7415f5adb5f7846b"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Fri Jan 04 14:15:28 2019 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Jan 09 10:47:02 2019 -0800"
      },
      "message": "jWakeLock\n\nreplace native binder with java PowerManager in JWakeLock\n\nTest: MediaPlayer2Test\nBug: 122470692\nChange-Id: I488758892d225ca31defbe3d96ebf68a57dc9e35\n"
    },
    {
      "commit": "58dc71df204a9b222d252e0cc1dfbe5ed4ba9a90",
      "tree": "fd6bf8eeae532e0246a81379414c31757ce28de7",
      "parents": [
        "261822541bc23754c4ebe784895230bb3c0e752a",
        "362db1aded3ba358e831a4de4d1ed8d8eaed6b7b"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 08 15:59:15 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 08 15:59:15 2019 -0800"
      },
      "message": "Merge \"NuPlayerRenderer: handle fractional audio data before EOS\" am: 18c84ba4ec\nam: 362db1aded\n\nChange-Id: Ie616a6129ae619b8a375572dd8050c203bcb7f44\n"
    },
    {
      "commit": "362db1aded3ba358e831a4de4d1ed8d8eaed6b7b",
      "tree": "7e93bcf16ef486605d8fb1493068e62f698e0e52",
      "parents": [
        "d80c35a12d68c1f4c11477eeb32f84f0e49d640d",
        "18c84ba4ec155b58bdfa397b3fa93fb2b7bda284"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 08 15:55:04 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 08 15:55:04 2019 -0800"
      },
      "message": "Merge \"NuPlayerRenderer: handle fractional audio data before EOS\"\nam: 18c84ba4ec\n\nChange-Id: I025ac75e18bfb29e1104154659a1c83176740086\n"
    },
    {
      "commit": "353c3d3663e88a205925f98da5257d025de6ea43",
      "tree": "38c1821f7cab561bd7995a1d873c94d23b7bb5c7",
      "parents": [
        "c041f3043a72f17908d740175d0a00a8098df5b7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jan 04 12:44:38 2019 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 08 10:58:02 2019 -0800"
      },
      "message": "NuPlayerRenderer: handle fractional audio data before EOS\n\nWhen audio reaches EOS and MediaClock has not started, use video\ntimestamp to start MediaClock.\nTest: MediaPlayer sends MEDIA_PLAYBACK_COMPLETE\nBug: 122052445\n\nChange-Id: Ia37643b8d5260cda0e7cde22dea883804511cff6\n(cherry picked from commit 1225b9329367ab30587983c78f343734c33af4d4)\n"
    },
    {
      "commit": "797a0e9ea4e3d16e459b559a8b94d62bc5b04638",
      "tree": "091d11806c2c295c1629afbd11617ec4392f1a6e",
      "parents": [
        "4400c9791fefc04d0c991d5f9461a67db151045d",
        "919f85f20efe47e23a37b053a05ff071a770d1d0"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jan 08 01:31:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 08 01:31:25 2019 +0000"
      },
      "message": "Merge changes from topic \"mp2_ndk\"\n\n* changes:\n  MediaPlayer2: replace IPCThreadState with libbinder_ndk.\n  Completely remove Metadata from MediaPlayer2.\n"
    },
    {
      "commit": "919f85f20efe47e23a37b053a05ff071a770d1d0",
      "tree": "a6d13bfe4931b27376f7ecef278dffe30652fe5d",
      "parents": [
        "2c66f89ff17cc327ace5a6104676a6197a15585e"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 14:58:00 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 15:06:26 2019 -0800"
      },
      "message": "MediaPlayer2: replace IPCThreadState with libbinder_ndk.\n\ncheckCallingPermission() testing in dumpPlayers is dropped\nsince MediaPlayer2 is not running on system service so the\nchecking in MediaPlayer2 is not meaningful.\n\nTest: make libmedia2_jni\nBug: 112766913\nChange-Id: I8af753f0d83689f92348ecf986c30c75d7ae12ff\n"
    },
    {
      "commit": "2c66f89ff17cc327ace5a6104676a6197a15585e",
      "tree": "048f570dd414fa247e42e316f0b95e61073f1449",
      "parents": [
        "c186a6f9409d7f51c2b82d055b792657d60bb07f"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 14:39:17 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 15:06:23 2019 -0800"
      },
      "message": "Completely remove Metadata from MediaPlayer2.\n\ndeprecated Metadata class has dependency on libbinder, so this change\nremoves Metadata usage from MediaPlayer2 completely.\n\nTest: make libmedia2_jni\nBug: 112766913\nChange-Id: I32b0ae618c524a32afee07a21e950dbfad3e5750\n"
    },
    {
      "commit": "c26cc64671b201face4f31e8b78198cfc0f1510b",
      "tree": "abf8d102726f2d338c6383bab856df77050a5fb0",
      "parents": [
        "c186a6f9409d7f51c2b82d055b792657d60bb07f",
        "896b4d6dd04b8624fdb46963f37e494461a4ec45"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 07 19:38:27 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 07 19:38:27 2019 +0000"
      },
      "message": "Merge \"NuPlayer2Renderer: support 8/16 bit and float PCM types\""
    },
    {
      "commit": "896b4d6dd04b8624fdb46963f37e494461a4ec45",
      "tree": "2c221b1e3e7af57db8ca0b7b9f882df3b8659b0d",
      "parents": [
        "8bd05d3cb43121321053e10f1836b5da6f61271f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jan 04 15:26:48 2019 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jan 04 15:26:48 2019 -0800"
      },
      "message": "NuPlayer2Renderer: support 8/16 bit and float PCM types\n\nTest: cts\nBug: 120749869\nChange-Id: I95f9865e7cea00e57f3faebeefd5cd095736201d\n"
    },
    {
      "commit": "1225b9329367ab30587983c78f343734c33af4d4",
      "tree": "5577c8387b58e6524d34f50c131f6fcc321012b7",
      "parents": [
        "8bd05d3cb43121321053e10f1836b5da6f61271f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jan 04 12:44:38 2019 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jan 04 12:52:29 2019 -0800"
      },
      "message": "NuPlayerRenderer: handle fractional audio data before EOS\n\nWhen audio reaches EOS and MediaClock has not started, use video\ntimestamp to start MediaClock.\nTest: MediaPlayer sends MEDIA_PLAYBACK_COMPLETE\nBug: 122052445\n\nChange-Id: Ia37643b8d5260cda0e7cde22dea883804511cff6\n"
    },
    {
      "commit": "355ac5a51da9a0ce6e3f7f89100f9eec34747675",
      "tree": "a95e361f48468b2a200ffe8b0b38fd4e9bd562a5",
      "parents": [
        "0428560419f7dcaa48c01245c4d9adcbc06f2b00",
        "f60cbe5665dea5b0b244f57815ab49db5a652eea"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Dec 23 20:37:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Dec 23 20:37:50 2018 +0000"
      },
      "message": "Merge \"nuplayer2: pass crypto info from extractor to decoder\""
    },
    {
      "commit": "f60cbe5665dea5b0b244f57815ab49db5a652eea",
      "tree": "c3cccffd83d22a9fbacaad30e6da4f38e0d3de82",
      "parents": [
        "73142871e81c42374cb85390efc1fb7adca230f3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Dec 21 13:32:36 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Dec 21 13:32:36 2018 -0800"
      },
      "message": "nuplayer2: pass crypto info from extractor to decoder\n\nBug: 121387877\nTest: MediaPlayer2DrmTest\nChange-Id: Iabe59aaffe2b0fae2f5a8420566b41ff324d0758\n"
    },
    {
      "commit": "2ba48f84870b0d266d6dd244d9e0642617719176",
      "tree": "28b80c52e5bd2f36830a8902281a243758152f8c",
      "parents": [
        "d4b7efe5b000f1d0c1534690a85242b4de6b54f0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 21 10:36:15 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 21 10:37:18 2018 -0800"
      },
      "message": "Remove some more unused libraries from media libraries\n\nTest: build\n\nChange-Id: I1d7af4398f383305a8dd3a61a19a587e7d8ad01c\n"
    },
    {
      "commit": "c37b1908b6a054e4331465bda7d36497b8746001",
      "tree": "c67dcd817f5432b5fd568f247fcf17d9feb932cc",
      "parents": [
        "48d4fff79246d1a988b5538f9f9db5fc57746f9c"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Dec 18 11:36:13 2018 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Dec 19 18:48:40 2018 -0800"
      },
      "message": "Video frame scheduler using public APIs\n\nBug: 112555500\nTest: MediaPlayer2Test\nChange-Id: Ie4b21964c761b4350b50b23271b28cf9dcd933ad\n"
    },
    {
      "commit": "17944af5b111ade413e8e71a34898ccf8a51c15a",
      "tree": "fd28b2e1a64b2bdb75a0ff20f75c9e125da3e67d",
      "parents": [
        "d00c4607a5f7d25dfe925a20a1fc5fd7cfcee67a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 13 18:13:10 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 13 20:04:45 2018 -0800"
      },
      "message": "mediaplayer2: add srcId for source dependent API\u0027s\n\nTest: cts\nBug: 112549021\nChange-Id: I619c85af8f59cb5956ca0b399e918ea38e3b32b5\n"
    },
    {
      "commit": "92466dd60772c38e563ec42b6b06ef5185d68396",
      "tree": "afb475ba5c923b6ab35354b896c04f84640deb3e",
      "parents": [
        "b21b5ab7c6f9925c8b63d79cefcfbd2d633868d2",
        "18343452006468a83457b9623b082f64fb479169"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 13 05:45:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 05:45:21 2018 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master\""
    },
    {
      "commit": "cf80f34cc5e8d16d939df21879d770200defaf6e",
      "tree": "b5b29fbe679c05db09412a5a09ddbb41111226b9",
      "parents": [
        "a92e90e069a8d3d1163d46ac40fc57f260ac6d51",
        "e6c208f5c4a08f5ea47910ce6a4a5ae009182e8b"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 17:05:05 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 11 17:05:05 2018 -0800"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in libmediaplayer2.\" am: b13d332cf6 am: 981c2e3268\nam: e6c208f5c4\n\nChange-Id: Ib0b63974f20965a59c771343eaf1f647c5cb17ec\n"
    },
    {
      "commit": "e6c208f5c4a08f5ea47910ce6a4a5ae009182e8b",
      "tree": "f34805f6202f5de15cae3fabddb7c4daa16c9c33",
      "parents": [
        "d06f3a304f2fd0fced9e09fee58a7b8b295ef750",
        "981c2e32683ff06edd88157a9fd59c04b332e158"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 16:58:49 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 11 16:58:49 2018 -0800"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in libmediaplayer2.\" am: b13d332cf6\nam: 981c2e3268\n\nChange-Id: I010d8afaa33dbeb4b0428cfbf91a848eeb926887\n"
    },
    {
      "commit": "981c2e32683ff06edd88157a9fd59c04b332e158",
      "tree": "206aca452a4e1aa530d7c6ab3845a2aecb88ef6d",
      "parents": [
        "e544aba6cbef0be475c4235a658cd8dd32614a26",
        "b13d332cf65b52a212462e9309f4b3b76d624684"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 16:23:10 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 11 16:23:10 2018 -0800"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in libmediaplayer2.\"\nam: b13d332cf6\n\nChange-Id: Ie0f6cd6db03e2afb460672410636d3fe503f3727\n"
    },
    {
      "commit": "18343452006468a83457b9623b082f64fb479169",
      "tree": "1999a7d544c9bd5b1b4c09a536f0199fd93f1805",
      "parents": [
        "c6b48fe6272db5d3ca910598565c2b48b547ce7f",
        "0cf77658fa992cef0247484ba6b43526a9d2d571"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Dec 11 13:59:12 2018 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Dec 11 13:59:12 2018 -0800"
      },
      "message": "DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master\n\nBug: 120502534\nChange-Id: Ifdd73b6dfcf3791fb8dae2b1796a34bb56aea190\n"
    },
    {
      "commit": "d42529d5cc9b5949fd3ec449876d44142c6506b1",
      "tree": "c7c9ce218ac87294bb0a29ee3ec2c26e893b967e",
      "parents": [
        "14c577fac81b8fdcc75e4bf9243f16bd624ba58b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:53:10 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:53:10 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings in libmediaplayer2.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: Iac1ca7c7dc6e20624714e1f279036dd3cf0f9821\n"
    },
    {
      "commit": "bffb47d61fcea60a900c98f37632c93ec1a5b2d6",
      "tree": "d5f2fa0af37d15514e0662d283a9271ca7b8d033",
      "parents": [
        "25427e247dc56d8bd2aad46bc628c696fc47c1a3",
        "0cf77658fa992cef0247484ba6b43526a9d2d571"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Dec 10 10:04:56 2018 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Dec 11 20:26:00 2018 +0000"
      },
      "message": "DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into stage-aosp-master\n\nBug: 120502534\nChange-Id: I674b89442ad4fb75081fb5b8fdbb8ea89be97c5c\n"
    },
    {
      "commit": "f66521bbda90858dabcac6b3193e14ce235a4714",
      "tree": "88f365ebd1fcf7eaf0ca0c6d6b1d08acbb7cc540",
      "parents": [
        "d0f1bffe98354848dc23f4492d8f86987459f179"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Dec 10 19:33:05 2018 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Dec 10 19:35:43 2018 -0800"
      },
      "message": "frameSize using public API\n\nBug: 112549970\nTest: MediaPlayer2Test\nChange-Id: Idde6460d18cfdd59de2cf47531ebd6e0004a5e62\n"
    },
    {
      "commit": "17e1cf21c74d7c76bd98e7e5fd002ee220a67727",
      "tree": "7428011c001871fcc2440bc215222d61e7a89499",
      "parents": [
        "df7d3e08762a077ec6d5c909129472100c9a6649",
        "c3fca0e0d6430ea3eb2a3d710790f32f4a14f3d1"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Dec 07 01:23:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 07 01:23:29 2018 +0000"
      },
      "message": "Merge \"nuplayer2: per-source DRM prepare/release impl\""
    },
    {
      "commit": "df7d3e08762a077ec6d5c909129472100c9a6649",
      "tree": "c5b6e36454a1d838d7ac56fb52c1a7cc5754cff8",
      "parents": [
        "0209452544dfd347de2ddb4e8cfaf89f51bc039c",
        "6671ea8a46da5cbeaba2da4c623353441758cf50"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 06 17:16:25 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 06 17:16:25 2018 -0800"
      },
      "message": "Merge \"Remove CFI diagnostics.\" am: 64ac8c6301 am: b89b976d77\nam: 6671ea8a46\n\nChange-Id: I4de33cfd8451cceab9ca234d884522e6e9489b08\n"
    },
    {
      "commit": "6671ea8a46da5cbeaba2da4c623353441758cf50",
      "tree": "028c90a937c4b8e8681bd7648c89faff1b325597",
      "parents": [
        "6ff493b2fe11e3ced040c16724f35c76a3e740a1",
        "b89b976d77807ba33edeafc9976cdf7b462adcaf"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 06 17:00:56 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 06 17:00:56 2018 -0800"
      },
      "message": "Merge \"Remove CFI diagnostics.\" am: 64ac8c6301\nam: b89b976d77\n\nChange-Id: I0f2c332719da81447afb695c124d7b6c6c16b80d\n"
    },
    {
      "commit": "b89b976d77807ba33edeafc9976cdf7b462adcaf",
      "tree": "9a6f5b07dc7952f817c384e5335b40f4a91118e5",
      "parents": [
        "ddb6b5e7543b1a8c7ba91113fffa8de0bd1fa4ee",
        "64ac8c6301d0e809d2fc0935dbf16bf318b4940d"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 06 16:26:25 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 06 16:26:25 2018 -0800"
      },
      "message": "Merge \"Remove CFI diagnostics.\"\nam: 64ac8c6301\n\nChange-Id: I1b53ec592c27efb662a6f6204b7346cf8fe0cd80\n"
    },
    {
      "commit": "db19f572b941e62ffd688f2198da122977c55a28",
      "tree": "3713ab1298069be97a599b88c5cae6ef0900bee8",
      "parents": [
        "8c545704ea199e13c23f47cd8f4067bcdc25071f"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 06 10:33:28 2018 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 06 10:53:33 2018 -0800"
      },
      "message": "Remove CFI diagnostics.\n\nRemove diagnostics mode from CFI across the board. This should reduce\nperformance overhead and also allows the minimal runtime to work when\nother ubsan sanitizers are enabled. CFI stack dumps should include a\ncfi related function, so it should be apparent when a crash is CFI-related.\n\nBug: 117417735\nTest: make -j\nChange-Id: Id2cb6cb64425c4c89c031d93156fb1a20be5fa7b\n"
    },
    {
      "commit": "c3fca0e0d6430ea3eb2a3d710790f32f4a14f3d1",
      "tree": "c29efd138c978f5a04a2035899501763be4fa4b5",
      "parents": [
        "71738ebf94589faa5aef3c1ba8d53cd17b7fec0f"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Dec 04 17:08:04 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Dec 06 18:44:39 2018 +0000"
      },
      "message": "nuplayer2: per-source DRM prepare/release impl\n\nBug: 119675660\nTest: MediaPlayer2DrmTest\nChange-Id: I6252f33560190854b3dde218e303edd0331f30ac\n"
    },
    {
      "commit": "3c3728de60aba0d98c7fa3576a17b1a79582dd33",
      "tree": "aa58e8496e9379b34ac39aa331610817b4033a87",
      "parents": [
        "b6670e3dbe3ca63d6766ae45de809ea97590d817"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Dec 04 17:06:36 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Dec 04 22:59:55 2018 -0800"
      },
      "message": "mediaplayer2: per-source DRM prepare/release iface\n\nBug: 119675660\nTest: MediaPlayer2DrmTest\nChange-Id: I583be4de45cb7de4e1638fb3442511dbabc661b3\n"
    },
    {
      "commit": "608be269771c276d6059c40a2d5f1c87e61725fe",
      "tree": "5e0edfd9d0e87677e75ebb0b3016333fa0467efc",
      "parents": [
        "c55606b22fb908f030150b82194ded0c2038cab3",
        "039224f18894843ea9395d474c0d2051d036f329"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 30 03:10:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 03:10:57 2018 +0000"
      },
      "message": "Merge \"NuPlayer: add missing getSelectedTrack in CCDecoder\""
    },
    {
      "commit": "039224f18894843ea9395d474c0d2051d036f329",
      "tree": "799ce989f5cffd1cedd04a5c46ef046547a72d2e",
      "parents": [
        "938b6ca467c19285ec89b98316a13891012887d4"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 29 17:25:17 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 29 17:25:17 2018 -0800"
      },
      "message": "NuPlayer: add missing getSelectedTrack in CCDecoder\n\nTest: cts\nBug: 119938763\nChange-Id: I0dcc35ec65f0912d43aa5b0e3a797334d2581a78\n"
    },
    {
      "commit": "8c8b57a94840bbcf4852eb97195c83bfb8b05bf3",
      "tree": "d9dac7cdcafa7cc66e06561e4dcac8cf50ed854c",
      "parents": [
        "55bb8a1dcce15a931c35d3705afe19c52d06f881"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 28 11:09:50 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 28 11:09:50 2018 -0800"
      },
      "message": "NuPlayer2: fix looper name\n\nTest: cts\nBug: 112549021\nChange-Id: Ied2b37b4812722aacef634be318c79f868c9f692\n"
    },
    {
      "commit": "78c95f34f294a68e185196230b97dbae44bbb1a8",
      "tree": "ccd630685ce3bb7d75fdc651cd06b1c9f1e02b74",
      "parents": [
        "a820175f1133e16657c18f7acbd47b60a8258d16",
        "28d27f5293c28fcbbba425311885e3d00eb5fbaa"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Nov 21 04:17:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 21 04:17:58 2018 +0000"
      },
      "message": "Merge \"Audio attributes using public API\""
    },
    {
      "commit": "afc436f6c0eb2be3697482f5c5561d1e7b3420ae",
      "tree": "485cd2417f587c8ffb30e7013f0c601deee11267",
      "parents": [
        "d4a3256ad7ecef84cfc3022f6a1091cbd141af53"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Nov 20 19:00:52 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Nov 20 19:00:52 2018 -0800"
      },
      "message": "JAudioTrack: replace MediaPlayer2Impl with MediaPlayer2\n\nTest: cts\nBug: 112549970\nChange-Id: I29205dbab0bb09187d0c7c2b5c8ca2d5c3853f32\n"
    },
    {
      "commit": "28d27f5293c28fcbbba425311885e3d00eb5fbaa",
      "tree": "6f3745f6470c4fb1c85bfd27d3105168adf69058",
      "parents": [
        "d4a3256ad7ecef84cfc3022f6a1091cbd141af53"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Nov 19 14:08:39 2018 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Nov 21 00:28:32 2018 +0000"
      },
      "message": "Audio attributes using public API\n\nBug: 112549970\nTest: MediaPlayer2Test\nChange-Id: Ia4091ff59172a9cd040d33bc6c2edd2ea7195f70\n"
    },
    {
      "commit": "2a6038e529574bfa183ab1de1fffd01a1504fc3a",
      "tree": "9df5355e91eac1f55bf16c00256dd135d8539a60",
      "parents": [
        "c514e5467caa77730c40874ee72869c13c533647",
        "48c1623453ff6f30fd5d8d640b84c71782de1544"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Nov 19 17:26:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 19 17:26:54 2018 +0000"
      },
      "message": "Merge \"JAudioTrack: fix uninitialized mFlags\""
    },
    {
      "commit": "48c1623453ff6f30fd5d8d640b84c71782de1544",
      "tree": "5cbfa81fb4b1ebab803b81c1200b25d1ae975105",
      "parents": [
        "d1f7ce14c1b97facb2e4fd4bc78677f70092953f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sat Nov 17 17:22:59 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sat Nov 17 17:40:23 2018 -0800"
      },
      "message": "JAudioTrack: fix uninitialized mFlags\n\nTest: MediaPlayer2Test#testPlaybackRate is not flaky any more\nBug: 112549970\nChange-Id: Ieb80acd89bf578bdd683f0344dfe40ffa0d40c08\n"
    },
    {
      "commit": "9a4f4c23bf39f9e8169a62c55b3ccbde3e26693f",
      "tree": "d7b17dedd3f24d02ae22ce7b130f8400782395eb",
      "parents": [
        "830b9aa910281f8a2a4b43d8e857492bfb9c477d",
        "cd0e42759f3820bb42522a7f60396957d40126e4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 17 13:25:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 17 13:25:15 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: replace canOffloadStream with public API.\""
    },
    {
      "commit": "23658641debafa1af12459a5f3c8e907157366b7",
      "tree": "d8ea3f5de441283a11cf33f970e608e92ce6c207",
      "parents": [
        "eacf0137cfef6efc1df0bb80e4e168b34e2e38a4"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Nov 15 10:26:16 2018 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Sat Nov 17 00:04:58 2018 +0000"
      },
      "message": "MP2: replace AudioSystem APIs with public ones in mediaplayer2.cpp\n\nBug: 112549970\nTest: MediaPlayer2Test, RoutingTest\n\nChange-Id: Ib2520c29370dee88667e64044b3fcdc053623dbf\n"
    },
    {
      "commit": "cd0e42759f3820bb42522a7f60396957d40126e4",
      "tree": "e23f104e3caaf89f884d190bebe96dc1a84a7126",
      "parents": [
        "08feec53d2d7760bb6639dc4c93b33f0bd51b79c"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Nov 15 10:49:14 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Nov 15 10:50:10 2018 -0800"
      },
      "message": "MediaPlayer2: replace canOffloadStream with public API.\n\nThis was missed in the previous change, I85c689b029a821\n\nTest: build\nBug: 112549970\nChange-Id: Id9c30f5a1fc759c635662e5efd0b0d824182f502\n"
    },
    {
      "commit": "fbc6186887360a8b2169fbc9979b8f69a50080c5",
      "tree": "ccc2ed8afa207abd5d0c5da1def985e0d43a6abf",
      "parents": [
        "0afd92bad77b98b831e1c26a1d4000c5d3e6e3c5",
        "203b0533f82b75105e7b8ab2c68c3663397069fe"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Nov 15 02:02:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 15 02:02:38 2018 +0000"
      },
      "message": "Merge \"Fix MediaPlayer2AudioOutput::setAudioAttributes()\""
    },
    {
      "commit": "203b0533f82b75105e7b8ab2c68c3663397069fe",
      "tree": "a7399a313a1132abeabd4e2c56caaf2d9f8f2a21",
      "parents": [
        "54cbc29870372ef9d5763c2a86d86508bc351d1b"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Nov 14 10:51:37 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Nov 14 16:19:37 2018 -0800"
      },
      "message": "Fix MediaPlayer2AudioOutput::setAudioAttributes()\n\nregression from Ibe19c8a259c735ea2b5822f769babaf4\n\nTest: MediaPlayer2Test\nChange-Id: If1deea900858ba817021d573d859ca8e733e260e\n"
    },
    {
      "commit": "946bdb362d8bd54afd95c1270c1b6905a298f331",
      "tree": "c50396c7dec306f3f44303b83a25409f55243988",
      "parents": [
        "54cbc29870372ef9d5763c2a86d86508bc351d1b"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Nov 14 10:12:00 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Nov 14 16:19:04 2018 -0800"
      },
      "message": "MediaPlayer2: use AudioManager.isOffloadedPlaybackSupported\n\nTest: MediaPlayer2Test\nBug: 112549970\nChange-Id: I85c689b029a82122ff148c381a021657db2893d4\n"
    },
    {
      "commit": "a60eaa87f015d2c75c55672067574a641173c7c5",
      "tree": "fa91b6debc58b8fb1e17b7168b7ab88e8889ee06",
      "parents": [
        "ba92a60c8c322e0f795513c2eb67a42c7ae0b3c5",
        "c2465c595302a4badd81ac969e0c6d1d5f98e71f"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Nov 13 17:14:34 2018 +0000"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Nov 13 14:01:58 2018 -0800"
      },
      "message": "MediaPlayer2: create MP2AudioOutput in constructor\n\nMove MP2AudioOutput creator from setDataSource() to constructor.\nTest: MediaPlayer2Test, RoutingTest\n\nChange-Id: Ibe19c8a259c735ea2b5822f769babaf4d7f2bed0\n"
    },
    {
      "commit": "c2465c595302a4badd81ac969e0c6d1d5f98e71f",
      "tree": "6f80489585036e3a2e15cf7cfaec14e5645d20da",
      "parents": [
        "158ce41988f3706465514265eed1d7e4b6fb123c"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Nov 12 11:56:05 2018 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Nov 12 16:49:11 2018 -0800"
      },
      "message": "MediaPlayer2: directly pass AudioAttributes to AudioTrack without native parcel conversion\n\nthe AudioAttribute jobject now is directly passed to AudioTrack without native parcel conversion.\n\nChange-Id: I5e44a3b826452e593c89904caced924cff5f0026\nTest: android.media.cts.MediaPlayer2Test, android.media.cts.RoutingTest\n"
    },
    {
      "commit": "0d7042d59a8f4590e88331f95043832c1a46ab3a",
      "tree": "2b82c0f301c70b9786afa43a9a4893c97a1b4939",
      "parents": [
        "62cab4de9321f1147d9fa3f4be8d4a97d28b494d"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Oct 12 16:52:14 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Nov 09 14:33:47 2018 -0800"
      },
      "message": "MediaPlayer2: remove AudioManager private API usage\n\nPrivate API AudioManager.getDevicesStatic() is being used in\nMediaPlayer2 for conversion between id \u003c\u003d\u003e AudioDeviceInfo.\nThis conversion was added to talk with internal native AudioTrack API,\nbut in MediaPlayer2 since we will use public java AudioTrack API,\nthe given AudioDeviceInfo can be directly passed to java AudioTrack\ninstance.\n\nTest: CtsMediaTestCases:android.media.cts.RoutingTest\nBug: 112767549\nChange-Id: I9aeae02202edb6b5f0eb72b4f4dd3c936103ced2\n"
    },
    {
      "commit": "f872691537da559a5d3f755604dc52e430d12617",
      "tree": "f053337222092b30abb6bf3ec00d9a8df5f10adb",
      "parents": [
        "c25db9303131d04d15f2ca28f1a8f9153becf449"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Oct 17 13:31:26 2018 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Nov 08 14:18:11 2018 -0800"
      },
      "message": "Enable JAudioTrack.\n\nMediaPlayer2 AudioOutput using public APIs.\n\nBug: 112549970\nTest: android.media.cts.MediaPlayer2Test, android.media.cts.RoutingTest\nChange-Id: Id76d80c040a52fd2ab724999697e222495906aec\n"
    },
    {
      "commit": "4d432f1d0b33b54e49fc21fd583f57e1e86966f1",
      "tree": "f07a3a595d607b972043218c33337c5a81414b3f",
      "parents": [
        "69c9844bed34c367224d5f6219e8410664b2119b"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 01 12:29:06 2018 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Nov 02 20:04:14 2018 +0000"
      },
      "message": "AMediaDataSourceWrapper: keep DataSource sp alive\n\nBug: 118506674\nTest: android.media.cts.MediaPlayer2Test#testConsecutiveSeeks\nChange-Id: Iafa26d6a0fa6ad4aa7dee696fff1673075e51624\n"
    },
    {
      "commit": "e72cb45e3a13e4f6175e53e672ffcb2995c78841",
      "tree": "e66b61cf1549b851fe1efbf63b03a13fd96ccffe",
      "parents": [
        "34056aea2f45149dcbcda09940a8733f83101303"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 30 11:44:59 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 30 14:18:49 2018 -0700"
      },
      "message": "Fix implicit-fallthrough warnings. DO NOT MERGE.\n\nThese changes are not needed in goog/master.\n\nTest: make checkbuild\nBug: 112564944\nChange-Id: I02d5cdaacecf06994f6c26328533eccf511009bb\n(cherry picked from commit 03ef7ffc93e07f59bb5a329b57a9b2006b39af0d)\nExempt-From-Owner-Approval: do not block on new warnings\n"
    },
    {
      "commit": "c292a161349ca16ed36b2d27df8f59d72182558f",
      "tree": "937058571ee3e6cdc7aa0cdb4129fb2538ecd489",
      "parents": [
        "9cc2d5ad2f14e5d19da5a543fad72df8d3ce8c00",
        "e31ac8a2decec1ecda02bc9739984c35783fc92c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 25 22:11:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 25 22:11:19 2018 +0000"
      },
      "message": "Merge \"DataSourceDesc: set max time in ms and us\""
    },
    {
      "commit": "e31ac8a2decec1ecda02bc9739984c35783fc92c",
      "tree": "275526fa98f5be607aa5abbb207adf7b5fb1140d",
      "parents": [
        "2d4cf009bb6e7ed9a35971061323ba566bf1a61c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 25 11:06:21 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 25 11:28:54 2018 -0700"
      },
      "message": "DataSourceDesc: set max time in ms and us\n\nTest: cts\nBug: 112549021\n\nChange-Id: I3198cf221dc17b9c6504b3c160121a385a848487\n"
    },
    {
      "commit": "3d2b89b19abacd1c3c07e8f5bc19551a8583bc2a",
      "tree": "743c162572d5b6a152f66041446955f10566865f",
      "parents": [
        "395ac579a9943f712f2a97333ffb67437653d509"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Oct 24 17:53:23 2018 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Oct 24 17:57:44 2018 -0700"
      },
      "message": "GenericSource2: fix data source reset/init\n\nBug: 118307474\nTest: MediaPlayer2Test.testPlayAudio\nChange-Id: I68ab335294a374637f32637be8738db8347c97d3\n"
    },
    {
      "commit": "5106743a12cd1c93a41ddbc392e6d75535fe1967",
      "tree": "5a9efd5ea2a6a6235ffdeec523e299c8a6767da4",
      "parents": [
        "e1a209a6a99048f50fcce8e47088c211801ef4bf",
        "03ef7ffc93e07f59bb5a329b57a9b2006b39af0d"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 23 16:38:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 23 16:38:32 2018 +0000"
      },
      "message": "Merge \"Fix implicit-fallthrough warnings. DO NOT MERGE.\""
    },
    {
      "commit": "2d4cf009bb6e7ed9a35971061323ba566bf1a61c",
      "tree": "cdeb4ed2ac8c737a85847585c8ba941f011fb0e7",
      "parents": [
        "99b5d269d6ef1ceda16306d463468bc566a89ae0",
        "d1864f9a15c52bfbebb4ca4ffa61341087be6046"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 23 00:00:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 23 00:00:02 2018 +0000"
      },
      "message": "Merge \"NuPlayer2: support end position of data source\""
    },
    {
      "commit": "d1864f9a15c52bfbebb4ca4ffa61341087be6046",
      "tree": "4ce78474a2b01e66878e913aa0cca0bf15b78046",
      "parents": [
        "0a0c0278c7c89f0b6a9b5ec75ab13c052d95a4e7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 19 12:34:56 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 22 13:41:12 2018 -0700"
      },
      "message": "NuPlayer2: support end position of data source\n\nTest: cts\nBug: 112549021\nChange-Id: I5143754eb22fa42c3134474c584d986eb6f2b33d\n"
    },
    {
      "commit": "6fde7ab8ebb7b2e8b8c5db291ce56bb95ad0d1e5",
      "tree": "4bdaf25ed182efe235f9164a2588dea611bcf26a",
      "parents": [
        "efd99ec863f5a69f20dfacea3f6f4835962c5362"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 22 10:25:48 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 22 10:25:48 2018 -0700"
      },
      "message": "Allow implicit-fallthrough warnings locally. DO NOT MERGE.\n\nIt will be a global error by default.\nThis change is not needed for goog/master.\n\nTest: make checkbuild\nBug: 112564944\nChange-Id: Ia716882a2796bdb2222067499906b04b15d661d8\nExempt-From-Owner-Approval: do not block on new warnings\n"
    },
    {
      "commit": "49fb89d3a0853ef77ecd533bec586abc65754857",
      "tree": "c5384ccf1b4c014763cb1039ea1e90d95861b3a3",
      "parents": [
        "cab10da0da9d9a991c4b895992b6c0e34d5b8293"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jan 31 17:53:19 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Oct 21 15:09:28 2018 -0700"
      },
      "message": "nuplayer2: remove NuCachedSource2 reference from GenericSource\n\nBug: 63934228\nChange-Id: I6862ca94327df88dddd7afaa125622c64d61516b\n"
    },
    {
      "commit": "03ef7ffc93e07f59bb5a329b57a9b2006b39af0d",
      "tree": "75de1b8b5350807e9dbcbd00eae0636ba1486167",
      "parents": [
        "31215a03a3bf554a5e85b21d8e531674bdeac409"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Oct 19 15:30:09 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Oct 19 15:30:09 2018 -0700"
      },
      "message": "Fix implicit-fallthrough warnings. DO NOT MERGE.\n\nThese changes are not needed in goog/master.\n\nTest: make checkbuild\nBug: 112564944\nChange-Id: I02d5cdaacecf06994f6c26328533eccf511009bb\n"
    },
    {
      "commit": "f01e3127b4fb1d35570c2a081dcf7743c059dbab",
      "tree": "14f99df22307e9ce54d553c44576a47ba6ded194",
      "parents": [
        "f719b86b628797339567a81c76bfdea1a81e557a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 18 11:49:44 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 18 11:49:44 2018 -0700"
      },
      "message": "MediaPlayer2: support start position of data source\n\nTest: cts\nBug: 112549021\nChange-Id: I4062fab27aff101223cfb3924841c8e7c3afa6ce\n"
    },
    {
      "commit": "7398ca0f5376305762a9ed06f5fd7ddc0bb7d626",
      "tree": "cb97fe8f19abb579f3e0a511520376f8f19523f4",
      "parents": [
        "b5be68edecd62d8edbf86fd4858d1ceb81a74b6c"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Oct 15 10:25:12 2018 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Oct 15 12:01:56 2018 -0700"
      },
      "message": "setVolume() function using single input\nTest: run CTS\n\nChange-Id: I758d2754ffda29b433b847d8517e8c9937f4a482\n"
    }
  ],
  "next": "303bd2da085cf1a8509041c1a0bfbc984e8f9a5d"
}
