FFmpeg
Loading...
Searching...
No Matches
graphprint.c File Reference

output writers for filtergraph details More...

#include <string.h>
#include <stdatomic.h>
#include "graphprint.h"
#include "fftools/ffmpeg.h"
#include "fftools/ffmpeg_mux.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "libavutil/dict.h"
#include "libavutil/common.h"
#include "libavfilter/avfilter.h"
#include "libavutil/buffer.h"
#include "libavutil/hwcontext.h"
#include "fftools/textformat/avtextformat.h"
#include "fftools/textformat/tf_mermaid.h"
#include "fftools/resources/resman.h"

Go to the source code of this file.

Data Structures

struct  GraphPrintContext
 

Macros

#define print_id(k, v)
 
#define print_id_noprefix(k, v)
 
#define print_int(k, v)
 
#define print_int_opt(k, v)
 
#define print_q(k, v, s)
 
#define print_str(k, v)
 
#define print_str_opt(k, v)
 
#define print_val(k, v, u)
 
#define print_fmt(k, f, ...)
 
#define print_fmt_opt(k, f, ...)
 

Enumerations

enum  SectionID {
  SECTION_ID_ROOT , SECTION_ID_FILTERGRAPHS , SECTION_ID_FILTERGRAPH , SECTION_ID_GRAPH_INPUTS ,
  SECTION_ID_GRAPH_INPUT , SECTION_ID_GRAPH_OUTPUTS , SECTION_ID_GRAPH_OUTPUT , SECTION_ID_FILTERS ,
  SECTION_ID_FILTER , SECTION_ID_FILTER_INPUTS , SECTION_ID_FILTER_INPUT , SECTION_ID_FILTER_OUTPUTS ,
  SECTION_ID_FILTER_OUTPUT , SECTION_ID_HWFRAMESCONTEXT , SECTION_ID_INPUTFILES , SECTION_ID_INPUTFILE ,
  SECTION_ID_INPUTSTREAMS , SECTION_ID_INPUTSTREAM , SECTION_ID_OUTPUTFILES , SECTION_ID_OUTPUTFILE ,
  SECTION_ID_OUTPUTSTREAMS , SECTION_ID_OUTPUTSTREAM , SECTION_ID_STREAMLINKS , SECTION_ID_STREAMLINK ,
  SECTION_ID_DECODERS , SECTION_ID_DECODER , SECTION_ID_ENCODERS , SECTION_ID_ENCODER
}
 

Functions

static char * upcase_string (char *dst, size_t dst_size, const char *src)
 
static char * get_extension (const char *url)
 
static void print_hwdevicecontext (const GraphPrintContext *gpc, const AVHWDeviceContext *hw_device_context)
 
static void print_hwframescontext (const GraphPrintContext *gpc, const AVHWFramesContext *hw_frames_context)
 
static void print_link (GraphPrintContext *gpc, AVFilterLink *link)
 
static char sanitize_char (const char c)
 
static void print_sanizied_id (const GraphPrintContext *gpc, const char *key, const char *id_str, int skip_prefix)
 
static void print_section_header_id (const GraphPrintContext *gpc, int section_id, const char *id_str, int skip_prefix)
 
static const char * get_filterpad_name (const AVFilterPad *pad)
 
static void print_filter (GraphPrintContext *gpc, const AVFilterContext *filter, AVDictionary *input_map, AVDictionary *output_map)
 
static void print_filtergraph_single (GraphPrintContext *gpc, FilterGraph *fg, AVFilterGraph *graph)
 
static int print_streams (GraphPrintContext *gpc, InputFile **ifiles, int nb_ifiles, OutputFile **ofiles, int nb_ofiles)
 
static void uninit_graphprint (GraphPrintContext *gpc)
 
static int init_graphprint (GraphPrintContext **pgpc, AVBPrint *target_buf)
 
int print_filtergraph (FilterGraph *fg, AVFilterGraph *graph)
 
static int print_filtergraphs_priv (FilterGraph **graphs, int nb_graphs, InputFile **ifiles, int nb_ifiles, OutputFile **ofiles, int nb_ofiles)
 
int print_filtergraphs (FilterGraph **graphs, int nb_graphs, InputFile **ifiles, int nb_ifiles, OutputFile **ofiles, int nb_ofiles)
 

Variables

static const AVTextFormatSection sections []
 
static atomic_int prefix_num = 0
 

Detailed Description

output writers for filtergraph details

Definition in file graphprint.c.

Macro Definition Documentation

◆ print_id

#define print_id ( k,
v )
Value:
print_sanizied_id(gpc, k, v, 0)
static void print_sanizied_id(const GraphPrintContext *gpc, const char *key, const char *id_str, int skip_prefix)
Definition graphprint.c:332

Definition at line 137 of file graphprint.c.

Referenced by print_filter(), and print_filtergraph_single().

◆ print_id_noprefix

#define print_id_noprefix ( k,
v )
Value:
print_sanizied_id(gpc, k, v, 1)

Definition at line 138 of file graphprint.c.

Referenced by print_filter().

◆ print_int

#define print_int ( k,
v )
Value:
avtext_print_integer(tfc, k, v, 0)
void avtext_print_integer(AVTextFormatContext *tctx, const char *key, int64_t val, int flags)

Definition at line 139 of file graphprint.c.

Referenced by print_filter(), print_filtergraph_single(), and print_link().

◆ print_int_opt

#define print_int_opt ( k,
v )
Value:
avtext_print_integer(tfc, k, v, gpc->opt_flags)

Definition at line 140 of file graphprint.c.

Referenced by print_filter(), print_hwdevicecontext(), and print_hwframescontext().

◆ print_q

#define print_q ( k,
v,
s )
Value:
void avtext_print_rational(AVTextFormatContext *tctx, const char *key, AVRational q, char sep)
#define s(width, name)
Definition cbs_vp9.c:198

Definition at line 141 of file graphprint.c.

Referenced by print_link().

◆ print_str

#define print_str ( k,
v )
Value:
avtext_print_string(tfc, k, v, 0)
int avtext_print_string(AVTextFormatContext *tctx, const char *key, const char *val, int flags)

Definition at line 142 of file graphprint.c.

Referenced by print_filter(), print_filtergraph_single(), print_hwframescontext(), print_link(), print_sanizied_id(), and print_streams().

◆ print_str_opt

#define print_str_opt ( k,
v )
Value:
avtext_print_string(tfc, k, v, gpc->opt_flags)

Definition at line 143 of file graphprint.c.

Referenced by print_filter(), print_hwdevicecontext(), print_hwframescontext(), print_link(), and print_streams().

◆ print_val

#define print_val ( k,
v,
u )
Value:
void avtext_print_unit_integer(AVTextFormatContext *tctx, const char *key, int64_t val, AVTextFormatValueFormat fmt, const char *unit)
@ AV_TEXTFORMAT_VALUE_FMT_INT
#define u(width, name, range_min, range_max)
Definition cbs_apv.c:68

Definition at line 144 of file graphprint.c.

Referenced by print_link().

◆ print_fmt

#define print_fmt ( k,
f,
... )
Value:
do { \
av_bprint_clear(&gpc->pbuf); \
av_bprintf(&gpc->pbuf, f, __VA_ARGS__); \
avtext_print_string(tfc, k, gpc->pbuf.str, 0); \
} while (0)
#define f(width, name)
Definition cbs_vp8.c:236

Definition at line 146 of file graphprint.c.

Referenced by print_filtergraph_single(), print_link(), and print_streams().

◆ print_fmt_opt

#define print_fmt_opt ( k,
f,
... )
Value:
do { \
av_bprint_clear(&gpc->pbuf); \
av_bprintf(&gpc->pbuf, f, __VA_ARGS__); \
avtext_print_string(tfc, k, gpc->pbuf.str, gpc->opt_flags); \
} while (0)

Definition at line 152 of file graphprint.c.

Referenced by print_link().

Enumeration Type Documentation

◆ SectionID

enum SectionID
Enumerator
SECTION_ID_ROOT 
SECTION_ID_FILTERGRAPHS 
SECTION_ID_FILTERGRAPH 
SECTION_ID_GRAPH_INPUTS 
SECTION_ID_GRAPH_INPUT 
SECTION_ID_GRAPH_OUTPUTS 
SECTION_ID_GRAPH_OUTPUT 
SECTION_ID_FILTERS 
SECTION_ID_FILTER 
SECTION_ID_FILTER_INPUTS 
SECTION_ID_FILTER_INPUT 
SECTION_ID_FILTER_OUTPUTS 
SECTION_ID_FILTER_OUTPUT 
SECTION_ID_HWFRAMESCONTEXT 
SECTION_ID_INPUTFILES 
SECTION_ID_INPUTFILE 
SECTION_ID_INPUTSTREAMS 
SECTION_ID_INPUTSTREAM 
SECTION_ID_OUTPUTFILES 
SECTION_ID_OUTPUTFILE 
SECTION_ID_OUTPUTSTREAMS 
SECTION_ID_OUTPUTSTREAM 
SECTION_ID_STREAMLINKS 
SECTION_ID_STREAMLINK 
SECTION_ID_DECODERS 
SECTION_ID_DECODER 
SECTION_ID_ENCODERS 
SECTION_ID_ENCODER 

Definition at line 47 of file graphprint.c.

Function Documentation

◆ upcase_string()

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

Definition at line 161 of file graphprint.c.

Referenced by default_print_section_header(), and print_streams().

◆ get_extension()

static char * get_extension ( const char * url)
static

Definition at line 170 of file graphprint.c.

Referenced by print_streams().

◆ print_hwdevicecontext()

static void print_hwdevicecontext ( const GraphPrintContext * gpc,
const AVHWDeviceContext * hw_device_context )
static

Definition at line 202 of file graphprint.c.

Referenced by print_filter().

◆ print_hwframescontext()

static void print_hwframescontext ( const GraphPrintContext * gpc,
const AVHWFramesContext * hw_frames_context )
static

Definition at line 213 of file graphprint.c.

Referenced by print_link().

◆ print_link()

static void print_link ( GraphPrintContext * gpc,
AVFilterLink * link )
static

Definition at line 248 of file graphprint.c.

Referenced by print_filter().

◆ sanitize_char()

static char sanitize_char ( const char c)
static

Definition at line 325 of file graphprint.c.

Referenced by print_sanizied_id(), and print_section_header_id().

◆ print_sanizied_id()

static void print_sanizied_id ( const GraphPrintContext * gpc,
const char * key,
const char * id_str,
int skip_prefix )
static

Definition at line 332 of file graphprint.c.

◆ print_section_header_id()

static void print_section_header_id ( const GraphPrintContext * gpc,
int section_id,
const char * id_str,
int skip_prefix )
static

Definition at line 354 of file graphprint.c.

Referenced by print_filter(), print_filtergraph_single(), and print_streams().

◆ get_filterpad_name()

static const char * get_filterpad_name ( const AVFilterPad * pad)
static

Definition at line 379 of file graphprint.c.

Referenced by print_filter().

◆ print_filter()

static void print_filter ( GraphPrintContext * gpc,
const AVFilterContext * filter,
AVDictionary * input_map,
AVDictionary * output_map )
static

Definition at line 384 of file graphprint.c.

Referenced by print_filtergraph_single().

◆ print_filtergraph_single()

static void print_filtergraph_single ( GraphPrintContext * gpc,
FilterGraph * fg,
AVFilterGraph * graph )
static

Definition at line 474 of file graphprint.c.

Referenced by print_filtergraph().

◆ print_streams()

static int print_streams ( GraphPrintContext * gpc,
InputFile ** ifiles,
int nb_ifiles,
OutputFile ** ofiles,
int nb_ofiles )
static

Definition at line 583 of file graphprint.c.

Referenced by print_filtergraphs_priv().

◆ uninit_graphprint()

static void uninit_graphprint ( GraphPrintContext * gpc)
static

Definition at line 852 of file graphprint.c.

Referenced by print_filtergraph(), and print_filtergraphs_priv().

◆ init_graphprint()

static int init_graphprint ( GraphPrintContext ** pgpc,
AVBPrint * target_buf )
static

Definition at line 866 of file graphprint.c.

Referenced by print_filtergraph(), and print_filtergraphs_priv().

◆ print_filtergraph()

int print_filtergraph ( FilterGraph * fg,
AVFilterGraph * graph )

Definition at line 948 of file graphprint.c.

Referenced by filter_thread().

◆ print_filtergraphs_priv()

static int print_filtergraphs_priv ( FilterGraph ** graphs,
int nb_graphs,
InputFile ** ifiles,
int nb_ifiles,
OutputFile ** ofiles,
int nb_ofiles )
static

Definition at line 989 of file graphprint.c.

Referenced by print_filtergraphs().

◆ print_filtergraphs()

int print_filtergraphs ( FilterGraph ** graphs,
int nb_graphs,
InputFile ** ifiles,
int nb_ifiles,
OutputFile ** ofiles,
int nb_ofiles )

Definition at line 1074 of file graphprint.c.

Referenced by ffmpeg_cleanup().

Variable Documentation

◆ sections

const AVTextFormatSection sections[]
static

Definition at line 78 of file graphprint.c.

◆ prefix_num

atomic_int prefix_num = 0
static

Definition at line 159 of file graphprint.c.

Referenced by init_graphprint().