@ -21,6 +21,7 @@
# include "libavutil/avstring.h"
# include "libavutil/intreadwrite.h"
# include "libavutil/opt.h"
# include "avformat.h"
# include "internal.h"
@ -165,7 +166,12 @@ static int rtsp_read_header(AVFormatContext *s,
return AVERROR ( ENOMEM ) ;
rt - > real_setup = rt - > real_setup_cache + s - > nb_streams ;
if ( ap - > initial_pause ) {
# if FF_API_FORMAT_PARAMETERS
if ( ap - > initial_pause )
rt - > initial_pause = ap - > initial_pause ;
# endif
if ( rt - > initial_pause ) {
/* do not start immediately */
} else {
if ( rtsp_read_play ( s ) < 0 ) {
@ -399,6 +405,18 @@ static int rtsp_read_close(AVFormatContext *s)
return 0 ;
}
static const AVOption options [ ] = {
{ " initial_pause " , " Don't start playing the stream immediately " , offsetof ( RTSPState , initial_pause ) , FF_OPT_TYPE_INT , { . dbl = 0 } , 0 , 1 , AV_OPT_FLAG_DECODING_PARAM } ,
{ NULL } ,
} ;
const AVClass rtsp_demuxer_class = {
. class_name = " RTSP demuxer " ,
. item_name = av_default_item_name ,
. option = options ,
. version = LIBAVUTIL_VERSION_INT ,
} ;
AVInputFormat ff_rtsp_demuxer = {
" rtsp " ,
NULL_IF_CONFIG_SMALL ( " RTSP input format " ) ,
@ -411,4 +429,5 @@ AVInputFormat ff_rtsp_demuxer = {
. flags = AVFMT_NOFILE ,
. read_play = rtsp_read_play ,
. read_pause = rtsp_read_pause ,
. priv_class = & rtsp_demuxer_class ,
} ;