FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
ffmpeg.h File Reference
#include "config.h"
#include <stdint.h>
#include <stdio.h>
#include <signal.h>
#include "cmdutils.h"
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libavcodec/avcodec.h"
#include "libavfilter/avfilter.h"
#include "libavutil/avutil.h"
#include "libavutil/dict.h"
#include "libavutil/eval.h"
#include "libavutil/fifo.h"
#include "libavutil/hwcontext.h"
#include "libavutil/pixfmt.h"
#include "libavutil/rational.h"
#include "libavutil/thread.h"
#include "libavutil/threadmessage.h"
#include "libswresample/swresample.h"

Go to the source code of this file.

Data Structures

struct  HWAccel
 
struct  HWDevice
 
struct  StreamMap
 
struct  AudioChannelMap
 
struct  OptionsContext
 
struct  InputFilter
 
struct  OutputFilter
 
struct  FilterGraph
 
struct  InputStream
 
struct  InputStream::sub2video
 
struct  InputFile
 
struct  OutputStream
 
struct  OutputFile
 

Macros

#define VSYNC_AUTO   -1
 
#define VSYNC_PASSTHROUGH   0
 
#define VSYNC_CFR   1
 
#define VSYNC_VFR   2
 
#define VSYNC_VSCFR   0xfe
 
#define VSYNC_DROP   0xff
 
#define MAX_STREAMS   1024 /* arbitrary sanity check value */
 
#define DECODING_FOR_OST   1
 
#define DECODING_FOR_FILTER   2
 
#define ABORT_ON_FLAG_EMPTY_OUTPUT   (1 << 0)
 

Enumerations

enum  HWAccelID {
  HWACCEL_NONE = 0, HWACCEL_AUTO, HWACCEL_GENERIC, HWACCEL_VIDEOTOOLBOX,
  HWACCEL_QSV, HWACCEL_CUVID
}
 
enum  forced_keyframes_const {
  FKF_N, FKF_N_FORCED, FKF_PREV_FORCED_N, FKF_PREV_FORCED_T,
  FKF_T, FKF_NB
}
 
enum  OSTFinished { ENCODER_FINISHED = 1, MUXER_FINISHED = 2 }
 

Functions

void term_init (void)
 
void term_exit (void)
 
void reset_options (OptionsContext *o, int is_input)
 
void show_usage (void)
 
void opt_output_file (void *optctx, const char *filename)
 
void remove_avoptions (AVDictionary **a, AVDictionary *b)
 
void assert_avoptions (AVDictionary *m)
 
int guess_input_channel_layout (InputStream *ist)
 
enum AVPixelFormat choose_pixel_fmt (AVStream *st, AVCodecContext *avctx, AVCodec *codec, enum AVPixelFormat target)
 
void choose_sample_fmt (AVStream *st, AVCodec *codec)
 
int configure_filtergraph (FilterGraph *fg)
 
int configure_output_filter (FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
 
void check_filter_outputs (void)
 
int ist_in_filtergraph (FilterGraph *fg, InputStream *ist)
 
int filtergraph_is_simple (FilterGraph *fg)
 
int init_simple_filtergraph (InputStream *ist, OutputStream *ost)
 
int init_complex_filtergraph (FilterGraph *fg)
 
void sub2video_update (InputStream *ist, AVSubtitle *sub)
 
int ifilter_parameters_from_frame (InputFilter *ifilter, const AVFrame *frame)
 
int ffmpeg_parse_options (int argc, char **argv)
 
int videotoolbox_init (AVCodecContext *s)
 
int qsv_init (AVCodecContext *s)
 
int cuvid_init (AVCodecContext *s)
 
HWDevicehw_device_get_by_name (const char *name)
 
int hw_device_init_from_string (const char *arg, HWDevice **dev)
 
void hw_device_free_all (void)
 
int hw_device_setup_for_decode (InputStream *ist)
 
int hw_device_setup_for_encode (OutputStream *ost)
 
int hwaccel_decode_init (AVCodecContext *avctx)
 

Variables

const char *const forced_keyframes_const_names []
 
InputStream ** input_streams
 
int nb_input_streams
 
InputFile ** input_files
 
int nb_input_files
 
OutputStream ** output_streams
 
int nb_output_streams
 
OutputFile ** output_files
 
int nb_output_files
 
FilterGraph ** filtergraphs
 
int nb_filtergraphs
 
char * vstats_filename
 
char * sdp_filename
 
float audio_drift_threshold
 
float dts_delta_threshold
 
float dts_error_threshold
 
int audio_volume
 
int audio_sync_method
 
int video_sync_method
 
float frame_drop_threshold
 
int do_benchmark
 
int do_benchmark_all
 
int do_deinterlace
 
int do_hex_dump
 
int do_pkt_dump
 
int copy_ts
 
int start_at_zero
 
int copy_tb
 
int debug_ts
 
int exit_on_error
 
int abort_on_flags
 
int print_stats
 
int qp_hist
 
int stdin_interaction
 
int frame_bits_per_raw_sample
 
AVIOContextprogress_avio
 
float max_error_rate
 
char * videotoolbox_pixfmt
 
int filter_nbthreads
 
int filter_complex_nbthreads
 
int vstats_version
 
const AVIOInterruptCB int_cb
 
const OptionDef options []
 
const HWAccel hwaccels []
 
AVBufferRefhw_device_ctx
 
HWDevicefilter_hw_device
 

Macro Definition Documentation

◆ VSYNC_AUTO

#define VSYNC_AUTO   -1

Definition at line 49 of file ffmpeg.h.

◆ VSYNC_PASSTHROUGH

#define VSYNC_PASSTHROUGH   0

Definition at line 50 of file ffmpeg.h.

◆ VSYNC_CFR

#define VSYNC_CFR   1

Definition at line 51 of file ffmpeg.h.

◆ VSYNC_VFR

#define VSYNC_VFR   2

Definition at line 52 of file ffmpeg.h.

◆ VSYNC_VSCFR

#define VSYNC_VSCFR   0xfe

Definition at line 53 of file ffmpeg.h.

◆ VSYNC_DROP

#define VSYNC_DROP   0xff

Definition at line 54 of file ffmpeg.h.

◆ MAX_STREAMS

#define MAX_STREAMS   1024 /* arbitrary sanity check value */

Definition at line 56 of file ffmpeg.h.

◆ DECODING_FOR_OST

#define DECODING_FOR_OST   1

Definition at line 301 of file ffmpeg.h.

◆ DECODING_FOR_FILTER

#define DECODING_FOR_FILTER   2

Definition at line 302 of file ffmpeg.h.

◆ ABORT_ON_FLAG_EMPTY_OUTPUT

#define ABORT_ON_FLAG_EMPTY_OUTPUT   (1 << 0)

Definition at line 433 of file ffmpeg.h.

Enumeration Type Documentation

◆ HWAccelID

enum HWAccelID
Enumerator
HWACCEL_NONE 
HWACCEL_AUTO 
HWACCEL_GENERIC 
HWACCEL_VIDEOTOOLBOX 
HWACCEL_QSV 
HWACCEL_CUVID 

Definition at line 58 of file ffmpeg.h.

◆ forced_keyframes_const

Enumerator
FKF_N 
FKF_N_FORCED 
FKF_PREV_FORCED_N 
FKF_PREV_FORCED_T 
FKF_T 
FKF_NB 

Definition at line 424 of file ffmpeg.h.

◆ OSTFinished

Enumerator
ENCODER_FINISHED 
MUXER_FINISHED 

Definition at line 437 of file ffmpeg.h.

Function Documentation

◆ term_init()

void term_init ( void  )

Definition at line 387 of file ffmpeg.c.

Referenced by assert_file_overwrite().

◆ term_exit()

void term_exit ( void  )

Definition at line 328 of file ffmpeg.c.

Referenced by assert_file_overwrite(), ffmpeg_cleanup(), and transcode().

◆ reset_options()

void reset_options ( OptionsContext o,
int  is_input 
)

◆ show_usage()

void show_usage ( void  )

Definition at line 3242 of file ffmpeg_opt.c.

Referenced by main(), and show_help_default().

◆ opt_output_file()

void opt_output_file ( void *  optctx,
const char *  filename 
)

◆ remove_avoptions()

void remove_avoptions ( AVDictionary **  a,
AVDictionary b 
)

Definition at line 637 of file ffmpeg.c.

Referenced by open_input_file().

◆ assert_avoptions()

void assert_avoptions ( AVDictionary m)

Definition at line 646 of file ffmpeg.c.

Referenced by init_input_stream(), init_output_stream(), and open_input_file().

◆ guess_input_channel_layout()

int guess_input_channel_layout ( InputStream ist)

Definition at line 2080 of file ffmpeg.c.

Referenced by add_input_streams().

◆ choose_pixel_fmt()

enum AVPixelFormat choose_pixel_fmt ( AVStream st,
AVCodecContext avctx,
AVCodec codec,
enum AVPixelFormat  target 
)

Definition at line 63 of file ffmpeg_filter.c.

Referenced by choose_pix_fmts().

◆ choose_sample_fmt()

void choose_sample_fmt ( AVStream st,
AVCodec codec 
)

Definition at line 93 of file ffmpeg_filter.c.

◆ configure_filtergraph()

int configure_filtergraph ( FilterGraph fg)

Definition at line 1005 of file ffmpeg_filter.c.

Referenced by flush_encoders(), ifilter_send_frame(), and transcode_step().

◆ configure_output_filter()

int configure_output_filter ( FilterGraph fg,
OutputFilter ofilter,
AVFilterInOut out 
)

Definition at line 676 of file ffmpeg_filter.c.

Referenced by configure_filtergraph().

◆ check_filter_outputs()

void check_filter_outputs ( void  )

Definition at line 690 of file ffmpeg_filter.c.

◆ ist_in_filtergraph()

int ist_in_filtergraph ( FilterGraph fg,
InputStream ist 
)

Definition at line 1208 of file ffmpeg_filter.c.

◆ filtergraph_is_simple()

int filtergraph_is_simple ( FilterGraph fg)

Definition at line 1217 of file ffmpeg_filter.c.

Referenced by configure_filtergraph(), and transcode_init().

◆ init_simple_filtergraph()

int init_simple_filtergraph ( InputStream ist,
OutputStream ost 
)

Referenced by open_output_file().

◆ init_complex_filtergraph()

int init_complex_filtergraph ( FilterGraph fg)

Definition at line 340 of file ffmpeg_filter.c.

Referenced by init_complex_filters().

◆ sub2video_update()

void sub2video_update ( InputStream ist,
AVSubtitle sub 
)

◆ ifilter_parameters_from_frame()

int ifilter_parameters_from_frame ( InputFilter ifilter,
const AVFrame frame 
)

Definition at line 1185 of file ffmpeg_filter.c.

Referenced by ifilter_send_frame().

◆ ffmpeg_parse_options()

int ffmpeg_parse_options ( int  argc,
char **  argv 
)

Referenced by main().

◆ videotoolbox_init()

int videotoolbox_init ( AVCodecContext s)

Definition at line 119 of file ffmpeg_videotoolbox.c.

◆ qsv_init()

int qsv_init ( AVCodecContext s)

Definition at line 71 of file ffmpeg_qsv.c.

◆ cuvid_init()

int cuvid_init ( AVCodecContext s)

Definition at line 30 of file ffmpeg_cuvid.c.

◆ hw_device_get_by_name()

HWDevice* hw_device_get_by_name ( const char *  name)

◆ hw_device_init_from_string()

int hw_device_init_from_string ( const char *  arg,
HWDevice **  dev 
)

Definition at line 92 of file ffmpeg_hw.c.

Referenced by opt_init_hw_device().

◆ hw_device_free_all()

void hw_device_free_all ( void  )

Definition at line 272 of file ffmpeg_hw.c.

Referenced by transcode().

◆ hw_device_setup_for_decode()

int hw_device_setup_for_decode ( InputStream ist)

Definition at line 301 of file ffmpeg_hw.c.

Referenced by init_input_stream().

◆ hw_device_setup_for_encode()

int hw_device_setup_for_encode ( OutputStream ost)

Definition at line 417 of file ffmpeg_hw.c.

Referenced by init_output_stream().

◆ hwaccel_decode_init()

int hwaccel_decode_init ( AVCodecContext avctx)

Definition at line 475 of file ffmpeg_hw.c.

Referenced by get_format().

Variable Documentation

◆ forced_keyframes_const_names

const char* const forced_keyframes_const_names[]

Definition at line 114 of file ffmpeg.c.

Referenced by init_output_stream_encode().

◆ input_streams

InputStream** input_streams

◆ nb_input_streams

int nb_input_streams

◆ input_files

InputFile** input_files

◆ nb_input_files

int nb_input_files

◆ output_streams

OutputStream** output_streams

◆ nb_output_streams

int nb_output_streams

◆ output_files

OutputFile** output_files

◆ nb_output_files

int nb_output_files

◆ filtergraphs

FilterGraph** filtergraphs

◆ nb_filtergraphs

int nb_filtergraphs

◆ vstats_filename

char* vstats_filename

◆ sdp_filename

char* sdp_filename

Definition at line 85 of file ffmpeg_opt.c.

Referenced by check_init_output_file(), opt_sdp_file(), and print_sdp().

◆ audio_drift_threshold

float audio_drift_threshold

Definition at line 87 of file ffmpeg_opt.c.

Referenced by configure_input_audio_filter().

◆ dts_delta_threshold

float dts_delta_threshold

Definition at line 88 of file ffmpeg_opt.c.

Referenced by process_input().

◆ dts_error_threshold

float dts_error_threshold

Definition at line 89 of file ffmpeg_opt.c.

Referenced by do_video_out(), and process_input().

◆ audio_volume

int audio_volume

◆ audio_sync_method

int audio_sync_method

Definition at line 92 of file ffmpeg_opt.c.

Referenced by configure_input_audio_filter(), do_audio_out(), and write_packet().

◆ video_sync_method

int video_sync_method

◆ frame_drop_threshold

float frame_drop_threshold

Definition at line 94 of file ffmpeg_opt.c.

Referenced by do_video_out().

◆ do_benchmark

int do_benchmark

Definition at line 96 of file ffmpeg_opt.c.

Referenced by ffmpeg_cleanup(), and main().

◆ do_benchmark_all

int do_benchmark_all

Definition at line 97 of file ffmpeg_opt.c.

Referenced by update_benchmark().

◆ do_deinterlace

int do_deinterlace

Definition at line 95 of file ffmpeg_opt.c.

Referenced by configure_input_video_filter().

◆ do_hex_dump

int do_hex_dump

Definition at line 98 of file ffmpeg_opt.c.

Referenced by check_keyboard_interaction(), and process_input().

◆ do_pkt_dump

int do_pkt_dump

Definition at line 99 of file ffmpeg_opt.c.

Referenced by check_keyboard_interaction(), and process_input().

◆ copy_ts

int copy_ts

◆ start_at_zero

int start_at_zero

◆ copy_tb

int copy_tb

◆ debug_ts

int debug_ts

◆ exit_on_error

int exit_on_error

◆ abort_on_flags

int abort_on_flags

Definition at line 105 of file ffmpeg_opt.c.

Referenced by opt_abort_on(), and transcode().

◆ print_stats

int print_stats

Definition at line 106 of file ffmpeg_opt.c.

Referenced by print_report().

◆ qp_hist

int qp_hist

Definition at line 107 of file ffmpeg_opt.c.

Referenced by check_keyboard_interaction(), and print_report().

◆ stdin_interaction

int stdin_interaction

Definition at line 108 of file ffmpeg_opt.c.

Referenced by assert_file_overwrite(), open_input_file(), term_init(), and transcode().

◆ frame_bits_per_raw_sample

int frame_bits_per_raw_sample

Definition at line 109 of file ffmpeg_opt.c.

Referenced by init_output_stream_encode(), and new_video_stream().

◆ progress_avio

AVIOContext* progress_avio

Definition at line 143 of file ffmpeg.c.

Referenced by print_report().

◆ max_error_rate

float max_error_rate

Definition at line 110 of file ffmpeg_opt.c.

Referenced by main().

◆ videotoolbox_pixfmt

char* videotoolbox_pixfmt

Definition at line 34 of file ffmpeg_videotoolbox.c.

Referenced by videotoolbox_init(), and videotoolbox_retrieve_data().

◆ filter_nbthreads

int filter_nbthreads

Definition at line 111 of file ffmpeg_opt.c.

Referenced by configure_filtergraph().

◆ filter_complex_nbthreads

int filter_complex_nbthreads

Definition at line 112 of file ffmpeg_opt.c.

Referenced by configure_filtergraph().

◆ vstats_version

int vstats_version

Definition at line 113 of file ffmpeg_opt.c.

Referenced by do_video_stats().

◆ int_cb

const AVIOInterruptCB int_cb

◆ options

const OptionDef options[]

◆ hwaccels

const HWAccel hwaccels[]

Definition at line 69 of file ffmpeg_opt.c.

Referenced by add_input_streams(), get_format(), and show_hwaccels().

◆ hw_device_ctx

AVBufferRef* hw_device_ctx

Definition at line 81 of file ffmpeg_opt.c.

◆ filter_hw_device

HWDevice* filter_hw_device

Definition at line 82 of file ffmpeg_opt.c.

Referenced by configure_filtergraph(), and opt_filter_hw_device().