#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 Writer * | writer_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 AVDictionary * | fmt_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 OptionDef * | options |
static const char * | input_filename |
static AVInputFormat * | iformat = 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_t * | nb_streams_packets |
static uint64_t * | nb_streams_frames |
static const AVClass | writer_class |
static const Writer * | registered_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 [] |
Definition in 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 DEFINE_WRITER_CLASS | ( | name | ) |
#define JSON_INDENT | ( | ) | printf("%*c", json->indent_level * 4, ' ') |
Definition at line 1071 of file ffprobe.c.
Referenced by json_print_int(), json_print_section_footer(), json_print_section_header(), and json_print_str().
#define MAX_REGISTERED_WRITERS_NB 64 |
#define OFFSET | ( | x | ) | offsetof(XMLContext, x) |
#define OFFSET | ( | x | ) | offsetof(JSONContext, x) |
#define OFFSET | ( | x | ) | offsetof(INIContext, x) |
#define OFFSET | ( | x | ) | offsetof(FlatContext, x) |
#define OFFSET | ( | x | ) | offsetof(CompactContext, x) |
#define OFFSET | ( | x | ) | offsetof(CompactContext, x) |
#define OFFSET | ( | x | ) | offsetof(DefaultContext, x) |
#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_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, | |||
v | ) | 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, | |||||
s | ) | writer_print_rational(w, k, v, s) |
#define print_section_footer | ( | s | ) | writer_print_section_footer(w, s) |
#define print_section_header | ( | s | ) | writer_print_section_header(w, s) |
#define print_str | ( | k, | |||
v | ) | writer_print_string(w, k, v, 0) |
Definition at line 1380 of file ffprobe.c.
Referenced by ffprobe_show_program_version(), show_error(), show_format(), show_frame(), show_packet(), and show_stream().
#define print_str_opt | ( | k, | |||
v | ) | 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, | |||
v | ) | 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, | |||||
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 1386 of file ffprobe.c.
Referenced by show_format(), show_packet(), and show_stream().
#define SECTION_FLAG_IS_ARRAY 2 |
the section contains an array of elements of the same type
Definition at line 80 of file ffprobe.c.
Referenced by compact_print_section_footer(), compact_print_section_header(), default_print_section_footer(), default_print_section_header(), flat_print_key_prefix(), flat_print_section_header(), ini_print_section_header(), json_print_section_footer(), json_print_section_header(), and xml_print_section_header().
#define SECTION_FLAG_IS_WRAPPER 1 |
the section only contains other sections, but has no data at its own level
Definition at line 79 of file ffprobe.c.
Referenced by compact_print_section_footer(), compact_print_section_header(), default_print_section_footer(), default_print_section_header(), flat_print_section_header(), ini_print_section_header(), and json_print_section_header().
#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 |
#define WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER 2 |
#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 struct WriterContext WriterContext |
enum SectionID |
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] |
static av_cold int compact_init | ( | WriterContext * | wctx, | |
const char * | args | |||
) | [static] |
static void compact_print_int | ( | WriterContext * | wctx, | |
const char * | key, | |||
long long int | value | |||
) | [static] |
static void compact_print_section_footer | ( | WriterContext * | wctx | ) | [static] |
static void compact_print_section_header | ( | WriterContext * | wctx | ) | [static] |
static void compact_print_str | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | value | |||
) | [static] |
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] |
static void default_print_section_footer | ( | WriterContext * | wctx | ) | [static] |
static void default_print_section_header | ( | WriterContext * | wctx | ) | [static] |
static void default_print_str | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | value | |||
) | [static] |
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 | ) |
static void ffprobe_show_library_versions | ( | WriterContext * | w | ) | [static] |
static void ffprobe_show_program_version | ( | WriterContext * | w | ) | [static] |
static const char* flat_escape_key_str | ( | AVBPrint * | dst, | |
const char * | src, | |||
const char | sep | |||
) | [static] |
static const char* flat_escape_value_str | ( | AVBPrint * | dst, | |
const char * | src | |||
) | [static] |
static av_cold int flat_init | ( | WriterContext * | wctx, | |
const char * | args | |||
) | [static] |
static void flat_print_int | ( | WriterContext * | wctx, | |
const char * | key, | |||
long long int | value | |||
) | [static] |
static void flat_print_key_prefix | ( | WriterContext * | wctx | ) | [static] |
static void flat_print_section_header | ( | WriterContext * | wctx | ) | [static] |
static void flat_print_str | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | value | |||
) | [static] |
static void flat_uninit | ( | WriterContext * | wctx | ) | [static] |
static char* ini_escape_str | ( | AVBPrint * | dst, | |
const char * | src | |||
) | [static] |
static void ini_print_int | ( | WriterContext * | wctx, | |
const char * | key, | |||
long long int | value | |||
) | [static] |
static void ini_print_section_header | ( | WriterContext * | wctx | ) | [static] |
static void ini_print_str | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | value | |||
) | [static] |
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] |
static void json_print_int | ( | WriterContext * | wctx, | |
const char * | key, | |||
long long int | value | |||
) | [static] |
static void json_print_item_str | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | value | |||
) | [inline, static] |
static void json_print_section_footer | ( | WriterContext * | wctx | ) | [static] |
static void json_print_section_header | ( | WriterContext * | wctx | ) | [static] |
static void json_print_str | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | value | |||
) | [static] |
static const char* none_escape_str | ( | AVBPrint * | dst, | |
const char * | src, | |||
const char | sep, | |||
void * | log_ctx | |||
) | [static] |
static int open_input_file | ( | AVFormatContext ** | fmt_ctx_ptr, | |
const char * | filename | |||
) | [static] |
static int opt_format | ( | void * | optctx, | |
const char * | opt, | |||
const char * | arg | |||
) | [static] |
static void opt_input_file | ( | void * | optctx, | |
const char * | arg | |||
) | [static] |
static int opt_input_file_i | ( | void * | optctx, | |
const char * | opt, | |||
const char * | arg | |||
) | [static] |
static int opt_pretty | ( | void * | optctx, | |
const char * | opt, | |||
const char * | arg | |||
) | [static] |
static int opt_show_format_entry | ( | void * | optctx, | |
const char * | opt, | |||
const char * | arg | |||
) | [static] |
static int opt_show_versions | ( | const char * | opt, | |
const char * | arg | |||
) | [static] |
static int probe_file | ( | WriterContext * | wctx, | |
const char * | filename | |||
) | [static] |
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] |
static void show_error | ( | WriterContext * | w, | |
int | err | |||
) | [static] |
static void show_format | ( | WriterContext * | w, | |
AVFormatContext * | fmt_ctx | |||
) | [static] |
static void show_frame | ( | WriterContext * | w, | |
AVFrame * | frame, | |||
AVStream * | stream, | |||
AVFormatContext * | fmt_ctx | |||
) | [static] |
void show_help_default | ( | const char * | opt, | |
const char * | arg | |||
) |
Per-avtool specific help handler.
Implemented in each avtool, called by show_help().
static void show_packet | ( | WriterContext * | w, | |
AVFormatContext * | fmt_ctx, | |||
AVPacket * | pkt, | |||
int | packet_idx | |||
) | [static] |
static void show_stream | ( | WriterContext * | w, | |
AVFormatContext * | fmt_ctx, | |||
int | stream_idx | |||
) | [static] |
static void show_streams | ( | WriterContext * | w, | |
AVFormatContext * | fmt_ctx | |||
) | [static] |
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 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] |
static void writer_close | ( | WriterContext ** | wctx | ) | [static] |
static const Writer* writer_get_by_name | ( | const char * | name | ) | [static] |
static int writer_open | ( | WriterContext ** | wctx, | |
const Writer * | writer, | |||
const char * | args, | |||
const struct section * | sections, | |||
int | nb_sections | |||
) | [static] |
static void writer_print_data | ( | WriterContext * | wctx, | |
const char * | name, | |||
uint8_t * | data, | |||
int | size | |||
) | [static] |
static void writer_print_integer | ( | WriterContext * | wctx, | |
const char * | key, | |||
long long int | val | |||
) | [inline, static] |
static void writer_print_rational | ( | WriterContext * | wctx, | |
const char * | key, | |||
AVRational | q, | |||
char | sep | |||
) | [inline, static] |
static void writer_print_section_footer | ( | WriterContext * | wctx | ) | [inline, static] |
Definition at line 344 of file ffprobe.c.
Referenced by ffprobe_show_library_versions(), ffprobe_show_program_version(), main(), probe_file(), show_error(), show_format(), show_frame(), show_packet(), show_stream(), show_streams(), and show_tags().
static void writer_print_section_header | ( | WriterContext * | wctx, | |
int | section_id | |||
) | [inline, static] |
Definition at line 320 of file ffprobe.c.
Referenced by ffprobe_show_library_versions(), ffprobe_show_program_version(), main(), probe_file(), show_error(), show_format(), show_frame(), show_packet(), show_stream(), show_streams(), and show_tags().
static void writer_print_string | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | val, | |||
int | opt | |||
) | [inline, static] |
Definition at line 372 of file ffprobe.c.
Referenced by show_tags(), writer_print_data(), writer_print_rational(), writer_print_time(), and writer_print_ts().
static void writer_print_time | ( | WriterContext * | wctx, | |
const char * | key, | |||
int64_t | ts, | |||
const AVRational * | time_base, | |||
int | is_duration | |||
) | [static] |
static void writer_print_ts | ( | WriterContext * | wctx, | |
const char * | key, | |||
int64_t | ts, | |||
int | is_duration | |||
) | [static] |
static void writer_register_all | ( | void | ) | [static] |
static const char* xml_escape_str | ( | AVBPrint * | dst, | |
const char * | src, | |||
void * | log_ctx | |||
) | [static] |
static av_cold int xml_init | ( | WriterContext * | wctx, | |
const char * | args | |||
) | [static] |
static void xml_print_int | ( | WriterContext * | wctx, | |
const char * | key, | |||
long long int | value | |||
) | [static] |
static void xml_print_section_footer | ( | WriterContext * | wctx | ) | [static] |
static void xml_print_section_header | ( | WriterContext * | wctx | ) | [static] |
static void xml_print_str | ( | WriterContext * | wctx, | |
const char * | key, | |||
const char * | value | |||
) | [static] |
const char* const binary_unit_prefixes[] = { "", "Ki", "Mi", "Gi", "Ti", "Pi" } [static] |
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}, }
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, }
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}, }
const Writer csv_writer [static] |
Initial value:
{ .name = "csv", .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 = &csv_class, }
const char* const decimal_unit_prefixes[] = { "", "K" , "M" , "G" , "T" , "P" } [static] |
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}, }
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, }
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_data = 0 [static] |
int do_show_error = 0 [static] |
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().
int do_show_library_versions = 0 [static] |
int do_show_packets = 0 [static] |
Definition at line 59 of file ffprobe.c.
Referenced by main(), probe_file(), read_packets(), and xml_init().
int do_show_program_version = 0 [static] |
int do_show_streams = 0 [static] |
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}, }
const Writer flat_writer [static] |
Initial value:
{ .name = "flat", .priv_size = sizeof(FlatContext), .init = flat_init, .uninit = flat_uninit, .print_section_header = flat_print_section_header, .print_integer = flat_print_int, .print_string = flat_print_str, .flags = WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS|WRITER_FLAG_PUT_PACKETS_AND_FRAMES_IN_SAME_CHAPTER, .priv_class = &flat_class, }
AVDictionary* fmt_entries_to_show = NULL [static] |
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}, }
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, }
const char* input_filename [static] |
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 } }
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, }
uint64_t* nb_streams_frames [static] |
Definition at line 140 of file ffprobe.c.
Referenced by probe_file(), process_frame(), and show_stream().
uint64_t* nb_streams_packets [static] |
Definition at line 139 of file ffprobe.c.
Referenced by probe_file(), read_packets(), and show_stream().
char* print_format [static] |
const int program_birth_year = 2007 |
program birth year, defined by the program for show_banner()
const char program_name[] = "ffprobe" |
const OptionDef real_options[] [static] |
const Writer* registered_writers[MAX_REGISTERED_WRITERS_NB+1] [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), }
int show_private_data = 1 [static] |
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] |
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] |
const char unit_second_str[] = "s" [static] |
int use_byte_value_binary_prefix = 0 [static] |
int use_value_prefix = 0 [static] |
Definition at line 66 of file ffprobe.c.
Referenced by opt_pretty(), value_string(), and xml_init().
int use_value_sexagesimal_format = 0 [static] |
const AVClass writer_class [static] |
Initial value:
{ "Writer", writer_get_name, NULL, LIBAVUTIL_VERSION_INT, }
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}, }
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, }