FFmpeg
Data Structures | Macros | Functions | Variables
ffmpeg_opt.c File Reference
#include "config.h"
#include <stdint.h>
#include "ffmpeg.h"
#include "ffmpeg_sched.h"
#include "cmdutils.h"
#include "opt_common.h"
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/bsf.h"
#include "libavfilter/avfilter.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/avutil.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "libavutil/stereo3d.h"

Go to the source code of this file.

Data Structures

struct  GlobalOptionsContext
 

Macros

#define OPT_MATCH_PER_STREAM(name, type, opt_type, m)
 
#define OFFSET(x)   offsetof(OptionsContext, x)
 

Functions

static void uninit_options (OptionsContext *o)
 
static void init_options (OptionsContext *o)
 
static int show_hwaccels (void *optctx, const char *opt, const char *arg)
 
const char * opt_match_per_type_str (const SpecifierOptList *sol, char mediatype)
 
static unsigned opt_match_per_stream (void *logctx, enum OptionType type, const SpecifierOptList *sol, AVFormatContext *fc, AVStream *st)
 
 OPT_MATCH_PER_STREAM (str, const char *, OPT_TYPE_STRING, str)
 
 OPT_MATCH_PER_STREAM (int, int, OPT_TYPE_INT, i)
 
 OPT_MATCH_PER_STREAM (int64, int64_t, OPT_TYPE_INT64, i64)
 
 OPT_MATCH_PER_STREAM (dbl, double, OPT_TYPE_DOUBLE, dbl)
 
int view_specifier_parse (const char **pspec, ViewSpecifier *vs)
 
int parse_and_set_vsync (const char *arg, int *vsync_var, int file_idx, int st_idx, int is_global)
 
static void correct_input_start_times (void)
 
static int apply_sync_offsets (void)
 
static int opt_filter_threads (void *optctx, const char *opt, const char *arg)
 
static int opt_abort_on (void *optctx, const char *opt, const char *arg)
 
static int opt_stats_period (void *optctx, const char *opt, const char *arg)
 
static int opt_audio_codec (void *optctx, const char *opt, const char *arg)
 
static int opt_video_codec (void *optctx, const char *opt, const char *arg)
 
static int opt_subtitle_codec (void *optctx, const char *opt, const char *arg)
 
static int opt_data_codec (void *optctx, const char *opt, const char *arg)
 
static int opt_map (void *optctx, const char *opt, const char *arg)
 
static int opt_attach (void *optctx, const char *opt, const char *arg)
 
static int opt_sdp_file (void *optctx, const char *opt, const char *arg)
 
static int opt_init_hw_device (void *optctx, const char *opt, const char *arg)
 
static int opt_filter_hw_device (void *optctx, const char *opt, const char *arg)
 
static int opt_recording_timestamp (void *optctx, const char *opt, const char *arg)
 
int find_codec (void *logctx, const char *name, enum AVMediaType type, int encoder, const AVCodec **pcodec)
 
int assert_file_overwrite (const char *filename)
 
static int opt_streamid (void *optctx, const char *opt, const char *arg)
 
static int opt_target (void *optctx, const char *opt, const char *arg)
 
static int opt_vstats_file (void *optctx, const char *opt, const char *arg)
 
static int opt_vstats (void *optctx, const char *opt, const char *arg)
 
static int opt_video_frames (void *optctx, const char *opt, const char *arg)
 
static int opt_audio_frames (void *optctx, const char *opt, const char *arg)
 
static int opt_data_frames (void *optctx, const char *opt, const char *arg)
 
static int opt_default_new (OptionsContext *o, const char *opt, const char *arg)
 
static int opt_preset (void *optctx, const char *opt, const char *arg)
 
static int opt_old2new (void *optctx, const char *opt, const char *arg)
 
static int opt_bitrate (void *optctx, const char *opt, const char *arg)
 
static int opt_qscale (void *optctx, const char *opt, const char *arg)
 
static int opt_profile (void *optctx, const char *opt, const char *arg)
 
static int opt_video_filters (void *optctx, const char *opt, const char *arg)
 
static int opt_audio_filters (void *optctx, const char *opt, const char *arg)
 
static int opt_vsync (void *optctx, const char *opt, const char *arg)
 
static int opt_timecode (void *optctx, const char *opt, const char *arg)
 
static int opt_audio_qscale (void *optctx, const char *opt, const char *arg)
 
static int opt_filter_complex (void *optctx, const char *opt, const char *arg)
 
static int opt_filter_complex_script (void *optctx, const char *opt, const char *arg)
 
void show_help_default (const char *opt, const char *arg)
 Per-fftool specific help handler. More...
 
void show_usage (void)
 

Variables

HWDevicefilter_hw_device
 
char * vstats_filename
 
float audio_drift_threshold = 0.1
 
float dts_delta_threshold = 10
 
float dts_error_threshold = 3600*30
 
enum VideoSyncMethod video_sync_method = VSYNC_AUTO
 
float frame_drop_threshold = 0
 
int do_benchmark = 0
 
int do_benchmark_all = 0
 
int do_hex_dump = 0
 
int do_pkt_dump = 0
 
int copy_ts = 0
 
int start_at_zero = 0
 
int copy_tb = -1
 
int debug_ts = 0
 
int exit_on_error = 0
 
int abort_on_flags = 0
 
int print_stats = -1
 
int stdin_interaction = 1
 
float max_error_rate = 2.0/3
 
char * filter_nbthreads
 
int filter_complex_nbthreads = 0
 
int vstats_version = 2
 
int auto_conversion_filters = 1
 
int64_t stats_period = 500000
 
static int file_overwrite = 0
 
static int no_file_overwrite = 0
 
int ignore_unknown_streams = 0
 
int copy_unknown_streams = 0
 
int recast_media = 0
 

Macro Definition Documentation

◆ OPT_MATCH_PER_STREAM

#define OPT_MATCH_PER_STREAM (   name,
  type,
  opt_type,
 
)
Value:
void opt_match_per_stream_ ## name(void *logctx, const SpecifierOptList *sol, \
{ \
unsigned ret = opt_match_per_stream(logctx, opt_type, sol, fc, st); \
if (ret > 0) \
*out = sol->opt[ret - 1].u.m; \
}

Definition at line 227 of file ffmpeg_opt.c.

◆ OFFSET

#define OFFSET (   x)    offsetof(OptionsContext, x)

Function Documentation

◆ uninit_options()

static void uninit_options ( OptionsContext o)
static

Definition at line 98 of file ffmpeg_opt.c.

◆ init_options()

static void init_options ( OptionsContext o)
static

Definition at line 134 of file ffmpeg_opt.c.

◆ show_hwaccels()

static int show_hwaccels ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 152 of file ffmpeg_opt.c.

◆ opt_match_per_type_str()

const char* opt_match_per_type_str ( const SpecifierOptList sol,
char  mediatype 
)

Definition at line 164 of file ffmpeg_opt.c.

Referenced by ifile_open(), map_auto_subtitle(), and opt_preset().

◆ opt_match_per_stream()

static unsigned opt_match_per_stream ( void *  logctx,
enum OptionType  type,
const SpecifierOptList sol,
AVFormatContext fc,
AVStream st 
)
static

Definition at line 177 of file ffmpeg_opt.c.

◆ OPT_MATCH_PER_STREAM() [1/4]

OPT_MATCH_PER_STREAM ( str  ,
const char *  ,
OPT_TYPE_STRING  ,
str   
)

◆ OPT_MATCH_PER_STREAM() [2/4]

OPT_MATCH_PER_STREAM ( int  ,
int  ,
OPT_TYPE_INT  ,
i   
)

◆ OPT_MATCH_PER_STREAM() [3/4]

OPT_MATCH_PER_STREAM ( int64  ,
int64_t  ,
OPT_TYPE_INT64  ,
i64   
)

◆ OPT_MATCH_PER_STREAM() [4/4]

OPT_MATCH_PER_STREAM ( dbl  ,
double  ,
OPT_TYPE_DOUBLE  ,
dbl   
)

◆ view_specifier_parse()

int view_specifier_parse ( const char **  pspec,
ViewSpecifier vs 
)

Definition at line 241 of file ffmpeg_opt.c.

Referenced by fg_complex_bind_input(), and opt_map().

◆ 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 at line 294 of file ffmpeg_opt.c.

Referenced by new_stream_video(), and opt_vsync().

◆ correct_input_start_times()

static void correct_input_start_times ( void  )
static

Definition at line 330 of file ffmpeg_opt.c.

◆ apply_sync_offsets()

static int apply_sync_offsets ( void  )
static

Definition at line 367 of file ffmpeg_opt.c.

◆ opt_filter_threads()

static int opt_filter_threads ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 419 of file ffmpeg_opt.c.

◆ opt_abort_on()

static int opt_abort_on ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 426 of file ffmpeg_opt.c.

◆ opt_stats_period()

static int opt_stats_period ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 445 of file ffmpeg_opt.c.

◆ opt_audio_codec()

static int opt_audio_codec ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 463 of file ffmpeg_opt.c.

Referenced by opt_preset(), and opt_target().

◆ opt_video_codec()

static int opt_video_codec ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 469 of file ffmpeg_opt.c.

Referenced by opt_preset(), and opt_target().

◆ opt_subtitle_codec()

static int opt_subtitle_codec ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 475 of file ffmpeg_opt.c.

Referenced by opt_preset().

◆ opt_data_codec()

static int opt_data_codec ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 481 of file ffmpeg_opt.c.

Referenced by opt_preset().

◆ opt_map()

static int opt_map ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 487 of file ffmpeg_opt.c.

◆ opt_attach()

static int opt_attach ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 607 of file ffmpeg_opt.c.

◆ opt_sdp_file()

static int opt_sdp_file ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 621 of file ffmpeg_opt.c.

◆ opt_init_hw_device()

static int opt_init_hw_device ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 659 of file ffmpeg_opt.c.

◆ opt_filter_hw_device()

static int opt_filter_hw_device ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 674 of file ffmpeg_opt.c.

◆ opt_recording_timestamp()

static int opt_recording_timestamp ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 688 of file ffmpeg_opt.c.

◆ find_codec()

int find_codec ( void *  logctx,
const char *  name,
enum AVMediaType  type,
int  encoder,
const AVCodec **  pcodec 
)

Definition at line 711 of file ffmpeg_opt.c.

Referenced by choose_decoder(), choose_encoder(), and ifile_open().

◆ assert_file_overwrite()

int assert_file_overwrite ( const char *  filename)

Definition at line 744 of file ffmpeg_opt.c.

Referenced by dump_attachment(), and of_open().

◆ opt_streamid()

static int opt_streamid ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 790 of file ffmpeg_opt.c.

◆ opt_target()

static int opt_target ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 809 of file ffmpeg_opt.c.

◆ opt_vstats_file()

static int opt_vstats_file ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 952 of file ffmpeg_opt.c.

Referenced by opt_vstats().

◆ opt_vstats()

static int opt_vstats ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 959 of file ffmpeg_opt.c.

◆ opt_video_frames()

static int opt_video_frames ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 975 of file ffmpeg_opt.c.

◆ opt_audio_frames()

static int opt_audio_frames ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 981 of file ffmpeg_opt.c.

◆ opt_data_frames()

static int opt_data_frames ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 987 of file ffmpeg_opt.c.

◆ opt_default_new()

static int opt_default_new ( OptionsContext o,
const char *  opt,
const char *  arg 
)
static

Definition at line 993 of file ffmpeg_opt.c.

Referenced by opt_preset().

◆ opt_preset()

static int opt_preset ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1013 of file ffmpeg_opt.c.

◆ opt_old2new()

static int opt_old2new ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1063 of file ffmpeg_opt.c.

◆ opt_bitrate()

static int opt_bitrate ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1075 of file ffmpeg_opt.c.

◆ opt_qscale()

static int opt_qscale ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1091 of file ffmpeg_opt.c.

◆ opt_profile()

static int opt_profile ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1108 of file ffmpeg_opt.c.

◆ opt_video_filters()

static int opt_video_filters ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1120 of file ffmpeg_opt.c.

◆ opt_audio_filters()

static int opt_audio_filters ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1126 of file ffmpeg_opt.c.

◆ opt_vsync()

static int opt_vsync ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1133 of file ffmpeg_opt.c.

◆ opt_timecode()

static int opt_timecode ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1140 of file ffmpeg_opt.c.

◆ opt_audio_qscale()

static int opt_audio_qscale ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1154 of file ffmpeg_opt.c.

◆ opt_filter_complex()

static int opt_filter_complex ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1160 of file ffmpeg_opt.c.

◆ opt_filter_complex_script()

static int opt_filter_complex_script ( void *  optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 1181 of file ffmpeg_opt.c.

◆ show_help_default()

void show_help_default ( const char *  opt,
const char *  arg 
)

Per-fftool specific help handler.

Implemented in each fftool, called by show_help().

Definition at line 1205 of file ffmpeg_opt.c.

◆ show_usage()

void show_usage ( void  )

Definition at line 1322 of file ffmpeg_opt.c.

Referenced by main(), and show_help_default().

Variable Documentation

◆ filter_hw_device

HWDevice* filter_hw_device

Definition at line 51 of file ffmpeg_opt.c.

Referenced by hw_device_for_filter(), and opt_filter_hw_device().

◆ vstats_filename

char* vstats_filename

Definition at line 53 of file ffmpeg_opt.c.

Referenced by encode_frame(), ffmpeg_cleanup(), opt_vstats_file(), and update_video_stats().

◆ audio_drift_threshold

float audio_drift_threshold = 0.1

Definition at line 55 of file ffmpeg_opt.c.

◆ dts_delta_threshold

float dts_delta_threshold = 10

Definition at line 56 of file ffmpeg_opt.c.

Referenced by ts_discontinuity_detect().

◆ dts_error_threshold

float dts_error_threshold = 3600*30

Definition at line 57 of file ffmpeg_opt.c.

Referenced by ts_discontinuity_detect(), and video_sync_process().

◆ video_sync_method

enum VideoSyncMethod video_sync_method = VSYNC_AUTO

Definition at line 60 of file ffmpeg_opt.c.

Referenced by new_stream_video(), opt_vsync(), and parse_and_set_vsync().

◆ frame_drop_threshold

float frame_drop_threshold = 0

Definition at line 62 of file ffmpeg_opt.c.

Referenced by video_sync_process().

◆ do_benchmark

int do_benchmark = 0

Definition at line 63 of file ffmpeg_opt.c.

Referenced by ffmpeg_cleanup(), and main().

◆ do_benchmark_all

int do_benchmark_all = 0

Definition at line 64 of file ffmpeg_opt.c.

Referenced by update_benchmark().

◆ do_hex_dump

int do_hex_dump = 0

Definition at line 65 of file ffmpeg_opt.c.

Referenced by input_thread().

◆ do_pkt_dump

int do_pkt_dump = 0

Definition at line 66 of file ffmpeg_opt.c.

Referenced by input_thread().

◆ copy_ts

int copy_ts = 0

◆ start_at_zero

int start_at_zero = 0

◆ copy_tb

int copy_tb = -1

Definition at line 69 of file ffmpeg_opt.c.

◆ debug_ts

int debug_ts = 0

◆ exit_on_error

int exit_on_error = 0

◆ abort_on_flags

int abort_on_flags = 0

Definition at line 72 of file ffmpeg_opt.c.

Referenced by check_written(), and opt_abort_on().

◆ print_stats

int print_stats = -1

Definition at line 73 of file ffmpeg_opt.c.

Referenced by print_report().

◆ stdin_interaction

int stdin_interaction = 1

Definition at line 74 of file ffmpeg_opt.c.

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

◆ max_error_rate

float max_error_rate = 2.0/3

Definition at line 75 of file ffmpeg_opt.c.

Referenced by decoder_thread().

◆ filter_nbthreads

char* filter_nbthreads

Definition at line 76 of file ffmpeg_opt.c.

Referenced by configure_filtergraph(), ffmpeg_cleanup(), and opt_filter_threads().

◆ filter_complex_nbthreads

int filter_complex_nbthreads = 0

Definition at line 77 of file ffmpeg_opt.c.

Referenced by configure_filtergraph().

◆ vstats_version

int vstats_version = 2

Definition at line 78 of file ffmpeg_opt.c.

Referenced by update_video_stats().

◆ auto_conversion_filters

int auto_conversion_filters = 1

Definition at line 79 of file ffmpeg_opt.c.

Referenced by fg_create().

◆ stats_period

int64_t stats_period = 500000

Definition at line 80 of file ffmpeg_opt.c.

Referenced by opt_stats_period(), print_report(), and transcode().

◆ file_overwrite

int file_overwrite = 0
static

Definition at line 83 of file ffmpeg_opt.c.

Referenced by assert_file_overwrite().

◆ no_file_overwrite

int no_file_overwrite = 0
static

Definition at line 84 of file ffmpeg_opt.c.

Referenced by assert_file_overwrite().

◆ ignore_unknown_streams

int ignore_unknown_streams = 0

Definition at line 85 of file ffmpeg_opt.c.

Referenced by map_manual().

◆ copy_unknown_streams

int copy_unknown_streams = 0

Definition at line 86 of file ffmpeg_opt.c.

Referenced by map_manual().

◆ recast_media

int recast_media = 0

Definition at line 87 of file ffmpeg_opt.c.

Referenced by choose_decoder(), and find_codec().

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
out
FILE * out
Definition: movenc.c:55
fc
#define fc(width, name, range_min, range_max)
Definition: cbs_av1.c:472
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
opt_match_per_stream
static unsigned opt_match_per_stream(void *logctx, enum OptionType type, const SpecifierOptList *sol, AVFormatContext *fc, AVStream *st)
Definition: ffmpeg_opt.c:177
AVFormatContext
Format I/O context.
Definition: avformat.h:1300
SpecifierOptList
Definition: cmdutils.h:179
ret
ret
Definition: filter_design.txt:187
AVStream
Stream structure.
Definition: avformat.h:748