mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-12 20:40:07 +08:00
[av1d_parser]: fix parse err with unknown metadata
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com> Change-Id: Ie6a7c1085bd126c6b776b53f2488f7700aa6d395
This commit is contained in:
@@ -194,6 +194,12 @@ MPP_RET av1d_prepare(void *ctx, MppPacket pkt, HalDecTask *task)
|
||||
} else {
|
||||
task->valid = 0;
|
||||
task->flags.eos = av1_ctx->eos;
|
||||
if (av1_ctx->eos) {
|
||||
task->input_packet = av1_ctx->pkt;
|
||||
mpp_packet_set_length(av1_ctx->pkt, 0);
|
||||
mpp_packet_set_pts(av1_ctx->pkt, pts);
|
||||
mpp_packet_set_dts(av1_ctx->pkt, dts);
|
||||
}
|
||||
}
|
||||
|
||||
(void)pts;
|
||||
|
@@ -2624,7 +2624,7 @@ static RK_S32 mpp_av1_metadata_obu(AV1Context *ctx, BitReadCtx_t *gb,
|
||||
break;
|
||||
default:
|
||||
// Unknown metadata type.
|
||||
return MPP_ERR_UNKNOW;
|
||||
return MPP_OK;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -2975,6 +2975,7 @@ MPP_RET mpp_av1_read_unit(AV1Context *ctx, Av1ObuUnit *unit)
|
||||
return err;
|
||||
} break;
|
||||
case AV1_OBU_METADATA: {
|
||||
ctx->frame_tag_size += obu->obu_size;
|
||||
err = mpp_av1_metadata_obu(ctx, &gbc, &obu->obu.metadata);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
@@ -990,11 +990,15 @@ MPP_RET av1d_paser_reset(Av1CodecContext *ctx)
|
||||
av1d_dbg_func("enter ctx %p\n", ctx);
|
||||
for ( i = 0; i < MPP_ARRAY_ELEMS(s->ref); i++) {
|
||||
AV1Frame *f = &s->ref[i];
|
||||
if (f->ref) {
|
||||
av1d_frame_unref(ctx, &s->ref[i]);
|
||||
}
|
||||
|
||||
if (f->ref)
|
||||
av1d_frame_unref(ctx, &s->ref[i]);
|
||||
}
|
||||
|
||||
if (s->cur_frame.ref) {
|
||||
av1d_frame_unref(ctx, &s->cur_frame);
|
||||
}
|
||||
|
||||
av1d_dbg_func("leave ctx %p\n", ctx);
|
||||
return ret;
|
||||
|
||||
|
Reference in New Issue
Block a user