)]}'
{
  "log": [
    {
      "commit": "b8a9dbbf791adf7f1a0ab87d7a35770074e88cc8",
      "tree": "a2f91436efd8587def9e765d333387fed6a03b7f",
      "parents": [
        "763136770b0bb6828cf7628a9b3bbf09b0741ae2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 27 04:12:26 2020 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 27 04:12:26 2020 +0000"
      },
      "message": "Revert \"Snap for 6793014 from 424180bdc4aa18249e678daebfd0fcf936...\"\n\nRevert \"Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d148e6e...\"\n\nRevert \"Snap for 6793014 from 7594ec6384c4da320726def34f477736f9...\"\n\nRevert \"Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c4223e1d0...\"\n\nRevert \"Snap for 6793014 from 44725f06b7f7d6407b5ee82d989bdd6c7a...\"\n\nRevert \"Snap for 6793014 from f22ad3164937a8f2e309965c102b6366d5...\"\n\nRevert \"Snap for 6793014 from 11467102abddb6026aaa164c1361439c2d...\"\n\nRevert \"Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5f7ae65...\"\n\nRevert \"Snap for 6793014 from f2989f9c65556d5155dbd57f82f0c93a16...\"\n\nRevert \"Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab1222ffd6...\"\n\nRevert \"Snap for 6793014 from 3777d883a3857b1a1589181c436d9018d7...\"\n\nRevert \"Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528460c8b...\"\n\nRevert \"Snap for 6793014 from a43295d1825da62af038d345a7a861ed7a...\"\n\nRevert \"Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb386109...\"\n\nRevert \"Snap for 6793014 from d0e31526c62b2aeb35c293ac96feb180fc...\"\n\nRevert \"Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376efabd2...\"\n\nRevert \"Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293b79684...\"\n\nRevert \"Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57a8e7d5...\"\n\nRevert \"Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aad87a67...\"\n\nRevert \"Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24af9964...\"\n\nRevert \"Snap for 6793014 from 14cb57e107a3abce8b14937b1f92c28d18...\"\n\nRevert \"Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc03a606...\"\n\nRevert \"Snap for 6793014 from 8c65adad0bcdfb3acc561063b4048dca24...\"\n\nRevert \"Snap for 6793014 from b3061942700265e2bf04af9997775dcbbb...\"\n\nRevert \"Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd0ac3be...\"\n\nRevert \"Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec70d8da6...\"\n\nRevert \"Snap for 6793014 from 988d4244914e0c749655e8cb6db18ba44f...\"\n\nRevert submission 12465146-release-request-6b259cbc-1f45-4b05-bc7e-c9b893b79d68-for-git_main-busytown-release-6793014\n\nReason for revert: b/166531456\nReverted Changes:\nI5ff7a6c0d:Snap for 6793014 from f2989f9c65556d5155dbd57f82f0...\nI77bdff943:Snap for 6793014 from a43295d1825da62af038d345a7a8...\nI2ac5c520a:Snap for 6793014 from c3f124cca05579acf0a6cb589ebd...\nI023b9702f:Snap for 6793014 from 98756d6d3e2bb0ba28eb125caa7a...\nIbc7893d72:Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d...\nIc27847bee:Snap for 6793014 from 8c65adad0bcdfb3acc561063b404...\nIf20bc9352:Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376...\nI6542d17e8:Snap for 6793014 from 3777d883a3857b1a1589181c436d...\nI66e6bb8a9:Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab12...\nI3cd190b6b:Snap for 6793014 from 424180bdc4aa18249e678daebfd0...\nIf92db7402:Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc...\nIaced03c87:Snap for 6793014 from d0e31526c62b2aeb35c293ac96fe...\nI5d28c6b4b:Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aa...\nI30d07bea3:Snap for 6793014 from 7594ec6384c4da320726def34f47...\nI473205f48:Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd...\nI0656b41af:Snap for 6793014 from 44725f06b7f7d6407b5ee82d989b...\nI0f9796067:Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec7...\nI9a38cda8f:Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb...\nI876a82f51:Snap for 6793014 from 11467102abddb6026aaa164c1361...\nI749d7d023:Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293...\nI038daea41:Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24...\nI47aa3131c:Snap for 6793014 from 14cb57e107a3abce8b14937b1f92...\nI32dba8a95:Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528...\nI2ebc9f9db:Snap for 6793014 from 988d4244914e0c749655e8cb6db1...\nIae7c3370f:Snap for 6793014 from 9ffb8852294e06e2d387dc1fb868...\nI6467a7f1b:Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57...\nI8c6375203:Snap for 6793014 from b3061942700265e2bf04af999777...\nI843b2e1f3:Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5...\nIe254f7079:Snap for 6793014 from f22ad3164937a8f2e309965c102b...\nI01e0974ed:Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c42...\n\nChange-Id: I00c786b898b73e58db8bcb1dd0cf3fdaa1ae3038\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": "666397565bcbfbabfaca3577ca20c481ebf1d669",
      "tree": "e124464f9b8d3664816c11d271f6d7911904d4b2",
      "parents": [
        "7143c0771e197ed26d5a84d10624b8ea77b235aa"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Mon Apr 29 13:49:44 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:08 2020 -0700"
      },
      "message": "VT: Enhancements on RTP packetizer.\n\n  1) Apply discounted bitrate for initial RTP case\n    [Problem] There is a possibility that sending bitrate\n      overs the AS value, if there is no TMMBR signal.\n    [Solution] Apply the discounting also in inital bitrate.\n\n  2) Correction of UDP fragmentation.\n    [Problem] Packets can not be sent to remote in some network\n      environment(R\u0026S ATT TE). Packet should be fragmented up to\n      1280bytes in case of IPv6.\n    [Solution] make a condition to build a packet up to 1280bytes.\n\n  3) Correct a condition to check last of the FU-A.\n    [Problem] Marker bit (of RTP header) was 0 even it was last FU-A packet.\n      A RTP buffer size checked with RTP header extension, but it filled\n      without header extension size.\n    [Solution] Correct a condition to set market bit as 1.\n\nBug: 165061754\nChange-Id: Ic70b06b330394b40b1c756aba85e175fba178b8d\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": "d9db048e1333c330b63c8a2015d153f240c226da",
      "tree": "49d8edba6e777a991452b3cd242033001d242e48",
      "parents": [
        "dbc585c96f980c434dca1e9e34234155dfa26121"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Tue Jun 09 16:55:32 2020 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:08 2020 -0700"
      },
      "message": "VT: Some parameters not provided to encoder if source is surface.\n\n[Problem] Encoded video rotated 270 degrees after apply camera api2.\n[Cause] encoding-rotation feature was applied only if\n  source type was camera.\n[Solution] provides VT specific parameters regardless source type.\n\nBug: 148889911\nBug: 165061754\nChange-Id: Ic777e8252f373a92fb5595750cb4a899135b29a2\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "42b0fb2462832c9a2e0901977d205d59a40b52e7",
      "tree": "753879c8ec11deb77cc5612cb85f8113bf4fc57f",
      "parents": [
        "aacaf2d4cdf898109d8027e39dbd0befc87251e9",
        "a21668ff8661a1f0d753ee2c16ec2b5db701c78d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jul 30 07:34:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 30 07:34:57 2020 +0000"
      },
      "message": "Merge \"MediaTesting: Add Audio StagefrightRecorder Unit Test\" am: e2fcd29925 am: bd0b5d4762 am: 9b79f50b4a am: 9033ec731d am: a21668ff86\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1345156\n\nChange-Id: Ie3d056863e3d0f7575f086a5514778c2fe32577e\n"
    },
    {
      "commit": "9b79f50b4a71a2b68ed46b4fac874d48af8fc773",
      "tree": "1acccfae5b4422be91e2dc2215fe7b931784352a",
      "parents": [
        "b247f19b890fbbeb5d20470104057f33b18d44cb",
        "bd0b5d47624141e32d08887ff40a597b6593a321"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jul 30 06:34:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 30 06:34:48 2020 +0000"
      },
      "message": "Merge \"MediaTesting: Add Audio StagefrightRecorder Unit Test\" am: e2fcd29925 am: bd0b5d4762\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1345156\n\nChange-Id: Ibf41a39ee54c6c06f196e9ef4717dc5daaf56508\n"
    },
    {
      "commit": "505b3e404434367f78262f0ea3979834f78d3a52",
      "tree": "794ed45f9834f0992b365760ecacbfd71f388f5b",
      "parents": [
        "3fd4dee8960cd6bccbb21227d43dfef839d33875"
      ],
      "author": {
        "name": "Ruchika Ashtankar",
        "email": "ruchika.ashtankar@ittiam.com",
        "time": "Thu Jun 11 21:40:24 2020 +0530"
      },
      "committer": {
        "name": "Ruchika Ashtankar",
        "email": "ruchika.ashtankar@ittiam.com",
        "time": "Wed Jul 29 00:06:54 2020 +0530"
      },
      "message": "MediaTesting: Add Audio StagefrightRecorder Unit Test\n\nTest: atest StagefrightRecorderTest\n\nBug: 159410389\n\nChange-Id: Ia0a7e9aa867918468c6f8a3670bd34c1532706f3\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": "b1399ca7e121ea3838c64df8594c95c2f9dc1b11",
      "tree": "9e2b30341f9c2820ff50f49f246e3af730d3215e",
      "parents": [
        "80093fe8eb1080d343d0e07900c24e47a2f01bee",
        "33cce9cc6ae674f460cbbdf2578e8260921c13dc"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Tue May 19 01:08:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 19 01:08:09 2020 +0000"
      },
      "message": "Merge \"MPEG4Writer:Ignore sample table of malformed track\" into rvc-dev am: db0b34440a am: aed64eda19 am: 9eb7b04d13 am: 33cce9cc6a\n\nChange-Id: Iaab7c6240b3adc3fb68e4b57955b0858320a4ff4\n"
    },
    {
      "commit": "db0b34440ac627f7d153ec7849d7590ab199d334",
      "tree": "9af209e1b9d5deec7524adc73adfc814e37897c8",
      "parents": [
        "d3d11c6dd5e520db0aba8ad17fdfe9f57d47a4df",
        "116913ac5307d9d31f280f5328740ce3d439f5ce"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Tue May 19 00:33:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 00:33:29 2020 +0000"
      },
      "message": "Merge \"MPEG4Writer:Ignore sample table of malformed track\" into rvc-dev"
    },
    {
      "commit": "116913ac5307d9d31f280f5328740ce3d439f5ce",
      "tree": "815c818846d8e34f630f901a84380d4f4615076f",
      "parents": [
        "fd267eb2f96969b8cb19389a06a6c1dbbc2ec40a"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Sat May 02 22:10:12 2020 -0700"
      },
      "committer": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Mon May 18 13:47:50 2020 -0700"
      },
      "message": "MPEG4Writer:Ignore sample table of malformed track\n\n1. Don\u0027t write sample table box for malformed tracks.\n   Return error to the client about malformed track.\n   MOOV atom would be finalized with other well-formed tracks.\n2. Throw relevant track id and recorder-error on error while making\n   codec specific data from input buffers for AVC, HEIC, HEVC and MPEG4.\n3. Capture and log errors returned by system calls.\n4. Bubble up other relevant errors.\n5. Good to release internal buffer and stop source before notifying client.\n6. Don\u0027t need to update filesize for every preallocation.\n   Use fallocate in FALLOC_FL_KEEP_SIZE mode.\n7. Added some important logs\n8. Added and corrected some comments.\n9. Added TrackId subclass to validate track ids for MediaRecorder and\n   MediaMuxer.\n\nBug: 153923798\nBug: 156657952\n\nTest: atest android.media.cts.MediaMuxerTest\n      atest android.media.cts.MediaRecorderTest\n      atest android.mediav2.cts.MuxerTest\n\nChange-Id: I87f9b8cc9cbd23789f7fb69490e8a6f81469907a\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": "03675d39999b4e712cbd0e87de1794e9782f1e7d",
      "tree": "53b21a6b3f37d15391d9f5b80c694f91b84ab6b2",
      "parents": [
        "b3dde8e92a8685b3a2e299cd241fb372c52dd19b",
        "4a7b8e414c7e613fb5e1d5946d3bb7da696ae5b4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 23:15:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 27 23:15:38 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Track AudioTrack and AudioRecord callers\" into rvc-dev am: 2578a95a57 am: 164ceef8b6 am: 2e28a7bafb am: 4a7b8e414c\n\nChange-Id: Idbd49b54a4e4877e03eb5432fab1d098394b79e9\n"
    },
    {
      "commit": "a6b270399fdacb09826e751657b7bb321652e3ac",
      "tree": "10091ff0524d2d29dcda00e63630d0f51b300655",
      "parents": [
        "669acb12c3092e581a1ecc347e6d573e96c8ca0e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 10:34:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 11:41:38 2020 -0700"
      },
      "message": "MediaMetrics: Track AudioTrack and AudioRecord callers\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nBug: 153658358\nChange-Id: If2b0a792cf4cc6c5b125513861b3dfb257bb3cbe\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": "eda3483c92959e04ece8da6ff4829a6782575a84",
      "tree": "a8f290f9c169ad6719f13d83546d5e52a1aadbd8",
      "parents": [
        "0794f54fc7ab2ba98c8c75402c39660b18d5e87e",
        "5554d3fce086f17d5faa35a3a8706262f9ca334d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 00:35:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 07 00:35:57 2020 +0000"
      },
      "message": "Merge \"MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\" into rvc-dev am: 65328604de am: 7987613047 am: ae26b0232f am: 5554d3fce0\n\nChange-Id: Id4fe11729f29f571a7c2cd157b4d96522ac0c224\n"
    },
    {
      "commit": "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5",
      "tree": "77671b8d041a66b35884657fc4e05c5e5214787a",
      "parents": [
        "95ec1b8ea487abbf4ef50d53c227338f559e9599"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:08:23 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 09:48:59 2020 -0700"
      },
      "message": "MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\n\nTest: dumpsys sanity check of mediaserver, audioflinger, drmmanager\nBug: 149850236\nChange-Id: I7a3694444de0f940beacb699bc6f07ebb6a7cc7d\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": "2c7a0cc74ec5dd94f31f585c728f2cef5cd5f099",
      "tree": "33c897904deb19240291370255c7ab7d97b53e30",
      "parents": [
        "a9f97782254f08f6ad440e9652173f70171c0347"
      ],
      "author": {
        "name": "JainishKumar Anghan",
        "email": "jai.anghan@samsung.com",
        "time": "Mon Nov 25 13:08:18 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: DSCP implementation.\n\n[Related Issue] b/142345921\n\n[Problem] dscp value needs to be updated based on operator\u0027s\n  requirement. but there is no interface to update the dscp value.\n\n[Solution] Implement interface to set dscp value into socket by\n  setsockopt(). dscp value will be taking care by upper layer.\n\nBug: 121230209\nChange-Id: I1468a08f64b71db0f12d96b393263b520109be6d\nSigned-off-by: JainishKumar Anghan \u003cjai.anghan@samsung.com\u003e\n"
    },
    {
      "commit": "a9f97782254f08f6ad440e9652173f70171c0347",
      "tree": "71ad437fca982cb078fa12618f8f2c27ff31413b",
      "parents": [
        "88068dcd814f901e37561ad916ec0d7fa0c686a8"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Mon Sep 09 12:50:04 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: SFR: Added missing rtp-param-opponent-id in stagefright.\n\n$ setParameter: failed to find key rtp-param-opponent-id\n\n[Problem] TMMBN not supported due to missing parameter.\n[Cause] rtp-param-opponent-id is not integrated due to it has dependency\n   with with a patch of frameworks/base.\n[Solution] Added a parameter named rtp-param-opponent-id to support TMMBN.\n\nBug: 121230209\nChange-Id: Ifd8e30fd8032a2d7e306b5bcee72642fba2c266c\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\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": "0f0ba3996ab69e17da6494c6cdea87d07678ccce",
      "tree": "9dd4c56792627e0e7bc49c91474c75679c27dce9",
      "parents": [
        "449a19c7b7bacc0bc64fcb1cf107ee5926487f11"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Mon Mar 18 18:04:10 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: SFR: 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 Tx(StagefrightRecorder) session.\nRx(NuPlayer) is not implemented yet.\n\nBug: 121230209\nChange-Id: I5443e2071906576783db995421f997af5bc84424\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": "b654738d8df53af1adad5e588d9140e85287f06d",
      "tree": "0c13118bf7168633abff036409e224878e1de275",
      "parents": [
        "15f27dd370962872c04d0e5ae0213e18263a6c5e"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Tue Jul 10 19:58:05 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Rotation parameter should be applied only for video call.\n\n[Problem] Recorderd video that captured by native app is\nrotated as 270 degrees.\n\n[Cause]\nEncoder rotation has been applied even it was normal video\nrecording scenario.\n\n[Solution]\nRotation parameter should not be applied in normal video\nrecording scenario.\n\nBug: 121230209\nChange-Id: I83cd0c6bb78ee95ef2781ad7deeec393a3174aab\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "15f27dd370962872c04d0e5ae0213e18263a6c5e",
      "tree": "72d9e1d9ff45aee0c70d3a979d869b63946fe5f9",
      "parents": [
        "5e27b1b884a5201194803f0cea2634e1a7c97515"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Thu Jul 05 22:22:07 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add OMX_Video_ControlRateConstant feature\n\nThe OMX_Video_ControlRateConstant is a sutiable OMX option\nto stablize encoder bandwidth.\n\nThis helps encoder to make more regular bps.\n\nBug: 121230209\nChange-Id: I67a08be8b8a19b573c873e96d317e16c7105084e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@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": "16121f6259f69e284f80c94342264156d03d90cd",
      "tree": "20f5c9d5cdeb40e47b132ccf91e5fea5d6661fb8",
      "parents": [
        "934af7734b647dface7e595c9cd0868e7e83b279"
      ],
      "author": {
        "name": "Somraj Mani",
        "email": "som.mani@samsung.com",
        "time": "Sat May 05 00:08:24 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Retain RTP sequence number between SFR stop and start\n\nThere was an issue that remote side dropped a video packets\nwhen local camera has been switched.\n\nIt caused we are sending discontinuous (RTP) sequence number\nwhen the camera is switched during video call is going on.\n\nWhen we switch a camera, we just stopped a MediaRecorder\nand then re-start with different camera-id.\n\nRTP sequence number is gone when an ARTPWriter is stopped.\nand Then ARTPWriter will take a random RTP sequence number from\nthe re-start of ARTPWriter.\n\nThis patch makes ARTPWriter can start from the RTP sequence number\nthat the stopped last time.\n\nBug: 121230209\nChange-Id: I7dde2c89f2b378600a080b7a4f4de385f81e6ee1\nSigned-off-by: Somraj Mani \u003csom.mani@samsung.com\u003e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "113f16476f4b052ce93486fcf35f612ccfc90f61",
      "tree": "b3357ee071455044ef26c6cdc921ab5ae3d748de",
      "parents": [
        "e60d813d66a2ce88077cff19fddda9e4f57798c4"
      ],
      "author": {
        "name": "Somraj Mani",
        "email": "som.mani@samsung.com",
        "time": "Fri Apr 27 19:56:26 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Update payload value at runtime for SFR\n\npayload type might be re-assigned if there is a modification\nin ongoing session.\n\nWe need to provide a new payload type in above case.\n\nBug: 121230209\nChange-Id: I9e19a7bb3e0c7849cbb244fd3a3221ce79c4e56d\nSigned-off-by: Somraj Mani \u003csom.mani@samsung.com\u003e\n"
    },
    {
      "commit": "e60d813d66a2ce88077cff19fddda9e4f57798c4",
      "tree": "1a1dce0d60059427a375c19a748768a3bd9d2a53",
      "parents": [
        "d194b8cd0354aef669ed318ea748f253394e5582"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Mon Apr 30 14:28:50 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add FIR, PLI reaction\n\nRefer RFC 4585 Ch.6 \u0026 RFC 5104 for concept of FIR, PLI.\n\nIf receiving part detects some of those feedbacks,\nnotice to Java layer by riding on MEDIA_IMS_RX_NOTICE.\n\nIf sending part is noticed by Java layer(IMS service),\nrequest encoder to make I frame.\n\nBug: 121230209\nChange-Id: I41fba551d47513d2bc0563036434a4c0426a4136\nSigned-off-by: Kim Sungyeon \u003csy85.kim@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": "6b46b989cfc0249c3b18602113f1523408a813d8",
      "tree": "89520d1dce3a4aa20c5593371f0e8f9d31c36f1a",
      "parents": [
        "b0225aabec7a56d462cce29c80aa60d88c898a55"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Sun Mar 17 22:01:31 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add TMMBN feature on RTP Tx side\n\nStagefrightRecorder adjusts encoding rate and sends TMMBN as requested bitrate.\n\n1. Add TMMBN packetizing function on ARTPWriter.\n2. StagefrightRecorder holds opponent\u0027s SSRC ID that is used for TMMBN.\n3. MediaRecorder can set parameter on RECORDING state if format is for RTP.\n\nBug: 121230209\nChange-Id: I768649c02e50fd5fab2ecb53c3743915662c100a\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": "11340c4000f14dfa520d11741cf56f04d391a2c6",
      "tree": "9adb720fb4c818679de32510e13bc35a46506c45",
      "parents": [
        "182a9299e67ccd521685c6d73efd38ceb4f9d947"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Apr 05 17:27:53 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: SFR: H264: CVO implementation for Tx 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 updates a device degrees(orientation) on RTP extension when device is rotated.\n(6.2.3 of 3GPP Release 12 TS 26.114)\n\n- rtp-param-ext-cvo-degrees: updates how much degress should be rotated.\n- rtp-param-ext-cvo-extmap: updates what extmap CVO mapped in SDP negoration.\n\nBug: 121230209\nChange-Id: I49ab063d549b033aef06eadf39fd189384a5f724\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": "6c4d871a38b359b29e79ee57943dd24d4e2386f7",
      "tree": "8cd30409fc40bcaabead7f4d7a726343519c2313",
      "parents": [
        "d2875e9462623d2e985da3bf31476aceef6cf8e5"
      ],
      "author": {
        "name": "Somraj Mani",
        "email": "som.mani@samsung.com",
        "time": "Sat Apr 14 18:36:11 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Recorder gets payload type value from param\n\nRemoves hardcoded payload type in ARTPWriter.\n\nA payload type will be assigned dynamically by an\nupper layer as per SDP negotation.\n\nBug: 121230209\nChange-Id: I7c6f244c753c84a7954261b1c37292083ab5996a\nSigned-off-by: Somraj Mani \u003csom.mani@samsung.com\u003e\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": "48ae60d7812e4a3fdb5992a1265b1d69067eef5c",
      "tree": "e8ac677bb11568cf229db4368f4fccfe26a36df3",
      "parents": [
        "deebc7de89f03ed932a34f2469385d4d3867c1cd"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Tue Feb 20 18:04:41 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: StagefrightRecorder: Added a function for TMMBR\n\nEncodingBitrate was not updated even IMSService\ncalled a setEncodingBitrate() while VideoRecorder is in running state.\n\nBecause encoding bitrate can\u0027t be updated dynamically in running state.\nThis patch makes that StagefrightRecorder can set a new encoding bitrate\nto satisfy TMMBR requirement as per RFC 5104.\n\nRegular I frames overloads on the network so we should consider about it.\nDiscounted encoding bitrate will be margins for the overloads.\n\nBug: 121230209\nChange-Id: Ied820dec5bda36bfe590cf46ec981e0b5fc4c4ee\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\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": "d95a5bec39c0439f87347349c84bee6ea54e997b",
      "tree": "71f9b95692f73151cc2e468d3d7f9f2631af41e2",
      "parents": [
        "072e37420dcf4da4bff8d1942fa989afdf25861a"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Tue Jan 29 16:53:43 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: SFR: added parameters to handle RTP IP Addresses through setParameters().\n\nAdded following parameters to set ip addresses for RTP scenarios.\n\n- rtp-param-local-ip:\n  rtp-param-local-port: local ip/port to be bound a socket as per SDP negotation.\n\n- rtp-param-remote-ip:\n  rtp-param-remote-port: remote ip/port pair where to send RTP packets.\n\nBug: 121230209\nChange-Id: I8b6d8492c1a6e5eeba88d4829e4815227f083edb\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": "f0f0311eebbe7b60be5ef86e4fe7f2fc116efc19",
      "tree": "e5380e750d99ae636eede73f8cd06573f913d460",
      "parents": [
        "c42069ac43575462429c8dd83fda7730dda1771d"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Mon Feb 24 18:47:09 2020 -0800"
      },
      "committer": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Wed Mar 04 01:18:01 2020 +0000"
      },
      "message": "Mpeg4Writer/MediaMuxer:allow empty tracks\n\n1) Don\u0027t count tracks with no samples as malformed for MediaMuxer, but\nkeep the old behavior as it is for MediaRecorder.\n2) When there are no samples to be written in a track, skip that one, but\ncompose mpeg4 file with all other tracks in it.\n3) Allow notifications in MediaMuxer during stop() process.\n\nBug: 144108285\nBug: 146423844\nBug: 148754639\n\nTest: 1) Unit tested by adding a video and an audio track, once leaving\n      audio track with no samples and once leaving video with no\n      samples.  Mpeg4 file with expected track was created both the times\n      and played well.\n      2) android.mediav2.cts.MuxerUnitTest$TestApi#testSimpleStartStopMuxer\n      3) android.media.cts.MediaMuxerTest\n      4) android.media.cts.MediaRecorderTest\n\nChange-Id: If76a1f3b60d09836d53bce6f6e759e6a751f5538\nMerged-In: If76a1f3b60d09836d53bce6f6e759e6a751f5538\n(cherry picked from commit afc9f27233fa7dfb8c03e0fc83f612e7a19f27f2)\n"
    },
    {
      "commit": "afc9f27233fa7dfb8c03e0fc83f612e7a19f27f2",
      "tree": "88bb119b0d42fd2af8aee124eb541a85701e7b94",
      "parents": [
        "12e5101c0ebca4852e2326b6f1f4691d456e8cb4"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Mon Feb 24 18:47:09 2020 -0800"
      },
      "committer": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Fri Feb 28 14:18:56 2020 -0800"
      },
      "message": "Mpeg4Writer/MediaMuxer:allow empty tracks\n\n1) Don\u0027t count tracks with no samples as malformed for MediaMuxer, but\nkeep the old behavior as it is for MediaRecorder.\n2) When there are no samples to be written in a track, skip that one, but\ncompose mpeg4 file with all other tracks in it.\n3) Allow notifications in MediaMuxer during stop() process.\n\nBug: 144108285\nBug: 146423844\nBug: 148754639\n\nTest: 1) Unit tested by adding a video and an audio track, once leaving\n      audio track with no samples and once leaving video with no\n      samples.  Mpeg4 file with expected track was created both the times\n      and played well.\n      2) android.mediav2.cts.MuxerUnitTest$TestApi#testSimpleStartStopMuxer\n      3) android.media.cts.MediaMuxerTest\n      4) android.media.cts.MediaRecorderTest\n\nChange-Id: If76a1f3b60d09836d53bce6f6e759e6a751f5538\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": "1b41d44972c2c4bdce23c2400c3d7b7604387c65",
      "tree": "9a3d039edda4756f954dab78e3069096fa63b033",
      "parents": [
        "04e4465aa7b58c07c4a278b9ddc2731b20b645ad"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 06 09:10:40 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 06 09:10:40 2020 -0800"
      },
      "message": "Avoid reading at negative offsets\n\nPlayerServiceFileSource had the same logic as FileSource that could\ncause reading at negative data source offsets, so fix that too.\n\nTest: build\nBug: 141242340\nChange-Id: I60226d85ece83339444d9ec1c0a741271e33e127\n"
    },
    {
      "commit": "5277625231db4f313115fbcb6cefca7f2dfc2ce0",
      "tree": "288802a30819352b91c3b270329fb41b577928a0",
      "parents": [
        "bccf38e3fa6bc2a372c3a0d38c6274b68c0e5fb7",
        "7c96ea7ff84e1084332548583841735b694bfebd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "message": "Merge \"Remove mediametrics include symlinks\""
    },
    {
      "commit": "0bc6f60e1f036380bd48d022631e6561b90f210c",
      "tree": "cb680a3b14d22c16c8d9d419f99e3ac5c5d7f7bc",
      "parents": [
        "f5614e2fa3fa1a38e3a6fa4c058424fc053be651",
        "bf4f332a55ccb01d821e05dd0a3c7431a46e964b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 22 20:33:59 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 22 20:33:59 2020 +0000"
      },
      "message": "Merge \"Revert \"Prime cache for tone mappers in mediaserver\"\""
    },
    {
      "commit": "bf4f332a55ccb01d821e05dd0a3c7431a46e964b",
      "tree": "ff0f220dd8f096a0c77df0b5b81d80c260c41260",
      "parents": [
        "d4fe6b1339be666fd1df2a6a7ed3ce8528ea8064"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 22 19:11:06 2020 +0000"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 22 19:16:00 2020 +0000"
      },
      "message": "Revert \"Prime cache for tone mappers in mediaserver\"\n\nThis reverts commit d4fe6b1339be666fd1df2a6a7ed3ce8528ea8064.\n\nReason for revert:\nThis CL was meant to pre-init the RenderEngine to save time\non the actual thumbnail extraction. But it is using more\nmemory after boot.\n\nSince HDR clips are less common at present, we\u0027ll delay the\ninit to first use for now.\n\nbug: b/147047966\ntest: atest android.media.cts.MediaMetadataRetrieverTest\n\nChange-Id: I5b8799bbe2f4ae496e15b5ba699203223fe3013b\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": "b7b2f5d8658b5d08831f91c25400c9717b05dac1",
      "tree": "fbdb1e2d6576d8f62d54bd53bd5fc44bbcd23305",
      "parents": [
        "fe0d920eddef871f8c392cafd45023eea40f3800",
        "7291da64f5c19d4f9144014601bca58f7562ddef"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 20 20:54:55 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 20 20:54:55 2019 +0000"
      },
      "message": "Merge \"Remove header symlinks\""
    },
    {
      "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": "2475cf40fe3b60cf96d37c81f2927c13a3565607",
      "tree": "3723b7af79f7644f0556ce66de098293889d480a",
      "parents": [
        "2b15f76dac93be35e20bff4fb11e7168a43927b9",
        "28d4d67a41c1774dfa69e205da5c0478b1752948"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 19:54:29 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 20 19:54:29 2019 +0000"
      },
      "message": "Merge \"MPEG4Writer:64bit offset + fallocate\""
    },
    {
      "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": "79673cfb78356afb4bb531d5f6fe115ab41930cc",
      "tree": "82f9a497a3221f4043e4af36f19abd4ee00fbb96",
      "parents": [
        "c1a82b91f050f4b496b2d373046cb4c9fc32c8eb"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Sep 20 21:45:01 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 20 15:58:46 2019 +0000"
      },
      "message": "Implement DrmSessionManager w mediaresourcemanager\n\nBug: 134787536\nTest: DrmSessionManagerTest\nTest: DrmSessionManager_test\nTest: ResourceManagerService_test\nChange-Id: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\nMerged-In: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\n"
    },
    {
      "commit": "28d4d67a41c1774dfa69e205da5c0478b1752948",
      "tree": "69877b9052a09ba3ca4a0052b3fbe3f98d690230",
      "parents": [
        "990cc725040484dfd233280eedeb7de2da4f72e4"
      ],
      "author": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Mon Dec 09 20:25:56 2019 -0800"
      },
      "committer": {
        "name": "Gopalakrishnan Nallasamy",
        "email": "gokrishnan@google.com",
        "time": "Wed Dec 18 14:37:02 2019 -0800"
      },
      "message": "MPEG4Writer:64bit offset + fallocate\n\nUse 64bit offset in mpeg4writer. Allows us to compose/mux files more\nthan 4GB in size.  Notify MediaMuxer and MediaRecorder users about any failure during\nwrite() and seek(), with best effort attempt to save moov box.\nSDK and NDK MediaMuxer.WriteSampleData() would throw IllegalStateException and return\nINVALID_OPERATION as before, but in the very next call to this function after failure.\nEarlier, writeSampleData wasn\u0027t aware of any write/seek failure.\nSDK MediaMuxer.Stop() would throw relevant exception with error message.\nNDK stop() would return relevant errors.\nfallocate() is used to pre-allocate space for MOOV atom dynamically during\nrun time. If required space couldn\u0027t be allocated, then recording is\nstopped and moov atom would be written to the file successfully.\nAdded logic to stop and release looper.\n\nBug: 135685864\nBug: 142060459\nBug: 142915394\nBug: 145235586\n\nTest:  1) atest CtsMediaTestCases -- \\\n\t--module-arg CtsMediaTestCases:size:small\n       2) Composed files of size around 32GB using MediaMuxer and it is playing fine on the phone\n       \tand linux workstation.\n       3) Filled up most of the flash memory in phone and tried to compose files using MediaMuxer\n       \tand MediaRecorder separately. Writing was stopped  when ::write failed due to out of space,\n\tand all threads exited gracefully in both cases. Expected errors were reported in Java layer.\n       \t(pre-allocation was disabled in this step).\n       4) The same experiment as in step 3 with pre-allocation enabled, recording was stopped\n\twhen there was not enough space and moov atom was written to the output file. File played\n\twell on phone and linux workstation.\n       5) atest android.media.cts.MediaMuxerTest\n\nChange-Id: I33de67d9dce3550ce3730a99c4aa92bc71c9f7b8\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": "630f74baaf5280a78350fa1ecb7283768a5c4bf9",
      "tree": "e20620e03a8ef5db88b55dfe70edfaa926ef6c43",
      "parents": [
        "643a5692fb1d1b7b0e2c90faa217816f7b524c51",
        "d17c85023ac2058233121b8a94603687c855c997"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "message": "Merge \"Add explicit private audio recording request\""
    },
    {
      "commit": "d17c85023ac2058233121b8a94603687c855c997",
      "tree": "39fc63d6f1037eafb71dc8046aefedfadfee9b53",
      "parents": [
        "d203cb92c9c9628b3bead45ec08f826544c1d649"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 24 15:58:35 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 04 17:58:34 2019 -0800"
      },
      "message": "Add explicit private audio recording request\n\nAdd the possibility for apps to indicate that their\ncapture use case is private and that a privileged Assistant\nshould not be able to capture concurrently.\nThis allows to override the default behavior tied to the audio\nsource (e.g VOICE_COMMUNICATION is private by default but\nUNPROCESSED is not).\n\n- Add AAudio API to set and get privacy sensitive mode on input stream\n- Add MediaRecorder API to set and get privacy sensitive mode\n- Modify AudioSource constructor to accept audio attributes instead of an\naudio source to specify the use case.\n- Modify audio policy concurrent capture logic to use audio attributes\nflag instead of audio source to decide of a capture client has\nrequested privacy mode or not.\n\nBug: 137850106\nTest: CTS AudioRecordTest and MediaRecorderTest, manual audio smoke tests\n\nChange-Id: I250ea5da4c1da809ceac0da22ae9bee15b937001\n"
    },
    {
      "commit": "d054bb721892704815137cfd3d49d9f224dec76a",
      "tree": "0674eee7d8aa55b8e8ccf672bb73fdfd0ab7dbde",
      "parents": [
        "15ccc647468f14ffedf5a6e5eda7290f0131f358",
        "e45ac608ee16361fa4246e38330262fbcc9e0078"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 20:50:55 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 02 20:50:55 2019 +0000"
      },
      "message": "Merge changes from topic \"ndk-binder\"\n\n* changes:\n  DrmSessionManager_test: remove ndk wrappers for IResourceManagerService\n  convert ResourceManager usage in MediaCodec to ndk aidl\n"
    },
    {
      "commit": "817fc5bbbec408d13bbfb23be1f22ea0e1d5d041",
      "tree": "6fcd085282bc0f21597817a16cc3f5b5d472d2a1",
      "parents": [
        "3717431b08a34499eacbc2663c6da19449db5941",
        "dab79b3d09783e5053dc91b860eac06bd415cbfd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Dec 02 17:47:24 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 02 17:47:24 2019 +0000"
      },
      "message": "Merge \"AIDLize MediaExtractorService\""
    },
    {
      "commit": "e45ac608ee16361fa4246e38330262fbcc9e0078",
      "tree": "a6ab27a4b9976cc790d9ee52a22af403169807ee",
      "parents": [
        "fdd512ab3eaeee9bfb12a5e9c6f4dfe18ff2f2cf"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Nov 26 14:35:06 2019 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Nov 27 17:04:14 2019 -0800"
      },
      "message": "DrmSessionManager_test: remove ndk wrappers for IResourceManagerService\n\nThese wrappers shouldn\u0027t be needed if client and server sides\nare using matching interfaces.\n\nbug: 142396029\ntest: DrmSessionManager_test builds \u0026 passes\nChange-Id: I07573797af0ed8424e222be7f0119bd3f0ee4aaa\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": "6cd0b54b36b83922eb569d1cbcd6c0528d0ad8a1",
      "tree": "04bc0e6579c9c51ab7ac7cb343335b106f47e925",
      "parents": [
        "369b4e0cd1c37e4d1603a74dcf741800ba92ea16",
        "a90aee3a45f3381de6bb940d77f652e1cddba38d"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Nov 20 19:06:13 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 20 19:06:13 2019 +0000"
      },
      "message": "Merge \"DrmSessionManager_test: use ndk resourcemanager\""
    },
    {
      "commit": "19b0be6e8b5ffe28215dc00e2c551be46483d0aa",
      "tree": "2bf28aa0a6f9667c0c92de2c3355302e163b0e24",
      "parents": [
        "0501baaa032a55226be40aeeb945dcebba635164"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 15 07:51:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 19 12:20:24 2019 -0800"
      },
      "message": "Remove DrmInitialization from IDataSource\n\nDrmInitialization only needs to be called on PlayerServiceFileSource\nand PlayerServiceMediaHTTP, so just have those initialize the forward\nlock engine automatically, which removes the need to have this in the\nIDataSource interface.\n\nTest: atest cts/tests/tests/drm/src/android/drm/cts/DRMTest.java\n\nChange-Id: I344f46b65b5c473930b16b9b4041e4897384dc18\nMerged-In: I344f46b65b5c473930b16b9b4041e4897384dc18\n"
    },
    {
      "commit": "a90aee3a45f3381de6bb940d77f652e1cddba38d",
      "tree": "deb96456d3203788653ebb79ff7bc597f899e553",
      "parents": [
        "f1e974b95c11fe975ba2231c54a6c70a3ec30edf"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 14 15:43:39 2019 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Nov 15 13:54:07 2019 -0800"
      },
      "message": "DrmSessionManager_test: use ndk resourcemanager\n\nBug: 134787536\nTest: DrmSessionManager_test\nChange-Id: Ib79db7b7db07006675e3fae1955de84841df4c7e\n"
    },
    {
      "commit": "f9656ff1f117830f2f3d3e24be354fa3a4db3ada",
      "tree": "b8958bc6b2700ebc86cb2afdd992a177c2c1ae23",
      "parents": [
        "7e5e530d39e3de6f904c8587b1c60bed631178c1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 15 07:51:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 15 11:18:27 2019 -0800"
      },
      "message": "Remove DrmInitialization from IDataSource\n\nDrmInitialization only needs to be called on PlayerServiceFileSource\nand PlayerServiceMediaHTTP, so just have those initialize the forward\nlock engine automatically, which removes the need to have this in the\nIDataSource interface.\n\nTest: atest cts/tests/tests/drm/src/android/drm/cts/DRMTest.java\n\nChange-Id: I344f46b65b5c473930b16b9b4041e4897384dc18\n"
    },
    {
      "commit": "5452a4dabe1dadb6e4e9b10876df933b8b5c8f38",
      "tree": "a6107bdaaf3c729628ac840c92db414929576426",
      "parents": [
        "e6cbccaef91a63e0a739f084fdc94a216a08efd6",
        "d4fe6b1339be666fd1df2a6a7ed3ce8528ea8064"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 11 20:07:11 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 11 20:07:11 2019 +0000"
      },
      "message": "Merge \"Prime cache for tone mappers in mediaserver\""
    },
    {
      "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": "d4fe6b1339be666fd1df2a6a7ed3ce8528ea8064",
      "tree": "7639460f339e0bd7defb74bb9cd55371e313ffb9",
      "parents": [
        "9ef4f8d690bc42a0f17d6036d70f6769578a76b5"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 02 14:29:18 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 30 15:49:28 2019 +0000"
      },
      "message": "Prime cache for tone mappers in mediaserver\n\nInstantiate media side renderengine when mediaserver\nstarts, and prime shader cache for the tone mapper\nshaders only.\n\nbug: 140894732\nbug: 135717526\n\ntest: manually check that shader should be compiled\nalready when test run for first time\n\nChange-Id: Ib02569bec948838ace0f3162206dbbcadad5b641\n"
    },
    {
      "commit": "7480dcc47c1e96a7692a6c7301ac93c875a9e90b",
      "tree": "8e9728f448f16698cf0485f3d42857503b761ce2",
      "parents": [
        "d82222ee2ffb430e0874e7912771c8d40b57797a",
        "58a0dd832177e58a53fc428ab3e9ab86156b576d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 29 15:48:55 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 29 15:48:55 2019 +0000"
      },
      "message": "Merge \"Audio policy: modify permission needed to capture from source FM_TUNER\""
    },
    {
      "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": "58a0dd832177e58a53fc428ab3e9ab86156b576d",
      "tree": "d4db6d477b38b251b9a1a14031791daa4cf2cebe",
      "parents": [
        "9f03917ce011e4c860306d42c3f3cc70d2061190"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 24 12:42:17 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 25 09:35:47 2019 -0700"
      },
      "message": "Audio policy: modify permission needed to capture from source FM_TUNER\n\nCapturing from source AUDIO_SOURCE_FM_TUNER is possible only via @SystemApi\non one end and does not capture from an actual on the other end.\nAccordingly, do not check android.permission.RECORD_AUDIO anymore but\ncheck privileged permission android.permission.CAPTURE_AUDIO_OUTPUT instead.\nAlso bypass App Ops OP_RECORD_AUDIO check which is applicable only to capture from\nmicrophones.\n\nAlso fix audio recording permission check in MediaRecordClient to use\nrecordingAllowed() from ServiceUtilities\n\nBug: 135717621\nTest: CTS tests for AudioRecord\nChange-Id: Ibb1d72f018d2e3ceee195338f2e262183eee2a23\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": "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": "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": "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"
    }
  ],
  "next": "a42a62d8633fa6fcabc8129a2c798da860630821"
}
