[FFmpeg-devel] [PATCH 6/8] h264_metadata: Remove unused fields

James Almer jamrial at gmail.com
Sun Mar 11 20:55:56 EET 2018


On 3/11/2018 3:30 PM, Mark Thompson wrote:
> The SEI NAL is unused since 69062d0f9b6aef5d9d9b8c9c9b5cfb23037caddb,
> while the AUD NAL is small and would more sensibly be on the stack.
> ---
>  libavcodec/h264_metadata_bsf.c | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/h264_metadata_bsf.c
> index d340c55990..760fe99c41 100644
> --- a/libavcodec/h264_metadata_bsf.c
> +++ b/libavcodec/h264_metadata_bsf.c
> @@ -47,9 +47,6 @@ typedef struct H264MetadataContext {
>  
>      int done_first_au;
>  
> -    H264RawAUD aud_nal;
> -    H264RawSEI sei_nal;
> -
>      int aud;
>  
>      AVRational sample_aspect_ratio;
> @@ -263,7 +260,9 @@ static int h264_metadata_filter(AVBSFContext *bsf, AVPacket *out)
>                  0x3ff, // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
>              };
>              int primary_pic_type_mask = 0xff;
> -            H264RawAUD *aud = &ctx->aud_nal;
> +            H264RawAUD aud = {
> +                .nal_unit_header.nal_unit_type = H264_NAL_AUD,
> +            };

Afaik every other field is not zero initialized if you do this, unlike
if you keep it in H264MetadataContext.
Not sure if that may have some consequences or not here.

>  
>              for (i = 0; i < au->nb_units; i++) {
>                  if (au->units[i].type == H264_NAL_SLICE ||
> @@ -286,11 +285,10 @@ static int h264_metadata_filter(AVBSFContext *bsf, AVPacket *out)
>                  goto fail;
>              }
>  
> -            aud->nal_unit_header.nal_unit_type = H264_NAL_AUD;
> -            aud->primary_pic_type = j;
> +            aud.primary_pic_type = j;
>  
>              err = ff_cbs_insert_unit_content(ctx->cbc, au,
> -                                             0, H264_NAL_AUD, aud, NULL);
> +                                             0, H264_NAL_AUD, &aud, NULL);
>              if (err < 0) {
>                  av_log(bsf, AV_LOG_ERROR, "Failed to insert AUD.\n");
>                  goto fail;
> 



More information about the ffmpeg-devel mailing list