]> git.sesse.net Git - vlc/commitdiff
* do not set request on startup, we don't want autoplay
authorClément Stenac <zorglub@videolan.org>
Sat, 20 Nov 2004 13:59:39 +0000 (13:59 +0000)
committerClément Stenac <zorglub@videolan.org>
Sat, 20 Nov 2004 13:59:39 +0000 (13:59 +0000)
* fix bug in SDP parser

include/vlc_common.h
modules/gui/skins2/src/skin_main.cpp
modules/services_discovery/sap.c
src/playlist/playlist.c

index d702dfa2aff525520c8139452c0aa635d7c8ac78..e493d9a023b8b762a164a1d2cedfbcd0f1d98a10 100644 (file)
@@ -206,6 +206,7 @@ typedef struct msg_subscription_t msg_subscription_t;
  */
 typedef enum {
     PLAYLIST_PLAY,      /**< No arg.                            res=can fail*/
+    PLAYLIST_AUTOPLAY,  /**< No arg.                            res=cant fail*/
     PLAYLIST_VIEWPLAY,  /**< arg1= int, arg2= playlist_item_t*,*/
                         /**  arg3 = playlist_item_t*          , res=can fail */
     PLAYLIST_ITEMPLAY,  /** <arg1 = playlist_item_t *         , res=can fail */
index c23fa35be0082a070bd631ac9c1ebcdcdcdfae87..285c002a8181d59392a3da020d588e9f41166062 100644 (file)
@@ -235,7 +235,7 @@ static void Run( intf_thread_t *p_intf )
         if( p_playlist )
         {
             p_playlist->status.i_view = -1;
-            playlist_Play( p_playlist );
+            playlist_Control( p_playlist, PLAYLIST_AUTOPLAY );
             vlc_object_release( p_playlist );
         }
     }
index 87f7e2d11f85bef3e587450a1e90ab209d6c8818..3c5b8625c0b44bbd10f79ded48649a542ea260cc 100644 (file)
@@ -970,6 +970,7 @@ static sdp_t *  ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
 {
     sdp_t *p_sdp;
     vlc_bool_t b_invalid = VLC_FALSE;
+    vlc_bool_t b_end = VLC_FALSE;
 
     if( psz_sdp == NULL )
     {
@@ -978,7 +979,8 @@ static sdp_t *  ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
 
     if( psz_sdp[0] != 'v' || psz_sdp[1] != '=' )
     {
-        msg_Warn( p_obj, "bad SDP packet" );
+        msg_Warn( p_obj, "bad SDP packet, begins with 0x%x(%c) 0x%x(%c)",
+                         psz_sdp[0],psz_sdp[0],psz_sdp[1],psz_sdp[1]);
         return NULL;
     }
 
@@ -997,7 +999,7 @@ static sdp_t *  ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
     p_sdp->i_attributes    = 0;
     p_sdp->pp_attributes   = NULL;
 
-    while( *psz_sdp != '\0'  )
+    while( *psz_sdp != '\0' && b_end == VLC_FALSE  )
     {
         char *psz_eol;
         char *psz_eof;
@@ -1013,6 +1015,7 @@ static sdp_t *  ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
         if( ( psz_eol = strchr( psz_sdp, '\n' ) ) == NULL )
         {
             psz_eol = psz_sdp + strlen( psz_sdp );
+            b_end = VLC_TRUE;
         }
         if( psz_eol > psz_sdp && *( psz_eol - 1 ) == '\r' )
         {
index 71e3041c74639f02f081c34ba2871dee69fd7899..dcb9e46db3a2ab1de54e098456f24f35e71eaae1 100644 (file)
@@ -306,6 +306,12 @@ int playlist_vaControl( playlist_t * p_playlist, int i_query, va_list args )
         p_playlist->request.i_goto = -1;
         break;
 
+    case PLAYLIST_AUTOPLAY:
+        p_playlist->status.i_status = PLAYLIST_RUNNING;
+
+        p_playlist->request.b_request = VLC_FALSE;
+        break;
+
     case PLAYLIST_PAUSE:
         val.i_int = 0;
         if( p_playlist->p_input )
@@ -357,6 +363,7 @@ int playlist_vaControl( playlist_t * p_playlist, int i_query, va_list args )
     }
 
     vlc_mutex_unlock( &p_playlist->object_lock );
+    fprintf(stderr,"control done, request is %i\n", p_playlist->request.b_request);
     return VLC_SUCCESS;
 }
 
@@ -817,6 +824,10 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
             {
                 p_playlist->i_index++;
                 p_new = p_playlist->pp_items[p_playlist->i_index];
+                if( !(p_new->i_flags & PLAYLIST_SKIP_FLAG) )
+                {
+                    return NULL;
+                }
             }
             else
             {