libavcodec/interplayvideo.c File Reference

Interplay MVE Video Decoder by Mike Melanson (melanson@pcisys.net) For more information about the Interplay MVE format, visit: http://www.pcisys.net/~melanson/codecs/interplay-mve.txt This code is written in such a way that the identifiers match up with the encoding descriptions in the document. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "avcodec.h"
#include "bytestream.h"
#include "dsputil.h"
#include "get_bits.h"

Go to the source code of this file.

Data Structures

struct  IpvideoContext

Defines

#define BITSTREAM_READER_LE
#define PALETTE_COUNT   256
#define CHECK_STREAM_PTR(stream_ptr, stream_end, n)

Functions

static int copy_from (IpvideoContext *s, AVFrame *src, int delta_x, int delta_y)
static int ipvideo_decode_block_opcode_0x0 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x1 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x2 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x3 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x4 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x5 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x6 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x7 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x8 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x9 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xA (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xB (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xC (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xD (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xE (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xF (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x6_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x7_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x8_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0x9_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xA_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xB_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xC_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xD_16 (IpvideoContext *s)
static int ipvideo_decode_block_opcode_0xE_16 (IpvideoContext *s)
static void ipvideo_decode_opcodes (IpvideoContext *s)
static av_cold int ipvideo_decode_init (AVCodecContext *avctx)
static int ipvideo_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int ipvideo_decode_end (AVCodecContext *avctx)

Variables

static int(*const ipvideo_decode_block [])(IpvideoContext *s)
static int(*const ipvideo_decode_block16 [])(IpvideoContext *s)
AVCodec ff_interplay_video_decoder


Detailed Description

Interplay MVE Video Decoder by Mike Melanson (melanson@pcisys.net) For more information about the Interplay MVE format, visit: http://www.pcisys.net/~melanson/codecs/interplay-mve.txt This code is written in such a way that the identifiers match up with the encoding descriptions in the document.

This decoder presently only supports a PAL8 output colorspace.

An Interplay video frame consists of 2 parts: The decoding map and the video data. A demuxer must load these 2 parts together in a single buffer before sending it through the stream to this decoder.

Definition in file interplayvideo.c.


Define Documentation

#define BITSTREAM_READER_LE

Definition at line 44 of file interplayvideo.c.

#define CHECK_STREAM_PTR ( stream_ptr,
stream_end,
 ) 

#define PALETTE_COUNT   256

Definition at line 47 of file interplayvideo.c.


Function Documentation

static int copy_from ( IpvideoContext s,
AVFrame src,
int  delta_x,
int  delta_y 
) [static]

static int ipvideo_decode_block_opcode_0x0 ( IpvideoContext s  )  [static]

Definition at line 104 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x1 ( IpvideoContext s  )  [static]

Definition at line 109 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x2 ( IpvideoContext s  )  [static]

Definition at line 114 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x3 ( IpvideoContext s  )  [static]

Definition at line 140 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x4 ( IpvideoContext s  )  [static]

Definition at line 168 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x5 ( IpvideoContext s  )  [static]

Definition at line 191 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x6 ( IpvideoContext s  )  [static]

Definition at line 206 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x6_16 ( IpvideoContext s  )  [static]

Definition at line 573 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x7 ( IpvideoContext s  )  [static]

Definition at line 215 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x7_16 ( IpvideoContext s  )  [static]

Definition at line 587 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x8 ( IpvideoContext s  )  [static]

Definition at line 260 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x8_16 ( IpvideoContext s  )  [static]

Definition at line 630 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x9 ( IpvideoContext s  )  [static]

Definition at line 337 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0x9_16 ( IpvideoContext s  )  [static]

Definition at line 709 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xA ( IpvideoContext s  )  [static]

Definition at line 411 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xA_16 ( IpvideoContext s  )  [static]

Definition at line 784 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xB ( IpvideoContext s  )  [static]

Definition at line 473 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xB_16 ( IpvideoContext s  )  [static]

Definition at line 847 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xC ( IpvideoContext s  )  [static]

Definition at line 490 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xC_16 ( IpvideoContext s  )  [static]

Definition at line 865 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xD ( IpvideoContext s  )  [static]

Definition at line 511 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xD_16 ( IpvideoContext s  )  [static]

Definition at line 887 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xE ( IpvideoContext s  )  [static]

Definition at line 533 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xE_16 ( IpvideoContext s  )  [static]

Definition at line 910 of file interplayvideo.c.

static int ipvideo_decode_block_opcode_0xF ( IpvideoContext s  )  [static]

Definition at line 551 of file interplayvideo.c.

static av_cold int ipvideo_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 1082 of file interplayvideo.c.

static int ipvideo_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
AVPacket avpkt 
) [static]

Definition at line 1032 of file interplayvideo.c.

static av_cold int ipvideo_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 1011 of file interplayvideo.c.

static void ipvideo_decode_opcodes ( IpvideoContext s  )  [static]

Definition at line 952 of file interplayvideo.c.

Referenced by ipvideo_decode_frame().


Variable Documentation

Initial value:

 {
    .name           = "interplayvideo",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_INTERPLAY_VIDEO,
    .priv_data_size = sizeof(IpvideoContext),
    .init           = ipvideo_decode_init,
    .close          = ipvideo_decode_end,
    .decode         = ipvideo_decode_frame,
    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_PARAM_CHANGE,
    .long_name = NULL_IF_CONFIG_SMALL("Interplay MVE video"),
}

Definition at line 1095 of file interplayvideo.c.

int(* const ipvideo_decode_block[])(IpvideoContext *s) [static]

int(* const ipvideo_decode_block16[])(IpvideoContext *s) [static]


Generated on Fri Oct 26 02:46:08 2012 for FFmpeg by  doxygen 1.5.8