FFmpeg
Loading...
Searching...
No Matches
pgxdec.c File Reference
#include "avcodec.h"
#include "bytestream.h"
#include "codec_internal.h"
#include "decode.h"

Go to the source code of this file.

Macros

#define WRITE_FRAME(D, PIXEL, suffix)
 

Functions

static int pgx_get_number (AVCodecContext *avctx, GetByteContext *g, int *number)
 
static int pgx_decode_header (AVCodecContext *avctx, GetByteContext *g, int *depth, int *width, int *height, int *sign)
 
static int pgx_decode_frame (AVCodecContext *avctx, AVFrame *p, int *got_frame, AVPacket *avpkt)
 

Variables

const FFCodec ff_pgx_decoder
 

Macro Definition Documentation

◆ WRITE_FRAME

#define WRITE_FRAME ( D,
PIXEL,
suffix )
Value:
static inline void write_frame_ ##D(AVFrame *frame, GetByteContext *g, \
int width, int height, int sign, int depth) \
{ \
const unsigned offset = sign ? (1 << (D - 1)) : 0; \
int i, j; \
for (i = 0; i < height; i++) { \
PIXEL *line = (PIXEL*)(frame->data[0] + i * frame->linesize[0]); \
for (j = 0; j < width; j++) { \
unsigned val = bytestream2_get_ ##suffix##u(g) << (D - depth); \
val ^= offset; \
*(line + j) = val; \
} \
} \
} \
static double val(void *priv, double ch)
Definition aeval.c:77
#define D
Definition avdct.c:35
#define PIXEL
Definition blend_modes.c:45
#define i(width, name, range_min, range_max)
Definition cbs_h264.c:63
static AVFrame * frame
unsigned offset
Definition libaomenc.c:763
#define u(width, name, range_min, range_max)
Definition cbs_apv.c:68
This structure describes decoded (raw) audio or video data.
Definition frame.h:472
#define height
Definition dsp.h:89
#define width
Definition dsp.h:89
const char * g
Definition vf_curves.c:128

Definition at line 93 of file pgxdec.c.

Function Documentation

◆ pgx_get_number()

static int pgx_get_number ( AVCodecContext * avctx,
GetByteContext * g,
int * number )
static

Definition at line 27 of file pgxdec.c.

Referenced by pgx_decode_header().

◆ pgx_decode_header()

static int pgx_decode_header ( AVCodecContext * avctx,
GetByteContext * g,
int * depth,
int * width,
int * height,
int * sign )
static

Definition at line 52 of file pgxdec.c.

Referenced by pgx_decode_frame().

◆ pgx_decode_frame()

static int pgx_decode_frame ( AVCodecContext * avctx,
AVFrame * p,
int * got_frame,
AVPacket * avpkt )
static

Definition at line 112 of file pgxdec.c.

Referenced by pgx_decode_frame().

Variable Documentation

◆ ff_pgx_decoder

const FFCodec ff_pgx_decoder
Initial value:
= {
.p.name = "pgx",
CODEC_LONG_NAME("PGX (JPEG2000 Test Format)"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_PGX,
.p.capabilities = AV_CODEC_CAP_DR1,
}
#define FF_CODEC_DECODE_CB(func)
#define CODEC_LONG_NAME(str)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition codec.h:49
@ AV_CODEC_ID_PGX
Definition codec_id.h:244
@ AVMEDIA_TYPE_VIDEO
Definition avutil.h:200
static int pgx_decode_frame(AVCodecContext *avctx, AVFrame *p, int *got_frame, AVPacket *avpkt)
Definition pgxdec.c:112

Definition at line 151 of file pgxdec.c.