FFmpeg
|
#include "config.h"
#include <stdatomic.h>
#include <stdint.h>
#include <stdio.h>
#include <signal.h>
#include "cmdutils.h"
#include "sync_queue.h"
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/bsf.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 | HWDevice |
struct | StreamMap |
struct | AudioChannelMap |
struct | OptionsContext |
struct | InputFilter |
struct | OutputFilter |
struct | FilterGraph |
struct | InputStream |
struct | InputStream::sub2video |
struct | LastFrameDuration |
struct | InputFile |
struct | EncStatsComponent |
struct | EncStats |
struct | KeyframeForceCtx |
struct | OutputStream |
struct | OutputFile |
Macros | |
#define | FFMPEG_OPT_PSNR 1 |
#define | FFMPEG_OPT_MAP_CHANNEL 1 |
#define | FFMPEG_OPT_MAP_SYNC 1 |
#define | FFMPEG_ROTATION_METADATA 1 |
#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) |
#define | ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM (1 << 1) |
#define | SPECIFIER_OPT_FMT_str "%s" |
#define | SPECIFIER_OPT_FMT_i "%i" |
#define | SPECIFIER_OPT_FMT_i64 "%"PRId64 |
#define | SPECIFIER_OPT_FMT_ui64 "%"PRIu64 |
#define | SPECIFIER_OPT_FMT_f "%f" |
#define | SPECIFIER_OPT_FMT_dbl "%lf" |
#define | WARN_MULTIPLE_OPT_USAGE(name, type, so, st) |
#define | MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st) |
#define | MATCH_PER_TYPE_OPT(name, type, outvar, fmtctx, mediatype) |
Enumerations | |
enum | VideoSyncMethod { VSYNC_AUTO = -1, VSYNC_PASSTHROUGH, VSYNC_CFR, VSYNC_VFR, VSYNC_VSCFR, VSYNC_DROP } |
enum | HWAccelID { HWACCEL_NONE = 0, HWACCEL_AUTO, HWACCEL_GENERIC } |
enum | forced_keyframes_const { FKF_N, FKF_N_FORCED, FKF_PREV_FORCED_N, FKF_PREV_FORCED_T, FKF_T, FKF_NB } |
enum | EncStatsType { ENC_STATS_LITERAL = 0, ENC_STATS_FILE_IDX, ENC_STATS_STREAM_IDX, ENC_STATS_FRAME_NUM, ENC_STATS_FRAME_NUM_IN, ENC_STATS_TIMEBASE, ENC_STATS_TIMEBASE_IN, ENC_STATS_PTS, ENC_STATS_PTS_TIME, ENC_STATS_PTS_IN, ENC_STATS_PTS_TIME_IN, ENC_STATS_DTS, ENC_STATS_DTS_TIME, ENC_STATS_SAMPLE_NUM, ENC_STATS_NB_SAMPLES, ENC_STATS_PKT_SIZE, ENC_STATS_BITRATE, ENC_STATS_AVG_BITRATE } |
enum | OSTFinished { ENCODER_FINISHED = 1, MUXER_FINISHED = 2 } |
enum | { KF_FORCE_SOURCE = 1, KF_FORCE_SOURCE_NO_DROP = 2 } |
enum VideoSyncMethod |
enum HWAccelID |
enum EncStatsType |
enum OSTFinished |
anonymous enum |
void term_init | ( | void | ) |
Definition at line 395 of file ffmpeg.c.
Referenced by assert_file_overwrite().
void term_exit | ( | void | ) |
Definition at line 324 of file ffmpeg.c.
Referenced by assert_file_overwrite(), ffmpeg_cleanup(), and transcode().
void show_usage | ( | void | ) |
Definition at line 1206 of file ffmpeg_opt.c.
Referenced by main(), and show_help_default().
void remove_avoptions | ( | AVDictionary ** | a, |
AVDictionary * | b | ||
) |
Definition at line 620 of file ffmpeg.c.
Referenced by ifile_open().
void assert_avoptions | ( | AVDictionary * | m | ) |
Definition at line 629 of file ffmpeg.c.
Referenced by ifile_open(), init_input_stream(), and init_output_stream().
void assert_file_overwrite | ( | const char * | filename | ) |
Definition at line 656 of file ffmpeg_opt.c.
Referenced by dump_attachment(), and of_open().
char* file_read | ( | const char * | filename | ) |
Definition at line 700 of file ffmpeg_opt.c.
Referenced by filter_opt_apply(), get_ost_filters(), new_video_stream(), and opt_filter_complex_script().
AVDictionary* strip_specifiers | ( | const AVDictionary * | dict | ) |
Definition at line 167 of file ffmpeg_opt.c.
Referenced by ifile_open(), and validate_enc_avopt().
const AVCodec* find_codec_or_die | ( | void * | logctx, |
const char * | name, | ||
enum AVMediaType | type, | ||
int | encoder | ||
) |
Definition at line 626 of file ffmpeg_opt.c.
Referenced by choose_decoder(), choose_encoder(), and ifile_open().
int parse_and_set_vsync | ( | const char * | arg, |
int * | vsync_var, | ||
int | file_idx, | ||
int | st_idx, | ||
int | is_global | ||
) |
Definition at line 184 of file ffmpeg_opt.c.
Referenced by new_video_stream(), and opt_vsync().
int configure_filtergraph | ( | FilterGraph * | fg | ) |
Definition at line 1112 of file ffmpeg_filter.c.
Referenced by flush_encoders(), ifilter_send_frame(), and transcode_step().
void check_filter_outputs | ( | void | ) |
Definition at line 798 of file ffmpeg_filter.c.
int filtergraph_is_simple | ( | FilterGraph * | fg | ) |
Definition at line 1307 of file ffmpeg_filter.c.
Referenced by configure_filtergraph(), and transcode_init().
int init_simple_filtergraph | ( | InputStream * | ist, |
OutputStream * | ost | ||
) |
Definition at line 179 of file ffmpeg_filter.c.
Referenced by of_open().
int init_complex_filtergraph | ( | FilterGraph * | fg | ) |
Definition at line 467 of file ffmpeg_filter.c.
Referenced by init_complex_filters().
void sub2video_update | ( | InputStream * | ist, |
int64_t | heartbeat_pts, | ||
AVSubtitle * | sub | ||
) |
Definition at line 228 of file ffmpeg.c.
Referenced by configure_filtergraph(), process_subtitle(), sub2video_flush(), and sub2video_heartbeat().
int ifilter_parameters_from_frame | ( | InputFilter * | ifilter, |
const AVFrame * | frame | ||
) |
Definition at line 1275 of file ffmpeg_filter.c.
Referenced by ifilter_send_frame().
void enc_stats_write | ( | OutputStream * | ost, |
EncStats * | es, | ||
const AVFrame * | frame, | ||
const AVPacket * | pkt, | ||
uint64_t | frame_num | ||
) |
Definition at line 811 of file ffmpeg.c.
Referenced by encode_frame(), and write_packet().
HWDevice* hw_device_get_by_name | ( | const char * | name | ) |
Definition at line 44 of file ffmpeg_hw.c.
Referenced by hw_device_default_name(), hw_device_init_from_string(), hw_device_setup_for_decode(), and opt_filter_hw_device().
Definition at line 94 of file ffmpeg_hw.c.
Referenced by opt_init_hw_device().
void hw_device_free_all | ( | void | ) |
Definition at line 288 of file ffmpeg_hw.c.
Referenced by transcode().
int hw_device_setup_for_decode | ( | InputStream * | ist | ) |
Definition at line 317 of file ffmpeg_hw.c.
Referenced by init_input_stream().
int hw_device_setup_for_encode | ( | OutputStream * | ost | ) |
Definition at line 445 of file ffmpeg_hw.c.
Referenced by init_output_stream().
int hw_device_setup_for_filter | ( | FilterGraph * | fg | ) |
Definition at line 551 of file ffmpeg_hw.c.
Referenced by configure_filtergraph().
int hwaccel_decode_init | ( | AVCodecContext * | avctx | ) |
Definition at line 542 of file ffmpeg_hw.c.
Referenced by get_format().
int of_stream_init | ( | OutputFile * | of, |
OutputStream * | ost | ||
) |
Definition at line 583 of file ffmpeg_mux.c.
Referenced by init_output_stream().
int of_write_trailer | ( | OutputFile * | of | ) |
Definition at line 604 of file ffmpeg_mux.c.
Referenced by transcode().
int of_open | ( | const OptionsContext * | o, |
const char * | filename | ||
) |
Definition at line 2207 of file ffmpeg_mux_init.c.
void of_close | ( | OutputFile ** | pof | ) |
Definition at line 720 of file ffmpeg_mux.c.
Referenced by ffmpeg_cleanup().
void of_enc_stats_close | ( | void | ) |
Definition at line 218 of file ffmpeg_mux_init.c.
Referenced by ffmpeg_cleanup().
void of_output_packet | ( | OutputFile * | of, |
AVPacket * | pkt, | ||
OutputStream * | ost, | ||
int | eof | ||
) |
Definition at line 329 of file ffmpeg_mux.c.
Referenced by do_streamcopy(), do_subtitle_out(), encode_frame(), flush_encoders(), and process_input().
int64_t of_filesize | ( | OutputFile * | of | ) |
Definition at line 747 of file ffmpeg_mux.c.
Referenced by print_report().
int ifile_open | ( | const OptionsContext * | o, |
const char * | filename | ||
) |
Definition at line 842 of file ffmpeg_demux.c.
void ifile_close | ( | InputFile ** | f | ) |
Definition at line 479 of file ffmpeg_demux.c.
Referenced by ffmpeg_cleanup().
Get next input packet from the demuxer.
pkt | the packet is written here when this function returns 0 |
Definition at line 410 of file ffmpeg_demux.c.
Referenced by process_input().
InputStream* ist_iter | ( | InputStream * | prev | ) |
Definition at line 604 of file ffmpeg.c.
Referenced by check_keyboard_interaction(), init_input_filter(), map_auto_data(), map_auto_subtitle(), transcode(), and transcode_init().
const char* const forced_keyframes_const_names[] |
Definition at line 2030 of file ffmpeg_mux_init.c.
Referenced by process_forced_keyframes().
InputFile** input_files |
Definition at line 143 of file ffmpeg.c.
Referenced by apply_sync_offsets(), assert_file_overwrite(), check_decode_result(), configure_input_audio_filter(), configure_input_video_filter(), copy_meta(), correct_input_start_times(), do_streamcopy(), ffmpeg_cleanup(), ifile_open(), init_input_filter(), init_output_stream_streamcopy(), ist_iter(), map_auto_audio(), map_auto_video(), map_manual(), new_video_stream(), opt_map(), opt_map_channel(), opt_target(), print_final_stats(), process_input(), reset_eagain(), sub2video_heartbeat(), sub2video_prepare(), transcode(), transcode_from_filter(), transcode_init(), and transcode_step().
int nb_input_files |
Definition at line 144 of file ffmpeg.c.
Referenced by apply_sync_offsets(), assert_file_overwrite(), copy_meta(), correct_input_start_times(), dump_attachment(), ffmpeg_cleanup(), ifile_open(), init_input_filter(), ist_iter(), main(), map_auto_audio(), map_auto_video(), opt_map(), opt_map_channel(), opt_target(), print_final_stats(), reset_eagain(), thread_start(), and transcode_init().
OutputFile** output_files |
Definition at line 146 of file ffmpeg.c.
Referenced by check_output_constraints(), check_recording_time(), close_output_stream(), configure_output_audio_filter(), configure_output_video_filter(), do_streamcopy(), do_subtitle_out(), ffmpeg_cleanup(), flush_encoders(), init_output_stream(), init_output_stream_encode(), init_output_stream_streamcopy(), mux_alloc(), mux_check_init(), new_video_stream(), ost_iter(), print_final_stats(), print_report(), print_sdp(), process_input(), process_subtitle(), reap_filters(), transcode(), and trigger_fix_sub_duration_heartbeat().
int nb_output_files |
Definition at line 147 of file ffmpeg.c.
Referenced by create_streams(), ffmpeg_cleanup(), main(), mux_alloc(), mux_check_init(), ost_iter(), print_final_stats(), print_report(), print_sdp(), and transcode().
FilterGraph** filtergraphs |
Definition at line 149 of file ffmpeg.c.
Referenced by check_filter_outputs(), check_keyboard_interaction(), create_streams(), do_video_out(), ffmpeg_cleanup(), init_complex_filters(), init_simple_filtergraph(), map_manual(), opt_filter_complex(), and opt_filter_complex_script().
int nb_filtergraphs |
Definition at line 150 of file ffmpeg.c.
Referenced by check_filter_outputs(), check_keyboard_interaction(), create_streams(), do_video_out(), ffmpeg_cleanup(), init_complex_filters(), init_simple_filtergraph(), map_manual(), opt_filter_complex(), opt_filter_complex_script(), and transcode_init().
char* vstats_filename |
Definition at line 63 of file ffmpeg_opt.c.
Referenced by encode_frame(), ffmpeg_cleanup(), opt_vstats_file(), and update_video_stats().
char* sdp_filename |
Definition at line 64 of file ffmpeg_opt.c.
Referenced by mux_check_init(), opt_sdp_file(), and print_sdp().
float audio_drift_threshold |
Definition at line 66 of file ffmpeg_opt.c.
float dts_delta_threshold |
Definition at line 67 of file ffmpeg_opt.c.
Referenced by ts_discontinuity_detect().
float dts_error_threshold |
Definition at line 68 of file ffmpeg_opt.c.
Referenced by do_video_out(), and ts_discontinuity_detect().
enum VideoSyncMethod video_sync_method |
Definition at line 70 of file ffmpeg_opt.c.
Referenced by new_video_stream(), opt_vsync(), and parse_and_set_vsync().
float frame_drop_threshold |
Definition at line 71 of file ffmpeg_opt.c.
Referenced by video_sync_process().
int do_benchmark |
Definition at line 72 of file ffmpeg_opt.c.
Referenced by ffmpeg_cleanup(), and main().
int do_benchmark_all |
Definition at line 73 of file ffmpeg_opt.c.
Referenced by update_benchmark().
int do_hex_dump |
Definition at line 74 of file ffmpeg_opt.c.
Referenced by input_thread().
int do_pkt_dump |
Definition at line 75 of file ffmpeg_opt.c.
Referenced by input_thread().
int copy_ts |
Definition at line 76 of file ffmpeg_opt.c.
Referenced by apply_sync_offsets(), configure_input_audio_filter(), configure_input_video_filter(), correct_input_start_times(), do_streamcopy(), ifile_get_packet(), ifile_open(), init_output_stream_streamcopy(), new_video_stream(), print_report(), and ts_discontinuity_detect().
int start_at_zero |
Definition at line 77 of file ffmpeg_opt.c.
Referenced by apply_sync_offsets(), configure_input_audio_filter(), configure_input_video_filter(), correct_input_start_times(), do_streamcopy(), ifile_get_packet(), and ifile_open().
int copy_tb |
Definition at line 78 of file ffmpeg_opt.c.
Referenced by avformat_transfer_internal_stream_timing_info(), and init_output_stream_streamcopy().
int debug_ts |
Definition at line 79 of file ffmpeg_opt.c.
Referenced by adjust_frame_pts_to_encoder_tb(), decode_video(), encode_frame(), process_input(), reap_filters(), ts_fixup(), and write_packet().
int exit_on_error |
Definition at line 80 of file ffmpeg_opt.c.
Referenced by check_decode_result(), do_subtitle_out(), input_thread(), of_output_packet(), process_input(), process_input_packet(), transcode(), and write_packet().
int abort_on_flags |
Definition at line 81 of file ffmpeg_opt.c.
Referenced by opt_abort_on(), and transcode().
int print_stats |
Definition at line 82 of file ffmpeg_opt.c.
Referenced by print_report().
int64_t stats_period |
Definition at line 90 of file ffmpeg_opt.c.
Referenced by opt_stats_period(), and print_report().
int qp_hist |
Definition at line 83 of file ffmpeg_opt.c.
Referenced by check_keyboard_interaction(), and print_report().
int stdin_interaction |
Definition at line 84 of file ffmpeg_opt.c.
Referenced by assert_file_overwrite(), ifile_open(), term_init(), and transcode().
AVIOContext* progress_avio |
Definition at line 141 of file ffmpeg.c.
Referenced by print_report().
float max_error_rate |
Definition at line 85 of file ffmpeg_opt.c.
Referenced by main().
char* filter_nbthreads |
Definition at line 86 of file ffmpeg_opt.c.
Referenced by configure_filtergraph(), ffmpeg_cleanup(), and opt_filter_threads().
int filter_complex_nbthreads |
Definition at line 87 of file ffmpeg_opt.c.
Referenced by configure_filtergraph().
int vstats_version |
Definition at line 88 of file ffmpeg_opt.c.
Referenced by update_video_stats().
int auto_conversion_filters |
Definition at line 89 of file ffmpeg_opt.c.
Referenced by configure_filtergraph().
const AVIOInterruptCB int_cb |
Definition at line 500 of file ffmpeg.c.
Referenced by avio_open2(), dump_attachment(), enc_stats_get_file(), ff_network_sleep_interruptible(), ff_network_wait_fd_timeout(), ffio_open_whitelist(), ffurl_alloc(), ffurl_open_whitelist(), get_preset_file_2(), ifile_open(), libsrt_network_wait_fd_timeout(), of_add_attachments(), of_open(), print_sdp(), read_binary(), url_alloc_for_protocol(), and zmq_proto_wait_timeout().
const OptionDef options[] |
Referenced by av_bsf_list_append2(), av_hwdevice_ctx_create_derived_opts(), av_opt_set_dict(), av_opt_set_dict2(), avcodec_open2(), avfilter_init_dict(), avfilter_init_str(), avformat_find_stream_info(), avformat_init_output(), avformat_open_input(), avformat_write_header(), avio_open2(), bsf_list_append_internal(), ff_dnn_load_model_native(), ff_dnn_load_model_ov(), ff_dnn_load_model_tf(), ff_filter_opt_parse(), ff_format_output_open(), ff_opus_psy_init(), ff_tee_parse_slave_options(), ff_tls_open_underlying(), ffio_open_whitelist(), hls_read_header(), hw_device_init_from_string(), init(), init_input(), init_muxer(), io_open_default(), list_devices_for_context(), locate_option(), main(), open_url_keepalive(), opt_audio_codec(), opt_audio_filters(), opt_audio_frames(), opt_audio_qscale(), opt_data_codec(), opt_data_frames(), opt_old2new(), opt_qscale(), opt_recording_timestamp(), opt_subtitle_codec(), opt_target(), opt_timecode(), opt_video_codec(), opt_video_filters(), opt_video_frames(), parse_loglevel(), parse_option(), parse_options(), pcm_read_header(), pp_get_mode_by_name_and_quality(), set_string_dict(), show_banner(), show_help_default(), show_help_options(), split_commandline(), subfile_open(), tee_open(), try_decode_frame(), uninit_options(), wrap(), and write_packet().
HWDevice* filter_hw_device |
Definition at line 61 of file ffmpeg_opt.c.
Referenced by hw_device_setup_for_filter(), and opt_filter_hw_device().
unsigned nb_output_dumped |
Definition at line 138 of file ffmpeg.c.
Referenced by mux_check_init(), and print_report().
int main_return_code |
Definition at line 334 of file ffmpeg.c.
Referenced by main(), and of_write_trailer().
int ignore_unknown_streams |
Definition at line 98 of file ffmpeg_opt.c.
Referenced by map_manual().
int copy_unknown_streams |
Definition at line 99 of file ffmpeg_opt.c.
Referenced by map_manual().
int recast_media |
Definition at line 100 of file ffmpeg_opt.c.
Referenced by choose_decoder(), and find_codec_or_die().
int do_psnr |
Definition at line 96 of file ffmpeg_opt.c.
Referenced by new_video_stream().
const char* const opt_name_codec_names[] |
Definition at line 56 of file ffmpeg_opt.c.
const char* const opt_name_codec_tags[] |
Definition at line 58 of file ffmpeg_opt.c.
const char* const opt_name_frame_rates[] |
Definition at line 57 of file ffmpeg_opt.c.
const char* const opt_name_top_field_first[] |
Definition at line 59 of file ffmpeg_opt.c.