From 115e158a582e3ea29d96da965743e15820223e1f Mon Sep 17 00:00:00 2001 From: "sangkyu.choi" Date: Wed, 8 Jul 2015 13:47:40 +0900 Subject: [PATCH] mpegaudioparse: dummy data skip condition Detailed Notes: we consider the 0xff data following mp3 header (0xffff) as the invalid data --- gst/audioparsers/gstmpegaudioparse.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c index 88d31bf..a08c5fa 100644 --- a/gst/audioparsers/gstmpegaudioparse.c +++ b/gst/audioparsers/gstmpegaudioparse.c @@ -612,6 +612,7 @@ gst_mpeg_audio_parse_handle_frame (GstBaseParse * parse, guint bitrate, layer, rate, channels, version, mode, crc; GstMapInfo map; gboolean res = FALSE; + gsize dummySize = 0; gst_buffer_map (buf, &map, GST_MAP_READ); if (G_UNLIKELY (map.size < 6)) { @@ -621,6 +622,15 @@ gst_mpeg_audio_parse_handle_frame (GstBaseParse * parse, gst_byte_reader_init (&reader, map.data, map.size); + while (dummySize < map.size && map.data[dummySize] == 0xff) { + dummySize++; + } + + if (dummySize == map.size) { + *skipsize = map.size - 3; + goto cleanup; + } + off = gst_byte_reader_masked_scan_uint32 (&reader, 0xffe00000, 0xffe00000, 0, map.size); -- 1.9.1