)]}'
{
  "log": [
    {
      "commit": "4843f841787501876f3c97617a837efc621c1b61",
      "tree": "e3a585d75fcd3a5d1585ae8f48db17530c8fec70",
      "parents": [
        "e9179cf47b6ac3c4246fb78f515ede3382aff7bd"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Sep 09 16:34:10 2020 -0700"
      },
      "committer": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Tue Feb 23 18:45:41 2021 +0000"
      },
      "message": "Check for disabled camera in MediaRecorderClient\n\nTo avoid encountering the getService timeout, we should first check if\nthe camera service has been disabled before fetching it.\n\nBug: 163322246\nTest: ran on device with disabled camera to verify getService was\nskipped\n\nChange-Id: I47e8878182fe82c1473da59c8054ee7281efe23e\nMerged-In: I47e8878182fe82c1473da59c8054ee7281efe23e\n(cherry picked from commit fa344e04ff81b4bfed83888c53b3913b13505e41)\n"
    },
    {
      "commit": "a0a227fc4f0dfcddc7010241986c22781aba8244",
      "tree": "000cc51e30e4d7e4ec7fe7ea020816740ab1d393",
      "parents": [
        "d2baf5ce253c0222a78b51cf4b5201729d2fa17a"
      ],
      "author": {
        "name": "Diaesh Antony",
        "email": "diaesh.a@samsung.com",
        "time": "Thu Jun 11 21:25:55 2020 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Feb 19 23:45:09 2021 +0000"
      },
      "message": "VT: Videocall datausage feature implementation.\n\n[Problem] no interface defined to let application know\n  how much data(bytes) used for video call.\n[Cause] not implemented yet.\n[Solution] defined a getter function to get how much bytes\n  used for this video stream.\n\n- MediaRecorder: app can query accumulative rtp data usage\n    by a new API named getRtpDataUsage(uint64_t *bytes).\n- MediaPlayer: app can receive final rtp statistics report when\n    the stream closed by RTCP:BYE. app should accumulate bitrate\n    when it received every rtp statistics reports.\n\nBug: 171688417\n\nChange-Id: I426dc1f7dc384e1ec8958c2e96f060551fb39c5d\nSigned-off-by: Diaesh Antony \u003cdiaesh.a@samsung.com\u003e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "89d5bc6854ce16849941cb5093454fdf646dd800",
      "tree": "87740c9cefbc9de6eec71e8e8c57fbbdcef091e0",
      "parents": [
        "1a470ddcc1b25cfc522b15fb0e52f2b12fbd9063"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Tue Mar 17 21:39:33 2020 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 23:33:59 2021 -0800"
      },
      "message": "VT: Increase TMMBR reaction speed\n\n1. More immediate TMMBR sending as like NACK \u0026 FIR\n2. RTP notification of packet info is sent immediately by a delicate bad N/W sign\n    - The notification is independent of legacy regular notification\n    - It\u0027s defined as \u0027early notification\u0027\n    - This early notification can derive faster reaction against the bad N/W\n3. Change the place of definition of message type for RTP notifications\n    - RTPSource.h -\u003e ARTPSource.h\n\nBug: 175266635\n\nChange-Id: I12af66ef3b4a150996990bb22640109953a8ec79\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "1a470ddcc1b25cfc522b15fb0e52f2b12fbd9063",
      "tree": "a8cc2e3565fae6ef7d8190dcec8226c1d43d8fb6",
      "parents": [
        "8eddf4be3678b37a2a788c9ef8891b35806e3ae1"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Fri Jun 05 13:14:19 2020 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 17 23:01:10 2021 -0800"
      },
      "message": "VT: fixed \"Uninitialized scalar field\" reported by static analysis\n\n[Problem] Uninitialized scalar field (UNINIT_CTOR) for\n          member variables of RTPSource \u0026 ARTPWriter\n[Solution] initialize variables in constructor.\n\nBug: 175266635\n\nChange-Id: I5b41cbe2090803a40852102afbe97e34cde79895\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "25c3a3d28086f587b53619adae0e9aa94eeef808",
      "tree": "a59825281b149da177d62d539f4c62394fff6861",
      "parents": [
        "7bf2734afc94390bdc85e9ecbe4a30e9220207cd"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Fri Jun 12 17:24:21 2020 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 17 21:24:21 2021 -0800"
      },
      "message": "VT: Rx side of CVO implementation to CCodec.\n\n[Problem] video rotation is not working with CCodec in VT scenario.\n[Cause] video rotation should be applied if cvo exists in\n  meta() of MediaCodecBuffer.\n[Solution] C2StreamRotationInfo of outputbuffer will be updated\n  if cvo exist in inputbuffer.\n\nBug: 167935079\n\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\nChange-Id: Ib03bde00cefbeb4ac6ea4ea9eff150c686780c38\nMerged-In: Ib03bde00cefbeb4ac6ea4ea9eff150c686780c38\n"
    },
    {
      "commit": "5c689f5f5bd297c7c3f377a05fa612b38864fd94",
      "tree": "01784b2f263a76d332490d88297c67e719ba0394",
      "parents": [
        "b2bb385ed0097f7cb2f14c0ac5691ad861f913ed",
        "d9b5957932b8e0c5e36d8adeb40cb3182c1d7d95"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 05:18:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 05:18:02 2021 +0000"
      },
      "message": "Merge changes from topic \"200609_ViLTE_sync\"\n\n* changes:\n  Miscellaneous fixups for VT contribution update.\n  VT: ARTPWriter: Introduce Moderator logic\n  VT: ARTPWriter: Add traffic recorder\n  VT: Migration AAVCAssembler patches to AHEVCAssembler.\n  VT: Enhancements on RTP depacketizer (2)\n  VT: Refine codes in AAVCAssembler.\n  VT: RTCP:NACK implementation. (RFC-4585)\n  VT: Report all data about packet receiving up to application\n  VT: Enhancements on RTP depacketizer\n  VT: Enhancements on RTP packetizer.\n  VT: Added an interface to set JitterBufferTime.\n  VT: Some parameters not provided to encoder if source is surface.\n  VT: H265: prepend VPS/SPS/PPS to I-frame.\n  VT: Change to KMP algorithm for searching H.264 start prefix code\n  VT: ARTPWriter: StripStartcode() \u0026 SpsPpsParser() bug fix\n  revert ARTPWriter StripStartcode fix\n  media: further miscellaneous fixes to VT contribution\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"
    },
    {
      "commit": "b2bb385ed0097f7cb2f14c0ac5691ad861f913ed",
      "tree": "df8828d3148116bd1a06a5f2865ed4a3e80114c7",
      "parents": [
        "2ea8149a2dc18c9dd9251e69e28faca7c2096b81",
        "4bcec5dca1d6f04bcb44fbd9207f2cfb963dace6"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 01:29:30 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 01:29:30 2021 +0000"
      },
      "message": "Merge \"VT: Retain RTP sequence number between SFR stop and start\""
    },
    {
      "commit": "d65560123d80efa0a27c973f31eadb9ede5c0439",
      "tree": "47e805d180ccbfd283786e5877844d9342b66771",
      "parents": [
        "729bbecb33cb50e87d14cd6c5e93a447cacf8dc5",
        "e3fef04234bb6040f8a6ebb65fd74a4fe41a2bcb"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 01:18:03 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 01:18:03 2021 +0000"
      },
      "message": "Merge \"VT: Update payload value at runtime for SFR\""
    },
    {
      "commit": "729bbecb33cb50e87d14cd6c5e93a447cacf8dc5",
      "tree": "0b0522b0322fae4e3b9ea44e67b59a23122ab88c",
      "parents": [
        "d5a24879c69211f7448f7a148f0be2d726bb915b",
        "4b08d94c5dc4eef6b8c6c264d7b7e9cb2ceece56"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 01:12:29 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 01:12:29 2021 +0000"
      },
      "message": "Merge \"VT: Add FIR, PLI reaction\""
    },
    {
      "commit": "d5a24879c69211f7448f7a148f0be2d726bb915b",
      "tree": "ddd1efd2acfc6749f7e432007495a1f9e1303b13",
      "parents": [
        "fa9b2d8bde8b77c23b8d5efee82df8ded29ae31d",
        "d42c50d47cd23a2960c13d61dda09650b33b4f3b"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 01:02:28 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 01:02:28 2021 +0000"
      },
      "message": "Merge \"VT: Add auto downgrade function\""
    },
    {
      "commit": "fa9b2d8bde8b77c23b8d5efee82df8ded29ae31d",
      "tree": "eec42e46887372950657374a71ffd2f7a8b0fb12",
      "parents": [
        "5e94515e6611f2c430dab95003e90cfe7df0cb49",
        "a2c250d271ff3a1664fa6873a89fc314e6818dbe"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 00:51:33 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 00:51:33 2021 +0000"
      },
      "message": "Merge \"VT: Add TMMBR feature for RTP Rx side\""
    },
    {
      "commit": "5e94515e6611f2c430dab95003e90cfe7df0cb49",
      "tree": "c5ccfe0b8769eb88d05716ea49a43990b5bb152f",
      "parents": [
        "48dcacc3c2a64a639a3737456b499d1d6b86bb31",
        "bd8876911cb4ddd274349978c23051de594cc48a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 00:33:40 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 00:33:40 2021 +0000"
      },
      "message": "Merge \"VT: Add TMMBN feature on RTP Tx side\""
    },
    {
      "commit": "48dcacc3c2a64a639a3737456b499d1d6b86bb31",
      "tree": "bb7d6c5508fdf17fa3908aece8152052e9b934fa",
      "parents": [
        "5f4b6b4c62f3c593a01d95869399ed800141a2bb",
        "8f935263ae7e918b4f4c97dfccb21df7d37eab8e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 18 00:23:10 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 18 00:23:10 2021 +0000"
      },
      "message": "Merge \"VT: SFP: H264: CVO implementation for Rx side\""
    },
    {
      "commit": "5f4b6b4c62f3c593a01d95869399ed800141a2bb",
      "tree": "92c4bfa559b9833c30c6998026ebc8007bf16907",
      "parents": [
        "65f7dd435d8a2c96bd975eccbd8b4e70cdef3a58",
        "6552d60d30b57b6da43b59e1334c60007d25bb58"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 17 22:00:27 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 17 22:00:27 2021 +0000"
      },
      "message": "Merge changes I49ab063d,I6d2d5013,I203ff502,I7c6f244c,I11248ead, ...\n\n* changes:\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"
    },
    {
      "commit": "159665dd0df0f965f986a1f7b4b59edf6c42ad9f",
      "tree": "0f7d72916200677304227cfe9bf99ea2e5368611",
      "parents": [
        "557ec27958f4b5c2a0028b25fb1d8497fe362cfb",
        "8eab0ead21ca9e3f014a5321b533d44d80f87454"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 17 20:21:59 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 17 20:21:59 2021 +0000"
      },
      "message": "Merge \"VT: StagefrightRecorder: Added a function for TMMBR\""
    },
    {
      "commit": "557ec27958f4b5c2a0028b25fb1d8497fe362cfb",
      "tree": "669e747597edf73bb5fca8d25e0e4e61a7008b02",
      "parents": [
        "fb5ef561e37afc7321884ecba1e32d87de5d33b2",
        "6b407aaf453d05ad28d11b3cd60f552377aa916e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 17 18:22:23 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 17 18:22:23 2021 +0000"
      },
      "message": "Merge changes from topic \"ViLTE-IMP\"\n\n* changes:\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": "d9b5957932b8e0c5e36d8adeb40cb3182c1d7d95",
      "tree": "c6f195cf5efb626a3279ca92702fc59a43ff6aeb",
      "parents": [
        "dc816386eca2fe778884099586ccb2ee1857fee5"
      ],
      "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 Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-In: Iceeb3851aed0ba9b1c2c50b1a2378df06faa29d6\n"
    },
    {
      "commit": "4bcec5dca1d6f04bcb44fbd9207f2cfb963dace6",
      "tree": "b5abc6d89d33aa9372bada8a8298ede1a7787aee",
      "parents": [
        "9a021f7faf9e472fe248f87500ef09397358f4c8"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I7dde2c89f2b378600a080b7a4f4de385f81e6ee1\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": "e3fef04234bb6040f8a6ebb65fd74a4fe41a2bcb",
      "tree": "ea6b2f41b848bed94c4953c14467be98783d0c3c",
      "parents": [
        "4b08d94c5dc4eef6b8c6c264d7b7e9cb2ceece56"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I9e19a7bb3e0c7849cbb244fd3a3221ce79c4e56d\nChange-Id: I9e19a7bb3e0c7849cbb244fd3a3221ce79c4e56d\nSigned-off-by: Somraj Mani \u003csom.mani@samsung.com\u003e\n"
    },
    {
      "commit": "4b08d94c5dc4eef6b8c6c264d7b7e9cb2ceece56",
      "tree": "d2484ebf467ac6f131ad56341865338e70be6751",
      "parents": [
        "d42c50d47cd23a2960c13d61dda09650b33b4f3b"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I41fba551d47513d2bc0563036434a4c0426a4136\nChange-Id: I41fba551d47513d2bc0563036434a4c0426a4136\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "d42c50d47cd23a2960c13d61dda09650b33b4f3b",
      "tree": "62c6e8ba934e165ba6dc8a2fb4ea40ed892c764a",
      "parents": [
        "a2c250d271ff3a1664fa6873a89fc314e6818dbe"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I04e3f4e1955852c61540f35c763a40be3e7b639b\nChange-Id: I04e3f4e1955852c61540f35c763a40be3e7b639b\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "a2c250d271ff3a1664fa6873a89fc314e6818dbe",
      "tree": "575a1a0bb899078573bb5220afab7de5ae0b065c",
      "parents": [
        "bd8876911cb4ddd274349978c23051de594cc48a"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Ie0abb6e639f50ad8ee3081c3d5e76dc07e80d5d1\nChange-Id: Ie0abb6e639f50ad8ee3081c3d5e76dc07e80d5d1\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "bd8876911cb4ddd274349978c23051de594cc48a",
      "tree": "36fa10993a13d2bacf1df0b5950f438cada24667",
      "parents": [
        "8f935263ae7e918b4f4c97dfccb21df7d37eab8e"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I768649c02e50fd5fab2ecb53c3743915662c100a\nChange-Id: I768649c02e50fd5fab2ecb53c3743915662c100a\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "8f935263ae7e918b4f4c97dfccb21df7d37eab8e",
      "tree": "643be32e7ffab0852c9efa147c42c5902799b4a8",
      "parents": [
        "6552d60d30b57b6da43b59e1334c60007d25bb58"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nChange-Id: I802a9e43d9ee54b7970d2541f18fb4af8022336a\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\nMerged-In: I802a9e43d9ee54b7970d2541f18fb4af8022336a\n"
    },
    {
      "commit": "6552d60d30b57b6da43b59e1334c60007d25bb58",
      "tree": "ec26fe3136ee8c66deb1758ff74779261b18377d",
      "parents": [
        "ebf1e7717243005255d37b9c56898fe99c2aa21b"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I49ab063d549b033aef06eadf39fd189384a5f724\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": "8eab0ead21ca9e3f014a5321b533d44d80f87454",
      "tree": "b74148a51644bf26226c5db989fd907061787d8e",
      "parents": [
        "6b407aaf453d05ad28d11b3cd60f552377aa916e"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Ied820dec5bda36bfe590cf46ec981e0b5fc4c4ee\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": "7c5b5c0c751694bec89bc2bec6aa5588c6590fdd",
      "tree": "0146ae6ee33a48ba0ba1de9c4df32ebf6c2539d1",
      "parents": [
        "0175f4e1dbc31f66dafe3241219fc34319413ecf"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I203ff5022ca95859c8acc662ba6cedff256a6995\nChange-Id: I203ff5022ca95859c8acc662ba6cedff256a6995\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "0175f4e1dbc31f66dafe3241219fc34319413ecf",
      "tree": "c679d44cac2b03bd9b9ebc0eae96706e7d0ae80a",
      "parents": [
        "fc88be84acac830a15ca8431c40d3483821308d4"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I7c6f244c753c84a7954261b1c37292083ab5996a\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": "c0a4d1a5b723556eb453a77f3740d32b18f2b54b",
      "tree": "de98b71074a4352daa9d5b3b74a8f308d09a0c17",
      "parents": [
        "8d05479a10832e06fcb0f6ebcd4923dd1e204455"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Ied41ea57d4fa96d4c05d7f8eba3d96bcb8f3fc69\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": "fc88be84acac830a15ca8431c40d3483821308d4",
      "tree": "6285b757efa20992c43c34a6d2ab9304cbe60415",
      "parents": [
        "e40c5df08ca4530bd051f17d703972b0c6bb9ae9"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I11248eada31f50d278ab299f57ee42d9a3ce79be\nChange-Id: I11248eada31f50d278ab299f57ee42d9a3ce79be\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "e40c5df08ca4530bd051f17d703972b0c6bb9ae9",
      "tree": "5f1689f4ad35d6139f3ac1f2e5f6e90a777a6c39",
      "parents": [
        "8eab0ead21ca9e3f014a5321b533d44d80f87454"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I85bfa0c359a60b42bcdf062f8a158db2ce69aa5a\nChange-Id: I85bfa0c359a60b42bcdf062f8a158db2ce69aa5a\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "3320935aa69e6d21270320ad7da5804ad85258df",
      "tree": "6317b929db6af6f10f1943aa183fe6b972677663",
      "parents": [
        "870c9d6f981a379b3b495c031191e231a8804804"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: If04ebb09d4f28d8eeb6a1a920a833129828a6ac4\nChange-Id: If04ebb09d4f28d8eeb6a1a920a833129828a6ac4\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "a6d72e595c3891af844df9e14ee776dcdff1ba32",
      "tree": "3c286679e411b3df63079b6649deb38eaa4949cd",
      "parents": [
        "4838661a77e2e00d5c0007a8668c50aab1e29bcb"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I567a55926c27aafb2510313d9cd41acbc8110194\nChange-Id: I567a55926c27aafb2510313d9cd41acbc8110194\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "4838661a77e2e00d5c0007a8668c50aab1e29bcb",
      "tree": "95595cd385d8c467ac4ddd760cd6ebe98a844459",
      "parents": [
        "418c5da88a3da375ee0f3c2a8ce970e7ef5dae0d"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: If840df274a6fc4b04910f9201359b7c09fd2bc85\nChange-Id: If840df274a6fc4b04910f9201359b7c09fd2bc85\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "418c5da88a3da375ee0f3c2a8ce970e7ef5dae0d",
      "tree": "2c235e8eb3e4ed9ce9794e8ce31e97a286a7accb",
      "parents": [
        "75adcb7a7be8c22bb619c51e5914cbfb012f2004"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Ic70b06b330394b40b1c756aba85e175fba178b8d\nChange-Id: Ic70b06b330394b40b1c756aba85e175fba178b8d\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "75adcb7a7be8c22bb619c51e5914cbfb012f2004",
      "tree": "84c4b25417dd79250b09e565a4d8b96a3767a573",
      "parents": [
        "e0864615b803801ae860fb12ccb168f8a8f1a951"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Idc6ef462a91aab87c3f0ad46c504ebf0b89c36c4\nChange-Id: Idc6ef462a91aab87c3f0ad46c504ebf0b89c36c4\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "e0864615b803801ae860fb12ccb168f8a8f1a951",
      "tree": "eaffe53895e4bf162c0780ad7088485cb6357bd4",
      "parents": [
        "44aff3af8e7969ad4ed69e59ff790303a4f77fc5"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Ic777e8252f373a92fb5595750cb4a899135b29a2\nChange-Id: Ic777e8252f373a92fb5595750cb4a899135b29a2\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "6a10473891d4a1efb610ee7d30d3625ecc510440",
      "tree": "4491d219d47c2bfcfa74a5c00f59fcf4c936e0ab",
      "parents": [
        "638df3a51ea27eab1cc356f7b1a0607e7aa3d2df"
      ],
      "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 Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I29d38b96d794615f4aead2bb98d147831070d25c\nChange-Id: I29d38b96d794615f4aead2bb98d147831070d25c\n"
    },
    {
      "commit": "638df3a51ea27eab1cc356f7b1a0607e7aa3d2df",
      "tree": "88e070d67bf4b9d91dea449a0614523a856a510b",
      "parents": [
        "c862b4353f3768c7a2d3cc9c600386f4ae7baa41"
      ],
      "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 Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Iada8b878e396452c1d281c60f3754e13e34bcddb\nChange-Id: Iada8b878e396452c1d281c60f3754e13e34bcddb\n"
    },
    {
      "commit": "c862b4353f3768c7a2d3cc9c600386f4ae7baa41",
      "tree": "0e437cc831d9d71930a7de1aef747f67b8651181",
      "parents": [
        "75b135ef31c6d0c4fe61c1c185bdbe2935949de6"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "message": "VT: DSCP implementation.\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: 142345921\n\nMerged-in: I1468a08f64b71db0f12d96b393263b520109be6d\nChange-Id: I1468a08f64b71db0f12d96b393263b520109be6d\nSigned-off-by: JainishKumar Anghan \u003cjai.anghan@samsung.com\u003e\n"
    },
    {
      "commit": "75b135ef31c6d0c4fe61c1c185bdbe2935949de6",
      "tree": "cc6700210beecf9db80fe04a0136be6558ffeecc",
      "parents": [
        "d1587177d685ffaaae4ba76a5eed8e6a25f0de29"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Ifd8e30fd8032a2d7e306b5bcee72642fba2c266c\nChange-Id: Ifd8e30fd8032a2d7e306b5bcee72642fba2c266c\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "d1587177d685ffaaae4ba76a5eed8e6a25f0de29",
      "tree": "0e6aaef2645c62511c733e0eb6e0fc31e7b311c2",
      "parents": [
        "2b85f7d9a511e7620c5111b121821bdbd9ad2b7d"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: Id14708049e684f8dd5711c2b9fefb67c6cafbfc6\nChange-Id: Id14708049e684f8dd5711c2b9fefb67c6cafbfc6\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "2b85f7d9a511e7620c5111b121821bdbd9ad2b7d",
      "tree": "10b97938a87d7b3fa87bcf486c3c583d1bc932f6",
      "parents": [
        "19c596866720aa605f0fdfdad0d5035ed69bfb18"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I5443e2071906576783db995421f997af5bc84424\nChange-Id: I5443e2071906576783db995421f997af5bc84424\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "a54077670c83c0a1041dc02ece575663921dd2ae",
      "tree": "4cb531175e629b39d8a4893bfde781c32dfb0742",
      "parents": [
        "65f382104a515b4851bfd69a1919e478c453feed"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I44bf7131ba2cdb7a1c8760b62ea81427b43afcb1\nChange-Id: I44bf7131ba2cdb7a1c8760b62ea81427b43afcb1\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "a2530aee2481af55dd16b73bedbe87f23cfa4591",
      "tree": "2558e836210f42eb9904138d167d22d501e32feb",
      "parents": [
        "7cd1b2b372a849fcf3f2951ee1da55fa574d95b3"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I83cd0c6bb78ee95ef2781ad7deeec393a3174aab\nChange-Id: I83cd0c6bb78ee95ef2781ad7deeec393a3174aab\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "7cd1b2b372a849fcf3f2951ee1da55fa574d95b3",
      "tree": "82f69a7d3e8b485ddaaa2fa7471f843320ea08bd",
      "parents": [
        "d3dba6982270cd889353d32a33b72e23f63b5b23"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I67a08be8b8a19b573c873e96d317e16c7105084e\nChange-Id: I67a08be8b8a19b573c873e96d317e16c7105084e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "d3dba6982270cd889353d32a33b72e23f63b5b23",
      "tree": "7a45f36bc3586d91f511e5d584b949004a6ad2fe",
      "parents": [
        "4bcec5dca1d6f04bcb44fbd9207f2cfb963dace6"
      ],
      "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": "Wed Feb 17 08:32:58 2021 -0800"
      },
      "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\nMerged-in: I5e1fe7f993776a74619ddc88d664799a54bd604e\nChange-Id: I5e1fe7f993776a74619ddc88d664799a54bd604e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "870c9d6f981a379b3b495c031191e231a8804804",
      "tree": "e1463fbfed4a4902932cf6d6ba28bbacd6b4aa66",
      "parents": [
        "c0f207c0a69bdeeb57145a2d73da6fa89e90df62"
      ],
      "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": "Wed Feb 17 08:32:16 2021 -0800"
      },
      "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\nMerged-in: I9fdc71a854d441703c8dd2fc8115de36a5e9958e\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": "fb5ef561e37afc7321884ecba1e32d87de5d33b2",
      "tree": "3bca559674422d98896770dbe9eb8a9b9e1cd69f",
      "parents": [
        "749155270478260b570322f4349684268eb97135",
        "1de605c1a0d1d7e795002267e19d436222b0d371"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Feb 16 21:20:56 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 16 21:20:56 2021 +0000"
      },
      "message": "Merge \"StagefrightRecorderTest: Add AndroidTest.xml\""
    },
    {
      "commit": "948e6aace91d16acfaa97763c7228029a1c2afe0",
      "tree": "e1213aacab8f21fd8bf9dcd02dbc82741013379f",
      "parents": [
        "367398038247b09a3f92e05affac5f9b1f5e2f90"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 21:02:31 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Feb 16 04:09:57 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  camera/cameraserver/Android.bp\n  camera/tests/Android.mk\n  cmds/screenrecord/Android.bp\n  cmds/stagefright/Android.mk\n  drm/common/Android.bp\n  drm/drmserver/Android.bp\n  drm/libdrmframework/Android.bp\n  drm/libdrmframework/plugins/common/util/Android.bp\n  drm/libdrmframework/plugins/forward-lock/FwdLockEngine/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/common/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/converter/Android.bp\n  drm/libdrmframework/plugins/forward-lock/internal-format/decoder/Android.bp\n  drm/libdrmframework/plugins/passthru/Android.bp\n  drm/libmediadrm/Android.bp\n  drm/libmediadrm/fuzzer/Android.bp\n  drm/libmediadrm/protos/Android.bp\n  drm/libmediadrm/tests/Android.bp\n  drm/mediacas/plugins/clearkey/Android.bp\n  drm/mediacas/plugins/clearkey/tests/Android.bp\n  drm/mediacas/plugins/mock/Android.bp\n  drm/mediadrm/plugins/clearkey/common/Android.bp\n  drm/mediadrm/plugins/clearkey/default/Android.bp\n  drm/mediadrm/plugins/clearkey/default/tests/Android.bp\n  drm/mediadrm/plugins/mock/Android.bp\n  media/audioserver/Android.mk\n  media/bufferpool/1.0/Android.bp\n  media/bufferpool/1.0/vts/Android.bp\n  media/bufferpool/2.0/Android.bp\n  media/bufferpool/2.0/tests/Android.bp\n  media/codec2/components/aac/Android.bp\n  media/codec2/components/amr_nb_wb/Android.bp\n  media/codec2/components/aom/Android.bp\n  media/codec2/components/avc/Android.bp\n  media/codec2/components/base/Android.bp\n  media/codec2/components/cmds/Android.bp\n  media/codec2/components/flac/Android.bp\n  media/codec2/components/g711/Android.bp\n  media/codec2/components/gav1/Android.bp\n  media/codec2/components/gsm/Android.bp\n  media/codec2/components/hevc/Android.bp\n  media/codec2/components/mp3/Android.bp\n  media/codec2/components/mpeg2/Android.bp\n  media/codec2/components/mpeg4_h263/Android.bp\n  media/codec2/components/opus/Android.bp\n  media/codec2/components/raw/Android.bp\n  media/codec2/components/vorbis/Android.bp\n  media/codec2/components/vpx/Android.bp\n  media/codec2/components/xaac/Android.bp\n  media/codec2/core/Android.bp\n  media/codec2/faultinjection/Android.bp\n  media/codec2/fuzzer/Android.bp\n  media/codec2/hidl/1.0/utils/Android.bp\n  media/codec2/hidl/1.0/vts/functional/Android.bp\n  media/codec2/hidl/1.0/vts/functional/audio/Android.bp\n  media/codec2/hidl/1.0/vts/functional/common/Android.bp\n  media/codec2/hidl/1.0/vts/functional/component/Android.bp\n  media/codec2/hidl/1.0/vts/functional/master/Android.bp\n  media/codec2/hidl/1.0/vts/functional/video/Android.bp\n  media/codec2/hidl/1.1/utils/Android.bp\n  media/codec2/hidl/client/Android.bp\n  media/codec2/hidl/services/Android.bp\n  media/codec2/sfplugin/Android.bp\n  media/codec2/sfplugin/tests/Android.bp\n  media/codec2/sfplugin/utils/Android.bp\n  media/codec2/tests/Android.bp\n  media/codec2/vndk/Android.bp\n  media/codecs/amrnb/common/Android.bp\n  media/codecs/amrnb/enc/fuzzer/Android.bp\n  media/codecs/amrnb/fuzzer/Android.bp\n  media/codecs/amrwb/dec/fuzzer/Android.bp\n  media/codecs/amrwb/enc/Android.bp\n  media/codecs/amrwb/enc/SampleCode/Android.bp\n  media/codecs/amrwb/enc/fuzzer/Android.bp\n  media/codecs/amrwb/enc/test/Android.bp\n  media/codecs/g711/decoder/Android.bp\n  media/codecs/g711/fuzzer/Android.bp\n  media/codecs/m4v_h263/dec/Android.bp\n  media/codecs/m4v_h263/dec/test/Android.bp\n  media/codecs/m4v_h263/fuzzer/Android.bp\n  media/codecs/mp3dec/fuzzer/Android.bp\n  media/extractors/Android.bp\n  media/extractors/aac/Android.bp\n  media/extractors/amr/Android.bp\n  media/extractors/flac/Android.bp\n  media/extractors/fuzzers/Android.bp\n  media/extractors/midi/Android.bp\n  media/extractors/mkv/Android.bp\n  media/extractors/mp3/Android.bp\n  media/extractors/mp4/Android.bp\n  media/extractors/mpeg2/Android.bp\n  media/extractors/ogg/Android.bp\n  media/extractors/tests/Android.bp\n  media/extractors/wav/Android.bp\n  media/img_utils/Android.bp\n  media/libaaudio/Android.bp\n  media/libaaudio/examples/Android.bp\n  media/libaaudio/examples/input_monitor/Android.bp\n  media/libaaudio/examples/loopback/Android.bp\n  media/libaaudio/examples/write_sine/Android.bp\n  media/libaaudio/src/Android.bp\n  media/libaaudio/tests/Android.bp\n  media/libaudioclient/Android.bp\n  media/libaudioclient/tests/Android.bp\n  media/libaudiofoundation/Android.bp\n  media/libaudiofoundation/tests/Android.bp\n  media/libaudiohal/Android.bp\n  media/libaudiohal/impl/Android.bp\n  media/libaudioprocessing/Android.bp\n  media/libaudioprocessing/audio-resampler/Android.bp\n  media/libaudioprocessing/tests/Android.bp\n  media/libaudioprocessing/tests/fuzzer/Android.bp\n  media/libcpustats/Android.bp\n  media/libdatasource/Android.bp\n  media/libeffects/config/Android.bp\n  media/libeffects/downmix/Android.bp\n  media/libeffects/downmix/tests/Android.bp\n  media/libeffects/dynamicsproc/Android.bp\n  media/libeffects/factory/Android.bp\n  media/libeffects/loudness/Android.bp\n  media/libeffects/lvm/benchmarks/Android.bp\n  media/libeffects/lvm/lib/Android.bp\n  media/libeffects/lvm/tests/Android.bp\n  media/libeffects/lvm/wrapper/Android.bp\n  media/libeffects/preprocessing/Android.bp\n  media/libeffects/preprocessing/benchmarks/Android.bp\n  media/libeffects/preprocessing/tests/Android.bp\n  media/libeffects/proxy/Android.bp\n  media/libeffects/visualizer/Android.mk\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/xsd/Android.bp\n  media/libmedia/xsd/vts/Android.bp\n  media/libmediahelper/Android.bp\n  media/libmediahelper/tests/Android.bp\n  media/libmediametrics/Android.bp\n  media/libmediaplayerservice/Android.bp\n  media/libmediaplayerservice/datasource/Android.bp\n  media/libmediaplayerservice/nuplayer/Android.bp\n  media/libmediaplayerservice/tests/Android.bp\n  media/libmediaplayerservice/tests/stagefrightRecorder/Android.bp\n  media/libmediatranscoding/Android.bp\n  media/libmediatranscoding/tests/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libstagefright/Android.bp\n  media/libstagefright/bqhelper/Android.bp\n  media/libstagefright/bqhelper/tests/Android.bp\n  media/libstagefright/codecs/aacdec/Android.bp\n  media/libstagefright/codecs/aacenc/Android.bp\n  media/libstagefright/codecs/amrnb/dec/Android.bp\n  media/libstagefright/codecs/amrnb/enc/Android.bp\n  media/libstagefright/codecs/amrwbenc/Android.bp\n  media/libstagefright/codecs/avcdec/Android.bp\n  media/libstagefright/codecs/avcenc/Android.bp\n  media/libstagefright/codecs/common/Android.bp\n  media/libstagefright/codecs/flac/dec/Android.bp\n  media/libstagefright/codecs/flac/enc/Android.bp\n  media/libstagefright/codecs/g711/dec/Android.bp\n  media/libstagefright/codecs/gsm/dec/Android.bp\n  media/libstagefright/codecs/hevcdec/Android.bp\n  media/libstagefright/codecs/m4v_h263/dec/Android.bp\n  media/libstagefright/codecs/m4v_h263/enc/Android.bp\n  media/libstagefright/codecs/mp3dec/Android.bp\n  media/libstagefright/codecs/mpeg2dec/Android.bp\n  media/libstagefright/codecs/on2/dec/Android.bp\n  media/libstagefright/codecs/on2/enc/Android.bp\n  media/libstagefright/codecs/opus/dec/Android.bp\n  media/libstagefright/codecs/raw/Android.bp\n  media/libstagefright/codecs/vorbis/dec/Android.bp\n  media/libstagefright/codecs/xaacdec/Android.bp\n  media/libstagefright/colorconversion/Android.bp\n  media/libstagefright/data/Android.bp\n  media/libstagefright/filters/Android.bp\n  media/libstagefright/flac/dec/Android.bp\n  media/libstagefright/flac/dec/test/Android.bp\n  media/libstagefright/foundation/Android.bp\n  media/libstagefright/foundation/tests/AVCUtils/Android.bp\n  media/libstagefright/foundation/tests/Android.bp\n  media/libstagefright/foundation/tests/OpusHeader/Android.bp\n  media/libstagefright/foundation/tests/colorutils/Android.bp\n  media/libstagefright/http/Android.bp\n  media/libstagefright/httplive/Android.bp\n  media/libstagefright/id3/Android.bp\n  media/libstagefright/id3/test/Android.bp\n  media/libstagefright/mpeg2ts/Android.bp\n  media/libstagefright/mpeg2ts/test/Android.bp\n  media/libstagefright/omx/Android.bp\n  media/libstagefright/omx/tests/Android.bp\n  media/libstagefright/rtsp/Android.bp\n  media/libstagefright/tests/Android.bp\n  media/libstagefright/tests/ESDS/Android.bp\n  media/libstagefright/tests/HEVC/Android.bp\n  media/libstagefright/tests/extractorFactory/Android.bp\n  media/libstagefright/tests/fuzzers/Android.bp\n  media/libstagefright/tests/mediacodec/Android.bp\n  media/libstagefright/tests/metadatautils/Android.bp\n  media/libstagefright/tests/writer/Android.bp\n  media/libstagefright/timedtext/Android.bp\n  media/libstagefright/timedtext/test/Android.bp\n  media/libstagefright/webm/Android.bp\n  media/libstagefright/webm/tests/Android.bp\n  media/libstagefright/writer_fuzzers/Android.bp\n  media/libstagefright/xmlparser/Android.bp\n  media/libstagefright/xmlparser/test/Android.bp\n  media/libstagefright/xmlparser/vts/Android.bp\n  media/libwatchdog/Android.bp\n  media/mediaserver/Android.bp\n  media/mtp/Android.bp\n  media/mtp/tests/Android.bp\n  media/tests/benchmark/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/Android.bp\n  media/tests/benchmark/MediaBenchmarkTest/src/main/cpp/Android.bp\n  media/tests/benchmark/src/native/common/Android.bp\n  media/tests/benchmark/src/native/decoder/Android.bp\n  media/tests/benchmark/src/native/encoder/Android.bp\n  media/tests/benchmark/src/native/extractor/Android.bp\n  media/tests/benchmark/src/native/muxer/Android.bp\n  media/tests/benchmark/tests/Android.bp\n  media/utils/Android.bp\n  media/utils/fuzzers/Android.bp\n  services/audioflinger/Android.bp\n  services/audiopolicy/Android.bp\n  services/audiopolicy/common/Android.bp\n  services/audiopolicy/common/managerdefinitions/Android.bp\n  services/audiopolicy/config/Android.bp\n  services/audiopolicy/engine/common/Android.bp\n  services/audiopolicy/engine/config/Android.bp\n  services/audiopolicy/engine/interface/Android.bp\n  services/audiopolicy/engineconfigurable/Android.bp\n  services/audiopolicy/engineconfigurable/config/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/automotive/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/caremu/Android.bp\n  services/audiopolicy/engineconfigurable/config/example/phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/plugin/Android.bp\n  services/audiopolicy/engineconfigurable/tools/Android.bp\n  services/audiopolicy/engineconfigurable/wrapper/Android.bp\n  services/audiopolicy/enginedefault/Android.bp\n  services/audiopolicy/enginedefault/config/example/Android.bp\n  services/audiopolicy/manager/Android.mk\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.mk\n  services/audiopolicy/tests/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/tests/Android.mk\n  services/mediacodec/Android.bp\n  services/mediacodec/registrant/Android.bp\n  services/mediaextractor/Android.bp\n  services/medialog/Android.bp\n  services/medialog/fuzzer/Android.bp\n  services/mediametrics/Android.bp\n  services/mediametrics/benchmarks/Android.bp\n  services/mediametrics/fuzzer/Android.bp\n  services/mediametrics/tests/Android.bp\n  services/mediaresourcemanager/Android.bp\n  services/mediaresourcemanager/fuzzer/Android.bp\n  services/mediaresourcemanager/test/Android.bp\n  services/mediatranscoding/Android.bp\n  services/mediatranscoding/tests/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  media/codecs/amrnb/dec/Android.bp\n  media/codecs/amrnb/dec/test/Android.bp\n  media/codecs/amrnb/enc/Android.bp\n  media/codecs/amrnb/enc/test/Android.bp\n  media/codecs/amrwb/dec/Android.bp\n  media/codecs/amrwb/dec/test/Android.bp\n  media/codecs/m4v_h263/enc/Android.bp\n  media/codecs/m4v_h263/enc/test/Android.bp\n  media/codecs/mp3dec/Android.bp\n  media/codecs/mp3dec/test/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT SPDX-license-identifier-Unicode-DFS\n    legacy_by_exception_only\nto:\n  Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT\n    SPDX-license-identifier-Unicode-DFS\nto:\n  apex/testing/Android.bp\n  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Car/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/CarEmu/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/Phone/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoInput/Android.bp\n  services/audiopolicy/engineconfigurable/parameter-framework/examples/SettingsNoOutput/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_by_exception_only\nto:\n  drm/mediadrm/plugins/clearkey/hidl/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\n\nChange-Id: I8360756b326b891b56629127091540310851c941\nMerged-in: Ic169757d64ad8da7eebd0e1febdcbfb467fe81f4\nMerged-in: Ifa3fefe5dc12229e8043a54ffd1f3958d6b02310\nMerged-in: I1e32081a069c4c1b25aa200dcdb165c0feb07b8a\nMerged-in: Ib2050becaf89b8e4db5867bc601dedeb4eb8ebd2\nMerged-in: I5a4d51fb1244ed49bcd70e446aaa26e2aa8ed7b1\n"
    },
    {
      "commit": "27b1c0b60f16a322de419ee82589eb1514545d9e",
      "tree": "9fbe16619dca8e0bdd4b7ac8833a201a5f567e76",
      "parents": [
        "65ff0dfad6aa8a0f4bfccf0aa4bc457b4d95ee54"
      ],
      "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": "Sun Feb 14 16:04:26 2021 -0800"
      },
      "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\nMerged-In: I8b6d8492c1a6e5eeba88d4829e4815227f083edb\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": "1de605c1a0d1d7e795002267e19d436222b0d371",
      "tree": "dde7c682cd24b394f0ccbc4c101780a52e29b7fe",
      "parents": [
        "cbfdfe0d8628742295d4bef0a2c17ffb79149a7e"
      ],
      "author": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Thu Feb 04 17:50:12 2021 -0800"
      },
      "committer": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Wed Feb 10 01:30:05 2021 +0000"
      },
      "message": "StagefrightRecorderTest: Add AndroidTest.xml\n\nBug: 179437401\nTest: atest StagefrightRecorderTest\n\nChange-Id: I8bcc211e7300222c1e3436644f86fcc4ca9774cb\n"
    },
    {
      "commit": "565d46c1029fed1ab6a30458bad029ac7c1c5736",
      "tree": "07cbf8a70b700b93d9386bffecb99ec9e6986ec6",
      "parents": [
        "e445740e1a37ca9223491b6c10e581b793bb77da"
      ],
      "author": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Thu Feb 04 15:46:32 2021 -0800"
      },
      "committer": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Tue Feb 09 19:56:44 2021 +0000"
      },
      "message": "libmediaplayerservice: Build both shared and static libraries\n\nAlso, build StagefrightRecorderTest to use static libmediaplayerservice\nThis helps in testing both 32bit and 64bit StagefrightRecorderTest\nbinaries on the device.\n\nBug: 178228919\nTest: /data/local/tmp/StagefrightRecorderTest using both 32bit and 64bit\n binaries\n\nChange-Id: Iac2a0d8f40e7ef6b46a1a61c8f4de72cebdd79ce\n"
    },
    {
      "commit": "7cd3cc7d886996deaa9f4307e66b05b64dfd28b6",
      "tree": "5a5d5f6f222978754594b9ba8547c719949e6e39",
      "parents": [
        "e392f2cf6356eeb5269df852cca49b6f0d7716e1"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 14 08:54:34 2021 -0800"
      },
      "committer": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Thu Jan 28 15:56:09 2021 -0800"
      },
      "message": "more complete 64bit mediaserver build targets\n\nChange some mediaserver related build targets from \"32\" to \"prefer32\"\nso that they match the mediaserver target itself. This positions us for\nbuilding 32bit in a 32+64 world and 64bit in a 64-only world.\n\nBug: 16890215\nTest: build, check artifacts\nChange-Id: If625b33f29f467ee111a8ec675b855322d26b5b2\nMerged-In: If625b33f29f467ee111a8ec675b855322d26b5b2\n"
    },
    {
      "commit": "802793489675990aa90a446ecceaffbc4e081120",
      "tree": "8db7299c19371f7ef8ab2c2f1328dbdcf5311f4d",
      "parents": [
        "cbf8ba955c3d0c95f15791a72b0e29fae873fd02",
        "49a6d9c78aaa07ab83494d628cc6b7a2386a2b55"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Dec 03 03:18:52 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 03:18:52 2020 +0000"
      },
      "message": "Merge \"Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855\" into stage-aosp-master"
    },
    {
      "commit": "49a6d9c78aaa07ab83494d628cc6b7a2386a2b55",
      "tree": "70acc7a3307c66d6ac1b7ee5cc59d88ebfacad34",
      "parents": [
        "9fa7856094a8705be2061e532c36e74d103719b8",
        "55f730f7c1a0b5f963f47fdd65c43609a143f18c"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 02 00:41:55 2020 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 02 00:41:55 2020 -0800"
      },
      "message": "Merge rvc-qpr-dev-plus-aosp-without-vendor@6881855\n\nBug: 172690556\nMerged-In: I72658443fde61aa5f10463fcc42772daf4143ed0\nChange-Id: Ifb9605a1f9407357ddc755551e2d1d51c7f09bfc\n"
    },
    {
      "commit": "dc6be0d5754e65ffa07fe8ef04ca4d28c2c0268b",
      "tree": "33e22ce5f12c4b75414dfa242de2190ae0515091",
      "parents": [
        "d19faf826761db767dc8ee967149fe8939416850"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 25 23:03:05 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 01 23:39:39 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter\n\nUse of system functions eliminates the need for listing all enum\nvalues in TypeConverter tables.\n\nSlight changes in the converting functions:\n\n1. \u0027channelMaskFromString\u0027 function now also accepts indexed\n   masks.\n2. Fixed UB in \u0027formatFromString\u0027 function.\n3. Removed \u0027deviceFromString\u0027 function, use\n   \u0027DeviceConverter::fromString\u0027 instead.\n\nReplaced direct includes of \u0027system/audio-base.h\u0027 with\nincludes of \u0027system/audio.h\u0027.\n\nBug: 142480271\nTest: m\nTest: atest libmedia_helper_tests\nChange-Id: Ia0e725026be80621bdc797299e63e134419b2b3d\nMerged-In: Ia0e725026be80621bdc797299e63e134419b2b3d\n"
    },
    {
      "commit": "7cd031828f1c3873ee6868c79e621da9988bebcf",
      "tree": "e262d1f52155d1b2090cbc631a646fc8a3ef8ebe",
      "parents": [
        "a8460237165976738ba9dee5ae74780c45005926",
        "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 01 17:06:51 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 01 17:06:51 2020 +0000"
      },
      "message": "Merge \"Convert mask types from uint32_t to enum type\""
    },
    {
      "commit": "97af20390ca46d261d637fa6aeb1a49d4cc3f01b",
      "tree": "a3d4aff8e0af7eb7572acd2f596431a375667736",
      "parents": [
        "0a1a50433b1018834a7b7c9d67d42d998e005d8a"
      ],
      "author": {
        "name": "Yanqiang Fan",
        "email": "yanqiang.fan@mediatek.com",
        "time": "Thu Nov 26 17:31:43 2020 +0800"
      },
      "committer": {
        "name": "Denis Hsu",
        "email": "denis.hsu@mediatek.com",
        "time": "Mon Nov 30 03:23:59 2020 +0000"
      },
      "message": "Mediaserver memory increase after record\n\nmediaserver pss memory in meminfo cat by \u0027adb shell dumpsys meminfo mediaserver\u0027\nwill increase after memory leak test. The test will record many times using front\nand back camera.\nwe found mediametrics::Item been create but not been deleted when do video record,\nwitch will cause memory leak. We should always delete it if mMetricsItem not NULL.\n\nBug: 174438149\nChange-Id: I45e5a7918f032058fd76023c2ca4d82881e8f9d1\n"
    },
    {
      "commit": "e3b59ac285356dfe1bd416d46672fe0b1f10dc6f",
      "tree": "cc260c7b2867101599cdba75b53b4e0578c7345f",
      "parents": [
        "7aacb78d8d049af5e9949de9fc34be4650b5b176"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 24 22:56:29 2020 +0000"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\nMerged-In: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "86dc61807a68592cb1b3b42a848bfb8b6451b6e8",
      "tree": "7228698a7cfa0fa8697ac6b4614199262db4b8d6",
      "parents": [
        "11ac2dfe77c87de985871b6a3c3cce29f9ac9252"
      ],
      "author": {
        "name": "Paras Nagda",
        "email": "pnagda@codeaurora.org",
        "time": "Tue Oct 27 13:01:47 2020 +0530"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Nov 06 21:45:01 2020 -0800"
      },
      "message": "NuPlayerRenderer: Reset negative media time to zero\n\nReset negative media time to zero before call is made to\nMediaclock\u0027s setStartingTimeMedia().\n\nTest:run android.mediastress.cts.HEVCR1080pAacLongPlayerTest#testPlay00 on gsi\n\nBug: 170621757\nBug: 171945667\nBug: 170797642\nBug: 171562715\nBug: 171850618\nChange-Id: I2c405007b38229038119760423156bd53a2701c0\n"
    },
    {
      "commit": "db09dbcbde810f0f430f06c67d654a7bada80a9c",
      "tree": "10993753d1ac58da3918d0dd79c039a652eab596",
      "parents": [
        "7ec362b7ec959c6e3b4ff99633667d2553bba34a"
      ],
      "author": {
        "name": "Daniel Bonnevier",
        "email": "daniel.bonnevier@sony.com",
        "time": "Wed Aug 19 15:54:49 2020 +0200"
      },
      "committer": {
        "name": "Edward Savage-Jones",
        "email": "edward.savage-jones@sony.com",
        "time": "Mon Oct 12 19:42:48 2020 +0200"
      },
      "message": "Add a null check in RTSPSource::stop\n\nThis was causing a nullpointer dereference in stop.\n\nBug: 170643945\nTest: pass cts tests\nChange-Id: I17966dcae10136bf114b1b1e2446e9ea051f8517\n"
    },
    {
      "commit": "375283dd6031a71e44fc17efad05b741302c78e5",
      "tree": "da9cbab41fb7a3610201cfe17d09d7a5e9d3a37e",
      "parents": [
        "b77e219423638bd958a5673dba017ea72aaa2e39"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Aug 21 18:14:43 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Tue Sep 15 18:02:58 2020 +0000"
      },
      "message": "Add package name when creating AudioTrack.\n\nThe package name can be used when starting an external vibration, which\nis used by vibrator service to check if the application has the\npermission to start vibration.\n\nBug: 165910728\nBug: 162343845\nTest: atest AudioTrackTest MediaPlayerTest\nTest: start audio-coupled-haptic playback\nChange-Id: I6d12c4e141c037ee94ee79cbb9bf537421ec9507\nMerged-In: I6d12c4e141c037ee94ee79cbb9bf537421ec9507\n"
    },
    {
      "commit": "2e40c302d6117ec6eb65f25832a71488367b4dfb",
      "tree": "ce2cff004a09076114faabf595b1a116bcb461ff",
      "parents": [
        "054de8d6440fd30238fa9330bcc038cda745b244",
        "924eccfd6f6d3aaed5db627a0bdcfcaaf9b09a18"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 08:38:54 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 28 21:23:54 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: Ie94127c1e981cb18671d5137ba0d39355d1353da\nChange-Id: Ib22ad33bda8d561af537499b6d31ab6134eeae02\n"
    },
    {
      "commit": "03bbceb9c4d1334a5349d7527885f7e188ab9dde",
      "tree": "cd61c8d32b9c19ae2236ae25b9df78935f61a97c",
      "parents": [
        "d092df14c28ee2909e353092793f7f205b942ea1",
        "30d531636688ac478116ba4b7600c9b5f24b4bf4"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Aug 04 15:30:26 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Aug 05 17:39:28 2020 +0000"
      },
      "message": "Merge QQ3A.200805.001\n\nBug: 162879794\nMerged-In: I996d9ad9eaf0e52992b7f9e10fd94a94c350ad73\nChange-Id: I2c8cc8f9337639e22ea3affeeab586442bbffdda\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": "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": "82f267012f29089c284340868de7375e77510e62",
      "tree": "fc2fe7adf2c022af88bdeddb63deb2baf4a8e5fb",
      "parents": [
        "f191963f5645f59390b640136fd928e5a492aa84"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Wed May 20 16:49:23 2020 +0100"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Jun 10 00:35:54 2020 +0000"
      },
      "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(cherry picked from commit aad519df7fe3b69c8247669ea77ce339a44e8c51)\n(cherry picked from commit 6aaef5a99f15da847a8c55a137bfc6263829e8ff)\n"
    },
    {
      "commit": "f191963f5645f59390b640136fd928e5a492aa84",
      "tree": "0039e37227cb90eb114817f08da26bfa9d4a5d89",
      "parents": [
        "7df13bfc992178008d56a01f79f8effc5b1504c9"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 04 16:22:15 2020 -0700"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Jun 10 00:35:49 2020 +0000"
      },
      "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\nMerged-In: I75f29a6254c5eab5d4f524ee7a7ef59f93a0b405\nChange-Id: Ia2e68ef616e249a6e8746b9068f22bd208a0ffc8\n(cherry picked from commit e5767553f55fb30d9d58ba211ec68e64a6266e52)\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": "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": "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": "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": "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": "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": "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": "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"
    }
  ],
  "next": "817fc5bbbec408d13bbfb23be1f22ea0e1d5d041"
}
