summaryrefslogtreecommitdiffstats
path: root/gst/h264parse
diff options
context:
space:
mode:
authorDave Robillard <dave@drobilla.net>2009-06-22 17:04:22 -0400
committerDave Robillard <dave@drobilla.net>2009-06-22 17:04:22 -0400
commit7a7083ba1f8e38b0b51820d4a37f279c6b2c73bd (patch)
tree5fb2f44346d722fa2c707854a187cb2ab8dff1af /gst/h264parse
parenta6389f9a9220e11110778ec46b6c12abeb058d94 (diff)
parent218878de5ea48b5acdf36070a73a50fd71f41741 (diff)
downloadgst-plugins-bad-7a7083ba1f8e38b0b51820d4a37f279c6b2c73bd.tar.gz
gst-plugins-bad-7a7083ba1f8e38b0b51820d4a37f279c6b2c73bd.tar.bz2
gst-plugins-bad-7a7083ba1f8e38b0b51820d4a37f279c6b2c73bd.zip
Merge branch 'fdo' into lv2
Diffstat (limited to 'gst/h264parse')
-rw-r--r--gst/h264parse/gsth264parse.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gst/h264parse/gsth264parse.c b/gst/h264parse/gsth264parse.c
index bea4a600..ebc4360d 100644
--- a/gst/h264parse/gsth264parse.c
+++ b/gst/h264parse/gsth264parse.c
@@ -464,6 +464,16 @@ gst_h264_parse_chain_forward (GstH264Parse * h264parse, gboolean discont,
for (i = 0; i < h264parse->nal_length_size; i++)
nalu_size = (nalu_size << 8) | data[i];
+ GST_LOG_OBJECT (h264parse, "got NALU size %u", nalu_size);
+
+ /* check for invalid NALU sizes, assume the size if the available bytes
+ * when something is fishy */
+ if (nalu_size <= 1 || nalu_size + h264parse->nal_length_size > avail) {
+ nalu_size = avail - h264parse->nal_length_size;
+ GST_DEBUG_OBJECT (h264parse, "fixing invalid NALU size to %u",
+ nalu_size);
+ }
+
/* Packetized format, see if we have to split it, usually splitting is not
* a good idea as decoders have no way of handling it. */
if (h264parse->split_packetized) {