FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
ffprobe.c File Reference

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

#include "config.h"
#include "libavutil/ffversion.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/hash.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/dict.h"
#include "libavutil/libm.h"
#include "libavutil/parseutils.h"
#include "libavutil/timecode.h"
#include "libavutil/timestamp.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  ReadInterval
 
struct  section
 
struct  unit_value
 
struct  Writer
 
struct  WriterContext
 
struct  DefaultContext
 
struct  CompactContext
 
struct  FlatContext
 
struct  INIContext
 
struct  JSONContext
 
struct  XMLContext
 

Macros

#define SECTION_MAX_NB_CHILDREN   10
 
#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_FLAG_HAS_VARIABLE_FIELDS   4
 the section may contain a variable number of fields with variable keys.
 
#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 OFFSET(x)   offsetof(WriterContext, x)
 
#define PRINT_STRING_OPT   1
 
#define PRINT_STRING_VALIDATE   2
 
#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, PRINT_STRING_OPT)
 
#define print_str_validate(k, v)   writer_print_string(w, k, v, PRINT_STRING_VALIDATE)
 
#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 REALLOCZ_ARRAY_STREAM(ptr, cur_n, new_n)
 
#define PRINT_DISPOSITION(flagname, name)
 
#define CHECK_END   if (ret < 0) goto end
 
#define SHOW_LIB_VERSION(libname, LIBNAME)
 
#define DEFINE_OPT_SHOW_SECTION(section, target_section_id)
 
#define SET_DO_SHOW(id, varname)
 

Enumerations

enum  SectionID {
  SECTION_ID_NONE = -1, SECTION_ID_CHAPTER, SECTION_ID_CHAPTER_TAGS, SECTION_ID_CHAPTERS,
  SECTION_ID_ERROR, SECTION_ID_FORMAT, SECTION_ID_FORMAT_TAGS, SECTION_ID_FRAME,
  SECTION_ID_FRAMES, SECTION_ID_FRAME_TAGS, SECTION_ID_FRAME_SIDE_DATA_LIST, SECTION_ID_FRAME_SIDE_DATA,
  SECTION_ID_LIBRARY_VERSION, SECTION_ID_LIBRARY_VERSIONS, SECTION_ID_PACKET, SECTION_ID_PACKETS,
  SECTION_ID_PACKETS_AND_FRAMES, SECTION_ID_PROGRAM_STREAM_DISPOSITION, SECTION_ID_PROGRAM_STREAM_TAGS, SECTION_ID_PROGRAM,
  SECTION_ID_PROGRAM_STREAMS, SECTION_ID_PROGRAM_STREAM, SECTION_ID_PROGRAM_TAGS, SECTION_ID_PROGRAM_VERSION,
  SECTION_ID_PROGRAMS, SECTION_ID_ROOT, SECTION_ID_STREAM, SECTION_ID_STREAM_DISPOSITION,
  SECTION_ID_STREAMS, SECTION_ID_STREAM_TAGS, SECTION_ID_SUBTITLE
}
 
enum  StringValidation { WRITER_STRING_VALIDATION_FAIL, WRITER_STRING_VALIDATION_REPLACE, WRITER_STRING_VALIDATION_IGNORE, WRITER_STRING_VALIDATION_NB }
 

Functions

static void ffprobe_cleanup (int ret)
 
static char * value_string (char *buf, int buf_size, struct unit_value uv)
 
static const char * writer_get_name (void *p)
 
static voidwriter_child_next (void *obj, void *prev)
 
static void writer_close (WriterContext **wctx)
 
static void bprint_bytes (AVBPrint *bp, const uint8_t *ubuf, size_t ubuf_size)
 
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 int validate_string (WriterContext *wctx, char **dstp, const char *src)
 
static int writer_print_string (WriterContext *wctx, const char *key, const char *val, int flags)
 
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 void writer_print_data_hash (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)
 
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)
 
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_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)
 
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)
 
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 int show_tags (WriterContext *w, AVDictionary *tags, int section_id)
 
static void show_packet (WriterContext *w, AVFormatContext *fmt_ctx, AVPacket *pkt, int packet_idx)
 
static void show_subtitle (WriterContext *w, AVSubtitle *sub, AVStream *stream, AVFormatContext *fmt_ctx)
 
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 log_read_interval (const ReadInterval *interval, void *log_ctx, int log_level)
 
static int read_interval_packets (WriterContext *w, AVFormatContext *fmt_ctx, const ReadInterval *interval, int64_t *cur_ts)
 
static int read_packets (WriterContext *w, AVFormatContext *fmt_ctx)
 
static int show_stream (WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, int in_program)
 
static int show_streams (WriterContext *w, AVFormatContext *fmt_ctx)
 
static int show_program (WriterContext *w, AVFormatContext *fmt_ctx, AVProgram *program)
 
static int show_programs (WriterContext *w, AVFormatContext *fmt_ctx)
 
static int show_chapters (WriterContext *w, AVFormatContext *fmt_ctx)
 
static int 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 void mark_section_show_entries (SectionID section_id, int show_all_entries, AVDictionary *entries)
 
static int match_section (const char *section_name, int show_all_entries, AVDictionary *entries)
 
static int opt_show_entries (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-fftool specific help handler.
 
static int parse_read_interval (const char *interval_spec, ReadInterval *interval)
 Parse interval specification, according to the format: INTERVAL ::= [START|+START_OFFSET][%[END|+END_OFFSET]] INTERVALS ::= INTERVAL[,INTERVALS].
 
static int parse_read_intervals (const char *intervals_spec)
 
static int opt_read_intervals (void *optctx, const char *opt, const char *arg)
 
static int opt_pretty (void *optctx, const char *opt, const char *arg)
 
static void print_section (SectionID id, int level)
 
static int opt_sections (void *optctx, const char *opt, const char *arg)
 
static int opt_show_versions (const char *opt, const char *arg)
 
 DEFINE_OPT_SHOW_SECTION (chapters, CHAPTERS)
 
 DEFINE_OPT_SHOW_SECTION (error, ERROR)
 
 DEFINE_OPT_SHOW_SECTION (format, FORMAT)
 
 DEFINE_OPT_SHOW_SECTION (frames, FRAMES)
 
 DEFINE_OPT_SHOW_SECTION (library_versions, LIBRARY_VERSIONS)
 
 DEFINE_OPT_SHOW_SECTION (packets, PACKETS)
 
 DEFINE_OPT_SHOW_SECTION (program_version, PROGRAM_VERSION)
 
 DEFINE_OPT_SHOW_SECTION (streams, STREAMS)
 
 DEFINE_OPT_SHOW_SECTION (programs, PROGRAMS)
 
static int check_section_show_entries (int section_id)
 
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_chapters = 0
 
static int do_show_error = 0
 
static int do_show_format = 0
 
static int do_show_frames = 0
 
static int do_show_packets = 0
 
static int do_show_programs = 0
 
static int do_show_streams = 0
 
static int do_show_stream_disposition = 0
 
static int do_show_data = 0
 
static int do_show_program_version = 0
 
static int do_show_library_versions = 0
 
static int do_show_chapter_tags = 0
 
static int do_show_format_tags = 0
 
static int do_show_frame_tags = 0
 
static int do_show_program_tags = 0
 
static int do_show_stream_tags = 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 char * stream_specifier
 
static char * show_data_hash
 
static ReadIntervalread_intervals
 
static int read_intervals_nb = 0
 
static struct section sections []
 
static const OptionDefoptions
 
static const char * input_filename
 
static AVInputFormatiformat = NULL
 
static struct AVHashContexthash
 
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 int nb_streams
 
static uint64_t * nb_streams_packets
 
static uint64_t * nb_streams_frames
 
static int * selected_streams
 
static const AVOption writer_options []
 
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.

Macro Definition Documentation

#define SECTION_MAX_NB_CHILDREN   10

Definition at line 99 of file ffprobe.c.

#define SECTION_FLAG_IS_WRAPPER   1
#define SECTION_FLAG_IS_ARRAY   2
#define SECTION_FLAG_HAS_VARIABLE_FIELDS   4

the section may contain a variable number of fields with variable keys.

Definition at line 107 of file ffprobe.c.

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

#define WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS   1

Definition at line 276 of file ffprobe.c.

Referenced by writer_print_string().

#define WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER   2

Definition at line 277 of file ffprobe.c.

Referenced by probe_file().

#define SECTION_MAX_NB_LEVELS   10

Definition at line 302 of file ffprobe.c.

Referenced by writer_close(), writer_open(), and writer_print_section_header().

#define OFFSET (   x)    offsetof(WriterContext, x)

Definition at line 1456 of file ffprobe.c.

#define PRINT_STRING_OPT   1

Definition at line 590 of file ffprobe.c.

Referenced by writer_print_string(), writer_print_time(), and writer_print_ts().

#define PRINT_STRING_VALIDATE   2

Definition at line 591 of file ffprobe.c.

Referenced by writer_print_string().

#define MAX_REGISTERED_WRITERS_NB   64

Definition at line 707 of file ffprobe.c.

Referenced by writer_register().

#define DEFINE_WRITER_CLASS (   name)
Value:
static const char *name##_get_name(void *ctx) \
{ \
return #name ; \
} \
static const AVClass name##_class = { \
.item_name = name##_get_name, \
.option = name##_options \
}

Definition at line 736 of file ffprobe.c.

#define OFFSET (   x)    offsetof(DefaultContext, x)

Definition at line 1456 of file ffprobe.c.

#define OFFSET (   x)    offsetof(CompactContext, x)

Definition at line 1456 of file ffprobe.c.

#define OFFSET (   x)    offsetof(CompactContext, x)

Definition at line 1456 of file ffprobe.c.

#define OFFSET (   x)    offsetof(FlatContext, x)

Definition at line 1456 of file ffprobe.c.

#define OFFSET (   x)    offsetof(INIContext, x)

Definition at line 1456 of file ffprobe.c.

#define OFFSET (   x)    offsetof(JSONContext, x)

Definition at line 1456 of file ffprobe.c.

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

Definition at line 1456 of file ffprobe.c.

#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 XML_INDENT ( )    printf("%*c", xml->indent_level * 4, ' ')

Definition at line 1514 of file ffprobe.c.

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

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

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

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

Definition at line 1641 of file ffprobe.c.

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

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

Definition at line 1643 of file ffprobe.c.

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

#define print_str_validate (   k,
  v 
)    writer_print_string(w, k, v, PRINT_STRING_VALIDATE)

Definition at line 1644 of file ffprobe.c.

Referenced by show_format(), and show_tags().

#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)

Definition at line 1646 of file ffprobe.c.

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

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

Definition at line 1647 of file ffprobe.c.

Referenced by show_frame(), and show_packet().

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

Definition at line 1648 of file ffprobe.c.

Referenced by show_frame(), and show_packet().

#define print_val (   k,
  v,
  u 
)
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 1649 of file ffprobe.c.

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

#define print_section_header (   s)    writer_print_section_header(w, s)

Definition at line 1656 of file ffprobe.c.

#define print_section_footer (   s)    writer_print_section_footer(w, s)

Definition at line 1657 of file ffprobe.c.

#define REALLOCZ_ARRAY_STREAM (   ptr,
  cur_n,
  new_n 
)
Value:
{ \
ret = av_reallocp_array(&(ptr), (new_n), sizeof(*(ptr))); \
if (ret < 0) \
goto end; \
memset( (ptr) + (cur_n), 0, ((new_n) - (cur_n)) * sizeof(*(ptr)) ); \
}

Definition at line 1659 of file ffprobe.c.

Referenced by probe_file(), and read_interval_packets().

#define PRINT_DISPOSITION (   flagname,
  name 
)
Value:
do { \
print_int(name, !!(stream->disposition & AV_DISPOSITION_##flagname)); \
} while (0)

Referenced by show_stream().

#define CHECK_END   if (ret < 0) goto end

Referenced by probe_file().

#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); \
print_str("ident", LIB##LIBNAME##_IDENT); \
writer_print_section_footer(w); \
} \
} while (0)

Definition at line 2529 of file ffprobe.c.

Referenced by ffprobe_show_library_versions().

#define DEFINE_OPT_SHOW_SECTION (   section,
  target_section_id 
)
Value:
static int opt_show_##section(const char *opt, const char *arg) \
{ \
mark_section_show_entries(SECTION_ID_##target_section_id, 1, NULL); \
return 0; \
}

Definition at line 2878 of file ffprobe.c.

#define SET_DO_SHOW (   id,
  varname 
)
Value:
do { \
if (check_section_show_entries(SECTION_ID_##id)) \
do_show_##varname = 1; \
} while (0)

Definition at line 2950 of file ffprobe.c.

Referenced by main().

Enumeration Type Documentation

enum SectionID
Enumerator:
SECTION_ID_NONE 
SECTION_ID_CHAPTER 
SECTION_ID_CHAPTER_TAGS 
SECTION_ID_CHAPTERS 
SECTION_ID_ERROR 
SECTION_ID_FORMAT 
SECTION_ID_FORMAT_TAGS 
SECTION_ID_FRAME 
SECTION_ID_FRAMES 
SECTION_ID_FRAME_TAGS 
SECTION_ID_FRAME_SIDE_DATA_LIST 
SECTION_ID_FRAME_SIDE_DATA 
SECTION_ID_LIBRARY_VERSION 
SECTION_ID_LIBRARY_VERSIONS 
SECTION_ID_PACKET 
SECTION_ID_PACKETS 
SECTION_ID_PACKETS_AND_FRAMES 
SECTION_ID_PROGRAM_STREAM_DISPOSITION 
SECTION_ID_PROGRAM_STREAM_TAGS 
SECTION_ID_PROGRAM 
SECTION_ID_PROGRAM_STREAMS 
SECTION_ID_PROGRAM_STREAM 
SECTION_ID_PROGRAM_TAGS 
SECTION_ID_PROGRAM_VERSION 
SECTION_ID_PROGRAMS 
SECTION_ID_ROOT 
SECTION_ID_STREAM 
SECTION_ID_STREAM_DISPOSITION 
SECTION_ID_STREAMS 
SECTION_ID_STREAM_TAGS 
SECTION_ID_SUBTITLE 

Definition at line 117 of file ffprobe.c.

Enumerator:
WRITER_STRING_VALIDATION_FAIL 
WRITER_STRING_VALIDATION_REPLACE 
WRITER_STRING_VALIDATION_IGNORE 
WRITER_STRING_VALIDATION_NB 

Definition at line 279 of file ffprobe.c.

Function Documentation

static void ffprobe_cleanup ( int  ret)
static

Definition at line 207 of file ffprobe.c.

Referenced by main().

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

Definition at line 219 of file ffprobe.c.

Referenced by writer_print_time().

static const char* writer_get_name ( void p)
static

Definition at line 332 of file ffprobe.c.

static void* writer_child_next ( void obj,
void prev 
)
static

Definition at line 353 of file ffprobe.c.

static void writer_close ( WriterContext **  wctx)
static

Definition at line 369 of file ffprobe.c.

Referenced by main(), and writer_open().

static void bprint_bytes ( AVBPrint bp,
const uint8_t ubuf,
size_t  ubuf_size 
)
static

Definition at line 387 of file ffprobe.c.

Referenced by validate_string(), and writer_open().

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

Definition at line 396 of file ffprobe.c.

Referenced by main().

static void writer_print_section_header ( WriterContext wctx,
int  section_id 
)
inlinestatic
static void writer_print_section_footer ( WriterContext wctx)
inlinestatic
static void writer_print_integer ( WriterContext wctx,
const char *  key,
long long int  val 
)
inlinestatic

Definition at line 524 of file ffprobe.c.

Referenced by writer_print_ts().

static int validate_string ( WriterContext wctx,
char **  dstp,
const char *  src 
)
inlinestatic

Definition at line 535 of file ffprobe.c.

Referenced by writer_print_string().

static int writer_print_string ( WriterContext wctx,
const char *  key,
const char *  val,
int  flags 
)
inlinestatic
static void writer_print_rational ( WriterContext wctx,
const char *  key,
AVRational  q,
char  sep 
)
inlinestatic

Definition at line 629 of file ffprobe.c.

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

Definition at line 638 of file ffprobe.c.

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

Definition at line 655 of file ffprobe.c.

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

Definition at line 664 of file ffprobe.c.

Referenced by show_packet(), and show_stream().

static void writer_print_data_hash ( WriterContext wctx,
const char *  name,
uint8_t data,
int  size 
)
static

Definition at line 692 of file ffprobe.c.

Referenced by show_packet(), and show_stream().

static int writer_register ( const Writer writer)
static

Definition at line 711 of file ffprobe.c.

Referenced by writer_register_all().

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

Definition at line 722 of file ffprobe.c.

Referenced by main().

DEFINE_WRITER_CLASS ( default  )
static char* upcase_string ( char *  dst,
size_t  dst_size,
const char *  src 
)
inlinestatic

Definition at line 770 of file ffprobe.c.

Referenced by default_print_section_footer(), and default_print_section_header().

static void default_print_section_header ( WriterContext wctx)
static

Definition at line 779 of file ffprobe.c.

static void default_print_section_footer ( WriterContext wctx)
static

Definition at line 804 of file ffprobe.c.

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

Definition at line 817 of file ffprobe.c.

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

Definition at line 826 of file ffprobe.c.

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

Referenced by compact_init().

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

Referenced by compact_init().

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

Definition at line 892 of file ffprobe.c.

Referenced by compact_init().

DEFINE_WRITER_CLASS ( compact  )
static av_cold int compact_init ( WriterContext wctx)
static

Definition at line 927 of file ffprobe.c.

static void compact_print_section_header ( WriterContext wctx)
static

Definition at line 949 of file ffprobe.c.

static void compact_print_section_footer ( WriterContext wctx)
static

Definition at line 979 of file ffprobe.c.

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

Definition at line 989 of file ffprobe.c.

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

Definition at line 1002 of file ffprobe.c.

DEFINE_WRITER_CLASS ( csv  )
DEFINE_WRITER_CLASS ( flat  )
static av_cold int flat_init ( WriterContext wctx)
static

Definition at line 1077 of file ffprobe.c.

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

Definition at line 1091 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 1106 of file ffprobe.c.

Referenced by flat_print_str().

static void flat_print_section_header ( WriterContext wctx)
static

Definition at line 1124 of file ffprobe.c.

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

Definition at line 1150 of file ffprobe.c.

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

Definition at line 1155 of file ffprobe.c.

DEFINE_WRITER_CLASS ( ini  )
static char* ini_escape_str ( AVBPrint dst,
const char *  src 
)
static

Definition at line 1197 of file ffprobe.c.

Referenced by ini_print_str().

static void ini_print_section_header ( WriterContext wctx)
static

Definition at line 1224 of file ffprobe.c.

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

Definition at line 1257 of file ffprobe.c.

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

Definition at line 1268 of file ffprobe.c.

DEFINE_WRITER_CLASS ( json  )
static av_cold int json_init ( WriterContext wctx)
static

Definition at line 1303 of file ffprobe.c.

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

Definition at line 1313 of file ffprobe.c.

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

static void json_print_section_header ( WriterContext wctx)
static

Definition at line 1335 of file ffprobe.c.

static void json_print_section_footer ( WriterContext wctx)
static

Definition at line 1373 of file ffprobe.c.

static void json_print_item_str ( WriterContext wctx,
const char *  key,
const char *  value 
)
inlinestatic

Definition at line 1395 of file ffprobe.c.

Referenced by json_print_str().

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

Definition at line 1407 of file ffprobe.c.

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

Definition at line 1418 of file ffprobe.c.

DEFINE_WRITER_CLASS ( xml  )
static av_cold int xml_init ( WriterContext wctx)
static

Definition at line 1468 of file ffprobe.c.

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

Definition at line 1496 of file ffprobe.c.

Referenced by xml_print_str().

static void xml_print_section_header ( WriterContext wctx)
static

Definition at line 1516 of file ffprobe.c.

static void xml_print_section_footer ( WriterContext wctx)
static

Definition at line 1556 of file ffprobe.c.

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

Definition at line 1575 of file ffprobe.c.

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

Definition at line 1598 of file ffprobe.c.

static void writer_register_all ( void  )
static

Definition at line 1617 of file ffprobe.c.

Referenced by main().

static int show_tags ( WriterContext w,
AVDictionary tags,
int  section_id 
)
inlinestatic

Definition at line 1667 of file ffprobe.c.

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

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

Definition at line 1685 of file ffprobe.c.

Referenced by read_interval_packets().

static void show_subtitle ( WriterContext w,
AVSubtitle sub,
AVStream stream,
AVFormatContext fmt_ctx 
)
static

Definition at line 1721 of file ffprobe.c.

Referenced by process_frame().

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

Definition at line 1744 of file ffprobe.c.

Referenced by process_frame().

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

Definition at line 1833 of file ffprobe.c.

Referenced by read_interval_packets().

static void log_read_interval ( const ReadInterval interval,
void log_ctx,
int  log_level 
)
static

Definition at line 1876 of file ffprobe.c.

Referenced by parse_read_intervals(), and read_interval_packets().

static int read_interval_packets ( WriterContext w,
AVFormatContext fmt_ctx,
const ReadInterval interval,
int64_t *  cur_ts 
)
static

Definition at line 1900 of file ffprobe.c.

Referenced by read_packets().

static int read_packets ( WriterContext w,
AVFormatContext fmt_ctx 
)
static

Definition at line 2005 of file ffprobe.c.

Referenced by probe_file().

static int show_stream ( WriterContext w,
AVFormatContext fmt_ctx,
int  stream_idx,
int  in_program 
)
static

Definition at line 2024 of file ffprobe.c.

Referenced by show_program(), and show_streams().

static int show_streams ( WriterContext w,
AVFormatContext fmt_ctx 
)
static

Definition at line 2216 of file ffprobe.c.

Referenced by probe_file().

static int show_program ( WriterContext w,
AVFormatContext fmt_ctx,
AVProgram program 
)
static

Definition at line 2232 of file ffprobe.c.

Referenced by show_programs().

static int show_programs ( WriterContext w,
AVFormatContext fmt_ctx 
)
static

Definition at line 2266 of file ffprobe.c.

Referenced by probe_file().

static int show_chapters ( WriterContext w,
AVFormatContext fmt_ctx 
)
static

Definition at line 2283 of file ffprobe.c.

Referenced by probe_file().

static int show_format ( WriterContext w,
AVFormatContext fmt_ctx 
)
static

Definition at line 2307 of file ffprobe.c.

Referenced by probe_file().

static void show_error ( WriterContext w,
int  err 
)
static

Definition at line 2337 of file ffprobe.c.

Referenced by main().

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

Definition at line 2351 of file ffprobe.c.

Referenced by probe_file().

static void close_input_file ( AVFormatContext **  ctx_ptr)
static

Definition at line 2414 of file ffprobe.c.

Referenced by probe_file().

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

Definition at line 2427 of file ffprobe.c.

Referenced by main().

static void show_usage ( void  )
static

Definition at line 2504 of file ffprobe.c.

static void ffprobe_show_program_version ( WriterContext w)
static

Definition at line 2511 of file ffprobe.c.

Referenced by main().

static void ffprobe_show_library_versions ( WriterContext w)
static

Definition at line 2544 of file ffprobe.c.

Referenced by main().

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

Definition at line 2558 of file ffprobe.c.

static void mark_section_show_entries ( SectionID  section_id,
int  show_all_entries,
AVDictionary entries 
)
inlinestatic

Definition at line 2568 of file ffprobe.c.

Referenced by match_section(), and opt_show_versions().

static int match_section ( const char *  section_name,
int  show_all_entries,
AVDictionary entries 
)
static

Definition at line 2583 of file ffprobe.c.

Referenced by opt_show_entries().

static int opt_show_entries ( void optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 2602 of file ffprobe.c.

Referenced by opt_show_format_entry().

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

Definition at line 2652 of file ffprobe.c.

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

Definition at line 2665 of file ffprobe.c.

Referenced by main(), and opt_input_file_i().

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

Definition at line 2678 of file ffprobe.c.

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

Per-fftool specific help handler.

Implemented in each fftool, called by show_help().

Definition at line 2684 of file ffprobe.c.

static int parse_read_interval ( const char *  interval_spec,
ReadInterval interval 
)
static

Parse interval specification, according to the format: INTERVAL ::= [START|+START_OFFSET][%[END|+END_OFFSET]] INTERVALS ::= INTERVAL[,INTERVALS].

Definition at line 2699 of file ffprobe.c.

Referenced by parse_read_intervals().

static int parse_read_intervals ( const char *  intervals_spec)
static

Definition at line 2780 of file ffprobe.c.

Referenced by opt_read_intervals().

static int opt_read_intervals ( void optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 2828 of file ffprobe.c.

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

Definition at line 2833 of file ffprobe.c.

static void print_section ( SectionID  id,
int  level 
)
static

Definition at line 2842 of file ffprobe.c.

Referenced by opt_sections().

static int opt_sections ( void optctx,
const char *  opt,
const char *  arg 
)
static

Definition at line 2859 of file ffprobe.c.

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

Definition at line 2871 of file ffprobe.c.

DEFINE_OPT_SHOW_SECTION ( chapters  ,
CHAPTERS   
)
DEFINE_OPT_SHOW_SECTION ( error  ,
ERROR   
)
DEFINE_OPT_SHOW_SECTION ( format  ,
FORMAT   
)
DEFINE_OPT_SHOW_SECTION ( frames  ,
FRAMES   
)
DEFINE_OPT_SHOW_SECTION ( library_versions  ,
LIBRARY_VERSIONS   
)
DEFINE_OPT_SHOW_SECTION ( packets  ,
PACKETS   
)
DEFINE_OPT_SHOW_SECTION ( program_version  ,
PROGRAM_VERSION   
)
DEFINE_OPT_SHOW_SECTION ( streams  ,
STREAMS   
)
DEFINE_OPT_SHOW_SECTION ( programs  ,
PROGRAMS   
)
static int check_section_show_entries ( int  section_id)
inlinestatic

Definition at line 2938 of file ffprobe.c.

int main ( int  argc,
char **  argv 
)

Definition at line 2955 of file ffprobe.c.

Variable Documentation

const char program_name[] = "ffprobe"

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

Definition at line 50 of file ffprobe.c.

const int program_birth_year = 2007

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

Definition at line 51 of file ffprobe.c.

int do_bitexact = 0
static

Definition at line 53 of file ffprobe.c.

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

int do_count_frames = 0
static

Definition at line 54 of file ffprobe.c.

Referenced by probe_file().

int do_count_packets = 0
static

Definition at line 55 of file ffprobe.c.

Referenced by probe_file().

int do_read_frames = 0
static

Definition at line 56 of file ffprobe.c.

Referenced by probe_file(), and read_interval_packets().

int do_read_packets = 0
static

Definition at line 57 of file ffprobe.c.

Referenced by probe_file(), and read_interval_packets().

int do_show_chapters = 0
static

Definition at line 58 of file ffprobe.c.

Referenced by main(), and probe_file().

int do_show_error = 0
static

Definition at line 59 of file ffprobe.c.

Referenced by main().

int do_show_format = 0
static

Definition at line 60 of file ffprobe.c.

Referenced by main(), and probe_file().

int do_show_frames = 0
static

Definition at line 61 of file ffprobe.c.

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

int do_show_packets = 0
static

Definition at line 62 of file ffprobe.c.

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

int do_show_programs = 0
static

Definition at line 63 of file ffprobe.c.

Referenced by main(), and probe_file().

int do_show_streams = 0
static

Definition at line 64 of file ffprobe.c.

Referenced by main(), and probe_file().

int do_show_stream_disposition = 0
static

Definition at line 65 of file ffprobe.c.

Referenced by show_stream().

int do_show_data = 0
static

Definition at line 66 of file ffprobe.c.

Referenced by show_packet(), and show_stream().

int do_show_program_version = 0
static

Definition at line 67 of file ffprobe.c.

Referenced by main().

int do_show_library_versions = 0
static

Definition at line 68 of file ffprobe.c.

Referenced by main().

int do_show_chapter_tags = 0
static

Definition at line 70 of file ffprobe.c.

Referenced by show_chapters().

int do_show_format_tags = 0
static

Definition at line 71 of file ffprobe.c.

Referenced by show_format().

int do_show_frame_tags = 0
static

Definition at line 72 of file ffprobe.c.

Referenced by show_frame().

int do_show_program_tags = 0
static

Definition at line 73 of file ffprobe.c.

Referenced by show_program().

int do_show_stream_tags = 0
static

Definition at line 74 of file ffprobe.c.

Referenced by show_stream().

int show_value_unit = 0
static

Definition at line 76 of file ffprobe.c.

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

int use_value_prefix = 0
static

Definition at line 77 of file ffprobe.c.

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

int use_byte_value_binary_prefix = 0
static

Definition at line 78 of file ffprobe.c.

Referenced by opt_pretty(), and value_string().

int use_value_sexagesimal_format = 0
static

Definition at line 79 of file ffprobe.c.

Referenced by opt_pretty(), and value_string().

int show_private_data = 1
static

Definition at line 80 of file ffprobe.c.

Referenced by show_stream(), and xml_init().

char* print_format
static

Definition at line 82 of file ffprobe.c.

Referenced by main().

char* stream_specifier
static

Definition at line 83 of file ffprobe.c.

Referenced by probe_file().

char* show_data_hash
static

Definition at line 84 of file ffprobe.c.

Referenced by main().

ReadInterval* read_intervals
static

Definition at line 94 of file ffprobe.c.

int read_intervals_nb = 0
static

Definition at line 95 of file ffprobe.c.

Referenced by parse_read_intervals(), and read_packets().

struct section sections[]
static

Definition at line 151 of file ffprobe.c.

Referenced by writer_open().

const OptionDef* options
static

Definition at line 186 of file ffprobe.c.

const char* input_filename
static

Definition at line 189 of file ffprobe.c.

Referenced by main(), and opt_input_file().

AVInputFormat* iformat = NULL
static

Definition at line 190 of file ffprobe.c.

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

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

Definition at line 194 of file ffprobe.c.

Referenced by value_string().

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

Definition at line 195 of file ffprobe.c.

Referenced by value_string().

const char unit_second_str[] = "s"
static

Definition at line 197 of file ffprobe.c.

Referenced by value_string(), and writer_print_time().

const char unit_hertz_str[] = "Hz"
static

Definition at line 198 of file ffprobe.c.

Referenced by show_stream().

const char unit_byte_str[] = "byte"
static

Definition at line 199 of file ffprobe.c.

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

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

Definition at line 200 of file ffprobe.c.

Referenced by show_format(), and show_stream().

int nb_streams
static
uint64_t* nb_streams_packets
static

Definition at line 203 of file ffprobe.c.

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

uint64_t* nb_streams_frames
static

Definition at line 204 of file ffprobe.c.

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

int* selected_streams
static

Definition at line 205 of file ffprobe.c.

Referenced by probe_file(), read_interval_packets(), show_program(), and show_streams().

const AVOption writer_options[]
static
Initial value:
= {
{ "string_validation", "set string validation mode",
OFFSET(string_validation), AV_OPT_TYPE_INT, {.i64=WRITER_STRING_VALIDATION_REPLACE}, 0, WRITER_STRING_VALIDATION_NB-1, .unit = "sv" },
{ "sv", "set string validation mode",
OFFSET(string_validation), AV_OPT_TYPE_INT, {.i64=WRITER_STRING_VALIDATION_REPLACE}, 0, WRITER_STRING_VALIDATION_NB-1, .unit = "sv" },
{ "ignore", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = WRITER_STRING_VALIDATION_IGNORE}, .unit = "sv" },
{ "replace", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = WRITER_STRING_VALIDATION_REPLACE}, .unit = "sv" },
{ "fail", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = WRITER_STRING_VALIDATION_FAIL}, .unit = "sv" },
{ "string_validation_replacement", "set string validation replacement string", OFFSET(string_validation_replacement), AV_OPT_TYPE_STRING, {.str=""}},
{ "svr", "set string validation replacement string", OFFSET(string_validation_replacement), AV_OPT_TYPE_STRING, {.str="\xEF\xBF\xBD"}},
{ NULL }
}

Definition at line 340 of file ffprobe.c.

const AVClass writer_class
static
Initial value:
= {
.class_name = "Writer",
.item_name = writer_get_name,
.option = writer_options,
.child_next = writer_child_next,
}

Definition at line 361 of file ffprobe.c.

Referenced by writer_open().

const Writer* registered_writers[MAX_REGISTERED_WRITERS_NB+1]
static

Definition at line 709 of file ffprobe.c.

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

const Writer default_writer
static
Initial value:
= {
.name = "default",
.priv_size = sizeof(DefaultContext),
.print_integer = default_print_int,
.print_string = default_print_str,
.priv_class = &default_class,
}

Definition at line 835 of file ffprobe.c.

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

const Writer compact_writer
static
Initial value:
= {
.name = "compact",
.priv_size = sizeof(CompactContext),
.print_integer = compact_print_int,
.print_string = compact_print_str,
.priv_class = &compact_class,
}

Definition at line 1012 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 1029 of file ffprobe.c.

const Writer csv_writer
static
Initial value:

Definition at line 1043 of file ffprobe.c.

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

const Writer flat_writer
static
Initial value:
= {
.name = "flat",
.priv_size = sizeof(FlatContext),
.print_integer = flat_print_int,
.print_string = flat_print_str,
.priv_class = &flat_class,
}

Definition at line 1168 of file ffprobe.c.

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

const Writer ini_writer
static
Initial value:
= {
.name = "ini",
.priv_size = sizeof(INIContext),
.print_integer = ini_print_int,
.print_string = ini_print_str,
.priv_class = &ini_class,
}

Definition at line 1273 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 1295 of file ffprobe.c.

const Writer json_writer
static
Initial value:
= {
.name = "json",
.priv_size = sizeof(JSONContext),
.print_integer = json_print_int,
.print_string = json_print_str,
.priv_class = &json_class,
}

Definition at line 1433 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 1458 of file ffprobe.c.

Writer xml_writer
static
Initial value:
= {
.name = "xml",
.priv_size = sizeof(XMLContext),
.print_integer = xml_print_int,
.print_string = xml_print_str,
.priv_class = &xml_class,
}

Definition at line 1605 of file ffprobe.c.

const OptionDef real_options[]
static

Definition at line 2895 of file ffprobe.c.

Referenced by main().