Reference values should only go up to 31:
> num_ref_idx_l0_default_active_minus1 specifies how
> num_ref_idx_l0_active_minus1 is inferred for P, SP, and B slices
> with num_ref_idx_active_override_flag equal to 0. The value of
> num_ref_idx_l0_default_active_minus1 shall be in the range of 0 to 31, inclusive.
> num_ref_idx_l1_default_active_minus1 specifies how num_ref_idx_l1_active_minus1
> is inferred for B slices with num_ref_idx_active_override_flag equal to 0.
> The value of num_ref_idx_l1_default_active_minus1 shall be in the range
> of 0 to 31, inclusive.
This is for the default values but it also applies to the read slice values.
Fixes#29050
Reference values should only go up to 31:
> num_ref_idx_l0_default_active_minus1 specifies how > num_ref_idx_l0_active_minus1 is inferred for P, SP, and B slices
with num_ref_idx_active_override_flag equal to 0. The value of num_ref_idx_l0_default_active_minus1 shall be in the
range of 0 to 31, inclusive.
num_ref_idx_l1_default_active_minus1 specifies how num_ref_idx_l1_active_minus1 is inferred for B slices with
num_ref_idx_active_override_flag equal to 0. The value of num_ref_idx_l1_default_active_minus1 shall be in the range
of 0 to 31, inclusive.
This MR changes es_format_t::i_extra from a signed int to size_t.
This variable is used to describe the size of the buffer pointed by
p_extra, and is never strictly negative.
Users of this member are also updated in this commit at once. I'm not
sure it's easy to split, except if callers are casted to size_t before
usage in a preparatory change, and then the cast is removed in a cleanup
change.
Some users were already using size_t though, like videotoolbox decoder
or hxxx_helpers.c. The main blocker for splitting is that most clients
not doing that are actually using pointers to i_extra instead of using a
copy, which is much more verbose to fix locally.
Almost No unneeded cast is added to fix signedness mismatch in this
patch. Most notably, only mpeg/ts_psi.c gets a new cast when using
__MIN() with fmt->i_extra, since the dvbpsi_descriptor_t::i_length
parameter is signed.
avformat/demux.c gets a temporary cast which is no-op with a version
libavutil >= 57 but which would trigger the warning before that. It may
be removed when libavutil < 57 is dropped.
The optional part needed by the decoders.
This will restart the decoders if needed, but they should have received no frames yet
or the hardware decoder may be usable again or not (after a sequence header change).
702b20b0e8 has put 'sensible' defaults
into a 'guessed' table for FAAD2.
According to the spec, lots of channels ordering are wrong and the 8th
values does not exists.