]> git.sesse.net Git - vlc/blobdiff - modules/packetizer/mpeg4video.c
Change the podcast-urls config option to auto save.
[vlc] / modules / packetizer / mpeg4video.c
index a5930d903190cae5f1b67fa6b431b2a00d1af3c7..00ce8ac9f7f08df544eab90725a831e03cf29815 100644 (file)
@@ -26,7 +26,6 @@
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <stdlib.h>                                      /* malloc(), free() */
 
 #include <vlc/vlc.h>
 #include <vlc_sout.h>
@@ -224,12 +223,26 @@ static block_t *Packetize( decoder_t *p_dec, block_t **pp_block )
 
     if( pp_block == NULL || *pp_block == NULL ) return NULL;
 
-    if( (*pp_block)->i_flags & BLOCK_FLAG_DISCONTINUITY )
+    if( (*pp_block)->i_flags&(BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED) )
     {
-        p_sys->i_state = STATE_NOSYNC;
-        if( p_sys->p_frame ) block_ChainRelease( p_sys->p_frame );
-        p_sys->p_frame = NULL;
-        p_sys->pp_last = &p_sys->p_frame;
+        if( (*pp_block)->i_flags&BLOCK_FLAG_CORRUPTED )
+        {
+            p_sys->i_state = STATE_NOSYNC;
+            block_BytestreamFlush( &p_sys->bytestream );
+
+            if( p_sys->p_frame )
+                block_ChainRelease( p_sys->p_frame );
+            p_sys->p_frame = NULL;
+            p_sys->pp_last = &p_sys->p_frame;
+        }
+//        p_sys->i_interpolated_pts =
+//        p_sys->i_interpolated_dts =
+//        p_sys->i_last_ref_pts =
+//        p_sys->i_last_time_ref =
+//        p_sys->i_time_ref =
+//        p_sys->i_last_time =
+//        p_sys->i_last_timeincr = 0;
+
         block_Release( *pp_block );
         return NULL;
     }