[FFmpeg-devel] [PATCH 5/7] avcodec/vc2enc: Avoid relocations for short strings

James Almer jamrial at gmail.com
Tue May 28 06:07:41 EEST 2024


On 5/27/2024 11:49 PM, Andreas Rheinhardt wrote:
> These strings are so short that they can be put directly
> into the containing structure, avoiding the pointer
> and putting it into .rodata.
> Also use chars for interlaced and level while at it, as
> these are so small.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
>   libavcodec/vc2enc.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c
> index 3285218724..8b9641916a 100644
> --- a/libavcodec/vc2enc.c
> +++ b/libavcodec/vc2enc.c
> @@ -41,8 +41,9 @@
>   typedef struct VC2BaseVideoFormat {
>       enum AVPixelFormat pix_fmt;
>       AVRational time_base;
> -    int width, height, interlaced, level;
> -    const char *name;
> +    int width, height;
> +    char interlaced, level;

Use a fixed size type like uint8_t and not char. Neither of these values 
are characters (interlace should strictly speaking be a bool, but afaict 
that's not portable).

> +    char name[13];
>   } VC2BaseVideoFormat;
>   
>   static const VC2BaseVideoFormat base_video_fmts[] = {


More information about the ffmpeg-devel mailing list