Commit beba5830 authored by Clément Stenac's avatar Clément Stenac

* do not set request on startup, we don't want autoplay

* fix bug in SDP parser
parent c9930622
...@@ -206,6 +206,7 @@ typedef struct msg_subscription_t msg_subscription_t; ...@@ -206,6 +206,7 @@ typedef struct msg_subscription_t msg_subscription_t;
*/ */
typedef enum { typedef enum {
PLAYLIST_PLAY, /**< No arg. res=can fail*/ PLAYLIST_PLAY, /**< No arg. res=can fail*/
PLAYLIST_AUTOPLAY, /**< No arg. res=cant fail*/
PLAYLIST_VIEWPLAY, /**< arg1= int, arg2= playlist_item_t*,*/ PLAYLIST_VIEWPLAY, /**< arg1= int, arg2= playlist_item_t*,*/
/** arg3 = playlist_item_t* , res=can fail */ /** arg3 = playlist_item_t* , res=can fail */
PLAYLIST_ITEMPLAY, /** <arg1 = playlist_item_t * , res=can fail */ PLAYLIST_ITEMPLAY, /** <arg1 = playlist_item_t * , res=can fail */
......
...@@ -235,7 +235,7 @@ static void Run( intf_thread_t *p_intf ) ...@@ -235,7 +235,7 @@ static void Run( intf_thread_t *p_intf )
if( p_playlist ) if( p_playlist )
{ {
p_playlist->status.i_view = -1; p_playlist->status.i_view = -1;
playlist_Play( p_playlist ); playlist_Control( p_playlist, PLAYLIST_AUTOPLAY );
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
} }
} }
......
...@@ -970,6 +970,7 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp ) ...@@ -970,6 +970,7 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
{ {
sdp_t *p_sdp; sdp_t *p_sdp;
vlc_bool_t b_invalid = VLC_FALSE; vlc_bool_t b_invalid = VLC_FALSE;
vlc_bool_t b_end = VLC_FALSE;
if( psz_sdp == NULL ) if( psz_sdp == NULL )
{ {
...@@ -978,7 +979,8 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp ) ...@@ -978,7 +979,8 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
if( psz_sdp[0] != 'v' || psz_sdp[1] != '=' ) 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; return NULL;
} }
...@@ -997,7 +999,7 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp ) ...@@ -997,7 +999,7 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
p_sdp->i_attributes = 0; p_sdp->i_attributes = 0;
p_sdp->pp_attributes = NULL; p_sdp->pp_attributes = NULL;
while( *psz_sdp != '\0' ) while( *psz_sdp != '\0' && b_end == VLC_FALSE )
{ {
char *psz_eol; char *psz_eol;
char *psz_eof; char *psz_eof;
...@@ -1013,6 +1015,7 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp ) ...@@ -1013,6 +1015,7 @@ static sdp_t * ParseSDP( vlc_object_t *p_obj, char* psz_sdp )
if( ( psz_eol = strchr( psz_sdp, '\n' ) ) == NULL ) if( ( psz_eol = strchr( psz_sdp, '\n' ) ) == NULL )
{ {
psz_eol = psz_sdp + strlen( psz_sdp ); psz_eol = psz_sdp + strlen( psz_sdp );
b_end = VLC_TRUE;
} }
if( psz_eol > psz_sdp && *( psz_eol - 1 ) == '\r' ) if( psz_eol > psz_sdp && *( psz_eol - 1 ) == '\r' )
{ {
......
...@@ -306,6 +306,12 @@ int playlist_vaControl( playlist_t * p_playlist, int i_query, va_list args ) ...@@ -306,6 +306,12 @@ int playlist_vaControl( playlist_t * p_playlist, int i_query, va_list args )
p_playlist->request.i_goto = -1; p_playlist->request.i_goto = -1;
break; break;
case PLAYLIST_AUTOPLAY:
p_playlist->status.i_status = PLAYLIST_RUNNING;
p_playlist->request.b_request = VLC_FALSE;
break;
case PLAYLIST_PAUSE: case PLAYLIST_PAUSE:
val.i_int = 0; val.i_int = 0;
if( p_playlist->p_input ) if( p_playlist->p_input )
...@@ -357,6 +363,7 @@ int playlist_vaControl( playlist_t * p_playlist, int i_query, va_list args ) ...@@ -357,6 +363,7 @@ int playlist_vaControl( playlist_t * p_playlist, int i_query, va_list args )
} }
vlc_mutex_unlock( &p_playlist->object_lock ); vlc_mutex_unlock( &p_playlist->object_lock );
fprintf(stderr,"control done, request is %i\n", p_playlist->request.b_request);
return VLC_SUCCESS; return VLC_SUCCESS;
} }
...@@ -817,6 +824,10 @@ static playlist_item_t * NextItem( playlist_t *p_playlist ) ...@@ -817,6 +824,10 @@ static playlist_item_t * NextItem( playlist_t *p_playlist )
{ {
p_playlist->i_index++; p_playlist->i_index++;
p_new = p_playlist->pp_items[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 else
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment