Skip to content

Draft: vlc_es: change i_extra into size_t

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.

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.

Still draft since a few tests are still needed on the different platforms and commits could benefit from more rationale. There's also the question of whether a wrapper is needed for the extradata to avoid overflow when reading.

Merge request reports