FFmpeg
Loading...
Searching...
No Matches
tf_mermaid.c File Reference
#include <inttypes.h>
#include <limits.h>
#include <stdarg.h>
#include <string.h>
#include "avtextformat.h"
#include "tf_internal.h"
#include "tf_mermaid.h"
#include "libavutil/bprint.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"

Go to the source code of this file.

Data Structures

struct  MermaidContext
 
struct  MermaidContext::section_data
 

Macros

#define OFFSET(x)
 
#define MM_INDENT()
 

Functions

 DEFINE_FORMATTER_CLASS (mermaid)
 
void av_diagram_init (AVTextFormatContext *tfc, AVDiagramConfig *diagram_config)
 
static av_cold int has_link_pair (const AVTextFormatContext *tfc, const char *src, const char *dest)
 
static av_cold int mermaid_init (AVTextFormatContext *tfc)
 
static av_cold int mermaid_init_html (AVTextFormatContext *tfc)
 
static av_cold int mermaid_uninit (AVTextFormatContext *tfc)
 
static void set_str (const char **dst, const char *src)
 
static void mermaid_subgraph_complete_start (MermaidContext *mmc, AVTextFormatContext *tfc, int level)
 
static void mermaid_print_section_header (AVTextFormatContext *tfc, const void *data)
 
static void mermaid_print_section_footer (AVTextFormatContext *tfc)
 
static void mermaid_print_value (AVTextFormatContext *tfc, const char *key, const char *str, int64_t num, const int is_int)
 
static void mermaid_print_str (AVTextFormatContext *tfc, const char *key, const char *value)
 
static void mermaid_print_int (AVTextFormatContext *tfc, const char *key, int64_t value)
 

Variables

static const char * init_directive
 
static const char * init_directive_er
 
static const char * theme_css_er
 
static const AVOption mermaid_options []
 
const AVTextFormatter avtextformatter_mermaid
 
const AVTextFormatter avtextformatter_mermaidhtml
 

Macro Definition Documentation

◆ OFFSET

#define OFFSET ( x)
Value:

Definition at line 159 of file tf_mermaid.c.

◆ MM_INDENT

#define MM_INDENT ( )
Value:
writer_printf(tfc, "%*c", mmc->indent_level * 2, ' ')
static void writer_printf(AVTextFormatContext *wctx, const char *fmt,...)
Definition tf_internal.h:73

Definition at line 256 of file tf_mermaid.c.

Referenced by mermaid_print_section_footer(), mermaid_print_section_header(), and mermaid_print_value().

Function Documentation

◆ DEFINE_FORMATTER_CLASS()

DEFINE_FORMATTER_CLASS ( mermaid )

◆ av_diagram_init()

void av_diagram_init ( AVTextFormatContext * tfc,
AVDiagramConfig * diagram_config )

Definition at line 170 of file tf_mermaid.c.

Referenced by init_graphprint().

◆ has_link_pair()

static av_cold int has_link_pair ( const AVTextFormatContext * tfc,
const char * src,
const char * dest )
static

Definition at line 176 of file tf_mermaid.c.

Referenced by mermaid_print_section_footer().

◆ mermaid_init()

static av_cold int mermaid_init ( AVTextFormatContext * tfc)
static

Definition at line 192 of file tf_mermaid.c.

Referenced by mermaid_init_html().

◆ mermaid_init_html()

static av_cold int mermaid_init_html ( AVTextFormatContext * tfc)
static

Definition at line 202 of file tf_mermaid.c.

◆ mermaid_uninit()

static av_cold int mermaid_uninit ( AVTextFormatContext * tfc)
static

Definition at line 216 of file tf_mermaid.c.

◆ set_str()

static void set_str ( const char ** dst,
const char * src )
static

Definition at line 233 of file tf_mermaid.c.

Referenced by mermaid_print_section_header(), and mermaid_print_value().

◆ mermaid_subgraph_complete_start()

static void mermaid_subgraph_complete_start ( MermaidContext * mmc,
AVTextFormatContext * tfc,
int level )
static

Definition at line 242 of file tf_mermaid.c.

Referenced by mermaid_print_section_footer(), and mermaid_print_section_header().

◆ mermaid_print_section_header()

static void mermaid_print_section_header ( AVTextFormatContext * tfc,
const void * data )
static

Definition at line 258 of file tf_mermaid.c.

◆ mermaid_print_section_footer()

static void mermaid_print_section_footer ( AVTextFormatContext * tfc)
static

Definition at line 412 of file tf_mermaid.c.

◆ mermaid_print_value()

static void mermaid_print_value ( AVTextFormatContext * tfc,
const char * key,
const char * str,
int64_t num,
const int is_int )
static

Definition at line 551 of file tf_mermaid.c.

Referenced by mermaid_print_int(), and mermaid_print_str().

◆ mermaid_print_str()

static void mermaid_print_str ( AVTextFormatContext * tfc,
const char * key,
const char * value )
inlinestatic

Definition at line 640 of file tf_mermaid.c.

◆ mermaid_print_int()

static void mermaid_print_int ( AVTextFormatContext * tfc,
const char * key,
int64_t value )
static

Definition at line 645 of file tf_mermaid.c.

Variable Documentation

◆ init_directive

const char* init_directive
static
Initial value:
= ""
"%%{init: {"
"\"theme\": \"base\","
"\"curve\": \"monotoneX\","
"\"rankSpacing\": 10,"
"\"nodeSpacing\": 10,"
"\"themeCSS\": \"__###__\","
"\"fontFamily\": \"Roboto,Segoe UI,sans-serif\","
"\"themeVariables\": { "
"\"clusterBkg\": \"white\", "
"\"primaryBorderColor\": \"gray\", "
"\"lineColor\": \"gray\", "
"\"secondaryTextColor\": \"gray\", "
"\"tertiaryBorderColor\": \"gray\", "
"\"primaryTextColor\": \"#666\", "
"\"secondaryTextColor\": \"red\" "
"},"
"\"flowchart\": { "
"\"subGraphTitleMargin\": { \"top\": -15, \"bottom\": 20 }, "
"\"diagramPadding\": 20, "
"\"curve\": \"monotoneX\" "
"}"
" }}%%\n\n"

Definition at line 34 of file tf_mermaid.c.

Referenced by mermaid_print_section_header().

◆ init_directive_er

const char* init_directive_er
static
Initial value:
= ""
"%%{init: {"
"\"theme\": \"base\","
"\"layout\": \"elk\","
"\"curve\": \"monotoneX\","
"\"rankSpacing\": 65,"
"\"nodeSpacing\": 60,"
"\"themeCSS\": \"__###__\","
"\"fontFamily\": \"Roboto,Segoe UI,sans-serif\","
"\"themeVariables\": { "
"\"clusterBkg\": \"white\", "
"\"primaryBorderColor\": \"gray\", "
"\"lineColor\": \"gray\", "
"\"secondaryTextColor\": \"gray\", "
"\"tertiaryBorderColor\": \"gray\", "
"\"primaryTextColor\": \"#666\", "
"\"secondaryTextColor\": \"red\" "
"},"
"\"er\": { "
"\"diagramPadding\": 12, "
"\"entityPadding\": 4, "
"\"minEntityWidth\": 150, "
"\"minEntityHeight\": 20, "
"\"curve\": \"monotoneX\" "
"}"
" }}%%\n\n"

Definition at line 58 of file tf_mermaid.c.

Referenced by mermaid_print_section_header().

◆ theme_css_er

const char* theme_css_er
static

Definition at line 85 of file tf_mermaid.c.

Referenced by mermaid_print_section_header().

◆ mermaid_options

const AVOption mermaid_options[]
static
Initial value:
= {
{ "link_coloring", "enable colored links (requires Mermaid >= 11.5)", OFFSET(enable_link_colors), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1 },
{ NULL },
}
#define NULL
Definition coverity.c:32
#define OFFSET(x)
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition opt.h:326

Definition at line 161 of file tf_mermaid.c.

◆ avtextformatter_mermaid

const AVTextFormatter avtextformatter_mermaid
Initial value:
= {
.name = "mermaid",
.priv_size = sizeof(MermaidContext),
.print_section_header = mermaid_print_section_header,
.print_section_footer = mermaid_print_section_footer,
.print_integer = mermaid_print_int,
.print_string = mermaid_print_str,
.priv_class = &mermaid_class,
}
#define AV_TEXTFORMAT_FLAG_IS_DIAGRAM_FORMATTER
#define flags(name, subs,...)
Definition cbs_h264.c:74
int(* init)(AVBSFContext *ctx)
Definition dts2pts.c:608
static av_cold void uninit(AVBitStreamFilterContext *ctx)
static av_cold int mermaid_init(AVTextFormatContext *tfc)
Definition tf_mermaid.c:192
static void mermaid_print_section_footer(AVTextFormatContext *tfc)
Definition tf_mermaid.c:412
static void mermaid_print_str(AVTextFormatContext *tfc, const char *key, const char *value)
Definition tf_mermaid.c:640
static void mermaid_print_int(AVTextFormatContext *tfc, const char *key, int64_t value)
Definition tf_mermaid.c:645
static void mermaid_print_section_header(AVTextFormatContext *tfc, const void *data)
Definition tf_mermaid.c:258
static av_cold int mermaid_uninit(AVTextFormatContext *tfc)
Definition tf_mermaid.c:216

Definition at line 650 of file tf_mermaid.c.

◆ avtextformatter_mermaidhtml

const AVTextFormatter avtextformatter_mermaidhtml
Initial value:
= {
.name = "mermaidhtml",
.priv_size = sizeof(MermaidContext),
.print_section_header = mermaid_print_section_header,
.print_section_footer = mermaid_print_section_footer,
.print_integer = mermaid_print_int,
.print_string = mermaid_print_str,
.priv_class = &mermaid_class,
}
static av_cold int mermaid_init_html(AVTextFormatContext *tfc)
Definition tf_mermaid.c:202

Definition at line 664 of file tf_mermaid.c.