FFmpeg
|
#include "config.h"
#include <ctype.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <errno.h>
#include <limits.h>
#include <stdatomic.h>
#include <stdint.h>
#include "libavformat/avformat.h"
#include "libavdevice/avdevice.h"
#include "libswresample/swresample.h"
#include "libavutil/opt.h"
#include "libavutil/channel_layout.h"
#include "libavutil/parseutils.h"
#include "libavutil/samplefmt.h"
#include "libavutil/fifo.h"
#include "libavutil/hwcontext.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "libavutil/display.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixdesc.h"
#include "libavutil/avstring.h"
#include "libavutil/libm.h"
#include "libavutil/imgutils.h"
#include "libavutil/timestamp.h"
#include "libavutil/bprint.h"
#include "libavutil/time.h"
#include "libavutil/thread.h"
#include "libavutil/threadmessage.h"
#include "libavcodec/mathops.h"
#include "libavformat/os_support.h"
#include "libavfilter/avfilter.h"
#include "libavfilter/buffersrc.h"
#include "libavfilter/buffersink.h"
#include "ffmpeg.h"
#include "cmdutils.h"
#include "libavutil/avassert.h"
Go to the source code of this file.
Data Structures | |
struct | BenchmarkTimeStamps |
Macros | |
#define | SIGNAL(sig, func) signal(sig, func) |
multimedia converter based on the FFmpeg libraries
Definition in file ffmpeg.c.
|
static |
Definition at line 1420 of file ffmpeg.c.
Referenced by do_video_out(), and flush_encoders().
|
static |
Definition at line 4795 of file ffmpeg.c.
Referenced by main(), and update_benchmark().
|
static |
Definition at line 4821 of file ffmpeg.c.
Referenced by ffmpeg_cleanup().
|
static |
Definition at line 2136 of file ffmpeg.c.
Referenced by flush_encoders(), ifilter_send_frame(), and transcode_step().
|
static |
Definition at line 177 of file ffmpeg.c.
Referenced by sub2video_update().
|
static |
Definition at line 192 of file ffmpeg.c.
Referenced by sub2video_update().
|
static |
Definition at line 223 of file ffmpeg.c.
Referenced by sub2video_heartbeat(), and sub2video_update().
void sub2video_update | ( | InputStream * | ist, |
int64_t | heartbeat_pts, | ||
AVSubtitle * | sub | ||
) |
Definition at line 241 of file ffmpeg.c.
Referenced by configure_filtergraph(), sub2video_flush(), sub2video_heartbeat(), and transcode_subtitles().
|
static |
Definition at line 281 of file ffmpeg.c.
Referenced by process_input().
|
static |
Definition at line 313 of file ffmpeg.c.
Referenced by transcode_subtitles().
|
static |
Definition at line 329 of file ffmpeg.c.
Referenced by sigterm_handler(), and term_exit().
void term_exit | ( | void | ) |
Definition at line 337 of file ffmpeg.c.
Referenced by assert_file_overwrite(), ffmpeg_cleanup(), and transcode().
|
static |
Definition at line 351 of file ffmpeg.c.
Referenced by term_init().
void term_init | ( | void | ) |
Definition at line 408 of file ffmpeg.c.
Referenced by assert_file_overwrite().
|
static |
Definition at line 457 of file ffmpeg.c.
Referenced by check_keyboard_interaction().
|
static |
void remove_avoptions | ( | AVDictionary ** | a, |
AVDictionary * | b | ||
) |
Definition at line 674 of file ffmpeg.c.
Referenced by open_input_file().
void assert_avoptions | ( | AVDictionary * | m | ) |
Definition at line 683 of file ffmpeg.c.
Referenced by init_input_stream(), init_output_stream(), and open_input_file().
Definition at line 692 of file ffmpeg.c.
Referenced by init_input_stream(), and init_output_stream().
|
static |
Definition at line 697 of file ffmpeg.c.
Referenced by decode_audio(), decode_video(), do_audio_out(), do_video_out(), and flush_encoders().
|
static |
Definition at line 718 of file ffmpeg.c.
Referenced by write_packet().
|
static |
Definition at line 727 of file ffmpeg.c.
Referenced by avio_alloc_context(), check_init_output_file(), ffio_init_context(), and output_packet().
|
static |
Definition at line 871 of file ffmpeg.c.
Referenced by check_recording_time(), do_streamcopy(), need_output(), and transcode_from_filter().
|
static |
Definition at line 894 of file ffmpeg.c.
Referenced by do_audio_out(), do_streamcopy(), do_subtitle_out(), do_video_out(), encode_audio_frame(), and flush_encoders().
|
static |
Definition at line 920 of file ffmpeg.c.
Referenced by do_audio_out(), do_subtitle_out(), and do_video_out().
|
static |
Definition at line 933 of file ffmpeg.c.
Referenced by do_audio_out(), and do_video_out().
|
static |
Definition at line 3433 of file ffmpeg.c.
Referenced by init_output_stream_wrapper().
|
static |
Definition at line 980 of file ffmpeg.c.
Referenced by do_video_out(), flush_encoders(), reap_filters(), transcode_init(), and transcode_step().
|
static |
Definition at line 1001 of file ffmpeg.c.
Referenced by reap_filters().
|
static |
Definition at line 1058 of file ffmpeg.c.
Referenced by transcode_subtitles().
|
static |
Definition at line 1142 of file ffmpeg.c.
Referenced by reap_filters().
|
static |
Definition at line 1415 of file ffmpeg.c.
Referenced by do_video_stats(), main(), print_report(), and run_psnr().
|
static |
Definition at line 1463 of file ffmpeg.c.
Referenced by flush_encoders(), and process_input().
Get and encode new output from any of the filtergraphs, without causing activity.
Definition at line 1482 of file ffmpeg.c.
Referenced by ifilter_send_frame(), transcode_from_filter(), and transcode_step().
|
static |
Definition at line 1559 of file ffmpeg.c.
Referenced by print_report().
|
static |
Definition at line 1676 of file ffmpeg.c.
Referenced by transcode().
|
static |
Definition at line 1886 of file ffmpeg.c.
Referenced by flush_encoders(), and ifilter_send_eof().
|
static |
Definition at line 1899 of file ffmpeg.c.
Referenced by transcode().
|
static |
Definition at line 2005 of file ffmpeg.c.
Referenced by process_input_packet(), and transcode_subtitles().
|
static |
Definition at line 2022 of file ffmpeg.c.
Referenced by process_input_packet().
int guess_input_channel_layout | ( | InputStream * | ist | ) |
Definition at line 2097 of file ffmpeg.c.
Referenced by add_input_streams().
|
static |
Definition at line 2117 of file ffmpeg.c.
Referenced by decode_audio(), decode_video(), and transcode_subtitles().
|
static |
Definition at line 2147 of file ffmpeg.c.
Referenced by send_frame_to_filters().
|
static |
Definition at line 2232 of file ffmpeg.c.
Referenced by send_filter_eof().
|
static |
Definition at line 2259 of file ffmpeg.c.
Referenced by decode_audio(), and decode_video().
|
static |
Definition at line 2282 of file ffmpeg.c.
Referenced by decode_audio(), and decode_video().
|
static |
Definition at line 2300 of file ffmpeg.c.
Referenced by process_input_packet().
|
static |
Definition at line 2360 of file ffmpeg.c.
Referenced by process_input_packet().
|
static |
Definition at line 2485 of file ffmpeg.c.
Referenced by process_input_packet().
|
static |
Definition at line 2562 of file ffmpeg.c.
Referenced by process_input_packet().
|
static |
Definition at line 2578 of file ffmpeg.c.
Referenced by process_input(), and transcode().
|
static |
Definition at line 2764 of file ffmpeg.c.
Referenced by check_init_output_file().
|
static |
Definition at line 2817 of file ffmpeg.c.
Referenced by init_input_stream().
Definition at line 2866 of file ffmpeg.c.
Referenced by transcode_init().
|
static |
Definition at line 2931 of file ffmpeg.c.
Referenced by init_encoder_time_base(), init_output_stream(), init_output_stream_encode(), and init_output_stream_streamcopy().
|
static |
Definition at line 2938 of file ffmpeg.c.
Referenced by parse_forced_key_frames().
|
static |
Definition at line 2944 of file ffmpeg.c.
Referenced by init_output_stream(), and transcode_init().
|
static |
Definition at line 2998 of file ffmpeg.c.
Referenced by init_output_stream().
|
static |
Definition at line 3027 of file ffmpeg.c.
Referenced by init_output_stream().
|
static |
Definition at line 3146 of file ffmpeg.c.
Referenced by init_output_stream_encode().
|
static |
Definition at line 3187 of file ffmpeg.c.
Referenced by init_output_stream_encode().
|
static |
Definition at line 3250 of file ffmpeg.c.
Referenced by init_output_stream_encode().
|
static |
Definition at line 3274 of file ffmpeg.c.
Referenced by init_output_stream().
Definition at line 3577 of file ffmpeg.c.
Referenced by process_input().
|
static |
Definition at line 3592 of file ffmpeg.c.
Referenced by transcode().
|
static |
Definition at line 3774 of file ffmpeg.c.
Referenced by mf_negotiate_types(), and transcode().
|
static |
Select the output stream to process.
Definition at line 3804 of file ffmpeg.c.
Referenced by transcode_step().
|
static |
Definition at line 3831 of file ffmpeg.c.
Referenced by check_keyboard_interaction().
|
static |
Definition at line 3843 of file ffmpeg.c.
Referenced by transcode().
Definition at line 4078 of file ffmpeg.c.
Referenced by process_input().
|
static |
Definition at line 4107 of file ffmpeg.c.
Referenced by movie_request_frame(), and transcode_step().
|
static |
Definition at line 4116 of file ffmpeg.c.
Referenced by process_input(), and transcode_step().
|
static |
Definition at line 4126 of file ffmpeg.c.
Referenced by seek_to_start().
|
static |
Definition at line 4145 of file ffmpeg.c.
Referenced by process_input().
Definition at line 4211 of file ffmpeg.c.
Referenced by transcode_step().
|
static |
Perform a step of transcoding for the specified filter graph.
[in] | graph | filter graph to consider |
[out] | best_ist | input stream where a frame would allow to continue |
Definition at line 4504 of file ffmpeg.c.
Referenced by transcode_step().
|
static |
Run a single step of transcoding.
Definition at line 4550 of file ffmpeg.c.
Referenced by transcode().
|
static |
|
static |
const char program_name[] = "ffmpeg" |
program name, defined by the program for show_version().
Definition at line 109 of file ffmpeg.c.
Referenced by main().
const int program_birth_year = 2000 |
program birth year, defined by the program for show_banner()
|
static |
Definition at line 112 of file ffmpeg.c.
Referenced by do_video_stats(), and ffmpeg_cleanup().
const char* const forced_keyframes_const_names[] |
Definition at line 114 of file ffmpeg.c.
Referenced by init_output_stream_encode().
|
static |
Definition at line 134 of file ffmpeg.c.
Referenced by check_keyboard_interaction(), main(), and term_init().
|
static |
Definition at line 135 of file ffmpeg.c.
Referenced by do_video_out(), and print_report().
|
static |
Definition at line 136 of file ffmpeg.c.
Referenced by do_video_out().
|
static |
Definition at line 137 of file ffmpeg.c.
Referenced by do_video_out(), and print_report().
|
static |
Definition at line 138 of file ffmpeg.c.
Referenced by check_decode_result(), and main().
|
static |
Definition at line 139 of file ffmpeg.c.
Referenced by check_init_output_file(), and print_report().
|
static |
Definition at line 141 of file ffmpeg.c.
Referenced by check_init_output_file(), and main().
|
static |
Definition at line 143 of file ffmpeg.c.
Referenced by main(), and update_benchmark().
AVIOContext* progress_avio = NULL |
Definition at line 144 of file ffmpeg.c.
Referenced by print_report().
|
static |
Definition at line 146 of file ffmpeg.c.
Referenced by do_subtitle_out(), and ffmpeg_cleanup().
InputStream** input_streams = NULL |
Definition at line 148 of file ffmpeg.c.
Referenced by add_input_streams(), check_keyboard_interaction(), do_video_out(), ffmpeg_cleanup(), get_input_packet(), get_input_stream(), init_input_filter(), init_input_stream(), init_output_stream_encode(), new_audio_stream(), new_output_stream(), new_video_stream(), open_input_file(), open_output_file(), opt_map(), opt_map_channel(), print_final_stats(), process_input(), seek_to_start(), set_dispositions(), sub2video_heartbeat(), transcode(), transcode_init(), and transcode_step().
int nb_input_streams = 0 |
Definition at line 149 of file ffmpeg.c.
Referenced by add_input_streams(), check_keyboard_interaction(), ffmpeg_cleanup(), init_input_filter(), open_input_file(), open_output_file(), transcode(), and transcode_init().
Definition at line 150 of file ffmpeg.c.
Referenced by assert_file_overwrite(), check_decode_result(), check_output_constraints(), configure_input_audio_filter(), configure_input_video_filter(), do_streamcopy(), ffmpeg_cleanup(), init_input_filter(), new_video_stream(), open_input_file(), open_output_file(), opt_map(), opt_map_channel(), opt_target(), print_final_stats(), process_input(), report_new_stream(), reset_eagain(), sub2video_heartbeat(), sub2video_prepare(), transcode(), transcode_from_filter(), transcode_init(), and transcode_step().
int nb_input_files = 0 |
Definition at line 151 of file ffmpeg.c.
Referenced by add_input_streams(), assert_file_overwrite(), dump_attachment(), ffmpeg_cleanup(), init_input_filter(), main(), open_input_file(), open_output_file(), opt_map(), opt_map_channel(), opt_target(), print_final_stats(), reset_eagain(), and transcode_init().
OutputStream** output_streams = NULL |
Definition at line 153 of file ffmpeg.c.
Referenced by check_init_output_file(), check_keyboard_interaction(), choose_output(), close_all_output_streams(), ffmpeg_cleanup(), flush_encoders(), got_eagain(), need_output(), new_output_stream(), open_output_file(), print_final_stats(), print_report(), process_input(), process_input_packet(), reap_filters(), reset_eagain(), set_dispositions(), transcode(), transcode_init(), and transcode_subtitles().
int nb_output_streams = 0 |
Definition at line 154 of file ffmpeg.c.
Referenced by check_keyboard_interaction(), choose_output(), close_all_output_streams(), ffmpeg_cleanup(), flush_encoders(), got_eagain(), need_output(), new_output_stream(), open_output_file(), print_final_stats(), print_report(), process_input(), process_input_packet(), reap_filters(), reset_eagain(), transcode(), transcode_init(), and transcode_subtitles().
OutputFile** output_files = NULL |
Definition at line 155 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(), finish_output_stream(), flush_encoders(), init_encoder_time_base(), init_output_stream(), init_output_stream_encode(), init_output_stream_streamcopy(), main(), need_output(), open_output_file(), parse_forced_key_frames(), print_final_stats(), print_report(), print_sdp(), reap_filters(), transcode(), transcode_init(), and transcode_subtitles().
int nb_output_files = 0 |
Definition at line 156 of file ffmpeg.c.
Referenced by ffmpeg_cleanup(), get_ost_filters(), main(), new_output_stream(), open_output_file(), print_final_stats(), print_report(), print_sdp(), transcode(), and transcode_init().
FilterGraph** filtergraphs |
Definition at line 158 of file ffmpeg.c.
Referenced by check_keyboard_interaction(), do_video_out(), ffmpeg_cleanup(), init_complex_filters(), open_output_file(), opt_filter_complex(), opt_filter_complex_script(), and transcode_init().
int nb_filtergraphs |
Definition at line 159 of file ffmpeg.c.
Referenced by check_filter_outputs(), check_keyboard_interaction(), do_video_out(), ffmpeg_cleanup(), init_complex_filters(), open_output_file(), opt_filter_complex(), opt_filter_complex_script(), and transcode_init().
|
static |
Definition at line 343 of file ffmpeg.c.
Referenced by ffmpeg_cleanup(), sigterm_handler(), and transcode().
|
static |
Definition at line 344 of file ffmpeg.c.
Referenced by check_keyboard_interaction(), decode_interrupt_cb(), main(), and sigterm_handler().
|
static |
Definition at line 345 of file ffmpeg.c.
Referenced by decode_interrupt_cb(), ffmpeg_cleanup(), and transcode_init().
|
static |
Definition at line 346 of file ffmpeg.c.
Referenced by ffmpeg_cleanup().
|
static |
Definition at line 347 of file ffmpeg.c.
Referenced by main(), and write_packet().
|
static |
Definition at line 348 of file ffmpeg.c.
Referenced by print_report().
const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL } |
Definition at line 513 of file ffmpeg.c.
Referenced by avio_open2(), check_init_output_file(), dump_attachment(), ff_network_sleep_interruptible(), ff_network_wait_fd_timeout(), ffio_open_whitelist(), ffurl_alloc(), ffurl_open_whitelist(), get_preset_file_2(), libsrt_network_wait_fd_timeout(), open_input_file(), open_output_file(), print_sdp(), url_alloc_for_protocol(), and zmq_proto_wait_timeout().