X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffserver_config.h;h=48d38dc3250b313cbdbe1bd31640ec167b992f7b;hb=265d45183be13a43dc08d962a5a60b15e6eff6c0;hp=0bd4cfc762ea6123661dbd451a3d5a9d33c1c105;hpb=47f75839e4995922f18d9eb2a49cf2ac3e8724ad;p=ffmpeg diff --git a/ffserver_config.h b/ffserver_config.h index 0bd4cfc762e..48d38dc3250 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 */ @@ -104,6 +122,7 @@ typedef struct FFServerConfig { unsigned int nb_max_connections; uint64_t max_bandwidth; int debug; + int bitexact; char logfilename[1024]; struct sockaddr_in http_addr; struct sockaddr_in rtsp_addr;