#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.
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 BITSTREAM_READER_LE |
Definition at line 44 of file interplayvideo.c.
#define PALETTE_COUNT 256 |
Definition at line 47 of file interplayvideo.c.
static int copy_from | ( | IpvideoContext * | s, | |
AVFrame * | src, | |||
int | delta_x, | |||
int | delta_y | |||
) | [static] |
Definition at line 69 of file interplayvideo.c.
Referenced by decode_frame(), ipvideo_decode_block_opcode_0x0(), ipvideo_decode_block_opcode_0x1(), ipvideo_decode_block_opcode_0x2(), ipvideo_decode_block_opcode_0x3(), ipvideo_decode_block_opcode_0x4(), ipvideo_decode_block_opcode_0x5(), and ipvideo_decode_block_opcode_0x6_16().
static int ipvideo_decode_block_opcode_0x0 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 91 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x1 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 96 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x2 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 101 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x3 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 125 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x4 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 151 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x5 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 172 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x6 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 185 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x6_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 523 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x7 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 194 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x7_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 535 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x8 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 233 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x8_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 572 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x9 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 306 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x9_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 648 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xA | ( | IpvideoContext * | s | ) | [static] |
Definition at line 371 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xA_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 715 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xB | ( | IpvideoContext * | s | ) | [static] |
Definition at line 432 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xB_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 781 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xC | ( | IpvideoContext * | s | ) | [static] |
Definition at line 446 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xC_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 797 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xD | ( | IpvideoContext * | s | ) | [static] |
Definition at line 465 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xD_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 817 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xE | ( | IpvideoContext * | s | ) | [static] |
Definition at line 485 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xE_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 838 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xF | ( | IpvideoContext * | s | ) | [static] |
Definition at line 502 of file interplayvideo.c.
static av_cold int ipvideo_decode_end | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 1008 of file interplayvideo.c.
static int ipvideo_decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
AVPacket * | avpkt | |||
) | [static] |
Definition at line 958 of file interplayvideo.c.
static av_cold int ipvideo_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 937 of file interplayvideo.c.
static void ipvideo_decode_opcodes | ( | IpvideoContext * | s | ) | [static] |
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 1021 of file interplayvideo.c.
int(* const ipvideo_decode_block[])(IpvideoContext *s) [static] |
Initial value:
{ ipvideo_decode_block_opcode_0x0, ipvideo_decode_block_opcode_0x1, ipvideo_decode_block_opcode_0x2, ipvideo_decode_block_opcode_0x3, ipvideo_decode_block_opcode_0x4, ipvideo_decode_block_opcode_0x5, ipvideo_decode_block_opcode_0x6, ipvideo_decode_block_opcode_0x7, ipvideo_decode_block_opcode_0x8, ipvideo_decode_block_opcode_0x9, ipvideo_decode_block_opcode_0xA, ipvideo_decode_block_opcode_0xB, ipvideo_decode_block_opcode_0xC, ipvideo_decode_block_opcode_0xD, ipvideo_decode_block_opcode_0xE, ipvideo_decode_block_opcode_0xF, }
Referenced by ipvideo_decode_opcodes().
int(* const ipvideo_decode_block16[])(IpvideoContext *s) [static] |
Initial value:
{ ipvideo_decode_block_opcode_0x0, ipvideo_decode_block_opcode_0x1, ipvideo_decode_block_opcode_0x2, ipvideo_decode_block_opcode_0x3, ipvideo_decode_block_opcode_0x4, ipvideo_decode_block_opcode_0x5, ipvideo_decode_block_opcode_0x6_16, ipvideo_decode_block_opcode_0x7_16, ipvideo_decode_block_opcode_0x8_16, ipvideo_decode_block_opcode_0x9_16, ipvideo_decode_block_opcode_0xA_16, ipvideo_decode_block_opcode_0xB_16, ipvideo_decode_block_opcode_0xC_16, ipvideo_decode_block_opcode_0xD_16, ipvideo_decode_block_opcode_0xE_16, ipvideo_decode_block_opcode_0x1, }
Referenced by ipvideo_decode_opcodes().