gecko-dev/third_party/libwebrtc/modules/video_coding
Michael Froman ec171f7887 Bug 1924098 - Vendor libwebrtc from 28b793b4dd
Upstream commit: https://webrtc.googlesource.com/src/+/28b793b4dd275bf2b901b87e01c0ee8d4f5732fc
    [Merge-130] Fix LibvpxVp9Encoder simulcast bug.

    As of [1], a single VP9 encoder instance can produce simulcast 4:2:1.
    When it does, the EncodedImage has its simulcast index set (0, 1, 2).

    The bug is that if you then go back to a single encoder instance,
    either because you're doing singlecast or because you're doing
    simulcast with scaling factors that are not power of two (not 4:2:1),
    then the simulcast index which was previously set to 2 is not reset due
    to the old code path never calling SetSimulcastIndex.

    Example repro:
    1. Send VP9 simulcast {180p, 360p, 720p}, i.e. 4:2.1.
    2. Reconfigure to {180p, 360p, 540p}, i.e. no longer 4:2:1.

    What should happen: all three layers are sent.
    What actually happened: 180p is not sent and the 540p layer flips flops
    between 180p and 540p because the EncodedImage says simulcast index is
    2 for both encodings[0] and encodings[2].

    The fix is a one-line change: `SetSimulcastIndex(std::nullopt)` in the
    case that we don't have a `simulcast_to_svc_converter_` that sets it
    (0, 1, 2) for us.

    [1] https://webrtc-review.googlesource.com/c/src/+/360280

    (cherry picked from commit a6fbb35ac1849c5cd823ec90121d92fc5b776b35)

    Bug: chromium:370299916
    Change-Id: I94ce1a0bde43ef56cba930cb69b744877bbd4bf9
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/363941
    Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
    Commit-Queue: Henrik Boström <hbos@webrtc.org>
    Cr-Original-Commit-Position: refs/heads/main@{#43109}
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364302
    Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
    Cr-Commit-Position: refs/branch-heads/6723@{#2}
    Cr-Branched-From: 13e377b804f68aa9c20ea5e449666ea5248e3286-refs/heads/main@{#43019}
2024-10-15 19:12:04 -05:00
..
chain_diff_calculator_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
codec_globals_headers_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
codecs Bug 1924098 - Vendor libwebrtc from 28b793b4dd 2024-10-15 19:12:04 -05:00
deprecated Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
encoded_frame_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
frame_dependencies_calculator_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
frame_helpers_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
g3doc
h26x_packet_buffer_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
h264_sprop_parameter_sets_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
include Bug 1924098 - Vendor libwebrtc from dac0805955 2024-10-15 17:34:48 -05:00
nack_requester_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
packet_buffer_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
svc Bug 1924098 - Vendor libwebrtc from 363dc19f9d 2024-10-15 18:27:35 -05:00
timing Bug 1924098 - Vendor libwebrtc from 55a59337c8 2024-10-15 17:33:51 -05:00
utility Bug 1924098 - Vendor libwebrtc from 5ac7495701 2024-10-15 18:00:04 -05:00
video_codec_interface_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
video_coding_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
video_coding_utility_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
webrtc_libvpx_interface_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
webrtc_vp8_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
webrtc_vp8_scalability_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
webrtc_vp8_temporal_layers_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
webrtc_vp9_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
webrtc_vp9_helpers_gn Bug 1921707 - libwebrtc - moz.build file updates r=ng,webrtc-reviewers 2024-10-10 13:42:45 +00:00
BUILD.gn Bug 1924098 - Vendor libwebrtc from 5ac7495701 2024-10-15 18:00:04 -05:00
chain_diff_calculator_unittest.cc
chain_diff_calculator.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
chain_diff_calculator.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
decoder_database_unittest.cc
decoder_database.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
decoder_database.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
DEPS
encoded_frame.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
encoded_frame.h
fec_controller_default.cc
fec_controller_default.h
fec_controller_unittest.cc
fec_rate_table.h
frame_dependencies_calculator_unittest.cc
frame_dependencies_calculator.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
frame_dependencies_calculator.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
frame_helpers_unittest.cc
frame_helpers.cc
frame_helpers.h
generic_decoder_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
generic_decoder.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
generic_decoder.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
h26x_packet_buffer_unittest.cc Bug 1918268 - Vendor libwebrtc from 07e83f244b 2024-09-18 11:47:56 -05:00
h26x_packet_buffer.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
h26x_packet_buffer.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
h264_sprop_parameter_sets_unittest.cc
h264_sprop_parameter_sets.cc
h264_sprop_parameter_sets.h
h264_sps_pps_tracker_unittest.cc
h264_sps_pps_tracker.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
h264_sps_pps_tracker.h
histogram_unittest.cc
histogram.cc
histogram.h
internal_defines.h
loss_notification_controller_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
loss_notification_controller.cc
loss_notification_controller.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
media_opt_util.cc
media_opt_util.h
nack_requester_unittest.cc
nack_requester.cc
nack_requester.h
OWNERS
packet_buffer_unittest.cc Bug 1924098 - Vendor libwebrtc from 8771cf470d 2024-10-11 12:56:21 -05:00
packet_buffer.cc Bug 1924098 - Vendor libwebrtc from 8771cf470d 2024-10-11 12:56:21 -05:00
packet_buffer.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
rtp_frame_id_only_ref_finder.cc
rtp_frame_id_only_ref_finder.h
rtp_frame_reference_finder_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
rtp_frame_reference_finder.cc
rtp_frame_reference_finder.h
rtp_generic_ref_finder.cc
rtp_generic_ref_finder.h
rtp_seq_num_only_ref_finder.cc
rtp_seq_num_only_ref_finder.h
rtp_vp8_ref_finder_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
rtp_vp8_ref_finder.cc
rtp_vp8_ref_finder.h
rtp_vp9_ref_finder_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
rtp_vp9_ref_finder.cc
rtp_vp9_ref_finder.h
video_codec_initializer_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
video_codec_initializer.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
video_coding_defines.cc
video_coding_impl.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
video_coding_impl.h Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
video_receiver2_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
video_receiver2.cc
video_receiver2.h
video_receiver_unittest.cc Bug 1924098 - Vendor libwebrtc from 8037fc6ffa 2024-10-14 16:36:27 -05:00
video_receiver.cc