From 75b436d8b682db6f402fdb0561661ec5c0203cfc Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 27 Nov 2016 17:42:50 +0100 Subject: ffserver: Remove use of AVStream as a intermediate to store parameters Reviewed-by: "Reynaldo H. Verdejo Pinochet" Signed-off-by: Michael Niedermayer --- ffserver_config.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'ffserver_config.h') diff --git a/ffserver_config.h b/ffserver_config.h index 0bd4cfc762..373767b4ad 100644 --- a/ffserver_config.h +++ b/ffserver_config.h @@ -49,6 +49,24 @@ typedef struct FFServerIPAddressACL { struct in_addr last; } FFServerIPAddressACL; +/** + * This holds the stream parameters for an AVStream, it cannot be a AVStream + * because AVStreams cannot be instanciated without a AVFormatContext, especially + * not outside libavformat. + * + * The fields of this struct have the same semantics as the fields of an AVStream. + */ +typedef struct LayeredAVStream { + int index; + int id; + AVCodecParameters *codecpar; + AVCodecContext *codec; + AVRational time_base; + int pts_wrap_bits; + AVRational sample_aspect_ratio; + char *recommended_encoder_configuration; +} LayeredAVStream; + /* description of each stream of the ffserver.conf file */ typedef struct FFServerStream { enum FFServerStreamType stream_type; @@ -64,7 +82,7 @@ typedef struct FFServerStream { int prebuffer; /* Number of milliseconds early to start */ int64_t max_time; /* Number of milliseconds to run */ int send_on_key; - AVStream *streams[FFSERVER_MAX_STREAMS]; + LayeredAVStream *streams[FFSERVER_MAX_STREAMS]; int feed_streams[FFSERVER_MAX_STREAMS]; /* index of streams in the feed */ char feed_filename[1024]; /* file name of the feed storage, or input file name for a stream */ -- cgit v1.2.3