Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–61 unchanged (61 lines)
62
63static const char *const slave_delim = "|";
64static const char *const slave_bsfs_spec_sep = "/";
65static const char *const slave_select_sep = ",";
66
67#define OFFSET(x) offsetof(TeeContext, x)
68static const AVOption options[] = {
69 {"use_fifo", "Use fifo pseudo-muxer to separate actual muxers from encoder",
70 OFFSET(use_fifo), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
71 {"fifo_options", "fifo pseudo-muxer options", OFFSET(fifo_options),
72 AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
73 {NULL}
74};
75
76static const AVClass tee_muxer_class = {
77 .class_name = "Tee muxer",
78 .item_name = av_default_item_name,
79 .option = options,
80 .version = LIBAVUTIL_VERSION_INT,
81};
82
83static inline int parse_slave_failure_policy_option(const char *opt, TeeSlave *tee_slave)
84{
85 if (!opt) {
…lines 86–618 unchanged (533 lines)

After

…lines 1–61 unchanged (61 lines)
62
63static const char *const slave_delim = "|";
64static const char *const slave_bsfs_spec_sep = "/";
65static const char *const slave_select_sep = ",";
66
67#define OFFSET(x) offsetof(TeeContext, x)
68static const AVOption tee_options[] = {
69 {"use_fifo", "Use fifo pseudo-muxer to separate actual muxers from encoder",
70 OFFSET(use_fifo), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
71 {"fifo_options", "fifo pseudo-muxer options", OFFSET(fifo_options),
72 AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
73 {NULL}
74};
75
76static const AVClass tee_muxer_class = {
77 .class_name = "Tee muxer",
78 .item_name = av_default_item_name,
79 .option = tee_options,
80 .version = LIBAVUTIL_VERSION_INT,
81};
82
83static inline int parse_slave_failure_policy_option(const char *opt, TeeSlave *tee_slave)
84{
85 if (!opt) {
…lines 86–618 unchanged (533 lines)

Before

translation_unit
comment "/*\n * Tee pseudo-muxer\n * Copyright (c) 2012 Nicolas George\n"...
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/avutil.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/avstring.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/mem.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/opt.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavcodec/bsf.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "internal.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "avformat.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "mux.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "tee_common.h"
" "\""
type_definition
typedef "typedef"
enum_specifier
enum "enum"
enumerator_list
{ "{"
enumerator
identifier "ON_SLAVE_FAILURE_ABORT"
= "="
number_literal "1"
, ","
enumerator
identifier "ON_SLAVE_FAILURE_IGNORE"
= "="
number_literal "2"
} "}"
type_identifier "SlaveFailurePolicy"
; ";"
preproc_def
#define "#define"
identifier "DEFAULT_SLAVE_FAILURE_POLICY"
preproc_arg "ON_SLAVE_FAILURE_ABORT"
type_definition (+49 nodes collapsed)
type_definition (+44 nodes collapsed)
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
primitive_type "char"
init_declarator
pointer_declarator
* "*"
type_qualifier
const "const"
identifier "slave_delim"
= "="
string_literal
" "\""
string_content "|"
" "\""
; ";"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
primitive_type "char"
init_declarator
pointer_declarator
* "*"
type_qualifier
const "const"
identifier "slave_bsfs_spec_sep"
= "="
string_literal
" "\""
string_content "/"
" "\""
; ";"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
primitive_type "char"
init_declarator
pointer_declarator
* "*"
type_qualifier
const "const"
identifier "slave_select_sep"
= "="
string_literal
" "\""
string_content ","
" "\""
; ";"
preproc_function_def
#define "#define"
identifier "OFFSET"
preproc_params
( "("
identifier "x"
) ")"
preproc_arg "offsetof(TeeContext, x)"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
type_identifier "AVOption"
init_declarator
array_declarator
identifier "options"
[ "["
] "]"
= "="
initializer_list (+85 nodes collapsed)
; ";"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
type_identifier "AVClass"
init_declarator
identifier "tee_muxer_class"
= "="
initializer_list
{ "{"
initializer_pair
field_designator
. "."
field_identifier "class_name"
= "="
string_literal
" "\""
string_content "Tee muxer"
" "\""
, ","
initializer_pair
field_designator
. "."
field_identifier "item_name"
= "="
identifier "av_default_item_name"
, ","
initializer_pair
field_designator
. "."
field_identifier "option"
= "="
identifier "options"
, ","
initializer_pair
field_designator
. "."
field_identifier "version"
= "="
identifier "LIBAVUTIL_VERSION_INT"
, ","
} "}"
; ";"
function_definition (+142 nodes collapsed)
function_definition (+102 nodes collapsed)
function_definition (+53 nodes collapsed)
function_definition (+199 nodes collapsed)
function_definition (+85 nodes collapsed)
function_definition (+2106 nodes collapsed)
function_definition (+232 nodes collapsed)
function_definition (+189 nodes collapsed)
function_definition (+622 nodes collapsed)
function_definition (+148 nodes collapsed)
function_definition (+581 nodes collapsed)
declaration (+107 nodes collapsed)

After

translation_unit
comment "/*\n * Tee pseudo-muxer\n * Copyright (c) 2012 Nicolas George\n"...
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/avutil.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/avstring.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/mem.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavutil/opt.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "libavcodec/bsf.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "internal.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "avformat.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "mux.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "tee_common.h"
" "\""
type_definition
typedef "typedef"
enum_specifier
enum "enum"
enumerator_list
{ "{"
enumerator
identifier "ON_SLAVE_FAILURE_ABORT"
= "="
number_literal "1"
, ","
enumerator
identifier "ON_SLAVE_FAILURE_IGNORE"
= "="
number_literal "2"
} "}"
type_identifier "SlaveFailurePolicy"
; ";"
preproc_def
#define "#define"
identifier "DEFAULT_SLAVE_FAILURE_POLICY"
preproc_arg "ON_SLAVE_FAILURE_ABORT"
type_definition (+49 nodes collapsed)
type_definition (+44 nodes collapsed)
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
primitive_type "char"
init_declarator
pointer_declarator
* "*"
type_qualifier
const "const"
identifier "slave_delim"
= "="
string_literal
" "\""
string_content "|"
" "\""
; ";"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
primitive_type "char"
init_declarator
pointer_declarator
* "*"
type_qualifier
const "const"
identifier "slave_bsfs_spec_sep"
= "="
string_literal
" "\""
string_content "/"
" "\""
; ";"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
primitive_type "char"
init_declarator
pointer_declarator
* "*"
type_qualifier
const "const"
identifier "slave_select_sep"
= "="
string_literal
" "\""
string_content ","
" "\""
; ";"
preproc_function_def
#define "#define"
identifier "OFFSET"
preproc_params
( "("
identifier "x"
) ")"
preproc_arg "offsetof(TeeContext, x)"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
type_identifier "AVOption"
init_declarator
array_declarator
identifier "tee_options"
[ "["
] "]"
= "="
initializer_list (+85 nodes collapsed)
; ";"
declaration
storage_class_specifier
static "static"
type_qualifier
const "const"
type_identifier "AVClass"
init_declarator
identifier "tee_muxer_class"
= "="
initializer_list
{ "{"
initializer_pair
field_designator
. "."
field_identifier "class_name"
= "="
string_literal
" "\""
string_content "Tee muxer"
" "\""
, ","
initializer_pair
field_designator
. "."
field_identifier "item_name"
= "="
identifier "av_default_item_name"
, ","
initializer_pair
field_designator
. "."
field_identifier "option"
= "="
identifier "tee_options"
, ","
initializer_pair
field_designator
. "."
field_identifier "version"
= "="
identifier "LIBAVUTIL_VERSION_INT"
, ","
} "}"
; ";"
function_definition (+142 nodes collapsed)
function_definition (+102 nodes collapsed)
function_definition (+53 nodes collapsed)
function_definition (+199 nodes collapsed)
function_definition (+85 nodes collapsed)
function_definition (+2106 nodes collapsed)
function_definition (+232 nodes collapsed)
function_definition (+189 nodes collapsed)
function_definition (+622 nodes collapsed)
function_definition (+148 nodes collapsed)
function_definition (+581 nodes collapsed)
declaration (+107 nodes collapsed)