)]}'
{
  "log": [
    {
      "commit": "7adaefea55a905fb07257685f460609c3bd72566",
      "tree": "40f5465faa1f82c355f4c28dc4d4d8a7d1eaf8a2",
      "parents": [
        "c9ff3299caae6d3732225ade5708ad780a78d19d",
        "932ca9fb417823e1ec71e2ef18c84a69ea33f03e"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Nov 04 00:16:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Nov 04 00:16:50 2020 +0000"
      },
      "message": "Merge \"Add a null check in RTSPSource::stop\" am: 2a692162a4 am: 40db8afe2a am: 371bfe9628 am: 932ca9fb41\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1456267\n\nChange-Id: I460e8d9160db16bf76e2b5b1c57c07e9536f4e29\n"
    },
    {
      "commit": "db09dbcbde810f0f430f06c67d654a7bada80a9c",
      "tree": "10993753d1ac58da3918d0dd79c039a652eab596",
      "parents": [
        "7ec362b7ec959c6e3b4ff99633667d2553bba34a"
      ],
      "author": {
        "name": "Daniel Bonnevier",
        "email": "daniel.bonnevier@sony.com",
        "time": "Wed Aug 19 15:54:49 2020 +0200"
      },
      "committer": {
        "name": "Edward Savage-Jones",
        "email": "edward.savage-jones@sony.com",
        "time": "Mon Oct 12 19:42:48 2020 +0200"
      },
      "message": "Add a null check in RTSPSource::stop\n\nThis was causing a nullpointer dereference in stop.\n\nBug: 170643945\nTest: pass cts tests\nChange-Id: I17966dcae10136bf114b1b1e2446e9ea051f8517\n"
    },
    {
      "commit": "55773033ed1f23c4e8f3d2704002fbd0cedbf7a5",
      "tree": "54bc894243fa3c52e611c85aed75ee6677056c13",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 08 18:12:55 2020 -0700"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "ed809da358d7ac1e7b9ab10f00a12c2177a80844",
      "tree": "32a5e13f5d5fb281be9cf5b724a8b4d1f4de49e7",
      "parents": [
        "67122dfeda707c7316173973293446839cac1ee9"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Aug 17 16:53:02 2020 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 19 23:45:19 2020 -0700"
      },
      "message": "Miscellaneous fixups for VT contribution update.\n\nfixed misc. spacing and style issues\nAAVCAssembler/AHEVCAssembler: fix OOB reads in checkIFrameProvided,\n  checkSpsUpdated and dropFramesUntilIFrame\nARTPWriter: fix OOB read in SpsPpsParser, VpsSpsPpsParser and sendVPSSPSPPSIfIFrame\nARTPWriter: use KMP algorithm for VpsSpsPpsParser\nARTPSource/ARTPConnection/RTPSource: rename jbTIme to jbTimeMs\n\nBug: 165061754\nChange-Id: Iceeb3851aed0ba9b1c2c50b1a2378df06faa29d6\n"
    },
    {
      "commit": "6b0bf0bde24e3615eb9cd8c643f5c9860b26581e",
      "tree": "5b0d11e7af89fc00773c245bbcdb3b42b7bb187c",
      "parents": [
        "6b538065eef3e234c7c3b73781e5ba3b32aa83db"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Wed Oct 16 16:38:24 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:09 2020 -0700"
      },
      "message": "VT: Enhancements on RTP depacketizer (2)\n\n  - Send FIR if there was no I-frame within a sec in packetLost\n  - Fixed an issue dropped frame even it is completed. caused by\n      ABuffer marked as \u0027damaged\u0027.\n  - Provides completed I-Frame only to prevent codec stuck.\n  - Change time mapping as realtime since rtp time is already covered\n      by jitter buffer.\n  - Removed periodic RTCP:FIR requests if video call. Cause i-frame\n      insertion should happened only if video stream is broken.\n  - Give default value for uninitialize TrackInfo Value because\n    video stucked at the first frame all the times by Uninitialized\n    trash TimeScale \u0026 NormalPlaytime values make AccessUnit\u0027s ntp time\n    wrong.\n\nBug: 165061754\nChange-Id: Ied41ea57d4fa96d4c05d7f8eba3d96bcb8f3fc69\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "23b2393a25e08c7a72e5db25aa458109e62e98df",
      "tree": "d2b2a9de01ea03614700848b949171744e1aa124",
      "parents": [
        "0aedeb3a6cecb54f8ade6d01bd59d0b3f1944fcb"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Thu Jul 18 17:48:32 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:09 2020 -0700"
      },
      "message": "VT: Report all data about packet receiving up to application\n\n - A design change of RTP/RTCP recovery logic.\n - It\u0027s better to move logics about decision(ex. Call downgrading, TMMBR)\n   to application side. So all ingredients for the decision must be sent to upper layer.\n - RTP stastics will be reported to upper layer for every seconds.\n\nBug: 165061754\nChange-Id: I567a55926c27aafb2510313d9cd41acbc8110194\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "0aedeb3a6cecb54f8ade6d01bd59d0b3f1944fcb",
      "tree": "931193e73b14f17d257657217162ebad116e4b48",
      "parents": [
        "666397565bcbfbabfaca3577ca20c481ebf1d669"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Mon May 20 13:15:04 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:08 2020 -0700"
      },
      "message": "VT: Enhancements on RTP depacketizer\n\n 1) Do not merge FU pkts if rtptimes are different.\n   [Problem] There was a case that Fragmented Units of RTP be merged as\n     an one frame even Fragmented Units are has different timestamp.\n   [Solution] Added a condition to check rtptime between Fragmented Units.\n\n 2) Implementation of a new frame drop rule for p-frame.\n   [Problem] P-frame should be dropped only if FU packets damaged\n     more than half of amount of frame.\n   [Solution] Implemented a rule for p-frame drop.\n\n 3) Discards a rtp buffer that has unexpected ssrc.\n   [Problem] so many packet loss observed and video loss because about\n     4 different video stream coming at the same time.\n   [Solution] Allow only one stream that matched SSRC of first stream.\n\nBug: 165061754\nChange-Id: If840df274a6fc4b04910f9201359b7c09fd2bc85\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "7143c0771e197ed26d5a84d10624b8ea77b235aa",
      "tree": "a20e51b933b21a297aad91fe6d96ef79ff3b6442",
      "parents": [
        "d9db048e1333c330b63c8a2015d153f240c226da"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Mon Sep 23 13:31:37 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:08 2020 -0700"
      },
      "message": "VT: Added an interface to set JitterBufferTime.\n\nJitter buffer time can be adjusted according to packet jitter\nsituation. Jitter buffer time will be decided by upper layer\nand then RTP Assemblers just apply a value of jitter time.\n\nAdded an interface to set video-param-jitter-buffer-time.\n - Minimum jitter buffer time \u003d 40ms.\n - Maximum jitter buffer time \u003d 3000ms.\n\nBug: 144795638\nBug: 165061754\nChange-Id: Idc6ef462a91aab87c3f0ad46c504ebf0b89c36c4\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "ef2f300138c0c9a54ac0fe84b5eeebada3fbe548",
      "tree": "670df0dbd2e50779bdc3733ab831df8235621fb1",
      "parents": [
        "a069304fe522a0849b075940768fcc8fb79be6d7",
        "5fded10151a97929c20732d9b4215cf14c4572e1"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Tue Jun 30 18:00:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 18:00:49 2020 +0000"
      },
      "message": "Merge \"Fix FD ownership for local FileSource\" into rvc-dev am: 61375308e2 am: 971bb0305f am: 8796ef6a8a am: 5fded10151\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12023202\n\nChange-Id: I870497e167a8160c2d0fe041db83f28b4bf6f203\n"
    },
    {
      "commit": "85355f0e81ce401de2914c6108569c6b1a1dbb7d",
      "tree": "c89c95317bf8a84caba2cf7d87b2cbfaae2da300",
      "parents": [
        "1928cddbe98a24e173d1b83b870c67cd8f2deffb"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Sat Jun 27 22:38:45 2020 +0100"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Tue Jun 30 17:23:50 2020 +0100"
      },
      "message": "Fix FD ownership for local FileSource\n\nPlayerServiceFileSource took ownership of the GenericSource\u0027s FD and\nclosed it if extraction failed, causing a SIGABRT from fdsan. Fix this\nby dup\u0027ing the FD before passing to PlayerServiceFileSource.\n\nBug: 160136562\nBug: 159810405\nTest: manually tested SIGABRT disappears after this change\nChange-Id: I3f1f5daadba27bc75e2b550884d7bba559d6f2e7\n"
    },
    {
      "commit": "a427f198c7588c5e0422e83b868d5c691c952192",
      "tree": "5a111a1143659b3b1ddfd4c242f7bcaf89341d66",
      "parents": [
        "5ffd2fd2c9890502f7413dd83825b885d7c41a52",
        "edc4465d0f4f2623ec37c76c386cb80ea22bba50"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Fri Jun 05 12:40:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 05 12:40:40 2020 +0000"
      },
      "message": "Merge \"Clamp audio seek to non-zero timestamp\" into rvc-dev am: 7a0d96e922 am: 68460b7541 am: 68656358a6 am: edc4465d0f\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11733625\n\nChange-Id: Ica89c8ce7c2c44574d75225e0d5971faf105137d\n"
    },
    {
      "commit": "8a5bfc35916863759285af1a292d8989b6421c59",
      "tree": "2c9c4b79e52633bb80d4e59a260dce95fe2c8819",
      "parents": [
        "6d5a5c10a5b9389cd84b5a10d5814e65eeb004aa"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Thu Jun 04 15:20:27 2020 +0100"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Fri Jun 05 09:07:09 2020 +0100"
      },
      "message": "Clamp audio seek to non-zero timestamp\n\nSeeking first seeks the video source, then uses the \u0027resolved\u0027 seek\nposition for video to seek the audio source. If an edit list is handled\nby prerolling from a preceding keyframe in the video track, this can\nlead to negative resolve seek positions from video, and seeks to\nnegative values are ignored.\n\nClamp the resolved seek position from the video source to be\nnon-negative so that the seek is not ignored. This fixes looping for\nfiles with edit lists that require prerolling from before zero, though\nvideo rendering needs to catch up after looping back to zero.\n\nBug: 156762034\nTest: Manually verified using the APK in b/156762034#comment1\nChange-Id: I59753b36d0f1272d4a7b4292b5edd787f9575dfa\n"
    },
    {
      "commit": "7cf06d26eb599939e2b400fbd67b038de08103f7",
      "tree": "15a0bed0180f8762d7c3df8949c370c481ccaa52",
      "parents": [
        "610dda9535bda6cbba9084a7a3c04b768de6f9b5",
        "e2288aa957f6b49b33760acfd7c54f9e95d89a1e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 21 04:59:54 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 21 04:59:54 2020 +0000"
      },
      "message": "Merge \"Fix potential use-after-free issue\" into rvc-dev am: 557bdaa8d2 am: 282b2897ed am: 95a1d0514b am: e2288aa957\n\nChange-Id: I589c8b50ca32a6e5f6b5c8743069cfa509ff6a4d\n"
    },
    {
      "commit": "aad519df7fe3b69c8247669ea77ce339a44e8c51",
      "tree": "9daf955e79a48d66549b365794e9342bdf25c4ca",
      "parents": [
        "e658962c4246669810fc756b098f7fee8d220659"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Wed May 20 16:49:23 2020 +0100"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Wed May 20 16:59:34 2020 +0100"
      },
      "message": "Fix potential use-after-free issue\n\nNuPlayerListener passed this out of its constructor to\nIStreamSource-\u003esetListener, and it would get wrapped in a smart pointer,\nthen free\u0027d when that method returned.\n\nMove the setListener call after instantiation of NuPlayerListener to\navoid passing this out of the NuPlayerListener constructor.\n\nTest: tested in presubmit\nBug: 151456667\nChange-Id: I996d9ad9eaf0e52992b7f9e10fd94a94c350ad73\n"
    },
    {
      "commit": "fe37b7e7d7b1f83d5ab8d7b9216c35ccbd013338",
      "tree": "848dc5be44cf0fa3927cffc3e6c054c11786f37a",
      "parents": [
        "47075395b1ddb6b6d1cb6146104a685f1a40dffe",
        "14fe0af61a3337725b56703fac86f205a76e950d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 11 22:08:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon May 11 22:08:50 2020 +0000"
      },
      "message": "Merge \"Expand nuplayer mutex for mediametrics management\" into rvc-dev am: d6bca9b588 am: 68b6105fd9 am: 55470ea17f am: 14fe0af61a\n\nChange-Id: I905f124eb7743acdb15ffddd81738d19caa758ee\n"
    },
    {
      "commit": "e99bcf2fa81dc5192349f3d222d46e4fbf23f919",
      "tree": "5d6257291e11aafdc9bb3a727714aa067dcb03bc",
      "parents": [
        "07f031e889d78edd549d8ad4254cd31902b46479"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 04 16:18:33 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat May 09 12:23:53 2020 -0700"
      },
      "message": "Expand nuplayer mutex for mediametrics management\n\nrefactor some mutex for how nuplayer sets up mediametrics data.\nexpanded locking to eliminate a couple race conditions.\n\nBug: 151644303\nBug: 151643722\nTest: poc attached to bugs\nChange-Id: I75f29a6254c5eab5d4f524ee7a7ef59f93a0b405\n"
    },
    {
      "commit": "f8f9e3d9affbbf95cbdcfeaecc6a189464f6e492",
      "tree": "50acc7d8761f1f5819aff22118d7d6f65b73b5b5",
      "parents": [
        "1af407a2298ebb369cb781658e483724f710c7cc"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 08:13:10 2020 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Apr 27 16:44:18 2020 -0700"
      },
      "message": "media: further miscellaneous fixes to VT contribution\n\n- remove unnecessary shared library dependencies\n  (this frees up about 2MB runtime space)\n- ASessionDescription: pull out default AS as a constant\n- ASessionDescription: populate frame size only for video session\n\nBug: 153907802\nBug: 121230209\nTest: build\nChange-Id: I29d38b96d794615f4aead2bb98d147831070d25c\n"
    },
    {
      "commit": "7630aa995d0873750dddaa18dd7abd71d77ec535",
      "tree": "55be667516b7daa5464847fbb9c323358420a7a5",
      "parents": [
        "7259511be29e0b52480a259e64ecbd02246cee6e",
        "1982933a51657282434879faea07ceba929defa5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 10 23:06:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 23:06:31 2020 +0000"
      },
      "message": "Merge changes from topic \"SLSI_VT\"\n\n* changes:\n  media: miscellaneous fixes to VT contribution\n  VT: DSCP implementation.\n  VT: SFR: Added missing rtp-param-opponent-id in stagefright.\n  VT: SFP: bind socket to specific network\n  VT: SFR: bind socket to specific network.\n  VT: Remove assertion in send() function.\n  VT: ARTPConnection: added an event to notify first-rtcp packet.\n  VT: Print assembler queue status for the first frame\n  VT: Enlarge jitter buffer range from 200ms to 300ms\n  VT: Postpone bitrate down for considering camera switch\n  VT: Rotation parameter should be applied only for video call.\n  VT: Add OMX_Video_ControlRateConstant feature\n  VT: OMX_ErrorStreamCorrupt should be skipped only for RTP scenario.\n  VT: Retain RTP sequence number between SFR stop and start\n  VT: Skip unknown payload type packet\n  VT: Update payload value at runtime for SFR\n  VT: Add FIR, PLI reaction\n  VT: Add auto downgrade function\n  VT: Add TMMBR feature for RTP Rx side\n  VT: Add TMMBN feature on RTP Tx side\n  VT: SFP: H264: CVO implementation for Rx side\n  VT: SFR: H264: CVO implementation for Tx side.\n  VT: Change socket option to REUSEADDR\n  VT: Add TMMBR function on Rx\n  VT: Recorder gets payload type value from param\n  VT: Player/Recoder gets its SSRC ID from param\n  VT: Add RTCP feedback message(TSFB \u0026 PSFB) parser to RTP source\n  VT: StagefrightRecorder: Added a function for TMMBR\n  VT: AHEVCAssembler: Supports H265(HEVC) for Rx.\n  VT: ARTPWriter: Supports H265(HEVC) for Tx.\n  VT: ARTPWriter: Supports ipv6\n  VT: ARTPSource: Jitter buffer implementation.\n  VT: ARTPConnection: Supports ipv6\n  VT: SFP: Implements interface for RTP parameters.\n  VT: RTPSource: Added a component as an one of NuPlayer::Source\n  VT: ARTPConnection: bind RTP/RTCP sockets to specific IP.\n  VT: ASessionDescription: Added SDPStringFactory.\n  VT: SFR: added parameters to handle RTP IP Addresses through setParameters().\n  VT: ARTPWriter: Enhanced ARTPWriter as a RTP output\n"
    },
    {
      "commit": "1982933a51657282434879faea07ceba929defa5",
      "tree": "69012e70e440591a0033c1551a282c354f053d0b",
      "parents": [
        "2c7a0cc74ec5dd94f31f585c728f2cef5cd5f099"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 08:13:10 2020 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 01 08:19:05 2020 -0700"
      },
      "message": "media: miscellaneous fixes to VT contribution\n\n- fix MediaSource.h path\n- fix setDataSource binder code\n- use MediaCodecConstants instead of OMX/ACodec constants\n- fix spacing\n- fix typos\n- remove unused code\n- commented some tricky code segments\n- AAVC/HEVCAssembler: re-read next buffer if buffer was deleted\n- RTPSource: pull out constants kMinVideoBitrate and kBufferingPollIntervalUs\n- RTPSource: check state early in prepareAsync\n- RTPSource: fix potential null dereference in setSource\n- ARTPAssembler: make showing queue runtime configurable via debug.stagefright.rtp bool property\n- ARTPWriter: fix security issues: protect against reading OOB in\n  sendSPSPPSIfIFrame and StripStartcode\n- ARTPWriter: free buffers early in destructor\n- ARTPWriter: create PPS buffer only if there is PPS\n- ARTPConnection: fix security issues: protect against reading OOB in\n  parseRTPExt, parseTSFB, and parsePSFB. Also remove remote null-dereference.\n- AHEVCAssembler: fix security issues: protect against reading OOB in\n  addFragmentedNALUnit\n\nBug: 121230209\nTest: build\nChange-Id: Iada8b878e396452c1d281c60f3754e13e34bcddb\n"
    },
    {
      "commit": "88068dcd814f901e37561ad916ec0d7fa0c686a8",
      "tree": "69b98c931573394383f049d0e573117c0726e470",
      "parents": [
        "0f0ba3996ab69e17da6494c6cdea87d07678ccce"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Fri Mar 29 15:04:10 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: SFP: bind socket to specific network\n\nThis will call an API of android_setsocknetwork().\n\n\"rtp-param-set-socket-network\" is added to update routing table\nfrom media engine of android.\n\nRTP/RTCP sockets will be bound to the networkhandle provided\nthrough the above parameter.\n\nThis patch is effected only for Rx(NuPlayer) session.\n\nBug: 121230209\nChange-Id: Id14708049e684f8dd5711c2b9fefb67c6cafbfc6\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "73f6fc82b8a0dd45759e5b8139bccea5909d5cb4",
      "tree": "398a55c923c4ece28b102d33c8c15e4855fb26a4",
      "parents": [
        "87130afc44b76aff01c97a0014bacbaa10bc8a12"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Aug 23 16:19:58 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: ARTPConnection: added an event to notify first-rtcp packet.\n\n[Related JIRA] RAMEN9610-4400\n\n[Problem] Call downgrade is not triggered from UE if there is no\nrtcp packet received even call is started long time ago.\n\n[Cause] There is no logic for auto-downgrade if there is no any single packet.\n\n[Solution] A new logic for auto-downgrade implemented both\nStagefrightPlayer and IMSService.\n\nBug: 121230209\nChange-Id: I44bf7131ba2cdb7a1c8760b62ea81427b43afcb1\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "5e27b1b884a5201194803f0cea2634e1a7c97515",
      "tree": "bc6976023c29c726e710d8659117876475b90e00",
      "parents": [
        "16121f6259f69e284f80c94342264156d03d90cd"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Jul 12 15:36:03 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: OMX_ErrorStreamCorrupt should be skipped only for RTP scenario.\n\n[Problem]\nAOSP take care OMX_ErrorStreamCorrupt as an error.\nMediaplayer will be stopped once an error occured.\n\n[Cause]\nOMX_ErrorStreamCorrupt is not handled as an error due to\na patch from video call scenario.\n\n[Solution]\nOMX_ErrorStreamCorrupt should be skipped only for\nvideo call(RTP) scenarios.\n\nBug: 121230209\nChange-Id: I5e1fe7f993776a74619ddc88d664799a54bd604e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "d194b8cd0354aef669ed318ea748f253394e5582",
      "tree": "dbce97e89676d877e8bf155de99157878acbcc16",
      "parents": [
        "2c987f1490b2c2ed6bdc0545f2b4bcaa3706b32b"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Sun Mar 17 22:04:14 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add auto downgrade function\n\nSome network requires force-downgrading to audio call when video packet status is bad.\n\n1. ARTPSource reports bitrate value for every unit time.\n   If low bitrate duration stays long, ARTPConnection triggers auto downgrading message.\n   The way of passing message is same as TSFB \u0026 PSFB.\n\n2. Add auto downgrade callback message when connection lost.\n\nBug: 121230209\nChange-Id: I04e3f4e1955852c61540f35c763a40be3e7b639b\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "2c987f1490b2c2ed6bdc0545f2b4bcaa3706b32b",
      "tree": "e206a752ca5169ae69458e0dd29ab205df5151f4",
      "parents": [
        "6b46b989cfc0249c3b18602113f1523408a813d8"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Sun Mar 17 22:04:14 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add TMMBR feature for RTP Rx side\n\n1. Seperate TMMBR sending block from RR sending block.\n   At least, TMMBR is sent per 5 sec.\n   But TMMBR is sent per 1 sec if TMMBR\u0027s bitrate is chaged.\n\n2. TMMBR max value comes from SDP AS value\n\n3. QualManager is separated from ARTPSource.h\n\nBug: 121230209\nChange-Id: Ie0abb6e639f50ad8ee3081c3d5e76dc07e80d5d1\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "b0225aabec7a56d462cce29c80aa60d88c898a55",
      "tree": "6d5c215f12a7eafcea8f29ce568866467dd02843",
      "parents": [
        "11340c4000f14dfa520d11741cf56f04d391a2c6"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Fri Apr 20 14:00:15 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: SFP: H264: CVO implementation for Rx side\n\nCVO(Coordination of Video Orientation) implemented for H264.\n\nSupport Coordination of Video Orientation (CVO) feature that carried in RTP Header extension.\nit parses a device degrees(orientation) in RTP extension that remote sent.\n(6.2.3 of 3GPP Release 12 TS 26.114)\n\nOnce AAVCAssembler parsed a video degress from RTP(CVO) extension,\nA native window will be rotated as per parsed video degress.\n\nBug: 121230209\nChange-Id: I802a9e43d9ee54b7970d2541f18fb4af8022336a\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "fd179629ebea9df5375627b0243a0ba326649a2b",
      "tree": "3165885394cc78fb720a83b07c2d8e7e1ad4a978",
      "parents": [
        "6c4d871a38b359b29e79ee57943dd24d4e2386f7"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Thu Mar 22 22:39:38 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add TMMBR function on Rx\n\nNow Player(Rx) can measure and check Rx status(bitrate \u0026 loss)\nAnd send TMMBR base on the status\n\nBug: 121230209\nChange-Id: I203ff5022ca95859c8acc662ba6cedff256a6995\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "d2875e9462623d2e985da3bf31476aceef6cf8e5",
      "tree": "ccf91e9afaa5678b06f0a68ff2e2244c1381a769",
      "parents": [
        "d3c6b32ae00e7f225abfe8266390ab4bdf8248ed"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Tue Mar 20 16:51:41 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Player/Recoder gets its SSRC ID from param\n\nUE should have its own SSRC ID when exchange RTP packet.\nIt is UE level id so Rx/Tx should have same ID.\nRecorder/Player are implemented separately and didn\u0027t have any method to sync the ID.\nSo upper Java Layer would send unique ID as param.\n\nBug: 121230209\nChange-Id: I11248eada31f50d278ab299f57ee42d9a3ce79be\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "d3c6b32ae00e7f225abfe8266390ab4bdf8248ed",
      "tree": "6041d08a13bb0bcd412fc331ce23dbdb8f51351b",
      "parents": [
        "48ae60d7812e4a3fdb5992a1265b1d69067eef5c"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Fri Mar 02 14:41:19 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: Add RTCP feedback message(TSFB \u0026 PSFB) parser to RTP source\n\nParser for RTCP feedback messages (Refer RFC 4585 Ch.6)\n\n1. Parser for TranSport layer FeedBack messages. (Refer RFC 5104 Ch.4)\n   Bitrate value in TMMBR \u0026 TMMBN  must be passed on to Recorder(Tx) part for congestion control.\n\n2. Parser for Payload-Specific FeedBack messages (Refer RFC 4585 Ch.6)\n   Supports PLI(Packet Loss Indication) notification.\n\nThe value \u0026 notification are passed through ARTPConnection -\u003e RTPSource -\u003e NuPlayer -\u003e JAVA layer\n\nBug: 121230209\nChange-Id: I85bfa0c359a60b42bcdf062f8a158db2ce69aa5a\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "28225abc2693b746889cdd39ea570a93a7ce19a5",
      "tree": "054f265f284c69fce972ba7a083f3883ed035300",
      "parents": [
        "d157b79f28aebb40be4c217c56e12de003efbbe8"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Jan 24 20:31:19 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: SFP: Implements interface for RTP parameters.\n\nRTP parameters will be given to NuPlayer like below.\nThis is same like how setParameters() working in case of\nStagefrightRecorder\n\n video-param-decoder-profile\u003d1;\\\n video-param-decoder-level\u003d512;\\\n rtp-param-local-ip\u003d127.0.0.1;\\\n rtp-param-local-port\u003d1234;\\\n rtp-param-remote-ip\u003d127.0.0.2;\\\n rtp-param-remote-port\u003d4321\n\nNuPlayer will create RTPSource.class instance as a part\nof a source component of media engine if it gets RTPParams\nfrom application layer.\n\nBug: 121230209\nChange-Id: If04ebb09d4f28d8eeb6a1a920a833129828a6ac4\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "d157b79f28aebb40be4c217c56e12de003efbbe8",
      "tree": "5716a7694644c0bd71e36429ecec58cb80ccf29c",
      "parents": [
        "3baf34315c1f2f277437a5b240883e9e1e80a0e6"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Jan 24 20:56:37 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: RTPSource: Added a component as an one of NuPlayer::Source\n\nRTPSource added to be used for RTP scenario.\nThis can be created by NuPlayer::setDataSource(String\u0026 rtpParams).\n\nCode implementation includes specifications of RFC 3550, RFC 4566\n\nFollowing parameters should be provided to setup RTPSource.\n\n- video-param-decoder-profile : decoder profile to be set to codec.\n- video-param-decoder-level : decoder level to be set to codec.\n- video-param-width : video width to be set to codec.\n- video-param-height : video height to be set to codec.\n- rtp-param-local-ip : local-ip that the RTP/RTCP sockets be bound.\n- rtp-param-local-port : local-port assigned that the RTP/RTCP sockets be bound.\n- rtp-param-remote-ip : remote-ip that the RTCP socket where to sent.\n- rtp-param-remote-port : remote-port assigned that the RTCP socket where to sent.\n- rtp-param-payload-type : Section 5.1 of RFC 3550, Payload type value assigned for the RTP session.\n- rtp-param-as : Section 5.8 of RFC 4566, Maximum bandwidth belong to this session.\n\nBug: 121230209\nChange-Id: I9fdc71a854d441703c8dd2fc8115de36a5e9958e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "6597d73adf83bbf9bb22adb883da5330d1759a8a",
      "tree": "c77ee775a02f310b2ec3efbab56e3c9fd27e18e5",
      "parents": [
        "bdccc992097e538da25e29a6b663698488539a44"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Fri Feb 28 22:38:25 2020 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon Mar 16 10:06:23 2020 -0700"
      },
      "message": "Migrate to AIDL generated native power manager interface.\n\nMigrate to AIDL generated native power manager interface, use\naidl-cpp generated cpp header file from IPowerManager.aidl.\n\nBug: 149479744\nChange-Id: Icf4e71b5e78a6e3101b423686556ac5393c5e91c\n"
    },
    {
      "commit": "3784ab5009e070491c12bbddbf4948eddeac3de6",
      "tree": "04fe406dfa253947440716bbbe234a84bf9b22d5",
      "parents": [
        "ae3b9539cead752af48515f2e43c9985c3fc04e6"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 17:18:24 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 20:03:09 2020 -0800"
      },
      "message": "Accommodate the move of AudioPlaybackRate to system/audio.h\n\nAudioPlaybackRate is now defined in system/audio.h\nas \u0027struct audio_playback_rate_t\u0027 (in global namespace).\nSimilar for the related enums.\n\nTo accommodate the existing code, introduce AudioPlaybackRate\nas a typedef in the \u0027android\u0027 namespace.\n\nUpdate code that was forward declaring AudioPlaybackRate\nas it\u0027s not a struct anymore.\n\nBug: 133526565\nTest: m\nChange-Id: Iba20f1de1e8779cd78ac4573f2082416f2b428e2\n"
    },
    {
      "commit": "7c96ea7ff84e1084332548583841735b694bfebd",
      "tree": "eb5d7c1bcb91cea21469e46b7c014ae44635a217",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 10 15:46:22 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 16 15:55:18 2020 -0800"
      },
      "message": "Remove mediametrics include symlinks\n\nBug: 143245419\nTest: build\nChange-Id: I6c836e60c0fe078f5ab7370aec156bdd6e8dcbf0\n"
    },
    {
      "commit": "2efe5c702e0401016eb7f6bce583751905ebc6f1",
      "tree": "2653c1b468dddfdc0b20d84568df37db47d2b004",
      "parents": [
        "b54d7da58b5458e268468dc4ad5ce299e2dfa7e6",
        "f4b7e72b55f1d0a6e54eee10694901153e235850"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:38:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:38:15 2020 +0000"
      },
      "message": "Merge \"Adds a null check in NuPlayer::closeAudioSink.\" am: 54b00e6d06 am: 8b0bb18079 am: f4b7e72b55\n\nChange-Id: I3b5a63825217ec0e387f58d807809ef978b413a1\n"
    },
    {
      "commit": "f4b7e72b55f1d0a6e54eee10694901153e235850",
      "tree": "d9d6aff45affb65224688d9f5f4db23deedf9883",
      "parents": [
        "f980ebd16cb49f06c9ef983d8ba0723045945061",
        "8b0bb18079358c9d7f9735e0d280c8c04ebf81f8"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:22:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:22:35 2020 +0000"
      },
      "message": "Merge \"Adds a null check in NuPlayer::closeAudioSink.\" am: 54b00e6d06 am: 8b0bb18079\n\nChange-Id: I6b584b9ae601206f0d481f391117dee8a4bafd57\n"
    },
    {
      "commit": "1e0d88b26a3605d4c620932f4bf9af54e37da376",
      "tree": "a66dfdc7b8bb43301d7ba075e9599f61de0ec023",
      "parents": [
        "982ecd07f4da2f93704aa84a3b4f61fa79466b8b"
      ],
      "author": {
        "name": "Daniel Norman",
        "email": "danielnorman@google.com",
        "time": "Tue Jan 07 15:02:54 2020 -0800"
      },
      "committer": {
        "name": "Daniel Norman",
        "email": "danielnorman@google.com",
        "time": "Tue Jan 07 15:05:10 2020 -0800"
      },
      "message": "Adds a null check in NuPlayer::closeAudioSink.\n\nThis was causing a null deref in cts/security/gce-all.\n\nBug: 142652210\nTest: Run cts/security/gce-all, observe no more crash.\nChange-Id: If2003b650f69e88825219113ce1b7d70edc4731d\n"
    },
    {
      "commit": "cb257970c1921db3cbfd15823ef0a561257b4690",
      "tree": "67a00104391a68c4eafff2d125b4c349fb4f8011",
      "parents": [
        "dc857dc042bc8f111449faffe9a10aed34bfa24c",
        "a7a3bbdf43253ee759f8ebaaa40fab68b66fba55"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 20 20:38:51 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 20 20:38:51 2019 +0000"
      },
      "message": "Merge \"Check actual read bytes for TS packets\" into qt-qpr1-dev am: 8f72d008d0 am: a7a3bbdf43\n\nChange-Id: I65cf62f55d0d5c34eb35440dfd3528ae4b575271\n"
    },
    {
      "commit": "1eba80de4e733a5222459020517ed93327966640",
      "tree": "59430bb806951a0ed4f52f63b9ec770c967e35ac",
      "parents": [
        "9ed54cdf4d8970bdeb88e4488dabb56e1d6c79b7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 09 13:20:10 2019 -0700"
      },
      "committer": {
        "name": "Bryan Ferris",
        "email": "bferris@google.com",
        "time": "Fri Dec 20 10:33:53 2019 -0800"
      },
      "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\nMerged-In: I4b498fe375af657e17838e5839e6348e1463d559\nChange-Id: I4b498fe375af657e17838e5839e6348e1463d559\n"
    },
    {
      "commit": "7291da64f5c19d4f9144014601bca58f7562ddef",
      "tree": "1ba21f95d03a85b24a699d39736d5c4bf481c2f7",
      "parents": [
        "94e872e6894dce7d89954d0515c140ec626d20ba"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 13:01:55 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 15:32:57 2019 -0800"
      },
      "message": "Remove header symlinks\n\nTest: build\nChange-Id: Ie90eb4fc0233ae6ee152a7bccb182a223b2ceff0\n"
    },
    {
      "commit": "94e872e6894dce7d89954d0515c140ec626d20ba",
      "tree": "3b8a0acc0c514e139b767f255e77a23fbf7d55c2",
      "parents": [
        "990cc725040484dfd233280eedeb7de2da4f72e4",
        "f27e987d277c186010e8bdd1d5e781158b31f9af"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 17 22:52:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 17 22:52:33 2019 +0000"
      },
      "message": "Merge \"Naming consistency: MediaAnalytics to MediaMetrics\""
    },
    {
      "commit": "f27e987d277c186010e8bdd1d5e781158b31f9af",
      "tree": "87703f33fe40f06c2faa78daa4105bb6cb8db79d",
      "parents": [
        "b7b870db0c6cc0c6375b154400a813b84f5056b4"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat Dec 07 06:28:46 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 17 11:20:57 2019 -0800"
      },
      "message": "Naming consistency: MediaAnalytics to MediaMetrics\n\nBug: 145780674\nTest: build, boot, dumpsys media.metrics\nTest: atest mediametrics_tests CtsNativeMediaMetricsTestCases\nChange-Id: Icbfa98da9e61702aee9a1d807b5e126b4b9c6458\n"
    },
    {
      "commit": "51207514eb834ee1a3c1d3218a9615116dc15bab",
      "tree": "1af90c549976b7d12f5b776daf1345853f2ade06",
      "parents": [
        "fa12f52ba2c0f528277bfe7d7543f5f53361850c"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Dec 03 16:24:48 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Dec 13 09:27:38 2019 +0900"
      },
      "message": "unique_fd is passed by value in AIDL interfaces\n\nFileDescriptor type in AIDL was translated into const unique_fd\u0026 in C++.\nNow, it is unique_fd, i.e. passed by value, to make it easier to keep it\nbeyond the scope of the call.\n\nBug: 144943748\nTest: m\nChange-Id: Ic6b1a4cba71c0fedb206b5ca3fb65b9944bbd69f\n"
    },
    {
      "commit": "dab79b3d09783e5053dc91b860eac06bd415cbfd",
      "tree": "229183838216adea270164035e0544354f4bfb5b",
      "parents": [
        "68db3a07ae337de45b82c6e45d41c2c325f8e2dd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 18 08:25:47 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 21 14:15:00 2019 -0800"
      },
      "message": "AIDLize MediaExtractorService\n\nUse .aidl instead of handwritten binder code for MediaExtractorService.\n\nTest: build, CTS\n\nChange-Id: Ibc93eca9128552c23359218ac3bf12319391e1b1\n"
    },
    {
      "commit": "b1150c2023250d8d72b3ac78d5f868046f3831c8",
      "tree": "52c2f340dd8fd0c0b9518ece9b951933a58d8749",
      "parents": [
        "c932c7fbae25c19c8c8aeecae3bdec6cdbe7be3a",
        "28c2ed3985ebf92177d8002a859409fb93d36ae0"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Nov 06 02:05:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 06 02:05:49 2019 +0000"
      },
      "message": "Merge \"DrmUtils: refactor IDrm/ICrypto creation\""
    },
    {
      "commit": "3253f2d6f3c2b1b27871aa291b0efd5db97c8c48",
      "tree": "c9c75eda60ccc0ab5ea1bc71704ae0f954fd6fed",
      "parents": [
        "afa8feb251a71eebce8c659a25202037232fbe59"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 21 14:50:07 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 31 17:43:51 2019 -0700"
      },
      "message": "MediaMetrics: Update Item serialization code\n\nAdd for bounds checking errors\nUpdate key checks to omit length, use C primitive types\n\nTest: atest mediametrics_tests, adb shell dumpsys media.metrics\nChange-Id: I1e6d5bd7a9611f6d59e15a1dbebc646405e5a018\n"
    },
    {
      "commit": "28c2ed3985ebf92177d8002a859409fb93d36ae0",
      "tree": "bd37a3ce59ef3e49c2f80ca5b39f6a6b738c2e80",
      "parents": [
        "7f84dcf500a7c98e76f95283de3a6abc0be858ff"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Oct 27 22:55:12 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Oct 27 23:06:38 2019 -0700"
      },
      "message": "DrmUtils: refactor IDrm/ICrypto creation\n\nAdded utilities to:\n* Query config for IMediaDrmService usage\n* Create remote vs local IDrm/ICrypto object based on aforementioned config\n\nBug: 134787536\nTest: MediaDrmClearkeyTest#testClearKeyPlaybackCenc\nChange-Id: I72df528c0bbd8a6dbd3c4962ac91eb89696bcaf7\n"
    },
    {
      "commit": "e67eb5dc326136815a413dbd61ac6afb92be67ff",
      "tree": "b632b9e41f7a59f9d9772a7e860abb8a0cd3a7c2",
      "parents": [
        "9f03917ce011e4c860306d42c3f3cc70d2061190",
        "c5212a6794d1bb4b10b5aaffefa9b00c763bdaa5"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Oct 25 10:11:14 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 10:11:14 2019 -0700"
      },
      "message": "Merge \"nuplayer: fix a use-of-uninit-value\" am: e75850d70a am: e18118e006 am: 38322d4445\nam: c5212a6794\n\nChange-Id: I318b8258c956495fb8d323fe82605b9f34c220de\n"
    },
    {
      "commit": "e75850d70aecf270430f4713a2ac02ddba70c849",
      "tree": "fa8203ce436cbb5187e35b834ba9febec8e55773",
      "parents": [
        "f7902c01f85ba4941cbfa19fe105e9235426d857",
        "61318c55b26fde06801a09f10f324f487b011bdc"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Oct 25 16:34:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 25 16:34:16 2019 +0000"
      },
      "message": "Merge \"nuplayer: fix a use-of-uninit-value\""
    },
    {
      "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": "61318c55b26fde06801a09f10f324f487b011bdc",
      "tree": "5c2871c2d5ab47a544d9dd140af336a705276ea8",
      "parents": [
        "342d7bcf44b3edcce763f0417ad0a13b11bde285"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 17 11:29:39 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 17 11:29:39 2019 -0700"
      },
      "message": "nuplayer: fix a use-of-uninit-value\n\n`readBuffer` might not set `nextSubTimeUs`. It\u0027s not clear that\n`mMediaClock-\u003eaddTimer(msg, nextSubTimeUs);` is only called in cases\nwhere `nextSubTimeUs` is set, so initialize it to 0 here.\n\nThis is consistent with what\u0027s done in `fetchTextData`.\n\nCaught by the static analyzer:\n\nframeworks/av/media/libmediaplayerservice/nuplayer/GenericSource.cpp:799:9:\nwarning: 2nd function call argument is an uninitialized value\n[clang-analyzer-core.CallAndMessage]\n\nBug: None\nTest: TreeHugger\nChange-Id: Iae6f9d71757c1bcc6e994a448b6169b4d69c4a38\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ],
  "next": "db19f572b941e62ffd688f2198da122977c55a28"
}
