19#ifndef FFTOOLS_FFMPEG_H
20#define FFTOOLS_FFMPEG_H
54#define FFMPEG_ERROR_RATE_EXCEEDED FFERRTAG('E', 'R', 'E', 'D')
544#define ABORT_ON_FLAG_EMPTY_OUTPUT (1 << 0)
545#define ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM (1 << 1)
797 void *logctx,
int decode);
824 unsigned sched_idx_enc,
839 const char *
command,
const char *
arg,
int all_filters);
903 Scheduler *sch,
unsigned sch_idx,
void *log_parent);
Libavcodec external API header.
Main libavfilter public API header.
Convenience header that includes libavutil's core.
static const uint16_t fc[]
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
intptr_t atomic_uint_least64_t
simple arithmetic expression evaluator
AVIOContext * progress_avio
const AVIOInterruptCB int_cb
FilterGraph ** filtergraphs
atomic_uint nb_output_dumped
OutputFile ** output_files
const FrameData * frame_data_c(AVFrame *frame)
void dec_free(Decoder **pdec)
FrameData * frame_data(AVFrame *frame)
Get our axiliary frame data attached to the frame, allocating it if needed.
int muxer_thread(void *arg)
void opt_match_per_stream_group_dbl(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStreamGroup *stg, double *out)
int dec_request_view(Decoder *dec, const ViewSpecifier *vs, SchedulerNode *src)
int fg_finalise_bindings(void)
int64_t of_filesize(OutputFile *of)
FrameData * packet_data(AVPacket *pkt)
int of_stream_init(OutputFile *of, OutputStream *ost, const AVCodecContext *enc_ctx)
@ IFILTER_FLAG_DROPCHANGED
@ IFILTER_FLAG_AUTOROTATE
@ PKT_OPAQUE_SUB_HEARTBEAT
@ PKT_OPAQUE_FIX_SUB_DURATION
void opt_match_per_stream_group_int(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStreamGroup *stg, int *out)
const FrameData * packet_data_c(AVPacket *pkt)
void ifile_close(InputFile **f)
int enc_loopback(Encoder *enc)
void opt_match_per_stream_group_int64(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStreamGroup *stg, int64_t *out)
int view_specifier_parse(const char **pspec, ViewSpecifier *vs)
int ist_filter_add(InputStream *ist, InputFilter *ifilter, int is_simple, const ViewSpecifier *vs, InputFilterOptions *opts, SchedulerNode *src)
AVBufferRef * hw_device_for_filter(void)
Get a hardware device to be used with this filtergraph.
@ LATENCY_PROBE_FILTER_POST
@ LATENCY_PROBE_FILTER_PRE
float dts_error_threshold
int enc_alloc(Encoder **penc, const AVCodec *codec, Scheduler *sch, unsigned sch_idx, void *log_parent)
void fg_send_command(FilterGraph *fg, double time, const char *target, const char *command, const char *arg, int all_filters)
@ VIEW_SPECIFIER_TYPE_ALL
@ VIEW_SPECIFIER_TYPE_POS
@ VIEW_SPECIFIER_TYPE_IDX
@ VIEW_SPECIFIER_TYPE_NONE
OutputStream * ost_iter(OutputStream *prev)
HWDevice * hw_device_get_by_name(const char *name)
int parse_and_set_vsync(const char *arg, enum VideoSyncMethod *vsync_var, int file_idx, int st_idx)
int ignore_unknown_streams
int filter_complex_nbthreads
int ist_use(InputStream *ist, int decoding_needed, const ViewSpecifier *vs, SchedulerNode *src)
float frame_drop_threshold
int find_codec(void *logctx, const char *name, enum AVMediaType type, int encoder, const AVCodec **codec)
char * print_graphs_format
int encoder_thread(void *arg)
void of_free(OutputFile **pof)
int enc_open(void *opaque, const AVFrame *frame)
void opt_match_per_stream_int(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStream *st, int *out)
@ FRAME_OPAQUE_SEND_COMMAND
@ FRAME_OPAQUE_SUB_HEARTBEAT
int of_open(const OptionsContext *o, const char *filename, Scheduler *sch)
int ffmpeg_parse_options(int argc, char **argv, Scheduler *sch)
void hw_device_free_all(void)
int assert_file_overwrite(const char *filename)
int dec_create(const OptionsContext *o, const char *arg, Scheduler *sch)
Create a standalone decoder.
void opt_match_per_stream_dbl(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStream *st, double *out)
int auto_conversion_filters
void of_enc_stats_close(void)
int of_write_trailer(OutputFile *of)
void opt_match_per_stream_group_str(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStreamGroup *stg, const char **out)
InputStream * ist_find_unused(enum AVMediaType type)
Find an unused input stream of given type.
HWDevice * filter_hw_device
const char * opt_match_per_type_str(const SpecifierOptList *sol, char mediatype)
@ OFILTER_FLAG_AUTOROTATE
@ OFILTER_FLAG_AUDIO_24BIT
@ OFILTER_FLAG_DISABLE_CONVERT
int dec_init(Decoder **pdec, Scheduler *sch, AVDictionary **dec_opts, const DecoderOpts *o, AVFrame *param_out)
int fg_create(FilterGraph **pfg, char **graph_desc, Scheduler *sch, const OutputFilterOptions *opts)
Create a new filtergraph in the global filtergraph list.
int check_avoptions_used(const AVDictionary *opts, const AVDictionary *opts_used, void *logctx, int decode)
int ifile_open(const OptionsContext *o, const char *filename, Scheduler *sch)
void opt_match_per_stream_int64(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStream *st, int64_t *out)
int hw_device_init_from_type(enum AVHWDeviceType type, const char *device, HWDevice **dev_out)
int fg_create_simple(FilterGraph **pfg, InputStream *ist, char **graph_desc, Scheduler *sch, unsigned sched_idx_enc, const OutputFilterOptions *opts)
void enc_free(Encoder **penc)
float dts_delta_threshold
int ofilter_bind_enc(OutputFilter *ofilter, unsigned sched_idx_enc, const OutputFilterOptions *opts)
int hw_device_init_from_string(const char *arg, HWDevice **dev)
void update_benchmark(const char *fmt,...)
int filtergraph_is_simple(const FilterGraph *fg)
HWDevice * hw_device_get_by_type(enum AVHWDeviceType type)
InputStream * ist_iter(InputStream *prev)
void fg_free(FilterGraph **pfg)
void enc_stats_write(OutputStream *ost, EncStats *es, const AVFrame *frame, const AVPacket *pkt, uint64_t frame_num)
int filter_buffered_frames
@ DECODER_FLAG_SEND_END_TS
@ DECODER_FLAG_FIX_SUB_DURATION
@ DECODER_FLAG_FRAMERATE_FORCED
@ DECODER_FLAG_TS_UNRELIABLE
int dec_filter_add(Decoder *dec, InputFilter *ifilter, InputFilterOptions *opts, const ViewSpecifier *vs, SchedulerNode *src)
void opt_match_per_stream_str(void *logctx, const SpecifierOptList *sol, AVFormatContext *fc, AVStream *st, const char **out)
enum VideoSyncMethod video_sync_method
AVSampleFormat
Audio sample formats.
AVColorRange
Visual content value range.
AVAlphaMode
Correlation between the alpha channel and color values.
AVPixelFormat
Pixel format.
AVColorSpace
YUV colorspace type.
Utilities for rational number calculation.
A reference to a data buffer.
An AVChannelLayout holds information about the channel layout of audio data.
Describe the class of an AVClass context structure.
main external API structure.
This struct describes the properties of an encoded stream.
Structure to hold side data for an AVFrame.
This structure describes decoded (raw) audio or video data.
Callback for checking whether to abort blocking functions.
This structure stores compressed data.
Rational number (pair of numerator and denominator).
enum AVHWDeviceType hwaccel_device_type
const AVCodecParameters * par
enum AVPixelFormat hwaccel_output_format
enum HWAccelID hwaccel_id
uint8_t * subtitle_header
EncStatsComponent * components
AVDictionary * encoder_opts
struct AVBPrint graph_print_buf
struct FrameData::@304126211346234154321045014345346376220164157123 dec
AVRational frame_rate_filter
int64_t wallclock[LATENCY_PROBE_NB]
AVCodecParameters * par_enc
AVFrameSideData ** side_data
AVDictionary * reinit_opts
double expr_const_values[FKF_NB]
SpecifierOptList mastering_displays
SpecifierOptList rc_overrides
SpecifierOptList enc_stats_pre
SpecifierOptList canvas_sizes
SpecifierOptList metadata_map
SpecifierOptList frame_pix_fmts
SpecifierOptList intra_matrices
SpecifierOptList autorotate
SpecifierOptList enc_stats_post_fmt
SpecifierOptList codec_tags
SpecifierOptList hwaccel_devices
SpecifierOptList stream_groups
SpecifierOptList enc_stats_post
SpecifierOptList codec_names
SpecifierOptList ts_scale
SpecifierOptList mux_stats
SpecifierOptList disposition
SpecifierOptList audio_channels
SpecifierOptList hwaccels
SpecifierOptList inter_matrices
SpecifierOptList mux_stats_fmt
SpecifierOptList dump_attachment
SpecifierOptList muxing_queue_data_threshold
SpecifierOptList copy_prior_start
SpecifierOptList time_bases
SpecifierOptList frame_rates
SpecifierOptList forced_key_frames
float shortest_buf_duration
SpecifierOptList drop_changed
SpecifierOptList display_vflips
SpecifierOptList keep_metadata
SpecifierOptList enc_stats_pre_fmt
SpecifierOptList force_fps
SpecifierOptList display_hflips
SpecifierOptList max_frame_rates
SpecifierOptList fps_mode
SpecifierOptList copy_initial_nonkeyframes
SpecifierOptList enc_reinit_opts
SpecifierOptList max_muxing_queue_size
SpecifierOptList hwaccel_output_formats
SpecifierOptList bits_per_raw_sample
SpecifierOptList guess_layout_max
const char ** attachments
SpecifierOptList passlogfiles
SpecifierOptList display_rotations
SpecifierOptList enc_time_bases
SpecifierOptList apply_cropping
SpecifierOptList reinit_filters
SpecifierOptList audio_sample_rate
SpecifierOptList sample_fmts
SpecifierOptList frame_aspect_ratios
double readrate_initial_burst
SpecifierOptList autoscale
SpecifierOptList fix_sub_duration
SpecifierOptList max_frames
SpecifierOptList metadata
SpecifierOptList bitstream_filters
SpecifierOptList chroma_intra_matrices
SpecifierOptList fix_sub_duration_heartbeat
SpecifierOptList content_lights
SpecifierOptList frame_sizes
SpecifierOptList audio_ch_layouts
int64_t start_time
start time in microseconds == AV_TIME_BASE units
int64_t recording_time
desired length of the resulting file in microseconds == AV_TIME_BASE units
enum AVColorSpace color_space
AVFrameSideData ** side_data
enum AVAlphaMode * alpha_modes
enum AVColorRange color_range
enum AVPixelFormat * pix_fmts
enum AVSampleFormat * sample_fmts
AVChannelLayout ch_layout
AVRational max_frame_rate
enum AVAlphaMode alpha_mode
const AVChannelLayout * ch_layouts
enum AVColorSpace * color_spaces
enum AVColorRange * color_ranges
enum VideoSyncMethod vsync_method
const AVRational * frame_rates
atomic_uint_least64_t nb_frames_drop
atomic_uint_least64_t nb_frames_dup
struct FilterGraph * graph
unsigned int fix_sub_duration_heartbeat
const char * logfile_prefix
atomic_uint_least64_t packets_written
AVRational frame_aspect_ratio
char * attachment_filename
enum ViewSpecifierType type
libswresample public header
static AVDictionary * opts
static int command(AVFilterContext *ctx, const char *cmd, const char *arg, char *res, int res_len, int flags)