mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 00:32:31 +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 */
|
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,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user