]> git.sesse.net Git - vlc/commitdiff
asf: Fix packet length handling to be correct
authorJuho Vähä-Herttua <juhovh@iki.fi>
Fri, 16 Jul 2010 11:50:51 +0000 (14:50 +0300)
committerJean-Baptiste Kempf <jb@videolan.org>
Sat, 17 Jul 2010 12:54:00 +0000 (14:54 +0200)
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
modules/demux/asf/asf.c

index e408296e25a703dc4e2934be5d96473489a49f5b..9294d2209f60678349f15a49806ab7e6eb428e96 100644 (file)
@@ -466,11 +466,17 @@ static int DemuxPacket( demux_t *p_demux )
         goto loop_error_recovery;
     }
 
+    if( i_packet_length < i_data_packet_min )
+    {
+        /* if packet length too short, there is extra padding */
+        i_packet_padding_length += i_data_packet_min - i_packet_length;
+        i_packet_length = i_data_packet_min;
+    }
+
     i_packet_send_time = GetDWLE( p_peek + i_skip ); i_skip += 4;
     i_packet_duration  = GetWLE( p_peek + i_skip ); i_skip += 2;
 
-    /* FIXME I have to do that for some file, I don't known why */
-    i_packet_size_left = i_data_packet_min /*i_packet_length*/ ;
+    i_packet_size_left = i_packet_length;
 
     if( b_packet_multiple_payload )
     {