|
|
|
@@ -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, |
|
|
|
}; |