@ -99,6 +99,7 @@ int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
if ( av_strstart ( p , " pgmpu:data:application/vnd.ms.wms-hdr.asfv1;base64, " , & p ) ) {
if ( av_strstart ( p , " pgmpu:data:application/vnd.ms.wms-hdr.asfv1;base64, " , & p ) ) {
AVIOContext pb ;
AVIOContext pb ;
RTSPState * rt = s - > priv_data ;
RTSPState * rt = s - > priv_data ;
AVDictionary * opts = NULL ;
int len = strlen ( p ) * 6 / 8 ;
int len = strlen ( p ) * 6 / 8 ;
char * buf = av_mallocz ( len ) ;
char * buf = av_mallocz ( len ) ;
av_base64_decode ( buf , p , len ) ;
av_base64_decode ( buf , p , len ) ;
@ -113,7 +114,9 @@ int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
if ( ! ( rt - > asf_ctx = avformat_alloc_context ( ) ) )
if ( ! ( rt - > asf_ctx = avformat_alloc_context ( ) ) )
return AVERROR ( ENOMEM ) ;
return AVERROR ( ENOMEM ) ;
rt - > asf_ctx - > pb = & pb ;
rt - > asf_ctx - > pb = & pb ;
ret = avformat_open_input ( & rt - > asf_ctx , " " , & ff_asf_demuxer , NULL ) ;
av_dict_set ( & opts , " no_resync_search " , " 1 " , 0 ) ;
ret = avformat_open_input ( & rt - > asf_ctx , " " , & ff_asf_demuxer , & opts ) ;
av_dict_free ( & opts ) ;
if ( ret < 0 )
if ( ret < 0 )
return ret ;
return ret ;
av_dict_copy ( & s - > metadata , rt - > asf_ctx - > metadata , 0 ) ;
av_dict_copy ( & s - > metadata , rt - > asf_ctx - > metadata , 0 ) ;