From ac5121eb018ec7da6a76c28cc4dcb41474731261 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Mon, 12 Sep 2011 11:17:20 +0100 Subject: [PATCH] h264parse: do not try to read from a non existent VUI https://bugzilla.gnome.org/show_bug.cgi?id=658800 --- gst-libs/gst/codecparsers/gsth264parser.c | 32 ++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c index 1378d3a..237190c 100644 --- a/gst-libs/gst/codecparsers/gsth264parser.c +++ b/gst-libs/gst/codecparsers/gsth264parser.c @@ -1468,19 +1468,25 @@ gst_h264_parse_sps (GstH264NalUnit * nalu, GstH264SPS * sps, sps->width = width; sps->height = height; - /* derive framerate */ - /* FIXME verify / also handle other cases */ - GST_LOG ("Framerate: %u %u %u %u", parse_vui_params, - vui->fixed_frame_rate_flag, sps->frame_mbs_only_flag, - vui->pic_struct_present_flag); - - if (parse_vui_params && vui->fixed_frame_rate_flag && - sps->frame_mbs_only_flag && !vui->pic_struct_present_flag) { - sps->fps_num = vui->time_scale; - sps->fps_den = vui->num_units_in_tick; - /* picture is a frame = 2 fields */ - sps->fps_den *= 2; - GST_LOG ("framerate %d/%d", sps->fps_num, sps->fps_den); + if (vui) { + /* derive framerate */ + /* FIXME verify / also handle other cases */ + GST_LOG ("Framerate: %u %u %u %u", parse_vui_params, + vui->fixed_frame_rate_flag, sps->frame_mbs_only_flag, + vui->pic_struct_present_flag); + + if (parse_vui_params && vui->fixed_frame_rate_flag && + sps->frame_mbs_only_flag && !vui->pic_struct_present_flag) { + sps->fps_num = vui->time_scale; + sps->fps_den = vui->num_units_in_tick; + /* picture is a frame = 2 fields */ + sps->fps_den *= 2; + GST_LOG ("framerate %d/%d", sps->fps_num, sps->fps_den); + } + } else { + sps->fps_num = 0; + sps->fps_den = 1; + GST_LOG ("No VUI, unknown framerate"); } sps->valid = TRUE; -- 2.7.4