From 5557255eac0e762faca32459c1c61d54ec327e09 Mon Sep 17 00:00:00 2001 From: Yandong Lin Date: Thu, 10 Nov 2022 21:10:50 +0800 Subject: [PATCH] [av1d]: fix dec err for bitstreams with dolby metadata Signed-off-by: Yandong Lin Change-Id: I0f906688490ddc29df7e3248bfe8676d07d32283 --- mpp/codec/dec/av1/av1d_cbs.c | 9 ++++++--- mpp/codec/dec/av1/av1d_parser.c | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mpp/codec/dec/av1/av1d_cbs.c b/mpp/codec/dec/av1/av1d_cbs.c index 0e2fa3b1..2452d976 100644 --- a/mpp/codec/dec/av1/av1d_cbs.c +++ b/mpp/codec/dec/av1/av1d_cbs.c @@ -2334,8 +2334,10 @@ static RK_S32 mpp_av1_metadata_itut_t35(AV1Context *ctx, BitReadCtx_t *gb, if (current->itu_t_t35_country_code == 0xff) fb(8, itu_t_t35_country_code_extension_byte); - current->payload_size = mpp_av1_get_payload_bytes_left(gb); + current->payload_size = mpp_get_bits_left(gb) / 8 - 1; + av1d_dbg(AV1D_DBG_STRMIN, "%s itu_t_t35_country_code %d payload_size %d\n", + __func__, current->itu_t_t35_country_code, current->payload_size); current->payload = mpp_malloc(RK_U8, current->payload_size); if (!current->payload) return MPP_ERR_NOMEM; @@ -2392,7 +2394,7 @@ static RK_S32 mpp_av1_metadata_obu(AV1Context *ctx, BitReadCtx_t *gb, RK_S32 err; leb128(metadata_type); - + av1d_dbg(AV1D_DBG_STRMIN, "%s meta type %d\n", __func__, current->metadata_type); switch (current->metadata_type) { case AV1_METADATA_TYPE_HDR_CLL: CHECK(mpp_av1_metadata_hdr_cll(ctx, gb, ¤t->metadata.hdr_cll)); @@ -2687,7 +2689,8 @@ MPP_RET mpp_av1_read_unit(AV1Context *ctx, Av1ObuUnit *unit) } } } - + av1d_dbg(AV1D_DBG_HEADER, "obu type %d size %d\n", + obu->header.obu_type, obu->obu_size); switch (obu->header.obu_type) { case AV1_OBU_SEQUENCE_HEADER: { err = mpp_av1_sequence_header_obu(ctx, &gbc, diff --git a/mpp/codec/dec/av1/av1d_parser.c b/mpp/codec/dec/av1/av1d_parser.c index 2966edad..3297cd5a 100644 --- a/mpp/codec/dec/av1/av1d_parser.c +++ b/mpp/codec/dec/av1/av1d_parser.c @@ -50,6 +50,7 @@ static const Av1UnitType unit_types[] = { AV1_OBU_SEQUENCE_HEADER, AV1_OBU_FRAME_HEADER, AV1_OBU_TILE_GROUP, + AV1_OBU_METADATA, AV1_OBU_FRAME, };