mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-24 16:22:37 +00:00
rtspdec: add initial_pause private option.
Deprecate corresponding AVFormatParameters field.
This commit is contained in:
parent
89d1b7f406
commit
4779f59378
@ -241,9 +241,9 @@ typedef struct AVFormatParameters {
|
||||
attribute_deprecated unsigned int mpeg2ts_raw:1; /**< deprecated, use mpegtsraw demuxer */
|
||||
/**< deprecated, use mpegtsraw demuxer-specific options instead */
|
||||
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
|
||||
unsigned int initial_pause:1; /**< Do not begin to play the stream
|
||||
immediately (RTSP only). */
|
||||
unsigned int prealloced_context:1;
|
||||
} AVFormatParameters;
|
||||
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include "network.h"
|
||||
#include "httpauth.h"
|
||||
|
||||
#include "libavutil/log.h"
|
||||
|
||||
/**
|
||||
* Network layer over which RTP/etc packet data will be transported.
|
||||
*/
|
||||
@ -196,6 +198,7 @@ enum RTSPServerType {
|
||||
* @todo Use AVIOContext instead of URLContext
|
||||
*/
|
||||
typedef struct RTSPState {
|
||||
const AVClass *class; /**< Class for private options. */
|
||||
URLContext *rtsp_hd; /* RTSP TCP connection handle */
|
||||
|
||||
/** number of items in the 'rtsp_streams' variable */
|
||||
@ -336,6 +339,11 @@ typedef struct RTSPState {
|
||||
* Whether the server supports the GET_PARAMETER method.
|
||||
*/
|
||||
int get_parameter_supported;
|
||||
|
||||
/**
|
||||
* Do not begin to play the stream immediately.
|
||||
*/
|
||||
int initial_pause;
|
||||
} RTSPState;
|
||||
|
||||
/**
|
||||
|
@ -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,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user