From 621fd01281efa920abc06a3696aeae35a2a32d08 Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Tue, 16 Aug 2011 16:19:02 +0200 Subject: [PATCH] codecparsers: h264: fix pred_weight_table() parsing. Use 16-bit signed integer values for weight values because valid ranges are -128 to +128 inclusive. --- gst-libs/gst/codecparsers/gsth264parser.c | 1 + gst-libs/gst/codecparsers/gsth264parser.h | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c index a89dc1cfd7..ad7a067fb0 100644 --- a/gst-libs/gst/codecparsers/gsth264parser.c +++ b/gst-libs/gst/codecparsers/gsth264parser.c @@ -827,6 +827,7 @@ gst_h264_slice_parse_pred_weight_table (GstH264SliceHdr * slice, NalReader * nr, guint8 chroma_array_type) { GstH264PredWeightTable *p; + gint16 default_luma_weight, default_chroma_weight; gint i; GST_DEBUG ("parsing \"Prediction weight table\""); diff --git a/gst-libs/gst/codecparsers/gsth264parser.h b/gst-libs/gst/codecparsers/gsth264parser.h index b8de5759f4..56c9883ed4 100644 --- a/gst-libs/gst/codecparsers/gsth264parser.h +++ b/gst-libs/gst/codecparsers/gsth264parser.h @@ -474,19 +474,20 @@ struct _GstH264PredWeightTable guint8 luma_log2_weight_denom; guint8 chroma_log2_weight_denom; - guint8 luma_weight_l0[32]; - guint8 luma_offset_l0[32]; + gint16 luma_weight_l0[32]; + gint8 luma_offset_l0[32]; /* if seq->ChromaArrayType != 0 */ - guint8 chroma_weight_l0[32][2]; - guint8 chroma_offset_l0[32][2]; + gint16 chroma_weight_l0[32][2]; + gint8 chroma_offset_l0[32][2]; /* if slice->slice_type % 5 == 1 */ - guint8 luma_weight_l1[32]; - guint8 luma_offset_l1[32]; + gint16 luma_weight_l1[32]; + gint8 luma_offset_l1[32]; + /* and if seq->ChromaArrayType != 0 */ - guint8 chroma_weight_l1[32][2]; - guint8 chroma_offset_l1[32][2]; + gint16 chroma_weight_l1[32][2]; + gint8 chroma_offset_l1[32][2]; }; struct _GstH264RefPicMarking