webrtc/modules/video_coding
Sergey Silkin d6afbead2d Correctly set number of reference buffers in H264 encoder
iNumRefFrame specifies total number of reference buffers to allocate.
For N temporal layers we need at least (N - 1) buffers to store last
encoded frames of all reference temporal layers.

There is no API in OpenH254 encoder to specify exact set of references
to be used to prediction of a given frame. Encoder can theoretically
use all available references.

Note that there is logic in OpenH264 which overrides iNumRefFrame to
max(iNumRefFrame, N - 1): https://source.chromium.org/chromium/chromium/src/+/main:third_party/openh264/src/codec/encoder/core/src/au_set.cpp;drc=8e90a2775c5b9448324fe8fef11d177cb65f36cc;l=122.
I.e., this change has no real effect. It only makes setup more clear.

Bug: none
Change-Id: If4b4970007e1cc55d8f052ea05213ab2e89a878f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225480
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34445}
2021-07-09 13:49:41 +00:00
..
codecs Correctly set number of reference buffers in H264 encoder 2021-07-09 13:49:41 +00:00
deprecated Mark AsyncInvoker as deprecated 2021-05-03 16:27:10 +00:00
g3doc Add conceptual docs for modules/video_coding 2021-04-16 08:46:12 +00:00
include Replace RTC_DEPRECATED with ABSL_DEPRECATED 2021-02-22 12:53:23 +00:00
svc Add fuzzer to validate libvpx vp9 encoder wrapper 2021-04-21 14:29:04 +00:00
test Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
utility Correctly set number of reference buffers in H264 encoder 2021-07-09 13:49:41 +00:00
BUILD.gn VP9 parser: undo r34393 and fix incorrect return statement. 2021-07-06 14:39:57 +00:00
chain_diff_calculator.cc Introduce ChainDiffCalculator 2020-05-18 14:22:44 +00:00
chain_diff_calculator.h Introduce ChainDiffCalculator 2020-05-18 14:22:44 +00:00
chain_diff_calculator_unittest.cc Introduce ChainDiffCalculator 2020-05-18 14:22:44 +00:00
codec_timer.cc
codec_timer.h Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
decoder_database.cc Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
decoder_database.h Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
decoding_state.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
decoding_state.h Adds missing header to fix compilation error when compiling with use_custom_libcxx set to false. 2021-03-25 09:57:00 +00:00
decoding_state_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
DEPS Add RTC_EXPORT to VCMEncodedFrame 2020-02-28 16:59:10 +00:00
encoded_frame.cc VCMEncodedFrame: add basic support for AV1. 2021-03-30 11:45:00 +00:00
encoded_frame.h Delete unowned buffer in EncodedImage. 2021-03-19 14:12:28 +00:00
event_wrapper.cc Move EventWrapper class to target video_coding_legacy. 2020-03-06 08:39:35 +00:00
event_wrapper.h Move EventWrapper class to target video_coding_legacy. 2020-03-06 08:39:35 +00:00
fec_controller_default.cc Migrate modules/video_coding to webrtc::Mutex. 2020-07-07 11:41:21 +00:00
fec_controller_default.h Migrate modules/video_coding to webrtc::Mutex. 2020-07-07 11:41:21 +00:00
fec_controller_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fec_rate_table.h
frame_buffer.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
frame_buffer.h Refactor legacy FrameBuffer to use EncodedImageBuffer::Realloc 2019-09-30 09:48:26 +00:00
frame_buffer2.cc Prepare to replace VideoLayerFrameId with int64_t. 2021-02-15 14:42:02 +00:00
frame_buffer2.h Prepare to replace VideoLayerFrameId with int64_t. 2021-02-15 14:42:02 +00:00
frame_buffer2_unittest.cc Add fieldtrial to enable minimum pacing of video frames 2021-06-29 19:37:42 +00:00
frame_dependencies_calculator.cc Ignore frame type when calculating generic frame dependencies. 2020-11-23 10:52:06 +00:00
frame_dependencies_calculator.h Ignore frame type when calculating generic frame dependencies. 2020-11-23 10:52:06 +00:00
frame_dependencies_calculator_unittest.cc Ignore frame type when calculating generic frame dependencies. 2020-11-23 10:52:06 +00:00
frame_object.cc Send and Receive VideoFrameTrackingid RTP header extension. 2021-03-25 21:57:29 +00:00
frame_object.h Clean up video_coding namespace snipets. 2021-03-25 10:44:40 +00:00
generic_decoder.cc Add timestamp to log message in generic_decoder.cc 2021-06-17 10:14:14 +00:00
generic_decoder.h Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
generic_decoder_unittest.cc Signaling for low-latency renderer algorithm 2020-10-26 15:03:56 +00:00
h264_sprop_parameter_sets.cc Format almost everything. 2019-07-08 13:45:15 +00:00
h264_sprop_parameter_sets.h
h264_sprop_parameter_sets_unittest.cc
h264_sps_pps_tracker.cc H264: Fix stap-a-to-annex-b loop over-read 2020-06-24 21:54:45 +00:00
h264_sps_pps_tracker.h in PacketBuffer::Packet pass payload using smart buffer 2019-12-03 14:55:54 +00:00
h264_sps_pps_tracker_unittest.cc in PacketBuffer::Packet pass payload using smart buffer 2019-12-03 14:55:54 +00:00
histogram.cc
histogram.h
histogram_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
inter_frame_delay.cc
inter_frame_delay.h
internal_defines.h
jitter_buffer.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
jitter_buffer.h Migrate modules/video_coding to webrtc::Mutex. 2020-07-07 11:41:21 +00:00
jitter_buffer_common.h Format almost everything. 2019-07-08 13:45:15 +00:00
jitter_buffer_unittest.cc Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
jitter_estimator.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
jitter_estimator.h Add option to disable reduced jitter delay through field trial. 2020-05-19 11:51:29 +00:00
jitter_estimator_tests.cc Add option to disable reduced jitter delay through field trial. 2020-05-19 11:51:29 +00:00
loss_notification_controller.cc Detach LossNotificationController from RtpGenericFrameDescriptor 2020-01-24 11:53:28 +00:00
loss_notification_controller.h Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
loss_notification_controller_unittest.cc Detach LossNotificationController from RtpGenericFrameDescriptor 2020-01-24 11:53:28 +00:00
media_opt_util.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
media_opt_util.h Stop checking VP8BaseHeavyTl3RateAllocation field trial on every frame. 2019-11-04 13:50:59 +00:00
nack_module2.cc Remove locks and dependency on ProcessThread+Module from NackModule2. 2020-05-27 14:20:34 +00:00
nack_module2.h Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
nack_module2_unittest.cc Remove locks and dependency on ProcessThread+Module from NackModule2. 2020-05-27 14:20:34 +00:00
nack_module_unittest.cc Deprecate webrtc::NackModule. 2020-05-30 16:34:44 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
packet.cc Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
packet.h Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
packet_buffer.cc Don't store RtpPacketInfo in the PacketBuffer. 2021-05-11 10:37:46 +00:00
packet_buffer.h Don't store RtpPacketInfo in the PacketBuffer. 2021-05-11 10:37:46 +00:00
packet_buffer_unittest.cc Track last packet receive times in RtpVideoStreamReceiver instead of the PacketBuffer. 2021-04-13 18:24:45 +00:00
receiver.cc Removed _completeFrame since we never allow incomplete frames. 2020-10-28 16:00:27 +00:00
receiver.h Remove unused critical section includes. 2020-07-16 13:52:28 +00:00
receiver_unittest.cc Remove unused members in tests. 2021-04-12 07:21:03 +00:00
rtp_frame_id_only_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_frame_id_only_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_frame_reference_finder.cc RtpFrameReferenceFinder return frames directly instead of via callback. 2021-05-26 15:47:03 +00:00
rtp_frame_reference_finder.h RtpFrameReferenceFinder return frames directly instead of via callback. 2021-05-26 15:47:03 +00:00
rtp_frame_reference_finder_unittest.cc RtpFrameReferenceFinder return frames directly instead of via callback. 2021-05-26 15:47:03 +00:00
rtp_generic_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_generic_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_seq_num_only_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_seq_num_only_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp8_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp8_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp8_ref_finder_unittest.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp9_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp9_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp9_ref_finder_unittest.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtt_filter.cc
rtt_filter.h
session_info.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
session_info.h Format almost everything. 2019-07-08 13:45:15 +00:00
session_info_unittest.cc Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
timestamp_map.cc Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
timestamp_map.h Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
timestamp_map_unittest.cc Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
timing.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
timing.h Add fieldtrial to enable minimum pacing of video frames 2021-06-29 19:37:42 +00:00
timing_unittest.cc Add fieldtrial to enable minimum pacing of video frames 2021-06-29 19:37:42 +00:00
unique_timestamp_counter.cc Split out counting unique rtp timestamps from packet_buffer 2019-10-30 15:27:48 +00:00
unique_timestamp_counter.h Split out counting unique rtp timestamps from packet_buffer 2019-10-30 15:27:48 +00:00
unique_timestamp_counter_unittest.cc Split out counting unique rtp timestamps from packet_buffer 2019-10-30 15:27:48 +00:00
video_codec_initializer.cc Make AV1 respect spatial layer active flag. 2021-06-01 16:07:25 +00:00
video_codec_initializer_unittest.cc Make AV1 respect spatial layer active flag. 2021-06-01 16:07:25 +00:00
video_coding_defines.cc Fix frames dropped statistics 2019-08-27 07:43:01 +00:00
video_coding_impl.cc Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
video_coding_impl.h Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
video_receiver.cc Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
video_receiver2.cc Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
video_receiver2.h Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
video_receiver_unittest.cc Prepare for deleting VideoCodec::plType 2020-08-11 14:20:59 +00:00