From 7e33863b10107904101e0ccb5c145b3527a4359b Mon Sep 17 00:00:00 2001 From: He Junyan Date: Fri, 24 Jul 2020 12:49:10 +0800 Subject: [PATCH] codecparsers: av1: all ref idx should be gint8. All the ref index need to compare with 0 in reference index decision algorithm. We also need to init them to -1. Part-of: --- gst-libs/gst/codecparsers/gstav1parser.c | 5 +++++ gst-libs/gst/codecparsers/gstav1parser.h | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gst-libs/gst/codecparsers/gstav1parser.c b/gst-libs/gst/codecparsers/gstav1parser.c index 6f6b741..0873612 100644 --- a/gst-libs/gst/codecparsers/gstav1parser.c +++ b/gst-libs/gst/codecparsers/gstav1parser.c @@ -4355,9 +4355,14 @@ gst_av1_parse_frame_header (GstAV1Parser * parser, GstAV1OBU * obu, GstBitReader * bit_reader, GstAV1FrameHeaderOBU * frame_header) { GstAV1ParserResult ret; + guint i; memset (frame_header, 0, sizeof (*frame_header)); frame_header->frame_is_intra = 1; + frame_header->last_frame_idx = -1; + frame_header->gold_frame_idx = -1; + for (i = 0; i < GST_AV1_REFS_PER_FRAME; i++) + frame_header->ref_frame_idx[i] = -1; ret = gst_av1_parse_uncompressed_frame_header (parser, obu, bit_reader, frame_header); diff --git a/gst-libs/gst/codecparsers/gstav1parser.h b/gst-libs/gst/codecparsers/gstav1parser.h index bdbe3e1..e4bcc43 100644 --- a/gst-libs/gst/codecparsers/gstav1parser.h +++ b/gst-libs/gst/codecparsers/gstav1parser.h @@ -1516,7 +1516,7 @@ struct _GstAV1FilmGrainParams { */ struct _GstAV1FrameHeaderOBU { gboolean show_existing_frame; - guint8 frame_to_show_map_idx; + gint8 frame_to_show_map_idx; guint32 frame_presentation_time; guint32 tu_presentation_delay; guint32 display_frame_id; @@ -1538,8 +1538,8 @@ struct _GstAV1FrameHeaderOBU { gboolean allow_intrabc; gboolean frame_refs_short_signaling; guint8 last_frame_idx; - guint8 gold_frame_idx; - guint8 ref_frame_idx[GST_AV1_REFS_PER_FRAME]; + gint8 gold_frame_idx; + gint8 ref_frame_idx[GST_AV1_REFS_PER_FRAME]; gboolean allow_high_precision_mv; gboolean is_motion_mode_switchable; gboolean use_ref_frame_mvs; @@ -1636,7 +1636,7 @@ struct _GstAV1TileListOBU { guint8 output_frame_height_in_tiles_minus_1; guint16 tile_count_minus_1; struct { - guint8 anchor_frame_idx; + gint8 anchor_frame_idx; guint8 anchor_tile_row; guint8 anchor_tile_col; guint16 tile_data_size_minus_1; -- 2.7.4