FFmpeg
Data Structures | Macros | Functions | Variables
tf_json.c File Reference
#include <limits.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include "avtextformat.h"
#include "libavutil/bprint.h"
#include "libavutil/opt.h"
#include "tf_internal.h"

Go to the source code of this file.

Data Structures

struct  JSONContext
 

Macros

#define OFFSET(x)   offsetof(JSONContext, x)
 
#define JSON_INDENT()   writer_printf(wctx, "%*c", json->indent_level * 4, ' ')
 

Functions

 DEFINE_FORMATTER_CLASS (json)
 
static av_cold int json_init (AVTextFormatContext *wctx)
 
static const char * json_escape_str (AVBPrint *dst, const char *src, void *log_ctx)
 
static void json_print_section_header (AVTextFormatContext *wctx, const void *data)
 
static void json_print_section_footer (AVTextFormatContext *wctx)
 
static void json_print_item_str (AVTextFormatContext *wctx, const char *key, const char *value)
 
static void json_print_str (AVTextFormatContext *wctx, const char *key, const char *value)
 
static void json_print_int (AVTextFormatContext *wctx, const char *key, int64_t value)
 

Variables

static const AVOption json_options []
 
const AVTextFormatter avtextformatter_json
 

Macro Definition Documentation

◆ OFFSET

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

Definition at line 42 of file tf_json.c.

◆ JSON_INDENT

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

Definition at line 87 of file tf_json.c.

Function Documentation

◆ DEFINE_FORMATTER_CLASS()

DEFINE_FORMATTER_CLASS ( json  )

◆ json_init()

static av_cold int json_init ( AVTextFormatContext wctx)
static

Definition at line 52 of file tf_json.c.

◆ json_escape_str()

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

Definition at line 62 of file tf_json.c.

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

◆ json_print_section_header()

static void json_print_section_header ( AVTextFormatContext wctx,
const void *  data 
)
static

Definition at line 89 of file tf_json.c.

◆ json_print_section_footer()

static void json_print_section_footer ( AVTextFormatContext wctx)
static

Definition at line 130 of file tf_json.c.

◆ json_print_item_str()

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

Definition at line 155 of file tf_json.c.

Referenced by json_print_str().

◆ json_print_str()

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

Definition at line 167 of file tf_json.c.

◆ json_print_int()

static void json_print_int ( AVTextFormatContext wctx,
const char *  key,
int64_t  value 
)
static

Definition at line 183 of file tf_json.c.

Variable Documentation

◆ json_options

const AVOption json_options[]
static
Initial value:
= {
{ "compact", "enable compact output", OFFSET(compact), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1 },
{ "c", "enable compact output", OFFSET(compact), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1 },
{ NULL }
}

Definition at line 44 of file tf_json.c.

◆ avtextformatter_json

const AVTextFormatter avtextformatter_json
Initial value:
= {
.name = "json",
.priv_size = sizeof(JSONContext),
.print_section_header = json_print_section_header,
.print_section_footer = json_print_section_footer,
.print_integer = json_print_int,
.print_string = json_print_str,
.priv_class = &json_class,
}

Definition at line 203 of file tf_json.c.

flags
const SwsFlags flags[]
Definition: swscale.c:61
json_print_int
static void json_print_int(AVTextFormatContext *wctx, const char *key, int64_t value)
Definition: tf_json.c:183
json_init
static av_cold int json_init(AVTextFormatContext *wctx)
Definition: tf_json.c:52
NULL
#define NULL
Definition: coverity.c:32
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:368
json_print_str
static void json_print_str(AVTextFormatContext *wctx, const char *key, const char *value)
Definition: tf_json.c:167
json_print_section_header
static void json_print_section_header(AVTextFormatContext *wctx, const void *data)
Definition: tf_json.c:89
OFFSET
#define OFFSET(x)
Definition: tf_json.c:42
AV_TEXTFORMAT_FLAG_SUPPORTS_MIXED_ARRAY_CONTENT
#define AV_TEXTFORMAT_FLAG_SUPPORTS_MIXED_ARRAY_CONTENT
Definition: avtextformat.h:72
json_print_section_footer
static void json_print_section_footer(AVTextFormatContext *wctx)
Definition: tf_json.c:130
AV_OPT_TYPE_BOOL
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition: opt.h:327
JSONContext
Definition: tf_json.c:34