summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2023-03-07 09:03:26 -0300
committerJames Almer <jamrial@gmail.com>2023-03-10 16:27:05 -0300
commit68a858fcc913c4939798c7b6580a814184a1089b (patch)
tree8539c3723404470e47cc134b59538307b0496853
parentd6d576505163c9c5cb42539a6e53d53b003fd252 (diff)
avcodec/av1dec: make CBS parse only the OBU types we care about
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavcodec/av1dec.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index 314c721ac2..a80e37e33f 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -752,6 +752,16 @@ static int update_context_with_frame_header(AVCodecContext *avctx,
return 0;
}
+static const CodedBitstreamUnitType decompose_unit_types[] = {
+ AV1_OBU_FRAME,
+ AV1_OBU_FRAME_HEADER,
+ AV1_OBU_METADATA,
+ AV1_OBU_REDUNDANT_FRAME_HEADER,
+ AV1_OBU_SEQUENCE_HEADER,
+ AV1_OBU_TEMPORAL_DELIMITER,
+ AV1_OBU_TILE_GROUP,
+};
+
static av_cold int av1_decode_init(AVCodecContext *avctx)
{
AV1DecContext *s = avctx->priv_data;
@@ -781,6 +791,9 @@ static av_cold int av1_decode_init(AVCodecContext *avctx)
if (ret < 0)
return ret;
+ s->cbc->decompose_unit_types = decompose_unit_types;
+ s->cbc->nb_decompose_unit_types = FF_ARRAY_ELEMS(decompose_unit_types);
+
s->itut_t35_fifo = av_fifo_alloc2(1, sizeof(AV1RawMetadataITUTT35),
AV_FIFO_FLAG_AUTO_GROW);
if (!s->itut_t35_fifo)