ffmpeg.c File Reference

multimedia converter based on the FFmpeg libraries More...

#include "config.h"
#include <ctype.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <errno.h>
#include <signal.h>
#include <limits.h>
#include <unistd.h>
#include "libavformat/avformat.h"
#include "libavdevice/avdevice.h"
#include "libswscale/swscale.h"
#include "libavutil/opt.h"
#include "libavcodec/audioconvert.h"
#include "libavutil/audioconvert.h"
#include "libavutil/parseutils.h"
#include "libavutil/samplefmt.h"
#include "libavutil/colorspace.h"
#include "libavutil/fifo.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixdesc.h"
#include "libavutil/avstring.h"
#include "libavutil/libm.h"
#include "libavutil/imgutils.h"
#include "libavformat/os_support.h"
#include "libswresample/swresample.h"
#include "libavformat/ffm.h"
#include <time.h>
#include "cmdutils.h"
#include "libavutil/avassert.h"
#include "cmdutils_common_opts.h"

Go to the source code of this file.

Data Structures

struct  StreamMap
struct  AudioChannelMap
struct  MetadataMap
 select an input file for an output file More...
struct  FrameBuffer
struct  InputStream
struct  InputFile
struct  OutputStream
struct  OutputFile
struct  OptionsContext

Defines

#define VSYNC_AUTO   -1
#define VSYNC_PASSTHROUGH   0
#define VSYNC_CFR   1
#define VSYNC_VFR   2
#define MAX_STREAMS   1024
#define DEFAULT_PASS_LOGFILENAME_PREFIX   "ffmpeg2pass"
#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)
#define METADATA_CHECK_INDEX(index, nb_elems, desc)
#define SET_DICT(type, meta, context, index)
#define NEW_STREAM(type, index)
#define OFFSET(x)   offsetof(OptionsContext, x)

Functions

static void reset_options (OptionsContext *o, int is_input)
static int alloc_buffer (AVCodecContext *s, InputStream *ist, FrameBuffer **pbuf)
static void free_buffer_pool (InputStream *ist)
static void unref_buffer (InputStream *ist, FrameBuffer *buf)
static int codec_get_buffer (AVCodecContext *s, AVFrame *frame)
static void codec_release_buffer (AVCodecContext *s, AVFrame *frame)
static void filter_release_buffer (AVFilterBuffer *fb)
static void term_exit (void)
static void sigterm_handler (int sig)
static void term_init (void)
static int read_key (void)
static int decode_interrupt_cb (void *ctx)
void av_noreturn exit_program (int ret)
 Do all the necessary cleanup and abort.
static void assert_avoptions (AVDictionary *m)
static void assert_codec_experimental (AVCodecContext *c, int encoder)
static void choose_sample_fmt (AVStream *st, AVCodec *codec)
static void choose_sample_rate (AVStream *st, AVCodec *codec)
static void choose_pixel_fmt (AVStream *st, AVCodec *codec)
static double get_sync_ipts (const OutputStream *ost)
static void write_frame (AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
static void generate_silence (uint8_t *buf, enum AVSampleFormat sample_fmt, size_t size)
static int encode_audio_frame (AVFormatContext *s, OutputStream *ost, const uint8_t *buf, int buf_size)
static void do_audio_out (AVFormatContext *s, OutputStream *ost, InputStream *ist, AVFrame *decoded_frame)
static void pre_process_video_frame (InputStream *ist, AVPicture *picture, void **bufp)
static void do_subtitle_out (AVFormatContext *s, OutputStream *ost, InputStream *ist, AVSubtitle *sub, int64_t pts)
static void do_video_resample (OutputStream *ost, InputStream *ist, AVFrame *in_picture, AVFrame **out_picture)
static void do_video_out (AVFormatContext *s, OutputStream *ost, InputStream *ist, AVFrame *in_picture, int *frame_size, float quality)
static double psnr (double d)
static void do_video_stats (AVFormatContext *os, OutputStream *ost, int frame_size)
static void print_report (OutputFile *output_files, OutputStream *ost_table, int nb_ostreams, int is_last_report, int64_t timer_start, int64_t cur_time)
static void flush_encoders (OutputStream *ost_table, int nb_ostreams)
static int check_output_constraints (InputStream *ist, OutputStream *ost)
static void do_streamcopy (InputStream *ist, OutputStream *ost, const AVPacket *pkt)
static void rate_emu_sleep (InputStream *ist)
static int transcode_audio (InputStream *ist, AVPacket *pkt, int *got_output)
static int transcode_video (InputStream *ist, AVPacket *pkt, int *got_output, int64_t *pkt_pts, int64_t *pkt_dts)
static int transcode_subtitles (InputStream *ist, AVPacket *pkt, int *got_output)
static int output_packet (InputStream *ist, OutputStream *ost_table, int nb_ostreams, const AVPacket *pkt)
static void print_sdp (OutputFile *output_files, int n)
static int init_input_stream (int ist_index, OutputStream *output_streams, int nb_output_streams, char *error, int error_len)
static int transcode_init (OutputFile *output_files, int nb_output_files, InputFile *input_files, int nb_input_files)
static int transcode (OutputFile *output_files, int nb_output_files, InputFile *input_files, int nb_input_files)
static int opt_frame_crop (const char *opt, const char *arg)
static int opt_pad (const char *opt, const char *arg)
static double parse_frame_aspect_ratio (const char *arg)
static int opt_video_channel (const char *opt, const char *arg)
static int opt_video_standard (const char *opt, const char *arg)
static int opt_audio_codec (OptionsContext *o, const char *opt, const char *arg)
static int opt_video_codec (OptionsContext *o, const char *opt, const char *arg)
static int opt_subtitle_codec (OptionsContext *o, const char *opt, const char *arg)
static int opt_data_codec (OptionsContext *o, const char *opt, const char *arg)
static int opt_map (OptionsContext *o, const char *opt, const char *arg)
static int opt_attach (OptionsContext *o, const char *opt, const char *arg)
static int opt_map_channel (OptionsContext *o, const char *opt, const char *arg)
static void parse_meta_type (char *arg, char *type, int *index, const char **stream_spec)
 Parse a metadata specifier in arg.
static int copy_metadata (char *outspec, char *inspec, AVFormatContext *oc, AVFormatContext *ic, OptionsContext *o)
static int opt_recording_timestamp (OptionsContext *o, const char *opt, const char *arg)
static AVCodecfind_codec_or_die (const char *name, enum AVMediaType type, int encoder)
static AVCodecchoose_decoder (OptionsContext *o, AVFormatContext *s, AVStream *st)
static void add_input_streams (OptionsContext *o, AVFormatContext *ic)
 Add all the streams from the given input file to the global list of input streams.
static void assert_file_overwrite (const char *filename)
static void dump_attachment (AVStream *st, const char *filename)
static int opt_input_file (OptionsContext *o, const char *opt, const char *filename)
static void parse_forced_key_frames (char *kf, OutputStream *ost)
static uint8_t * get_line (AVIOContext *s)
static int get_preset_file_2 (const char *preset_name, const char *codec_name, AVIOContext **s)
static void choose_encoder (OptionsContext *o, AVFormatContext *s, OutputStream *ost)
static OutputStreamnew_output_stream (OptionsContext *o, AVFormatContext *oc, enum AVMediaType type)
static void parse_matrix_coeffs (uint16_t *dest, const char *str)
static OutputStreamnew_video_stream (OptionsContext *o, AVFormatContext *oc)
static OutputStreamnew_audio_stream (OptionsContext *o, AVFormatContext *oc)
static OutputStreamnew_data_stream (OptionsContext *o, AVFormatContext *oc)
static OutputStreamnew_attachment_stream (OptionsContext *o, AVFormatContext *oc)
static OutputStreamnew_subtitle_stream (OptionsContext *o, AVFormatContext *oc)
static int opt_streamid (OptionsContext *o, const char *opt, const char *arg)
static int copy_chapters (InputFile *ifile, OutputFile *ofile, int copy_metadata)
static int read_ffserver_streams (OptionsContext *o, AVFormatContext *s, const char *filename)
static void opt_output_file (void *optctx, const char *filename)
static int opt_pass (const char *opt, const char *arg)
static int64_t getutime (void)
static int64_t getmaxrss (void)
static int opt_audio_qscale (OptionsContext *o, const char *opt, const char *arg)
static void show_usage (void)
static int opt_help (const char *opt, const char *arg)
static int opt_target (OptionsContext *o, const char *opt, const char *arg)
static int opt_vstats_file (const char *opt, const char *arg)
static int opt_vstats (const char *opt, const char *arg)
static int opt_video_frames (OptionsContext *o, const char *opt, const char *arg)
static int opt_audio_frames (OptionsContext *o, const char *opt, const char *arg)
static int opt_data_frames (OptionsContext *o, const char *opt, const char *arg)
static int opt_preset (OptionsContext *o, const char *opt, const char *arg)
static void log_callback_null (void *ptr, int level, const char *fmt, va_list vl)
static int opt_passlogfile (const char *opt, const char *arg)
static int opt_old2new (OptionsContext *o, const char *opt, const char *arg)
static int opt_bitrate (OptionsContext *o, const char *opt, const char *arg)
static int opt_qscale (OptionsContext *o, const char *opt, const char *arg)
static int opt_video_filters (OptionsContext *o, const char *opt, const char *arg)
static int opt_vsync (const char *opt, const char *arg)
int main (int argc, char **argv)

Variables

const char program_name [] = "ffmpeg"
 program name, defined by the program for show_version().
const int program_birth_year = 2000
 program birth year, defined by the program for show_banner()
static const OptionDef options []
static int frame_bits_per_raw_sample = 0
static int video_discard = 0
static int same_quant = 0
static int do_deinterlace = 0
static int intra_dc_precision = 8
static int loop_input = 0
static int loop_output = AVFMT_NOOUTPUTLOOP
static int qp_hist = 0
static int intra_only = 0
static const char * video_codec_name = NULL
static const char * audio_codec_name = NULL
static const char * subtitle_codec_name = NULL
static int file_overwrite = 0
static int no_file_overwrite = 0
static int do_benchmark = 0
static int do_hex_dump = 0
static int do_pkt_dump = 0
static int do_psnr = 0
static int do_pass = 0
static const char * pass_logfilename_prefix
static int video_sync_method = VSYNC_AUTO
static int audio_sync_method = 0
static float audio_drift_threshold = 0.1
static int copy_ts = 0
static int copy_tb = -1
static int opt_shortest = 0
static char * vstats_filename
static FILE * vstats_file
static int audio_volume = 256
static int exit_on_error = 0
static int using_stdin = 0
static int run_as_daemon = 0
static volatile int received_nb_signals = 0
static int64_t video_size = 0
static int64_t audio_size = 0
static int64_t extra_size = 0
static int nb_frames_dup = 0
static int nb_frames_drop = 0
static int input_sync
static float dts_delta_threshold = 10
static int print_stats = 1
static uint8_t * audio_buf
static unsigned int allocated_audio_buf_size
static uint8_t * input_tmp = NULL
static InputStreaminput_streams = NULL
static int nb_input_streams = 0
static InputFileinput_files = NULL
static int nb_input_files = 0
static OutputStreamoutput_streams = NULL
static int nb_output_streams = 0
static OutputFileoutput_files = NULL
static int nb_output_files = 0
static volatile int received_sigterm = 0
static const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL }
static int bit_buffer_size = 1024 * 256
static uint8_t * bit_buffer = NULL


Detailed Description

multimedia converter based on the FFmpeg libraries

Definition in file ffmpeg.c.


Define Documentation

#define DEFAULT_PASS_LOGFILENAME_PREFIX   "ffmpeg2pass"

Definition at line 183 of file ffmpeg.c.

Referenced by transcode_init().

#define MATCH_PER_STREAM_OPT ( name,
type,
outvar,
fmtctx,
st   ) 

Value:

{\
    int i, ret;\
    for (i = 0; i < o->nb_ ## name; i++) {\
        char *spec = o->name[i].specifier;\
        if ((ret = check_stream_specifier(fmtctx, st, spec)) > 0)\
            outvar = o->name[i].u.type;\
        else if (ret < 0)\
            exit_program(1);\
    }\
}

Definition at line 419 of file ffmpeg.c.

Referenced by add_input_streams(), choose_decoder(), choose_encoder(), new_audio_stream(), new_output_stream(), and new_video_stream().

#define MAX_STREAMS   1024

Definition at line 129 of file ffmpeg.c.

Referenced by opt_streamid().

#define METADATA_CHECK_INDEX ( index,
nb_elems,
desc   ) 

Value:

if ((index) < 0 || (index) >= (nb_elems)) {\
        av_log(NULL, AV_LOG_FATAL, "Invalid %s index %d while processing metadata maps.\n",\
                (desc), (index));\
        exit_program(1);\
    }

#define NEW_STREAM ( type,
index   ) 

Value:

if (index >= 0) {\
            ost = new_ ## type ## _stream(o, oc);\
            ost->source_index = index;\
            ost->sync_ist     = &input_streams[index];\
            input_streams[index].discard = 0;\
        }

Referenced by opt_output_file().

#define OFFSET (  )     offsetof(OptionsContext, x)

Definition at line 4954 of file ffmpeg.c.

#define SET_DICT ( type,
meta,
context,
index   ) 

Value:

switch (type) {\
        case 'g':\
            meta = &context->metadata;\
            break;\
        case 'c':\
            METADATA_CHECK_INDEX(index, context->nb_chapters, "chapter")\
            meta = &context->chapters[index]->metadata;\
            break;\
        case 'p':\
            METADATA_CHECK_INDEX(index, context->nb_programs, "program")\
            meta = &context->programs[index]->metadata;\
            break;\
        }\

Referenced by copy_metadata().

#define VSYNC_AUTO   -1

Definition at line 96 of file ffmpeg.c.

Referenced by do_video_out(), and opt_vsync().

#define VSYNC_CFR   1

Definition at line 98 of file ffmpeg.c.

Referenced by opt_vsync().

#define VSYNC_PASSTHROUGH   0

Definition at line 97 of file ffmpeg.c.

Referenced by do_video_out(), and opt_vsync().

#define VSYNC_VFR   2

Definition at line 99 of file ffmpeg.c.

Referenced by do_video_out(), and opt_vsync().


Function Documentation

static void add_input_streams ( OptionsContext o,
AVFormatContext ic 
) [static]

Add all the streams from the given input file to the global list of input streams.

Definition at line 3516 of file ffmpeg.c.

Referenced by opt_input_file().

static int alloc_buffer ( AVCodecContext s,
InputStream ist,
FrameBuffer **  pbuf 
) [static]

static void assert_avoptions ( AVDictionary m  )  [static]

Definition at line 881 of file ffmpeg.c.

Referenced by init_input_stream(), opt_input_file(), and transcode_init().

static void assert_codec_experimental ( AVCodecContext c,
int  encoder 
) [static]

Definition at line 890 of file ffmpeg.c.

Referenced by init_input_stream(), and transcode_init().

static void assert_file_overwrite ( const char *  filename  )  [static]

Definition at line 3584 of file ffmpeg.c.

Referenced by dump_attachment(), and opt_output_file().

static int check_output_constraints ( InputStream ist,
OutputStream ost 
) [static]

Definition at line 1859 of file ffmpeg.c.

Referenced by output_packet(), transcode_audio(), transcode_subtitles(), and transcode_video().

static AVCodec* choose_decoder ( OptionsContext o,
AVFormatContext s,
AVStream st 
) [static]

Definition at line 3499 of file ffmpeg.c.

Referenced by add_input_streams(), and opt_input_file().

static void choose_encoder ( OptionsContext o,
AVFormatContext s,
OutputStream ost 
) [static]

Definition at line 3840 of file ffmpeg.c.

Referenced by new_output_stream().

static void choose_pixel_fmt ( AVStream st,
AVCodec codec 
) [static]

Definition at line 949 of file ffmpeg.c.

Referenced by read_ffserver_streams(), and transcode_init().

static void choose_sample_fmt ( AVStream st,
AVCodec codec 
) [static]

Definition at line 907 of file ffmpeg.c.

Referenced by read_ffserver_streams(), and transcode_init().

static void choose_sample_rate ( AVStream st,
AVCodec codec 
) [static]

Definition at line 929 of file ffmpeg.c.

Referenced by transcode_init().

static int codec_get_buffer ( AVCodecContext s,
AVFrame frame 
) [static]

Definition at line 543 of file ffmpeg.c.

Referenced by init_input_stream().

static void codec_release_buffer ( AVCodecContext s,
AVFrame frame 
) [static]

Definition at line 581 of file ffmpeg.c.

Referenced by init_input_stream().

static int copy_chapters ( InputFile ifile,
OutputFile ofile,
int  copy_metadata 
) [static]

Definition at line 4204 of file ffmpeg.c.

Referenced by opt_output_file().

static int copy_metadata ( char *  outspec,
char *  inspec,
AVFormatContext oc,
AVFormatContext ic,
OptionsContext o 
) [static]

Definition at line 3394 of file ffmpeg.c.

Referenced by opt_output_file().

static int decode_interrupt_cb ( void *  ctx  )  [static]

Definition at line 807 of file ffmpeg.c.

Referenced by read_thread().

static void do_audio_out ( AVFormatContext s,
OutputStream ost,
InputStream ist,
AVFrame decoded_frame 
) [static]

Definition at line 1105 of file ffmpeg.c.

Referenced by transcode_audio().

static void do_streamcopy ( InputStream ist,
OutputStream ost,
const AVPacket pkt 
) [static]

Definition at line 1880 of file ffmpeg.c.

Referenced by output_packet().

static void do_subtitle_out ( AVFormatContext s,
OutputStream ost,
InputStream ist,
AVSubtitle sub,
int64_t  pts 
) [static]

Definition at line 1320 of file ffmpeg.c.

Referenced by transcode_subtitles().

static void do_video_out ( AVFormatContext s,
OutputStream ost,
InputStream ist,
AVFrame in_picture,
int *  frame_size,
float  quality 
) [static]

Definition at line 1446 of file ffmpeg.c.

Referenced by transcode_video().

static void do_video_resample ( OutputStream ost,
InputStream ist,
AVFrame in_picture,
AVFrame **  out_picture 
) [static]

Definition at line 1386 of file ffmpeg.c.

Referenced by do_video_out().

static void do_video_stats ( AVFormatContext os,
OutputStream ost,
int  frame_size 
) [static]

Definition at line 1600 of file ffmpeg.c.

Referenced by transcode_video().

static void dump_attachment ( AVStream st,
const char *  filename 
) [static]

Definition at line 3609 of file ffmpeg.c.

Referenced by opt_input_file().

static int encode_audio_frame ( AVFormatContext s,
OutputStream ost,
const uint8_t *  buf,
int  buf_size 
) [static]

Definition at line 1043 of file ffmpeg.c.

Referenced by flush_encoders().

void av_noreturn exit_program ( int  ret  ) 

Do all the necessary cleanup and abort.

This function is implemented in the avtools, not cmdutils.

Definition at line 814 of file ffmpeg.c.

static void filter_release_buffer ( AVFilterBuffer fb  )  [static]

Definition at line 596 of file ffmpeg.c.

Referenced by transcode_video().

static AVCodec* find_codec_or_die ( const char *  name,
enum AVMediaType  type,
int  encoder 
) [static]

Definition at line 3480 of file ffmpeg.c.

Referenced by choose_decoder(), choose_encoder(), and opt_input_file().

static void flush_encoders ( OutputStream ost_table,
int  nb_ostreams 
) [static]

Definition at line 1772 of file ffmpeg.c.

Referenced by transcode().

static void free_buffer_pool ( InputStream ist  )  [static]

Definition at line 522 of file ffmpeg.c.

Referenced by exit_program().

static void generate_silence ( uint8_t *  buf,
enum AVSampleFormat  sample_fmt,
size_t  size 
) [static]

Definition at line 1035 of file ffmpeg.c.

Referenced by do_audio_out(), and flush_encoders().

static uint8_t* get_line ( AVIOContext s  )  [static]

Definition at line 3795 of file ffmpeg.c.

Referenced by new_output_stream(), read_chapter(), and read_header().

static int get_preset_file_2 ( const char *  preset_name,
const char *  codec_name,
AVIOContext **  s 
) [static]

Definition at line 3814 of file ffmpeg.c.

Referenced by new_output_stream().

static double get_sync_ipts ( const OutputStream ost  )  [static]

Definition at line 980 of file ffmpeg.c.

Referenced by do_audio_out(), and do_video_out().

static int64_t getmaxrss ( void   )  [static]

Definition at line 4612 of file ffmpeg.c.

Referenced by main().

static int64_t getutime ( void   )  [static]

Definition at line 4594 of file ffmpeg.c.

Referenced by main().

static int init_input_stream ( int  ist_index,
OutputStream output_streams,
int  nb_output_streams,
char *  error,
int  error_len 
) [static]

Definition at line 2348 of file ffmpeg.c.

Referenced by transcode_init().

static void log_callback_null ( void *  ptr,
int  level,
const char *  fmt,
va_list  vl 
) [static]

Definition at line 4893 of file ffmpeg.c.

Referenced by main().

int main ( int  argc,
char **  argv 
)

Definition at line 5096 of file ffmpeg.c.

static OutputStream* new_attachment_stream ( OptionsContext o,
AVFormatContext oc 
) [static]

Definition at line 4160 of file ffmpeg.c.

Referenced by opt_output_file().

static OutputStream* new_audio_stream ( OptionsContext o,
AVFormatContext oc 
) [static]

Definition at line 4098 of file ffmpeg.c.

Referenced by opt_output_file().

static OutputStream* new_data_stream ( OptionsContext o,
AVFormatContext oc 
) [static]

Definition at line 4147 of file ffmpeg.c.

Referenced by opt_output_file().

static OutputStream* new_output_stream ( OptionsContext o,
AVFormatContext oc,
enum AVMediaType  type 
) [static]

static OutputStream* new_subtitle_stream ( OptionsContext o,
AVFormatContext oc 
) [static]

Definition at line 4167 of file ffmpeg.c.

Referenced by opt_output_file().

static OutputStream* new_video_stream ( OptionsContext o,
AVFormatContext oc 
) [static]

Definition at line 3974 of file ffmpeg.c.

Referenced by opt_output_file().

static int opt_attach ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3293 of file ffmpeg.c.

static int opt_audio_codec ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3187 of file ffmpeg.c.

Referenced by ffserver_opt_preset(), opt_preset(), opt_target(), and parse_ffconfig().

static int opt_audio_frames ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4839 of file ffmpeg.c.

static int opt_audio_qscale ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4630 of file ffmpeg.c.

static int opt_bitrate ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4915 of file ffmpeg.c.

static int opt_data_codec ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3205 of file ffmpeg.c.

Referenced by opt_preset().

static int opt_data_frames ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4844 of file ffmpeg.c.

static int opt_frame_crop ( const char *  opt,
const char *  arg 
) [static]

Definition at line 3139 of file ffmpeg.c.

static int opt_help ( const char *  opt,
const char *  arg 
) [static]

Definition at line 4642 of file ffmpeg.c.

static int opt_input_file ( OptionsContext o,
const char *  opt,
const char *  filename 
) [static]

Definition at line 3641 of file ffmpeg.c.

Referenced by main().

static int opt_map ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3210 of file ffmpeg.c.

static int opt_map_channel ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3301 of file ffmpeg.c.

static int opt_old2new ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4907 of file ffmpeg.c.

static void opt_output_file ( void *  optctx,
const char *  filename 
) [static]

Definition at line 4283 of file ffmpeg.c.

Referenced by main().

static int opt_pad ( const char *  opt,
const char *  arg 
) [static]

Definition at line 3145 of file ffmpeg.c.

static int opt_pass ( const char *  opt,
const char *  arg 
) [static]

Definition at line 4588 of file ffmpeg.c.

static int opt_passlogfile ( const char *  opt,
const char *  arg 
) [static]

Definition at line 4897 of file ffmpeg.c.

static int opt_preset ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4849 of file ffmpeg.c.

static int opt_qscale ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4924 of file ffmpeg.c.

static int opt_recording_timestamp ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3467 of file ffmpeg.c.

static int opt_streamid ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4183 of file ffmpeg.c.

static int opt_subtitle_codec ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3199 of file ffmpeg.c.

Referenced by opt_preset().

static int opt_target ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4678 of file ffmpeg.c.

static int opt_video_channel ( const char *  opt,
const char *  arg 
) [static]

Definition at line 3175 of file ffmpeg.c.

static int opt_video_codec ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 3193 of file ffmpeg.c.

Referenced by ffserver_opt_preset(), opt_preset(), opt_target(), and parse_ffconfig().

static int opt_video_filters ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4938 of file ffmpeg.c.

static int opt_video_frames ( OptionsContext o,
const char *  opt,
const char *  arg 
) [static]

Definition at line 4834 of file ffmpeg.c.

static int opt_video_standard ( const char *  opt,
const char *  arg 
) [static]

Definition at line 3181 of file ffmpeg.c.

static int opt_vstats ( const char *  opt,
const char *  arg 
) [static]

Definition at line 4823 of file ffmpeg.c.

static int opt_vstats_file ( const char *  opt,
const char *  arg 
) [static]

Definition at line 4816 of file ffmpeg.c.

Referenced by opt_vstats().

static int opt_vsync ( const char *  opt,
const char *  arg 
) [static]

Definition at line 4943 of file ffmpeg.c.

static int output_packet ( InputStream ist,
OutputStream ost_table,
int  nb_ostreams,
const AVPacket pkt 
) [static]

Definition at line 2222 of file ffmpeg.c.

Referenced by mpeg_mux_end(), mpeg_mux_write_packet(), and transcode().

static void parse_forced_key_frames ( char *  kf,
OutputStream ost 
) [static]

Definition at line 3775 of file ffmpeg.c.

Referenced by new_video_stream().

static double parse_frame_aspect_ratio ( const char *  arg  )  [static]

Definition at line 3151 of file ffmpeg.c.

Referenced by new_video_stream().

static void parse_matrix_coeffs ( uint16_t *  dest,
const char *  str 
) [static]

Definition at line 3957 of file ffmpeg.c.

Referenced by new_video_stream().

static void parse_meta_type ( char *  arg,
char *  type,
int *  index,
const char **  stream_spec 
) [static]

Parse a metadata specifier in arg.

Parameters:
type metadata type is written here -- g(lobal)/s(tream)/c(hapter)/p(rogram)
index for type c/p, chapter/program index is written here
stream_spec for type s, the stream specifier is written here

Definition at line 3367 of file ffmpeg.c.

Referenced by copy_metadata(), and opt_output_file().

static void pre_process_video_frame ( InputStream ist,
AVPicture picture,
void **  bufp 
) [static]

Definition at line 1281 of file ffmpeg.c.

Referenced by transcode_video().

static void print_report ( OutputFile output_files,
OutputStream ost_table,
int  nb_ostreams,
int  is_last_report,
int64_t  timer_start,
int64_t  cur_time 
) [static]

Definition at line 1637 of file ffmpeg.c.

Referenced by transcode().

static void print_sdp ( OutputFile output_files,
int  n 
) [static]

Definition at line 2331 of file ffmpeg.c.

Referenced by transcode_init().

static double psnr ( double  d  )  [static]

Definition at line 1595 of file ffmpeg.c.

Referenced by do_video_stats(), main(), and print_report().

static void rate_emu_sleep ( InputStream ist  )  [static]

Definition at line 1940 of file ffmpeg.c.

Referenced by output_packet(), transcode_audio(), transcode_subtitles(), and transcode_video().

static int read_ffserver_streams ( OptionsContext o,
AVFormatContext s,
const char *  filename 
) [static]

Definition at line 4244 of file ffmpeg.c.

Referenced by opt_output_file().

static int read_key ( void   )  [static]

Definition at line 754 of file ffmpeg.c.

Referenced by transcode().

static void reset_options ( OptionsContext o,
int  is_input 
) [static]

Definition at line 431 of file ffmpeg.c.

Referenced by main(), opt_input_file(), and opt_output_file().

static void show_usage ( void   )  [static]

Definition at line 4635 of file ffmpeg.c.

Referenced by main(), and opt_help().

static void sigterm_handler ( int  sig  )  [static]

Definition at line 710 of file ffmpeg.c.

Referenced by main(), and term_init().

static void term_exit ( void   )  [static]

Definition at line 699 of file ffmpeg.c.

Referenced by assert_file_overwrite(), sigterm_handler(), term_init(), and transcode().

static void term_init ( void   )  [static]

Definition at line 719 of file ffmpeg.c.

Referenced by assert_file_overwrite(), and main().

static int transcode ( OutputFile output_files,
int  nb_output_files,
InputFile input_files,
int  nb_input_files 
) [static]

Definition at line 2813 of file ffmpeg.c.

Referenced by main().

static int transcode_audio ( InputStream ist,
AVPacket pkt,
int *  got_output 
) [static]

Definition at line 1950 of file ffmpeg.c.

Referenced by output_packet().

static int transcode_init ( OutputFile output_files,
int  nb_output_files,
InputFile input_files,
int  nb_input_files 
) [static]

Definition at line 2385 of file ffmpeg.c.

Referenced by transcode().

static int transcode_subtitles ( InputStream ist,
AVPacket pkt,
int *  got_output 
) [static]

Definition at line 2196 of file ffmpeg.c.

Referenced by output_packet().

static int transcode_video ( InputStream ist,
AVPacket pkt,
int *  got_output,
int64_t *  pkt_pts,
int64_t *  pkt_dts 
) [static]

Definition at line 2054 of file ffmpeg.c.

Referenced by output_packet().

static void unref_buffer ( InputStream ist,
FrameBuffer buf 
) [static]

Definition at line 533 of file ffmpeg.c.

Referenced by codec_release_buffer(), and filter_release_buffer().

static void write_frame ( AVFormatContext s,
AVPacket pkt,
OutputStream ost 
) [static]


Variable Documentation

unsigned int allocated_audio_buf_size [static]

Definition at line 179 of file ffmpeg.c.

Referenced by do_audio_out(), exit_program(), and flush_encoders().

uint8_t* audio_buf [static]

Definition at line 178 of file ffmpeg.c.

Referenced by do_audio_out(), exit_program(), and flush_encoders().

const char* audio_codec_name = NULL [static]

float audio_drift_threshold = 0.1 [static]

Definition at line 154 of file ffmpeg.c.

Referenced by do_audio_out().

int64_t audio_size = 0 [static]

int audio_sync_method = 0 [static]

Definition at line 153 of file ffmpeg.c.

Referenced by do_audio_out(), and transcode_init().

int audio_volume = 256 [static]

Definition at line 161 of file ffmpeg.c.

Referenced by transcode_audio(), and transcode_init().

uint8_t* bit_buffer = NULL [static]

Definition at line 1384 of file ffmpeg.c.

Referenced by transcode(), and transcode_init().

int bit_buffer_size = 1024 * 256 [static]

Definition at line 1383 of file ffmpeg.c.

Referenced by transcode_init().

int copy_tb = -1 [static]

Definition at line 156 of file ffmpeg.c.

Referenced by transcode_init().

int copy_ts = 0 [static]

Definition at line 155 of file ffmpeg.c.

Referenced by opt_input_file(), and transcode().

int do_benchmark = 0 [static]

Definition at line 146 of file ffmpeg.c.

Referenced by main().

int do_deinterlace = 0 [static]

Definition at line 134 of file ffmpeg.c.

Referenced by pre_process_video_frame().

int do_hex_dump = 0 [static]

Definition at line 147 of file ffmpeg.c.

Referenced by transcode().

int do_pass = 0 [static]

Definition at line 150 of file ffmpeg.c.

Referenced by new_video_stream(), and opt_pass().

int do_pkt_dump = 0 [static]

Definition at line 148 of file ffmpeg.c.

Referenced by transcode().

int do_psnr = 0 [static]

Definition at line 149 of file ffmpeg.c.

Referenced by new_video_stream().

float dts_delta_threshold = 10 [static]

Definition at line 174 of file ffmpeg.c.

Referenced by transcode().

int exit_on_error = 0 [static]

Definition at line 163 of file ffmpeg.c.

Referenced by do_subtitle_out(), transcode(), and write_frame().

int64_t extra_size = 0 [static]

Definition at line 169 of file ffmpeg.c.

Referenced by ape_read_packet(), asf_write_header1(), print_report(), and transcode_init().

int file_overwrite = 0 [static]

Definition at line 144 of file ffmpeg.c.

Referenced by assert_file_overwrite().

int frame_bits_per_raw_sample = 0 [static]

Definition at line 131 of file ffmpeg.c.

Referenced by new_video_stream(), and transcode_init().

InputFile* input_files = NULL [static]

Definition at line 314 of file ffmpeg.c.

Definition at line 312 of file ffmpeg.c.

int input_sync [static]

Definition at line 172 of file ffmpeg.c.

Referenced by transcode().

uint8_t* input_tmp = NULL [static]

Definition at line 181 of file ffmpeg.c.

Referenced by do_audio_out(), and exit_program().

const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL } [static]

Definition at line 812 of file ffmpeg.c.

int intra_dc_precision = 8 [static]

Definition at line 135 of file ffmpeg.c.

Referenced by new_video_stream().

int intra_only = 0 [static]

Definition at line 139 of file ffmpeg.c.

Referenced by build_frame_code(), and new_video_stream().

int loop_input = 0 [static]

Definition at line 136 of file ffmpeg.c.

Referenced by opt_input_file().

int loop_output = AVFMT_NOOUTPUTLOOP [static]

Definition at line 137 of file ffmpeg.c.

Referenced by opt_output_file().

int nb_frames_drop = 0 [static]

Definition at line 171 of file ffmpeg.c.

Referenced by do_video_out(), and print_report().

int nb_frames_dup = 0 [static]

Definition at line 170 of file ffmpeg.c.

Referenced by do_video_out(), and print_report().

int nb_input_files = 0 [static]

int nb_input_streams = 0 [static]

int nb_output_files = 0 [static]

Definition at line 320 of file ffmpeg.c.

Referenced by exit_program(), main(), new_output_stream(), and opt_output_file().

int nb_output_streams = 0 [static]

int no_file_overwrite = 0 [static]

Definition at line 145 of file ffmpeg.c.

Referenced by assert_file_overwrite().

int opt_shortest = 0 [static]

Definition at line 157 of file ffmpeg.c.

Referenced by transcode().

static const OptionDef options [static]

Definition at line 127 of file ffmpeg.c.

Referenced by pp_get_mode_by_name_and_quality().

Definition at line 319 of file ffmpeg.c.

Definition at line 317 of file ffmpeg.c.

const char* pass_logfilename_prefix [static]

Definition at line 151 of file ffmpeg.c.

Referenced by opt_passlogfile(), and transcode_init().

int print_stats = 1 [static]

Definition at line 176 of file ffmpeg.c.

Referenced by print_report().

const int program_birth_year = 2000

program birth year, defined by the program for show_banner()

Definition at line 102 of file ffmpeg.c.

const char program_name[] = "ffmpeg"

program name, defined by the program for show_version().

Definition at line 101 of file ffmpeg.c.

int qp_hist = 0 [static]

Definition at line 138 of file ffmpeg.c.

Referenced by print_report(), and transcode().

volatile int received_nb_signals = 0 [static]

Definition at line 166 of file ffmpeg.c.

Referenced by decode_interrupt_cb(), sigterm_handler(), and transcode().

volatile int received_sigterm = 0 [static]

Definition at line 708 of file ffmpeg.c.

int run_as_daemon = 0 [static]

Definition at line 165 of file ffmpeg.c.

Referenced by main(), term_init(), and transcode().

int same_quant = 0 [static]

Definition at line 133 of file ffmpeg.c.

Referenced by new_output_stream(), and transcode_video().

const char* subtitle_codec_name = NULL [static]

int using_stdin = 0 [static]

Definition at line 164 of file ffmpeg.c.

Referenced by assert_file_overwrite(), opt_input_file(), and transcode().

const char* video_codec_name = NULL [static]

int video_discard = 0 [static]

Definition at line 132 of file ffmpeg.c.

Referenced by add_input_streams().

int64_t video_size = 0 [static]

int video_sync_method = VSYNC_AUTO [static]

Definition at line 152 of file ffmpeg.c.

Referenced by do_video_out(), opt_vsync(), and transcode_init().

FILE* vstats_file [static]

Definition at line 159 of file ffmpeg.c.

Referenced by do_video_stats(), and exit_program().

char* vstats_filename [static]

Definition at line 158 of file ffmpeg.c.

Referenced by do_video_stats(), exit_program(), opt_vstats_file(), and transcode_video().


Generated on Fri Oct 26 02:46:06 2012 for FFmpeg by  doxygen 1.5.8