avconv.c File Reference
#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 <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  MetadataMap
 select an input file for an output file More...
struct  FrameBuffer
struct  InputStream
struct  InputFile
struct  OutputStream
struct  OutputFile
struct  OptionsContext

Macros

#define VSYNC_AUTO   -1
#define VSYNC_PASSTHROUGH   0
#define VSYNC_CFR   1
#define VSYNC_VFR   2
#define DEFAULT_PASS_LOGFILENAME_PREFIX   "av2pass"
#define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)
#define MAKE_SFMT_PAIR(a, b)   ((a)+AV_SAMPLE_FMT_NB*(b))
#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)

Typedefs

typedef struct StreamMap StreamMap
typedef struct MetadataMap MetadataMap
 select an input file for an output file
typedef struct FrameBuffer FrameBuffer
typedef struct InputStream InputStream
typedef struct InputFile InputFile
typedef struct OutputStream OutputStream
typedef struct OutputFile OutputFile
typedef struct OptionsContext OptionsContext

Functions

static void reset_options (OptionsContext *o)
static int alloc_buffer (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 decode_interrupt_cb (void *ctx)
void 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 update_sample_fmt (AVCodecContext *dec, AVCodec *dec_codec, AVCodecContext *enc)
 Update the requested input sample format based on the output sample format.
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)
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)
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 double parse_frame_aspect_ratio (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 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 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, AVCodecContext *avctx)
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 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 void show_help (void)
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_video_tag (OptionsContext *o, const char *opt, const char *arg)
static int opt_audio_tag (OptionsContext *o, const char *opt, const char *arg)
static int opt_subtitle_tag (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 [] = "avconv"
 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 video_discard = 0
static int same_quant = 0
static int do_deinterlace = 0
static int intra_dc_precision = 8
static int qp_hist = 0
static int file_overwrite = 0
static int do_benchmark = 0
static int do_hex_dump = 0
static int do_pkt_dump = 0
static int do_pass = 0
static char * pass_logfilename_prefix = NULL
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 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 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 volatile int received_nb_signals = 0
static const AVIOInterruptCB int_cb = { decode_interrupt_cb, NULL }
static int bit_buffer_size = 1024 * 256
static uint8_t * bit_buffer = NULL

Macro Definition Documentation

#define DEFAULT_PASS_LOGFILENAME_PREFIX   "av2pass"

Definition at line 146 of file avconv.c.

Referenced by transcode_init().

#define MAKE_SFMT_PAIR (   a,
  b 
)    ((a)+AV_SAMPLE_FMT_NB*(b))
#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 370 of file avconv.c.

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

#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);\
}

Referenced by transcode().

#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 (   x)    offsetof(OptionsContext, x)

Definition at line 4378 of file avconv.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 79 of file avconv.c.

Referenced by do_video_out(), and opt_vsync().

#define VSYNC_CFR   1

Definition at line 81 of file avconv.c.

Referenced by do_video_out(), and opt_vsync().

#define VSYNC_PASSTHROUGH   0

Definition at line 80 of file avconv.c.

Referenced by do_video_out(), and opt_vsync().

#define VSYNC_VFR   2

Definition at line 82 of file avconv.c.

Referenced by do_video_out(), and opt_vsync().


Typedef Documentation

typedef struct FrameBuffer FrameBuffer
typedef struct InputFile InputFile
typedef struct InputStream InputStream
typedef struct MetadataMap MetadataMap

select an input file for an output file

typedef struct OutputFile OutputFile
typedef struct OutputStream OutputStream
typedef struct StreamMap StreamMap

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 3138 of file avconv.c.

Referenced by opt_input_file().

static int alloc_buffer ( InputStream ist,
FrameBuffer **  pbuf 
)
static

Definition at line 420 of file avconv.c.

Referenced by codec_get_buffer().

static void assert_avoptions ( AVDictionary m)
static

Definition at line 731 of file avconv.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 740 of file avconv.c.

Referenced by init_input_stream(), and transcode_init().

static void assert_file_overwrite ( const char *  filename)
static

Definition at line 3191 of file avconv.c.

Referenced by dump_attachment(), and opt_output_file().

static int check_output_constraints ( InputStream ist,
OutputStream ost 
)
static

Definition at line 1726 of file avconv.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 3121 of file avconv.c.

Referenced by add_input_streams(), and opt_input_file().

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

Definition at line 3433 of file avconv.c.

Referenced by new_output_stream().

static void choose_pixel_fmt ( AVStream st,
AVCodec codec 
)
static

Definition at line 836 of file avconv.c.

Referenced by transcode_init().

static void choose_sample_fmt ( AVStream st,
AVCodec codec 
)
static

Definition at line 757 of file avconv.c.

Referenced by transcode_init().

static void choose_sample_rate ( AVStream st,
AVCodec codec 
)
static

Definition at line 816 of file avconv.c.

Referenced by transcode_init().

static int codec_get_buffer ( AVCodecContext s,
AVFrame frame 
)
static

Definition at line 492 of file avconv.c.

Referenced by init_input_stream().

static void codec_release_buffer ( AVCodecContext s,
AVFrame frame 
)
static

Definition at line 526 of file avconv.c.

Referenced by init_input_stream().

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

Definition at line 3770 of file avconv.c.

Referenced by opt_output_file().

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

Definition at line 3029 of file avconv.c.

Referenced by opt_output_file().

static int decode_interrupt_cb ( void ctx)
static

Definition at line 655 of file avconv.c.

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

Definition at line 986 of file avconv.c.

Referenced by transcode_audio().

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

Definition at line 1747 of file avconv.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 1210 of file avconv.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 1329 of file avconv.c.

Referenced by transcode_video().

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

Definition at line 1277 of file avconv.c.

Referenced by do_video_out().

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

Definition at line 1479 of file avconv.c.

Referenced by transcode_video().

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

Definition at line 3213 of file avconv.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 928 of file avconv.c.

Referenced by do_audio_out(), and flush_encoders().

static void filter_release_buffer ( AVFilterBuffer fb)
static

Definition at line 538 of file avconv.c.

Referenced by transcode_video().

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

Definition at line 3102 of file avconv.c.

Referenced by choose_decoder(), and choose_encoder().

static void flush_encoders ( OutputStream ost_table,
int  nb_ostreams 
)
static

Definition at line 1639 of file avconv.c.

Referenced by transcode().

static void free_buffer_pool ( InputStream ist)
static

Definition at line 471 of file avconv.c.

Referenced by exit_program().

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

Definition at line 920 of file avconv.c.

Referenced by do_audio_out(), and flush_encoders().

static uint8_t* get_line ( AVIOContext s)
static

Definition at line 3388 of file avconv.c.

Referenced by new_output_stream().

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

Definition at line 3407 of file avconv.c.

Referenced by new_output_stream().

static double get_sync_ipts ( const OutputStream ost)
static

Definition at line 865 of file avconv.c.

Referenced by do_audio_out(), and do_video_out().

static int64_t getmaxrss ( void  )
static

Definition at line 4114 of file avconv.c.

Referenced by main().

static int64_t getutime ( void  )
static

Definition at line 4096 of file avconv.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 2184 of file avconv.c.

Referenced by transcode_init().

int main ( int  argc,
char **  argv 
)
static OutputStream* new_attachment_stream ( OptionsContext o,
AVFormatContext oc 
)
static

Definition at line 3726 of file avconv.c.

Referenced by opt_output_file().

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

Definition at line 3683 of file avconv.c.

Referenced by opt_output_file().

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

Definition at line 3713 of file avconv.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 3733 of file avconv.c.

Referenced by opt_output_file().

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

Definition at line 3567 of file avconv.c.

Referenced by opt_output_file().

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

Definition at line 2988 of file avconv.c.

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

Definition at line 2885 of file avconv.c.

Referenced by opt_target().

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

Definition at line 4337 of file avconv.c.

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

Definition at line 4132 of file avconv.c.

static int opt_audio_tag ( OptionsContext o,
const char *  opt,
const char *  arg 
)
static

Definition at line 4352 of file avconv.c.

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

Definition at line 2900 of file avconv.c.

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

Definition at line 4342 of file avconv.c.

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

Definition at line 3245 of file avconv.c.

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

Definition at line 2905 of file avconv.c.

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

Definition at line 3810 of file avconv.c.

Referenced by main().

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

Definition at line 4090 of file avconv.c.

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

Definition at line 3749 of file avconv.c.

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

Definition at line 2895 of file avconv.c.

static int opt_subtitle_tag ( OptionsContext o,
const char *  opt,
const char *  arg 
)
static

Definition at line 4357 of file avconv.c.

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

Definition at line 4178 of file avconv.c.

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

Definition at line 2890 of file avconv.c.

Referenced by opt_target().

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

Definition at line 4362 of file avconv.c.

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

Definition at line 4332 of file avconv.c.

static int opt_video_tag ( OptionsContext o,
const char *  opt,
const char *  arg 
)
static

Definition at line 4347 of file avconv.c.

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

Definition at line 4321 of file avconv.c.

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

Definition at line 4314 of file avconv.c.

Referenced by opt_vstats().

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

Definition at line 4367 of file avconv.c.

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

Definition at line 2070 of file avconv.c.

Referenced by transcode().

static void parse_forced_key_frames ( char *  kf,
OutputStream ost,
AVCodecContext avctx 
)
static

Definition at line 3365 of file avconv.c.

Referenced by new_video_stream().

static double parse_frame_aspect_ratio ( const char *  arg)
static

Definition at line 2861 of file avconv.c.

Referenced by new_video_stream().

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

Definition at line 3550 of file avconv.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:
typemetadata type is written here – g(lobal)/s(tream)/c(hapter)/p(rogram)
indexfor type c/p, chapter/program index is written here
stream_specfor type s, the stream specifier is written here

Definition at line 3002 of file avconv.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 1171 of file avconv.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 
)
static

Definition at line 1516 of file avconv.c.

Referenced by transcode().

static void print_sdp ( OutputFile output_files,
int  n 
)
static

Definition at line 2167 of file avconv.c.

Referenced by transcode_init().

static double psnr ( double  d)
static

Definition at line 1474 of file avconv.c.

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

static void rate_emu_sleep ( InputStream ist)
static

Definition at line 1799 of file avconv.c.

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

static void reset_options ( OptionsContext o)
static

Definition at line 382 of file avconv.c.

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

static void show_help ( void  )
static

Definition at line 4144 of file avconv.c.

static void show_usage ( void  )
static

Definition at line 4137 of file avconv.c.

Referenced by main(), and show_help().

static void sigterm_handler ( int  sig)
static

Definition at line 639 of file avconv.c.

Referenced by term_init().

static void term_exit ( void  )
static

Definition at line 630 of file avconv.c.

Referenced by sigterm_handler(), and transcode().

static void term_init ( void  )
static

Definition at line 646 of file avconv.c.

Referenced by transcode().

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

Definition at line 2628 of file avconv.c.

Referenced by main().

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

Definition at line 1809 of file avconv.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 2232 of file avconv.c.

Referenced by transcode().

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

Definition at line 2044 of file avconv.c.

Referenced by output_packet().

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

Definition at line 1913 of file avconv.c.

Referenced by output_packet().

static void unref_buffer ( InputStream ist,
FrameBuffer buf 
)
static

Definition at line 482 of file avconv.c.

Referenced by codec_release_buffer(), and filter_release_buffer().

static void update_sample_fmt ( AVCodecContext dec,
AVCodec dec_codec,
AVCodecContext enc 
)
static

Update the requested input sample format based on the output sample format.

This is currently only used to request float output from decoders which support multiple sample formats, one of which is AV_SAMPLE_FMT_FLT. Ideally this will be removed in the future when decoders do not do format conversion and only output in their native format.

Definition at line 783 of file avconv.c.

Referenced by init_input_stream().

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

Variable Documentation

unsigned int allocated_audio_buf_size
static

Definition at line 144 of file avconv.c.

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

uint8_t* audio_buf
static

Definition at line 143 of file avconv.c.

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

float audio_drift_threshold = 0.1
static

Definition at line 121 of file avconv.c.

Referenced by do_audio_out().

int audio_sync_method = 0
static

Definition at line 120 of file avconv.c.

Referenced by do_audio_out(), and transcode_init().

int audio_volume = 256
static

Definition at line 128 of file avconv.c.

Referenced by transcode_audio(), and transcode_init().

uint8_t* bit_buffer = NULL
static

Definition at line 1274 of file avconv.c.

Referenced by do_video_out(), flush_encoders(), transcode(), and transcode_init().

int bit_buffer_size = 1024 * 256
static

Definition at line 1273 of file avconv.c.

Referenced by transcode_init().

int copy_tb = 1
static

Definition at line 123 of file avconv.c.

Referenced by transcode_init().

int copy_ts = 0
static

Definition at line 122 of file avconv.c.

Referenced by opt_input_file(), and transcode().

int do_benchmark = 0
static

Definition at line 114 of file avconv.c.

Referenced by main().

int do_deinterlace = 0
static

Definition at line 109 of file avconv.c.

Referenced by pre_process_video_frame().

int do_hex_dump = 0
static

Definition at line 115 of file avconv.c.

Referenced by transcode().

int do_pass = 0
static

Definition at line 117 of file avconv.c.

Referenced by new_video_stream(), and opt_pass().

int do_pkt_dump = 0
static

Definition at line 116 of file avconv.c.

Referenced by transcode().

float dts_delta_threshold = 10
static

Definition at line 139 of file avconv.c.

Referenced by transcode().

int exit_on_error = 0
static

Definition at line 130 of file avconv.c.

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

int64_t extra_size = 0
static

Definition at line 134 of file avconv.c.

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

int file_overwrite = 0
static

Definition at line 113 of file avconv.c.

Referenced by assert_file_overwrite().

InputFile* input_files = NULL
static

Definition at line 269 of file avconv.c.

InputStream* input_streams = NULL
static

Definition at line 267 of file avconv.c.

Referenced by check_output_constraints().

int input_sync
static

Definition at line 137 of file avconv.c.

Referenced by transcode().

int intra_dc_precision = 8
static

Definition at line 110 of file avconv.c.

Referenced by new_video_stream().

int nb_frames_drop = 0
static

Definition at line 136 of file avconv.c.

Referenced by do_video_out(), and print_report().

int nb_frames_dup = 0
static

Definition at line 135 of file avconv.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
int opt_shortest = 0
static

Definition at line 124 of file avconv.c.

Referenced by transcode().

static const OptionDef options
static

Definition at line 105 of file avconv.c.

Referenced by pp_get_mode_by_name_and_quality(), and reset_options().

OutputFile* output_files = NULL
static

Definition at line 274 of file avconv.c.

OutputStream* output_streams = NULL
static

Definition at line 272 of file avconv.c.

char* pass_logfilename_prefix = NULL
static

Definition at line 118 of file avconv.c.

Referenced by transcode_init().

int print_stats = 1
static

Definition at line 141 of file avconv.c.

Referenced by print_report().

const int program_birth_year = 2000

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

Definition at line 85 of file avconv.c.

Referenced by show_banner().

const char program_name[] = "avconv"

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

Definition at line 84 of file avconv.c.

Referenced by compute_status(), main(), show_banner(), show_license(), show_usage(), and show_version().

int qp_hist = 0
static

Definition at line 111 of file avconv.c.

Referenced by print_report().

volatile int received_nb_signals = 0
static

Definition at line 636 of file avconv.c.

volatile int received_sigterm = 0
static

Definition at line 635 of file avconv.c.

Referenced by transcode().

int same_quant = 0
static

Definition at line 108 of file avconv.c.

Referenced by new_output_stream(), and transcode_video().

int using_stdin = 0
static

Definition at line 131 of file avconv.c.

Referenced by assert_file_overwrite(), and opt_input_file().

int video_discard = 0
static

Definition at line 107 of file avconv.c.

Referenced by add_input_streams().

int64_t video_size = 0
static
int video_sync_method = VSYNC_AUTO
static

Definition at line 119 of file avconv.c.

Referenced by do_video_out(), and opt_vsync().

FILE* vstats_file
static

Definition at line 126 of file avconv.c.

Referenced by do_video_stats(), and exit_program().

char* vstats_filename
static

Definition at line 125 of file avconv.c.

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