summaryrefslogtreecommitdiff
path: root/sys/vdpau
diff options
context:
space:
mode:
authorThibault Saunier <thibault.saunier@collabora.com>2012-03-10 19:10:52 -0300
committerThibault Saunier <thibault.saunier@collabora.com>2012-03-10 19:22:07 -0300
commit20669d461a4953eb5ed01374d5ab628b4dc73b64 (patch)
tree5647a44580eba66f6b360066f90406f0779f121f /sys/vdpau
parenta7eda9ed4942e24f0a3971c3591af54cc4cd9a5b (diff)
downloadgstreamer-plugins-bad-20669d461a4953eb5ed01374d5ab628b4dc73b64.tar.gz
Fix 'ignoring return value of function declared with const attribute'
This always happens with GstByteReader/Writer and friends when not taking into account returned boolean of the _read/_write functions (which is actually wrong). Make use of the *_unchecked variant as much as possible, or take the returned value into account.
Diffstat (limited to 'sys/vdpau')
-rw-r--r--sys/vdpau/h264/gstvdph264dec.c18
-rw-r--r--sys/vdpau/mpeg/gstvdpmpegdec.c11
2 files changed, 16 insertions, 13 deletions
diff --git a/sys/vdpau/h264/gstvdph264dec.c b/sys/vdpau/h264/gstvdph264dec.c
index d7af47b6f..71893ca0b 100644
--- a/sys/vdpau/h264/gstvdph264dec.c
+++ b/sys/vdpau/h264/gstvdph264dec.c
@@ -687,23 +687,25 @@ gst_vdp_h264_dec_parse_data (GstBaseVideoDecoder * base_video_decoder,
gst_bit_reader_init_from_buffer (&reader, buf);
+ if (gst_bit_reader_get_remaining (&reader) <
+ h264_dec->nal_length_size * 8 + 7)
+ goto invalid_packet;
+
/* skip nal_length or sync code */
- gst_bit_reader_skip (&reader, h264_dec->nal_length_size * 8);
+ gst_bit_reader_skip_unchecked (&reader, h264_dec->nal_length_size * 8);
+
+ forbidden_zero_bit = gst_bit_reader_get_bits_uint8_unchecked (&reader, 1);
- if (!gst_bit_reader_get_bits_uint8 (&reader, &forbidden_zero_bit, 1))
- goto invalid_packet;
if (forbidden_zero_bit != 0) {
GST_WARNING ("forbidden_zero_bit != 0");
return GST_FLOW_ERROR;
}
- if (!gst_bit_reader_get_bits_uint16 (&reader, &nal_unit.ref_idc, 2))
- goto invalid_packet;
+ nal_unit.ref_idc = gst_bit_reader_get_bits_uint16_unchecked (&reader, 2);
GST_DEBUG ("nal_ref_idc: %u", nal_unit.ref_idc);
/* read nal_unit_type */
- if (!gst_bit_reader_get_bits_uint16 (&reader, &nal_unit.type, 5))
- goto invalid_packet;
+ nal_unit.type = gst_bit_reader_get_bits_uint16_unchecked (&reader, 5);
GST_DEBUG ("nal_unit_type: %u", nal_unit.type);
if (nal_unit.type == 14 || nal_unit.type == 20) {
@@ -716,7 +718,7 @@ gst_vdp_h264_dec_parse_data (GstBaseVideoDecoder * base_video_decoder,
size = gst_bit_reader_get_remaining (&reader) / 8;
i = size - 1;
- while (size > 0 && data[i] == 0x00) {
+ while ((gint) size > 0 && data[i] == 0x00) {
size--;
i--;
}
diff --git a/sys/vdpau/mpeg/gstvdpmpegdec.c b/sys/vdpau/mpeg/gstvdpmpegdec.c
index 6a473e48e..87456eb78 100644
--- a/sys/vdpau/mpeg/gstvdpmpegdec.c
+++ b/sys/vdpau/mpeg/gstvdpmpegdec.c
@@ -415,12 +415,14 @@ gst_vdp_mpeg_dec_parse_data (GstBaseVideoDecoder * base_video_decoder,
GstBitReader b_reader = GST_BIT_READER_INIT_FROM_BUFFER (buf);
guint8 start_code;
+ if (gst_bit_reader_get_remaining (&b_reader) < 8 * 3 + 8)
+ return GST_FLOW_ERROR;
+
/* skip sync_code */
- gst_bit_reader_skip (&b_reader, 8 * 3);
+ gst_bit_reader_skip_unchecked (&b_reader, 8 * 3);
/* start_code */
- if (!gst_bit_reader_get_bits_uint8 (&b_reader, &start_code, 8))
- return GST_FLOW_ERROR;
+ start_code = gst_bit_reader_get_bits_uint8_unchecked (&b_reader, 8);
mpeg_frame = GST_VDP_MPEG_FRAME_CAST (frame);
@@ -624,8 +626,7 @@ gst_vdp_mpeg_dec_base_init (gpointer gclass)
"Decode mpeg stream with vdpau",
"Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com>");
- gst_element_class_add_static_pad_template (element_class,
- &sink_template);
+ gst_element_class_add_static_pad_template (element_class, &sink_template);
}
/* initialize the vdpaumpegdecoder's class */