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 #define FFMPEG_ROTATION_METADATA 1
57 #define FFMPEG_OPT_QPHIST 1
58 #define FFMPEG_OPT_ADRIFT_THRESHOLD 1
59 #define FFMPEG_OPT_ENC_TIME_BASE_NUM 1
60 #define FFMPEG_OPT_TOP 1
61 #define FFMPEG_OPT_FORCE_KF_SOURCE_NO_DROP 1
62 
64  VSYNC_AUTO = -1,
70 };
71 
75 };
76 
77 enum HWAccelID {
81 };
82 
83 typedef struct HWDevice {
84  const char *name;
87 } HWDevice;
88 
89 /* select an input stream for an output stream */
90 typedef struct StreamMap {
91  int disabled; /* 1 is this mapping is disabled by a negative map */
94  char *linklabel; /* name of an output link, for mapping lavfi outputs */
95 } StreamMap;
96 
97 #if FFMPEG_OPT_MAP_CHANNEL
98 typedef struct {
99  int file_idx, stream_idx, channel_idx; // input
100  int ofile_idx, ostream_idx; // output
102 #endif
103 
104 typedef struct DemuxPktData {
105  // estimated dts in AV_TIME_BASE_Q,
106  // to be used when real dts is missing
107  int64_t dts_est;
108 } DemuxPktData;
109 
110 typedef struct OptionsContext {
112 
113  /* input/output options */
114  int64_t start_time;
115  int64_t start_time_eof;
117  const char *format;
118 
135 
136  /* input options */
138  int loop;
139  int rate_emu;
140  float readrate;
146 
159 
160  /* output options */
163 #if FFMPEG_OPT_MAP_CHANNEL
164  AudioChannelMap *audio_channel_maps; /* one info entry per -map_channel */
165  int nb_audio_channel_maps; /* number of (valid) -map_channel settings */
166 #endif
167  const char **attachments;
169 
171 
172  int64_t recording_time;
173  int64_t stop_time;
174  int64_t limit_filesize;
175  float mux_preload;
178  int shortest;
179  int bitexact;
180 
185 
186  // keys are stream indices
188 
223 #if FFMPEG_OPT_TOP
226 #endif
248  int nb_pass;
258  int nb_apad;
286 
287 typedef struct InputFilter {
289  uint8_t *name;
290 } InputFilter;
291 
292 typedef struct OutputFilter {
293  struct OutputStream *ost;
295  uint8_t *name;
296 
297  /* for filters that are not yet bound to an output stream,
298  * this stores the output linklabel, if any */
299  uint8_t *linklabel;
300 
302 
303  /* pts of the last frame received from this filter, in AV_TIME_BASE_Q */
304  int64_t last_pts;
305 
306  uint64_t nb_frames_dup;
307  uint64_t nb_frames_drop;
308 } OutputFilter;
309 
310 typedef struct FilterGraph {
311  const AVClass *class;
312  int index;
313 
315 
320 } FilterGraph;
321 
322 typedef struct Decoder Decoder;
323 
324 typedef struct InputStream {
325  const AVClass *class;
326 
328  int index;
329 
331  int discard; /* true if stream data should be discarded */
333  int decoding_needed; /* non zero if the packets must be decoded in 'raw_fifo', see DECODING_FOR_* */
334 #define DECODING_FOR_OST 1
335 #define DECODING_FOR_FILTER 2
336 
337  /**
338  * Codec parameters - to be used by the decoding/streamcopy code.
339  * st->codecpar should not be accessed, because it may be modified
340  * concurrently by the demuxing thread.
341  */
345  const AVCodec *dec;
347 
349 
351  AVRational framerate; /* framerate forced with -r */
352 #if FFMPEG_OPT_TOP
354 #endif
355 
357 
359 
360  struct sub2video {
361  int w, h;
362  } sub2video;
363 
364  /* decoded data from this stream goes into all those filters
365  * currently video and audio only */
368 
369  /*
370  * Output targets that do not go through lavfi, i.e. subtitles or
371  * streamcopy. Those two cases are distinguished by the OutputStream
372  * having an encoder or not.
373  */
376 
378 
379  /* hwaccel options */
384 
385  /* stats */
386  // number of frames/samples retrieved from the decoder
387  uint64_t frames_decoded;
388  uint64_t samples_decoded;
389  uint64_t decode_errors;
390 } InputStream;
391 
392 typedef struct InputFile {
393  const AVClass *class;
394 
395  int index;
396 
397  // input format has no timestamps
399 
401  int eof_reached; /* true if eof reached */
402  int eagain; /* true if last read attempt returned EAGAIN */
405  /**
406  * Effective format start time based on enabled streams.
407  */
409  int64_t ts_offset;
410  int64_t start_time; /* user-specified start time in AV_TIME_BASE or AV_NOPTS_VALUE */
411  int64_t recording_time;
412 
413  /* streams that ffmpeg is aware of;
414  * there may be extra streams in ctx that are not mapped to an InputStream
415  * if new streams appear dynamically during demuxing */
418 
419  float readrate;
421 
422  /* when looping the input file, this queue is used by decoders to report
423  * the last frame timestamp back to the demuxer thread */
426 } InputFile;
427 
435 };
436 
437 #define ABORT_ON_FLAG_EMPTY_OUTPUT (1 << 0)
438 #define ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM (1 << 1)
439 
459 };
460 
461 typedef struct EncStatsComponent {
463 
464  uint8_t *str;
465  size_t str_len;
467 
468 typedef struct EncStats {
471 
473 } EncStats;
474 
475 extern const char *const forced_keyframes_const_names[];
476 
477 typedef enum {
480 } OSTFinished ;
481 
482 enum {
484 #if FFMPEG_OPT_FORCE_KF_SOURCE_NO_DROP
486 #endif
487 };
488 
489 typedef struct KeyframeForceCtx {
490  int type;
491 
492  int64_t ref_pts;
493 
494  // timestamps of the forced keyframes, in AV_TIME_BASE_Q
495  int64_t *pts;
496  int nb_pts;
497  int index;
498 
501 
504 
505 typedef struct Encoder Encoder;
506 
507 typedef struct OutputStream {
508  const AVClass *class;
509 
511 
512  int file_index; /* file index */
513  int index; /* stream index in the output file */
514 
515  /**
516  * Codec parameters for packets submitted to the muxer (i.e. before
517  * bitstream filtering, if any).
518  */
520 
521  /* input stream that is the source for this output stream;
522  * may be NULL for streams with no well-defined source, e.g.
523  * attachments or outputs from complex filtergraphs */
525 
526  AVStream *st; /* stream in the output file */
527  /* dts of the last packet sent to the muxing queue, in AV_TIME_BASE_Q */
528  int64_t last_mux_dts;
529 
531 
534 
535  /* video only */
539  int is_cfr;
541 #if FFMPEG_OPT_TOP
543 #endif
544 #if FFMPEG_ROTATION_METADATA
546 #endif
548  int bitexact;
550 #if FFMPEG_ROTATION_METADATA
552 #endif
553 
555 
557 
558  /* audio only */
559 #if FFMPEG_OPT_MAP_CHANNEL
560  int *audio_channels_map; /* list of the channels id to pick from the source stream */
561  int audio_channels_mapped; /* number of channels in audio_channels_map */
562 #endif
563 
565  FILE *logfile;
566 
568 
572  char *apad;
573  OSTFinished finished; /* no more packets should be written for this stream */
574  int unavailable; /* true if the steram is unavailable (possibly temporarily) */
575 
576  // init_output_stream() has been called for this stream
577  // The encoder and the bitstream filters have been initialized and the stream
578  // parameters are set in the AVStream.
580 
581  const char *attachment_filename;
582 
584 
585  /* stats */
586  // number of packets send to the muxer
588  // number of frames/samples sent to the encoder
589  uint64_t frames_encoded;
590  uint64_t samples_encoded;
591 
592  /* packet quality factor */
593  int quality;
594 
597 
600 
601  /*
602  * bool on whether this stream should be utilized for splitting
603  * subtitles utilizing fix_sub_duration at random access points.
604  */
606 } OutputStream;
607 
608 typedef struct OutputFile {
609  const AVClass *class;
610 
611  int index;
612 
614  const char *url;
615 
618 
620 
621  int64_t recording_time; ///< desired length of the resulting file in microseconds == AV_TIME_BASE units
622  int64_t start_time; ///< start time in microseconds == AV_TIME_BASE units
623 
624  int shortest;
625  int bitexact;
626 } OutputFile;
627 
628 // optionally attached as opaque_ref to decoded AVFrames
629 typedef struct FrameData {
630  // properties that come from the decoder
631  struct {
632  uint64_t frame_num;
633 
634  int64_t pts;
636  } dec;
637 
639 
641 } FrameData;
642 
643 extern InputFile **input_files;
644 extern int nb_input_files;
645 
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 dts_delta_threshold;
656 extern float dts_error_threshold;
657 
659 extern float frame_drop_threshold;
660 extern int do_benchmark;
661 extern int do_benchmark_all;
662 extern int do_hex_dump;
663 extern int do_pkt_dump;
664 extern int copy_ts;
665 extern int start_at_zero;
666 extern int copy_tb;
667 extern int debug_ts;
668 extern int exit_on_error;
669 extern int abort_on_flags;
670 extern int print_stats;
671 extern int64_t stats_period;
672 extern int stdin_interaction;
673 extern AVIOContext *progress_avio;
674 extern float max_error_rate;
675 
676 extern char *filter_nbthreads;
677 extern int filter_complex_nbthreads;
678 extern int vstats_version;
679 extern int auto_conversion_filters;
680 
681 extern const AVIOInterruptCB int_cb;
682 
683 extern const OptionDef options[];
684 extern HWDevice *filter_hw_device;
685 
686 extern unsigned nb_output_dumped;
687 
688 extern int ignore_unknown_streams;
689 extern int copy_unknown_streams;
690 
691 extern int recast_media;
692 
693 extern FILE *vstats_file;
694 
695 #if FFMPEG_OPT_PSNR
696 extern int do_psnr;
697 #endif
698 
699 void term_init(void);
700 void term_exit(void);
701 
702 void show_usage(void);
703 
706 
707 int assert_file_overwrite(const char *filename);
708 char *file_read(const char *filename);
710 int find_codec(void *logctx, const char *name,
711  enum AVMediaType type, int encoder, const AVCodec **codec);
712 int parse_and_set_vsync(const char *arg, int *vsync_var, int file_idx, int st_idx, int is_global);
713 
714 int check_filter_outputs(void);
715 int filtergraph_is_simple(const FilterGraph *fg);
717  char *graph_desc);
719 
720 int copy_av_subtitle(AVSubtitle *dst, const AVSubtitle *src);
721 int subtitle_wrap_frame(AVFrame *frame, AVSubtitle *subtitle, int copy);
722 
723 /**
724  * Get our axiliary frame data attached to the frame, allocating it
725  * if needed.
726  */
728 
729 int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame, int keep_reference);
730 int ifilter_send_eof(InputFilter *ifilter, int64_t pts, AVRational tb);
731 int ifilter_sub2video(InputFilter *ifilter, const AVFrame *frame);
732 void ifilter_sub2video_heartbeat(InputFilter *ifilter, int64_t pts, AVRational tb);
733 
734 /**
735  * Set up fallback filtering parameters from a decoder context. They will only
736  * be used if no frames are ever sent on this input, otherwise the actual
737  * parameters are taken from the frame.
738  */
739 int ifilter_parameters_from_dec(InputFilter *ifilter, const AVCodecContext *dec);
740 
742 
743 /**
744  * Create a new filtergraph in the global filtergraph list.
745  *
746  * @param graph_desc Graph description; an av_malloc()ed string, filtergraph
747  * takes ownership of it.
748  */
749 int fg_create(FilterGraph **pfg, char *graph_desc);
750 
751 void fg_free(FilterGraph **pfg);
752 
753 /**
754  * Perform a step of transcoding for the specified filter graph.
755  *
756  * @param[in] graph filter graph to consider
757  * @param[out] best_ist input stream where a frame would allow to continue
758  * @return 0 for success, <0 for error
759  */
760 int fg_transcode_step(FilterGraph *graph, InputStream **best_ist);
761 
762 void fg_send_command(FilterGraph *fg, double time, const char *target,
763  const char *command, const char *arg, int all_filters);
764 
765 /**
766  * Get and encode new output from specified filtergraph, without causing
767  * activity.
768  *
769  * @return 0 for success, <0 for severe errors
770  */
771 int reap_filters(FilterGraph *fg, int flush);
772 
773 int ffmpeg_parse_options(int argc, char **argv);
774 
776  const AVFrame *frame, const AVPacket *pkt,
777  uint64_t frame_num);
778 
779 HWDevice *hw_device_get_by_name(const char *name);
781 int hw_device_init_from_string(const char *arg, HWDevice **dev);
783  const char *device,
784  HWDevice **dev_out);
785 void hw_device_free_all(void);
786 
787 /**
788  * Get a hardware device to be used with this filtergraph.
789  * The returned reference is owned by the callee, the caller
790  * must ref it explicitly for long-term use.
791  */
793 
795 
796 int dec_open(InputStream *ist);
797 void dec_free(Decoder **pdec);
798 
799 /**
800  * Submit a packet for decoding
801  *
802  * When pkt==NULL and no_eof=0, there will be no more input. Flush decoders and
803  * mark all downstreams as finished.
804  *
805  * When pkt==NULL and no_eof=1, the stream was reset (e.g. after a seek). Flush
806  * decoders and await further input.
807  */
808 int dec_packet(InputStream *ist, const AVPacket *pkt, int no_eof);
809 
810 int enc_alloc(Encoder **penc, const AVCodec *codec);
811 void enc_free(Encoder **penc);
812 
813 int enc_open(OutputStream *ost, const AVFrame *frame);
814 int enc_subtitle(OutputFile *of, OutputStream *ost, const AVSubtitle *sub);
816 int enc_flush(void);
817 
818 /*
819  * Initialize muxing state for the given stream, should be called
820  * after the codec/streamcopy setup has been done.
821  *
822  * Open the muxer once all the streams have been initialized.
823  */
826 int of_open(const OptionsContext *o, const char *filename);
827 void of_free(OutputFile **pof);
828 
829 void of_enc_stats_close(void);
830 
832 
833 /**
834  * @param dts predicted packet dts in AV_TIME_BASE_Q
835  */
836 int of_streamcopy(OutputStream *ost, const AVPacket *pkt, int64_t dts);
837 
838 int64_t of_filesize(OutputFile *of);
839 
840 int ifile_open(const OptionsContext *o, const char *filename);
841 void ifile_close(InputFile **f);
842 
843 /**
844  * Get next input packet from the demuxer.
845  *
846  * @param pkt the packet is written here when this function returns 0
847  * @return
848  * - 0 when a packet has been read successfully
849  * - 1 when stream end was reached, but the stream is looped;
850  * caller should flush decoders and read from this demuxer again
851  * - a negative error code on failure
852  */
854 
856 int ist_filter_add(InputStream *ist, InputFilter *ifilter, int is_simple);
857 
858 /**
859  * Find an unused input stream of given type.
860  */
862 
863 /* iterate over all input streams in all input files;
864  * pass NULL to start iteration */
866 
867 /* iterate over all output streams in all output files;
868  * pass NULL to start iteration */
870 
873 int fix_sub_duration_heartbeat(InputStream *ist, int64_t signal_pts);
874 void update_benchmark(const char *fmt, ...);
875 
876 #define SPECIFIER_OPT_FMT_str "%s"
877 #define SPECIFIER_OPT_FMT_i "%i"
878 #define SPECIFIER_OPT_FMT_i64 "%"PRId64
879 #define SPECIFIER_OPT_FMT_ui64 "%"PRIu64
880 #define SPECIFIER_OPT_FMT_f "%f"
881 #define SPECIFIER_OPT_FMT_dbl "%lf"
882 
883 #define WARN_MULTIPLE_OPT_USAGE(name, type, so, st)\
884 {\
885  char namestr[128] = "";\
886  const char *spec = so->specifier && so->specifier[0] ? so->specifier : "";\
887  for (int _i = 0; opt_name_##name[_i]; _i++)\
888  av_strlcatf(namestr, sizeof(namestr), "-%s%s", opt_name_##name[_i], opt_name_##name[_i+1] ? (opt_name_##name[_i+2] ? ", " : " or ") : "");\
889  av_log(NULL, AV_LOG_WARNING, "Multiple %s options specified for stream %d, only the last option '-%s%s%s "SPECIFIER_OPT_FMT_##type"' will be used.\n",\
890  namestr, st->index, opt_name_##name[0], spec[0] ? ":" : "", spec, so->u.type);\
891 }
892 
893 #define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)\
894 {\
895  int _ret, _matches = 0;\
896  SpecifierOpt *so;\
897  for (int _i = 0; _i < o->nb_ ## name; _i++) {\
898  char *spec = o->name[_i].specifier;\
899  if ((_ret = check_stream_specifier(fmtctx, st, spec)) > 0) {\
900  outvar = o->name[_i].u.type;\
901  so = &o->name[_i];\
902  _matches++;\
903  } else if (_ret < 0)\
904  return _ret;\
905  }\
906  if (_matches > 1)\
907  WARN_MULTIPLE_OPT_USAGE(name, type, so, st);\
908 }
909 
910 #define MATCH_PER_TYPE_OPT(name, type, outvar, fmtctx, mediatype)\
911 {\
912  int i;\
913  for (i = 0; i < o->nb_ ## name; i++) {\
914  char *spec = o->name[i].specifier;\
915  if (!strcmp(spec, mediatype))\
916  outvar = o->name[i].u.type;\
917  }\
918 }
919 
920 extern const char * const opt_name_codec_names[];
921 extern const char * const opt_name_codec_tags[];
922 extern const char * const opt_name_frame_rates[];
923 #if FFMPEG_OPT_TOP
924 extern const char * const opt_name_top_field_first[];
925 #endif
926 
927 #endif /* FFTOOLS_FFMPEG_H */
OptionsContext::readrate
float readrate
Definition: ffmpeg.h:140
AVSubtitle
Definition: avcodec.h:2269
OptionsContext::nb_hwaccels
int nb_hwaccels
Definition: ffmpeg.h:152
KeyframeForceCtx::pts
int64_t * pts
Definition: ffmpeg.h:495
OptionsContext::nb_codec_names
int nb_codec_names
Definition: ffmpeg.h:120
InputFile::format_nots
int format_nots
Definition: ffmpeg.h:398
AVCodec
AVCodec.
Definition: codec.h:187
OptionsContext::input_ts_offset
int64_t input_ts_offset
Definition: ffmpeg.h:137
of_open
int of_open(const OptionsContext *o, const char *filename)
Definition: ffmpeg_mux_init.c:2624
OutputFilter::last_pts
int64_t last_pts
Definition: ffmpeg.h:304
OptionsContext::enc_stats_post_fmt
SpecifierOpt * enc_stats_post_fmt
Definition: ffmpeg.h:281
InputFile::start_time
int64_t start_time
Definition: ffmpeg.h:410
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:173
StreamMap::file_index
int file_index
Definition: ffmpeg.h:92
KeyframeForceCtx::dropped_keyframe
int dropped_keyframe
Definition: ffmpeg.h:502
OutputStream::sq_idx_mux
int sq_idx_mux
Definition: ffmpeg.h:596
OutputFilter::graph
struct FilterGraph * graph
Definition: ffmpeg.h:294
of_streamcopy
int of_streamcopy(OutputStream *ost, const AVPacket *pkt, int64_t dts)
Definition: ffmpeg_mux.c:407
FKF_PREV_FORCED_T
@ FKF_PREV_FORCED_T
Definition: ffmpeg.h:432
OptionsContext::canvas_sizes
SpecifierOpt * canvas_sizes
Definition: ffmpeg.h:245
InputStream::hwaccel_device
char * hwaccel_device
Definition: ffmpeg.h:382
VSYNC_VFR
@ VSYNC_VFR
Definition: ffmpeg.h:67
EncStatsComponent::type
enum EncStatsType type
Definition: ffmpeg.h:462
OptionsContext::dump_attachment
SpecifierOpt * dump_attachment
Definition: ffmpeg.h:149
OutputStream::attachment_filename
const char * attachment_filename
Definition: ffmpeg.h:581
OptionsContext::nb_audio_sample_rate
int nb_audio_sample_rate
Definition: ffmpeg.h:126
InputFile::audio_ts_queue_size
int audio_ts_queue_size
Definition: ffmpeg.h:425
nb_filtergraphs
int nb_filtergraphs
Definition: ffmpeg.c:131
OptionsContext::nb_max_frame_rates
int nb_max_frame_rates
Definition: ffmpeg.h:130
OptionsContext::intra_matrices
SpecifierOpt * intra_matrices
Definition: ffmpeg.h:217
InputStream::framerate_guessed
AVRational framerate_guessed
Definition: ffmpeg.h:348
FrameData
Definition: ffmpeg.h:629
enc_flush
int enc_flush(void)
Definition: ffmpeg_enc.c:863
OptionsContext::nb_time_bases
int nb_time_bases
Definition: ffmpeg.h:266
ENC_STATS_PTS
@ ENC_STATS_PTS
Definition: ffmpeg.h:448
OptionsContext::nb_mux_stats
int nb_mux_stats
Definition: ffmpeg.h:278
ENC_STATS_FRAME_NUM_IN
@ ENC_STATS_FRAME_NUM_IN
Definition: ffmpeg.h:445
KF_FORCE_SOURCE_NO_DROP
@ KF_FORCE_SOURCE_NO_DROP
Definition: ffmpeg.h:485
FKF_PREV_FORCED_N
@ FKF_PREV_FORCED_N
Definition: ffmpeg.h:431
OptionsContext::nb_audio_ch_layouts
int nb_audio_ch_layouts
Definition: ffmpeg.h:122
AVCodecParameters
This struct describes the properties of an encoded stream.
Definition: codec_par.h:47
OutputStream::enc_ctx
AVCodecContext * enc_ctx
Definition: ffmpeg.h:533
reap_filters
int reap_filters(FilterGraph *fg, int flush)
Get and encode new output from specified filtergraph, without causing activity.
Definition: ffmpeg_filter.c:2236
OptionsContext::nb_rc_overrides
int nb_rc_overrides
Definition: ffmpeg.h:216
thread.h
FilterGraph::inputs
InputFilter ** inputs
Definition: ffmpeg.h:316
ENC_STATS_DTS
@ ENC_STATS_DTS
Definition: ffmpeg.h:452
fg_free
void fg_free(FilterGraph **pfg)
Definition: ffmpeg_filter.c:800
vstats_file
FILE * vstats_file
Definition: ffmpeg.c:108
OptionsContext::hwaccels
SpecifierOpt * hwaccels
Definition: ffmpeg.h:151
OptionsContext::apad
SpecifierOpt * apad
Definition: ffmpeg.h:257
OutputStream::par_in
AVCodecParameters * par_in
Codec parameters for packets submitted to the muxer (i.e.
Definition: ffmpeg.h:519
InputStream::outputs
struct OutputStream ** outputs
Definition: ffmpeg.h:374
KeyframeForceCtx::nb_pts
int nb_pts
Definition: ffmpeg.h:496
frame_drop_threshold
float frame_drop_threshold
Definition: ffmpeg_opt.c:73
rational.h
InputStream::dec_ctx
AVCodecContext * dec_ctx
Definition: ffmpeg.h:344
InputStream::user_set_discard
int user_set_discard
Definition: ffmpeg.h:332
OptionsContext::rc_overrides
SpecifierOpt * rc_overrides
Definition: ffmpeg.h:215
OutputStream::packets_written
atomic_uint_least64_t packets_written
Definition: ffmpeg.h:587
OptionsContext::nb_metadata
int nb_metadata
Definition: ffmpeg.h:190
OptionsContext::nb_hwaccel_devices
int nb_hwaccel_devices
Definition: ffmpeg.h:154
ENC_STATS_AVG_BITRATE
@ ENC_STATS_AVG_BITRATE
Definition: ffmpeg.h:458
InputFile::readrate
float readrate
Definition: ffmpeg.h:419
OutputStream::keep_pix_fmt
int keep_pix_fmt
Definition: ffmpeg.h:583
parse_and_set_vsync
int parse_and_set_vsync(const char *arg, int *vsync_var, int file_idx, int st_idx, int is_global)
Definition: ffmpeg_opt.c:186
OptionsContext::nb_attachments
int nb_attachments
Definition: ffmpeg.h:168
OutputFile::start_time
int64_t start_time
start time in microseconds == AV_TIME_BASE units
Definition: ffmpeg.h:622
OptionsContext::frame_aspect_ratios
SpecifierOpt * frame_aspect_ratios
Definition: ffmpeg.h:207
progress_avio
AVIOContext * progress_avio
Definition: ffmpeg.c:122
InputFile::index
int index
Definition: ffmpeg.h:395
ffmpeg_parse_options
int ffmpeg_parse_options(int argc, char **argv)
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:340
of_filesize
int64_t of_filesize(OutputFile *of)
Definition: ffmpeg_mux.c:948
OutputStream::unavailable
int unavailable
Definition: ffmpeg.h:574
OptionsContext::mux_max_delay
float mux_max_delay
Definition: ffmpeg.h:176
OptionsContext::nb_chroma_intra_matrices
int nb_chroma_intra_matrices
Definition: ffmpeg.h:222
OptionsContext::nb_pass
int nb_pass
Definition: ffmpeg.h:248
OutputStream::rotate_overridden
int rotate_overridden
Definition: ffmpeg.h:545
FKF_T
@ FKF_T
Definition: ffmpeg.h:433
sync_queue.h
ENC_STATS_LITERAL
@ ENC_STATS_LITERAL
Definition: ffmpeg.h:441
OptionsContext::subtitle_disable
int subtitle_disable
Definition: ffmpeg.h:183
ifilter_parameters_from_dec
int ifilter_parameters_from_dec(InputFilter *ifilter, const AVCodecContext *dec)
Set up fallback filtering parameters from a decoder context.
Definition: ffmpeg_filter.c:1757
OptionsContext::nb_apad
int nb_apad
Definition: ffmpeg.h:258
OptionsContext::qscale
SpecifierOpt * qscale
Definition: ffmpeg.h:199
OutputStream::index
int index
Definition: ffmpeg.h:513
b
#define b
Definition: input.c:41
FilterGraph::index
int index
Definition: ffmpeg.h:312
OptionsContext::inter_matrices
SpecifierOpt * inter_matrices
Definition: ffmpeg.h:219
AudioChannelMap::stream_idx
int stream_idx
Definition: ffmpeg.h:99
KeyframeForceCtx::type
int type
Definition: ffmpeg.h:490
InputStream::nb_filters
int nb_filters
Definition: ffmpeg.h:367
int_cb
const AVIOInterruptCB int_cb
Definition: ffmpeg.c:347
OutputStream::sws_dict
AVDictionary * sws_dict
Definition: ffmpeg.h:570
nb_output_files
int nb_output_files
Definition: ffmpeg.c:128
fg_create
int fg_create(FilterGraph **pfg, char *graph_desc)
Create a new filtergraph in the global filtergraph list.
Definition: ffmpeg_filter.c:866
show_usage
void show_usage(void)
Definition: ffmpeg_opt.c:1248
FilterGraph::nb_inputs
int nb_inputs
Definition: ffmpeg.h:317
OptionsContext::bitexact
int bitexact
Definition: ffmpeg.h:179
OptionsContext::audio_channels
SpecifierOpt * audio_channels
Definition: ffmpeg.h:123
OptionsContext::nb_frame_rates
int nb_frame_rates
Definition: ffmpeg.h:128
AVDictionary
Definition: dict.c:34
HWDevice
Definition: ffmpeg.h:83
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:125
enc_stats_write
void enc_stats_write(OutputStream *ost, EncStats *es, const AVFrame *frame, const AVPacket *pkt, uint64_t frame_num)
Definition: ffmpeg_enc.c:481
InputStream::decoding_needed
int decoding_needed
Definition: ffmpeg.h:333
OptionsContext::format
const char * format
Definition: ffmpeg.h:117
InputFile::input_sync_ref
int input_sync_ref
Definition: ffmpeg.h:404
OutputStream::rotate_override_value
double rotate_override_value
Definition: ffmpeg.h:551
ost
static AVStream * ost
Definition: vaapi_transcode.c:42
OptionsContext::nb_disposition
int nb_disposition
Definition: ffmpeg.h:262
OutputStream::fix_sub_duration_heartbeat
unsigned int fix_sub_duration_heartbeat
Definition: ffmpeg.h:605
ist_filter_add
int ist_filter_add(InputStream *ist, InputFilter *ifilter, int is_simple)
Definition: ffmpeg_demux.c:854
OutputStream::ist
InputStream * ist
Definition: ffmpeg.h:524
OutputFilter::nb_frames_dup
uint64_t nb_frames_dup
Definition: ffmpeg.h:306
ENC_STATS_TIMEBASE_IN
@ ENC_STATS_TIMEBASE_IN
Definition: ffmpeg.h:447
AVIOInterruptCB
Callback for checking whether to abort blocking functions.
Definition: avio.h:59
OptionDef
Definition: cmdutils.h:106
InputStream::nb_outputs
int nb_outputs
Definition: ffmpeg.h:375
OptionsContext::display_rotations
SpecifierOpt * display_rotations
Definition: ffmpeg.h:209
OptionsContext::nb_guess_layout_max
int nb_guess_layout_max
Definition: ffmpeg.h:256
FrameData::frame_num
uint64_t frame_num
Definition: ffmpeg.h:632
OutputFile::nb_streams
int nb_streams
Definition: ffmpeg.h:617
InputFile::eof_reached
int eof_reached
Definition: ffmpeg.h:401
InputStream
Definition: ffmpeg.h:324
filter_nbthreads
char * filter_nbthreads
Definition: ffmpeg_opt.c:87
OptionsContext::chapters_input_file
int chapters_input_file
Definition: ffmpeg.h:170
debug_ts
int debug_ts
Definition: ffmpeg_opt.c:81
OptionsContext::nb_presets
int nb_presets
Definition: ffmpeg.h:230
stats_period
int64_t stats_period
Definition: ffmpeg_opt.c:91
OptionsContext::rate_emu
int rate_emu
Definition: ffmpeg.h:139
OutputStream::vsync_method
enum VideoSyncMethod vsync_method
Definition: ffmpeg.h:538
dts_delta_threshold
float dts_delta_threshold
Definition: ffmpeg_opt.c:69
fifo.h
enc_open
int enc_open(OutputStream *ost, const AVFrame *frame)
Definition: ffmpeg_enc.c:168
bsf.h
vstats_version
int vstats_version
Definition: ffmpeg_opt.c:89
trigger_fix_sub_duration_heartbeat
int trigger_fix_sub_duration_heartbeat(OutputStream *ost, const AVPacket *pkt)
Definition: ffmpeg.c:772
OutputStream::initialized
int initialized
Definition: ffmpeg.h:579
opt_name_codec_names
const char *const opt_name_codec_names[]
Definition: ffmpeg_opt.c:56
OptionsContext::nb_dump_attachment
int nb_dump_attachment
Definition: ffmpeg.h:150
OptionsContext::g
OptionGroup * g
Definition: ffmpeg.h:111
InputStream::sub2video
struct InputStream::sub2video sub2video
OptionsContext::nb_display_vflips
int nb_display_vflips
Definition: ffmpeg.h:214
StreamMap::disabled
int disabled
Definition: ffmpeg.h:91
AudioChannelMap::ostream_idx
int ostream_idx
Definition: ffmpeg.h:100
OutputStream::logfile_prefix
char * logfile_prefix
Definition: ffmpeg.h:564
EncStatsComponent::str_len
size_t str_len
Definition: ffmpeg.h:465
OptionsContext::nb_top_field_first
int nb_top_field_first
Definition: ffmpeg.h:225
InputStream::decoder_opts
AVDictionary * decoder_opts
Definition: ffmpeg.h:350
OptionsContext::nb_autorotate
int nb_autorotate
Definition: ffmpeg.h:158
KeyframeForceCtx::ref_pts
int64_t ref_pts
Definition: ffmpeg.h:492
OptionsContext::nb_reinit_filters
int nb_reinit_filters
Definition: ffmpeg.h:240
type
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 type
Definition: writing_filters.txt:86
DemuxPktData
Definition: ffmpeg.h:104
pts
static int64_t pts
Definition: transcode_aac.c:643
OptionsContext
Definition: ffmpeg.h:110
OptionsContext::time_bases
SpecifierOpt * time_bases
Definition: ffmpeg.h:265
FrameData::tb
AVRational tb
Definition: ffmpeg.h:635
do_pkt_dump
int do_pkt_dump
Definition: ffmpeg_opt.c:77
fg_send_command
void fg_send_command(FilterGraph *fg, double time, const char *target, const char *command, const char *arg, int all_filters)
Definition: ffmpeg_filter.c:1826
OptionsContext::nb_audio_channel_maps
int nb_audio_channel_maps
Definition: ffmpeg.h:165
InputFile
Definition: ffmpeg.h:392
OptionsContext::recording_time
int64_t recording_time
Definition: ffmpeg.h:172
input_files
InputFile ** input_files
Definition: ffmpeg.c:124
OptionsContext::pass
SpecifierOpt * pass
Definition: ffmpeg.h:247
OptionsContext::nb_stream_maps
int nb_stream_maps
Definition: ffmpeg.h:162
OptionsContext::audio_disable
int audio_disable
Definition: ffmpeg.h:182
OutputFile::shortest
int shortest
Definition: ffmpeg.h:624
enc_subtitle
int enc_subtitle(OutputFile *of, OutputStream *ost, const AVSubtitle *sub)
Definition: ffmpeg_enc.c:395
FrameData::frame_rate_filter
AVRational frame_rate_filter
Definition: ffmpeg.h:638
InputStream::codec_desc
const AVCodecDescriptor * codec_desc
Definition: ffmpeg.h:346
OptionsContext::enc_stats_post
SpecifierOpt * enc_stats_post
Definition: ffmpeg.h:275
OptionsContext::nb_enc_stats_pre_fmt
int nb_enc_stats_pre_fmt
Definition: ffmpeg.h:280
pkt
AVPacket * pkt
Definition: movenc.c:59
AudioChannelMap
Definition: ffmpeg.h:98
OptionsContext::presets
SpecifierOpt * presets
Definition: ffmpeg.h:229
OptionsContext::copy_initial_nonkeyframes
SpecifierOpt * copy_initial_nonkeyframes
Definition: ffmpeg.h:231
OutputStream::enc
Encoder * enc
Definition: ffmpeg.h:532
OptionsContext::codec_names
SpecifierOpt * codec_names
Definition: ffmpeg.h:119
ENC_STATS_PTS_IN
@ ENC_STATS_PTS_IN
Definition: ffmpeg.h:450
subtitle_wrap_frame
int subtitle_wrap_frame(AVFrame *frame, AVSubtitle *subtitle, int copy)
Definition: ffmpeg.c:739
term_init
void term_init(void)
Definition: ffmpeg.c:242
OptionsContext::nb_program
int nb_program
Definition: ffmpeg.h:264
fg_transcode_step
int fg_transcode_step(FilterGraph *graph, InputStream **best_ist)
Perform a step of transcoding for the specified filter graph.
Definition: ffmpeg_filter.c:2460
StreamMap::linklabel
char * linklabel
Definition: ffmpeg.h:94
of_free
void of_free(OutputFile **pof)
Definition: ffmpeg_mux.c:921
HWACCEL_GENERIC
@ HWACCEL_GENERIC
Definition: ffmpeg.h:80
VSYNC_VSCFR
@ VSYNC_VSCFR
Definition: ffmpeg.h:68
EncStats::components
EncStatsComponent * components
Definition: ffmpeg.h:469
assert_file_overwrite
int assert_file_overwrite(const char *filename)
Definition: ffmpeg_opt.c:704
AVCodecDescriptor
This struct describes the properties of a single codec described by an AVCodecID.
Definition: codec_desc.h:38
FilterGraph::outputs
OutputFilter ** outputs
Definition: ffmpeg.h:318
vstats_filename
char * vstats_filename
Definition: ffmpeg_opt.c:65
OutputStream::frame_aspect_ratio
AVRational frame_aspect_ratio
Definition: ffmpeg.h:554
ifilter_sub2video_heartbeat
void ifilter_sub2video_heartbeat(InputFilter *ifilter, int64_t pts, AVRational tb)
Definition: ffmpeg_filter.c:2256
InputStream::framerate
AVRational framerate
Definition: ffmpeg.h:351
do_psnr
int do_psnr
Definition: ffmpeg_opt.c:97
OptionsContext::nb_bits_per_raw_sample
int nb_bits_per_raw_sample
Definition: ffmpeg.h:272
ENC_STATS_FILE_IDX
@ ENC_STATS_FILE_IDX
Definition: ffmpeg.h:442
ENCODER_FINISHED
@ ENCODER_FINISHED
Definition: ffmpeg.h:478
OptionsContext::limit_filesize
int64_t limit_filesize
Definition: ffmpeg.h:174
OutputFilter::linklabel
uint8_t * linklabel
Definition: ffmpeg.h:299
OutputStream::audio_channels_mapped
int audio_channels_mapped
Definition: ffmpeg.h:561
InputFilter
Definition: ffmpeg.h:287
hwaccel_retrieve_data
int hwaccel_retrieve_data(AVCodecContext *avctx, AVFrame *input)
Definition: ffmpeg_hw.c:300
OptionsContext::audio_ch_layouts
SpecifierOpt * audio_ch_layouts
Definition: ffmpeg.h:121
ENC_STATS_BITRATE
@ ENC_STATS_BITRATE
Definition: ffmpeg.h:457
AVHWDeviceType
AVHWDeviceType
Definition: hwcontext.h:27
OutputFilter::ost
struct OutputStream * ost
Definition: ffmpeg.h:293
OptionsContext::nb_enc_stats_post
int nb_enc_stats_post
Definition: ffmpeg.h:276
forced_keyframes_const
forced_keyframes_const
Definition: ffmpeg.h:428
ignore_unknown_streams
int ignore_unknown_streams
Definition: ffmpeg_opt.c:99
MUXER_FINISHED
@ MUXER_FINISHED
Definition: ffmpeg.h:479
InputStream::filters
InputFilter ** filters
Definition: ffmpeg.h:366
OptionsContext::nb_copy_initial_nonkeyframes
int nb_copy_initial_nonkeyframes
Definition: ffmpeg.h:232
max_error_rate
float max_error_rate
Definition: ffmpeg_opt.c:86
AVExpr
Definition: eval.c:157
OptionsContext::sample_fmts
SpecifierOpt * sample_fmts
Definition: ffmpeg.h:197
OptionsContext::shortest
int shortest
Definition: ffmpeg.h:178
InputFilter::graph
struct FilterGraph * graph
Definition: ffmpeg.h:288
AVThreadMessageQueue
Definition: threadmessage.c:30
OptionsContext::accurate_seek
int accurate_seek
Definition: ffmpeg.h:142
OutputStream::enc_stats_pre
EncStats enc_stats_pre
Definition: ffmpeg.h:598
OptionsContext::nb_canvas_sizes
int nb_canvas_sizes
Definition: ffmpeg.h:246
frame
static AVFrame * frame
Definition: demux_decode.c:54
OptionsContext::nb_max_muxing_queue_size
int nb_max_muxing_queue_size
Definition: ffmpeg.h:252
OutputStream::bitexact
int bitexact
Definition: ffmpeg.h:548
dec_open
int dec_open(InputStream *ist)
Definition: ffmpeg_dec.c:1065
arg
const char * arg
Definition: jacosubdec.c:67
KeyframeForceCtx::expr_const_values
double expr_const_values[FKF_NB]
Definition: ffmpeg.h:500
of_enc_stats_close
void of_enc_stats_close(void)
Definition: ffmpeg_mux_init.c:235
OutputStream::encoder_opts
AVDictionary * encoder_opts
Definition: ffmpeg.h:569
OptionsContext::start_time
int64_t start_time
Definition: ffmpeg.h:114
AVFormatContext
Format I/O context.
Definition: avformat.h:1115
OptionsContext::nb_filter_scripts
int nb_filter_scripts
Definition: ffmpeg.h:238
OptionsContext::reinit_filters
SpecifierOpt * reinit_filters
Definition: ffmpeg.h:239
AVClass
Describe the class of an AVClass context structure.
Definition: log.h:66
OutputFilter::name
uint8_t * name
Definition: ffmpeg.h:295
InputStream::sub2video::w
int w
Definition: ffmpeg.h:361
InputStream::top_field_first
int top_field_first
Definition: ffmpeg.h:353
InputStream::st
AVStream * st
Definition: ffmpeg.h:330
OptionsContext::nb_fix_sub_duration_heartbeat
int nb_fix_sub_duration_heartbeat
Definition: ffmpeg.h:244
forced_keyframes_const_names
const char *const forced_keyframes_const_names[]
Definition: ffmpeg_mux_init.c:2399
OptionsContext::filters
SpecifierOpt * filters
Definition: ffmpeg.h:235
OptionsContext::frame_sizes
SpecifierOpt * frame_sizes
Definition: ffmpeg.h:131
InputFile::start_time_effective
int64_t start_time_effective
Effective format start time based on enabled streams.
Definition: ffmpeg.h:408
Decoder
Definition: ffmpeg_dec.c:36
ENC_STATS_PTS_TIME
@ ENC_STATS_PTS_TIME
Definition: ffmpeg.h:449
hw_device_init_from_type
int hw_device_init_from_type(enum AVHWDeviceType type, const char *device, HWDevice **dev_out)
Definition: ffmpeg_hw.c:245
AVRational
Rational number (pair of numerator and denominator).
Definition: rational.h:58
OptionsContext::fix_sub_duration
SpecifierOpt * fix_sub_duration
Definition: ffmpeg.h:241
OptionsContext::codec_tags
SpecifierOpt * codec_tags
Definition: ffmpeg.h:195
OptionsContext::force_fps
SpecifierOpt * force_fps
Definition: ffmpeg.h:205
DemuxPktData::dts_est
int64_t dts_est
Definition: ffmpeg.h:107
OptionsContext::nb_intra_matrices
int nb_intra_matrices
Definition: ffmpeg.h:218
OutputStream::audio_channels_map
int * audio_channels_map
Definition: ffmpeg.h:560
InputStream::hwaccel_id
enum HWAccelID hwaccel_id
Definition: ffmpeg.h:380
EncStats
Definition: ffmpeg.h:468
OutputStream::frame_rate
AVRational frame_rate
Definition: ffmpeg.h:536
copy_unknown_streams
int copy_unknown_streams
Definition: ffmpeg_opt.c:100
ifile_get_packet
int ifile_get_packet(InputFile *f, AVPacket **pkt)
Get next input packet from the demuxer.
Definition: ffmpeg_demux.c:707
InputStream::fix_sub_duration
int fix_sub_duration
Definition: ffmpeg.h:358
OutputStream::top_field_first
int top_field_first
Definition: ffmpeg.h:542
InputStream::hwaccel_output_format
enum AVPixelFormat hwaccel_output_format
Definition: ffmpeg.h:383
opt_name_top_field_first
const char *const opt_name_top_field_first[]
Definition: ffmpeg_opt.c:60
update_benchmark
void update_benchmark(const char *fmt,...)
Definition: ffmpeg.c:467
OptionsContext::max_frames
SpecifierOpt * max_frames
Definition: ffmpeg.h:191
AVFilterGraph
Definition: avfilter.h:864
do_benchmark_all
int do_benchmark_all
Definition: ffmpeg_opt.c:75
filtergraphs
FilterGraph ** filtergraphs
Definition: ffmpeg.c:130
OptionsContext::nb_display_hflips
int nb_display_hflips
Definition: ffmpeg.h:212
OptionsContext::input_sync_ref
int input_sync_ref
Definition: ffmpeg.h:144
OutputFile::index
int index
Definition: ffmpeg.h:611
OptionGroup
Definition: cmdutils.h:210
OptionsContext::program
SpecifierOpt * program
Definition: ffmpeg.h:263
OptionsContext::nb_enc_stats_pre
int nb_enc_stats_pre
Definition: ffmpeg.h:274
ENC_STATS_PTS_TIME_IN
@ ENC_STATS_PTS_TIME_IN
Definition: ffmpeg.h:451
FilterGraph::nb_outputs
int nb_outputs
Definition: ffmpeg.h:319
OutputStream::logfile
FILE * logfile
Definition: ffmpeg.h:565
swresample.h
find_codec
int find_codec(void *logctx, const char *name, enum AVMediaType type, int encoder, const AVCodec **codec)
Definition: ffmpeg_opt.c:671
OptionsContext::nb_metadata_map
int nb_metadata_map
Definition: ffmpeg.h:228
InputStream::par
AVCodecParameters * par
Codec parameters - to be used by the decoding/streamcopy code.
Definition: ffmpeg.h:342
OptionsContext::nb_filters
int nb_filters
Definition: ffmpeg.h:236
OutputFile::streams
OutputStream ** streams
Definition: ffmpeg.h:616
InputStream::frames_decoded
uint64_t frames_decoded
Definition: ffmpeg.h:387
recast_media
int recast_media
Definition: ffmpeg_opt.c:101
OptionsContext::nb_fps_mode
int nb_fps_mode
Definition: ffmpeg.h:204
FilterGraph
Definition: ffmpeg.h:310
OptionsContext::display_hflips
SpecifierOpt * display_hflips
Definition: ffmpeg.h:211
print_stats
int print_stats
Definition: ffmpeg_opt.c:84
ENC_TIME_BASE_DEMUX
@ ENC_TIME_BASE_DEMUX
Definition: ffmpeg.h:73
nb_output_dumped
unsigned nb_output_dumped
Definition: ffmpeg.c:119
options
const OptionDef options[]
VideoSyncMethod
VideoSyncMethod
Definition: ffmpeg.h:63
eval.h
OutputStream::force_fps
int force_fps
Definition: ffmpeg.h:540
OptionsContext::nb_frame_aspect_ratios
int nb_frame_aspect_ratios
Definition: ffmpeg.h:208
OutputStream::filter
OutputFilter * filter
Definition: ffmpeg.h:567
f
f
Definition: af_crystalizer.c:121
AVIOContext
Bytestream IO Context.
Definition: avio.h:166
InputStream::hwaccel_device_type
enum AVHWDeviceType hwaccel_device_type
Definition: ffmpeg.h:381
OptionsContext::thread_queue_size
int thread_queue_size
Definition: ffmpeg.h:143
AVMediaType
AVMediaType
Definition: avutil.h:199
copy
static void copy(const float *p1, float *p2, const int length)
Definition: vf_vaguedenoiser.c:185
threadmessage.h
InputStream::file_index
int file_index
Definition: ffmpeg.h:327
FrameData::dec
struct FrameData::@3 dec
filtergraph_is_simple
int filtergraph_is_simple(const FilterGraph *fg)
Definition: ffmpeg_filter.c:1820
FilterGraph::graph
AVFilterGraph * graph
Definition: ffmpeg.h:314
EncStatsType
EncStatsType
Definition: ffmpeg.h:440
ifilter_send_frame
int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame, int keep_reference)
Definition: ffmpeg_filter.c:2363
StreamMap
Definition: ffmpeg.h:90
check_filter_outputs
int check_filter_outputs(void)
Definition: ffmpeg_filter.c:1357
ENC_STATS_NB_SAMPLES
@ ENC_STATS_NB_SAMPLES
Definition: ffmpeg.h:455
copy_ts
int copy_ts
Definition: ffmpeg_opt.c:78
OptionsContext::filter_scripts
SpecifierOpt * filter_scripts
Definition: ffmpeg.h:237
avio.h
copy_tb
int copy_tb
Definition: ffmpeg_opt.c:80
OutputFilter::nb_frames_drop
uint64_t nb_frames_drop
Definition: ffmpeg.h:307
OptionsContext::seek_timestamp
int seek_timestamp
Definition: ffmpeg.h:116
OptionsContext::streamid
AVDictionary * streamid
Definition: ffmpeg.h:187
OptionsContext::top_field_first
SpecifierOpt * top_field_first
Definition: ffmpeg.h:224
HWDevice::device_ref
AVBufferRef * device_ref
Definition: ffmpeg.h:86
OutputStream::type
enum AVMediaType type
Definition: ffmpeg.h:510
OutputFile::url
const char * url
Definition: ffmpeg.h:614
hw_device_get_by_type
HWDevice * hw_device_get_by_type(enum AVHWDeviceType type)
Definition: ffmpeg_hw.c:30
OptionsContext::nb_discard
int nb_discard
Definition: ffmpeg.h:260
OptionsContext::readrate_initial_burst
double readrate_initial_burst
Definition: ffmpeg.h:141
OSTFinished
OSTFinished
Definition: ffmpeg.h:477
fix_sub_duration_heartbeat
int fix_sub_duration_heartbeat(InputStream *ist, int64_t signal_pts)
Definition: ffmpeg_dec.c:455
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
enc_alloc
int enc_alloc(Encoder **penc, const AVCodec *codec)
Definition: ffmpeg_enc.c:70
copy_av_subtitle
int copy_av_subtitle(AVSubtitle *dst, const AVSubtitle *src)
Definition: ffmpeg.c:652
InputStream::samples_decoded
uint64_t samples_decoded
Definition: ffmpeg.h:388
FrameData::pts
int64_t pts
Definition: ffmpeg.h:634
OptionsContext::find_stream_info
int find_stream_info
Definition: ffmpeg.h:145
strip_specifiers
AVDictionary * strip_specifiers(const AVDictionary *dict)
Definition: ffmpeg_opt.c:169
OptionsContext::metadata
SpecifierOpt * metadata
Definition: ffmpeg.h:189
OutputStream::kf
KeyframeForceCtx kf
Definition: ffmpeg.h:556
do_benchmark
int do_benchmark
Definition: ffmpeg_opt.c:74
Encoder
Definition: ffmpeg_enc.c:41
OptionsContext::nb_autoscale
int nb_autoscale
Definition: ffmpeg.h:270
OutputFile::sq_encode
SyncQueue * sq_encode
Definition: ffmpeg.h:619
KF_FORCE_SOURCE
@ KF_FORCE_SOURCE
Definition: ffmpeg.h:483
close_output_stream
void close_output_stream(OutputStream *ost)
Definition: ffmpeg.c:488
OptionsContext::frame_rates
SpecifierOpt * frame_rates
Definition: ffmpeg.h:127
input
and forward the test the status of outputs and forward it to the corresponding return FFERROR_NOT_READY If the filters stores internally one or a few frame for some input
Definition: filter_design.txt:172
ENC_STATS_FRAME_NUM
@ ENC_STATS_FRAME_NUM
Definition: ffmpeg.h:444
KeyframeForceCtx
Definition: ffmpeg.h:489
OutputFilter::type
enum AVMediaType type
Definition: ffmpeg.h:301
HWACCEL_AUTO
@ HWACCEL_AUTO
Definition: ffmpeg.h:79
OptionsContext::autorotate
SpecifierOpt * autorotate
Definition: ffmpeg.h:157
OutputStream::max_frame_rate
AVRational max_frame_rate
Definition: ffmpeg.h:537
of_output_packet
int of_output_packet(OutputFile *of, OutputStream *ost, AVPacket *pkt)
Definition: ffmpeg_mux.c:350
OutputStream::apad
char * apad
Definition: ffmpeg.h:572
OptionsContext::nb_hwaccel_output_formats
int nb_hwaccel_output_formats
Definition: ffmpeg.h:156
init_complex_filtergraph
int init_complex_filtergraph(FilterGraph *fg)
Definition: ffmpeg_filter.c:1071
OptionsContext::forced_key_frames
SpecifierOpt * forced_key_frames
Definition: ffmpeg.h:201
AVOutputFormat
Definition: avformat.h:510
OptionsContext::mux_stats_fmt
SpecifierOpt * mux_stats_fmt
Definition: ffmpeg.h:283
OptionsContext::metadata_map
SpecifierOpt * metadata_map
Definition: ffmpeg.h:227
FrameData::bits_per_raw_sample
int bits_per_raw_sample
Definition: ffmpeg.h:640
OptionsContext::enc_stats_pre
SpecifierOpt * enc_stats_pre
Definition: ffmpeg.h:273
StreamMap::stream_index
int stream_index
Definition: ffmpeg.h:93
OptionsContext::nb_qscale
int nb_qscale
Definition: ffmpeg.h:200
OptionsContext::mux_stats
SpecifierOpt * mux_stats
Definition: ffmpeg.h:277
OptionsContext::stream_maps
StreamMap * stream_maps
Definition: ffmpeg.h:161
OptionsContext::nb_ts_scale
int nb_ts_scale
Definition: ffmpeg.h:148
OptionsContext::audio_sample_rate
SpecifierOpt * audio_sample_rate
Definition: ffmpeg.h:125
OptionsContext::start_time_eof
int64_t start_time_eof
Definition: ffmpeg.h:115
VSYNC_CFR
@ VSYNC_CFR
Definition: ffmpeg.h:66
OptionsContext::shortest_buf_duration
float shortest_buf_duration
Definition: ffmpeg.h:177
OutputFile::bitexact
int bitexact
Definition: ffmpeg.h:625
OptionsContext::nb_fix_sub_duration
int nb_fix_sub_duration
Definition: ffmpeg.h:242
exit_on_error
int exit_on_error
Definition: ffmpeg_opt.c:82
output_files
OutputFile ** output_files
Definition: ffmpeg.c:127
OptionsContext::nb_frame_pix_fmts
int nb_frame_pix_fmts
Definition: ffmpeg.h:134
InputFile::ctx
AVFormatContext * ctx
Definition: ffmpeg.h:400
InputFile::accurate_seek
int accurate_seek
Definition: ffmpeg.h:420
ost_iter
OutputStream * ost_iter(OutputStream *prev)
Definition: ffmpeg.c:398
tb
#define tb
Definition: regdef.h:68
OptionsContext::nb_copy_prior_start
int nb_copy_prior_start
Definition: ffmpeg.h:234
ENC_STATS_STREAM_IDX
@ ENC_STATS_STREAM_IDX
Definition: ffmpeg.h:443
OptionsContext::bits_per_raw_sample
SpecifierOpt * bits_per_raw_sample
Definition: ffmpeg.h:271
ENC_STATS_SAMPLE_NUM
@ ENC_STATS_SAMPLE_NUM
Definition: ffmpeg.h:454
OptionsContext::bitstream_filters
SpecifierOpt * bitstream_filters
Definition: ffmpeg.h:193
InputFile::recording_time
int64_t recording_time
Definition: ffmpeg.h:411
avcodec.h
OptionsContext::passlogfiles
SpecifierOpt * passlogfiles
Definition: ffmpeg.h:249
InputStream::decoder
Decoder * decoder
Definition: ffmpeg.h:343
SpecifierOpt
Definition: cmdutils.h:94
OptionsContext::autoscale
SpecifierOpt * autoscale
Definition: ffmpeg.h:269
AVStream
Stream structure.
Definition: avformat.h:841
dec_free
void dec_free(Decoder **pdec)
Definition: ffmpeg_dec.c:98
OptionsContext::nb_bitstream_filters
int nb_bitstream_filters
Definition: ffmpeg.h:194
enc_free
void enc_free(Encoder **penc)
Definition: ffmpeg_enc.c:56
pixfmt.h
abort_on_flags
int abort_on_flags
Definition: ffmpeg_opt.c:83
InputFilter::name
uint8_t * name
Definition: ffmpeg.h:289
VSYNC_DROP
@ VSYNC_DROP
Definition: ffmpeg.h:69
sdp_filename
char * sdp_filename
Definition: ffmpeg_opt.c:66
dec_packet
int dec_packet(InputStream *ist, const AVPacket *pkt, int no_eof)
Submit a packet for decoding.
Definition: ffmpeg_dec.c:767
OptionsContext::audio_channel_maps
AudioChannelMap * audio_channel_maps
Definition: ffmpeg.h:164
InputFile::streams
InputStream ** streams
Definition: ffmpeg.h:416
InputStream::reinit_filters
int reinit_filters
Definition: ffmpeg.h:377
hw_device_free_all
void hw_device_free_all(void)
Definition: ffmpeg_hw.c:288
avformat.h
InputFile::eagain
int eagain
Definition: ffmpeg.h:402
HWAccelID
HWAccelID
Definition: ffmpeg.h:77
dict.h
OptionsContext::nb_mux_stats_fmt
int nb_mux_stats_fmt
Definition: ffmpeg.h:284
OptionsContext::nb_sample_fmts
int nb_sample_fmts
Definition: ffmpeg.h:198
OptionsContext::nb_enc_time_bases
int nb_enc_time_bases
Definition: ffmpeg.h:268
SyncQueue
A sync queue provides timestamp synchronization between multiple streams.
Definition: sync_queue.c:88
ifile_close
void ifile_close(InputFile **f)
Definition: ffmpeg_demux.c:791
OptionsContext::nb_max_frames
int nb_max_frames
Definition: ffmpeg.h:192
OptionsContext::disposition
SpecifierOpt * disposition
Definition: ffmpeg.h:261
ifile_open
int ifile_open(const OptionsContext *o, const char *filename)
Definition: ffmpeg_demux.c:1330
filter_hw_device
HWDevice * filter_hw_device
Definition: ffmpeg_opt.c:63
AVCodecContext
main external API structure.
Definition: avcodec.h:441
init_simple_filtergraph
int init_simple_filtergraph(InputStream *ist, OutputStream *ost, char *graph_desc)
Definition: ffmpeg_filter.c:965
OptionsContext::mux_preload
float mux_preload
Definition: ffmpeg.h:175
HWDevice::name
const char * name
Definition: ffmpeg.h:84
OutputStream::finished
OSTFinished finished
Definition: ffmpeg.h:573
OptionsContext::nb_audio_channels
int nb_audio_channels
Definition: ffmpeg.h:124
OptionsContext::fix_sub_duration_heartbeat
SpecifierOpt * fix_sub_duration_heartbeat
Definition: ffmpeg.h:243
ist_output_add
int ist_output_add(InputStream *ist, OutputStream *ost)
Definition: ffmpeg_demux.c:837
OptionsContext::guess_layout_max
SpecifierOpt * guess_layout_max
Definition: ffmpeg.h:255
KeyframeForceCtx::index
int index
Definition: ffmpeg.h:497
check_avoptions
int check_avoptions(AVDictionary *m)
Definition: ffmpeg.c:456
OptionsContext::enc_time_bases
SpecifierOpt * enc_time_bases
Definition: ffmpeg.h:267
avfilter.h
OutputStream::last_mux_dts
int64_t last_mux_dts
Definition: ffmpeg.h:528
OptionsContext::video_disable
int video_disable
Definition: ffmpeg.h:181
OutputStream::quality
int quality
Definition: ffmpeg.h:593
ofilter_bind_ost
int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost)
Definition: ffmpeg_filter.c:665
OptionsContext::nb_forced_key_frames
int nb_forced_key_frames
Definition: ffmpeg.h:202
OutputStream::bits_per_raw_sample
int bits_per_raw_sample
Definition: ffmpeg.h:549
OptionsContext::max_frame_rates
SpecifierOpt * max_frame_rates
Definition: ffmpeg.h:129
OutputStream::enc_stats_post
EncStats enc_stats_post
Definition: ffmpeg.h:599
frame_data
FrameData * frame_data(AVFrame *frame)
Get our axiliary frame data attached to the frame, allocating it if needed.
Definition: ffmpeg.c:430
OptionsContext::frame_pix_fmts
SpecifierOpt * frame_pix_fmts
Definition: ffmpeg.h:133
video_sync_method
enum VideoSyncMethod video_sync_method
Definition: ffmpeg_opt.c:72
OutputStream::frames_encoded
uint64_t frames_encoded
Definition: ffmpeg.h:589
ifilter_send_eof
int ifilter_send_eof(InputFilter *ifilter, int64_t pts, AVRational tb)
Definition: ffmpeg_filter.c:2315
HWACCEL_NONE
@ HWACCEL_NONE
Definition: ffmpeg.h:78
InputFile::ts_offset
int64_t ts_offset
Definition: ffmpeg.h:409
OptionsContext::nb_frame_sizes
int nb_frame_sizes
Definition: ffmpeg.h:132
InputStream::decode_errors
uint64_t decode_errors
Definition: ffmpeg.h:389
OptionsContext::hwaccel_devices
SpecifierOpt * hwaccel_devices
Definition: ffmpeg.h:153
InputStream::discard
int discard
Definition: ffmpeg.h:331
OptionsContext::max_muxing_queue_size
SpecifierOpt * max_muxing_queue_size
Definition: ffmpeg.h:251
remove_avoptions
void remove_avoptions(AVDictionary **a, AVDictionary *b)
Definition: ffmpeg.c:447
VSYNC_AUTO
@ VSYNC_AUTO
Definition: ffmpeg.h:64
OutputFilter
Definition: ffmpeg.h:292
OptionsContext::nb_muxing_queue_data_threshold
int nb_muxing_queue_data_threshold
Definition: ffmpeg.h:254
OptionsContext::nb_inter_matrices
int nb_inter_matrices
Definition: ffmpeg.h:220
OptionsContext::enc_stats_pre_fmt
SpecifierOpt * enc_stats_pre_fmt
Definition: ffmpeg.h:279
OptionsContext::muxing_queue_data_threshold
SpecifierOpt * muxing_queue_data_threshold
Definition: ffmpeg.h:253
avutil.h
flush
void(* flush)(AVBSFContext *ctx)
Definition: dts2pts_bsf.c:367
start_at_zero
int start_at_zero
Definition: ffmpeg_opt.c:79
AVBufferRef
A reference to a data buffer.
Definition: buffer.h:82
OutputStream::file_index
int file_index
Definition: ffmpeg.h:512
OptionsContext::copy_prior_start
SpecifierOpt * copy_prior_start
Definition: ffmpeg.h:233
InputStream::sub2video
Definition: ffmpeg.h:360
EncTimeBase
EncTimeBase
Definition: ffmpeg.h:72
ist_iter
InputStream * ist_iter(InputStream *prev)
Definition: ffmpeg.c:414
OptionsContext::fps_mode
SpecifierOpt * fps_mode
Definition: ffmpeg.h:203
auto_conversion_filters
int auto_conversion_filters
Definition: ffmpeg_opt.c:90
InputStream::sub2video::h
int h
Definition: ffmpeg.h:361
InputFile::audio_ts_queue
AVThreadMessageQueue * audio_ts_queue
Definition: ffmpeg.h:424
OptionsContext::nb_passlogfiles
int nb_passlogfiles
Definition: ffmpeg.h:250
KeyframeForceCtx::pexpr
AVExpr * pexpr
Definition: ffmpeg.h:499
opt_name_frame_rates
const char *const opt_name_frame_rates[]
Definition: ffmpeg_opt.c:57
OutputStream::is_cfr
int is_cfr
Definition: ffmpeg.h:539
OutputStream::autoscale
int autoscale
Definition: ffmpeg.h:547
InputStream::index
int index
Definition: ffmpeg.h:328
FKF_N_FORCED
@ FKF_N_FORCED
Definition: ffmpeg.h:430
OptionsContext::attachments
const char ** attachments
Definition: ffmpeg.h:167
ENC_TIME_BASE_FILTER
@ ENC_TIME_BASE_FILTER
Definition: ffmpeg.h:74
stdin_interaction
int stdin_interaction
Definition: ffmpeg_opt.c:85
do_hex_dump
int do_hex_dump
Definition: ffmpeg_opt.c:76
OptionsContext::nb_enc_stats_post_fmt
int nb_enc_stats_post_fmt
Definition: ffmpeg.h:282
OptionsContext::ts_scale
SpecifierOpt * ts_scale
Definition: ffmpeg.h:147
AVPacket
This structure stores compressed data.
Definition: packet.h:468
ifilter_sub2video
int ifilter_sub2video(InputFilter *ifilter, const AVFrame *frame)
Definition: ffmpeg_filter.c:2282
EncStatsComponent
Definition: ffmpeg.h:461
OptionsContext::chroma_intra_matrices
SpecifierOpt * chroma_intra_matrices
Definition: ffmpeg.h:221
HWDevice::type
enum AVHWDeviceType type
Definition: ffmpeg.h:85
src
INIT_CLIP pixel * src
Definition: h264pred_template.c:418
cmdutils.h
InputFile::input_ts_offset
int64_t input_ts_offset
Definition: ffmpeg.h:403
file_read
char * file_read(const char *filename)
Definition: ffmpeg_opt.c:750
EncStats::nb_components
int nb_components
Definition: ffmpeg.h:470
OptionsContext::data_disable
int data_disable
Definition: ffmpeg.h:184
FKF_NB
@ FKF_NB
Definition: ffmpeg.h:434
ENC_STATS_PKT_SIZE
@ ENC_STATS_PKT_SIZE
Definition: ffmpeg.h:456
OutputStream
Definition: mux.c:53
OptionsContext::nb_display_rotations
int nb_display_rotations
Definition: ffmpeg.h:210
hwcontext.h
OutputStream::sq_idx_encode
int sq_idx_encode
Definition: ffmpeg.h:595
OutputStream::st
AVStream * st
Definition: mux.c:54
EncStatsComponent::str
uint8_t * str
Definition: ffmpeg.h:464
dts_error_threshold
float dts_error_threshold
Definition: ffmpeg_opt.c:70
OptionsContext::hwaccel_output_formats
SpecifierOpt * hwaccel_output_formats
Definition: ffmpeg.h:155
OutputFile::format
const AVOutputFormat * format
Definition: ffmpeg.h:613
hw_device_for_filter
AVBufferRef * hw_device_for_filter(void)
Get a hardware device to be used with this filtergraph.
Definition: ffmpeg_hw.c:342
OutputStream::swr_opts
AVDictionary * swr_opts
Definition: ffmpeg.h:571
InputFile::nb_streams
int nb_streams
Definition: ffmpeg.h:417
opt_name_codec_tags
const char *const opt_name_codec_tags[]
Definition: ffmpeg_opt.c:58
FKF_N
@ FKF_N
Definition: ffmpeg.h:429
ENC_STATS_DTS_TIME
@ ENC_STATS_DTS_TIME
Definition: ffmpeg.h:453
OutputFile::recording_time
int64_t recording_time
desired length of the resulting file in microseconds == AV_TIME_BASE units
Definition: ffmpeg.h:621
OutputStream::samples_encoded
uint64_t samples_encoded
Definition: ffmpeg.h:590
of_stream_init
int of_stream_init(OutputFile *of, OutputStream *ost)
Definition: ffmpeg_mux.c:672
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:196
VSYNC_PASSTHROUGH
@ VSYNC_PASSTHROUGH
Definition: ffmpeg.h:65
InputStream::dec
const AVCodec * dec
Definition: ffmpeg.h:345
EncStats::io
AVIOContext * io
Definition: ffmpeg.h:472
OptionsContext::discard
SpecifierOpt * discard
Definition: ffmpeg.h:259
enc_frame
int enc_frame(OutputStream *ost, AVFrame *frame)
Definition: ffmpeg_enc.c:850
of_write_trailer
int of_write_trailer(OutputFile *of)
Definition: ffmpeg_mux.c:800
ist_find_unused
InputStream * ist_find_unused(enum AVMediaType type)
Find an unused input stream of given type.
Definition: ffmpeg_demux.c:133
OptionsContext::display_vflips
SpecifierOpt * display_vflips
Definition: ffmpeg.h:213
atomic_uint_least64_t
intptr_t atomic_uint_least64_t
Definition: stdatomic.h:69
ENC_STATS_TIMEBASE
@ ENC_STATS_TIMEBASE
Definition: ffmpeg.h:446
term_exit
void term_exit(void)
Definition: ffmpeg.c:172
filter_complex_nbthreads
int filter_complex_nbthreads
Definition: ffmpeg_opt.c:88
OutputFile
Definition: ffmpeg.h:608
OptionsContext::loop
int loop
Definition: ffmpeg.h:138
InputStream::autorotate
int autorotate
Definition: ffmpeg.h:356
OutputStream::enc_timebase
AVRational enc_timebase
Definition: ffmpeg.h:530
OptionsContext::nb_force_fps
int nb_force_fps
Definition: ffmpeg.h:206