libavcodec/rl2.c File Reference

RL2 Video Decoder. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "internal.h"
Include dependency graph for libavcodec/rl2.c:

Go to the source code of this file.

Data Structures

struct  Rl2Context
 

Macros

#define EXTRADATA1_SIZE   (6 + 256 * 3)
 video base, clr count, palette More...
 

Typedefs

typedef struct Rl2Context Rl2Context
 

Functions

static void rl2_rle_decode (Rl2Context *s, const uint8_t *in, int size, uint8_t *out, int stride, int video_base)
 Run Length Decode a single 320x200 frame. More...
 
static av_cold int rl2_decode_init (AVCodecContext *avctx)
 Initialize the decoder. More...
 
static int rl2_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 
static av_cold int rl2_decode_end (AVCodecContext *avctx)
 Uninit decoder. More...
 

Variables

AVCodec ff_rl2_decoder
 

Detailed Description

Macro Definition Documentation

#define EXTRADATA1_SIZE   (6 + 256 * 3)

video base, clr count, palette

Definition at line 40 of file libavcodec/rl2.c.

Referenced by rl2_decode_init().

Typedef Documentation

typedef struct Rl2Context Rl2Context

Function Documentation

static av_cold int rl2_decode_end ( AVCodecContext avctx)
static

Uninit decoder.

Parameters
avctxdecoder context
Returns
0 success, -1 on error

Definition at line 206 of file libavcodec/rl2.c.

static int rl2_decode_frame ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)
static

run length decode

make the palette available on the way out

report that the buffer was completely consumed

Definition at line 175 of file libavcodec/rl2.c.

static av_cold int rl2_decode_init ( AVCodecContext avctx)
static

Initialize the decoder.

Parameters
avctxdecoder context
Returns
0 success, -1 on error

parse extra data

get frame_offset

initialize palette

decode background frame if present

Definition at line 132 of file libavcodec/rl2.c.

static void rl2_rle_decode ( Rl2Context s,
const uint8_t in,
int  size,
uint8_t out,
int  stride,
int  video_base 
)
static

Run Length Decode a single 320x200 frame.

Parameters
srl2 context
ininput buffer
sizeinput buffer size
outoutput buffer
stridestride of the output buffer
video_baseoffset of the rle data inside the frame

copy start of the background frame

decode the variable part of the frame

copy the rest from the background frame

Definition at line 60 of file libavcodec/rl2.c.

Referenced by rl2_decode_frame(), and rl2_decode_init().

Variable Documentation

AVCodec ff_rl2_decoder
Initial value:
= {
.name = "rl2",
.priv_data_size = sizeof(Rl2Context),
.capabilities = CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("RL2 video"),
}
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
static av_cold int rl2_decode_end(AVCodecContext *avctx)
Uninit decoder.
#define CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static int rl2_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:375
static av_cold int rl2_decode_init(AVCodecContext *avctx)
Initialize the decoder.
struct Rl2Context Rl2Context
static int decode(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Definition: crystalhd.c:868

Definition at line 216 of file libavcodec/rl2.c.