From: James Almer <[email protected]> A packet may have Metadata OBUs but no Sequence Header OBU, which is useless as extradata.
Signed-off-by: James Almer <[email protected]> Signed-off-by: Luca Barbato <[email protected]> --- 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; -- 2.12.2 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
