FFmpeg
ffmpeg.h
Go to the documentation of this file.
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef FFTOOLS_FFMPEG_H
20 #define FFTOOLS_FFMPEG_H
21 
22 #include "config.h"
23 
24 #include <stdatomic.h>
25 #include <stdint.h>
26 #include <stdio.h>
27 #include <signal.h>
28 
29 #include "cmdutils.h"
30 #include "sync_queue.h"
31 
32 #include "libavformat/avformat.h"
33 #include "libavformat/avio.h"
34 
35 #include "libavcodec/avcodec.h"
36 #include "libavcodec/bsf.h"
37 
38 #include "libavfilter/avfilter.h"
39 
40 #include "libavutil/avutil.h"
41 #include "libavutil/dict.h"
42 #include "libavutil/eval.h"
43 #include "libavutil/fifo.h"
44 #include "libavutil/hwcontext.h"
45 #include "libavutil/pixfmt.h"
46 #include "libavutil/rational.h"
47 #include "libavutil/thread.h"
49 
51 
52 // deprecated features
53 #define FFMPEG_OPT_PSNR 1
54 #define FFMPEG_OPT_MAP_CHANNEL 1
55 #define FFMPEG_OPT_MAP_SYNC 1
56 
58  VSYNC_AUTO = -1,
64 };
65 
66 #define MAX_STREAMS 1024 /* arbitrary sanity check value */
67 
68 enum HWAccelID {
72 };
73 
74 typedef struct HWDevice {
75  const char *name;
78 } HWDevice;
79 
80 /* select an input stream for an output stream */
81 typedef struct StreamMap {
82  int disabled; /* 1 is this mapping is disabled by a negative map */
85  char *linklabel; /* name of an output link, for mapping lavfi outputs */
86 } StreamMap;
87 
88 #if FFMPEG_OPT_MAP_CHANNEL
89 typedef struct {
90  int file_idx, stream_idx, channel_idx; // input
91  int ofile_idx, ostream_idx; // output
93 #endif
94 
95 typedef struct OptionsContext {
97 
98  /* input/output options */
99  int64_t start_time;
100  int64_t start_time_eof;
102  const char *format;
103 
120 
121  /* input options */
123  int loop;
124  int rate_emu;
125  float readrate;
129 
142 
143  /* output options */
146 #if FFMPEG_OPT_MAP_CHANNEL
147  AudioChannelMap *audio_channel_maps; /* one info entry per -map_channel */
148  int nb_audio_channel_maps; /* number of (valid) -map_channel settings */
149 #endif
153  const char **attachments;
155 
157 
158  int64_t recording_time;
159  int64_t stop_time;
160  int64_t limit_filesize;
161  float mux_preload;
164  int shortest;
165  int bitexact;
166 
171 
172  /* indexed by output file stream index */
175 
225  int nb_pass;
235  int nb_apad;
251 
252 typedef struct InputFilter {
254  struct InputStream *ist;
256  uint8_t *name;
257  enum AVMediaType type; // AVMEDIA_TYPE_SUBTITLE for sub2video
258 
260 
261  // parameters configured for this input
262  int format;
263 
264  int width, height;
266 
269 
272 
273  int eof;
274 } InputFilter;
275 
276 typedef struct OutputFilter {
278  struct OutputStream *ost;
280  uint8_t *name;
281 
282  /* temporary storage until stream maps are processed */
285 
286  /* desired output stream properties */
287  int width, height;
289  int format;
292 
293  // those are only set if no format is specified and the encoder gives us multiple options
294  // They point directly to the relevant lists of the encoder.
295  const int *formats;
297  const int *sample_rates;
298 } OutputFilter;
299 
300 typedef struct FilterGraph {
301  int index;
302  const char *graph_desc;
303 
306  // true when the filtergraph contains only meta filters
307  // that do not modify the frame data
308  int is_meta;
309 
314 } FilterGraph;
315 
316 typedef struct InputStream {
319  int discard; /* true if stream data should be discarded */
321  int decoding_needed; /* non zero if the packets must be decoded in 'raw_fifo', see DECODING_FOR_* */
322 #define DECODING_FOR_OST 1
323 #define DECODING_FOR_FILTER 2
324  int processing_needed; /* non zero if the packets must be processed */
325 
326  /**
327  * Codec parameters - to be used by the decoding/streamcopy code.
328  * st->codecpar should not be accessed, because it may be modified
329  * concurrently by the demuxing thread.
330  */
333  const AVCodec *dec;
336 
338 
339  int64_t prev_pkt_pts;
340  int64_t start; /* time when read started */
341  /* predicted dts of the next packet read for this stream or (when there are
342  * several frames in a packet) of the next frame in current packet (in AV_TIME_BASE units) */
343  int64_t next_dts;
344  int64_t first_dts; ///< dts of the first packet read for this stream (in AV_TIME_BASE units)
345  int64_t dts; ///< dts of the last packet read for this stream (in AV_TIME_BASE units)
346 
347  int64_t next_pts; ///< synthetic pts for the next decode frame (in AV_TIME_BASE units)
348  int64_t pts; ///< current pts of the decoded frame (in AV_TIME_BASE units)
350 
351  // the value of AVCodecParserContext.repeat_pict from the AVStream parser
352  // for the last packet returned from ifile_get_packet()
353  // -1 if unknown
354  // FIXME: this is a hack, the avstream parser should not be used
356 
358 
359  int64_t min_pts; /* pts with the smallest value in a current stream */
360  int64_t max_pts; /* pts with the higher value in a current stream */
361 
362  // when forcing constant input framerate through -r,
363  // this contains the pts that will be given to the next decoded frame
364  int64_t cfr_next_pts;
365 
366  int64_t nb_samples; /* number of samples in the last decoded audio frame before looping */
367 
368  double ts_scale;
371  AVRational framerate; /* framerate forced with -r */
374 
376 
378  struct { /* previous decoded subtitle and related variables */
380  int ret;
382  } prev_sub;
383 
384  struct sub2video {
385  int64_t last_pts;
386  int64_t end_pts;
387  AVFifo *sub_queue; ///< queue of AVSubtitle* before filter init
389  int w, h;
390  unsigned int initialize; ///< marks if sub2video_update should force an initialization
391  } sub2video;
392 
393  /* decoded data from this stream goes into all those filters
394  * currently video and audio only */
397 
399 
400  /* hwaccel options */
405 
408 
409  /* stats */
410  // combined size of all the packets read
411  uint64_t data_size;
412  /* number of packets successfully read for this stream */
413  uint64_t nb_packets;
414  // number of frames/samples retrieved from the decoder
415  uint64_t frames_decoded;
416  uint64_t samples_decoded;
417 
418  int64_t *dts_buffer;
420 
421  int got_output;
422 } InputStream;
423 
424 typedef struct LastFrameDuration {
426  int64_t duration;
428 
429 typedef struct InputFile {
430  int index;
431 
433  int eof_reached; /* true if eof reached */
434  int eagain; /* true if last read attempt returned EAGAIN */
435  int ist_index; /* index of first stream in input_streams */
436  int loop; /* set number of times input stream should be looped */
437  int64_t duration; /* actual duration of the longest stream in a file
438  at the moment when looping happens */
439  AVRational time_base; /* time base of the duration */
442 
443  int64_t ts_offset;
444  /**
445  * Extra timestamp offset added by discontinuity handling.
446  */
448  int64_t last_ts;
449  int64_t start_time; /* user-specified start time in AV_TIME_BASE or AV_NOPTS_VALUE */
450  int64_t recording_time;
451  int nb_streams; /* number of stream that ffmpeg is aware of; may be different
452  from ctx.nb_streams if new streams appear during av_read_frame() */
453  int nb_streams_warn; /* number of streams that the user was warned of */
454  int rate_emu;
455  float readrate;
457 
459  pthread_t thread; /* thread reading from this file */
460  int non_blocking; /* reading packets from the thread should not block */
461  int thread_queue_size; /* maximum number of queued packets */
462 
463  /* when looping the input file, this queue is used by decoders to report
464  * the last frame duration back to the demuxer thread */
467 } InputFile;
468 
476 };
477 
478 #define ABORT_ON_FLAG_EMPTY_OUTPUT (1 << 0)
479 #define ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM (1 << 1)
480 
481 extern const char *const forced_keyframes_const_names[];
482 
483 typedef enum {
486 } OSTFinished ;
487 
488 typedef struct OutputStream {
489  int file_index; /* file index */
490  int index; /* stream index in the output file */
491  int source_index; /* InputStream index */
492  AVStream *st; /* stream in the output file */
493  /* number of frames emitted by the video-encoding sync code */
495  /* input pts and corresponding output pts
496  for A/V sync */
497  int64_t sync_opts; /* output frame counter, could be changed to some true timestamp */ // FIXME look at frame_number
498  /* pts of the first frame encoded for this stream, used for limiting
499  * recording time */
500  int64_t first_pts;
501  /* dts of the last packet sent to the muxing queue, in AV_TIME_BASE_Q */
502  int64_t last_mux_dts;
503  /* pts of the last frame received from the filters, in AV_TIME_BASE_Q */
505 
506  // timestamp from which the streamcopied streams should start,
507  // in AV_TIME_BASE_Q;
508  // everything before it should be discarded
509  int64_t ts_copy_start;
510 
511  // the timebase of the packets sent to the muxer
514 
516 
518  int64_t max_frames;
523  int64_t last_dropped;
524  int64_t last_nb0_frames[3];
525 
526  /* video only */
530  int is_cfr;
535  int bitexact;
538 
540 
541  /* forced key frames */
543  int64_t *forced_kf_pts;
550 
551  /* audio only */
552 #if FFMPEG_OPT_MAP_CHANNEL
553  int *audio_channels_map; /* list of the channels id to pick from the source stream */
554  int audio_channels_mapped; /* number of channels in audio_channels_map */
555 #endif
556 
558  FILE *logfile;
559 
561  char *avfilter;
562  char *filters; ///< filtergraph associated to the -filter option
563  char *filters_script; ///< filtergraph script associated to the -filter_script option
564 
568  char *apad;
569  OSTFinished finished; /* no more packets should be written for this stream */
570  int unavailable; /* true if the steram is unavailable (possibly temporarily) */
571 
572  // init_output_stream() has been called for this stream
573  // The encoder and the bitstream filters have been initialized and the stream
574  // parameters are set in the AVStream.
576 
578 
579  const char *attachment_filename;
583  char *disposition;
584 
586 
587  /* stats */
588  // combined size of all the packets sent to the muxer
589  uint64_t data_size_mux;
590  // combined size of all the packets received from the encoder
591  uint64_t data_size_enc;
592  // number of packets send to the muxer
594  // number of frames/samples sent to the encoder
595  uint64_t frames_encoded;
596  uint64_t samples_encoded;
597  // number of packets received from the encoder
598  uint64_t packets_encoded;
599 
600  /* packet quality factor */
601  int quality;
602 
604 
605  /* Threshold after which max_muxing_queue_size will be in effect */
607 
608  /* packet picture type */
610 
611  /* frame encode sum of squared error values */
612  int64_t error[4];
613 
616 } OutputStream;
617 
618 typedef struct Muxer Muxer;
619 
620 typedef struct OutputFile {
621  int index;
622 
625  const char *url;
626 
629 
631  int ost_index; /* index of the first stream in output_streams */
632  int64_t recording_time; ///< desired length of the resulting file in microseconds == AV_TIME_BASE units
633  int64_t start_time; ///< start time in microseconds == AV_TIME_BASE units
634 
635  int shortest;
636  int bitexact;
637 } OutputFile;
638 
639 extern InputStream **input_streams;
640 extern int nb_input_streams;
641 extern InputFile **input_files;
642 extern int nb_input_files;
643 
645 extern int nb_output_streams;
646 extern OutputFile **output_files;
647 extern int nb_output_files;
648 
649 extern FilterGraph **filtergraphs;
650 extern int nb_filtergraphs;
651 
652 extern char *vstats_filename;
653 extern char *sdp_filename;
654 
655 extern float audio_drift_threshold;
656 extern float dts_delta_threshold;
657 extern float dts_error_threshold;
658 
659 extern int audio_sync_method;
661 extern float frame_drop_threshold;
662 extern int do_benchmark;
663 extern int do_benchmark_all;
664 extern int do_deinterlace;
665 extern int do_hex_dump;
666 extern int do_pkt_dump;
667 extern int copy_ts;
668 extern int start_at_zero;
669 extern int copy_tb;
670 extern int debug_ts;
671 extern int exit_on_error;
672 extern int abort_on_flags;
673 extern int print_stats;
674 extern int64_t stats_period;
675 extern int qp_hist;
676 extern int stdin_interaction;
677 extern int frame_bits_per_raw_sample;
678 extern AVIOContext *progress_avio;
679 extern float max_error_rate;
680 
681 extern char *filter_nbthreads;
682 extern int filter_complex_nbthreads;
683 extern int vstats_version;
684 extern int auto_conversion_filters;
685 
686 extern const AVIOInterruptCB int_cb;
687 
688 extern const OptionDef options[];
689 #if CONFIG_QSV
690 extern char *qsv_device;
691 #endif
692 extern HWDevice *filter_hw_device;
693 
694 extern unsigned nb_output_dumped;
695 extern int main_return_code;
696 
697 
698 void term_init(void);
699 void term_exit(void);
700 
701 void show_usage(void);
702 
705 
707 void check_filter_outputs(void);
711 
712 void sub2video_update(InputStream *ist, int64_t heartbeat_pts, AVSubtitle *sub);
713 
715 
716 int ffmpeg_parse_options(int argc, char **argv);
717 
720 
721 HWDevice *hw_device_get_by_name(const char *name);
722 int hw_device_init_from_string(const char *arg, HWDevice **dev);
723 void hw_device_free_all(void);
724 
728 
730 
732  AVDictionary *opts, int64_t limit_filesize,
733  int thread_queue_size);
734 /* open the muxer when all the streams are initialized */
735 int of_check_init(OutputFile *of);
737 void of_close(OutputFile **pof);
738 
740 int64_t of_filesize(OutputFile *of);
741 AVChapter * const *
742 of_get_chapters(OutputFile *of, unsigned int *nb_chapters);
743 
744 /**
745  * Get next input packet from the demuxer.
746  *
747  * @param pkt the packet is written here when this function returns 0
748  * @return
749  * - 0 when a packet has been read successfully
750  * - 1 when stream end was reached, but the stream is looped;
751  * caller should flush decoders and read from this demuxer again
752  * - a negative error code on failure
753  */
755 int init_input_threads(void);
756 void free_input_threads(void);
757 
758 #endif /* FFTOOLS_FFMPEG_H */
OptionsContext::readrate
float readrate
Definition: ffmpeg.h:125
AVSubtitle
Definition: avcodec.h:2308
OptionsContext::nb_hwaccels
int nb_hwaccels
Definition: ffmpeg.h:135
OptionsContext::nb_codec_names
int nb_codec_names
Definition: ffmpeg.h:105
InputFilter::sample_aspect_ratio
AVRational sample_aspect_ratio
Definition: ffmpeg.h:265
AVCodec
AVCodec.
Definition: codec.h:204
OptionsContext::input_ts_offset
int64_t input_ts_offset
Definition: ffmpeg.h:122
InputFile::start_time
int64_t start_time
Definition: ffmpeg.h:449
audio_sync_method
int audio_sync_method
Definition: ffmpeg_opt.c:160
AVPixelFormat
AVPixelFormat
Pixel format.
Definition: pixfmt.h:64
name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
OptionsContext::stop_time
int64_t stop_time
Definition: ffmpeg.h:159
StreamMap::file_index
int file_index
Definition: ffmpeg.h:83
OutputStream::sq_idx_mux
int sq_idx_mux
Definition: ffmpeg.h:615
OutputFilter::graph
struct FilterGraph * graph
Definition: ffmpeg.h:279
FKF_PREV_FORCED_T
@ FKF_PREV_FORCED_T
Definition: ffmpeg.h:473
OptionsContext::canvas_sizes
SpecifierOpt * canvas_sizes
Definition: ffmpeg.h:222
InputStream::hwaccel_device
char * hwaccel_device
Definition: ffmpeg.h:403
VSYNC_VFR
@ VSYNC_VFR
Definition: ffmpeg.h:61
OptionsContext::dump_attachment
SpecifierOpt * dump_attachment
Definition: ffmpeg.h:132
OutputStream::attachment_filename
const char * attachment_filename
Definition: ffmpeg.h:579
OutputFilter::ch_layouts
const AVChannelLayout * ch_layouts
Definition: ffmpeg.h:296
configure_filtergraph
int configure_filtergraph(FilterGraph *fg)
Definition: ffmpeg_filter.c:974
OutputStream::ts_copy_start
int64_t ts_copy_start
Definition: ffmpeg.h:509
OptionsContext::nb_audio_sample_rate
int nb_audio_sample_rate
Definition: ffmpeg.h:111
nb_filtergraphs
int nb_filtergraphs
Definition: ffmpeg.c:155
OptionsContext::nb_max_frame_rates
int nb_max_frame_rates
Definition: ffmpeg.h:115
OptionsContext::intra_matrices
SpecifierOpt * intra_matrices
Definition: ffmpeg.h:198
InputStream::framerate_guessed
AVRational framerate_guessed
Definition: ffmpeg.h:337
InputFilter::width
int width
Definition: ffmpeg.h:264
OptionsContext::nb_time_bases
int nb_time_bases
Definition: ffmpeg.h:243
InputFilter::displaymatrix
int32_t * displaymatrix
Definition: ffmpeg.h:271
FKF_PREV_FORCED_N
@ FKF_PREV_FORCED_N
Definition: ffmpeg.h:472
OptionsContext::nb_audio_ch_layouts
int nb_audio_ch_layouts
Definition: ffmpeg.h:107
FilterGraph::graph_desc
const char * graph_desc
Definition: ffmpeg.h:302
AVCodecParameters
This struct describes the properties of an encoded stream.
Definition: codec_par.h:53
InputStream::data_size
uint64_t data_size
Definition: ffmpeg.h:411
OutputStream::enc_ctx
AVCodecContext * enc_ctx
Definition: ffmpeg.h:517
OptionsContext::nb_rc_overrides
int nb_rc_overrides
Definition: ffmpeg.h:197
sub
static float sub(float src0, float src1)
Definition: dnn_backend_native_layer_mathbinary.c:31
thread.h
FilterGraph::inputs
InputFilter ** inputs
Definition: ffmpeg.h:310
InputFile::nb_streams_warn
int nb_streams_warn
Definition: ffmpeg.h:453
OptionsContext::hwaccels
SpecifierOpt * hwaccels
Definition: ffmpeg.h:134
OptionsContext::apad
SpecifierOpt * apad
Definition: ffmpeg.h:234
frame_drop_threshold
float frame_drop_threshold
Definition: ffmpeg_opt.c:162
InputFile::non_blocking
int non_blocking
Definition: ffmpeg.h:460
rational.h
InputStream::dec_ctx
AVCodecContext * dec_ctx
Definition: ffmpeg.h:332
InputStream::user_set_discard
int user_set_discard
Definition: ffmpeg.h:320
OptionsContext::rc_overrides
SpecifierOpt * rc_overrides
Definition: ffmpeg.h:196
OutputStream::packets_written
atomic_uint_least64_t packets_written
Definition: ffmpeg.h:593
OptionsContext::nb_metadata
int nb_metadata
Definition: ffmpeg.h:177
nb_input_streams
int nb_input_streams
Definition: ffmpeg.c:145
OptionsContext::nb_hwaccel_devices
int nb_hwaccel_devices
Definition: ffmpeg.h:137
InputFile::readrate
float readrate
Definition: ffmpeg.h:455
OutputStream::keep_pix_fmt
int keep_pix_fmt
Definition: ffmpeg.h:585
OptionsContext::nb_attachments
int nb_attachments
Definition: ffmpeg.h:154
OutputFile::start_time
int64_t start_time
start time in microseconds == AV_TIME_BASE units
Definition: ffmpeg.h:633
OptionsContext::frame_aspect_ratios
SpecifierOpt * frame_aspect_ratios
Definition: ffmpeg.h:194
progress_avio
AVIOContext * progress_avio
Definition: ffmpeg.c:142
InputFile::index
int index
Definition: ffmpeg.h:430
InputFilter::ch_layout
AVChannelLayout ch_layout
Definition: ffmpeg.h:268
ffmpeg_parse_options
int ffmpeg_parse_options(int argc, char **argv)
input_streams
InputStream ** input_streams
Definition: ffmpeg.c:144
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:325
InputFile::rate_emu
int rate_emu
Definition: ffmpeg.h:454
of_filesize
int64_t of_filesize(OutputFile *of)
Definition: ffmpeg_mux.c:673
OutputStream::unavailable
int unavailable
Definition: ffmpeg.h:570
OptionsContext::mux_max_delay
float mux_max_delay
Definition: ffmpeg.h:162
OptionsContext::nb_chroma_intra_matrices
int nb_chroma_intra_matrices
Definition: ffmpeg.h:203
OptionsContext::nb_pass
int nb_pass
Definition: ffmpeg.h:225
OutputStream::rotate_overridden
int rotate_overridden
Definition: ffmpeg.h:533
FKF_T
@ FKF_T
Definition: ffmpeg.h:474
sync_queue.h
LastFrameDuration::stream_idx
int stream_idx
Definition: ffmpeg.h:425
OptionsContext::subtitle_disable
int subtitle_disable
Definition: ffmpeg.h:169
OptionsContext::nb_apad
int nb_apad
Definition: ffmpeg.h:235
OptionsContext::qscale
SpecifierOpt * qscale
Definition: ffmpeg.h:186
OutputStream::index
int index
Definition: ffmpeg.h:490
b
#define b
Definition: input.c:41
FilterGraph::index
int index
Definition: ffmpeg.h:301
OptionsContext::inter_matrices
SpecifierOpt * inter_matrices
Definition: ffmpeg.h:200
AudioChannelMap::stream_idx
int stream_idx
Definition: ffmpeg.h:90
InputStream::nb_filters
int nb_filters
Definition: ffmpeg.h:396
int_cb
const AVIOInterruptCB int_cb
Definition: ffmpeg.c:505
OutputStream::sws_dict
AVDictionary * sws_dict
Definition: ffmpeg.h:566
nb_output_files
int nb_output_files
Definition: ffmpeg.c:152
show_usage
void show_usage(void)
Definition: ffmpeg_opt.c:3666
fc
#define fc(width, name, range_min, range_max)
Definition: cbs_av1.c:551
FilterGraph::nb_inputs
int nb_inputs
Definition: ffmpeg.h:311
OptionsContext::bitexact
int bitexact
Definition: ffmpeg.h:165
OptionsContext::audio_channels
SpecifierOpt * audio_channels
Definition: ffmpeg.h:108
OptionsContext::nb_frame_rates
int nb_frame_rates
Definition: ffmpeg.h:113
AVDictionary
Definition: dict.c:31
HWDevice
Definition: ffmpeg.h:74
hw_device_init_from_string
int hw_device_init_from_string(const char *arg, HWDevice **dev)
Definition: ffmpeg_hw.c:94
nb_input_files
int nb_input_files
Definition: ffmpeg.c:147
LastFrameDuration
Definition: ffmpeg.h:424
InputStream::decoding_needed
int decoding_needed
Definition: ffmpeg.h:321
OptionsContext::format
const char * format
Definition: ffmpeg.h:102
InputFile::input_sync_ref
int input_sync_ref
Definition: ffmpeg.h:441
OutputStream::max_frames
int64_t max_frames
Definition: ffmpeg.h:518
OutputStream::rotate_override_value
double rotate_override_value
Definition: ffmpeg.h:537
ost
static AVStream * ost
Definition: vaapi_transcode.c:45
OutputStream::last_dropped
int64_t last_dropped
Definition: ffmpeg.h:523
OptionsContext::nb_disposition
int nb_disposition
Definition: ffmpeg.h:239
qp_hist
int qp_hist
Definition: ffmpeg_opt.c:174
AVBSFContext
The bitstream filter state.
Definition: bsf.h:68
AVIOInterruptCB
Callback for checking whether to abort blocking functions.
Definition: avio.h:59
OptionDef
Definition: cmdutils.h:146
OutputStream::forced_keyframes_pexpr
AVExpr * forced_keyframes_pexpr
Definition: ffmpeg.h:547
InputFilter::ist
struct InputStream * ist
Definition: ffmpeg.h:254
init_simple_filtergraph
int init_simple_filtergraph(InputStream *ist, OutputStream *ost)
Definition: ffmpeg_filter.c:179
OptionsContext::nb_guess_layout_max
int nb_guess_layout_max
Definition: ffmpeg.h:233
OutputFile::nb_streams
int nb_streams
Definition: ffmpeg.h:630
of_submit_packet
int of_submit_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost)
Definition: ffmpeg_mux.c:323
InputFile::eof_reached
int eof_reached
Definition: ffmpeg.h:433
OutputStream::sq_frame
AVFrame * sq_frame
Definition: ffmpeg.h:521
Muxer
Definition: ffmpeg_mux.c:55
InputStream
Definition: ffmpeg.h:316
filter_nbthreads
char * filter_nbthreads
Definition: ffmpeg_opt.c:177
OptionsContext::chapters_input_file
int chapters_input_file
Definition: ffmpeg.h:156
debug_ts
int debug_ts
Definition: ffmpeg_opt.c:170
OutputStream::forced_kf_pts
int64_t * forced_kf_pts
Definition: ffmpeg.h:543
OptionsContext::nb_presets
int nb_presets
Definition: ffmpeg.h:209
stats_period
int64_t stats_period
Definition: ffmpeg_opt.c:181
OptionsContext::rate_emu
int rate_emu
Definition: ffmpeg.h:124
OutputStream::vsync_method
enum VideoSyncMethod vsync_method
Definition: ffmpeg.h:529
do_deinterlace
int do_deinterlace
dts_delta_threshold
float dts_delta_threshold
Definition: ffmpeg_opt.c:157
fifo.h
InputFile::audio_duration_queue_size
int audio_duration_queue_size
Definition: ffmpeg.h:466
OutputStream::filters
char * filters
filtergraph associated to the -filter option
Definition: ffmpeg.h:562
bsf.h
vstats_version
int vstats_version
Definition: ffmpeg_opt.c:179
OutputStream::initialized
int initialized
Definition: ffmpeg.h:575
OptionsContext::nb_dump_attachment
int nb_dump_attachment
Definition: ffmpeg.h:133
OptionsContext::g
OptionGroup * g
Definition: ffmpeg.h:96
OutputStream::disposition
char * disposition
Definition: ffmpeg.h:583
InputStream::sub2video
struct InputStream::sub2video sub2video
OutputStream::vsync_frame_number
int64_t vsync_frame_number
Definition: ffmpeg.h:494
InputFilter::type
enum AVMediaType type
Definition: ffmpeg.h:257
StreamMap::disabled
int disabled
Definition: ffmpeg.h:82
AudioChannelMap::ostream_idx
int ostream_idx
Definition: ffmpeg.h:91
OutputStream::logfile_prefix
char * logfile_prefix
Definition: ffmpeg.h:557
OptionsContext::nb_top_field_first
int nb_top_field_first
Definition: ffmpeg.h:205
InputStream::decoder_opts
AVDictionary * decoder_opts
Definition: ffmpeg.h:370
OptionsContext::nb_autorotate
int nb_autorotate
Definition: ffmpeg.h:141
OutputStream::forced_keyframes_expr_const_values
double forced_keyframes_expr_const_values[FKF_NB]
Definition: ffmpeg.h:548
InputStream::filter_in_rescale_delta_last
int64_t filter_in_rescale_delta_last
Definition: ffmpeg.h:357
AVChapter
Definition: avformat.h:1175
OptionsContext::nb_reinit_filters
int nb_reinit_filters
Definition: ffmpeg.h:219
InputStream::nb_packets
uint64_t nb_packets
Definition: ffmpeg.h:413
OutputFilter::sample_rate
int sample_rate
Definition: ffmpeg.h:290
hw_device_setup_for_decode
int hw_device_setup_for_decode(InputStream *ist)
Definition: ffmpeg_hw.c:317
OptionsContext
Definition: ffmpeg.h:95
assert_avoptions
void assert_avoptions(AVDictionary *m)
Definition: ffmpeg.c:653
OptionsContext::time_bases
SpecifierOpt * time_bases
Definition: ffmpeg.h:242
qsv_init
int qsv_init(AVCodecContext *s)
InputStream::sub2video::last_pts
int64_t last_pts
Definition: ffmpeg.h:385
do_pkt_dump
int do_pkt_dump
Definition: ffmpeg_opt.c:166
OptionsContext::nb_audio_channel_maps
int nb_audio_channel_maps
Definition: ffmpeg.h:148
InputFile
Definition: ffmpeg.h:429
OptionsContext::recording_time
int64_t recording_time
Definition: ffmpeg.h:158
input_files
InputFile ** input_files
Definition: ffmpeg.c:146
OptionsContext::metadata_chapters_manual
int metadata_chapters_manual
Definition: ffmpeg.h:152
InputStream::last_pkt_repeat_pict
int last_pkt_repeat_pict
Definition: ffmpeg.h:355
OptionsContext::pass
SpecifierOpt * pass
Definition: ffmpeg.h:224
OutputStream::copy_initial_nonkeyframes
int copy_initial_nonkeyframes
Definition: ffmpeg.h:581
OutputFilter::sample_rates
const int * sample_rates
Definition: ffmpeg.h:297
InputFile::ts_offset_discont
int64_t ts_offset_discont
Extra timestamp offset added by discontinuity handling.
Definition: ffmpeg.h:447
OptionsContext::nb_stream_maps
int nb_stream_maps
Definition: ffmpeg.h:145
OptionsContext::audio_disable
int audio_disable
Definition: ffmpeg.h:168
InputStream::first_dts
int64_t first_dts
dts of the first packet read for this stream (in AV_TIME_BASE units)
Definition: ffmpeg.h:344
InputStream::hwaccel_pix_fmt
enum AVPixelFormat hwaccel_pix_fmt
Definition: ffmpeg.h:407
OutputFile::shortest
int shortest
Definition: ffmpeg.h:635
InputStream::dts
int64_t dts
dts of the last packet read for this stream (in AV_TIME_BASE units)
Definition: ffmpeg.h:345
pkt
AVPacket * pkt
Definition: movenc.c:59
AudioChannelMap
Definition: ffmpeg.h:89
OptionsContext::presets
SpecifierOpt * presets
Definition: ffmpeg.h:208
OptionsContext::copy_initial_nonkeyframes
SpecifierOpt * copy_initial_nonkeyframes
Definition: ffmpeg.h:210
OutputStream::sync_opts
int64_t sync_opts
Definition: ffmpeg.h:497
OptionsContext::codec_names
SpecifierOpt * codec_names
Definition: ffmpeg.h:104
term_init
void term_init(void)
Definition: ffmpeg.c:400
OptionsContext::nb_program
int nb_program
Definition: ffmpeg.h:241
StreamMap::linklabel
char * linklabel
Definition: ffmpeg.h:85
OutputFilter::width
int width
Definition: ffmpeg.h:287
HWACCEL_GENERIC
@ HWACCEL_GENERIC
Definition: ffmpeg.h:71
OutputStream::forced_keyframes
char * forced_keyframes
Definition: ffmpeg.h:546
VSYNC_VSCFR
@ VSYNC_VSCFR
Definition: ffmpeg.h:62
InputStream::cfr_next_pts
int64_t cfr_next_pts
Definition: ffmpeg.h:364
s
#define s(width, name)
Definition: cbs_vp9.c:256
FilterGraph::outputs
OutputFilter ** outputs
Definition: ffmpeg.h:312
vstats_filename
char * vstats_filename
Definition: ffmpeg_opt.c:153
OutputStream::frame_aspect_ratio
AVRational frame_aspect_ratio
Definition: ffmpeg.h:539
InputStream::framerate
AVRational framerate
Definition: ffmpeg.h:371
OutputStream::mux_timebase
AVRational mux_timebase
Definition: ffmpeg.h:512
OptionsContext::nb_bits_per_raw_sample
int nb_bits_per_raw_sample
Definition: ffmpeg.h:249
ENCODER_FINISHED
@ ENCODER_FINISHED
Definition: ffmpeg.h:484
OptionsContext::limit_filesize
int64_t limit_filesize
Definition: ffmpeg.h:160
OutputStream::audio_channels_mapped
int audio_channels_mapped
Definition: ffmpeg.h:554
InputFilter
Definition: ffmpeg.h:252
OutputStream::copy_prior_start
int copy_prior_start
Definition: ffmpeg.h:582
init_input_threads
int init_input_threads(void)
Definition: ffmpeg_demux.c:349
OptionsContext::audio_ch_layouts
SpecifierOpt * audio_ch_layouts
Definition: ffmpeg.h:106
AVHWDeviceType
AVHWDeviceType
Definition: hwcontext.h:27
OutputFilter::ost
struct OutputStream * ost
Definition: ffmpeg.h:278
output_streams
OutputStream ** output_streams
Definition: ffmpeg.c:149
OptionsContext::metadata_streams_manual
int metadata_streams_manual
Definition: ffmpeg.h:151
forced_keyframes_const
forced_keyframes_const
Definition: ffmpeg.h:469
MUXER_FINISHED
@ MUXER_FINISHED
Definition: ffmpeg.h:485
OutputFile::sq_mux
SyncQueue * sq_mux
Definition: ffmpeg.h:628
OutputStream::avfilter
char * avfilter
Definition: ffmpeg.h:561
OutputFile::mux
Muxer * mux
Definition: ffmpeg.h:623
audio_drift_threshold
float audio_drift_threshold
Definition: ffmpeg_opt.c:156
InputStream::filters
InputFilter ** filters
Definition: ffmpeg.h:395
OptionsContext::nb_copy_initial_nonkeyframes
int nb_copy_initial_nonkeyframes
Definition: ffmpeg.h:211
max_error_rate
float max_error_rate
Definition: ffmpeg_opt.c:176
AVExpr
Definition: eval.c:157
OptionsContext::sample_fmts
SpecifierOpt * sample_fmts
Definition: ffmpeg.h:184
OptionsContext::shortest
int shortest
Definition: ffmpeg.h:164
InputStream::hwaccel_retrieve_data
int(* hwaccel_retrieve_data)(AVCodecContext *s, AVFrame *frame)
Definition: ffmpeg.h:406
InputFilter::graph
struct FilterGraph * graph
Definition: ffmpeg.h:255
AVThreadMessageQueue
Definition: threadmessage.c:27
OptionsContext::accurate_seek
int accurate_seek
Definition: ffmpeg.h:126
OutputStream::last_frame
AVFrame * last_frame
Definition: ffmpeg.h:520
OptionsContext::nb_canvas_sizes
int nb_canvas_sizes
Definition: ffmpeg.h:223
OptionsContext::nb_max_muxing_queue_size
int nb_max_muxing_queue_size
Definition: ffmpeg.h:229
OutputStream::bitexact
int bitexact
Definition: ffmpeg.h:535
arg
const char * arg
Definition: jacosubdec.c:67
OutputStream::streamcopy_started
int streamcopy_started
Definition: ffmpeg.h:580
OutputStream::encoder_opts
AVDictionary * encoder_opts
Definition: ffmpeg.h:565
OptionsContext::start_time
int64_t start_time
Definition: ffmpeg.h:99
InputStream::pts
int64_t pts
current pts of the decoded frame (in AV_TIME_BASE units)
Definition: ffmpeg.h:348
AVFormatContext
Format I/O context.
Definition: avformat.h:1216
opts
AVDictionary * opts
Definition: movenc.c:50
OutputFilter::height
int height
Definition: ffmpeg.h:287
OptionsContext::nb_filter_scripts
int nb_filter_scripts
Definition: ffmpeg.h:217
OptionsContext::reinit_filters
SpecifierOpt * reinit_filters
Definition: ffmpeg.h:218
OutputFilter::name
uint8_t * name
Definition: ffmpeg.h:280
InputStream::sub2video::w
int w
Definition: ffmpeg.h:389
InputStream::top_field_first
int top_field_first
Definition: ffmpeg.h:372
InputStream::st
AVStream * st
Definition: ffmpeg.h:318
forced_keyframes_const_names
const char *const forced_keyframes_const_names[]
Definition: ffmpeg.c:116
OptionsContext::filters
SpecifierOpt * filters
Definition: ffmpeg.h:214
OptionsContext::frame_sizes
SpecifierOpt * frame_sizes
Definition: ffmpeg.h:116
of_close
void of_close(OutputFile **pof)
Definition: ffmpeg_mux.c:595
AVRational
Rational number (pair of numerator and denominator).
Definition: rational.h:58
OptionsContext::fix_sub_duration
SpecifierOpt * fix_sub_duration
Definition: ffmpeg.h:220
OptionsContext::codec_tags
SpecifierOpt * codec_tags
Definition: ffmpeg.h:182
InputStream::next_pts
int64_t next_pts
synthetic pts for the next decode frame (in AV_TIME_BASE units)
Definition: ffmpeg.h:347
frame_bits_per_raw_sample
int frame_bits_per_raw_sample
OptionsContext::force_fps
SpecifierOpt * force_fps
Definition: ffmpeg.h:192
OptionsContext::metadata_global_manual
int metadata_global_manual
Definition: ffmpeg.h:150
OptionsContext::nb_intra_matrices
int nb_intra_matrices
Definition: ffmpeg.h:199
OutputStream::audio_channels_map
int * audio_channels_map
Definition: ffmpeg.h:553
InputStream::hwaccel_id
enum HWAccelID hwaccel_id
Definition: ffmpeg.h:401
OutputStream::frame_rate
AVRational frame_rate
Definition: ffmpeg.h:527
ifile_get_packet
int ifile_get_packet(InputFile *f, AVPacket **pkt)
Get next input packet from the demuxer.
Definition: ffmpeg_demux.c:361
InputFilter::eof
int eof
Definition: ffmpeg.h:273
InputStream::fix_sub_duration
int fix_sub_duration
Definition: ffmpeg.h:377
OutputStream::top_field_first
int top_field_first
Definition: ffmpeg.h:532
InputStream::hwaccel_output_format
enum AVPixelFormat hwaccel_output_format
Definition: ffmpeg.h:404
OptionsContext::max_frames
SpecifierOpt * max_frames
Definition: ffmpeg.h:178
AVFilterGraph
Definition: avfilter.h:871
do_benchmark_all
int do_benchmark_all
Definition: ffmpeg_opt.c:164
filtergraphs
FilterGraph ** filtergraphs
Definition: ffmpeg.c:154
OptionsContext::input_sync_ref
int input_sync_ref
Definition: ffmpeg.h:128
InputStream::min_pts
int64_t min_pts
Definition: ffmpeg.h:359
OutputFile::index
int index
Definition: ffmpeg.h:621
OptionGroup
Definition: cmdutils.h:250
OptionsContext::program
SpecifierOpt * program
Definition: ffmpeg.h:240
InputStream::sub2video::sub_queue
AVFifo * sub_queue
queue of AVSubtitle* before filter init
Definition: ffmpeg.h:387
FilterGraph::nb_outputs
int nb_outputs
Definition: ffmpeg.h:313
OutputStream::logfile
FILE * logfile
Definition: ffmpeg.h:558
swresample.h
InputStream::sub2video::initialize
unsigned int initialize
marks if sub2video_update should force an initialization
Definition: ffmpeg.h:390
OptionsContext::nb_metadata_map
int nb_metadata_map
Definition: ffmpeg.h:207
InputStream::par
AVCodecParameters * par
Codec parameters - to be used by the decoding/streamcopy code.
Definition: ffmpeg.h:331
OptionsContext::nb_filters
int nb_filters
Definition: ffmpeg.h:215
InputStream::frames_decoded
uint64_t frames_decoded
Definition: ffmpeg.h:415
OptionsContext::nb_fps_mode
int nb_fps_mode
Definition: ffmpeg.h:191
InputStream::next_dts
int64_t next_dts
Definition: ffmpeg.h:343
FilterGraph
Definition: ffmpeg.h:300
print_stats
int print_stats
Definition: ffmpeg_opt.c:173
InputFilter::filter
AVFilterContext * filter
Definition: ffmpeg.h:253
nb_output_dumped
unsigned nb_output_dumped
Definition: ffmpeg.c:139
of_check_init
int of_check_init(OutputFile *of)
Definition: ffmpeg_mux.c:468
options
const OptionDef options[]
VideoSyncMethod
VideoSyncMethod
Definition: ffmpeg.h:57
eval.h
OutputStream::force_fps
int force_fps
Definition: ffmpeg.h:531
OptionsContext::nb_frame_aspect_ratios
int nb_frame_aspect_ratios
Definition: ffmpeg.h:195
OutputStream::filter
OutputFilter * filter
Definition: ffmpeg.h:560
f
f
Definition: af_crystalizer.c:122
AVIOContext
Bytestream IO Context.
Definition: avio.h:162
sub2video_update
void sub2video_update(InputStream *ist, int64_t heartbeat_pts, AVSubtitle *sub)
Definition: ffmpeg.c:233
InputStream::hwaccel_device_type
enum AVHWDeviceType hwaccel_device_type
Definition: ffmpeg.h:402
InputFile::in_thread_queue
AVThreadMessageQueue * in_thread_queue
Definition: ffmpeg.h:458
OptionsContext::thread_queue_size
int thread_queue_size
Definition: ffmpeg.h:127
AVMediaType
AVMediaType
Definition: avutil.h:199
InputStream::decoded_frame
AVFrame * decoded_frame
Definition: ffmpeg.h:334
AVFifo
Definition: fifo.c:35
InputStream::wrap_correction_done
int wrap_correction_done
Definition: ffmpeg.h:349
InputStream::start
int64_t start
Definition: ffmpeg.h:340
InputFile::thread
pthread_t thread
Definition: ffmpeg.h:459
AVChannelLayout
An AVChannelLayout holds information about the channel layout of audio data.
Definition: channel_layout.h:290
threadmessage.h
OutputStream::error
int64_t error[4]
Definition: ffmpeg.h:612
InputStream::file_index
int file_index
Definition: ffmpeg.h:317
OutputStream::forced_kf_count
int forced_kf_count
Definition: ffmpeg.h:544
OutputStream::data_size_enc
uint64_t data_size_enc
Definition: ffmpeg.h:591
InputFile::last_ts
int64_t last_ts
Definition: ffmpeg.h:448
FilterGraph::graph
AVFilterGraph * graph
Definition: ffmpeg.h:304
InputStream::pkt
AVPacket * pkt
Definition: ffmpeg.h:335
InputStream::got_output
int got_output
Definition: ffmpeg.h:379
StreamMap
Definition: ffmpeg.h:81
copy_ts
int copy_ts
Definition: ffmpeg_opt.c:167
OptionsContext::filter_scripts
SpecifierOpt * filter_scripts
Definition: ffmpeg.h:216
OutputStream::packets_encoded
uint64_t packets_encoded
Definition: ffmpeg.h:598
avio.h
copy_tb
int copy_tb
Definition: ffmpeg_opt.c:169
InputFile::thread_queue_size
int thread_queue_size
Definition: ffmpeg.h:461
InputStream::prev_sub
struct InputStream::@2 prev_sub
OptionsContext::seek_timestamp
int seek_timestamp
Definition: ffmpeg.h:101
hwaccel_decode_init
int hwaccel_decode_init(AVCodecContext *avctx)
Definition: ffmpeg_hw.c:542
OptionsContext::top_field_first
SpecifierOpt * top_field_first
Definition: ffmpeg.h:204
HWDevice::device_ref
AVBufferRef * device_ref
Definition: ffmpeg.h:77
OutputStream::source_index
int source_index
Definition: ffmpeg.h:491
OutputFile::url
const char * url
Definition: ffmpeg.h:625
OptionsContext::nb_discard
int nb_discard
Definition: ffmpeg.h:237
of_get_chapters
AVChapter *const * of_get_chapters(OutputFile *of, unsigned int *nb_chapters)
Definition: ffmpeg_mux.c:679
OSTFinished
OSTFinished
Definition: ffmpeg.h:483
OutputFilter::filter
AVFilterContext * filter
Definition: ffmpeg.h:277
a
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
Definition: undefined.txt:41
InputStream::samples_decoded
uint64_t samples_decoded
Definition: ffmpeg.h:416
check_filter_outputs
void check_filter_outputs(void)
Definition: ffmpeg_filter.c:650
OptionsContext::metadata
SpecifierOpt * metadata
Definition: ffmpeg.h:176
InputStream::max_pts
int64_t max_pts
Definition: ffmpeg.h:360
do_benchmark
int do_benchmark
Definition: ffmpeg_opt.c:163
OptionsContext::nb_autoscale
int nb_autoscale
Definition: ffmpeg.h:247
OutputFile::sq_encode
SyncQueue * sq_encode
Definition: ffmpeg.h:627
pthread_t
Definition: os2threads.h:44
OutputStream::pict_type
int pict_type
Definition: ffmpeg.h:609
OptionsContext::frame_rates
SpecifierOpt * frame_rates
Definition: ffmpeg.h:112
OutputFilter::type
enum AVMediaType type
Definition: ffmpeg.h:284
InputFile::time_base
AVRational time_base
Definition: ffmpeg.h:439
InputFile::duration
int64_t duration
Definition: ffmpeg.h:437
OutputStream::first_pts
int64_t first_pts
Definition: ffmpeg.h:500
HWACCEL_AUTO
@ HWACCEL_AUTO
Definition: ffmpeg.h:70
OptionsContext::autorotate
SpecifierOpt * autorotate
Definition: ffmpeg.h:140
OutputStream::max_frame_rate
AVRational max_frame_rate
Definition: ffmpeg.h:528
InputStream::guess_layout_max
int guess_layout_max
Definition: ffmpeg.h:373
OutputStream::filters_script
char * filters_script
filtergraph script associated to the -filter_script option
Definition: ffmpeg.h:563
OutputStream::pkt
AVPacket * pkt
Definition: ffmpeg.h:522
OutputStream::apad
char * apad
Definition: ffmpeg.h:568
OptionsContext::nb_hwaccel_output_formats
int nb_hwaccel_output_formats
Definition: ffmpeg.h:139
init_complex_filtergraph
int init_complex_filtergraph(FilterGraph *fg)
Definition: ffmpeg_filter.c:318
OptionsContext::forced_key_frames
SpecifierOpt * forced_key_frames
Definition: ffmpeg.h:188
free_input_threads
void free_input_threads(void)
Definition: ffmpeg_demux.c:295
AVOutputFormat
Definition: avformat.h:509
OutputStream::data_size_mux
uint64_t data_size_mux
Definition: ffmpeg.h:589
OptionsContext::metadata_map
SpecifierOpt * metadata_map
Definition: ffmpeg.h:206
InputStream::ret
int ret
Definition: ffmpeg.h:380
StreamMap::stream_index
int stream_index
Definition: ffmpeg.h:84
OptionsContext::nb_qscale
int nb_qscale
Definition: ffmpeg.h:187
OptionsContext::stream_maps
StreamMap * stream_maps
Definition: ffmpeg.h:144
OptionsContext::nb_ts_scale
int nb_ts_scale
Definition: ffmpeg.h:131
OptionsContext::audio_sample_rate
SpecifierOpt * audio_sample_rate
Definition: ffmpeg.h:110
OptionsContext::start_time_eof
int64_t start_time_eof
Definition: ffmpeg.h:100
VSYNC_CFR
@ VSYNC_CFR
Definition: ffmpeg.h:60
OptionsContext::shortest_buf_duration
float shortest_buf_duration
Definition: ffmpeg.h:163
OutputFile::bitexact
int bitexact
Definition: ffmpeg.h:636
OptionsContext::nb_fix_sub_duration
int nb_fix_sub_duration
Definition: ffmpeg.h:221
exit_on_error
int exit_on_error
Definition: ffmpeg_opt.c:171
output_files
OutputFile ** output_files
Definition: ffmpeg.c:151
OutputFile::ost_index
int ost_index
Definition: ffmpeg.h:631
OutputStream::last_nb0_frames
int64_t last_nb0_frames[3]
Definition: ffmpeg.h:524
OptionsContext::nb_frame_pix_fmts
int nb_frame_pix_fmts
Definition: ffmpeg.h:119
InputStream::processing_needed
int processing_needed
Definition: ffmpeg.h:324
hw_device_setup_for_filter
int hw_device_setup_for_filter(FilterGraph *fg)
Definition: ffmpeg_hw.c:551
InputFile::ctx
AVFormatContext * ctx
Definition: ffmpeg.h:432
InputFile::accurate_seek
int accurate_seek
Definition: ffmpeg.h:456
videotoolbox_init
int videotoolbox_init(AVCodecContext *s)
OptionsContext::nb_copy_prior_start
int nb_copy_prior_start
Definition: ffmpeg.h:213
OptionsContext::bits_per_raw_sample
SpecifierOpt * bits_per_raw_sample
Definition: ffmpeg.h:248
OptionsContext::bitstream_filters
SpecifierOpt * bitstream_filters
Definition: ffmpeg.h:180
OptionsContext::streamid_map
int * streamid_map
Definition: ffmpeg.h:173
InputFile::recording_time
int64_t recording_time
Definition: ffmpeg.h:450
avcodec.h
OptionsContext::passlogfiles
SpecifierOpt * passlogfiles
Definition: ffmpeg.h:226
InputFile::loop
int loop
Definition: ffmpeg.h:436
SpecifierOpt
Definition: cmdutils.h:134
OptionsContext::autoscale
SpecifierOpt * autoscale
Definition: ffmpeg.h:246
AVStream
Stream structure.
Definition: avformat.h:948
OptionsContext::nb_bitstream_filters
int nb_bitstream_filters
Definition: ffmpeg.h:181
pixfmt.h
OutputStream::max_muxing_queue_size
int max_muxing_queue_size
Definition: ffmpeg.h:603
abort_on_flags
int abort_on_flags
Definition: ffmpeg_opt.c:172
frame
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
Definition: filter_design.txt:264
InputFilter::name
uint8_t * name
Definition: ffmpeg.h:256
OptionsContext::nb_streamid_map
int nb_streamid_map
Definition: ffmpeg.h:174
VSYNC_DROP
@ VSYNC_DROP
Definition: ffmpeg.h:63
sdp_filename
char * sdp_filename
Definition: ffmpeg_opt.c:154
OutputFilter::ch_layout
AVChannelLayout ch_layout
Definition: ffmpeg.h:291
OptionsContext::audio_channel_maps
AudioChannelMap * audio_channel_maps
Definition: ffmpeg.h:147
OutputStream::forced_kf_ref_pts
int64_t forced_kf_ref_pts
Definition: ffmpeg.h:542
InputStream::reinit_filters
int reinit_filters
Definition: ffmpeg.h:398
hw_device_free_all
void hw_device_free_all(void)
Definition: ffmpeg_hw.c:288
avformat.h
InputFile::eagain
int eagain
Definition: ffmpeg.h:434
HWAccelID
HWAccelID
Definition: ffmpeg.h:68
dict.h
InputFile::ist_index
int ist_index
Definition: ffmpeg.h:435
of_muxer_init
int of_muxer_init(OutputFile *of, AVFormatContext *fc, AVDictionary *opts, int64_t limit_filesize, int thread_queue_size)
Definition: ffmpeg_mux.c:612
OptionsContext::nb_sample_fmts
int nb_sample_fmts
Definition: ffmpeg.h:185
InputFilter::sample_rate
int sample_rate
Definition: ffmpeg.h:267
OptionsContext::nb_enc_time_bases
int nb_enc_time_bases
Definition: ffmpeg.h:245
SyncQueue
Definition: sync_queue.c:45
OptionsContext::nb_max_frames
int nb_max_frames
Definition: ffmpeg.h:179
OptionsContext::disposition
SpecifierOpt * disposition
Definition: ffmpeg.h:238
ifilter_parameters_from_frame
int ifilter_parameters_from_frame(InputFilter *ifilter, const AVFrame *frame)
Definition: ffmpeg_filter.c:1142
OutputFilter::format
int format
Definition: ffmpeg.h:289
filter_hw_device
HWDevice * filter_hw_device
Definition: ffmpeg_opt.c:151
AVCodecContext
main external API structure.
Definition: avcodec.h:398
hw_device_setup_for_encode
int hw_device_setup_for_encode(OutputStream *ost)
Definition: ffmpeg_hw.c:445
OptionsContext::mux_preload
float mux_preload
Definition: ffmpeg.h:161
HWDevice::name
const char * name
Definition: ffmpeg.h:75
InputFilter::format
int format
Definition: ffmpeg.h:262
OutputStream::finished
OSTFinished finished
Definition: ffmpeg.h:569
OptionsContext::nb_audio_channels
int nb_audio_channels
Definition: ffmpeg.h:109
InputStream::prev_pkt_pts
int64_t prev_pkt_pts
Definition: ffmpeg.h:339
InputFile::audio_duration_queue
AVThreadMessageQueue * audio_duration_queue
Definition: ffmpeg.h:465
OptionsContext::guess_layout_max
SpecifierOpt * guess_layout_max
Definition: ffmpeg.h:232
OptionsContext::enc_time_bases
SpecifierOpt * enc_time_bases
Definition: ffmpeg.h:244
avfilter.h
OutputFilter::formats
const int * formats
Definition: ffmpeg.h:295
FilterGraph::is_meta
int is_meta
Definition: ffmpeg.h:308
OutputStream::last_mux_dts
int64_t last_mux_dts
Definition: ffmpeg.h:502
OptionsContext::video_disable
int video_disable
Definition: ffmpeg.h:167
OutputStream::quality
int quality
Definition: ffmpeg.h:601
OptionsContext::nb_forced_key_frames
int nb_forced_key_frames
Definition: ffmpeg.h:189
OutputStream::bits_per_raw_sample
int bits_per_raw_sample
Definition: ffmpeg.h:536
OptionsContext::max_frame_rates
SpecifierOpt * max_frame_rates
Definition: ffmpeg.h:114
InputStream::nb_samples
int64_t nb_samples
Definition: ffmpeg.h:366
InputFilter::height
int height
Definition: ffmpeg.h:264
OptionsContext::frame_pix_fmts
SpecifierOpt * frame_pix_fmts
Definition: ffmpeg.h:118
video_sync_method
enum VideoSyncMethod video_sync_method
Definition: ffmpeg_opt.c:161
OutputStream::frames_encoded
uint64_t frames_encoded
Definition: ffmpeg.h:595
HWACCEL_NONE
@ HWACCEL_NONE
Definition: ffmpeg.h:69
InputFile::ts_offset
int64_t ts_offset
Definition: ffmpeg.h:443
OptionsContext::nb_frame_sizes
int nb_frame_sizes
Definition: ffmpeg.h:117
OptionsContext::hwaccel_devices
SpecifierOpt * hwaccel_devices
Definition: ffmpeg.h:136
InputStream::discard
int discard
Definition: ffmpeg.h:319
OptionsContext::max_muxing_queue_size
SpecifierOpt * max_muxing_queue_size
Definition: ffmpeg.h:228
AVFilterContext
An instance of a filter.
Definition: avfilter.h:408
remove_avoptions
void remove_avoptions(AVDictionary **a, AVDictionary *b)
Definition: ffmpeg.c:644
VSYNC_AUTO
@ VSYNC_AUTO
Definition: ffmpeg.h:58
OutputFilter
Definition: ffmpeg.h:276
InputStream::sub2video::frame
AVFrame * frame
Definition: ffmpeg.h:388
OptionsContext::nb_muxing_queue_data_threshold
int nb_muxing_queue_data_threshold
Definition: ffmpeg.h:231
OptionsContext::nb_inter_matrices
int nb_inter_matrices
Definition: ffmpeg.h:201
OutputStream::last_filter_pts
int64_t last_filter_pts
Definition: ffmpeg.h:504
OptionsContext::muxing_queue_data_threshold
SpecifierOpt * muxing_queue_data_threshold
Definition: ffmpeg.h:230
avutil.h
start_at_zero
int start_at_zero
Definition: ffmpeg_opt.c:168
AVBufferRef
A reference to a data buffer.
Definition: buffer.h:82
OutputStream::file_index
int file_index
Definition: ffmpeg.h:489
OptionsContext::copy_prior_start
SpecifierOpt * copy_prior_start
Definition: ffmpeg.h:212
InputStream::sub2video
Definition: ffmpeg.h:384
OptionsContext::fps_mode
SpecifierOpt * fps_mode
Definition: ffmpeg.h:190
OutputFilter::out_tmp
AVFilterInOut * out_tmp
Definition: ffmpeg.h:283
auto_conversion_filters
int auto_conversion_filters
Definition: ffmpeg_opt.c:180
InputStream::sub2video::h
int h
Definition: ffmpeg.h:389
OptionsContext::nb_passlogfiles
int nb_passlogfiles
Definition: ffmpeg.h:227
OutputStream::is_cfr
int is_cfr
Definition: ffmpeg.h:530
OutputStream::autoscale
int autoscale
Definition: ffmpeg.h:534
InputFilter::hw_frames_ctx
AVBufferRef * hw_frames_ctx
Definition: ffmpeg.h:270
FKF_N_FORCED
@ FKF_N_FORCED
Definition: ffmpeg.h:471
OptionsContext::attachments
const char ** attachments
Definition: ffmpeg.h:153
InputStream::sub2video::end_pts
int64_t end_pts
Definition: ffmpeg.h:386
stdin_interaction
int stdin_interaction
Definition: ffmpeg_opt.c:175
do_hex_dump
int do_hex_dump
Definition: ffmpeg_opt.c:165
LastFrameDuration::duration
int64_t duration
Definition: ffmpeg.h:426
InputStream::ts_scale
double ts_scale
Definition: ffmpeg.h:368
OptionsContext::ts_scale
SpecifierOpt * ts_scale
Definition: ffmpeg.h:130
AVPacket
This structure stores compressed data.
Definition: packet.h:351
main_return_code
int main_return_code
Definition: ffmpeg.c:339
OptionsContext::chroma_intra_matrices
SpecifierOpt * chroma_intra_matrices
Definition: ffmpeg.h:202
FilterGraph::reconfiguration
int reconfiguration
Definition: ffmpeg.h:305
HWDevice::type
enum AVHWDeviceType type
Definition: ffmpeg.h:76
cmdutils.h
InputFile::input_ts_offset
int64_t input_ts_offset
Definition: ffmpeg.h:440
OptionsContext::data_disable
int data_disable
Definition: ffmpeg.h:170
InputStream::dts_buffer
int64_t * dts_buffer
Definition: ffmpeg.h:418
InputFilter::frame_queue
AVFifo * frame_queue
Definition: ffmpeg.h:259
int32_t
int32_t
Definition: audioconvert.c:56
OutputStream::muxing_queue_data_threshold
size_t muxing_queue_data_threshold
Definition: ffmpeg.h:606
FKF_NB
@ FKF_NB
Definition: ffmpeg.h:475
OutputStream
Definition: muxing.c:54
hwcontext.h
OutputStream::sq_idx_encode
int sq_idx_encode
Definition: ffmpeg.h:614
OutputStream::st
AVStream * st
Definition: muxing.c:55
dts_error_threshold
float dts_error_threshold
Definition: ffmpeg_opt.c:158
OptionsContext::hwaccel_output_formats
SpecifierOpt * hwaccel_output_formats
Definition: ffmpeg.h:138
OutputFile::format
const AVOutputFormat * format
Definition: ffmpeg.h:624
InputStream::nb_dts_buffer
int nb_dts_buffer
Definition: ffmpeg.h:419
nb_output_streams
int nb_output_streams
Definition: ffmpeg.c:150
InputStream::saw_first_ts
int saw_first_ts
Definition: ffmpeg.h:369
OutputStream::swr_opts
AVDictionary * swr_opts
Definition: ffmpeg.h:567
OutputStream::forced_kf_index
int forced_kf_index
Definition: ffmpeg.h:545
OutputFilter::frame_rate
AVRational frame_rate
Definition: ffmpeg.h:288
OutputStream::filtered_frame
AVFrame * filtered_frame
Definition: ffmpeg.h:519
InputFile::nb_streams
int nb_streams
Definition: ffmpeg.h:451
FKF_N
@ FKF_N
Definition: ffmpeg.h:470
OutputFile::recording_time
int64_t recording_time
desired length of the resulting file in microseconds == AV_TIME_BASE units
Definition: ffmpeg.h:632
int
int
Definition: ffmpeg_filter.c:156
OutputStream::samples_encoded
uint64_t samples_encoded
Definition: ffmpeg.h:596
OutputStream::dropped_keyframe
int dropped_keyframe
Definition: ffmpeg.h:549
OutputStream::inputs_done
int inputs_done
Definition: ffmpeg.h:577
hw_device_get_by_name
HWDevice * hw_device_get_by_name(const char *name)
Definition: ffmpeg_hw.c:44
OptionsContext::nb_codec_tags
int nb_codec_tags
Definition: ffmpeg.h:183
AVFilterInOut
A linked-list of the inputs/outputs of the filter chain.
Definition: avfilter.h:1031
VSYNC_PASSTHROUGH
@ VSYNC_PASSTHROUGH
Definition: ffmpeg.h:59
InputStream::dec
const AVCodec * dec
Definition: ffmpeg.h:333
OutputStream::bsf_ctx
AVBSFContext * bsf_ctx
Definition: ffmpeg.h:515
OptionsContext::discard
SpecifierOpt * discard
Definition: ffmpeg.h:236
InputStream::subtitle
AVSubtitle subtitle
Definition: ffmpeg.h:381
of_write_trailer
int of_write_trailer(OutputFile *of)
Definition: ffmpeg_mux.c:516
filtergraph_is_simple
int filtergraph_is_simple(FilterGraph *fg)
Definition: ffmpeg_filter.c:1174
atomic_uint_least64_t
intptr_t atomic_uint_least64_t
Definition: stdatomic.h:69
term_exit
void term_exit(void)
Definition: ffmpeg.c:329
filter_complex_nbthreads
int filter_complex_nbthreads
Definition: ffmpeg_opt.c:178
OutputFile
Definition: ffmpeg.h:620
OptionsContext::loop
int loop
Definition: ffmpeg.h:123
InputStream::autorotate
int autorotate
Definition: ffmpeg.h:375
OutputStream::enc_timebase
AVRational enc_timebase
Definition: ffmpeg.h:513
OptionsContext::nb_force_fps
int nb_force_fps
Definition: ffmpeg.h:193