Go to the documentation of this file.
19 #ifndef FFTOOLS_FFMPEG_H
20 #define FFTOOLS_FFMPEG_H
59 #define MAX_STREAMS 1024
312 #define DECODING_FOR_OST 1
313 #define DECODING_FOR_FILTER 2
434 int thread_queue_size;
447 #define ABORT_ON_FLAG_EMPTY_OUTPUT (1 << 0)
448 #define ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM (1 << 1)
655 extern char *qsv_device;
AVPixelFormat
Pixel format.
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
struct FilterGraph * graph
SpecifierOpt * canvas_sizes
SpecifierOpt * dump_attachment
const char * attachment_filename
const AVChannelLayout * ch_layouts
int configure_filtergraph(FilterGraph *fg)
SpecifierOpt * intra_matrices
This struct describes the properties of an encoded stream.
static float sub(float src0, float src1)
float frame_drop_threshold
SpecifierOpt * rc_overrides
int64_t start_time
start time in microseconds == AV_TIME_BASE units
SpecifierOpt * frame_aspect_ratios
AVIOContext * progress_avio
int ffmpeg_parse_options(int argc, char **argv)
InputStream ** input_streams
This structure describes decoded (raw) audio or video data.
int nb_chroma_intra_matrices
SpecifierOpt * inter_matrices
const AVIOInterruptCB int_cb
SpecifierOpt * audio_channels
int hw_device_init_from_string(const char *arg, HWDevice **dev)
double rotate_override_value
The bitstream filter state.
Callback for checking whether to abort blocking functions.
AVExpr * forced_keyframes_pexpr
int init_simple_filtergraph(InputStream *ist, OutputStream *ost)
enum VideoSyncMethod vsync_method
float dts_delta_threshold
char * filters
filtergraph associated to the -filter option
double forced_keyframes_expr_const_values[FKF_NB]
int hw_device_setup_for_decode(InputStream *ist)
void assert_avoptions(AVDictionary *m)
SpecifierOpt * time_bases
int qsv_init(AVCodecContext *s)
int nb_audio_channel_maps
int metadata_chapters_manual
int copy_initial_nonkeyframes
SpecifierOpt * copy_initial_nonkeyframes
SpecifierOpt * codec_names
AVRational frame_aspect_ratio
int nb_bits_per_raw_sample
int audio_channels_mapped
SpecifierOpt * audio_ch_layouts
struct OutputStream * ost
OutputStream ** output_streams
int metadata_streams_manual
float audio_drift_threshold
int nb_copy_initial_nonkeyframes
void of_write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int unqueue)
SpecifierOpt * sample_fmts
int nb_max_muxing_queue_size
AVDictionary * encoder_opts
SpecifierOpt * reinit_filters
const char *const forced_keyframes_const_names[]
SpecifierOpt * frame_sizes
void of_close(OutputFile **pof)
Rational number (pair of numerator and denominator).
SpecifierOpt * fix_sub_duration
SpecifierOpt * codec_tags
int frame_bits_per_raw_sample
int metadata_global_manual
SpecifierOpt * max_frames
FilterGraph ** filtergraphs
int guess_input_channel_layout(InputStream *ist)
unsigned nb_output_dumped
int of_check_init(OutputFile *of)
const OptionDef options[]
int nb_frame_aspect_ratios
void sub2video_update(InputStream *ist, int64_t heartbeat_pts, AVSubtitle *sub)
An AVChannelLayout holds information about the channel layout of audio data.
SpecifierOpt * filter_scripts
int hwaccel_decode_init(AVCodecContext *avctx)
SpecifierOpt * top_field_first
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
void check_filter_outputs(void)
SpecifierOpt * frame_rates
SpecifierOpt * autorotate
AVRational max_frame_rate
char * filters_script
filtergraph script associated to the -filter_script option
int nb_hwaccel_output_formats
int init_complex_filtergraph(FilterGraph *fg)
SpecifierOpt * forced_key_frames
SpecifierOpt * metadata_map
SpecifierOpt * audio_sample_rate
struct InputStream * sync_ist
OutputFile ** output_files
int64_t last_nb0_frames[3]
int hw_device_setup_for_filter(FilterGraph *fg)
int videotoolbox_init(AVCodecContext *s)
SpecifierOpt * bits_per_raw_sample
AVCodecParameters * ref_par
SpecifierOpt * bitstream_filters
SpecifierOpt * passlogfiles
int max_muxing_queue_size
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
AVChannelLayout ch_layout
AudioChannelMap * audio_channel_maps
int64_t forced_kf_ref_pts
void hw_device_free_all(void)
SpecifierOpt * disposition
int ifilter_parameters_from_frame(InputFilter *ifilter, const AVFrame *frame)
HWDevice * filter_hw_device
main external API structure.
int hw_device_setup_for_encode(OutputStream *ost)
SpecifierOpt * guess_layout_max
SpecifierOpt * enc_time_bases
SpecifierOpt * max_frame_rates
SpecifierOpt * frame_pix_fmts
enum VideoSyncMethod video_sync_method
SpecifierOpt * hwaccel_devices
SpecifierOpt * max_muxing_queue_size
void remove_avoptions(AVDictionary **a, AVDictionary *b)
int nb_muxing_queue_data_threshold
SpecifierOpt * muxing_queue_data_threshold
A reference to a data buffer.
SpecifierOpt * copy_prior_start
int auto_conversion_filters
const char ** attachments
size_t muxing_queue_data_size
This structure stores compressed data.
SpecifierOpt * chroma_intra_matrices
size_t muxing_queue_data_threshold
float dts_error_threshold
SpecifierOpt * hwaccel_output_formats
const AVOutputFormat * format
int64_t recording_time
desired length of the resulting file in microseconds == AV_TIME_BASE units
HWDevice * hw_device_get_by_name(const char *name)
A linked-list of the inputs/outputs of the filter chain.
int of_write_trailer(OutputFile *of)
int filtergraph_is_simple(FilterGraph *fg)
int filter_complex_nbthreads