)]}'
{
  "log": [
    {
      "commit": "56786ac1035b158c23c150884d2d6415f9fbd1ea",
      "tree": "309e190927e12f9076359905ea5e2258f25700a1",
      "parents": [
        "445b895828747b82170610a75598a0615025918c"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 15:24:36 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 15:24:36 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  apex/testing/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.bp\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/plugin/Android.bp\n  media/codec2/hidl/plugin/samples/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/fuzzer/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/hapticgenerator/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.bp\n  media/libheif/Android.bp\n  media/libmedia/Android.bp\n  media/libmedia/tests/codeclist/Android.bp\n  media/libmedia/tests/mediaplayer/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/libmediatranscoding/transcoder/Android.bp\n  media/libmediatranscoding/transcoder/benchmark/Android.bp\n  media/libmediatranscoding/transcoder/tests/Android.bp\n  media/libmediatranscoding/transcoder/tests/fuzzer/Android.bp\n  media/libnbaio/Android.bp\n  media/libnblog/Android.bp\n  media/libshmem/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/renderfright/Android.bp\n  media/libstagefright/renderfright/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/MtpFfsHandleTest/Android.bp\n  media/mtp/tests/MtpFuzzer/Android.bp\n  media/mtp/tests/PosixAsyncIOTest/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  media/utils/tests/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/config/tests/Android.bp\n  services/audiopolicy/engine/config/tests/resources/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/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/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/fuzzer/Android.bp\n  services/audiopolicy/fuzzer/resources/Android.bp\n  services/audiopolicy/managerdefault/Android.bp\n  services/audiopolicy/service/Android.bp\n  services/audiopolicy/tests/Android.bp\n  services/audiopolicy/tests/resources/Android.bp\n  services/camera/libcameraservice/Android.bp\n  services/camera/libcameraservice/fuzzer/Android.bp\n  services/camera/libcameraservice/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/mediatranscoding/tests/TranscodingUidPolicyTestApp/Android.bp\n  services/minijail/Android.bp\n  services/oboeservice/Android.bp\n  services/tuner/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  camera/Android.bp\n  camera/ndk/Android.bp\n  media/ndk/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\nChange-Id: I4e4ecdbb43c90f5c3cd8e5ccec51b39fa0b5ae9b\n"
    },
    {
      "commit": "5739fff71185219a5dcc56a12620948164287608",
      "tree": "8f123bc9e9ad5d3ebc0aee78a2ed7bb3b1dbc07b",
      "parents": [
        "5530dd3df904c1b22ee4098bec1b801c379b8d4f"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 11:40:14 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Feb 25 11:45:35 2021 -0800"
      },
      "message": "Revert \"[LSC] Add LOCAL_LICENSE_KINDS to frameworks/av\"\n\nThis reverts commit 3908e7be0b90e95ffb1f0e3db9274b2cbef57728.\n\nThis reverts commit c837504ed5b9c708896bb97b1ef9225c376816a7.\n\nThis reverts commit 948e6aace91d16acfaa97763c7228029a1c2afe0.\n\nChange-Id: Ib53daa5debdae7062155add5a70a5b3d5fcd1050\n"
    },
    {
      "commit": "619e1845cf79a433b5f7e00e4813cad1199e5d96",
      "tree": "0bcbd5001b75df7120774d957512692b9e65cce6",
      "parents": [
        "80dd5dd4bda566db6351a093fce396e9e2000bac",
        "3f94b8d0795780ab49c35dda94ffe50d57e835f3"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Feb 23 22:51:38 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 23 22:51:38 2021 +0000"
      },
      "message": "Merge changes I4a6854ee,I12af66ef,I5b41cbe2 am: 3107a0bb93 am: 7f944c9c0b am: 3f94b8d079\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1591126\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I03e58c81c70be30be2233d9d9e8365fe53025228\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": "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": "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": "c837504ed5b9c708896bb97b1ef9225c376816a7",
      "tree": "4b86c06c7fd70680e0482475807ca8f19f00502b",
      "parents": [
        "6d858b5665aeea773ce10d81fd875a80fdb09b85"
      ],
      "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": "Wed Feb 17 12:43:41 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: I8360756b326b891b56629127091540310851c941\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "18a79124503d4aa07ba3f81d467fa65dfbc12d51",
      "tree": "82ba43693b81cd229dc22d21023f5d44a99876bf",
      "parents": [
        "b3ce44820908fd4d095e3eb9657c60f508bad4b3"
      ],
      "author": {
        "name": "Jaideep Sharma",
        "email": "quic_jaidshar@quicinc.com",
        "time": "Wed Nov 04 16:30:05 2020 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 20:26:10 2021 +0100"
      },
      "message": "nuplayer: handle setPlaybackSettings on direct tracks.\n\nsetPlaybackSettings (playback rate) is not supported\non an AudioSink opened with DIRECT flag.\nQuery the sink for the flags it was opened with and\nrestart audio when setPlaybackSettings gets called on\nan AudioSink which was opened with DIRECT flag\nfor unsupported playback rates.\n\nBug: 111196161\nTest: manual audio smoke tests.\n\nChange-Id: Ibfeb9ae32ccece003ebc48201ea5d9eeba3fad6e\n"
    },
    {
      "commit": "2eef13e15a11cf0c3494e680673dbe5400b99746",
      "tree": "ed363a43f4cf733ee7ca97f5e36153b56f2d4620",
      "parents": [
        "0675e5651ab2a278125ef292d4e8ad6536b88ce9"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Fri Jun 12 17:24:21 2020 +0900"
      },
      "committer": {
        "name": "Josh Hou",
        "email": "joshhou@google.com",
        "time": "Wed Jan 13 10:16:51 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\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": "5a75c07af304d025814fdb63588b6d2b8de011bb",
      "tree": "55aa62f49e8ff6d6d4b66094c60eba21681bc18c",
      "parents": [
        "f918465f3b4c68a56167530cc37746d1cc616519",
        "4bdc8012ddc888e7a23f931b01ee550c11a1c93a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 14 03:03:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Nov 14 03:03:03 2020 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Reset negative media time to zero\" am: 75ea8d08bf am: f8c5e6a793 am: 77aaf7a96a am: 4bdc8012dd\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1491239\n\nChange-Id: Ibf0707763a962358eec8c463e168b9811a5e3438\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": "7adaefea55a905fb07257685f460609c3bd72566",
      "tree": "40f5465faa1f82c355f4c28dc4d4d8a7d1eaf8a2",
      "parents": [
        "c9ff3299caae6d3732225ade5708ad780a78d19d",
        "932ca9fb417823e1ec71e2ef18c84a69ea33f03e"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Nov 04 00:16:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Nov 04 00:16:50 2020 +0000"
      },
      "message": "Merge \"Add a null check in RTSPSource::stop\" am: 2a692162a4 am: 40db8afe2a am: 371bfe9628 am: 932ca9fb41\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1456267\n\nChange-Id: I460e8d9160db16bf76e2b5b1c57c07e9536f4e29\n"
    },
    {
      "commit": "db09dbcbde810f0f430f06c67d654a7bada80a9c",
      "tree": "10993753d1ac58da3918d0dd79c039a652eab596",
      "parents": [
        "7ec362b7ec959c6e3b4ff99633667d2553bba34a"
      ],
      "author": {
        "name": "Daniel Bonnevier",
        "email": "daniel.bonnevier@sony.com",
        "time": "Wed Aug 19 15:54:49 2020 +0200"
      },
      "committer": {
        "name": "Edward Savage-Jones",
        "email": "edward.savage-jones@sony.com",
        "time": "Mon Oct 12 19:42:48 2020 +0200"
      },
      "message": "Add a null check in RTSPSource::stop\n\nThis was causing a nullpointer dereference in stop.\n\nBug: 170643945\nTest: pass cts tests\nChange-Id: I17966dcae10136bf114b1b1e2446e9ea051f8517\n"
    },
    {
      "commit": "55773033ed1f23c4e8f3d2704002fbd0cedbf7a5",
      "tree": "54bc894243fa3c52e611c85aed75ee6677056c13",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 08 18:12:55 2020 -0700"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "ed809da358d7ac1e7b9ab10f00a12c2177a80844",
      "tree": "32a5e13f5d5fb281be9cf5b724a8b4d1f4de49e7",
      "parents": [
        "67122dfeda707c7316173973293446839cac1ee9"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Aug 17 16:53:02 2020 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 19 23:45:19 2020 -0700"
      },
      "message": "Miscellaneous fixups for VT contribution update.\n\nfixed misc. spacing and style issues\nAAVCAssembler/AHEVCAssembler: fix OOB reads in checkIFrameProvided,\n  checkSpsUpdated and dropFramesUntilIFrame\nARTPWriter: fix OOB read in SpsPpsParser, VpsSpsPpsParser and sendVPSSPSPPSIfIFrame\nARTPWriter: use KMP algorithm for VpsSpsPpsParser\nARTPSource/ARTPConnection/RTPSource: rename jbTIme to jbTimeMs\n\nBug: 165061754\nChange-Id: Iceeb3851aed0ba9b1c2c50b1a2378df06faa29d6\n"
    },
    {
      "commit": "6b0bf0bde24e3615eb9cd8c643f5c9860b26581e",
      "tree": "5b0d11e7af89fc00773c245bbcdb3b42b7bb187c",
      "parents": [
        "6b538065eef3e234c7c3b73781e5ba3b32aa83db"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Wed Oct 16 16:38:24 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:09 2020 -0700"
      },
      "message": "VT: Enhancements on RTP depacketizer (2)\n\n  - Send FIR if there was no I-frame within a sec in packetLost\n  - Fixed an issue dropped frame even it is completed. caused by\n      ABuffer marked as \u0027damaged\u0027.\n  - Provides completed I-Frame only to prevent codec stuck.\n  - Change time mapping as realtime since rtp time is already covered\n      by jitter buffer.\n  - Removed periodic RTCP:FIR requests if video call. Cause i-frame\n      insertion should happened only if video stream is broken.\n  - Give default value for uninitialize TrackInfo Value because\n    video stucked at the first frame all the times by Uninitialized\n    trash TimeScale \u0026 NormalPlaytime values make AccessUnit\u0027s ntp time\n    wrong.\n\nBug: 165061754\nChange-Id: Ied41ea57d4fa96d4c05d7f8eba3d96bcb8f3fc69\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "23b2393a25e08c7a72e5db25aa458109e62e98df",
      "tree": "d2b2a9de01ea03614700848b949171744e1aa124",
      "parents": [
        "0aedeb3a6cecb54f8ade6d01bd59d0b3f1944fcb"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Thu Jul 18 17:48:32 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:09 2020 -0700"
      },
      "message": "VT: Report all data about packet receiving up to application\n\n - A design change of RTP/RTCP recovery logic.\n - It\u0027s better to move logics about decision(ex. Call downgrading, TMMBR)\n   to application side. So all ingredients for the decision must be sent to upper layer.\n - RTP stastics will be reported to upper layer for every seconds.\n\nBug: 165061754\nChange-Id: I567a55926c27aafb2510313d9cd41acbc8110194\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "0aedeb3a6cecb54f8ade6d01bd59d0b3f1944fcb",
      "tree": "931193e73b14f17d257657217162ebad116e4b48",
      "parents": [
        "666397565bcbfbabfaca3577ca20c481ebf1d669"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Mon May 20 13:15:04 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:08 2020 -0700"
      },
      "message": "VT: Enhancements on RTP depacketizer\n\n 1) Do not merge FU pkts if rtptimes are different.\n   [Problem] There was a case that Fragmented Units of RTP be merged as\n     an one frame even Fragmented Units are has different timestamp.\n   [Solution] Added a condition to check rtptime between Fragmented Units.\n\n 2) Implementation of a new frame drop rule for p-frame.\n   [Problem] P-frame should be dropped only if FU packets damaged\n     more than half of amount of frame.\n   [Solution] Implemented a rule for p-frame drop.\n\n 3) Discards a rtp buffer that has unexpected ssrc.\n   [Problem] so many packet loss observed and video loss because about\n     4 different video stream coming at the same time.\n   [Solution] Allow only one stream that matched SSRC of first stream.\n\nBug: 165061754\nChange-Id: If840df274a6fc4b04910f9201359b7c09fd2bc85\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "7143c0771e197ed26d5a84d10624b8ea77b235aa",
      "tree": "a20e51b933b21a297aad91fe6d96ef79ff3b6442",
      "parents": [
        "d9db048e1333c330b63c8a2015d153f240c226da"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Mon Sep 23 13:31:37 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 18 02:00:08 2020 -0700"
      },
      "message": "VT: Added an interface to set JitterBufferTime.\n\nJitter buffer time can be adjusted according to packet jitter\nsituation. Jitter buffer time will be decided by upper layer\nand then RTP Assemblers just apply a value of jitter time.\n\nAdded an interface to set video-param-jitter-buffer-time.\n - Minimum jitter buffer time \u003d 40ms.\n - Maximum jitter buffer time \u003d 3000ms.\n\nBug: 144795638\nBug: 165061754\nChange-Id: Idc6ef462a91aab87c3f0ad46c504ebf0b89c36c4\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "ef2f300138c0c9a54ac0fe84b5eeebada3fbe548",
      "tree": "670df0dbd2e50779bdc3733ab831df8235621fb1",
      "parents": [
        "a069304fe522a0849b075940768fcc8fb79be6d7",
        "5fded10151a97929c20732d9b4215cf14c4572e1"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Tue Jun 30 18:00:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 18:00:49 2020 +0000"
      },
      "message": "Merge \"Fix FD ownership for local FileSource\" into rvc-dev am: 61375308e2 am: 971bb0305f am: 8796ef6a8a am: 5fded10151\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12023202\n\nChange-Id: I870497e167a8160c2d0fe041db83f28b4bf6f203\n"
    },
    {
      "commit": "85355f0e81ce401de2914c6108569c6b1a1dbb7d",
      "tree": "c89c95317bf8a84caba2cf7d87b2cbfaae2da300",
      "parents": [
        "1928cddbe98a24e173d1b83b870c67cd8f2deffb"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Sat Jun 27 22:38:45 2020 +0100"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Tue Jun 30 17:23:50 2020 +0100"
      },
      "message": "Fix FD ownership for local FileSource\n\nPlayerServiceFileSource took ownership of the GenericSource\u0027s FD and\nclosed it if extraction failed, causing a SIGABRT from fdsan. Fix this\nby dup\u0027ing the FD before passing to PlayerServiceFileSource.\n\nBug: 160136562\nBug: 159810405\nTest: manually tested SIGABRT disappears after this change\nChange-Id: I3f1f5daadba27bc75e2b550884d7bba559d6f2e7\n"
    },
    {
      "commit": "a427f198c7588c5e0422e83b868d5c691c952192",
      "tree": "5a111a1143659b3b1ddfd4c242f7bcaf89341d66",
      "parents": [
        "5ffd2fd2c9890502f7413dd83825b885d7c41a52",
        "edc4465d0f4f2623ec37c76c386cb80ea22bba50"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Fri Jun 05 12:40:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 05 12:40:40 2020 +0000"
      },
      "message": "Merge \"Clamp audio seek to non-zero timestamp\" into rvc-dev am: 7a0d96e922 am: 68460b7541 am: 68656358a6 am: edc4465d0f\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11733625\n\nChange-Id: Ica89c8ce7c2c44574d75225e0d5971faf105137d\n"
    },
    {
      "commit": "8a5bfc35916863759285af1a292d8989b6421c59",
      "tree": "2c9c4b79e52633bb80d4e59a260dce95fe2c8819",
      "parents": [
        "6d5a5c10a5b9389cd84b5a10d5814e65eeb004aa"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Thu Jun 04 15:20:27 2020 +0100"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Fri Jun 05 09:07:09 2020 +0100"
      },
      "message": "Clamp audio seek to non-zero timestamp\n\nSeeking first seeks the video source, then uses the \u0027resolved\u0027 seek\nposition for video to seek the audio source. If an edit list is handled\nby prerolling from a preceding keyframe in the video track, this can\nlead to negative resolve seek positions from video, and seeks to\nnegative values are ignored.\n\nClamp the resolved seek position from the video source to be\nnon-negative so that the seek is not ignored. This fixes looping for\nfiles with edit lists that require prerolling from before zero, though\nvideo rendering needs to catch up after looping back to zero.\n\nBug: 156762034\nTest: Manually verified using the APK in b/156762034#comment1\nChange-Id: I59753b36d0f1272d4a7b4292b5edd787f9575dfa\n"
    },
    {
      "commit": "7cf06d26eb599939e2b400fbd67b038de08103f7",
      "tree": "15a0bed0180f8762d7c3df8949c370c481ccaa52",
      "parents": [
        "610dda9535bda6cbba9084a7a3c04b768de6f9b5",
        "e2288aa957f6b49b33760acfd7c54f9e95d89a1e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 21 04:59:54 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 21 04:59:54 2020 +0000"
      },
      "message": "Merge \"Fix potential use-after-free issue\" into rvc-dev am: 557bdaa8d2 am: 282b2897ed am: 95a1d0514b am: e2288aa957\n\nChange-Id: I589c8b50ca32a6e5f6b5c8743069cfa509ff6a4d\n"
    },
    {
      "commit": "aad519df7fe3b69c8247669ea77ce339a44e8c51",
      "tree": "9daf955e79a48d66549b365794e9342bdf25c4ca",
      "parents": [
        "e658962c4246669810fc756b098f7fee8d220659"
      ],
      "author": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Wed May 20 16:49:23 2020 +0100"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Wed May 20 16:59:34 2020 +0100"
      },
      "message": "Fix potential use-after-free issue\n\nNuPlayerListener passed this out of its constructor to\nIStreamSource-\u003esetListener, and it would get wrapped in a smart pointer,\nthen free\u0027d when that method returned.\n\nMove the setListener call after instantiation of NuPlayerListener to\navoid passing this out of the NuPlayerListener constructor.\n\nTest: tested in presubmit\nBug: 151456667\nChange-Id: I996d9ad9eaf0e52992b7f9e10fd94a94c350ad73\n"
    },
    {
      "commit": "fe37b7e7d7b1f83d5ab8d7b9216c35ccbd013338",
      "tree": "848dc5be44cf0fa3927cffc3e6c054c11786f37a",
      "parents": [
        "47075395b1ddb6b6d1cb6146104a685f1a40dffe",
        "14fe0af61a3337725b56703fac86f205a76e950d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 11 22:08:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon May 11 22:08:50 2020 +0000"
      },
      "message": "Merge \"Expand nuplayer mutex for mediametrics management\" into rvc-dev am: d6bca9b588 am: 68b6105fd9 am: 55470ea17f am: 14fe0af61a\n\nChange-Id: I905f124eb7743acdb15ffddd81738d19caa758ee\n"
    },
    {
      "commit": "e99bcf2fa81dc5192349f3d222d46e4fbf23f919",
      "tree": "5d6257291e11aafdc9bb3a727714aa067dcb03bc",
      "parents": [
        "07f031e889d78edd549d8ad4254cd31902b46479"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 04 16:18:33 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat May 09 12:23:53 2020 -0700"
      },
      "message": "Expand nuplayer mutex for mediametrics management\n\nrefactor some mutex for how nuplayer sets up mediametrics data.\nexpanded locking to eliminate a couple race conditions.\n\nBug: 151644303\nBug: 151643722\nTest: poc attached to bugs\nChange-Id: I75f29a6254c5eab5d4f524ee7a7ef59f93a0b405\n"
    },
    {
      "commit": "f8f9e3d9affbbf95cbdcfeaecc6a189464f6e492",
      "tree": "50acc7d8761f1f5819aff22118d7d6f65b73b5b5",
      "parents": [
        "1af407a2298ebb369cb781658e483724f710c7cc"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 08:13:10 2020 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Apr 27 16:44:18 2020 -0700"
      },
      "message": "media: further miscellaneous fixes to VT contribution\n\n- remove unnecessary shared library dependencies\n  (this frees up about 2MB runtime space)\n- ASessionDescription: pull out default AS as a constant\n- ASessionDescription: populate frame size only for video session\n\nBug: 153907802\nBug: 121230209\nTest: build\nChange-Id: I29d38b96d794615f4aead2bb98d147831070d25c\n"
    },
    {
      "commit": "7630aa995d0873750dddaa18dd7abd71d77ec535",
      "tree": "55be667516b7daa5464847fbb9c323358420a7a5",
      "parents": [
        "7259511be29e0b52480a259e64ecbd02246cee6e",
        "1982933a51657282434879faea07ceba929defa5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 10 23:06:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 23:06:31 2020 +0000"
      },
      "message": "Merge changes from topic \"SLSI_VT\"\n\n* changes:\n  media: miscellaneous fixes to VT contribution\n  VT: DSCP implementation.\n  VT: SFR: Added missing rtp-param-opponent-id in stagefright.\n  VT: SFP: bind socket to specific network\n  VT: SFR: bind socket to specific network.\n  VT: Remove assertion in send() function.\n  VT: ARTPConnection: added an event to notify first-rtcp packet.\n  VT: Print assembler queue status for the first frame\n  VT: Enlarge jitter buffer range from 200ms to 300ms\n  VT: Postpone bitrate down for considering camera switch\n  VT: Rotation parameter should be applied only for video call.\n  VT: Add OMX_Video_ControlRateConstant feature\n  VT: OMX_ErrorStreamCorrupt should be skipped only for RTP scenario.\n  VT: Retain RTP sequence number between SFR stop and start\n  VT: Skip unknown payload type packet\n  VT: Update payload value at runtime for SFR\n  VT: Add FIR, PLI reaction\n  VT: Add auto downgrade function\n  VT: Add TMMBR feature for RTP Rx side\n  VT: Add TMMBN feature on RTP Tx side\n  VT: SFP: H264: CVO implementation for Rx side\n  VT: SFR: H264: CVO implementation for Tx side.\n  VT: Change socket option to REUSEADDR\n  VT: Add TMMBR function on Rx\n  VT: Recorder gets payload type value from param\n  VT: Player/Recoder gets its SSRC ID from param\n  VT: Add RTCP feedback message(TSFB \u0026 PSFB) parser to RTP source\n  VT: StagefrightRecorder: Added a function for TMMBR\n  VT: AHEVCAssembler: Supports H265(HEVC) for Rx.\n  VT: ARTPWriter: Supports H265(HEVC) for Tx.\n  VT: ARTPWriter: Supports ipv6\n  VT: ARTPSource: Jitter buffer implementation.\n  VT: ARTPConnection: Supports ipv6\n  VT: SFP: Implements interface for RTP parameters.\n  VT: RTPSource: Added a component as an one of NuPlayer::Source\n  VT: ARTPConnection: bind RTP/RTCP sockets to specific IP.\n  VT: ASessionDescription: Added SDPStringFactory.\n  VT: SFR: added parameters to handle RTP IP Addresses through setParameters().\n  VT: ARTPWriter: Enhanced ARTPWriter as a RTP output\n"
    },
    {
      "commit": "1982933a51657282434879faea07ceba929defa5",
      "tree": "69012e70e440591a0033c1551a282c354f053d0b",
      "parents": [
        "2c7a0cc74ec5dd94f31f585c728f2cef5cd5f099"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 08:13:10 2020 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 01 08:19:05 2020 -0700"
      },
      "message": "media: miscellaneous fixes to VT contribution\n\n- fix MediaSource.h path\n- fix setDataSource binder code\n- use MediaCodecConstants instead of OMX/ACodec constants\n- fix spacing\n- fix typos\n- remove unused code\n- commented some tricky code segments\n- AAVC/HEVCAssembler: re-read next buffer if buffer was deleted\n- RTPSource: pull out constants kMinVideoBitrate and kBufferingPollIntervalUs\n- RTPSource: check state early in prepareAsync\n- RTPSource: fix potential null dereference in setSource\n- ARTPAssembler: make showing queue runtime configurable via debug.stagefright.rtp bool property\n- ARTPWriter: fix security issues: protect against reading OOB in\n  sendSPSPPSIfIFrame and StripStartcode\n- ARTPWriter: free buffers early in destructor\n- ARTPWriter: create PPS buffer only if there is PPS\n- ARTPConnection: fix security issues: protect against reading OOB in\n  parseRTPExt, parseTSFB, and parsePSFB. Also remove remote null-dereference.\n- AHEVCAssembler: fix security issues: protect against reading OOB in\n  addFragmentedNALUnit\n\nBug: 121230209\nTest: build\nChange-Id: Iada8b878e396452c1d281c60f3754e13e34bcddb\n"
    },
    {
      "commit": "88068dcd814f901e37561ad916ec0d7fa0c686a8",
      "tree": "69b98c931573394383f049d0e573117c0726e470",
      "parents": [
        "0f0ba3996ab69e17da6494c6cdea87d07678ccce"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Fri Mar 29 15:04:10 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: SFP: bind socket to specific network\n\nThis will call an API of android_setsocknetwork().\n\n\"rtp-param-set-socket-network\" is added to update routing table\nfrom media engine of android.\n\nRTP/RTCP sockets will be bound to the networkhandle provided\nthrough the above parameter.\n\nThis patch is effected only for Rx(NuPlayer) session.\n\nBug: 121230209\nChange-Id: Id14708049e684f8dd5711c2b9fefb67c6cafbfc6\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "73f6fc82b8a0dd45759e5b8139bccea5909d5cb4",
      "tree": "398a55c923c4ece28b102d33c8c15e4855fb26a4",
      "parents": [
        "87130afc44b76aff01c97a0014bacbaa10bc8a12"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Aug 23 16:19:58 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: ARTPConnection: added an event to notify first-rtcp packet.\n\n[Related JIRA] RAMEN9610-4400\n\n[Problem] Call downgrade is not triggered from UE if there is no\nrtcp packet received even call is started long time ago.\n\n[Cause] There is no logic for auto-downgrade if there is no any single packet.\n\n[Solution] A new logic for auto-downgrade implemented both\nStagefrightPlayer and IMSService.\n\nBug: 121230209\nChange-Id: I44bf7131ba2cdb7a1c8760b62ea81427b43afcb1\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "5e27b1b884a5201194803f0cea2634e1a7c97515",
      "tree": "bc6976023c29c726e710d8659117876475b90e00",
      "parents": [
        "16121f6259f69e284f80c94342264156d03d90cd"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Jul 12 15:36:03 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: OMX_ErrorStreamCorrupt should be skipped only for RTP scenario.\n\n[Problem]\nAOSP take care OMX_ErrorStreamCorrupt as an error.\nMediaplayer will be stopped once an error occured.\n\n[Cause]\nOMX_ErrorStreamCorrupt is not handled as an error due to\na patch from video call scenario.\n\n[Solution]\nOMX_ErrorStreamCorrupt should be skipped only for\nvideo call(RTP) scenarios.\n\nBug: 121230209\nChange-Id: I5e1fe7f993776a74619ddc88d664799a54bd604e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "d194b8cd0354aef669ed318ea748f253394e5582",
      "tree": "dbce97e89676d877e8bf155de99157878acbcc16",
      "parents": [
        "2c987f1490b2c2ed6bdc0545f2b4bcaa3706b32b"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Sun Mar 17 22:04:14 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add auto downgrade function\n\nSome network requires force-downgrading to audio call when video packet status is bad.\n\n1. ARTPSource reports bitrate value for every unit time.\n   If low bitrate duration stays long, ARTPConnection triggers auto downgrading message.\n   The way of passing message is same as TSFB \u0026 PSFB.\n\n2. Add auto downgrade callback message when connection lost.\n\nBug: 121230209\nChange-Id: I04e3f4e1955852c61540f35c763a40be3e7b639b\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "2c987f1490b2c2ed6bdc0545f2b4bcaa3706b32b",
      "tree": "e206a752ca5169ae69458e0dd29ab205df5151f4",
      "parents": [
        "6b46b989cfc0249c3b18602113f1523408a813d8"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Sun Mar 17 22:04:14 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add TMMBR feature for RTP Rx side\n\n1. Seperate TMMBR sending block from RR sending block.\n   At least, TMMBR is sent per 5 sec.\n   But TMMBR is sent per 1 sec if TMMBR\u0027s bitrate is chaged.\n\n2. TMMBR max value comes from SDP AS value\n\n3. QualManager is separated from ARTPSource.h\n\nBug: 121230209\nChange-Id: Ie0abb6e639f50ad8ee3081c3d5e76dc07e80d5d1\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "b0225aabec7a56d462cce29c80aa60d88c898a55",
      "tree": "6d5c215f12a7eafcea8f29ce568866467dd02843",
      "parents": [
        "11340c4000f14dfa520d11741cf56f04d391a2c6"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Fri Apr 20 14:00:15 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: SFP: H264: CVO implementation for Rx side\n\nCVO(Coordination of Video Orientation) implemented for H264.\n\nSupport Coordination of Video Orientation (CVO) feature that carried in RTP Header extension.\nit parses a device degrees(orientation) in RTP extension that remote sent.\n(6.2.3 of 3GPP Release 12 TS 26.114)\n\nOnce AAVCAssembler parsed a video degress from RTP(CVO) extension,\nA native window will be rotated as per parsed video degress.\n\nBug: 121230209\nChange-Id: I802a9e43d9ee54b7970d2541f18fb4af8022336a\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "fd179629ebea9df5375627b0243a0ba326649a2b",
      "tree": "3165885394cc78fb720a83b07c2d8e7e1ad4a978",
      "parents": [
        "6c4d871a38b359b29e79ee57943dd24d4e2386f7"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Thu Mar 22 22:39:38 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Add TMMBR function on Rx\n\nNow Player(Rx) can measure and check Rx status(bitrate \u0026 loss)\nAnd send TMMBR base on the status\n\nBug: 121230209\nChange-Id: I203ff5022ca95859c8acc662ba6cedff256a6995\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "d2875e9462623d2e985da3bf31476aceef6cf8e5",
      "tree": "ccf91e9afaa5678b06f0a68ff2e2244c1381a769",
      "parents": [
        "d3c6b32ae00e7f225abfe8266390ab4bdf8248ed"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Tue Mar 20 16:51:41 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:44 2020 -0700"
      },
      "message": "VT: Player/Recoder gets its SSRC ID from param\n\nUE should have its own SSRC ID when exchange RTP packet.\nIt is UE level id so Rx/Tx should have same ID.\nRecorder/Player are implemented separately and didn\u0027t have any method to sync the ID.\nSo upper Java Layer would send unique ID as param.\n\nBug: 121230209\nChange-Id: I11248eada31f50d278ab299f57ee42d9a3ce79be\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "d3c6b32ae00e7f225abfe8266390ab4bdf8248ed",
      "tree": "6041d08a13bb0bcd412fc331ce23dbdb8f51351b",
      "parents": [
        "48ae60d7812e4a3fdb5992a1265b1d69067eef5c"
      ],
      "author": {
        "name": "Kim Sungyeon",
        "email": "sy85.kim@samsung.com",
        "time": "Fri Mar 02 14:41:19 2018 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: Add RTCP feedback message(TSFB \u0026 PSFB) parser to RTP source\n\nParser for RTCP feedback messages (Refer RFC 4585 Ch.6)\n\n1. Parser for TranSport layer FeedBack messages. (Refer RFC 5104 Ch.4)\n   Bitrate value in TMMBR \u0026 TMMBN  must be passed on to Recorder(Tx) part for congestion control.\n\n2. Parser for Payload-Specific FeedBack messages (Refer RFC 4585 Ch.6)\n   Supports PLI(Packet Loss Indication) notification.\n\nThe value \u0026 notification are passed through ARTPConnection -\u003e RTPSource -\u003e NuPlayer -\u003e JAVA layer\n\nBug: 121230209\nChange-Id: I85bfa0c359a60b42bcdf062f8a158db2ce69aa5a\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "28225abc2693b746889cdd39ea570a93a7ce19a5",
      "tree": "054f265f284c69fce972ba7a083f3883ed035300",
      "parents": [
        "d157b79f28aebb40be4c217c56e12de003efbbe8"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Jan 24 20:31:19 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: SFP: Implements interface for RTP parameters.\n\nRTP parameters will be given to NuPlayer like below.\nThis is same like how setParameters() working in case of\nStagefrightRecorder\n\n video-param-decoder-profile\u003d1;\\\n video-param-decoder-level\u003d512;\\\n rtp-param-local-ip\u003d127.0.0.1;\\\n rtp-param-local-port\u003d1234;\\\n rtp-param-remote-ip\u003d127.0.0.2;\\\n rtp-param-remote-port\u003d4321\n\nNuPlayer will create RTPSource.class instance as a part\nof a source component of media engine if it gets RTPParams\nfrom application layer.\n\nBug: 121230209\nChange-Id: If04ebb09d4f28d8eeb6a1a920a833129828a6ac4\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\n"
    },
    {
      "commit": "d157b79f28aebb40be4c217c56e12de003efbbe8",
      "tree": "5716a7694644c0bd71e36429ecec58cb80ccf29c",
      "parents": [
        "3baf34315c1f2f277437a5b240883e9e1e80a0e6"
      ],
      "author": {
        "name": "Byeongjo Park",
        "email": "bjo.park@samsung.com",
        "time": "Thu Jan 24 20:56:37 2019 +0900"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 17 16:40:43 2020 -0700"
      },
      "message": "VT: RTPSource: Added a component as an one of NuPlayer::Source\n\nRTPSource added to be used for RTP scenario.\nThis can be created by NuPlayer::setDataSource(String\u0026 rtpParams).\n\nCode implementation includes specifications of RFC 3550, RFC 4566\n\nFollowing parameters should be provided to setup RTPSource.\n\n- video-param-decoder-profile : decoder profile to be set to codec.\n- video-param-decoder-level : decoder level to be set to codec.\n- video-param-width : video width to be set to codec.\n- video-param-height : video height to be set to codec.\n- rtp-param-local-ip : local-ip that the RTP/RTCP sockets be bound.\n- rtp-param-local-port : local-port assigned that the RTP/RTCP sockets be bound.\n- rtp-param-remote-ip : remote-ip that the RTCP socket where to sent.\n- rtp-param-remote-port : remote-port assigned that the RTCP socket where to sent.\n- rtp-param-payload-type : Section 5.1 of RFC 3550, Payload type value assigned for the RTP session.\n- rtp-param-as : Section 5.8 of RFC 4566, Maximum bandwidth belong to this session.\n\nBug: 121230209\nChange-Id: I9fdc71a854d441703c8dd2fc8115de36a5e9958e\nSigned-off-by: Byeongjo Park \u003cbjo.park@samsung.com\u003e\nSigned-off-by: Kim Sungyeon \u003csy85.kim@samsung.com\u003e\n"
    },
    {
      "commit": "6597d73adf83bbf9bb22adb883da5330d1759a8a",
      "tree": "c77ee775a02f310b2ec3efbab56e3c9fd27e18e5",
      "parents": [
        "bdccc992097e538da25e29a6b663698488539a44"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Fri Feb 28 22:38:25 2020 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Mon Mar 16 10:06:23 2020 -0700"
      },
      "message": "Migrate to AIDL generated native power manager interface.\n\nMigrate to AIDL generated native power manager interface, use\naidl-cpp generated cpp header file from IPowerManager.aidl.\n\nBug: 149479744\nChange-Id: Icf4e71b5e78a6e3101b423686556ac5393c5e91c\n"
    },
    {
      "commit": "3784ab5009e070491c12bbddbf4948eddeac3de6",
      "tree": "04fe406dfa253947440716bbbe234a84bf9b22d5",
      "parents": [
        "ae3b9539cead752af48515f2e43c9985c3fc04e6"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 17:18:24 2020 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 18 20:03:09 2020 -0800"
      },
      "message": "Accommodate the move of AudioPlaybackRate to system/audio.h\n\nAudioPlaybackRate is now defined in system/audio.h\nas \u0027struct audio_playback_rate_t\u0027 (in global namespace).\nSimilar for the related enums.\n\nTo accommodate the existing code, introduce AudioPlaybackRate\nas a typedef in the \u0027android\u0027 namespace.\n\nUpdate code that was forward declaring AudioPlaybackRate\nas it\u0027s not a struct anymore.\n\nBug: 133526565\nTest: m\nChange-Id: Iba20f1de1e8779cd78ac4573f2082416f2b428e2\n"
    },
    {
      "commit": "7c96ea7ff84e1084332548583841735b694bfebd",
      "tree": "eb5d7c1bcb91cea21469e46b7c014ae44635a217",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 10 15:46:22 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 16 15:55:18 2020 -0800"
      },
      "message": "Remove mediametrics include symlinks\n\nBug: 143245419\nTest: build\nChange-Id: I6c836e60c0fe078f5ab7370aec156bdd6e8dcbf0\n"
    },
    {
      "commit": "2efe5c702e0401016eb7f6bce583751905ebc6f1",
      "tree": "2653c1b468dddfdc0b20d84568df37db47d2b004",
      "parents": [
        "b54d7da58b5458e268468dc4ad5ce299e2dfa7e6",
        "f4b7e72b55f1d0a6e54eee10694901153e235850"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:38:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:38:15 2020 +0000"
      },
      "message": "Merge \"Adds a null check in NuPlayer::closeAudioSink.\" am: 54b00e6d06 am: 8b0bb18079 am: f4b7e72b55\n\nChange-Id: I3b5a63825217ec0e387f58d807809ef978b413a1\n"
    },
    {
      "commit": "f4b7e72b55f1d0a6e54eee10694901153e235850",
      "tree": "d9d6aff45affb65224688d9f5f4db23deedf9883",
      "parents": [
        "f980ebd16cb49f06c9ef983d8ba0723045945061",
        "8b0bb18079358c9d7f9735e0d280c8c04ebf81f8"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:22:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 08 07:22:35 2020 +0000"
      },
      "message": "Merge \"Adds a null check in NuPlayer::closeAudioSink.\" am: 54b00e6d06 am: 8b0bb18079\n\nChange-Id: I6b584b9ae601206f0d481f391117dee8a4bafd57\n"
    },
    {
      "commit": "1e0d88b26a3605d4c620932f4bf9af54e37da376",
      "tree": "a66dfdc7b8bb43301d7ba075e9599f61de0ec023",
      "parents": [
        "982ecd07f4da2f93704aa84a3b4f61fa79466b8b"
      ],
      "author": {
        "name": "Daniel Norman",
        "email": "danielnorman@google.com",
        "time": "Tue Jan 07 15:02:54 2020 -0800"
      },
      "committer": {
        "name": "Daniel Norman",
        "email": "danielnorman@google.com",
        "time": "Tue Jan 07 15:05:10 2020 -0800"
      },
      "message": "Adds a null check in NuPlayer::closeAudioSink.\n\nThis was causing a null deref in cts/security/gce-all.\n\nBug: 142652210\nTest: Run cts/security/gce-all, observe no more crash.\nChange-Id: If2003b650f69e88825219113ce1b7d70edc4731d\n"
    },
    {
      "commit": "cb257970c1921db3cbfd15823ef0a561257b4690",
      "tree": "67a00104391a68c4eafff2d125b4c349fb4f8011",
      "parents": [
        "dc857dc042bc8f111449faffe9a10aed34bfa24c",
        "a7a3bbdf43253ee759f8ebaaa40fab68b66fba55"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 20 20:38:51 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 20 20:38:51 2019 +0000"
      },
      "message": "Merge \"Check actual read bytes for TS packets\" into qt-qpr1-dev am: 8f72d008d0 am: a7a3bbdf43\n\nChange-Id: I65cf62f55d0d5c34eb35440dfd3528ae4b575271\n"
    },
    {
      "commit": "1eba80de4e733a5222459020517ed93327966640",
      "tree": "59430bb806951a0ed4f52f63b9ec770c967e35ac",
      "parents": [
        "9ed54cdf4d8970bdeb88e4488dabb56e1d6c79b7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 09 13:20:10 2019 -0700"
      },
      "committer": {
        "name": "Bryan Ferris",
        "email": "bferris@google.com",
        "time": "Fri Dec 20 10:33:53 2019 -0800"
      },
      "message": "Check actual read bytes for TS packets\n\nCheck actual bytes read when feeding the data to TS parser.\n\nBug: 140177694\nTest: poc in bug; StreamingMediaPlayerTest\n\nMerged-In: I4b498fe375af657e17838e5839e6348e1463d559\nChange-Id: I4b498fe375af657e17838e5839e6348e1463d559\n"
    },
    {
      "commit": "7291da64f5c19d4f9144014601bca58f7562ddef",
      "tree": "1ba21f95d03a85b24a699d39736d5c4bf481c2f7",
      "parents": [
        "94e872e6894dce7d89954d0515c140ec626d20ba"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 13:01:55 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 15:32:57 2019 -0800"
      },
      "message": "Remove header symlinks\n\nTest: build\nChange-Id: Ie90eb4fc0233ae6ee152a7bccb182a223b2ceff0\n"
    },
    {
      "commit": "94e872e6894dce7d89954d0515c140ec626d20ba",
      "tree": "3b8a0acc0c514e139b767f255e77a23fbf7d55c2",
      "parents": [
        "990cc725040484dfd233280eedeb7de2da4f72e4",
        "f27e987d277c186010e8bdd1d5e781158b31f9af"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 17 22:52:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 17 22:52:33 2019 +0000"
      },
      "message": "Merge \"Naming consistency: MediaAnalytics to MediaMetrics\""
    },
    {
      "commit": "f27e987d277c186010e8bdd1d5e781158b31f9af",
      "tree": "87703f33fe40f06c2faa78daa4105bb6cb8db79d",
      "parents": [
        "b7b870db0c6cc0c6375b154400a813b84f5056b4"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat Dec 07 06:28:46 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Dec 17 11:20:57 2019 -0800"
      },
      "message": "Naming consistency: MediaAnalytics to MediaMetrics\n\nBug: 145780674\nTest: build, boot, dumpsys media.metrics\nTest: atest mediametrics_tests CtsNativeMediaMetricsTestCases\nChange-Id: Icbfa98da9e61702aee9a1d807b5e126b4b9c6458\n"
    },
    {
      "commit": "51207514eb834ee1a3c1d3218a9615116dc15bab",
      "tree": "1af90c549976b7d12f5b776daf1345853f2ade06",
      "parents": [
        "fa12f52ba2c0f528277bfe7d7543f5f53361850c"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Dec 03 16:24:48 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Dec 13 09:27:38 2019 +0900"
      },
      "message": "unique_fd is passed by value in AIDL interfaces\n\nFileDescriptor type in AIDL was translated into const unique_fd\u0026 in C++.\nNow, it is unique_fd, i.e. passed by value, to make it easier to keep it\nbeyond the scope of the call.\n\nBug: 144943748\nTest: m\nChange-Id: Ic6b1a4cba71c0fedb206b5ca3fb65b9944bbd69f\n"
    },
    {
      "commit": "dab79b3d09783e5053dc91b860eac06bd415cbfd",
      "tree": "229183838216adea270164035e0544354f4bfb5b",
      "parents": [
        "68db3a07ae337de45b82c6e45d41c2c325f8e2dd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 18 08:25:47 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 21 14:15:00 2019 -0800"
      },
      "message": "AIDLize MediaExtractorService\n\nUse .aidl instead of handwritten binder code for MediaExtractorService.\n\nTest: build, CTS\n\nChange-Id: Ibc93eca9128552c23359218ac3bf12319391e1b1\n"
    },
    {
      "commit": "b1150c2023250d8d72b3ac78d5f868046f3831c8",
      "tree": "52c2f340dd8fd0c0b9518ece9b951933a58d8749",
      "parents": [
        "c932c7fbae25c19c8c8aeecae3bdec6cdbe7be3a",
        "28c2ed3985ebf92177d8002a859409fb93d36ae0"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Nov 06 02:05:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 06 02:05:49 2019 +0000"
      },
      "message": "Merge \"DrmUtils: refactor IDrm/ICrypto creation\""
    },
    {
      "commit": "3253f2d6f3c2b1b27871aa291b0efd5db97c8c48",
      "tree": "c9c75eda60ccc0ab5ea1bc71704ae0f954fd6fed",
      "parents": [
        "afa8feb251a71eebce8c659a25202037232fbe59"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 21 14:50:07 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 31 17:43:51 2019 -0700"
      },
      "message": "MediaMetrics: Update Item serialization code\n\nAdd for bounds checking errors\nUpdate key checks to omit length, use C primitive types\n\nTest: atest mediametrics_tests, adb shell dumpsys media.metrics\nChange-Id: I1e6d5bd7a9611f6d59e15a1dbebc646405e5a018\n"
    },
    {
      "commit": "28c2ed3985ebf92177d8002a859409fb93d36ae0",
      "tree": "bd37a3ce59ef3e49c2f80ca5b39f6a6b738c2e80",
      "parents": [
        "7f84dcf500a7c98e76f95283de3a6abc0be858ff"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Oct 27 22:55:12 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Oct 27 23:06:38 2019 -0700"
      },
      "message": "DrmUtils: refactor IDrm/ICrypto creation\n\nAdded utilities to:\n* Query config for IMediaDrmService usage\n* Create remote vs local IDrm/ICrypto object based on aforementioned config\n\nBug: 134787536\nTest: MediaDrmClearkeyTest#testClearKeyPlaybackCenc\nChange-Id: I72df528c0bbd8a6dbd3c4962ac91eb89696bcaf7\n"
    },
    {
      "commit": "e67eb5dc326136815a413dbd61ac6afb92be67ff",
      "tree": "b632b9e41f7a59f9d9772a7e860abb8a0cd3a7c2",
      "parents": [
        "9f03917ce011e4c860306d42c3f3cc70d2061190",
        "c5212a6794d1bb4b10b5aaffefa9b00c763bdaa5"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Oct 25 10:11:14 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 10:11:14 2019 -0700"
      },
      "message": "Merge \"nuplayer: fix a use-of-uninit-value\" am: e75850d70a am: e18118e006 am: 38322d4445\nam: c5212a6794\n\nChange-Id: I318b8258c956495fb8d323fe82605b9f34c220de\n"
    },
    {
      "commit": "e75850d70aecf270430f4713a2ac02ddba70c849",
      "tree": "fa8203ce436cbb5187e35b834ba9febec8e55773",
      "parents": [
        "f7902c01f85ba4941cbfa19fe105e9235426d857",
        "61318c55b26fde06801a09f10f324f487b011bdc"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Oct 25 16:34:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 25 16:34:16 2019 +0000"
      },
      "message": "Merge \"nuplayer: fix a use-of-uninit-value\""
    },
    {
      "commit": "cd8793a325408a5f77aee9bd719d2591fa4a30fd",
      "tree": "7accb34ca7b8b5fd261bde7a5bee21f22cbb8326",
      "parents": [
        "fcb1f7fa5a99a45596230876d5072d8351cac503",
        "e25539a93f04b06361252e2aa8baab534efbc1de"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 23 10:05:18 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 23 10:05:18 2019 -0700"
      },
      "message": "Merge changes from topic \"libdrmframework\" am: 84a53822a1 am: 460618a6d1 am: c317c587d5\nam: e25539a93f\n\nChange-Id: Ib8636ca3d1a5e251de8a4ce3643f0f88dfe85234\n"
    },
    {
      "commit": "61318c55b26fde06801a09f10f324f487b011bdc",
      "tree": "5c2871c2d5ab47a544d9dd140af336a705276ea8",
      "parents": [
        "342d7bcf44b3edcce763f0417ad0a13b11bde285"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 17 11:29:39 2019 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 17 11:29:39 2019 -0700"
      },
      "message": "nuplayer: fix a use-of-uninit-value\n\n`readBuffer` might not set `nextSubTimeUs`. It\u0027s not clear that\n`mMediaClock-\u003eaddTimer(msg, nextSubTimeUs);` is only called in cases\nwhere `nextSubTimeUs` is set, so initialize it to 0 here.\n\nThis is consistent with what\u0027s done in `fetchTextData`.\n\nCaught by the static analyzer:\n\nframeworks/av/media/libmediaplayerservice/nuplayer/GenericSource.cpp:799:9:\nwarning: 2nd function call argument is an uninitialized value\n[clang-analyzer-core.CallAndMessage]\n\nBug: None\nTest: TreeHugger\nChange-Id: Iae6f9d71757c1bcc6e994a448b6169b4d69c4a38\n"
    },
    {
      "commit": "9c6f790843939700fa18779f14b1df5fa1161024",
      "tree": "fe8d8bac73ced833f9b8b1bf7758bc6bee7ff097",
      "parents": [
        "79b0c24b58af5fbfec814a2a11506ef0f72541c3"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Oct 14 11:16:39 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 17:38:17 2019 -0700"
      },
      "message": "Remove libdrmframework.so dependency from libdatasource.so\n\nName changes:\nClearFileSource -\u003e FileSource\nClearMediaHTTP -\u003e MediaHTTP\nFileSource -\u003e PlayerServiceFileSource\nMediaHTTP -\u003e PlayerServiceMediaHTTP\n\nPlayerServiceXXX are able to handle OMA(forward-lock) files and now\nmoved to media/libmediaplayerservice/datasource since they only work\non mediaserver process.\n\nBug: 142567168\nTest: build and DrmTest\n\nChange-Id: I9292dba33d149efe17cf566017dcce1710cc8c88\n"
    },
    {
      "commit": "79b0c24b58af5fbfec814a2a11506ef0f72541c3",
      "tree": "2551d295da89029c75f6a9219a6bc1a3b2980b98",
      "parents": [
        "1f72838954cb3689fb58eef6276553d9a45ff0a8"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Sun Oct 13 08:17:34 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 11:00:29 2019 -0700"
      },
      "message": "Make DataSourceFactory singletone\n\nThis is preparation for having a subclass of DataSourceFactory which\nis only used in mediaserver process with OMA (forward-lock) use case.\n\nTest: build\nBug: 142567168\nChange-Id: I2a1ab3d1ae89f657a84376d9a95d4e814b545b4f\n"
    },
    {
      "commit": "fa8be7d2371d66db6c7838060d5729f6fd9374ef",
      "tree": "aa00504b96299a891446e46c81c6b0d72c9aae02",
      "parents": [
        "58ae37b5b34d6a2bddd46494230a58f5fcc3f5e3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 23 12:15:57 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 09 07:41:58 2019 -0700"
      },
      "message": "Split datasource out of libstagefright\n\ninto libdatasource, which contains:\n  DataSourceFactory\n  (Clear)FileSource\n  (Clear)MediaHTTP\n  DataURISource\n  HTTPBase\n  NuCachedSource2\n\nThis is needed to break a circular dependency in an upcoming CL.\n\nTest: build, boot\n\nChange-Id: I34d9937235c78f18f51b18945342a0743e209577\nMerged-In: I34d9937235c78f18f51b18945342a0743e209577\n"
    },
    {
      "commit": "42057ce1890b2be250b95f56734a47b93c8ad537",
      "tree": "7bfbe8147243430c306546b6a7e5caaa1e94d9cc",
      "parents": [
        "df0b56ba22cc201e535a2efc2245214355b6adf2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 23 12:15:57 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 08 09:30:45 2019 -0700"
      },
      "message": "Split datasource out of libstagefright\n\ninto libdatasource, which contains:\n  DataSourceFactory\n  (Clear)FileSource\n  (Clear)MediaHTTP\n  DataURISource\n  HTTPBase\n  NuCachedSource2\n\nThis is needed to break a circular dependency in an upcoming CL.\n\nTest: build, boot\n\nChange-Id: I34d9937235c78f18f51b18945342a0743e209577\n"
    },
    {
      "commit": "55b259cf5ec16df77b52206e8209f5df2fc214c5",
      "tree": "29989150d2cfb026f11ec5d43edb8116442e7311",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 01 13:43:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\nMerged-In: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "13aa1a4b6630a05fc3e48824b911009ecbb33284",
      "tree": "506fa3026d84685c2621157b9b668155c31ae0ec",
      "parents": [
        "e3cdab3c40cb71284a0e186d7d5a82257e7d34a1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 14:04:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "51eb2f447a3239ef818975bd4d594889a8cb502e",
      "tree": "7b56d77bd39bcbb6ebfc51a36421a02ce337c13b",
      "parents": [
        "34438bed76b81d20a401ae6094e46077d83b9850",
        "7dd39723b34c8378fc5eabb4d4ccacf32f55ffe2"
      ],
      "author": {
        "name": "Ytai Ben-tsvi",
        "email": "ytai@google.com",
        "time": "Tue Sep 17 15:05:44 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 17 15:05:44 2019 +0000"
      },
      "message": "Merge \"Improve visibility of IMemory security risks\""
    },
    {
      "commit": "ee8116b0a36739253ea41d7703102a5aeaa2d5da",
      "tree": "9e684d73c8c5c7a2c23f0eb0391aa0f51a5b81d7",
      "parents": [
        "0e1c20080a810da66062b83ad0d142e3fb4bd7e7"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Jul 19 15:55:44 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Sep 16 15:08:45 2019 -0700"
      },
      "message": "nuplayer: wait for sync point at renderer flush\n\nBug: 136232244\nTest: atest CtsMediaTestCases:MediaRandomTest#testPlayerRandomActionH264 (100 times)\nChange-Id: I0a63df739fb15597130f50a12d6cddbe3ae815e8\n"
    },
    {
      "commit": "7dd39723b34c8378fc5eabb4d4ccacf32f55ffe2",
      "tree": "222de47bcb84931d714d250fe51d3249771edc18",
      "parents": [
        "61d4a093f4b4041b145fbd7a3ab5ec04679f87d9"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Sep 05 15:14:30 2019 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 13 10:59:51 2019 -0700"
      },
      "message": "Improve visibility of IMemory security risks\n\nThis change renames the IMemory raw pointer accessors to\nunsecure*() to make it apparent to coders and code reviewers\nthat the returned buffer may potentially be shared with\nuntrusted processes, who may, after the fact, attempt to\nread and/or modify the contents. This may lead to hard to\nfind security bugs and hopefully the rename makes it harder\nto forget.\n\nThe change also attempts to fix all the callsites to make\neverything build correctly, but in the processes, wherever the\ncallsite code was not obviously secure, I added a TODO requesting\nthe owners to either document why it\u0027s secure or to change the\ncode. Apologies in advance to the owners if there are some false\npositives here - I don\u0027t have enough context to reason about all\nthe different callsites.\n\nTest: Completely syntactic change. Made sure code still builds.\nChange-Id: I5fb99aa797c488406083178a6b05355d98710d3b\n"
    },
    {
      "commit": "2e26d813d76735a822c507370ea21046d9a0fbb9",
      "tree": "cee02c1870b47edf791af1bceba6e131ffa35c42",
      "parents": [
        "f53495687949faddd7666ec4b4206f99b8ec4c04"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 09 13:20:10 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 09 15:05:50 2019 -0700"
      },
      "message": "Check actual read bytes for TS packets\n\nCheck actual bytes read when feeding the data to TS parser.\n\nbug: 140177694\ntest: poc in bug; StreamingMediaPlayerTest\n\nChange-Id: I4b498fe375af657e17838e5839e6348e1463d559\n"
    },
    {
      "commit": "fd3bbcb596956eeaa6c0a5c0770e00779b574e04",
      "tree": "1eed9e6f8f126b8e6a7828a1864b0ba4b30baa0a",
      "parents": [
        "39d766372220af912a8912e6487f4626d56a6d04"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Aug 08 17:15:01 2019 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Aug 12 22:34:20 2019 +0000"
      },
      "message": "Close socket before posting message to RTSPSource message handler\n\nBug: 120119004\nTest: Same as b/120119004 #1\nChange-Id: If22bb575347448893032465f6c59b244ba74ef89\n"
    },
    {
      "commit": "c52abcd1b3e7bb594c3126aa28abe978fdfa0ba9",
      "tree": "9134e718f55a662a02840263f6050ee51d4e648e",
      "parents": [
        "87b6e61db314aa83c3e582ba8ae3d7c3cb1d2d61",
        "7fa5e10f6cac09a43a59a2cac0657fe7c91ee30d"
      ],
      "author": {
        "name": "Yuxiu Zhang",
        "email": "yuxiu.zhang@mediatek.com",
        "time": "Thu Jun 27 12:54:33 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 27 12:54:33 2019 -0700"
      },
      "message": "Http streaming cannot play video whose duration is less than 5s am: 6efc14faf6 am: b888dbdf1f\nam: 7fa5e10f6c\n\nChange-Id: I0588597644c1f40b325442c71a6c4b7980e5593d\n"
    },
    {
      "commit": "6efc14faf68e3e7698adbe644d264c403d04dd0a",
      "tree": "a3a3bd2661eca947a4464e5efd0f137dfdb17dff",
      "parents": [
        "2cbc7cd807382e371ad5ae71039afccb9641433c"
      ],
      "author": {
        "name": "Yuxiu Zhang",
        "email": "yuxiu.zhang@mediatek.com",
        "time": "Mon Jun 10 16:13:05 2019 +0800"
      },
      "committer": {
        "name": "Andrew Lewis",
        "email": "andrewlewis@google.com",
        "time": "Thu Jun 27 10:17:00 2019 +0100"
      },
      "message": "Http streaming cannot play video whose duration is less than 5s\n\nonPollBuffering() monitors EOS(finalStatus \u003d\u003d ERROR_END_OF_STREAM),\nthen notifyPreparedAndCleanup(finalStatus) notifies prepared error.\n\nPrevious Google\u0027s patch \"GenericSource: fix error handling during\npreparing or rebuffering\" should focus on error except ERROR_END_OF_STREAM.\n\nBug: 134911527\nTest: http streaming can play a mp4 video whose duration is less than 5s\nChange-Id: I5c738bbe7242314b24463679b5bd996ab59d2b04\n(cherry picked from commit 89703072ec4edf7a384ec07024debc0a6e085ae0)\n"
    }
  ],
  "next": "83f56b07f214d20a7b3e5137a72ced990fccac10"
}
