ffprobe.c File Reference

simple media prober based on the FFmpeg libraries More...

#include "config.h"
#include "version.h"
#include <string.h>
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/dict.h"
#include "libavutil/libm.h"
#include "libavutil/timecode.h"
#include "libavdevice/avdevice.h"
#include "libswscale/swscale.h"
#include "libswresample/swresample.h"
#include "libpostproc/postprocess.h"
#include "cmdutils.h"
#include "cmdutils_common_opts.h"

Go to the source code of this file.

Data Structures

struct  section
struct  unit_value
struct  Writer
struct  WriterContext
struct  DefaultContext
struct  CompactContext
struct  FlatContext
struct  INIContext
struct  JSONContext
struct  XMLContext

Defines

#define SECTION_FLAG_IS_WRAPPER   1
 the section only contains other sections, but has no data at its own level
#define SECTION_FLAG_IS_ARRAY   2
 the section contains an array of elements of the same type
#define SECTION_ENTRY(id, name, flags)   [SECTION_ID_##id] = { SECTION_ID_##id, name, flags }
#define WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS   1
#define WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER   2
#define SECTION_MAX_NB_LEVELS   10
#define MAX_REGISTERED_WRITERS_NB   64
#define DEFINE_WRITER_CLASS(name)
#define OFFSET(x)   offsetof(DefaultContext, x)
#define OFFSET(x)   offsetof(CompactContext, x)
#define OFFSET(x)   offsetof(CompactContext, x)
#define OFFSET(x)   offsetof(FlatContext, x)
#define OFFSET(x)   offsetof(INIContext, x)
#define OFFSET(x)   offsetof(JSONContext, x)
#define JSON_INDENT()   printf("%*c", json->indent_level * 4, ' ')
#define OFFSET(x)   offsetof(XMLContext, x)
#define CHECK_COMPLIANCE(opt, opt_name)
#define XML_INDENT()   printf("%*c", xml->indent_level * 4, ' ')
#define print_fmt(k, f,...)
#define print_int(k, v)   writer_print_integer(w, k, v)
#define print_q(k, v, s)   writer_print_rational(w, k, v, s)
#define print_str(k, v)   writer_print_string(w, k, v, 0)
#define print_str_opt(k, v)   writer_print_string(w, k, v, 1)
#define print_time(k, v, tb)   writer_print_time(w, k, v, tb, 0)
#define print_ts(k, v)   writer_print_ts(w, k, v, 0)
#define print_duration_time(k, v, tb)   writer_print_time(w, k, v, tb, 1)
#define print_duration_ts(k, v)   writer_print_ts(w, k, v, 1)
#define print_val(k, v, u)
#define print_section_header(s)   writer_print_section_header(w, s)
#define print_section_footer(s)   writer_print_section_footer(w, s)
#define SHOW_LIB_VERSION(libname, LIBNAME)

Typedefs

typedef struct WriterContext WriterContext

Enumerations

enum  SectionID {
  SECTION_ID_NONE = -1, SECTION_ID_ERROR, SECTION_ID_FORMAT, SECTION_ID_FORMAT_TAGS,
  SECTION_ID_FRAME, SECTION_ID_FRAMES, SECTION_ID_FRAME_TAGS, SECTION_ID_LIBRARY_VERSION,
  SECTION_ID_LIBRARY_VERSIONS, SECTION_ID_PACKET, SECTION_ID_PACKETS, SECTION_ID_PACKETS_AND_FRAMES,
  SECTION_ID_PROGRAM_VERSION, SECTION_ID_ROOT, SECTION_ID_STREAM, SECTION_ID_STREAMS,
  SECTION_ID_STREAM_TAGS
}

Functions

void av_noreturn exit_program (int ret)
 Do all the necessary cleanup and abort.
static char * value_string (char *buf, int buf_size, struct unit_value uv)
static const char * writer_get_name (void *p)
static void writer_close (WriterContext **wctx)
static int writer_open (WriterContext **wctx, const Writer *writer, const char *args, const struct section *sections, int nb_sections)
static void writer_print_section_header (WriterContext *wctx, int section_id)
static void writer_print_section_footer (WriterContext *wctx)
static void writer_print_integer (WriterContext *wctx, const char *key, long long int val)
static void writer_print_string (WriterContext *wctx, const char *key, const char *val, int opt)
static void writer_print_rational (WriterContext *wctx, const char *key, AVRational q, char sep)
static void writer_print_time (WriterContext *wctx, const char *key, int64_t ts, const AVRational *time_base, int is_duration)
static void writer_print_ts (WriterContext *wctx, const char *key, int64_t ts, int is_duration)
static void writer_print_data (WriterContext *wctx, const char *name, uint8_t *data, int size)
static int writer_register (const Writer *writer)
static const Writerwriter_get_by_name (const char *name)
 DEFINE_WRITER_CLASS (default)
static char * upcase_string (char *dst, size_t dst_size, const char *src)
static void default_print_section_header (WriterContext *wctx)
static void default_print_section_footer (WriterContext *wctx)
static void default_print_str (WriterContext *wctx, const char *key, const char *value)
static void default_print_int (WriterContext *wctx, const char *key, long long int value)
static const char * c_escape_str (AVBPrint *dst, const char *src, const char sep, void *log_ctx)
 Apply C-language-like string escaping.
static const char * csv_escape_str (AVBPrint *dst, const char *src, const char sep, void *log_ctx)
 Quote fields containing special characters, check RFC4180.
static const char * none_escape_str (AVBPrint *dst, const char *src, const char sep, void *log_ctx)
 DEFINE_WRITER_CLASS (compact)
static av_cold int compact_init (WriterContext *wctx, const char *args)
static void compact_print_section_header (WriterContext *wctx)
static void compact_print_section_footer (WriterContext *wctx)
static void compact_print_str (WriterContext *wctx, const char *key, const char *value)
static void compact_print_int (WriterContext *wctx, const char *key, long long int value)
 DEFINE_WRITER_CLASS (csv)
 DEFINE_WRITER_CLASS (flat)
static av_cold int flat_init (WriterContext *wctx, const char *args)
static void flat_uninit (WriterContext *wctx)
static const char * flat_escape_key_str (AVBPrint *dst, const char *src, const char sep)
static const char * flat_escape_value_str (AVBPrint *dst, const char *src)
static void flat_print_section_header (WriterContext *wctx)
static void flat_print_key_prefix (WriterContext *wctx)
static void flat_print_int (WriterContext *wctx, const char *key, long long int value)
static void flat_print_str (WriterContext *wctx, const char *key, const char *value)
 DEFINE_WRITER_CLASS (ini)
static char * ini_escape_str (AVBPrint *dst, const char *src)
static void ini_print_section_header (WriterContext *wctx)
static void ini_print_str (WriterContext *wctx, const char *key, const char *value)
static void ini_print_int (WriterContext *wctx, const char *key, long long int value)
 DEFINE_WRITER_CLASS (json)
static av_cold int json_init (WriterContext *wctx, const char *args)
static const char * json_escape_str (AVBPrint *dst, const char *src, void *log_ctx)
static void json_print_section_header (WriterContext *wctx)
static void json_print_section_footer (WriterContext *wctx)
static void json_print_item_str (WriterContext *wctx, const char *key, const char *value)
static void json_print_str (WriterContext *wctx, const char *key, const char *value)
static void json_print_int (WriterContext *wctx, const char *key, long long int value)
 DEFINE_WRITER_CLASS (xml)
static av_cold int xml_init (WriterContext *wctx, const char *args)
static const char * xml_escape_str (AVBPrint *dst, const char *src, void *log_ctx)
static void xml_print_section_header (WriterContext *wctx)
static void xml_print_section_footer (WriterContext *wctx)
static void xml_print_str (WriterContext *wctx, const char *key, const char *value)
static void xml_print_int (WriterContext *wctx, const char *key, long long int value)
static void writer_register_all (void)
static void show_tags (WriterContext *wctx, AVDictionary *tags, int section_id)
static void show_packet (WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pkt, int packet_idx)
static void show_frame (WriterContext *w, AVFrame *frame, AVStream *stream, AVFormatContext *fmt_ctx)
static av_always_inline int process_frame (WriterContext *w, AVFormatContext *fmt_ctx, AVFrame *frame, AVPacket *pkt)
static void read_packets (WriterContext *w, AVFormatContext *fmt_ctx)
static void show_stream (WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx)
static void show_streams (WriterContext *w, AVFormatContext *fmt_ctx)
static void show_format (WriterContext *w, AVFormatContext *fmt_ctx)
static void show_error (WriterContext *w, int err)
static int open_input_file (AVFormatContext **fmt_ctx_ptr, const char *filename)
static void close_input_file (AVFormatContext **ctx_ptr)
static int probe_file (WriterContext *wctx, const char *filename)
static void show_usage (void)
static void ffprobe_show_program_version (WriterContext *w)
static void ffprobe_show_library_versions (WriterContext *w)
static int opt_format (void *optctx, const char *opt, const char *arg)
static int opt_show_format_entry (void *optctx, const char *opt, const char *arg)
static void opt_input_file (void *optctx, const char *arg)
static int opt_input_file_i (void *optctx, const char *opt, const char *arg)
void show_help_default (const char *opt, const char *arg)
 Per-avtool specific help handler.
static int opt_pretty (void *optctx, const char *opt, const char *arg)
static int opt_show_versions (const char *opt, const char *arg)
int main (int argc, char **argv)

Variables

const char program_name [] = "ffprobe"
 program name, defined by the program for show_version().
const int program_birth_year = 2007
 program birth year, defined by the program for show_banner()
static int do_bitexact = 0
static int do_count_frames = 0
static int do_count_packets = 0
static int do_read_frames = 0
static int do_read_packets = 0
static int do_show_error = 0
static int do_show_format = 0
static int do_show_frames = 0
static AVDictionaryfmt_entries_to_show = NULL
static int do_show_packets = 0
static int do_show_streams = 0
static int do_show_data = 0
static int do_show_program_version = 0
static int do_show_library_versions = 0
static int show_value_unit = 0
static int use_value_prefix = 0
static int use_byte_value_binary_prefix = 0
static int use_value_sexagesimal_format = 0
static int show_private_data = 1
static char * print_format
static struct section sections []
static const OptionDefoptions
static const char * input_filename
static AVInputFormatiformat = NULL
static const char *const binary_unit_prefixes [] = { "", "Ki", "Mi", "Gi", "Ti", "Pi" }
static const char *const decimal_unit_prefixes [] = { "", "K" , "M" , "G" , "T" , "P" }
static const char unit_second_str [] = "s"
static const char unit_hertz_str [] = "Hz"
static const char unit_byte_str [] = "byte"
static const char unit_bit_per_second_str [] = "bit/s"
static uint64_tnb_streams_packets
static uint64_tnb_streams_frames
static const AVClass writer_class
static const Writerregistered_writers [MAX_REGISTERED_WRITERS_NB+1]
static const AVOption default_options []
static const Writer default_writer
static const AVOption compact_options []
static const Writer compact_writer
static const AVOption csv_options []
static const Writer csv_writer
static const AVOption flat_options []
static const Writer flat_writer
static const AVOption ini_options []
static const Writer ini_writer
static const AVOption json_options []
static const Writer json_writer
static const AVOption xml_options []
static Writer xml_writer
static const OptionDef real_options []


Detailed Description

simple media prober based on the FFmpeg libraries

Definition in file ffprobe.c.


Define Documentation

#define CHECK_COMPLIANCE ( opt,
opt_name   ) 

Value:

if (opt) {                                                      \
            av_log(wctx, AV_LOG_ERROR,                                  \
                   "XSD-compliant output selected but option '%s' was selected, XML output may be non-compliant.\n" \
                   "You need to disable such option with '-no%s'\n", opt_name, opt_name); \
            return AVERROR(EINVAL);                                     \
        }

Referenced by xml_init().

#define DEFINE_WRITER_CLASS ( name   ) 

Value:

static const char *name##_get_name(void *ctx)       \
{                                                   \
    return #name ;                                  \
}                                                   \
static const AVClass name##_class = {               \
    #name,                                          \
    name##_get_name,                                \
    name##_options                                  \
}

Definition at line 477 of file ffprobe.c.

 
#define JSON_INDENT (  )     printf("%*c", json->indent_level * 4, ' ')

#define MAX_REGISTERED_WRITERS_NB   64

Definition at line 448 of file ffprobe.c.

Referenced by writer_register().

#define OFFSET (  )     offsetof(XMLContext, x)

Definition at line 1194 of file ffprobe.c.

#define OFFSET (  )     offsetof(JSONContext, x)

Definition at line 1194 of file ffprobe.c.

#define OFFSET (  )     offsetof(INIContext, x)

Definition at line 1194 of file ffprobe.c.

#define OFFSET (  )     offsetof(FlatContext, x)

Definition at line 1194 of file ffprobe.c.

#define OFFSET (  )     offsetof(CompactContext, x)

Definition at line 1194 of file ffprobe.c.

#define OFFSET (  )     offsetof(CompactContext, x)

Definition at line 1194 of file ffprobe.c.

#define OFFSET (  )     offsetof(DefaultContext, x)

Definition at line 1194 of file ffprobe.c.

#define print_duration_time ( k,
v,
tb   )     writer_print_time(w, k, v, tb, 1)

Definition at line 1384 of file ffprobe.c.

Referenced by show_frame(), and show_packet().

#define print_duration_ts ( k,
 )     writer_print_ts(w, k, v, 1)

Definition at line 1385 of file ffprobe.c.

Referenced by show_frame(), and show_packet().

#define print_fmt ( k,
f,
...   ) 

Value:

do {              \
    av_bprint_clear(&pbuf);                    \
    av_bprintf(&pbuf, f, __VA_ARGS__);         \
    writer_print_string(w, k, pbuf.str, 0);    \
} while (0)

Definition at line 1372 of file ffprobe.c.

Referenced by ffprobe_show_program_version(), show_frame(), show_packet(), and show_stream().

#define print_int ( k,
 )     writer_print_integer(w, k, v)

Definition at line 1378 of file ffprobe.c.

Referenced by show_error(), show_format(), show_frame(), show_packet(), and show_stream().

#define print_q ( k,
v,
 )     writer_print_rational(w, k, v, s)

Definition at line 1379 of file ffprobe.c.

Referenced by show_frame(), and show_stream().

#define print_section_footer (  )     writer_print_section_footer(w, s)

Definition at line 1394 of file ffprobe.c.

#define print_section_header (  )     writer_print_section_header(w, s)

Definition at line 1393 of file ffprobe.c.

#define print_str ( k,
 )     writer_print_string(w, k, v, 0)

#define print_str_opt ( k,
 )     writer_print_string(w, k, v, 1)

Definition at line 1381 of file ffprobe.c.

Referenced by show_format(), show_frame(), show_packet(), and show_stream().

#define print_time ( k,
v,
tb   )     writer_print_time(w, k, v, tb, 0)

Definition at line 1382 of file ffprobe.c.

Referenced by show_format(), show_frame(), show_packet(), and show_stream().

#define print_ts ( k,
 )     writer_print_ts(w, k, v, 0)

Definition at line 1383 of file ffprobe.c.

Referenced by show_frame(), show_packet(), and show_stream().

#define print_val ( k,
v,
 ) 

Value:

do {                                     \
    struct unit_value uv;                                           \
    uv.val.i = v;                                                   \
    uv.unit = u;                                                    \
    writer_print_string(w, k, value_string(val_str, sizeof(val_str), uv), 0); \
} while (0)

Definition at line 1386 of file ffprobe.c.

Referenced by show_format(), show_packet(), and show_stream().

#define SECTION_ENTRY ( id,
name,
flags   )     [SECTION_ID_##id] = { SECTION_ID_##id, name, flags }

Definition at line 104 of file ffprobe.c.

#define SECTION_FLAG_IS_ARRAY   2

#define SECTION_FLAG_IS_WRAPPER   1

#define SECTION_MAX_NB_LEVELS   10

Definition at line 228 of file ffprobe.c.

Referenced by flat_init(), flat_uninit(), and writer_print_section_header().

#define SHOW_LIB_VERSION ( libname,
LIBNAME   ) 

Value:

do {                                                                \
        if (CONFIG_##LIBNAME) {                                         \
            unsigned int version = libname##_version();                 \
            writer_print_section_header(w, SECTION_ID_LIBRARY_VERSION); \
            print_str("name",    "lib" #libname);                       \
            print_int("major",   LIB##LIBNAME##_VERSION_MAJOR);         \
            print_int("minor",   LIB##LIBNAME##_VERSION_MINOR);         \
            print_int("micro",   LIB##LIBNAME##_VERSION_MICRO);         \
            print_int("version", version);                              \
            writer_print_section_footer(w);                             \
        }                                                               \
    } while (0)

Definition at line 1878 of file ffprobe.c.

Referenced by ffprobe_show_library_versions().

#define WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS   1

Definition at line 209 of file ffprobe.c.

Referenced by writer_print_string().

#define WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER   2

Definition at line 210 of file ffprobe.c.

Referenced by probe_file().

 
#define XML_INDENT (  )     printf("%*c", xml->indent_level * 4, ' ')

Definition at line 1252 of file ffprobe.c.

Referenced by xml_print_section_footer(), xml_print_section_header(), and xml_print_str().


Typedef Documentation

typedef struct WriterContext WriterContext

Definition at line 207 of file ffprobe.c.


Enumeration Type Documentation

enum SectionID

Enumerator:
SECTION_ID_NONE 
SECTION_ID_ERROR 
SECTION_ID_FORMAT 
SECTION_ID_FORMAT_TAGS 
SECTION_ID_FRAME 
SECTION_ID_FRAMES 
SECTION_ID_FRAME_TAGS 
SECTION_ID_LIBRARY_VERSION 
SECTION_ID_LIBRARY_VERSIONS 
SECTION_ID_PACKET 
SECTION_ID_PACKETS 
SECTION_ID_PACKETS_AND_FRAMES 
SECTION_ID_PROGRAM_VERSION 
SECTION_ID_ROOT 
SECTION_ID_STREAM 
SECTION_ID_STREAMS 
SECTION_ID_STREAM_TAGS 

Definition at line 84 of file ffprobe.c.


Function Documentation

static const char* c_escape_str ( AVBPrint dst,
const char *  src,
const char  sep,
void *  log_ctx 
) [static]

Apply C-language-like string escaping.

Definition at line 588 of file ffprobe.c.

Referenced by compact_init().

static void close_input_file ( AVFormatContext **  ctx_ptr  )  [static]

Definition at line 1801 of file ffprobe.c.

Referenced by probe_file().

static av_cold int compact_init ( WriterContext wctx,
const char *  args 
) [static]

Definition at line 661 of file ffprobe.c.

static void compact_print_int ( WriterContext wctx,
const char *  key,
long long int  value 
) [static]

Definition at line 720 of file ffprobe.c.

static void compact_print_section_footer ( WriterContext wctx  )  [static]

Definition at line 695 of file ffprobe.c.

static void compact_print_section_header ( WriterContext wctx  )  [static]

Definition at line 683 of file ffprobe.c.

static void compact_print_str ( WriterContext wctx,
const char *  key,
const char *  value 
) [static]

Definition at line 704 of file ffprobe.c.

static const char* csv_escape_str ( AVBPrint dst,
const char *  src,
const char  sep,
void *  log_ctx 
) [static]

Quote fields containing special characters, check RFC4180.

Definition at line 611 of file ffprobe.c.

Referenced by compact_init().

static void default_print_int ( WriterContext wctx,
const char *  key,
long long int  value 
) [static]

Definition at line 563 of file ffprobe.c.

static void default_print_section_footer ( WriterContext wctx  )  [static]

Definition at line 535 of file ffprobe.c.

static void default_print_section_header ( WriterContext wctx  )  [static]

Definition at line 518 of file ffprobe.c.

static void default_print_str ( WriterContext wctx,
const char *  key,
const char *  value 
) [static]

Definition at line 552 of file ffprobe.c.

DEFINE_WRITER_CLASS ( xml   ) 

DEFINE_WRITER_CLASS ( json   ) 

DEFINE_WRITER_CLASS ( ini   ) 

DEFINE_WRITER_CLASS ( flat   ) 

DEFINE_WRITER_CLASS ( csv   ) 

DEFINE_WRITER_CLASS ( compact   ) 

DEFINE_WRITER_CLASS ( default   ) 

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 142 of file ffprobe.c.

static void ffprobe_show_library_versions ( WriterContext w  )  [static]

Definition at line 1892 of file ffprobe.c.

Referenced by main().

static void ffprobe_show_program_version ( WriterContext w  )  [static]

Definition at line 1860 of file ffprobe.c.

Referenced by main().

static const char* flat_escape_key_str ( AVBPrint dst,
const char *  src,
const char  sep 
) [static]

Definition at line 822 of file ffprobe.c.

Referenced by flat_print_str().

static const char* flat_escape_value_str ( AVBPrint dst,
const char *  src 
) [static]

Definition at line 837 of file ffprobe.c.

Referenced by flat_print_str().

static av_cold int flat_init ( WriterContext wctx,
const char *  args 
) [static]

Definition at line 796 of file ffprobe.c.

static void flat_print_int ( WriterContext wctx,
const char *  key,
long long int  value 
) [static]

Definition at line 884 of file ffprobe.c.

static void flat_print_key_prefix ( WriterContext wctx  )  [static]

Definition at line 870 of file ffprobe.c.

Referenced by flat_print_int(), and flat_print_str().

static void flat_print_section_header ( WriterContext wctx  )  [static]

Definition at line 855 of file ffprobe.c.

static void flat_print_str ( WriterContext wctx,
const char *  key,
const char *  value 
) [static]

Definition at line 890 of file ffprobe.c.

static void flat_uninit ( WriterContext wctx  )  [static]

Definition at line 813 of file ffprobe.c.

static char* ini_escape_str ( AVBPrint dst,
const char *  src 
) [static]

Definition at line 933 of file ffprobe.c.

Referenced by ini_print_str().

static void ini_print_int ( WriterContext wctx,
const char *  key,
long long int  value 
) [static]

Definition at line 1006 of file ffprobe.c.

static void ini_print_section_header ( WriterContext wctx  )  [static]

Definition at line 960 of file ffprobe.c.

static void ini_print_str ( WriterContext wctx,
const char *  key,
const char *  value 
) [static]

Definition at line 995 of file ffprobe.c.

static const char* json_escape_str ( AVBPrint dst,
const char *  src,
void *  log_ctx 
) [static]

Definition at line 1051 of file ffprobe.c.

Referenced by json_print_int(), json_print_item_str(), and json_print_section_header().

static av_cold int json_init ( WriterContext wctx,
const char *  args 
) [static]

Definition at line 1041 of file ffprobe.c.

static void json_print_int ( WriterContext wctx,
const char *  key,
long long int  value 
) [static]

Definition at line 1156 of file ffprobe.c.

static void json_print_item_str ( WriterContext wctx,
const char *  key,
const char *  value 
) [inline, static]

Definition at line 1133 of file ffprobe.c.

Referenced by json_print_str().

static void json_print_section_footer ( WriterContext wctx  )  [static]

Definition at line 1111 of file ffprobe.c.

static void json_print_section_header ( WriterContext wctx  )  [static]

Definition at line 1073 of file ffprobe.c.

static void json_print_str ( WriterContext wctx,
const char *  key,
const char *  value 
) [static]

Definition at line 1145 of file ffprobe.c.

int main ( int  argc,
char **  argv 
)

Definition at line 2003 of file ffprobe.c.

static const char* none_escape_str ( AVBPrint dst,
const char *  src,
const char  sep,
void *  log_ctx 
) [static]

Definition at line 629 of file ffprobe.c.

Referenced by compact_init().

static int open_input_file ( AVFormatContext **  fmt_ctx_ptr,
const char *  filename 
) [static]

Definition at line 1753 of file ffprobe.c.

static int opt_format ( void *  optctx,
const char *  opt,
const char *  arg 
) [static]

Definition at line 1906 of file ffprobe.c.

static void opt_input_file ( void *  optctx,
const char *  arg 
) [static]

Definition at line 1923 of file ffprobe.c.

static int opt_input_file_i ( void *  optctx,
const char *  opt,
const char *  arg 
) [static]

Definition at line 1936 of file ffprobe.c.

static int opt_pretty ( void *  optctx,
const char *  opt,
const char *  arg 
) [static]

Definition at line 1952 of file ffprobe.c.

static int opt_show_format_entry ( void *  optctx,
const char *  opt,
const char *  arg 
) [static]

Definition at line 1916 of file ffprobe.c.

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

Definition at line 1961 of file ffprobe.c.

static int probe_file ( WriterContext wctx,
const char *  filename 
) [static]

Definition at line 1814 of file ffprobe.c.

Referenced by main().

static av_always_inline int process_frame ( WriterContext w,
AVFormatContext fmt_ctx,
AVFrame frame,
AVPacket pkt 
) [static]

Definition at line 1513 of file ffprobe.c.

Referenced by end_frame(), filter_samples(), and read_packets().

static void read_packets ( WriterContext w,
AVFormatContext fmt_ctx 
) [static]

Definition at line 1546 of file ffprobe.c.

Referenced by probe_file().

static void show_error ( WriterContext w,
int  err 
) [static]

Definition at line 1739 of file ffprobe.c.

Referenced by main().

static void show_format ( WriterContext w,
AVFormatContext fmt_ctx 
) [static]

Definition at line 1714 of file ffprobe.c.

Referenced by probe_file().

static void show_frame ( WriterContext w,
AVFrame frame,
AVStream stream,
AVFormatContext fmt_ctx 
) [static]

Definition at line 1443 of file ffprobe.c.

Referenced by process_frame().

void show_help_default ( const char *  opt,
const char *  arg 
)

Per-avtool specific help handler.

Implemented in each avtool, called by show_help().

Definition at line 1942 of file ffprobe.c.

static void show_packet ( WriterContext w,
AVFormatContext fmt_ctx,
AVPacket pkt,
int  packet_idx 
) [static]

Definition at line 1408 of file ffprobe.c.

Referenced by read_packets().

static void show_stream ( WriterContext w,
AVFormatContext fmt_ctx,
int  stream_idx 
) [static]

Definition at line 1577 of file ffprobe.c.

Referenced by show_streams().

static void show_streams ( WriterContext w,
AVFormatContext fmt_ctx 
) [static]

Definition at line 1705 of file ffprobe.c.

Referenced by probe_file().

static void show_tags ( WriterContext wctx,
AVDictionary tags,
int  section_id 
) [inline, static]

Definition at line 1396 of file ffprobe.c.

Referenced by show_format(), show_frame(), and show_stream().

static void show_usage ( void   )  [static]

Definition at line 1853 of file ffprobe.c.

static char* upcase_string ( char *  dst,
size_t  dst_size,
const char *  src 
) [inline, static]

Definition at line 509 of file ffprobe.c.

Referenced by default_print_section_footer(), and default_print_section_header().

static char* value_string ( char *  buf,
int  buf_size,
struct unit_value  uv 
) [static]

Definition at line 153 of file ffprobe.c.

Referenced by writer_print_time().

static void writer_close ( WriterContext **  wctx  )  [static]

Definition at line 265 of file ffprobe.c.

Referenced by main(), and writer_open().

static const Writer* writer_get_by_name ( const char *  name  )  [static]

Definition at line 463 of file ffprobe.c.

Referenced by main().

static const char* writer_get_name ( void *  p  )  [static]

Definition at line 252 of file ffprobe.c.

static int writer_open ( WriterContext **  wctx,
const Writer writer,
const char *  args,
const struct section sections,
int  nb_sections 
) [static]

Definition at line 278 of file ffprobe.c.

Referenced by main().

static void writer_print_data ( WriterContext wctx,
const char *  name,
uint8_t data,
int  size 
) [static]

Definition at line 420 of file ffprobe.c.

Referenced by show_packet(), and show_stream().

static void writer_print_integer ( WriterContext wctx,
const char *  key,
long long int  val 
) [inline, static]

Definition at line 361 of file ffprobe.c.

Referenced by writer_print_ts().

static void writer_print_rational ( WriterContext wctx,
const char *  key,
AVRational  q,
char  sep 
) [inline, static]

Definition at line 385 of file ffprobe.c.

static void writer_print_section_footer ( WriterContext wctx  )  [inline, static]

static void writer_print_section_header ( WriterContext wctx,
int  section_id 
) [inline, static]

static void writer_print_string ( WriterContext wctx,
const char *  key,
const char *  val,
int  opt 
) [inline, static]

static void writer_print_time ( WriterContext wctx,
const char *  key,
int64_t  ts,
const AVRational time_base,
int  is_duration 
) [static]

Definition at line 394 of file ffprobe.c.

static void writer_print_ts ( WriterContext wctx,
const char *  key,
int64_t  ts,
int  is_duration 
) [static]

Definition at line 411 of file ffprobe.c.

static int writer_register ( const Writer writer  )  [static]

Definition at line 452 of file ffprobe.c.

Referenced by writer_register_all().

static void writer_register_all ( void   )  [static]

Definition at line 1355 of file ffprobe.c.

Referenced by main().

static const char* xml_escape_str ( AVBPrint dst,
const char *  src,
void *  log_ctx 
) [static]

Definition at line 1234 of file ffprobe.c.

Referenced by xml_print_str().

static av_cold int xml_init ( WriterContext wctx,
const char *  args 
) [static]

Definition at line 1206 of file ffprobe.c.

static void xml_print_int ( WriterContext wctx,
const char *  key,
long long int  value 
) [static]

Definition at line 1336 of file ffprobe.c.

static void xml_print_section_footer ( WriterContext wctx  )  [static]

Definition at line 1295 of file ffprobe.c.

static void xml_print_section_header ( WriterContext wctx  )  [static]

Definition at line 1254 of file ffprobe.c.

static void xml_print_str ( WriterContext wctx,
const char *  key,
const char *  value 
) [static]

Definition at line 1314 of file ffprobe.c.


Variable Documentation

const char* const binary_unit_prefixes[] = { "", "Ki", "Mi", "Gi", "Ti", "Pi" } [static]

Definition at line 132 of file ffprobe.c.

Referenced by value_string().

const AVOption compact_options[] [static]

Initial value:

 {
    {"item_sep", "set item separator",    OFFSET(item_sep_str),    AV_OPT_TYPE_STRING, {.str="|"},  CHAR_MIN, CHAR_MAX },
    {"s",        "set item separator",    OFFSET(item_sep_str),    AV_OPT_TYPE_STRING, {.str="|"},  CHAR_MIN, CHAR_MAX },
    {"nokey",    "force no key printing", OFFSET(nokey),           AV_OPT_TYPE_INT,    {.i64=0},    0,        1        },
    {"nk",       "force no key printing", OFFSET(nokey),           AV_OPT_TYPE_INT,    {.i64=0},    0,        1        },
    {"escape",   "set escape mode",       OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="c"},  CHAR_MIN, CHAR_MAX },
    {"e",        "set escape mode",       OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="c"},  CHAR_MIN, CHAR_MAX },
    {"print_section", "print section name", OFFSET(print_section), AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
    {"p",             "print section name", OFFSET(print_section), AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
    {NULL},
}

Definition at line 647 of file ffprobe.c.

const Writer compact_writer [static]

Initial value:

 {
    .name                 = "compact",
    .priv_size            = sizeof(CompactContext),
    .init                 = compact_init,
    .print_section_header = compact_print_section_header,
    .print_section_footer = compact_print_section_footer,
    .print_integer        = compact_print_int,
    .print_string         = compact_print_str,
    .flags = WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS,
    .priv_class           = &compact_class,
}

Definition at line 730 of file ffprobe.c.

const AVOption csv_options[] [static]

Initial value:

 {
    {"item_sep", "set item separator",    OFFSET(item_sep_str),    AV_OPT_TYPE_STRING, {.str=","},  CHAR_MIN, CHAR_MAX },
    {"s",        "set item separator",    OFFSET(item_sep_str),    AV_OPT_TYPE_STRING, {.str=","},  CHAR_MIN, CHAR_MAX },
    {"nokey",    "force no key printing", OFFSET(nokey),           AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
    {"nk",       "force no key printing", OFFSET(nokey),           AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
    {"escape",   "set escape mode",       OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="csv"}, CHAR_MIN, CHAR_MAX },
    {"e",        "set escape mode",       OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="csv"}, CHAR_MIN, CHAR_MAX },
    {"print_section", "print section name", OFFSET(print_section), AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
    {"p",             "print section name", OFFSET(print_section), AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
    {NULL},
}

Definition at line 747 of file ffprobe.c.

const Writer csv_writer [static]

Initial value:

Definition at line 761 of file ffprobe.c.

const char* const decimal_unit_prefixes[] = { "", "K" , "M" , "G" , "T" , "P" } [static]

Definition at line 133 of file ffprobe.c.

Referenced by value_string().

const AVOption default_options[] [static]

Initial value:

 {
    { "noprint_wrappers", "do not print headers and footers", OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
    { "nw",               "do not print headers and footers", OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
    { "nokey",          "force no key printing",     OFFSET(nokey),          AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
    { "nk",             "force no key printing",     OFFSET(nokey),          AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
    {NULL},
}

Definition at line 498 of file ffprobe.c.

const Writer default_writer [static]

Initial value:

 {
    .name                  = "default",
    .priv_size             = sizeof(DefaultContext),
    .print_section_header  = default_print_section_header,
    .print_section_footer  = default_print_section_footer,
    .print_integer         = default_print_int,
    .print_string          = default_print_str,
    .flags = WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS,
    .priv_class            = &default_class,
}

Definition at line 572 of file ffprobe.c.

int do_bitexact = 0 [static]

Definition at line 50 of file ffprobe.c.

Referenced by main(), show_format(), and show_stream().

int do_count_frames = 0 [static]

Definition at line 51 of file ffprobe.c.

Referenced by probe_file().

int do_count_packets = 0 [static]

Definition at line 52 of file ffprobe.c.

Referenced by probe_file().

int do_read_frames = 0 [static]

Definition at line 53 of file ffprobe.c.

Referenced by probe_file(), and read_packets().

int do_read_packets = 0 [static]

Definition at line 54 of file ffprobe.c.

Referenced by probe_file(), and read_packets().

int do_show_data = 0 [static]

Definition at line 61 of file ffprobe.c.

Referenced by show_packet(), and show_stream().

int do_show_error = 0 [static]

Definition at line 55 of file ffprobe.c.

Referenced by main().

int do_show_format = 0 [static]

Definition at line 56 of file ffprobe.c.

Referenced by main(), opt_show_format_entry(), and probe_file().

int do_show_frames = 0 [static]

Definition at line 57 of file ffprobe.c.

Referenced by probe_file(), process_frame(), and xml_init().

Definition at line 63 of file ffprobe.c.

Referenced by main(), and opt_show_versions().

int do_show_packets = 0 [static]

Definition at line 59 of file ffprobe.c.

Referenced by main(), probe_file(), read_packets(), and xml_init().

Definition at line 62 of file ffprobe.c.

Referenced by main(), and opt_show_versions().

int do_show_streams = 0 [static]

Definition at line 60 of file ffprobe.c.

Referenced by main(), and probe_file().

const AVOption flat_options[] [static]

Initial value:

 {
    {"sep_char", "set separator",    OFFSET(sep_str),    AV_OPT_TYPE_STRING, {.str="."},  CHAR_MIN, CHAR_MAX },
    {"s",        "set separator",    OFFSET(sep_str),    AV_OPT_TYPE_STRING, {.str="."},  CHAR_MIN, CHAR_MAX },
    {"hierarchical", "specify if the section specification should be hierarchical", OFFSET(hierarchical), AV_OPT_TYPE_INT, {.i64=1}, 0, 1 },
    {"h",           "specify if the section specification should be hierarchical", OFFSET(hierarchical), AV_OPT_TYPE_INT, {.i64=1}, 0, 1 },
    {NULL},
}

Definition at line 786 of file ffprobe.c.

const Writer flat_writer [static]

Initial value:

Definition at line 903 of file ffprobe.c.

Definition at line 58 of file ffprobe.c.

AVInputFormat* iformat = NULL [static]

Definition at line 130 of file ffprobe.c.

Referenced by ff_load_image(), movie_common_init(), and show_format_opts().

const AVOption ini_options[] [static]

Initial value:

 {
    {"hierarchical", "specify if the section specification should be hierarchical", OFFSET(hierarchical), AV_OPT_TYPE_INT, {.i64=1}, 0, 1 },
    {"h",           "specify if the section specification should be hierarchical", OFFSET(hierarchical), AV_OPT_TYPE_INT, {.i64=1}, 0, 1 },
    {NULL},
}

Definition at line 925 of file ffprobe.c.

const Writer ini_writer [static]

Initial value:

 {
    .name                  = "ini",
    .priv_size             = sizeof(INIContext),
    .print_section_header  = ini_print_section_header,
    .print_integer         = ini_print_int,
    .print_string          = ini_print_str,
    .flags = WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS|WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER,
    .priv_class            = &ini_class,
}

Definition at line 1011 of file ffprobe.c.

const char* input_filename [static]

Definition at line 129 of file ffprobe.c.

const AVOption json_options[] [static]

Initial value:

 {
    { "compact", "enable compact output", OFFSET(compact), AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
    { "c",       "enable compact output", OFFSET(compact), AV_OPT_TYPE_INT, {.i64=0}, 0, 1 },
    { NULL }
}

Definition at line 1033 of file ffprobe.c.

const Writer json_writer [static]

Initial value:

 {
    .name                 = "json",
    .priv_size            = sizeof(JSONContext),
    .init                 = json_init,
    .print_section_header = json_print_section_header,
    .print_section_footer = json_print_section_footer,
    .print_integer        = json_print_int,
    .print_string         = json_print_str,
    .flags = WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER,
    .priv_class           = &json_class,
}

Definition at line 1171 of file ffprobe.c.

Definition at line 140 of file ffprobe.c.

Referenced by probe_file(), process_frame(), and show_stream().

Definition at line 139 of file ffprobe.c.

Referenced by probe_file(), read_packets(), and show_stream().

const OptionDef* options [static]

Definition at line 126 of file ffprobe.c.

char* print_format [static]

Definition at line 71 of file ffprobe.c.

Referenced by main().

const int program_birth_year = 2007

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

Definition at line 48 of file ffprobe.c.

const char program_name[] = "ffprobe"

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

Definition at line 47 of file ffprobe.c.

const OptionDef real_options[] [static]

Definition at line 1968 of file ffprobe.c.

const Writer* registered_writers[MAX_REGISTERED_WRITERS_NB+1] [static]

Definition at line 450 of file ffprobe.c.

struct section sections[] [static]

Initial value:

 {
    SECTION_ENTRY(ERROR,              "error", 0),
    SECTION_ENTRY(FORMAT,             "format", 0),
    SECTION_ENTRY(FORMAT_TAGS,        "tags", 0),
    SECTION_ENTRY(FRAME,              "frame", 0),
    SECTION_ENTRY(FRAMES,             "frames", SECTION_FLAG_IS_ARRAY),
    SECTION_ENTRY(FRAME_TAGS,         "tags", 0),
    SECTION_ENTRY(LIBRARY_VERSION,    "library_version", 0),
    SECTION_ENTRY(LIBRARY_VERSIONS,   "library_versions", SECTION_FLAG_IS_ARRAY),
    SECTION_ENTRY(PACKET,             "packet", 0),
    SECTION_ENTRY(PACKETS,            "packets", SECTION_FLAG_IS_ARRAY),
    SECTION_ENTRY(PACKETS_AND_FRAMES, "packets_and_frames", SECTION_FLAG_IS_ARRAY),
    SECTION_ENTRY(PROGRAM_VERSION,    "program_version", 0),
    SECTION_ENTRY(ROOT,               "root", SECTION_FLAG_IS_WRAPPER),
    SECTION_ENTRY(STREAM,             "stream", 0),
    SECTION_ENTRY(STREAMS,            "streams", SECTION_FLAG_IS_ARRAY),
    SECTION_ENTRY(STREAM_TAGS,        "tags", 0),
}

Definition at line 107 of file ffprobe.c.

int show_private_data = 1 [static]

Definition at line 69 of file ffprobe.c.

Referenced by show_stream(), and xml_init().

int show_value_unit = 0 [static]

Definition at line 65 of file ffprobe.c.

Referenced by opt_pretty(), value_string(), and xml_init().

const char unit_bit_per_second_str[] = "bit/s" [static]

Definition at line 138 of file ffprobe.c.

Referenced by show_format(), and show_stream().

const char unit_byte_str[] = "byte" [static]

Definition at line 137 of file ffprobe.c.

Referenced by show_format(), show_packet(), and value_string().

const char unit_hertz_str[] = "Hz" [static]

Definition at line 136 of file ffprobe.c.

Referenced by show_stream().

const char unit_second_str[] = "s" [static]

Definition at line 135 of file ffprobe.c.

Referenced by value_string(), and writer_print_time().

Definition at line 67 of file ffprobe.c.

Referenced by opt_pretty(), and value_string().

int use_value_prefix = 0 [static]

Definition at line 66 of file ffprobe.c.

Referenced by opt_pretty(), value_string(), and xml_init().

Definition at line 68 of file ffprobe.c.

Referenced by opt_pretty(), and value_string().

const AVClass writer_class [static]

Initial value:

Definition at line 258 of file ffprobe.c.

const AVOption xml_options[] [static]

Initial value:

 {
    {"fully_qualified", "specify if the output should be fully qualified", OFFSET(fully_qualified), AV_OPT_TYPE_INT, {.i64=0},  0, 1 },
    {"q",               "specify if the output should be fully qualified", OFFSET(fully_qualified), AV_OPT_TYPE_INT, {.i64=0},  0, 1 },
    {"xsd_strict",      "ensure that the output is XSD compliant",         OFFSET(xsd_strict),      AV_OPT_TYPE_INT, {.i64=0},  0, 1 },
    {"x",               "ensure that the output is XSD compliant",         OFFSET(xsd_strict),      AV_OPT_TYPE_INT, {.i64=0},  0, 1 },
    {NULL},
}

Definition at line 1196 of file ffprobe.c.

Writer xml_writer [static]

Initial value:

 {
    .name                 = "xml",
    .priv_size            = sizeof(XMLContext),
    .init                 = xml_init,
    .print_section_header = xml_print_section_header,
    .print_section_footer = xml_print_section_footer,
    .print_integer        = xml_print_int,
    .print_string         = xml_print_str,
    .flags = WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER,
    .priv_class           = &xml_class,
}

Definition at line 1343 of file ffprobe.c.


Generated on Fri Oct 26 02:50:03 2012 for FFmpeg by  doxygen 1.5.8