X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg.h;h=e1d4593b279f682aabf7c84501565d938bf3c49e;hb=0ad71ed6f98e43fe99e642e95eb14436820521c7;hp=49d65d8461ef8c6b3129826e05622603c789e290;hpb=1b04ea1a6c237a94f81d1b8f8a42fae46fbeacab;p=ffmpeg diff --git a/ffmpeg.h b/ffmpeg.h index 49d65d8461e..e1d4593b279 100644 --- a/ffmpeg.h +++ b/ffmpeg.h @@ -212,6 +212,8 @@ typedef struct OptionsContext { int nb_pass; SpecifierOpt *passlogfiles; int nb_passlogfiles; + SpecifierOpt *max_muxing_queue_size; + int nb_max_muxing_queue_size; SpecifierOpt *guess_layout_max; int nb_guess_layout_max; SpecifierOpt *apad; @@ -287,7 +289,6 @@ typedef struct InputStream { double ts_scale; int saw_first_ts; - int showed_multi_packet_warning; AVDictionary *decoder_opts; AVRational framerate; /* framerate forced with -r */ int top_field_first; @@ -349,6 +350,9 @@ typedef struct InputStream { // number of frames/samples retrieved from the decoder uint64_t frames_decoded; uint64_t samples_decoded; + + int64_t *dts_buffer; + int nb_dts_buffer; } InputStream; typedef struct InputFile { @@ -416,8 +420,13 @@ typedef struct OutputStream { int64_t first_pts; /* dts of the last packet sent to the muxer */ int64_t last_mux_dts; - AVBitStreamFilterContext *bitstream_filters; + + int nb_bitstream_filters; + uint8_t *bsf_extradata_updated; + AVBSFContext **bsf_ctx; + AVCodecContext *enc_ctx; + AVCodecParameters *ref_par; /* associated input codec parameters with encoders options applied */ AVCodec *enc; int64_t max_frames; AVFrame *filtered_frame; @@ -464,6 +473,12 @@ typedef struct OutputStream { OSTFinished finished; /* no more packets should be written for this stream */ int unavailable; /* true if the steram is unavailable (possibly temporarily) */ int stream_copy; + + // init_output_stream() has been called for this stream + // The encoder and the bitstream filters have been initialized and the stream + // parameters are set in the AVStream. + int initialized; + const char *attachment_filename; int copy_initial_nonkeyframes; int copy_prior_start; @@ -472,6 +487,7 @@ typedef struct OutputStream { int keep_pix_fmt; AVCodecParserContext *parser; + AVCodecContext *parser_avctx; /* stats */ // combined size of all the packets written @@ -485,6 +501,11 @@ typedef struct OutputStream { /* packet quality factor */ int quality; + int max_muxing_queue_size; + + /* the packets are buffered here until the muxer is ready to be initialized */ + AVFifoBuffer *muxing_queue; + /* packet picture type */ int pict_type; @@ -501,6 +522,8 @@ typedef struct OutputFile { uint64_t limit_filesize; /* filesize limit expressed in bytes */ int shortest; + + int header_written; } OutputFile; extern InputStream **input_streams;