]> git.sesse.net Git - vlc/commitdiff
live555: Fix TCP rollover
authorDerk-Jan Hartman <hartman@videolan.org>
Mon, 21 Jul 2008 12:35:12 +0000 (14:35 +0200)
committerDerk-Jan Hartman <hartman@videolan.org>
Mon, 21 Jul 2008 12:35:12 +0000 (14:35 +0200)
* Always go trough Connect on rollover. even in the case of SDP files. (The check was also wrong. It should have been || instead of &&)
* Return from demux after initiating TCP rollover. Bug introduced by [fed83de55cdaf7f623a16f1051d97d450c44ad63]
* Delete initiated streams during TCP rollover. We will make new ones later on.

modules/demux/live555.cpp

index 63791817a2941a8cbeffe95866a700290ed6e51d..8f819c6ef0a9729ce2892cba0260cecf16cbb92b 100644 (file)
@@ -1206,6 +1206,7 @@ static int Demux( demux_t *p_demux )
                 msg_Err( p_demux, "TCP rollover failed, aborting" );
                 return 0;
             }
+            return 1;
         }
         msg_Err( p_demux, "no data received in 10s, aborting" );
         return 0;
@@ -1464,6 +1465,7 @@ static int RollOverTcp( demux_t *p_demux )
         live_track_t *tk = p_sys->track[i];
 
         if( tk->b_muxed ) stream_DemuxDelete( tk->p_out_muxed );
+        if( tk->p_es ) es_out_Del( p_demux->out, tk->p_es );
         es_format_Clean( &tk->fmt );
         free( tk->p_buffer );
         free( tk );
@@ -1481,8 +1483,7 @@ static int RollOverTcp( demux_t *p_demux )
     p_sys->i_track = 0;
 
     /* Reopen rtsp client */
-    if( ( p_demux->s != NULL ) &&
-        ( i_return = Connect( p_demux ) ) != VLC_SUCCESS )
+    if( ( i_return = Connect( p_demux ) ) != VLC_SUCCESS )
     {
         msg_Err( p_demux, "Failed to connect with rtsp://%s",
                  p_sys->psz_path );