ac3parse: request at least 8 bytes to properly parse header
authorMatej Knopp <matej.knopp@gmail.com>
Sun, 4 Jan 2015 14:57:10 +0000 (15:57 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 8 Jan 2015 13:45:23 +0000 (14:45 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=742325

gst/audioparsers/gstac3parse.c

index 50c676a..c166dc8 100644 (file)
@@ -219,7 +219,7 @@ gst_ac3_parse_reset (GstAc3Parse * ac3parse)
 static void
 gst_ac3_parse_init (GstAc3Parse * ac3parse)
 {
-  gst_base_parse_set_min_frame_size (GST_BASE_PARSE (ac3parse), 6);
+  gst_base_parse_set_min_frame_size (GST_BASE_PARSE (ac3parse), 8);
   gst_ac3_parse_reset (ac3parse);
   ac3parse->baseparse_chainfunc =
       GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (ac3parse))->chainfunc;
@@ -509,7 +509,7 @@ gst_ac3_parse_handle_frame (GstBaseParse * parse,
 
   gst_buffer_map (buf, &map, GST_MAP_READ);
 
-  if (G_UNLIKELY (map.size < 6)) {
+  if (G_UNLIKELY (map.size < 8)) {
     *skipsize = 1;
     goto cleanup;
   }
@@ -601,7 +601,7 @@ gst_ac3_parse_handle_frame (GstBaseParse * parse,
     if (more || !gst_byte_reader_skip (&reader, frmsiz) ||
         !gst_byte_reader_get_uint16_be (&reader, &word)) {
       GST_DEBUG_OBJECT (ac3parse, "... but not sufficient data");
-      gst_base_parse_set_min_frame_size (parse, framesize + 6);
+      gst_base_parse_set_min_frame_size (parse, framesize + 8);
       *skipsize = 0;
       goto cleanup;
     } else {