19 #ifndef FFTOOLS_FFMPEG_H 20 #define FFTOOLS_FFMPEG_H 50 #define VSYNC_PASSTHROUGH 0 53 #define VSYNC_VSCFR 0xfe 54 #define VSYNC_DROP 0xff 56 #define MAX_STREAMS 1024 306 #define DECODING_FOR_OST 1 307 #define DECODING_FOR_FILTER 2 429 int thread_queue_size;
442 #define ABORT_ON_FLAG_EMPTY_OUTPUT (1 << 0) 443 #define ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM (1 << 1) 482 int last_nb0_frames[3];
505 double forced_keyframes_expr_const_values[
FKF_NB];
SpecifierOpt * passlogfiles
int64_t recording_time
desired length of the resulting file in microseconds == AV_TIME_BASE units
This structure describes decoded (raw) audio or video data.
char * filters
filtergraph associated to the -filter option
SpecifierOpt * hwaccel_output_formats
HWDevice * filter_hw_device
OutputFile ** output_files
int64_t forced_kf_ref_pts
Main libavfilter public API header.
SpecifierOpt * copy_initial_nonkeyframes
int nb_chroma_intra_matrices
SpecifierOpt * reinit_filters
AVRational max_frame_rate
The bitstream filter state.
int max_muxing_queue_size
SpecifierOpt * sample_fmts
SpecifierOpt * guess_layout_max
void hw_device_free_all(void)
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
Convenience header that includes libavutil's core.
FilterGraph ** filtergraphs
static void error(const char *err)
int nb_muxing_queue_data_threshold
This struct describes the properties of an encoded stream.
float dts_error_threshold
int64_t start_time
start time in microseconds == AV_TIME_BASE units
SpecifierOpt * frame_pix_fmts
SpecifierOpt * chroma_intra_matrices
SpecifierOpt * intra_matrices
void remove_avoptions(AVDictionary **a, AVDictionary *b)
int copy_initial_nonkeyframes
int auto_conversion_filters
void sub2video_update(InputStream *ist, int64_t heartbeat_pts, AVSubtitle *sub)
AVDictionary * resample_opts
SpecifierOpt * bitstream_filters
int init_complex_filtergraph(FilterGraph *fg)
int filter_complex_nbthreads
SpecifierOpt * disposition
SpecifierOpt * enc_time_bases
Callback for checking whether to abort blocking functions.
libswresample public header
int hw_device_setup_for_filter(FilterGraph *fg)
void check_filter_outputs(void)
int ffmpeg_parse_options(int argc, char **argv)
AudioChannelMap * audio_channel_maps
SpecifierOpt * codec_tags
SpecifierOpt * rc_overrides
size_t muxing_queue_data_threshold
int hw_device_setup_for_encode(OutputStream *ost)
float frame_drop_threshold
SpecifierOpt * max_frame_rates
AVRational frame_aspect_ratio
int nb_audio_channel_maps
SpecifierOpt * filter_scripts
int nb_hwaccel_output_formats
SpecifierOpt * audio_channels
uint64_t * channel_layouts
SpecifierOpt * time_bases
int metadata_chapters_manual
struct OutputStream * ost
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
SpecifierOpt * audio_sample_rate
int hw_device_setup_for_decode(InputStream *ist)
int ifilter_parameters_from_frame(InputFilter *ifilter, const AVFrame *frame)
SpecifierOpt * dump_attachment
void assert_avoptions(AVDictionary *m)
SpecifierOpt * canvas_sizes
int qsv_init(AVCodecContext *s)
SpecifierOpt * metadata_map
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
int audio_channels_mapped
SpecifierOpt * copy_prior_start
SpecifierOpt * frame_aspect_ratios
SpecifierOpt * frame_sizes
HWDevice * hw_device_get_by_name(const char *name)
A linked-list of the inputs/outputs of the filter chain.
int(* init)(AVCodecContext *s)
SpecifierOpt * frame_rates
struct InputStream * sync_ist
Libavcodec external API header.
AVFifoBuffer * muxing_queue
OutputStream ** output_streams
main external API structure.
int metadata_streams_manual
const char * attachment_filename
a very simple circular buffer FIFO implementation
SpecifierOpt * top_field_first
size_t muxing_queue_data_size
int configure_filtergraph(FilterGraph *fg)
Rational number (pair of numerator and denominator).
int metadata_global_manual
double rotate_override_value
int filtergraph_is_simple(FilterGraph *fg)
int frame_bits_per_raw_sample
char * filters_script
filtergraph script associated to the -filter_script option
SpecifierOpt * hwaccel_devices
float audio_drift_threshold
InputStream ** input_streams
AVIOContext * progress_avio
#define flags(name, subs,...)
AVExpr * forced_keyframes_pexpr
static int hwaccel_retrieve_data(AVCodecContext *avctx, AVFrame *input)
const AVIOInterruptCB int_cb
A reference to a data buffer.
SpecifierOpt * max_muxing_queue_size
struct FilterGraph * graph
const OptionDef options[]
AVCodecParameters * ref_par
Utilties for rational number calculation.
SpecifierOpt * inter_matrices
const char *const forced_keyframes_const_names[]
SpecifierOpt * forced_key_frames
const char ** attachments
int nb_max_muxing_queue_size
SpecifierOpt * muxing_queue_data_threshold
enum AVPixelFormat pix_fmt
SpecifierOpt * fix_sub_duration
SpecifierOpt * autorotate
int hwaccel_decode_init(AVCodecContext *avctx)
float dts_delta_threshold
int guess_input_channel_layout(InputStream *ist)
SpecifierOpt * max_frames
int nb_copy_initial_nonkeyframes
int hw_device_init_from_string(const char *arg, HWDevice **dev)
SpecifierOpt * codec_names
AVDictionary * encoder_opts
char * videotoolbox_pixfmt
static float sub(float src0, float src1)
int init_simple_filtergraph(InputStream *ist, OutputStream *ost)
AVPixelFormat
Pixel format.
This structure stores compressed data.
static void hwaccel_uninit(AVCodecContext *avctx)
int nb_frame_aspect_ratios
int videotoolbox_init(AVCodecContext *s)
simple arithmetic expression evaluator