#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 ALT_BITSTREAM_READER_LE |
Definition at line 44 of file interplayvideo.c.
#define CHECK_STREAM_PTR | ( | stream_ptr, | |||
stream_end, | |||||
n | ) |
Value:
if (stream_end - stream_ptr < n) { \ av_log(s->avctx, AV_LOG_ERROR, "Interplay video warning: stream_ptr out of bounds (%p >= %p)\n", \ stream_ptr + n, stream_end); \ return -1; \ }
Definition at line 74 of file interplayvideo.c.
Referenced by 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(), ipvideo_decode_block_opcode_0x7_16(), ipvideo_decode_block_opcode_0x8(), ipvideo_decode_block_opcode_0x8_16(), ipvideo_decode_block_opcode_0x9(), ipvideo_decode_block_opcode_0x9_16(), ipvideo_decode_block_opcode_0xA(), ipvideo_decode_block_opcode_0xA_16(), ipvideo_decode_block_opcode_0xB(), ipvideo_decode_block_opcode_0xB_16(), ipvideo_decode_block_opcode_0xC(), ipvideo_decode_block_opcode_0xC_16(), ipvideo_decode_block_opcode_0xD(), ipvideo_decode_block_opcode_0xD_16(), ipvideo_decode_block_opcode_0xE(), ipvideo_decode_block_opcode_0xE_16(), ipvideo_decode_block_opcode_0xF(), msvideo1_decode_16bit(), msvideo1_decode_8bit(), qtrle_decode_16bpp(), qtrle_decode_1bpp(), qtrle_decode_24bpp(), qtrle_decode_2n4bpp(), qtrle_decode_32bpp(), and qtrle_decode_8bpp().
#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 81 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 103 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x1 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 108 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x2 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 113 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x3 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 139 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x4 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 167 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x5 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 190 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x6 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 205 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x6_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 572 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x7 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 214 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x7_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 586 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x8 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 259 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x8_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 629 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x9 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 336 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0x9_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 708 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xA | ( | IpvideoContext * | s | ) | [static] |
Definition at line 410 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xA_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 783 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xB | ( | IpvideoContext * | s | ) | [static] |
Definition at line 472 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xB_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 846 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xC | ( | IpvideoContext * | s | ) | [static] |
Definition at line 489 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xC_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 864 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xD | ( | IpvideoContext * | s | ) | [static] |
Definition at line 510 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xD_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 886 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xE | ( | IpvideoContext * | s | ) | [static] |
Definition at line 532 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xE_16 | ( | IpvideoContext * | s | ) | [static] |
Definition at line 909 of file interplayvideo.c.
static int ipvideo_decode_block_opcode_0xF | ( | IpvideoContext * | s | ) | [static] |
Definition at line 550 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 1037 of file interplayvideo.c.
static av_cold int ipvideo_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 1010 of file interplayvideo.c.
static void ipvideo_decode_opcodes | ( | IpvideoContext * | s | ) | [static] |
Initial value:
{ "interplayvideo", AVMEDIA_TYPE_VIDEO, CODEC_ID_INTERPLAY_VIDEO, sizeof(IpvideoContext), ipvideo_decode_init, NULL, ipvideo_decode_end, ipvideo_decode_frame, CODEC_CAP_DR1, .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] |
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().