mirror of
https://github.com/videolan/vlc.git
synced 2025-01-25 09:06:20 +08:00
* do not set request on startup, we don't want autoplay
* fix bug in SDP parser
This commit is contained in:
parent
c99306221c
commit
beba583035
@ -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 */
|
||||
|
@ -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 );
|
||||
}
|
||||
}
|
||||
|
@ -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' )
|
||||
{
|
||||
|
@ -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
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user