[libav-devel] [PATCH 9/9] avcodec/extract_extradata_bsf: make sure a Sequence Header was found for av1

James Almer jamrial at gmail.com
Thu Oct 4 04:59:54 CEST 2018


On 10/3/2018 4:15 PM, Luca Barbato wrote:
> From: James Almer <jamrial at gmail.com>
> 
> A packet may have Metadata OBUs but no Sequence Header OBU, which is
> useless as extradata.
> 
> Signed-off-by: James Almer <jamrial at gmail.com>
> Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
> ---
>  libavcodec/extract_extradata_bsf.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/extract_extradata_bsf.c b/libavcodec/extract_extradata_bsf.c
> index 2734a7b7d1..9ee2b28d01 100644
> --- a/libavcodec/extract_extradata_bsf.c
> +++ b/libavcodec/extract_extradata_bsf.c
> @@ -67,7 +67,7 @@ static int extract_extradata_av1(AVBSFContext *ctx, AVPacket *pkt,
>  
>      int extradata_size = 0, filtered_size = 0;
>      int nb_extradata_obu_types = FF_ARRAY_ELEMS(extradata_obu_types);
> -    int i, ret = 0;
> +    int i, has_seq = 0, ret = 0;
>  
>      ret = ff_av1_packet_split(&s->av1_pkt, pkt->data, pkt->size, ctx);
>      if (ret < 0)
> @@ -77,12 +77,14 @@ static int extract_extradata_av1(AVBSFContext *ctx, AVPacket *pkt,
>          AV1OBU *obu = &s->av1_pkt.obus[i];
>          if (val_in_array(extradata_obu_types, nb_extradata_obu_types, obu->type)) {
>              extradata_size += obu->raw_size;
> +            if (obu->type == AV1_OBU_SEQUENCE_HEADER)
> +                has_seq = 1;
>          } else if (s->remove) {
>              filtered_size += obu->raw_size;
>          }
>      }
>  
> -    if (extradata_size) {
> +    if (extradata_size && has_seq) {
>          AVBufferRef *filtered_buf;
>          uint8_t *extradata, *filtered_data;

Same, i think this would be better squashed with the previous commit.


More information about the libav-devel mailing list