FFmpeg
Loading...
Searching...
No Matches
cbs_jpeg.c File Reference
#include "libavutil/mem.h"
#include "cbs.h"
#include "cbs_internal.h"
#include "cbs_jpeg.h"
#include "cbs_jpeg_syntax_template.c"

Go to the source code of this file.

Macros

#define HEADER(name)
 
#define CHECK(call)
 
#define SUBSCRIPTS(subs, ...)
 
#define u(width, name, range_min, range_max)
 
#define us(width, name, sub, range_min, range_max)
 
#define READ
 
#define READWRITE   read
 
#define RWContext   GetBitContext
 
#define FUNC(name)
 
#define xu(width, name, range_min, range_max, subs, ...)
 
#define WRITE
 
#define READWRITE   write
 
#define RWContext   PutBitContext
 
#define FUNC(name)
 
#define xu(width, name, range_min, range_max, subs, ...)
 
#define SEGMENT(marker, func)
 
#define SEGMENT(marker, func)
 

Functions

static int cbs_jpeg_split_fragment (CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, int header)
 
static int cbs_jpeg_read_unit (CodedBitstreamContext *ctx, CodedBitstreamUnit *unit)
 
static int cbs_jpeg_write_scan (CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
 
static int cbs_jpeg_write_segment (CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
 
static int cbs_jpeg_write_unit (CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
 
static int cbs_jpeg_assemble_fragment (CodedBitstreamContext *ctx, CodedBitstreamFragment *frag)
 

Variables

static CodedBitstreamUnitTypeDescriptor cbs_jpeg_unit_types []
 
const CodedBitstreamType ff_cbs_type_jpeg
 

Macro Definition Documentation

◆ HEADER

#define HEADER ( name)
Value:
do { \
ff_cbs_trace_header(ctx, name); \
} while (0)
static AVFormatContext * ctx
const char * name
Definition qsvenc.c:142

Definition at line 25 of file cbs_jpeg.c.

◆ CHECK

#define CHECK ( call)
Value:
do { \
err = (call); \
if (err < 0) \
return err; \
} while (0)

Definition at line 29 of file cbs_jpeg.c.

◆ SUBSCRIPTS

#define SUBSCRIPTS ( subs,
... )
Value:
(subs > 0 ? ((int[subs + 1]){ subs, __VA_ARGS__ }) : NULL)
#define NULL
Definition coverity.c:32

Definition at line 35 of file cbs_jpeg.c.

◆ u

#define u ( width,
name,
range_min,
range_max )
Value:
xu(width, name, range_min, range_max, 0, )
#define xu(width, name, var, range_min, range_max, subs,...)
Definition cbs_h264.c:101
#define width
Definition dsp.h:89

Definition at line 37 of file cbs_jpeg.c.

◆ us

#define us ( width,
name,
sub,
range_min,
range_max )
Value:
xu(width, name, range_min, range_max, 1, sub)

Definition at line 39 of file cbs_jpeg.c.

◆ READ

#define READ

Definition at line 43 of file cbs_jpeg.c.

◆ READWRITE [1/2]

#define READWRITE   read

Definition at line 44 of file cbs_jpeg.c.

◆ RWContext [1/2]

#define RWContext   GetBitContext

Definition at line 45 of file cbs_jpeg.c.

◆ FUNC [1/2]

#define FUNC ( name)
Value:
cbs_jpeg_read_ ## name

Definition at line 46 of file cbs_jpeg.c.

◆ xu [1/2]

#define xu ( width,
name,
range_min,
range_max,
subs,
... )
Value:
do { \
uint32_t value; \
CHECK(ff_cbs_read_unsigned(ctx, rw, width, #name, \
SUBSCRIPTS(subs, __VA_ARGS__), \
&value, range_min, range_max)); \
current->name = value; \
} while (0)
double value
Definition eval.c:102
static struct @111144215057303131116103221376075045141373005341 current
#define SUBSCRIPTS(subs,...)
Definition cbs_apv.c:65

Definition at line 48 of file cbs_jpeg.c.

◆ WRITE

#define WRITE

Definition at line 64 of file cbs_jpeg.c.

◆ READWRITE [2/2]

#define READWRITE   write

Definition at line 44 of file cbs_jpeg.c.

◆ RWContext [2/2]

#define RWContext   PutBitContext

Definition at line 45 of file cbs_jpeg.c.

◆ FUNC [2/2]

#define FUNC ( name)
Value:
cbs_jpeg_write_ ## name

Definition at line 46 of file cbs_jpeg.c.

◆ xu [2/2]

#define xu ( width,
name,
range_min,
range_max,
subs,
... )
Value:
do { \
uint32_t value = current->name; \
CHECK(ff_cbs_write_unsigned(ctx, rw, width, #name, \
SUBSCRIPTS(subs, __VA_ARGS__), \
value, range_min, range_max)); \
} while (0)

Definition at line 48 of file cbs_jpeg.c.

◆ SEGMENT [1/2]

#define SEGMENT ( marker,
func )
Value:
case JPEG_MARKER_ ## marker: \
{ \
err = cbs_jpeg_read_ ## func(ctx, &gbc, unit->content); \
if (err < 0) \
return err; \
} \
break
int(* func)(AVBPrint *dst, const char *in, const char *arg)
Definition jacosubdec.c:66

Referenced by cbs_jpeg_read_unit(), and cbs_jpeg_write_segment().

◆ SEGMENT [2/2]

#define SEGMENT ( marker,
func )
Value:
case JPEG_MARKER_ ## marker: \
err = cbs_jpeg_write_ ## func(ctx, pbc, unit->content); \
break;

Function Documentation

◆ cbs_jpeg_split_fragment()

static int cbs_jpeg_split_fragment ( CodedBitstreamContext * ctx,
CodedBitstreamFragment * frag,
int header )
static

Definition at line 86 of file cbs_jpeg.c.

◆ cbs_jpeg_read_unit()

static int cbs_jpeg_read_unit ( CodedBitstreamContext * ctx,
CodedBitstreamUnit * unit )
static

Definition at line 221 of file cbs_jpeg.c.

◆ cbs_jpeg_write_scan()

static int cbs_jpeg_write_scan ( CodedBitstreamContext * ctx,
CodedBitstreamUnit * unit,
PutBitContext * pbc )
static

Definition at line 287 of file cbs_jpeg.c.

Referenced by cbs_jpeg_write_unit().

◆ cbs_jpeg_write_segment()

static int cbs_jpeg_write_segment ( CodedBitstreamContext * ctx,
CodedBitstreamUnit * unit,
PutBitContext * pbc )
static

Definition at line 313 of file cbs_jpeg.c.

Referenced by cbs_jpeg_write_unit().

◆ cbs_jpeg_write_unit()

static int cbs_jpeg_write_unit ( CodedBitstreamContext * ctx,
CodedBitstreamUnit * unit,
PutBitContext * pbc )
static

Definition at line 342 of file cbs_jpeg.c.

◆ cbs_jpeg_assemble_fragment()

static int cbs_jpeg_assemble_fragment ( CodedBitstreamContext * ctx,
CodedBitstreamFragment * frag )
static

Definition at line 352 of file cbs_jpeg.c.

Variable Documentation

◆ cbs_jpeg_unit_types

CodedBitstreamUnitTypeDescriptor cbs_jpeg_unit_types[]
static
Initial value:
= {
}
#define CBS_UNIT_TYPE_POD(type_, structure)
#define CBS_UNIT_TYPE_END_OF_LIST
#define CBS_UNIT_RANGE_POD(range_start, range_end, structure)
#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field)
#define CBS_UNIT_RANGE_INTERNAL_REF(range_start, range_end, structure, ref_field)
@ JPEG_MARKER_COM
Definition cbs_jpeg.h:42
@ JPEG_MARKER_DHT
Definition cbs_jpeg.h:34
@ JPEG_MARKER_APPN
Definition cbs_jpeg.h:40
@ JPEG_MARKER_DQT
Definition cbs_jpeg.h:38
@ JPEG_MARKER_SOF3
Definition cbs_jpeg.h:32
@ JPEG_MARKER_SOF0
Definition cbs_jpeg.h:29
@ JPEG_MARKER_SOS
Definition cbs_jpeg.h:37
const char data[16]
Definition mxf.c:149

Definition at line 420 of file cbs_jpeg.c.

◆ ff_cbs_type_jpeg

const CodedBitstreamType ff_cbs_type_jpeg
Initial value:
= {
.codec_id = AV_CODEC_ID_MJPEG,
.unit_types = cbs_jpeg_unit_types,
.split_fragment = &cbs_jpeg_split_fragment,
.read_unit = &cbs_jpeg_read_unit,
.write_unit = &cbs_jpeg_write_unit,
.assemble_fragment = &cbs_jpeg_assemble_fragment,
}
static int cbs_jpeg_read_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit)
Definition cbs_jpeg.c:221
static int cbs_jpeg_assemble_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag)
Definition cbs_jpeg.c:352
static CodedBitstreamUnitTypeDescriptor cbs_jpeg_unit_types[]
Definition cbs_jpeg.c:420
static int cbs_jpeg_write_unit(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit, PutBitContext *pbc)
Definition cbs_jpeg.c:342
static int cbs_jpeg_split_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, int header)
Definition cbs_jpeg.c:86
@ AV_CODEC_ID_MJPEG
Definition codec_id.h:57

Definition at line 436 of file cbs_jpeg.c.