[FFmpeg-devel] [PATCH]Ignore es_map_length when parsing mpeg program stream map

Carl Eugen Hoyos cehoyos at ag.or.at
Thu Dec 5 01:08:07 CET 2013


Hi!

Attached patch fixes ticket #3195 for me, vlc ignores the es_map_length since 
2004 (forever) and since the function returns psm_length, I guess it has to 
be correct for the stream to work at all or am I wrong?

Please review, Carl Eugen
-------------- next part --------------
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 90434a1..1777283 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -193,6 +193,8 @@ static long mpegps_psm_parse(MpegDemuxContext *m, AVIOContext *pb)
     /* skip program_stream_info */
     avio_skip(pb, ps_info_length);
     es_map_length = avio_rb16(pb);
+    /* Ignore es_map_length, trust psm_length */
+    es_map_length = psm_length - ps_info_length - 10;
 
     /* at least one es available? */
     while (es_map_length >= 4){


More information about the ffmpeg-devel mailing list