Deprecate corresponding AVFormatParameters field.tags/n0.8
| @@ -241,9 +241,9 @@ typedef struct AVFormatParameters { | |||||
| attribute_deprecated unsigned int mpeg2ts_raw:1; /**< deprecated, use mpegtsraw demuxer */ | attribute_deprecated unsigned int mpeg2ts_raw:1; /**< deprecated, use mpegtsraw demuxer */ | ||||
| /**< deprecated, use mpegtsraw demuxer-specific options instead */ | /**< deprecated, use mpegtsraw demuxer-specific options instead */ | ||||
| attribute_deprecated unsigned int mpeg2ts_compute_pcr:1; | attribute_deprecated unsigned int mpeg2ts_compute_pcr:1; | ||||
| attribute_deprecated unsigned int initial_pause:1; /**< Do not begin to play the stream | |||||
| immediately (RTSP only). */ | |||||
| #endif | #endif | ||||
| unsigned int initial_pause:1; /**< Do not begin to play the stream | |||||
| immediately (RTSP only). */ | |||||
| unsigned int prealloced_context:1; | unsigned int prealloced_context:1; | ||||
| } AVFormatParameters; | } AVFormatParameters; | ||||
| @@ -28,6 +28,8 @@ | |||||
| #include "network.h" | #include "network.h" | ||||
| #include "httpauth.h" | #include "httpauth.h" | ||||
| #include "libavutil/log.h" | |||||
| /** | /** | ||||
| * Network layer over which RTP/etc packet data will be transported. | * Network layer over which RTP/etc packet data will be transported. | ||||
| */ | */ | ||||
| @@ -196,6 +198,7 @@ enum RTSPServerType { | |||||
| * @todo Use AVIOContext instead of URLContext | * @todo Use AVIOContext instead of URLContext | ||||
| */ | */ | ||||
| typedef struct RTSPState { | typedef struct RTSPState { | ||||
| const AVClass *class; /**< Class for private options. */ | |||||
| URLContext *rtsp_hd; /* RTSP TCP connection handle */ | URLContext *rtsp_hd; /* RTSP TCP connection handle */ | ||||
| /** number of items in the 'rtsp_streams' variable */ | /** number of items in the 'rtsp_streams' variable */ | ||||
| @@ -336,6 +339,11 @@ typedef struct RTSPState { | |||||
| * Whether the server supports the GET_PARAMETER method. | * Whether the server supports the GET_PARAMETER method. | ||||
| */ | */ | ||||
| int get_parameter_supported; | int get_parameter_supported; | ||||
| /** | |||||
| * Do not begin to play the stream immediately. | |||||
| */ | |||||
| int initial_pause; | |||||
| } RTSPState; | } RTSPState; | ||||
| /** | /** | ||||
| @@ -21,6 +21,7 @@ | |||||
| #include "libavutil/avstring.h" | #include "libavutil/avstring.h" | ||||
| #include "libavutil/intreadwrite.h" | #include "libavutil/intreadwrite.h" | ||||
| #include "libavutil/opt.h" | |||||
| #include "avformat.h" | #include "avformat.h" | ||||
| #include "internal.h" | #include "internal.h" | ||||
| @@ -165,7 +166,12 @@ static int rtsp_read_header(AVFormatContext *s, | |||||
| return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
| rt->real_setup = rt->real_setup_cache + s->nb_streams; | 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 */ | /* do not start immediately */ | ||||
| } else { | } else { | ||||
| if (rtsp_read_play(s) < 0) { | if (rtsp_read_play(s) < 0) { | ||||
| @@ -399,6 +405,18 @@ static int rtsp_read_close(AVFormatContext *s) | |||||
| return 0; | 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 = { | AVInputFormat ff_rtsp_demuxer = { | ||||
| "rtsp", | "rtsp", | ||||
| NULL_IF_CONFIG_SMALL("RTSP input format"), | NULL_IF_CONFIG_SMALL("RTSP input format"), | ||||
| @@ -411,4 +429,5 @@ AVInputFormat ff_rtsp_demuxer = { | |||||
| .flags = AVFMT_NOFILE, | .flags = AVFMT_NOFILE, | ||||
| .read_play = rtsp_read_play, | .read_play = rtsp_read_play, | ||||
| .read_pause = rtsp_read_pause, | .read_pause = rtsp_read_pause, | ||||
| .priv_class = &rtsp_demuxer_class, | |||||
| }; | }; | ||||