)]}'
{
  "log": [
    {
      "commit": "fa8be7d2371d66db6c7838060d5729f6fd9374ef",
      "tree": "aa00504b96299a891446e46c81c6b0d72c9aae02",
      "parents": [
        "58ae37b5b34d6a2bddd46494230a58f5fcc3f5e3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 23 12:15:57 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 09 07:41:58 2019 -0700"
      },
      "message": "Split datasource out of libstagefright\n\ninto libdatasource, which contains:\n  DataSourceFactory\n  (Clear)FileSource\n  (Clear)MediaHTTP\n  DataURISource\n  HTTPBase\n  NuCachedSource2\n\nThis is needed to break a circular dependency in an upcoming CL.\n\nTest: build, boot\n\nChange-Id: I34d9937235c78f18f51b18945342a0743e209577\nMerged-In: I34d9937235c78f18f51b18945342a0743e209577\n"
    },
    {
      "commit": "270dd6a1a6fc700dde00f982dcd87bf98e4b73a4",
      "tree": "e8b02ec7624fa1d1a55c0f49fcca1996545fcddf",
      "parents": [
        "8263e3519b6801f019e471efe4a6045b7046e4d3"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Sat Apr 06 04:41:15 2019 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Apr 18 23:55:37 2019 -0700"
      },
      "message": "Make mediaserver listen to Codec2 services\u0027 deaths\n\nTest: Kill media.extractor or mediaswcodec and observe logcat\n\nBug: 130071409\n\nChange-Id: Ie785642da99dfe4ff13e78d878817dae3de9f34a\n"
    },
    {
      "commit": "e4da6c62ba4a9ee1b414b91afcba0c84de0cf329",
      "tree": "ec417eeeef2e81674e8ffac892ea05d07c87ee07",
      "parents": [
        "ea58eede918025b277dadd69192590c4ad0a6b74"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 01 15:01:41 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 01 15:16:30 2019 -0700"
      },
      "message": "Notify software service\n\nBug: 129426284\nTest: manual\nChange-Id: Ie938f73d79574bcfff5818766ded58b280136110\n"
    },
    {
      "commit": "a0c98417c829c0b85ab207c8117a147f6b8c3040",
      "tree": "50cb7fd86e18de4bb75baaacbeaaca8498c1ee6f",
      "parents": [
        "71028253b21dfee4e3908916c4182cd0ea140f11"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 29 12:10:19 2019 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Sat Mar 30 01:46:35 2019 -0700"
      },
      "message": "Notify swcodec crashes too\n\nBug: 129426284\nTest: manual/CTS\nChange-Id: I086a2b8253757f941e4dd2e160490cbb59edb627\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": "259fb46dca67d43ce621fed18faf10c830eadcd0",
      "tree": "a6a48825daa4e129782f6a77cc240eb92c099d40",
      "parents": [
        "6327ed96140c54add317f6354d3e6a7f961a0404"
      ],
      "author": {
        "name": "Ben Romberger",
        "email": "bromberg@codeaurora.org",
        "time": "Tue Aug 07 17:58:53 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 29 16:06:04 2019 -0800"
      },
      "message": "libmediaplayerservice: Check for a possible divide by 0\n\nCheck if variables used in AudioOutput::open()\nare 0 before using them as a divisor.\nBug: 123375287\nChange-Id: I1c65a80a12eda84d11e7526fe0c730cb10565c36\nCRs-Fixed: 2286455\n(cherry picked from commit 9e67171a2f4e2b7dc38017789700f629a3885734)\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "1ec73bea63577c13de6c9373d555c5e4523f3026",
      "tree": "88e27c9f19f77e6c7ee0290bfb26cae7829c5586",
      "parents": [
        "25bae7bb6f4737bc78891eaaade5bdd01178dbd9",
        "255735a38b9d5c3755c7b819bdc8fdaf4357d860"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 27 04:13:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 27 04:13:32 2017 +0000"
      },
      "message": "Merge \"Organize header dependencies\" into oc-mr1-dev"
    },
    {
      "commit": "255735a38b9d5c3755c7b819bdc8fdaf4357d860",
      "tree": "f1c83bce136d5f122f57dc3281ab9d5fa0597f05",
      "parents": [
        "5c2bdf6a7042d68f9ae2d2f58cf3bae1c44fcab9"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Jul 19 11:24:56 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Mon Jul 24 20:29:36 2017 -0700"
      },
      "message": "Organize header dependencies\n\nHeader files that are exported are moved to a specific place for\nexporting.\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\nBug: 63821829\n\nChange-Id: Ia578e3c0dd1ff157335b3a49af896acb922586e8\n"
    },
    {
      "commit": "c01eddb86e01eedc8baca1ad1768c942387b33a8",
      "tree": "1688a3e7653090b02c76a0d61d5424629be5253d",
      "parents": [
        "ef00a24944032e3fcdaef43f81fea87e6297eacf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 21 16:42:41 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 24 21:43:28 2017 +0000"
      },
      "message": "MediaPlayer: Permit VolumeShaper operations on gapless playback\n\nThis allows unducking to occur when VolumeShaper operations\nare applied to the original player.\n\nTest: Automated duck tests\nBug: 63111689\nChange-Id: If2e93b1ccb11216032f24e71ab200668e1e4850d\n"
    },
    {
      "commit": "6b79fa9965c73b2ff3e62cb832305ea93d8b3de4",
      "tree": "d63ce212f95793d0ab034cf8ce266d411c80325f",
      "parents": [
        "dd36008b782ec1da0ded327dc51292d102c690d4",
        "b65bc512d15bc7234354ddc19815ebf24bea3a97"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:49:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:49:21 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6 am: 03fa67202f am: 263d5a2a70 am: 0844e1a3e8 am: e0f4963584 am: 5cc9f8780c am: 93ae13644b am: 50280c1b44 am: 1a1bb632e7 am: d8192c9149 am: 6f7295a384 am: 830ecba34d am: ee04f896ca\nam: b65bc512d1\n\nChange-Id: Id341ee30610d4c1e887a71b0deb1ddef3f325f48\n"
    },
    {
      "commit": "6f7295a38455324f5da41d4e52d0ed0e2fc4b45f",
      "tree": "54f01c7f8f6d850b52276dff61468687b5795618",
      "parents": [
        "bd6594eaf2f01655b91c1a0e57ff82d39b9f0477",
        "d8192c9149430fcc7d618de6a239940bce62d4fa"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:39:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:39:21 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6 am: 03fa67202f am: 263d5a2a70 am: 0844e1a3e8 am: e0f4963584 am: 5cc9f8780c am: 93ae13644b am: 50280c1b44 am: 1a1bb632e7\nam: d8192c9149\n\nChange-Id: I25ed67aa5671f7484dc99d3d79e0ed33125117f6\n"
    },
    {
      "commit": "d8192c9149430fcc7d618de6a239940bce62d4fa",
      "tree": "143836ec2b559ed6e70bef438c3ef2c73e864a35",
      "parents": [
        "e68844ffb058d7ead7392fea55db59a2a85aa6bf",
        "1a1bb632e754c9d2f07d1d98a51a072055a0b677"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:36:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:36:19 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6 am: 03fa67202f am: 263d5a2a70 am: 0844e1a3e8 am: e0f4963584 am: 5cc9f8780c am: 93ae13644b am: 50280c1b44\nam: 1a1bb632e7\n\nChange-Id: I7cd886d0bbe96dcf8aafe082649d2a9a7c1c303e\n"
    },
    {
      "commit": "50280c1b44da60acf6f9cc3df8dc8e90db374d7c",
      "tree": "7bec8d1ad2b64f1c9663e1dd9afbbc68c0b70ab6",
      "parents": [
        "1feb9dca54f002ead236c432858e509383345a1d",
        "93ae13644bb8e2e1a7fbcb3c4dc1dd2c4eae57c5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:30:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:30:50 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6 am: 03fa67202f am: 263d5a2a70 am: 0844e1a3e8 am: e0f4963584 am: 5cc9f8780c\nam: 93ae13644b\n\nChange-Id: I16649e1417e36610e0731da5c47c90a9de169d13\n"
    },
    {
      "commit": "93ae13644bb8e2e1a7fbcb3c4dc1dd2c4eae57c5",
      "tree": "d1c80928b337a079566d21156524e4fa008d26e0",
      "parents": [
        "671c88a8077ca45d52122c14c324a78ff53f18aa",
        "5cc9f8780cc0e938f17254b9d7662d05edef2547"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:28:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:28:47 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6 am: 03fa67202f am: 263d5a2a70 am: 0844e1a3e8 am: e0f4963584\nam: 5cc9f8780c\n\nChange-Id: Icb93a3b48a1674066fbf0b07bf11cda56ab22436\n"
    },
    {
      "commit": "5cc9f8780cc0e938f17254b9d7662d05edef2547",
      "tree": "cc6627048c2620dc2261e5cb602aaf04f543b6a9",
      "parents": [
        "3627617c2b7e268e961e1da433e2f452650964f6",
        "e0f496358416abebeb7ba971a354ec69cb1848d4"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:25:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:25:49 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6 am: 03fa67202f am: 263d5a2a70 am: 0844e1a3e8\nam: e0f4963584\n\nChange-Id: I318dd6a90b2af9c4e879e4ab47cfad110002532d\n"
    },
    {
      "commit": "0844e1a3e8d000f34ee5a9aa55c826f771fb971e",
      "tree": "30678681c0a807255262d122324bb444536f5411",
      "parents": [
        "b063a7ea183aec7c79d6b74eff72d7548df431ac",
        "263d5a2a7065ed5a674d2af408f75383d4a01898"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:20:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:20:19 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6 am: 03fa67202f\nam: 263d5a2a70\n\nChange-Id: I24e4ade61cbc0a03d20aa4b79b21fe18baa10e43\n"
    },
    {
      "commit": "263d5a2a7065ed5a674d2af408f75383d4a01898",
      "tree": "f7bcf5319d9b55e4faebe4ac7305bba5fef21d0e",
      "parents": [
        "8700c26a9184224d326a7c3dc018a9f412f6165d",
        "03fa67202fac9df24f9dbefa24c9f81f9f9e415d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 18 19:12:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 19:12:37 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client am: 502c2f4053 am: bd7db202c6\nam: 03fa67202f\n\nChange-Id: I9336683351fa531560fadbe554eb218fc663585f\n"
    },
    {
      "commit": "502c2f405355c3253990ac4edae345ac1907f916",
      "tree": "71cb549d0c161a299ad8b3ab4832501963bfbd5b",
      "parents": [
        "da84963c1f4482be7570b68293906e6cc61200bd"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jul 13 17:47:56 2017 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jul 17 23:26:10 2017 +0000"
      },
      "message": "MediaPlayerService: fix access of mPlayer in client\n\nTest: poc doesn\u0027t crash\nBug: 38234812\nChange-Id: I6f9be046ff66d2d5bed27bd712287e4ead550830\n"
    },
    {
      "commit": "a387a6cc1e97f26eb6847ed5cf3d2a6b4cf25cb0",
      "tree": "a2c6037d1b5fbdb925afa114d8dcd1f1b4d21aab",
      "parents": [
        "77994d70fe8d4805126361bbd0afbcac1cd1d2f0",
        "e5b9b6924007d6658bb1c24e958d16ec82e2a9c3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 20:54:17 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 20:54:17 2017 +0000"
      },
      "message": "Merge \"stagefright: put battery update under a separate lock\" into oc-dev"
    },
    {
      "commit": "e5b9b6924007d6658bb1c24e958d16ec82e2a9c3",
      "tree": "ad2ef695292ac0178821f89926fbc347f5be056c",
      "parents": [
        "bbdae2f58c3bd18d72be876c023b4bfb00e2f920"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu May 11 11:44:56 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu May 11 11:49:22 2017 -0700"
      },
      "message": "stagefright: put battery update under a separate lock\n\nBattery update doesn\u0027t need to lock the main lock for\nmediaplayerservice. Battery update sometimes is called\nfrom lower level componenet (eg. StagefrightRecorder),\nlocking the main lock here has potential to deadlock.\n\nPuting the battery update in a separate class so that\nit\u0027s clear this is not to be mixed with the rest of\nthe mediaplayerservice states.\n\nbug: 38230347\nChange-Id: Idf5f26f2b07ad6303775763ce283dad0679843d5\n"
    },
    {
      "commit": "f370264dfa5237524a3535f5242a0c68cbbb13eb",
      "tree": "b0cab4fa2ae4243ce2a870c3d91e8124dc2d3510",
      "parents": [
        "549bd02a8421b0b53a1b5e8961a41cf551fce72d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 05 17:33:32 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 10 14:17:40 2017 -0700"
      },
      "message": "VolumeShaper: Fixes for updated Cts test\n\n1) Limit number of VolumeShapers that can be created.\n   a) 16 system VolumeShapers\n   b) 16 application/client VolumeShapers\n2) Return proper volume before VolumeShaper is started.\n3) Consistent xOffset definition used internally:\n   a) this is now always the position on the volumeshaper curve\n      which can go backwards if in REVERSE.\n   b) normalized time is always forward going and is scaled\n      to 0.f and 1.f depending on progress relative to\n      the curve\u0027s duration.\n4) Fix replace method.\n5) Add comments.\n\nTest: Use updated CTS VolumeShaperTest\nBug: 37536598\nChange-Id: I837ab2a481adc0abbd3f1338bfe2cb79831b11fa\n"
    },
    {
      "commit": "39399b6b08b4e9fd7eae50e58e93b07216ad697f",
      "tree": "04c78ddb6186a54c9e0118a0b8f5270cdfc9d720",
      "parents": [
        "94cfe137a105ec7db047e963e18483425e0d2272"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 21 15:07:45 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 26 10:45:25 2017 -0700"
      },
      "message": "VolumeShaper: Improve restore\n\nConsider whether VolumeShaper has been started or not when\nrestoring (position). If the VolumeShaper hasn\u0027t been started\nwe restore in that state.  If it has been started already,\nwe advance to the end assuming the duration has been played out.\n\nTest: CTS and headset / kill audioserver\nBug: 37536598\nChange-Id: I4b55dca6f6a859563fd20bad4c8f67d2c92321c0\n"
    },
    {
      "commit": "d4e9ca49a3863beeb0027f51e2331e4c5ec2402b",
      "tree": "06901a3ffc0c76fea0ad2d4a43a91ffc6ca5441e",
      "parents": [
        "f3134a01aa2574f8ab62f58f1a76b77029201196"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Mar 29 17:24:56 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Mar 29 17:39:26 2017 -0700"
      },
      "message": "Remove dependency on persist.hal.binderization.\n\nTest: Manual use of Camera, Movies, Photos and YouTube apps.\n\nTest: With CtsMediaTestCases.apk installed,\nadb shell am instrument -e size small -w\n\u0027android.media.cts/android.support.test.runner.AndroidJUnitRunner\u0027\n\nBug: 34274385\nChange-Id: I5251fea337f33460d1f0db174cedc465822f2a47\n"
    },
    {
      "commit": "4ef88d7106c01f81109ee163cb6789073d80c6ae",
      "tree": "b851ebaf0b55c4d8174dd4a744352a3d4513beee",
      "parents": [
        "10cbff139360f3f642e0e3b3ccf2d463dbed22cf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 21 19:47:53 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 24 21:05:58 2017 -0800"
      },
      "message": "VolumeShaper: Add AudioTrack restore\n\nMediaPlayer VolumeShaper can now be set before start().\n\nTest: CTS and Ducking\nBug: 31015569\nChange-Id: Idf63c167e164161b200e2467fbeb9409b3097dbe\n"
    },
    {
      "commit": "7e0c3c3e93cdf0d1fe59b82e8bc9c7c2fa678faf",
      "tree": "f84175c38a7eecfd339e89b2a8b908ece9a6e2ed",
      "parents": [
        "373580e1d51d3e89c16612998a10105fea09c3c5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 22 21:15:02 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 22 21:15:02 2017 -0800"
      },
      "message": "Revert \"OMX: don\u0027t respect binderization toggle.\"\n\nThis reverts commit 373580e1d51d3e89c16612998a10105fea09c3c5.\n"
    },
    {
      "commit": "373580e1d51d3e89c16612998a10105fea09c3c5",
      "tree": "b827b264c0c291c8f1e51a5f34185bab836b2c30",
      "parents": [
        "92a4bab4807d6a6736587e99094a10c420aa0a7d"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 22 21:11:46 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Feb 22 21:11:46 2017 -0800"
      },
      "message": "OMX: don\u0027t respect binderization toggle.\n\nTest: pass\nChange-Id: I495c71b0a39ae8423e109219f8f5e96812fe2aa1\n"
    },
    {
      "commit": "181fd9b5b64bab24bb49a34208f60a16e98488c5",
      "tree": "01f5f3e2cd59acbe4a3c7d92f09ff1f5418af206",
      "parents": [
        "42a5de6da0084fd430c70d58671559f71c738cf0"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Feb 16 15:53:03 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Feb 17 03:06:13 2017 +0000"
      },
      "message": "stagefright: verbose logging for media connect/disconnect\n\nbug: 35364355\n\nChange-Id: I7b5f0aecf98733255cc27b091fea78298fa7e602\n"
    },
    {
      "commit": "9c47c97ecac581d66b6febafd156618247e86742",
      "tree": "c49b5394e42b293c0333754bf01c71d387227833",
      "parents": [
        "6ab6061131a10b7f38074c156fd529fa3719a32b"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Feb 08 04:09:38 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Feb 16 11:16:06 2017 -0800"
      },
      "message": "Enable full migration of OMX to Treble.\n\n1. Toggling between Treble and non-Treble OMX will now be controlled by\ntwo properties: \"persist.hal.binderization\" and\n\"persist.media.treble_omx\". (Before this CL, this was controlled by\n\"debug.treble_omx\".)\n- If persist.media.treble_omx is not set, it will assume a default value\nof -1.\n- If persist.media.treble_omx is -1, persist.hal.binderization will be\nused to determine whether OMX will be created as a Treble or non-Treble\nservice.\n- If persist.media.treble_omx is 1, OMX will be created as a Treble\nservice.\n- If persist.media.treble_omx has any other value, OMX will be created\nas a non-Treble service.\n- persist.media.treble_omx can be changed without rebooting, but it will\nonly take effect after media.codec and mediaserver processes are killed.\n\n2. Remove all dependencies on non-Treble service. This was not done for\nMediaCodec, MediaPlayerService::Client, MediaRecorderClient, stagefright\ncommand, and omx_tests command. OMXClient and media.codec process will\nnow pick the right version of OMX based on properties mentioned above.\nBefore this CL, media.codec would always present the non-Treble version\nof OMX regardless of the flag.\n\n3. Provide workarounds for some HIDL issues.\n- A sequence of nested binder and hwbinder calls require many threads to\nhandle. (b/35283480) The workaround is to increase the number of threads\nin the thread pool of media.codec process.\n- android.hidl.base@1.0::IBase::unlinkToDeath takes a strong pointer\ninstead of a weak pointer. (b/35233970) This causes an infinite\nrecursion in the destructor of ServiceDeathNotifier in\nMediaPlayerService::Client and MediaRecorderClient. The workaround moves\ncalls to unlinkToDeath() outside of the destructor.\n\nTest: Recorded and played videos with Camera app. Ran stagefright and\nomx_tests commands.\nBug: 31399200\n\nChange-Id: Id1940ed982838e10bf10fe8ed5b7bb912a5a2d3a\n"
    },
    {
      "commit": "cefac14261a32fb856b0d1ab31541787112e306e",
      "tree": "d6fb3a4890929e05a5ffccc2d09c0b9da3d6bddc",
      "parents": [
        "2f77a2229be73b222098c45aed73728842667e12"
      ],
      "author": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Mon Feb 06 21:02:02 2017 -0800"
      },
      "committer": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Wed Feb 15 18:15:37 2017 -0800"
      },
      "message": "Modular DRM for MediaPlayer\n\nBug:  34559906\nTest: Manual through the test app\n\nChange-Id: I286f9ff199c34563b7b8643de725f8d1534ea06c\n"
    },
    {
      "commit": "9fc8b5cd4a64ef07e84c69112461324d5c13a0b0",
      "tree": "2d058e73f09f1822108daad51948a34c420634e3",
      "parents": [
        "ed1abbfc73d4ade0ef08239fc56ac66d70a00a92"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 24 13:36:48 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 14:31:46 2017 -0800"
      },
      "message": "VolumeShaper: Initial implementation\n\nThe VolumeShaper is used to apply a volume\nenvelope to an AudioTrack or a MediaPlayer.\n\nTest: CTS\nBug: 30920125\nBug: 31015569\nChange-Id: I42e2f13bd6879299dc780e60d143c2d465483a44\n"
    },
    {
      "commit": "6cb337596796996c3095dc8017eb36beba00dab2",
      "tree": "fca08d18e556463be5f28f947af1225ca4e9d49d",
      "parents": [
        "d7ae0b8529d0b08496392c85ae4d00753e28882e"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon Jun 22 14:16:42 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 31 17:36:16 2017 -0800"
      },
      "message": "libmediaplayerservice:Fix deadlock on gapless start failure\n\nReturn error back to the application if start of next MediaPlayer\ninstance as part of gapless transition fails.\nTest: compiles\nauthored-by: Ashish Jain \u003cashishj@codeaurora.org\u003e\nChange-Id: I77c570074c7c98c996122e275161ba88298e56fc\n(cherry picked from commit 9eadf496fa84603cf3ec5889990b79db8e378400)\n"
    },
    {
      "commit": "dc6f340e537ce511ea1d2f8ce7dc1c4ed231f6a6",
      "tree": "45fc471ff4d3c46d91281d75b2c049bf73104748",
      "parents": [
        "c62b65fd690a585c674caa6e79559bb847e5b3bd"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 09 15:04:18 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 17 10:49:33 2017 -0800"
      },
      "message": "mediaplayer: add buffering settings API\n\nTest: compiles, checked that params is passed all the way to source.\nBug:32524218\nChange-Id: I637d1ab09f94a3830a33a39e7e9f1b3efb22357f\n"
    },
    {
      "commit": "9c8086fa924e8b570fa66c3ef3bce0ec24a16031",
      "tree": "a54e6095684f7a247ce54ea791f6d7230c7ff81d",
      "parents": [
        "e158da59b3b525cf271968bec3967414b21159fa",
        "1afd0983fdca07cd55df8dca1fa05b55c45063f4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 10 00:27:34 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 10 00:27:35 2016 +0000"
      },
      "message": "Merge \"MediaPlayer: Use uid_t for uids\""
    },
    {
      "commit": "d399e7e6065aa310e025ab633f633d5b4831a358",
      "tree": "161b8ee63095e28937e041299ae66a650197f265",
      "parents": [
        "48d8020342a4de6b0b925328ddbdfe34f22253a3"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 26 15:49:11 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 23 10:50:24 2016 -0800"
      },
      "message": "BufferingSettings: define internal BufferingSettings API.\n\nTest: compiles\nBug: 32524218\nChange-Id: I9a95b2fdfa497179305e031aac69e5a987614dbb\n"
    },
    {
      "commit": "c5de09127e9e0d5df7aa587be317e1487d793245",
      "tree": "f27828fe26714b003613ef894579539228dfd134",
      "parents": [
        "b59c2fb19f03bba8a558be71848bafa6a0ad3cbc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 10:22:14 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 15:41:24 2016 -0800"
      },
      "message": "mediaplayer: support same seek mode as MediaMetadataRetriever.\n\nTest: manually force 4 seek modes in mediaplayer.\nBug: 32557491\nChange-Id: Iea4f6dbfc224fc6da39624300c6d872b79142f07\n"
    },
    {
      "commit": "1afd0983fdca07cd55df8dca1fa05b55c45063f4",
      "tree": "8b18742499e87de49231f89af89aa7a2e8d48364",
      "parents": [
        "1f12a8ad958344c50733b948628ffa06db9c5bc6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:13:44 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:44:22 2016 -0800"
      },
      "message": "MediaPlayer: Use uid_t for uids\n\nTest: Power manager shows correct uids\nBug: 32713790\nChange-Id: Iddf8de5705319ec17c68787efc11e342779660c5\n"
    },
    {
      "commit": "67b6dccfd7b59efa772a3c2c553e7382c8f9f24c",
      "tree": "d9d03e901bf841099593e0d2b3edb32aa23ac12b",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 31 17:01:37 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 31 17:01:37 2016 -0700"
      },
      "message": "mediaplayer: add precise argument to seek function\n\nTest: compiles\nBug: 32557491\nChange-Id: Id8c3a938edd5a0b34a9b33e86a4dbff32cf10c98\n"
    },
    {
      "commit": "5d313803bdd61d59f28e518e7a793f33832f1901",
      "tree": "e27874f7602aa13bdd8a94be74c573271473c9ac",
      "parents": [
        "8922c251072bf338cd22b237a25ef55ba41cf9b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 10 15:09:39 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 11 12:59:27 2016 -0700"
      },
      "message": "AudioTrack: Advance timestamp time during pause\n\nUpdate MediaPlayer code to match.\n\nThis will change the behavior on the AudioTrack Java side,\nbut is within the API and should make timestamp handling easier.\n\nTest: Photos app with pause and play.\nBug: 30502030\nChange-Id: I0e9129ce6af5b920ad71e63ad0c205de7561acf2\n"
    },
    {
      "commit": "1b5a7ee3fdc33ee584a88580171fbad154e10f5d",
      "tree": "1833a3bfa57e6fa1dc750365509c457ef92a86cf",
      "parents": [
        "ad111520f0167c4a0bf6a37fc025e2523c313258"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 30 13:54:30 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 30 13:56:29 2016 -0700"
      },
      "message": "Check service binders before dereferencing them\n\nBug: 31830499\nTest: forced binder to NULL and made sure it failed gracefully\nChange-Id: I2c0377fbed9e489d7024da44a6092bec6de1fa3b\n"
    },
    {
      "commit": "9cf3cee03ea010b4ac8c92e4474d41a40a1d5526",
      "tree": "fefc13f94fbebc4788592defc5547b0c5c041aa4",
      "parents": [
        "9b7a8f94619b6847db7dc37deb5918b6f3439a43",
        "4024622cb2859a2a7a661113efa44605443bbf58"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:37:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:37:29 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce am: c6fdb3d696 am: 629e78c10f am: 50b9d889e6 am: 81e0557519 am: 31407677bc am: 4d03d0d14d am: 22fdb93234\nam: 4024622cb2\n\nChange-Id: Ibfa275c6655de05e61b31da8616ad36d3a209f91\n"
    },
    {
      "commit": "884b1861562cf717cff272cc835550badcdf2f55",
      "tree": "807baa8939ac14071239e057ff443a8d25806ef3",
      "parents": [
        "deb0335714cabc906098fb1d971d992027267fc6",
        "22fdb93234e1e5d8c384a75c05e01ee92e20e61a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:35:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:35:06 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce am: c6fdb3d696 am: 629e78c10f am: 50b9d889e6 am: 81e0557519 am: 31407677bc am: 4d03d0d14d\nam: 22fdb93234\n\nChange-Id: Ic3ec984fdbc8f79afd8ccb3073e4128812c2e85f\n"
    },
    {
      "commit": "4024622cb2859a2a7a661113efa44605443bbf58",
      "tree": "e94e89ef0f63544ca37b403c14861f46b1fc6c22",
      "parents": [
        "04fdc1579006533a634e7071b02976652b747382",
        "22fdb93234e1e5d8c384a75c05e01ee92e20e61a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:34:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:34:29 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce am: c6fdb3d696 am: 629e78c10f am: 50b9d889e6 am: 81e0557519 am: 31407677bc am: 4d03d0d14d\nam: 22fdb93234\n\nChange-Id: Ica982aa0e826555b5a3624f8bcc205d2d9f255eb\n"
    },
    {
      "commit": "22fdb93234e1e5d8c384a75c05e01ee92e20e61a",
      "tree": "07cf81b2f739c887e5ea3bbd9d0fb93d5dc88fa6",
      "parents": [
        "be4a3164993ba9779950ddec744e4ad954dff092",
        "4d03d0d14dc21e4ce1dbd080f5d1baf24bf09e66"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:31:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:31:34 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce am: c6fdb3d696 am: 629e78c10f am: 50b9d889e6 am: 81e0557519 am: 31407677bc\nam: 4d03d0d14d\n\nChange-Id: Id3dcf62c73b535b8416e073b67954daded502fab\n"
    },
    {
      "commit": "31407677bcf5216234c0caa12259fccd63d4d13c",
      "tree": "a57623b3205eea342e666b40684d0981dddc3172",
      "parents": [
        "3662106826084151f98ce591434e87596eb5ae59",
        "81e055751904469db7233f4698a9b6a8a1d50900"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:25:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:25:57 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce am: c6fdb3d696 am: 629e78c10f am: 50b9d889e6\nam: 81e0557519\n\nChange-Id: Id17354d41c8f3c4e41d03eb9467ca7d482b522df\n"
    },
    {
      "commit": "81e055751904469db7233f4698a9b6a8a1d50900",
      "tree": "44d601b65a293691a76e71e81f3b256e384fdb8d",
      "parents": [
        "5d7ca78437bb974ecf3f40da17bedaeffbb4948d",
        "50b9d889e637ff3c26e4582edc91ff0c2111fd6d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:22:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:22:57 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce am: c6fdb3d696 am: 629e78c10f\nam: 50b9d889e6\n\nChange-Id: I86b58e0cb64d668021a649627e34a0386dcc619a\n"
    },
    {
      "commit": "50b9d889e637ff3c26e4582edc91ff0c2111fd6d",
      "tree": "90244540828ebd99330d9d8e6f7d14b72f7bfc91",
      "parents": [
        "f49ac6ef61935ad636305dd1f3a3d4964b7c4f61",
        "629e78c10f0b81831a385197cc7c167d753d1683"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:19:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:19:57 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce am: c6fdb3d696\nam: 629e78c10f\n\nChange-Id: I14c17d063743ca79f43f674c2d4cbcb57f90451e\n"
    },
    {
      "commit": "629e78c10f0b81831a385197cc7c167d753d1683",
      "tree": "55465416c5fcc5325020162026447a59f1ad63b6",
      "parents": [
        "6f8e939c584047179483840480f10dbc956d70f6",
        "c6fdb3d6964988ed576fbe393401fbd10c15d86d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:16:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:16:56 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408 am: de97dbd662 am: a7549d3dce\nam: c6fdb3d696\n\nChange-Id: I6e1cb16e9c281bda0375f552aab01b2ee069c14b\n"
    },
    {
      "commit": "a7549d3dce0b313c8d22d54e43217d822393e5ae",
      "tree": "759113fc77f9124a29d48987f4620676a91dd136",
      "parents": [
        "a9c1e43d89d7afc587b620cf7c01d94c1722ad2f",
        "de97dbd662bc959bfe4a894c8678f1383294e148"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:10:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:10:56 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a am: 0dd714e408\nam: de97dbd662\n\nChange-Id: I758cf33ec36858a612efe6c412af3df9653f9229\n"
    },
    {
      "commit": "de97dbd662bc959bfe4a894c8678f1383294e148",
      "tree": "7a9e627b781e2550eca69d66ac6774a9299ecf67",
      "parents": [
        "91ec9a6fd37ef12ab3b37ebdec56e798d85a6797",
        "0dd714e4081b874425aef6c40b152fb918ae595e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Aug 31 00:08:25 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:08:25 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL am: 2828412787 am: f4e00a7c5a\nam: 0dd714e408\n\nChange-Id: Ib620e8573ff6da861c101311143d266fd5086d7b\n"
    },
    {
      "commit": "282841278723166e74039329ca56e444ad472daf",
      "tree": "aeba49f6b7078c00da85d76de6a0c4c8f260ccd9",
      "parents": [
        "4fb531e2627a0bb5109de2aa6096a972f40dad72"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Aug 30 13:49:06 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Aug 30 22:02:44 2016 +0000"
      },
      "message": "MediaPlayerService: allow next player to be NULL\n\nBug: 31155917\nBug: 30204103\nChange-Id: I9a2a59ddb900fc942e7c19b31b53a110d790474c\n"
    },
    {
      "commit": "74b56a8e0d5c4aabd7df4d79589f93b23d8fae89",
      "tree": "251c3e91620288d90df91b6c1d507e5a34d954e6",
      "parents": [
        "45b663eae82282098d8c21c792a06c4f9f61da31",
        "168e16423f7bfa0387543df52697814ef160cce9"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 19:42:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 19:42:26 2016 +0000"
      },
      "message": "resolve merge conflicts of 77da968 to nyc-dev-plus-aosp\nam: 168e16423f\n\nChange-Id: I72e14cf6b3affce16e910218196609aee4ff9845\n"
    },
    {
      "commit": "168e16423f7bfa0387543df52697814ef160cce9",
      "tree": "5b7a2e5385e7d0b9d1e59335dd32ffc3615246c5",
      "parents": [
        "776229a34a5f6f2c8dd2d67987624cacb362cbb7",
        "77da9683de33028a0b277667a0698e8eb1c8c7bc"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 12:27:15 2016 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 12:27:34 2016 -0700"
      },
      "message": "resolve merge conflicts of 77da968 to nyc-dev-plus-aosp\n\nChange-Id: I123956fe0f90e7fc7712cf5a99b29add94d15564\n"
    },
    {
      "commit": "739ce899e51d3d82b6395e3b770569d2d345020c",
      "tree": "a1236c80cb0ec07656059e5aad84a662448eadc3",
      "parents": [
        "82f5b811b2767289ebb8a9e6af1919c3b72b5121",
        "77da9683de33028a0b277667a0698e8eb1c8c7bc"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 18:52:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 18:52:54 2016 +0000"
      },
      "message": "MediaPlayerService: avoid invalid static cast am: ee0a0e39ac am: 7b6a85546c am: b07255f603 am: d560830823 am: 51efd24460 am: 8d32201d4a am: 2b5ee9c8e4 am: 17744ab9d7\nam: 77da9683de\n\nChange-Id: I62d0277bc1dd8b0514486c2f8006d76e8b88085e\n"
    },
    {
      "commit": "77da9683de33028a0b277667a0698e8eb1c8c7bc",
      "tree": "2b2c7589065bf2dc4bd9a4efe765f8ea91e455a9",
      "parents": [
        "167bfc2bae3e29e1332b23cb35c188db9e0837c2",
        "17744ab9d700078d1268dab2a070e6ef8cf962ec"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 18:48:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 18:48:21 2016 +0000"
      },
      "message": "MediaPlayerService: avoid invalid static cast am: ee0a0e39ac am: 7b6a85546c am: b07255f603 am: d560830823 am: 51efd24460 am: 8d32201d4a am: 2b5ee9c8e4\nam: 17744ab9d7\n\nChange-Id: I7c9bff5b79002b4c1e83437b69c8cfd5a09854a3\n"
    },
    {
      "commit": "2b5ee9c8e4e7cd3ceadeb03fb68f217a4629de6d",
      "tree": "1127ac15fddbf89e6b8c124d7312d4442f01ec37",
      "parents": [
        "d4808afb993aafccd294aeff5cf6cee46d681367",
        "8d32201d4a6caa7983ae002a76d69d511a804e0a"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 18:36:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 18:36:19 2016 +0000"
      },
      "message": "MediaPlayerService: avoid invalid static cast am: ee0a0e39ac am: 7b6a85546c am: b07255f603 am: d560830823 am: 51efd24460\nam: 8d32201d4a\n\nChange-Id: I995c3d8e87f78596c7e3007f2b0a269542adfd42\n"
    },
    {
      "commit": "8d32201d4a6caa7983ae002a76d69d511a804e0a",
      "tree": "ae2f8bf640c4b66b7e645e9462ab34037d790e8b",
      "parents": [
        "38795159877868a41eb453bc79ef89f0538a25a3",
        "51efd2446058bfe0b6ecdd1858bd759159fd0831"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 18:32:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 18:32:19 2016 +0000"
      },
      "message": "MediaPlayerService: avoid invalid static cast am: ee0a0e39ac am: 7b6a85546c am: b07255f603 am: d560830823\nam: 51efd24460\n\nChange-Id: I77f1705ddb125b7eb1c1f6b6e8cb61fb0596d2e2\n"
    },
    {
      "commit": "51efd2446058bfe0b6ecdd1858bd759159fd0831",
      "tree": "43dfd3a2e8ff065c81a7c12d289d0788afbb686e",
      "parents": [
        "be78a1c73f20bd72a3747b0c2552ae234b4e49be",
        "d560830823619a753be997d11d4f38223e74724e"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 18:28:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 18:28:19 2016 +0000"
      },
      "message": "MediaPlayerService: avoid invalid static cast am: ee0a0e39ac am: 7b6a85546c am: b07255f603\nam: d560830823\n\nChange-Id: I77a7c93a2ae554532accb3be47bdee687b99f271\n"
    },
    {
      "commit": "d560830823619a753be997d11d4f38223e74724e",
      "tree": "7d11f31236516c4c2da1ab1dfb3cd0f102fb553c",
      "parents": [
        "6b1403777e71af2f342ed8a279197e8149aae164",
        "b07255f6038c7c7b9a80c9fe2bd2c5d7bbe0c8f1"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 18:23:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 18:23:41 2016 +0000"
      },
      "message": "MediaPlayerService: avoid invalid static cast am: ee0a0e39ac am: 7b6a85546c\nam: b07255f603\n\nChange-Id: I9e2b7d8166c629fdbc3457d152e2947f16ba7ae3\n"
    },
    {
      "commit": "7b6a85546c9e320f62b1b4cda9d6620b4e34acc5",
      "tree": "6c0cf42e31a09cab675024ff2ae44cadf791ecb3",
      "parents": [
        "d9591024204ac4174a9e59759fc29f374b65a9eb",
        "ee0a0e39acdcf8f97e0d6945c31ff36a06a36e9d"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Aug 22 18:12:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 18:12:48 2016 +0000"
      },
      "message": "MediaPlayerService: avoid invalid static cast\nam: ee0a0e39ac\n\nChange-Id: I2e857a57fe87c5050b1042d27c8e3034df2a462c\n"
    },
    {
      "commit": "c159a5ae12af671d0fe0c134a27e676ed86c9874",
      "tree": "4860c98a1115c7cd7c2c30ecc80ec8bd1d6b65e1",
      "parents": [
        "17a10c50e20d934c1ac5956fe9019d3013e3f8b3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Aug 16 16:50:54 2016 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Aug 17 15:17:34 2016 -0700"
      },
      "message": "DO NOT MERGE MediaPlayerService: avoid invalid static cast\n\nBug: 30204103\nChange-Id: Ie0dd3568a375f1e9fed8615ad3d85184bcc99028\n"
    },
    {
      "commit": "ee0a0e39acdcf8f97e0d6945c31ff36a06a36e9d",
      "tree": "e2cd58cba0269f63036fbf85b2182f9f04771289",
      "parents": [
        "8f4b1a7de0e102b9203cfda3970edd2eedd9becf"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Aug 16 16:50:54 2016 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Aug 16 17:13:47 2016 -0700"
      },
      "message": "MediaPlayerService: avoid invalid static cast\n\nBug: 30204103\nChange-Id: Ie0dd3568a375f1e9fed8615ad3d85184bcc99028\n"
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "63ef5a38f82d22c1f97922fe490a1fd336566d5c",
      "tree": "e84028568dbcede5ffdaf58be20c6cc080028edd",
      "parents": [
        "b8750e114b6fd99768c45233d4b2ffb2b198f5d1",
        "df5d9246f9607b1c2f8b134c46a05af06e206da3"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:50:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:50:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\nam: df5d9246f9\n\nChange-Id: I20767244fef48ad42334c5131e2d402f75bb7327\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "adee56abc3749b18f90e7788990a0b5ae1bf430e",
      "tree": "98a630421dbcf4c8f27b810666ba03f2437f4310",
      "parents": [
        "e7449bf60c861f1dea7510f706004dfdb5efb2a7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 05 15:40:34 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 05 15:40:34 2016 -0700"
      },
      "message": "MediaPlayerService: clear output in CallbackData when recycling AudioTrack.\n\nBug: 30365636\nChange-Id: I3832a309f78a6fa89d4afea7bdd7139f0d9013f4\n"
    },
    {
      "commit": "e0bbac912f9ea561ed96ad8b0a354cbab8f345a1",
      "tree": "286de5eb65dd7cd335648da9ae5d65f233c6e4d3",
      "parents": [
        "9f6392250bf6d02a514bd83b743906dda748dee9"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jul 18 16:04:53 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jul 18 18:18:09 2016 -0700"
      },
      "message": "AudioSink: set configurations correctly for recycled track.\n\nBug: 29838892\nChange-Id: Ib64db16aeeaa4436d082a4098a21a75376119ef0\n"
    },
    {
      "commit": "d8d966fef52fe6a236e8ffdd43604e0ceeb0fab3",
      "tree": "3e35ca130052498eccc53eac2f4f07c501ab5de5",
      "parents": [
        "f3c0ccf224e89e81e733a50e49f2c1cd372ff29a",
        "c0a1a3187c30a9140fd2e0d185339be5966ae5d8"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 14 18:14:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 14 18:14:54 2016 +0000"
      },
      "message": "Add bound checks to utf16_to_utf8 am: 0c9742db80\nam: c0a1a3187c\n\nChange-Id: I050e58df0250e5d685b03c3e572bb756e9f997f0\n"
    },
    {
      "commit": "c0a1a3187c30a9140fd2e0d185339be5966ae5d8",
      "tree": "e9a3414769756a1f2551c9c82dae1f0b084fc4b4",
      "parents": [
        "6007caa57e80d822275f6272ffaa870be2c49f1f",
        "0c9742db802c21274fa299fbf7a8bf7c0c49355d"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 14 18:06:57 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 14 18:06:57 2016 +0000"
      },
      "message": "Add bound checks to utf16_to_utf8\nam: 0c9742db80\n\nChange-Id: Iacb2248ca498ae3b0ec699c44218963b97405b3b\n"
    },
    {
      "commit": "4f24f218dc0059f101b541557f70abe45f9f8522",
      "tree": "c74702f2e3a94cd1ffaba068d3bfde8323386123",
      "parents": [
        "d88de681cdbbd1074cc5ca31e6a6f99e2be0fc1e",
        "edce8ad0608f6828dae70ce33be31d27c8773157"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 14 17:59:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 14 17:59:53 2016 +0000"
      },
      "message": "DO NOT MERGE Add bound checks to utf16_to_utf8 am: 0d9d569c26\nam: edce8ad060\n\nChange-Id: I1c725b97d3f1fcabaa7129200ca67c3d479fd771\n"
    },
    {
      "commit": "0d9d569c268128f993abd45563af39e98646bcce",
      "tree": "90963cfee9c39f6029a4b1f3de127e1890709812",
      "parents": [
        "da2ac348fc3b33c750d29b6e65371819d9fedf8b"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:24:52 2016 +0100"
      },
      "committer": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 14 17:23:40 2016 +0000"
      },
      "message": "DO NOT MERGE Add bound checks to utf16_to_utf8\n\nBug: 29250543\n(cherry picked from commit 1d3f4278b2666d1a145af2f54782c993aa07d1d9)\n\nChange-Id: Id4ffb4bee02c3bd53796723b4cbcc88e693f8e83\n"
    },
    {
      "commit": "0c9742db802c21274fa299fbf7a8bf7c0c49355d",
      "tree": "711a134e24f82d1d0346b331398eb5aca7040d90",
      "parents": [
        "cc17d003ee1e0914d046647cd5f27fe2e80dff6b"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:24:52 2016 +0100"
      },
      "committer": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 14 15:26:48 2016 +0000"
      },
      "message": "Add bound checks to utf16_to_utf8\n\nBug: 29250543\nChange-Id: I3518416e89ed901021970958fb6005fd69129f7c\n(cherry picked from commit 1d3f4278b2666d1a145af2f54782c993aa07d1d9)\n"
    },
    {
      "commit": "804c3b54a34be03ab576390797acc93607114225",
      "tree": "d19672c2cd35361234fdc14d4be4b2f7633399ef",
      "parents": [
        "7a9538cd36716c8263d3808edd58bc87cedd8492"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:24:52 2016 +0100"
      },
      "committer": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 14 14:47:01 2016 +0000"
      },
      "message": "DO NOT MERGE Add bound checks to utf16_to_utf8\n\nBug: 29250543\n(cherry picked from commit 1d3f4278b2666d1a145af2f54782c993aa07d1d9)\n\nChange-Id: Id4ffb4bee02c3bd53796723b4cbcc88e693f8e83\n"
    },
    {
      "commit": "37d7af3c3a95022465b86b6cdec9db9fb5a40fd1",
      "tree": "b7d58e6a6c975599436e044a420ccd041b53ddf8",
      "parents": [
        "786ddba2862716164920b455c4d5a1b3a7454193"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:24:52 2016 +0100"
      },
      "committer": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 14 13:22:21 2016 +0000"
      },
      "message": "Add bound checks to utf16_to_utf8\n\nBug: 29250543\nChange-Id: I3518416e89ed901021970958fb6005fd69129f7c\n(cherry picked from commit 1d3f4278b2666d1a145af2f54782c993aa07d1d9)\n"
    },
    {
      "commit": "1d3f4278b2666d1a145af2f54782c993aa07d1d9",
      "tree": "a58f653e4a76988ee042eba780c6b9667ba77028",
      "parents": [
        "e8a984e43504890e0f676256a0445b9917a2af91"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:24:52 2016 +0100"
      },
      "committer": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:55:43 2016 +0100"
      },
      "message": "Add bound checks to utf16_to_utf8\n\nBug: 29250543\nChange-Id: I3518416e89ed901021970958fb6005fd69129f7c\n"
    }
  ],
  "next": "07b745e166ee62030960ccea37e117caadf71c32"
}
