)]}'
{
  "log": [
    {
      "commit": "cd8793a325408a5f77aee9bd719d2591fa4a30fd",
      "tree": "7accb34ca7b8b5fd261bde7a5bee21f22cbb8326",
      "parents": [
        "fcb1f7fa5a99a45596230876d5072d8351cac503",
        "e25539a93f04b06361252e2aa8baab534efbc1de"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 23 10:05:18 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 23 10:05:18 2019 -0700"
      },
      "message": "Merge changes from topic \"libdrmframework\" am: 84a53822a1 am: 460618a6d1 am: c317c587d5\nam: e25539a93f\n\nChange-Id: Ib8636ca3d1a5e251de8a4ce3643f0f88dfe85234\n"
    },
    {
      "commit": "181e6950a1ce5b9705c47c4b4e288d978cb7283a",
      "tree": "b92dc19041aec4465161b112f45185cd4598c09a",
      "parents": [
        "318b26e722112462f93df797bf47ca3dabc80048"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 09 13:23:39 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 18 14:55:23 2019 -0700"
      },
      "message": "Convert IResourceManagerService to stable AIDL\n\nConvert with minimal change to the interface itself.\n\nAdd additional test to cover DrmSessionManager\u0027s usage\nof possible negative value field (which is signed now).\n\nbug: 142396029\ntest: ResourceManagerService_test, DrmSessionManager_test,\nCTS ResourceManagerServiceTest;\nManually check battery stats reporting.\n\nChange-Id: I5c537a54efc2663281c96ddbdbd4ee56f23c1adf\n"
    },
    {
      "commit": "5b9f07a21bfa0d8f3e44a6e64d877c944bb4429f",
      "tree": "fcdda2273ad84f8f20e3e8e0f48897341e6a04df",
      "parents": [
        "935876110cb820240fcc7ad4a3ada0c1e8cb18e3",
        "c3af31b8f1a7bac5d3e3c953702c8faec3cd55e3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 16 23:29:23 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 16 23:29:23 2019 +0000"
      },
      "message": "Merge \"Implement DrmSessionManager w mediaresourcemanager\""
    },
    {
      "commit": "9c6f790843939700fa18779f14b1df5fa1161024",
      "tree": "fe8d8bac73ced833f9b8b1bf7758bc6bee7ff097",
      "parents": [
        "79b0c24b58af5fbfec814a2a11506ef0f72541c3"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Oct 14 11:16:39 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 17:38:17 2019 -0700"
      },
      "message": "Remove libdrmframework.so dependency from libdatasource.so\n\nName changes:\nClearFileSource -\u003e FileSource\nClearMediaHTTP -\u003e MediaHTTP\nFileSource -\u003e PlayerServiceFileSource\nMediaHTTP -\u003e PlayerServiceMediaHTTP\n\nPlayerServiceXXX are able to handle OMA(forward-lock) files and now\nmoved to media/libmediaplayerservice/datasource since they only work\non mediaserver process.\n\nBug: 142567168\nTest: build and DrmTest\n\nChange-Id: I9292dba33d149efe17cf566017dcce1710cc8c88\n"
    },
    {
      "commit": "79b0c24b58af5fbfec814a2a11506ef0f72541c3",
      "tree": "2551d295da89029c75f6a9219a6bc1a3b2980b98",
      "parents": [
        "1f72838954cb3689fb58eef6276553d9a45ff0a8"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Sun Oct 13 08:17:34 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 11:00:29 2019 -0700"
      },
      "message": "Make DataSourceFactory singletone\n\nThis is preparation for having a subclass of DataSourceFactory which\nis only used in mediaserver process with OMA (forward-lock) use case.\n\nTest: build\nBug: 142567168\nChange-Id: I2a1ab3d1ae89f657a84376d9a95d4e814b545b4f\n"
    },
    {
      "commit": "a42a62d8633fa6fcabc8129a2c798da860630821",
      "tree": "77e009a25a0a222aba1cabdc276b5bc9da549d04",
      "parents": [
        "342d7bcf44b3edcce763f0417ad0a13b11bde285"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 23 17:48:14 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Oct 11 21:40:26 2019 -0700"
      },
      "message": "libmedia: separate codeclist from libmedia\n\nTest: build.\nBug: 139201422\nChange-Id: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\nMerged-In: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\n"
    },
    {
      "commit": "8c0039cad0dc13284fdf7887708c56b26bd96ee6",
      "tree": "572b876a886927a0b946b1045123edc05df9dba5",
      "parents": [
        "0213086e4a3b8b385a1d1ce66e08c7b48c98312d",
        "d579f3efb69bd96bf58c81514ca2428cb4b73231"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 10 20:31:34 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 10 20:31:34 2019 +0000"
      },
      "message": "Merge \"Fix dumpsys media.player\""
    },
    {
      "commit": "d579f3efb69bd96bf58c81514ca2428cb4b73231",
      "tree": "602ab71931f895e18006cf29543e67c180676132",
      "parents": [
        "5871ab512193274898baca9a4efa734392019ebf"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Oct 07 14:14:09 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 10 11:00:47 2019 -0700"
      },
      "message": "Fix dumpsys media.player\n\n- check dump permission\n- fix truncation happening when details field is too long\n\nBug: 140444741\nTest: dumpsys media.player\nTest: atest CtsSecurityTestCases:android.security.cts.ServicePermissionsTest#testDumpProtected\nChange-Id: Id04afba8195347c6a174e13743cedb422c8624a1\n"
    },
    {
      "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": "53f78b65a144bd04f7b007f2a0776658fc4176cc",
      "tree": "3156f6604446132b26261bc163aa241d69f94b57",
      "parents": [
        "9ee56ec1a7ace45b42b65e01fdda98114b5c0833"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 13:08:50 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 08 09:41:49 2019 -0700"
      },
      "message": "Clean up libaudioclient includes\n\nTest: build\nChange-Id: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\nMerged-In: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\n"
    },
    {
      "commit": "42057ce1890b2be250b95f56734a47b93c8ad537",
      "tree": "7bfbe8147243430c306546b6a7e5caaa1e94d9cc",
      "parents": [
        "df0b56ba22cc201e535a2efc2245214355b6adf2"
      ],
      "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": "Tue Oct 08 09:30:45 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\n"
    },
    {
      "commit": "c3af31b8f1a7bac5d3e3c953702c8faec3cd55e3",
      "tree": "30533ca112d60914f2c23acda83394275b97ea25",
      "parents": [
        "32706253ce90531c94b5f2af7caacb443eb09d8c"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Sep 20 21:45:01 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Oct 04 22:05:40 2019 -0700"
      },
      "message": "Implement DrmSessionManager w mediaresourcemanager\n\nBug: 134787536\nTest: DrmSessionManagerTest\nTest: DrmSessionManager_test\nTest: ResourceManagerService_test\nChange-Id: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\n"
    },
    {
      "commit": "5d05fbe8ba38d16c21974688edd7ad567fe6205c",
      "tree": "49a1c1e3490131bbcb16df72a70fbcc4c6b37aaa",
      "parents": [
        "fb1fb155f9ec3a05ffa9e49f9415b565dcf8c163"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 13:08:50 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 04 08:17:31 2019 -0700"
      },
      "message": "Clean up libaudioclient includes\n\nTest: build\nChange-Id: I1b2cd96e99564cd3944aa20a36207bd91287f7c8\n"
    },
    {
      "commit": "55b259cf5ec16df77b52206e8209f5df2fc214c5",
      "tree": "29989150d2cfb026f11ec5d43edb8116442e7311",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 01 13:43:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\nMerged-In: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "13aa1a4b6630a05fc3e48824b911009ecbb33284",
      "tree": "506fa3026d84685c2621157b9b668155c31ae0ec",
      "parents": [
        "e3cdab3c40cb71284a0e186d7d5a82257e7d34a1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 14:04:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "23a180b0c2dfd317d55c1abe632aa81461a8856a",
      "tree": "c6547ba9a18fdbf766b6d8a753216489677e6728",
      "parents": [
        "3b93ca583af5296df1b4d45e4d16b5fba82205d2"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 23 17:48:14 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Sep 26 15:50:30 2019 -0700"
      },
      "message": "libmedia: separate codeclist from libmedia\n\nTest: build.\nBug: 139201422\nChange-Id: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\n"
    },
    {
      "commit": "51eb2f447a3239ef818975bd4d594889a8cb502e",
      "tree": "7b56d77bd39bcbb6ebfc51a36421a02ce337c13b",
      "parents": [
        "34438bed76b81d20a401ae6094e46077d83b9850",
        "7dd39723b34c8378fc5eabb4d4ccacf32f55ffe2"
      ],
      "author": {
        "name": "Ytai Ben-tsvi",
        "email": "ytai@google.com",
        "time": "Tue Sep 17 15:05:44 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 15:05:44 2019 +0000"
      },
      "message": "Merge \"Improve visibility of IMemory security risks\""
    },
    {
      "commit": "ee8116b0a36739253ea41d7703102a5aeaa2d5da",
      "tree": "9e684d73c8c5c7a2c23f0eb0391aa0f51a5b81d7",
      "parents": [
        "0e1c20080a810da66062b83ad0d142e3fb4bd7e7"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Jul 19 15:55:44 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Sep 16 15:08:45 2019 -0700"
      },
      "message": "nuplayer: wait for sync point at renderer flush\n\nBug: 136232244\nTest: atest CtsMediaTestCases:MediaRandomTest#testPlayerRandomActionH264 (100 times)\nChange-Id: I0a63df739fb15597130f50a12d6cddbe3ae815e8\n"
    },
    {
      "commit": "7dd39723b34c8378fc5eabb4d4ccacf32f55ffe2",
      "tree": "222de47bcb84931d714d250fe51d3249771edc18",
      "parents": [
        "61d4a093f4b4041b145fbd7a3ab5ec04679f87d9"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Sep 05 15:14:30 2019 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 13 10:59:51 2019 -0700"
      },
      "message": "Improve visibility of IMemory security risks\n\nThis change renames the IMemory raw pointer accessors to\nunsecure*() to make it apparent to coders and code reviewers\nthat the returned buffer may potentially be shared with\nuntrusted processes, who may, after the fact, attempt to\nread and/or modify the contents. This may lead to hard to\nfind security bugs and hopefully the rename makes it harder\nto forget.\n\nThe change also attempts to fix all the callsites to make\neverything build correctly, but in the processes, wherever the\ncallsite code was not obviously secure, I added a TODO requesting\nthe owners to either document why it\u0027s secure or to change the\ncode. Apologies in advance to the owners if there are some false\npositives here - I don\u0027t have enough context to reason about all\nthe different callsites.\n\nTest: Completely syntactic change. Made sure code still builds.\nChange-Id: I5fb99aa797c488406083178a6b05355d98710d3b\n"
    },
    {
      "commit": "2e26d813d76735a822c507370ea21046d9a0fbb9",
      "tree": "cee02c1870b47edf791af1bceba6e131ffa35c42",
      "parents": [
        "f53495687949faddd7666ec4b4206f99b8ec4c04"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 09 13:20:10 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 09 15:05:50 2019 -0700"
      },
      "message": "Check actual read bytes for TS packets\n\nCheck actual bytes read when feeding the data to TS parser.\n\nbug: 140177694\ntest: poc in bug; StreamingMediaPlayerTest\n\nChange-Id: I4b498fe375af657e17838e5839e6348e1463d559\n"
    },
    {
      "commit": "6f67577935bf3516302ebcc19e7dfae009457860",
      "tree": "d0e8f3068c2ea42555c07a522b5909bbe50dc088",
      "parents": [
        "4811014a958f7cf233b8284fb4a422990c7a3549"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Aug 20 17:06:53 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Aug 21 17:01:04 2019 -0700"
      },
      "message": "media: add list of codecs in dumpsys media.player\n\nTest: adb shell dumpsys media.player\nChange-Id: I4e074c472496ebaa0ec2b966088949ce2eea4671\n"
    },
    {
      "commit": "fd3bbcb596956eeaa6c0a5c0770e00779b574e04",
      "tree": "1eed9e6f8f126b8e6a7828a1864b0ba4b30baa0a",
      "parents": [
        "39d766372220af912a8912e6487f4626d56a6d04"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Aug 08 17:15:01 2019 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Aug 12 22:34:20 2019 +0000"
      },
      "message": "Close socket before posting message to RTSPSource message handler\n\nBug: 120119004\nTest: Same as b/120119004 #1\nChange-Id: If22bb575347448893032465f6c59b244ba74ef89\n"
    },
    {
      "commit": "76a49d617cd817d5be4618757e8d8400aeaad8c9",
      "tree": "360bd0ba999213cf9463c6613d155eb4e57d8f12",
      "parents": [
        "175c7b7e4d9450e017e4453b97cb836da199db67"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jul 12 11:20:33 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jul 12 20:01:55 2019 +0000"
      },
      "message": "Reuse frame decoder for sequential frame retrievel\n\nAllow sequential frame retrieval to reuse the decoder without\nre-init and re-seek.\n\nGet rid of IMediaMetadataRetriever api that retrieves multiple\nframes at a time, this method could hold up more memory than\nwhat\u0027s needed, because the client side has to copy the frames\nto a separate set of bitmaps anyways.\n\nThis change is needed to support animation Drawbles efficiently\nwhich typically get one frame at a time.\n\nbug: 120414514\ntest: cts MediaMetadataRetrieverTest, local tests that tests MetadataRetriever thumbnails\n\nChange-Id: I09924408b51bc7491fc5dee121dce9a286c5911f\n"
    },
    {
      "commit": "c52abcd1b3e7bb594c3126aa28abe978fdfa0ba9",
      "tree": "9134e718f55a662a02840263f6050ee51d4e648e",
      "parents": [
        "87b6e61db314aa83c3e582ba8ae3d7c3cb1d2d61",
        "7fa5e10f6cac09a43a59a2cac0657fe7c91ee30d"
      ],
      "author": {
        "name": "Yuxiu Zhang",
        "email": "yuxiu.zhang@mediatek.com",
        "time": "Thu Jun 27 12:54:33 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 27 12:54:33 2019 -0700"
      },
      "message": "Http streaming cannot play video whose duration is less than 5s am: 6efc14faf6 am: b888dbdf1f\nam: 7fa5e10f6c\n\nChange-Id: I0588597644c1f40b325442c71a6c4b7980e5593d\n"
    },
    {
      "commit": "6efc14faf68e3e7698adbe644d264c403d04dd0a",
      "tree": "a3a3bd2661eca947a4464e5efd0f137dfdb17dff",
      "parents": [
        "2cbc7cd807382e371ad5ae71039afccb9641433c"
      ],
      "author": {
        "name": "Yuxiu Zhang",
        "email": "yuxiu.zhang@mediatek.com",
        "time": "Mon Jun 10 16:13:05 2019 +0800"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Thu Jun 27 10:17:00 2019 +0100"
      },
      "message": "Http streaming cannot play video whose duration is less than 5s\n\nonPollBuffering() monitors EOS(finalStatus \u003d\u003d ERROR_END_OF_STREAM),\nthen notifyPreparedAndCleanup(finalStatus) notifies prepared error.\n\nPrevious Google\u0027s patch \"GenericSource: fix error handling during\npreparing or rebuffering\" should focus on error except ERROR_END_OF_STREAM.\n\nBug: 134911527\nTest: http streaming can play a mp4 video whose duration is less than 5s\nChange-Id: I5c738bbe7242314b24463679b5bd996ab59d2b04\n(cherry picked from commit 89703072ec4edf7a384ec07024debc0a6e085ae0)\n"
    },
    {
      "commit": "83f56b07f214d20a7b3e5137a72ced990fccac10",
      "tree": "fe0dd6b505d1f41128952083000f8e64c30359d7",
      "parents": [
        "ad735264bec8ee70d3ab0fbbccb9b7be796e637f"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun Jun 23 15:13:46 2019 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun Jun 23 15:31:12 2019 -0700"
      },
      "message": "Finer synchronization for nuplayer stats\n\nBug: 131474028\nTest: manual\nChange-Id: I4c38cc979baa91d6d23115da1d53c8152e77cb36\n"
    },
    {
      "commit": "932f63ef1219deb522f094c4cf8f1223a7fb38c2",
      "tree": "e1a77b364eda64fb5faa4b62d42447a4f1e34a37",
      "parents": [
        "c5bfbeaf974e50bf5d840186a7000d75ce9db25a"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Jun 13 17:40:32 2019 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Jun 18 18:15:25 2019 +0000"
      },
      "message": "NuPlayer::GenericSource::onPrepareAsync():Change lock order\nmLock and mDisconnect lock order interleaving,\nwhich has potential risk of deadlock if other code locks/unlocks them in a different order.\n\nBug: 135211710\nTest: (1) android.hardware.camera2.cts.FastBasicsTest#testCamera1\n      (2) android.media.cts.MediaPlayerFlakyNetworkTest\n\nChange-Id: I9486f2c6780c2f246786299a3d6c7c2f7295b768\n"
    },
    {
      "commit": "c4270cc3a9287d72163cacd0cadfa91523764855",
      "tree": "7c0e353320c0bd5120199167a1630e23db4eff3d",
      "parents": [
        "e81a326d90dfce1249917b796f69b48fe1c59971"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Jun 13 11:32:07 2019 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Jun 13 21:07:39 2019 +0000"
      },
      "message": "fix bug: release mDisconnectLock when early terminate\n\nBug: 134995545\nTests: (1) described in buganizer comment #2\n       (2) atest CtsCameraTestCases:android.hardware.camera2.cts.FastBasicsTest#testCamera1\nChange-Id: Ie134e503cd7602a754b57bcc5c1355dea19d4eab\n"
    },
    {
      "commit": "13497d02b5bd63c4867e2284833a6bf57cdf119e",
      "tree": "771ab2b5387a0451f88046e52d95fed0a48f4713",
      "parents": [
        "ca77ca26c12734407f12581854701b1d255cbba3"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Jun 06 13:54:12 2019 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Jun 06 16:06:23 2019 -0700"
      },
      "message": "Fix android.media.cts.MediaPlayerFlakyNetworkTest failure\n\nAdded mDisconnectLock to seperate it from mLock, used for protecting\nmDataSource, mHttpSource and mDisconnected in order that disconnect()\nwon\u0027t be blocked by mLock.\n\nBug: 133900877\nTest: android.media.cts.MediaPlayerFlakyNetworkTest\nChange-Id: I15693c0a61f898aad4035d0fa55c8af25de4fc96\n"
    },
    {
      "commit": "6ce27e5ffa056948b506bf7320a9f9c961150684",
      "tree": "d3c75842dba2db375a7b3b4413e902ecccbbb5ef",
      "parents": [
        "ef7eaaf8d873e9d832673fd0a8e07371fa47a0a0"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Feb 15 10:58:05 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 06 11:35:11 2019 -0700"
      },
      "message": "connect mediametrics service to statsd\n\ntake the collected media.metrics (as they arrive) and push a copy over\nto statsd, the statistics logging subsystem.\ngather data, wrap in protobufs apppropriately, and submit it to statsd.\n\nBug: 118782504\nTest: statsd\u0027s test_drive app\nChange-Id: Ieb82c43633851075e9eaf65d2a95c8cba87441ea\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": "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": "a1acff23ff51603762cd0fa9f06fa0e74322c558",
      "tree": "fc72d5dd3c687e7d68e1832f103c7a314ca64923",
      "parents": [
        "ecd19f37e673adcf04ea68b7001b3200c692eb14",
        "e1c7348e1c3fed25c16ae4673101f48b1ed95b7e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 00:07:15 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 00:07:15 2019 +0000"
      },
      "message": "Merge \"NuPlayerCCDecoder: fix memory OOB\""
    },
    {
      "commit": "e1c7348e1c3fed25c16ae4673101f48b1ed95b7e",
      "tree": "0398bf5a184153694c6d2b4959c7622a10497cb6",
      "parents": [
        "e9cecf0f8865fa43d8c2977c314f9c81fb20ba3b"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Apr 01 16:18:53 2019 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Apr 02 15:18:45 2019 -0700"
      },
      "message": "NuPlayerCCDecoder: fix memory OOB\n\nTest: cts\nBug: 129068792\nChange-Id: Id78ddc983f245feda3a81da3448196340b57f5c9\n"
    },
    {
      "commit": "5635b7d126c46bb33d80f1518fe75702e4c2e179",
      "tree": "6b9778a41873e4c88b63e5325fc6dd670886f37d",
      "parents": [
        "32fa5079485232f3cb22afab91a275bba28d841b",
        "e4da6c62ba4a9ee1b414b91afcba0c84de0cf329"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Apr 02 14:30:16 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 14:30:16 2019 +0000"
      },
      "message": "Merge \"Notify software service\""
    },
    {
      "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": "9c63fbe4e0ccbc32086fe96d14877293763f3846",
      "tree": "901c81a2c6350a209ddb6715c160d6bf7fd58c33",
      "parents": [
        "ea58eede918025b277dadd69192590c4ad0a6b74",
        "11966872eedd949041dfe0a905794654a3df49cf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 01 20:11:13 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 20:11:13 2019 +0000"
      },
      "message": "Merge \"Remove subdirs from Android.bp\""
    },
    {
      "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": "11966872eedd949041dfe0a905794654a3df49cf",
      "tree": "7ad77e435903461790f78282853777f389b7bfd0",
      "parents": [
        "71028253b21dfee4e3908916c4182cd0ea140f11"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Feb 22 17:54:19 2019 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Mar 28 23:54:38 2019 -0700"
      },
      "message": "Remove subdirs from Android.bp\n\nsubdirs is meaningless now.\n\nTest: Builds\n\nBug: 129513796\n\nChange-Id: I60130e38b5924b73c5520d884868dd580f5345bf\n"
    },
    {
      "commit": "125f082b2862243db9c26b5f7aa3b8ba1769034d",
      "tree": "cd579b19cdb96a42160b2852c4612315b6750395",
      "parents": [
        "f8420218f94a175a9bf3e0b9f661670ef2319821",
        "c30f0d8ed4166f88650798b11026b3b897ed9095"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Mar 22 18:50:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 22 18:50:21 2019 +0000"
      },
      "message": "Merge \"skip -1 default values in stagefrightrecorder metrics\""
    },
    {
      "commit": "1234008771662d2b250d6d4972adb04de963fb0d",
      "tree": "d050c75b3935ed9d20676312df0e7cd1d94cd13c",
      "parents": [
        "60c73a445b632cc2e233b1a275efeee7414a41a4"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Mar 19 09:35:05 2019 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Mar 21 21:51:49 2019 -0600"
      },
      "message": "API changes in MicrophoneDirection\n\nBug: 128523813\nTest: Build, Testbed app\n\nChange-Id: I7b5ee8ba4eec1090866d8aef891a98d50cd09cc5\n"
    },
    {
      "commit": "c30f0d8ed4166f88650798b11026b3b897ed9095",
      "tree": "50809ef44bb61de5b524c6cf7a476536f34a9193",
      "parents": [
        "b9df1597c794855106dc8225050f5fc2011d07d3"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 21 15:07:54 2019 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Mar 21 15:07:54 2019 -0700"
      },
      "message": "skip -1 default values in stagefrightrecorder metrics\n\ndon\u0027t emit the -1 (default, unspecified) values for\nmovie, audio, and video timescale fields in the \u0027recorder\u0027\nmediametrics type.\n\nBug: 78600173\nTest: y\n"
    },
    {
      "commit": "14c10ebbf4d05c5dc8ca08371410437f47077bde",
      "tree": "5672a7254d5843fae9b40a40dcf010758959756a",
      "parents": [
        "baf2d2c69a281803c039c92b74cf8d7223f88c48"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Sat Mar 09 13:33:41 2019 -0800"
      },
      "committer": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Tue Mar 12 20:08:48 2019 -0700"
      },
      "message": "StagefrighRecorder:check mWriter before using fd\n\nftruncate(fd) would be useless if mWriter was NULL already.\nHence moved mWriter nullptr check before ftruncate(fd).\n\nBug: 128366317\n\nTest: atest CtsMediaTestCases:android.media.cts.MediaRecorderTest\n\nChange-Id: I46b8c4718bc8a90712b7ec0b54d8239106106018\n"
    },
    {
      "commit": "baf2d2c69a281803c039c92b74cf8d7223f88c48",
      "tree": "69d72e0d8d5dc3c79f303a9d3a47bb02d5e0a6c6",
      "parents": [
        "11993758113707b5e13fdda10af904148742a6c7",
        "b2ba4859b9b1c0ff6332916f2826cd1c0c496ec2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 12 23:57:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 12 23:57:21 2019 +0000"
      },
      "message": "Merge \"StagefrightRecorder:close next filedescriptor\""
    },
    {
      "commit": "b2ba4859b9b1c0ff6332916f2826cd1c0c496ec2",
      "tree": "70938be97c4b8e6561335ed529bc82ec9a7b6d81",
      "parents": [
        "d77619a5643b3cff502d38c8c9b8e91f94c1439c"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Sat Mar 09 16:45:42 2019 -0800"
      },
      "committer": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Tue Mar 12 12:24:18 2019 -0700"
      },
      "message": "StagefrightRecorder:close next filedescriptor\n\nBug: 127693962\n\nStagefrightRecorder receives next file descriptor in it\u0027s function setNextOutputFile() from\nMediaRecorder.setNextOutputFile(). It duplicates the received file descriptor, but doesn\u0027t close\nthe duplicated one when done.\n\nThis CL fixes that issue by not duplicating it in StagefrighRecorder as it has to just pass it on\nto Mpeg4Writer.  Mpeg4Writer duplicates received file descriptor.  It frees them during release.\n\nTest: \tcts-tradefed run cts-dev -m CtsMediaTestCases --compatibility:module-arg\n\tCtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice\n\nChange-Id: I24fc12bd957a2abdb8785625261c95da62952736\n"
    },
    {
      "commit": "366b643d1e674684d7095cdbe36b6791e842fdbc",
      "tree": "1eaa875ba8bb14b2def251f7f0bdd27fce37cca5",
      "parents": [
        "e1e9cad4d0c7c9825b7f29ebc082dfcbdcace25c"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Mon Feb 25 10:35:51 2019 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Mar 06 14:55:55 2019 -0700"
      },
      "message": "Surface MicrophoneDirection API in MediaRecorder\n\nBug: 126185930\nTest: MicrophoneDirectionTest testbed.\nChange-Id: I6024ede50999aa751d63f272a087f578b8aea93d\n"
    },
    {
      "commit": "c3ce3cb96eda9876d614d6dbb2664199ed1ac007",
      "tree": "b7d77477245675a2aaf83285bf91302e158b7be3",
      "parents": [
        "15c6b6df6338529e10b4fc3ce1a904e82c0d6b6b"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Feb 12 14:18:05 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Feb 25 16:10:18 2019 -0800"
      },
      "message": "build mediaserver in 64 bit mode\n\nmediaserver is no longer forced to 32-bit mode, floating to primary\narchitecture which is usually 64 bits.\n\nBug: 16890215\nTest: boot, record video, android.media.cts.MediaPlayerTest\nChange-Id: If5265e251a4201e7037ddaa2f36fa998936622aa\n"
    },
    {
      "commit": "091aa6d37f8d3fb407f6a59b20135b6045a5495e",
      "tree": "73008ceadcdbc0315f0080efab73f0dd7efbd8e1",
      "parents": [
        "b5d428af44ab91fcc0c1e537e2094163d39a36ab"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Feb 15 11:46:00 2019 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Feb 15 11:46:00 2019 -0800"
      },
      "message": "Mark functions in MediaPlayerBase::AudioSink as pure virtual\n\nBug: http://b/116873221\n\nMark the functions in this class that aren\u0027t defined as pure virtual.\nIf not, Clang assumes that the TU which defines the first undefined\nfunction will contain the vtable for the class as well.  Since there\u0027s\nno out-of-line definition of this funciton, no TU ends up with the\nvtable.\n\nThis causes a problem with coverage builds, which are built with -O0,\nwhere calls don\u0027t get inlined, thereby requiring a definition of the\nvtable.  For non -O0 builds, the vtable is not required since the\nvirtual calls get inlined/optimized-out.\n\nTest: Build with and without coverage\nChange-Id: I4644dcd892c5f47031f1603b0f809c1da95314db\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": "f294a074ce2c79f6abeadaccbd26ae0353c336cf",
      "tree": "492cb63374d2b23fb499becaf8aadfa28c73ada5",
      "parents": [
        "afb69292957f4048866d7bdae8d76d322f95bbef",
        "94e65974e03d89863d72f0142cb928b2ddb21912"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 13 20:51:58 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 13 20:51:58 2019 +0000"
      },
      "message": "Merge \"media: make stagefright recorder temporal layering limit OEM configurable\""
    },
    {
      "commit": "afb69292957f4048866d7bdae8d76d322f95bbef",
      "tree": "78762cc3d8601295c8fa2259bc2bc47c37126348",
      "parents": [
        "3d1f734702f5053d5a69b3f797e9d902742c43ff",
        "29c6a1fa100592aed5654913ddbd9ad5adf0e775"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 11:21:58 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 13 11:21:58 2019 -0800"
      },
      "message": "Merge \"NuPlayer: Call video flush on audio teardown\" am: d093917344 am: 436d9e9d91\nam: 29c6a1fa10\n\nChange-Id: I069065dd0660f3824108bd6489b177296781a4b4\n"
    },
    {
      "commit": "d0939173441f0ff2efcfea44de6924ef18454e6c",
      "tree": "bcb9e9d8380ee7e40dd6429ed75454e7d389b5e8",
      "parents": [
        "615d9ff50e81846a33dceace331650ddb2cae9ea",
        "eca08fb8619db79e7e47b0dba9f8f5f9e961dfef"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Feb 13 18:33:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 18:33:16 2019 +0000"
      },
      "message": "Merge \"NuPlayer: Call video flush on audio teardown\""
    },
    {
      "commit": "94e65974e03d89863d72f0142cb928b2ddb21912",
      "tree": "1278774f8c17109de8de5e9260e0c9b9ac2aa717",
      "parents": [
        "a13e83c2915e594f29f92033886b8565b91e511f"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 13 09:06:48 2019 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 13 09:17:57 2019 -0800"
      },
      "message": "media: make stagefright recorder temporal layering limit OEM configurable\n\nBug: 124023478\nChange-Id: Ibbe25871805b251878309a3b8aeefa26c1f8f482\n"
    },
    {
      "commit": "a13e83c2915e594f29f92033886b8565b91e511f",
      "tree": "43325d2efb737ccd6afba5e9e377b2382b74e5ce",
      "parents": [
        "8d7fea64521c9e79e81051d615875e8a4e6af610",
        "e9ab588c2cf8698e383b9139ec9f3a15c51f93cd"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 12 21:34:24 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 12 21:34:24 2019 -0800"
      },
      "message": "Merge \"Fix bugs regarding clamping of numFrames variable.\" am: 615d9ff50e am: 23a9678be1\nam: e9ab588c2c\n\nChange-Id: Ieeafefed7f324a68917848e54451693d0bedd019\n"
    },
    {
      "commit": "615d9ff50e81846a33dceace331650ddb2cae9ea",
      "tree": "cdb03567d808337ed86b15ccd2c0b3b411957869",
      "parents": [
        "f4935e88d1b38756033727c6a70d1530532636b7",
        "2c2050c6b67539465a1af1f98a4a626af3c85ff0"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 13 04:51:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 04:51:15 2019 +0000"
      },
      "message": "Merge \"Fix bugs regarding clamping of numFrames variable.\""
    },
    {
      "commit": "eca08fb8619db79e7e47b0dba9f8f5f9e961dfef",
      "tree": "a3a18d87a0351ffeef559dd8c1af7f38bac39245",
      "parents": [
        "0d8553c9a1368d0837e8b154e19d15728417cd22"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@quicinc.com",
        "time": "Mon Jan 21 11:00:38 2019 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Feb 12 17:58:46 2019 -0800"
      },
      "message": "NuPlayer: 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\nAuthor: Cong Jiajia \u003cjcong@codeaurora.org\u003e\n\nBug: 70919418\nTest: MediaPlayerTest\nChange-Id: I01f744c1eae99a1d0f81ca84f536d493a2a54b01\n"
    },
    {
      "commit": "78199b7961f104ad0dff92d2c2b668d576291ece",
      "tree": "f40486bc47b022c9b628aae16ed7950320c95224",
      "parents": [
        "90dc07267842d3b6ead6b8435f6e0aea921b70da",
        "4d94b4a7b10f0309a040737f6b57410d9052af11"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Feb 12 11:53:25 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 12 11:53:25 2019 -0800"
      },
      "message": "Merge \"video: Add null checks for MediaAnalyticsItem class\" am: ea1a0f0383 am: e57360ffa8\nam: 4d94b4a7b1\n\nChange-Id: I3f3e2159beb1ec634a8106a32444fcf0ad688da5\n"
    },
    {
      "commit": "90dc07267842d3b6ead6b8435f6e0aea921b70da",
      "tree": "6d91e2c51c5d219418e69bde41dd9f7310feb5b2",
      "parents": [
        "97767dff535081e39711445f49e446013611df28",
        "8f11d12acecfbae05b281cb5dd224b7ffc9d552c"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Feb 12 11:52:20 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 12 11:52:20 2019 -0800"
      },
      "message": "Merge \"MediaPlayerService: Clear the vector holding tracks\" am: b6229652ed am: efb1eecb65\nam: 8f11d12ace\n\nChange-Id: I27253016da23f7973587f9dd71ab76b13048538a\n"
    },
    {
      "commit": "ea1a0f0383e359645eca3e76567857e8ef4594ee",
      "tree": "4c1311924c5c452e903c39f15abce62ddeae7ce3",
      "parents": [
        "b6229652ed17ea48c39ca1fc17cca0ea6897118c",
        "f71144e8361b8e3d872d01dac71edbe8947eac3b"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Feb 12 19:27:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 19:27:34 2019 +0000"
      },
      "message": "Merge \"video: Add null checks for MediaAnalyticsItem class\""
    },
    {
      "commit": "b6229652ed17ea48c39ca1fc17cca0ea6897118c",
      "tree": "1e5c397685c8e05ba2b0f6e71e872b14353ebf21",
      "parents": [
        "ecfbd58de82bfa2af715464045a7e5468b785f83",
        "b46073425ebd372f374e9681184c97b8f944f091"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Feb 12 19:26:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 19:26:03 2019 +0000"
      },
      "message": "Merge \"MediaPlayerService: Clear the vector holding tracks\""
    },
    {
      "commit": "b46073425ebd372f374e9681184c97b8f944f091",
      "tree": "2788d5f6298c985a59a7b67182ae510af27108db",
      "parents": [
        "0d8553c9a1368d0837e8b154e19d15728417cd22"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Feb 11 15:31:22 2019 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Feb 11 15:31:22 2019 -0800"
      },
      "message": "MediaPlayerService: Clear the vector holding tracks\n\nClear the vector which holds all tracks when the\nGenericSource is reset to prevent any stale access\n\nAuthor: Umesh Pandey \u003cumeshp@codeaurora.org\u003e\n\nBug: 70919418\nTest: TBD\nChange-Id: If7042b3344ce36ba56e38df1a43bc2bb287cc40c\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": "f71144e8361b8e3d872d01dac71edbe8947eac3b",
      "tree": "974259c45814f9b059d340cd4e61b371a4489c92",
      "parents": [
        "0d8553c9a1368d0837e8b154e19d15728417cd22"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Fri Feb 08 15:18:05 2019 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Fri Feb 08 15:18:05 2019 -0800"
      },
      "message": "video: Add null checks for MediaAnalyticsItem class\n\nCheck if MediaAnalyticsItem class is valid before\ncalling any of its functions.\n\nAuthor: Paras Nagda \u003cpnagda@codeaurora.org\u003e\n\nBug: 70919418\nTest: TBD\nChange-Id: I2d5704063b9479301f03d6f57ce74108873ef4cc\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": "6a3052232c606bc2f74a849c6758fd44b6c01158",
      "tree": "529ee3bb94a17c06e19c8642daf9993f23d531f2",
      "parents": [
        "2637984613a75eb2640a73e186a6dd1f08cebbc0"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 28 20:33:18 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 31 11:19:44 2019 -0800"
      },
      "message": "use MediaAnalyticsItem::create() instead of new\n\nBug: 123543489\nTest: boot/logcat, select CtsMediaTests\nChange-Id: I92f8b9987b78466fae74ce4c0b177f8bb1e7dea8\n"
    },
    {
      "commit": "2c2050c6b67539465a1af1f98a4a626af3c85ff0",
      "tree": "3cf55476bc2852da2e35192fd7fcd73c1878aecd",
      "parents": [
        "4ae8b0c37c4b9852c15098cc5ba4129745d1d07b"
      ],
      "author": {
        "name": "hyoungjun.byun",
        "email": "hyoungjun.byun@lge.com",
        "time": "Thu Jan 31 12:11:38 2019 +0900"
      },
      "committer": {
        "name": "hyoungjun.byun",
        "email": "hyoungjun.byun@lge.com",
        "time": "Thu Jan 31 12:11:38 2019 +0900"
      },
      "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\n\nSigned-off-by : Hyoungjun Byun \u003chyoungjun.byun@lge.com\u003e\n\nChange-Id: Ib97d89b33a8e5b6bea3d499e4b44d1056d7fae66\n"
    },
    {
      "commit": "db3fa5f9ff069697b70f2a702177f1db83a6d5b7",
      "tree": "5ac815ae62bcb6e6fea949385afe2c53508db0f7",
      "parents": [
        "8ce16d8609ee14dfbfafeecfb3cb5d1ebb94f1f2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jan 25 22:56:56 2019 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 30 07:09:41 2019 +0000"
      },
      "message": "Throw exception on mismatched system vs vendor\n\nWhen the system partition is a later version than vendor,\nnew MediaDrm APIs will not have HAL implementations. In\nthis case throw java.lang.UnsupportedOperationException.\n\nbug:110701831\nbug:123375769\n\ntest: cts media test cases, gts media tests\nChange-Id: Ib631bf4d4d245d857e61bd3fe0e5808e430a034d\n"
    },
    {
      "commit": "8ce16d8609ee14dfbfafeecfb3cb5d1ebb94f1f2",
      "tree": "2d9e10c9e30efa3e8daa757aaa68d7c977a1ba5c",
      "parents": [
        "550c84d997b6c76c63ffc580aa2528cb528e1833",
        "ca655c345f01e6ed786cfcfc3fa2cb574b758680"
      ],
      "author": {
        "name": "Ben Romberger",
        "email": "bromberg@codeaurora.org",
        "time": "Tue Jan 29 21:55:42 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 29 21:55:42 2019 -0800"
      },
      "message": "Merge \"libmediaplayerservice: Check for a possible divide by 0\" am: caa0b29253 am: c6a37161e1\nam: ca655c345f\n\nChange-Id: I8550791d704cbd7ca70a300709f0ad896099a97a\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": "6b0b52643d064ad36a47a4bb5ad76966fc25cc0a",
      "tree": "833425ab9067ad4a87103a80d6598505a14ee77c",
      "parents": [
        "db80386712cfc0a4c7642f72992a3933a21f4458"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jan 25 19:48:31 2019 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jan 25 19:48:31 2019 -0800"
      },
      "message": "Reduce logspam in nudriver\n\nCurrently, there is a lot of logspam in nudriver. Reduce the spam.\n\nTest: flash the device and let it idle. Open \u0027adb logcat\u0027. Observe.\nBefore the change: logspam @ about 10 messages / second\nAfter the change: no logspam\nBug: 65494379\n\nChange-Id: Ie952fdcab61aa89bb72d9c6dc63487643febd974\n"
    },
    {
      "commit": "99dbfa822e277956799e987c106d4ec1b7984f1b",
      "tree": "d5ab50d0657b41554e0594ebb9a30f058ca3d1e3",
      "parents": [
        "701768e80731da3df0edac97fb8fc442ffbbd33f"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 17 17:27:06 2019 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Jan 22 23:27:10 2019 +0000"
      },
      "message": "Add securityLevel to MediaDrm isCryptoSchemeSupported API\n\nbug:110701831\ntest: cts media test cases, widevine integration tests\n\nChange-Id: Ia4308a27a11a279db1fb127c51d752ecaa86dfcb\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": "a09fa50c96278cdacf7c845821631c3dab69813a",
      "tree": "64cd6af644645d15eae988251f6063fd786bc2c6",
      "parents": [
        "b93cee2ef2464d748e77f01c536bd0f57dddd165",
        "723be42fdbbbfe0e50c044952496acb313b2a7a6"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 09 15:27:46 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 09 15:27:46 2019 -0800"
      },
      "message": "Merge \"GenericSource: restore mLock state in error cases\" am: bccd73e209 am: f7f5ab9924\nam: 723be42fdb\n\nChange-Id: I2d4c028ed3fc0bb0dd04211947550d3c08674ecf\n"
    },
    {
      "commit": "c43464ea5bf15295ddbc30dc03bc70648a80a16a",
      "tree": "3d97e6dbd283ee75dbacaac24f676268af9188b9",
      "parents": [
        "18c84ba4ec155b58bdfa397b3fa93fb2b7bda284"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 09 11:27:11 2019 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 09 11:27:11 2019 -0800"
      },
      "message": "GenericSource: restore mLock state in error cases\n\ninitFromDataSource and onPrepareAsync are called with mLock acquired.\nWhen initFromDataSource returns with error, notifyPreparedAndCleanup\nwill be called and it requires mLock acquired.\n\nTest: cts\nBug: 122564587\nChange-Id: I430dbc5f1f30c06223ea22438282bd388174f7df\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": "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": "44f43604955f35a47184d64865bd089c9e673e60",
      "tree": "6c6d1b6b4e4346b6c7415505abfbd7ed4d973bf1",
      "parents": [
        "77a428b58b1ab5d5f7212d8b1d4dbac20a985018"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 18 12:51:19 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 20 19:17:12 2018 +0000"
      },
      "message": "MediaRecorder: add getPortId() method\n\nAdd method to retrieve unique port ID for the AudioRecord instance\nassociated with a MediaRecorder.\n\nBug: 111438757\nTest: CTS tests for MediaRecorder\nChange-Id: I77295ccd163bfa2319a492ed64186a28b691ac38\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": "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": "0cc7de2b76d68b690f61e02a13f22e0b5bd174bc",
      "tree": "8a7d755e7ddd78fa1aa8ac756a91df1c148607b3",
      "parents": [
        "59c920b7d817e4484c68ac4cdfb0c96d41380ff8",
        "df27b04b52fd6a2ba9d9a5180adc2847386632a8"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Dec 12 17:18:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 17:18:57 2018 +0000"
      },
      "message": "Merge \"Plumbing for OPUS encoding.\""
    },
    {
      "commit": "20d51cca2c61b65be88b5bad43e6f363e29373b8",
      "tree": "55b3c735670490bed7ecd524ba047712f7179dda",
      "parents": [
        "45999facdf65223af739ba12d71956ebbf174085",
        "698e9e88633dcfc33eb7112c3c69cbbd4ecc49ad"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 21:14:51 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 11 21:14:51 2018 -0800"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in nuplayer.\" am: 83c76fb62f am: 45dbe4cb02\nam: 698e9e8863\n\nChange-Id: Ia515d1ac2d776dc6a698378d5d2b5119e4f60bc1\n"
    },
    {
      "commit": "45dbe4cb0292c08fd511fcf3b2f719419ff5a5a3",
      "tree": "80d3be2b8a5e7c12490b813b7ca68fdb48c788d9",
      "parents": [
        "bef48edf9d5984cd9621b821cb7dc096999160e2",
        "83c76fb62ffbad4a0aa22f4f53e8ba23395bde1b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 17:18:32 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 11 17:18:32 2018 -0800"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in nuplayer.\"\nam: 83c76fb62f\n\nChange-Id: I8fca7fcfb5052f67228d3c5a86cac7b21fc0736a\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": "62309d52d5431b2dc79f66b0f4c2d30d50dd9969",
      "tree": "05b22083b907ec5a665a0313696623ff9e3ce2f6",
      "parents": [
        "14c577fac81b8fdcc75e4bf9243f16bd624ba58b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:54:02 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:54:02 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings in nuplayer.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: Ia4124c95101ba37d7212a4de8a9a17959153db25\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": "df27b04b52fd6a2ba9d9a5180adc2847386632a8",
      "tree": "15607195f3f2cb9372c61bb78b4af6bed26a28d3",
      "parents": [
        "5a2048c3095478482a5ac16639514d3a0a214713"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Nov 27 18:55:09 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 11 11:58:13 2018 -0800"
      },
      "message": "Plumbing for OPUS encoding.\n\nWebm, OGG container extensions to hold opus.\nhooks so we can say that we\u0027re recording in opus format.\nOMX-specific changes are omitted since our target is Codec2\n\nBug: 111850384\nTest: with separate omx routines\nChange-Id: Iecb8b53df3fbd8506d2e6f007602284eb2d0decc\n"
    },
    {
      "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": "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": "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": "092f74a609334e2f5e39d3afa1a35fbc69730c13",
      "tree": "9d47467655be0b0ba54e73ed822c35f5b8cd5d54",
      "parents": [
        "ce4afa6ca3a2cc61ff2855fd062c8c49a8ec86ca"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Nov 20 10:25:13 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Nov 20 10:25:13 2018 -0800"
      },
      "message": "capture frame rate for player records\n\nmedia.metrics gets the frame rate of playback within the nuplayer\nrecords.\n\nBug: 119817586\nTest: logcat\n"
    },
    {
      "commit": "2b674bbdfb1b30e5e10b42e776e5e44993d012b4",
      "tree": "1b8ba6ea551bb8ac997c8aaae12997cb2a3eb055",
      "parents": [
        "c74fafab6db73b0ee7adbba937c502d1806df5b9"
      ],
      "author": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Fri Jun 22 14:53:20 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 15 14:53:46 2018 -0800"
      },
      "message": "Support float WAV \u0026 FLAC extraction\n\nPreviously all WAV/FLAC files were extracted as 16 bit data.\nChanges this so that 24/32 bit are extracted as float data\nto maintain the higher quality.\n\nNote: Update for master branch supersedes iot branches.\n\nBug: 63770882\nBug: 110480091\nTest: Used media player to play 24 bit, 32 bit, and float wav files, plus 16 bit and 24 bit FLAC files,\nensured data went through successfully without loss of quality\nChange-Id: Ic09bd2fe994bbf3ed8441549904712c534030c96\n"
    },
    {
      "commit": "c74fafab6db73b0ee7adbba937c502d1806df5b9",
      "tree": "8036e2ebe7ddcd008949f4daaf5a3a505d66cf0e",
      "parents": [
        "0332f621e2e65e7edddd6e9bacd874f429de8061",
        "8d86a6d3871f939944c534a430e7950ef77f9475"
      ],
      "author": {
        "name": "Krzysztof Semko",
        "email": "krzysztof.semko@sony.com",
        "time": "Wed Nov 14 20:06:04 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 14 20:06:04 2018 -0800"
      },
      "message": "Merge \"Do not update time offset for time lapse recording after pause\" am: a864ea5f2d am: 05948baa04\nam: 8d86a6d387\n\nChange-Id: I705526227a7972f9d75d01a637756c123b32eeee\n"
    },
    {
      "commit": "8d86a6d3871f939944c534a430e7950ef77f9475",
      "tree": "28f80995b60cb967fcb90606d4c0998031754ed8",
      "parents": [
        "7bff17adacd9582347a3671a5e1f37ac876012d1",
        "05948baa045973747cad0e75b61a08af240923ff"
      ],
      "author": {
        "name": "Krzysztof Semko",
        "email": "krzysztof.semko@sony.com",
        "time": "Wed Nov 14 19:58:36 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 14 19:58:36 2018 -0800"
      },
      "message": "Merge \"Do not update time offset for time lapse recording after pause\" am: a864ea5f2d\nam: 05948baa04\n\nChange-Id: I38f29db5e54427f9e0a8873473c56dc14cd458a6\n"
    },
    {
      "commit": "18dca5ef856873fee805c31be69eaca914de33ce",
      "tree": "91d8cce9219dd522587c0b41d298ae882d0adcc0",
      "parents": [
        "da0c1f2ca3e860997844eb146524887f96583d9f",
        "c8baaba1ee057336c0f9293a1762befded9b5936"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Nov 13 07:03:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 13 07:03:36 2018 +0000"
      },
      "message": "Merge \"Add new offline management APIs to MediaDrm\""
    },
    {
      "commit": "af136d5c32b3ecf90741511473e974e38c50de3d",
      "tree": "ce20abad575d4be7053eb909e469d951ed024af4",
      "parents": [
        "d31283885b1d992ec59b94bee970400ab812c6ca"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 09 14:21:36 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 09 14:21:36 2018 -0800"
      },
      "message": "GenericSource: fix error handling during preparing or rebuffering\n\nTest: cts\nBug: 119271544\nBug: 115287688\nChange-Id: I18db8600c1b7d3cfa472ff376cf0f8629f0fbaff\n"
    },
    {
      "commit": "c8baaba1ee057336c0f9293a1762befded9b5936",
      "tree": "ff28a3497e5660eb564dda6571b5bb90ac2d485c",
      "parents": [
        "71fb1a8ce526868a1b36058a1a27260946f83d59"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Oct 23 11:32:36 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Nov 07 17:31:36 2018 -0800"
      },
      "message": "Add new offline management APIs to MediaDrm\n\nbug:110838441\nbug:117570956\nbug:116252891\n\ntest:cts android.media.cts.MediaDrmClearkeyTest#testOfflineKeyManagement\n\nChange-Id: I2ee86afbd1a0ae793454c2e81f3267aaf10bade7\n"
    },
    {
      "commit": "bbebb4554b01d11800d8883e8b43742b3e5b7350",
      "tree": "438808bac642a44b1e757c3302899fb419525493",
      "parents": [
        "b8fd364d0a0e23317c1fbc5055800bbeee3ba349"
      ],
      "author": {
        "name": "Krzysztof Semko",
        "email": "krzysztof.semko@sony.com",
        "time": "Tue Aug 29 12:00:12 2017 +0200"
      },
      "committer": {
        "name": "Takahiro Aizawa",
        "email": "Takahiro.Aizawa@sony.com",
        "time": "Tue Nov 06 04:57:56 2018 +0000"
      },
      "message": "Do not update time offset for time lapse recording after pause\n\nFor cases when StagefrightRecorder is used for recording\nvideos with a different capture and frame ratio (time lapse\nor slow motion) with a surface source, recorded video\nis incorrectly updated by a capture/recorded fps ratio.\n\nTo fix this, such factor will be used only with camera source.\n\nBug: 119070689\nTest: timelapse/slowmotion and pause/resume with surface input\n\nChange-Id: Id9df526324f3ead8117eb4571f9459beceea9fff\n"
    },
    {
      "commit": "b8d79f41f8ad91474bfdc3e8409b2803ea09bf3e",
      "tree": "ec556d1791c5095ab564504f1f794b435b4eb3e9",
      "parents": [
        "fec151edf5e525c8d8f2a448d1e080d90b63e3a6"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Nov 01 17:43:20 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Nov 01 17:52:56 2018 -0700"
      },
      "message": "MediaPlayer2: remove libnetd_client dependency.\n\nIn MediaPlayer2, we don\u0027t need to call setNetworkForUser\nsince the framework already handles data usage billing\nfor application processes.\n\nTest: build\nBug: 112767419\nChange-Id: I0d4464f7ac024e0a0cf41e1d5cc97372c3e37017\n"
    },
    {
      "commit": "8b5eeb77158a44d3362dfdc8df30ea09c9d6d72f",
      "tree": "fbdb09b7df2d9e5d8c4b7803dfc57473c0c4c482",
      "parents": [
        "f783424b1ad040f6437ed83ffb690e8ec5c793ec",
        "3bc9597fda7cc1031e0e10296a7ccb5037732d25"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 18:04:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 13 18:04:36 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in nuplayer*.\" am: daba8f4f19 am: 4eabdc1237\nam: 3bc9597fda\n\nChange-Id: Ie45ea20d706e5c43d09b30be3e71021c207b771e\n"
    }
  ],
  "next": "3bc9597fda7cc1031e0e10296a7ccb5037732d25"
}
