#include <stdio.h>
#include <string.h>
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "bytestream.h"
#include "codec_internal.h"
#include "decode.h"
#include "get_bits.h"
#include "hpeldsp.h"
Go to the source code of this file.
|
static int | copy_from (IpvideoContext *s, AVFrame *src, AVFrame *dst, int delta_x, int delta_y) |
|
static int | ipvideo_decode_block_opcode_0x0 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x1 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x2 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x3 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x4 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x5 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x6 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x7 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x8 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x9 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xA (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xB (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xC (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xD (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xE (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xF (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x6_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x7_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x8_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0x9_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xA_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xB_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xC_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xD_16 (IpvideoContext *s, AVFrame *frame) |
|
static int | ipvideo_decode_block_opcode_0xE_16 (IpvideoContext *s, AVFrame *frame) |
|
static void | ipvideo_format_06_firstpass (IpvideoContext *s, AVFrame *frame, int16_t opcode) |
|
static void | ipvideo_format_06_secondpass (IpvideoContext *s, AVFrame *frame, int16_t opcode) |
|
static void | ipvideo_decode_format_06_opcodes (IpvideoContext *s, AVFrame *frame) |
|
static void | ipvideo_format_10_firstpass (IpvideoContext *s, AVFrame *frame, int16_t opcode) |
|
static void | ipvideo_format_10_secondpass (IpvideoContext *s, AVFrame *frame, int16_t opcode) |
|
static void | ipvideo_decode_format_10_opcodes (IpvideoContext *s, AVFrame *frame) |
|
static void | ipvideo_decode_format_11_opcodes (IpvideoContext *s, AVFrame *frame) |
|
static av_cold int | ipvideo_decode_init (AVCodecContext *avctx) |
|
static int | ipvideo_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt) |
|
static av_cold int | ipvideo_decode_end (AVCodecContext *avctx) |
|
Interplay MVE Video Decoder by Mike Melanson (melan.nosp@m.son@.nosp@m.pcisy.nosp@m.s.ne.nosp@m.t) 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.
◆ BITSTREAM_READER_LE
#define BITSTREAM_READER_LE |
◆ PALETTE_COUNT
#define PALETTE_COUNT 256 |
◆ copy_from()
Definition at line 78 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(), ipvideo_decode_block_opcode_0x6_16(), ipvideo_decode_format_10_opcodes(), ipvideo_format_06_firstpass(), ipvideo_format_06_secondpass(), and ipvideo_format_10_secondpass().
◆ 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()
◆ 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_format_06_firstpass()
◆ ipvideo_format_06_secondpass()
◆ ipvideo_decode_format_06_opcodes()
◆ ipvideo_format_10_firstpass()
◆ ipvideo_format_10_secondpass()
◆ ipvideo_decode_format_10_opcodes()
◆ ipvideo_decode_format_11_opcodes()
◆ ipvideo_decode_init()
◆ ipvideo_decode_frame()
◆ ipvideo_decode_end()
◆ ipvideo_decode_block
◆ ipvideo_decode_block16
◆ ipvideo_format_06_passes
◆ ipvideo_format_10_passes
◆ ff_interplay_video_decoder
const FFCodec ff_interplay_video_decoder |
static av_cold int ipvideo_decode_init(AVCodecContext *avctx)
static int ipvideo_decode_block_opcode_0xB(IpvideoContext *s, AVFrame *frame)
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
static int ipvideo_decode_block_opcode_0x3(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x2(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0xC(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s, AVFrame *frame)
static void ipvideo_format_10_secondpass(IpvideoContext *s, AVFrame *frame, int16_t opcode)
static int ipvideo_decode_block_opcode_0x7_16(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x8_16(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x4(IpvideoContext *s, AVFrame *frame)
#define FF_CODEC_DECODE_CB(func)
static int ipvideo_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt)
static int ipvideo_decode_block_opcode_0x6(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x9_16(IpvideoContext *s, AVFrame *frame)
#define CODEC_LONG_NAME(str)
static int ipvideo_decode_block_opcode_0xA(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x1(IpvideoContext *s, AVFrame *frame)
static void ipvideo_format_10_firstpass(IpvideoContext *s, AVFrame *frame, int16_t opcode)
@ AV_CODEC_ID_INTERPLAY_VIDEO
static int ipvideo_decode_block_opcode_0x6_16(IpvideoContext *s, AVFrame *frame)
static void ipvideo_format_06_firstpass(IpvideoContext *s, AVFrame *frame, int16_t opcode)
static int ipvideo_decode_block_opcode_0xE(IpvideoContext *s, AVFrame *frame)
static av_cold int ipvideo_decode_end(AVCodecContext *avctx)
int(* init)(AVBSFContext *ctx)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
static int ipvideo_decode_block_opcode_0x0(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x8(IpvideoContext *s, AVFrame *frame)
static void ipvideo_format_06_secondpass(IpvideoContext *s, AVFrame *frame, int16_t opcode)
static int ipvideo_decode_block_opcode_0x5(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0xB_16(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0xC_16(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0xF(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0x7(IpvideoContext *s, AVFrame *frame)
#define AV_CODEC_CAP_PARAM_CHANGE
Codec supports changed parameters at any point.
static int ipvideo_decode_block_opcode_0xE_16(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0xD(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0xD_16(IpvideoContext *s, AVFrame *frame)
static int ipvideo_decode_block_opcode_0xA_16(IpvideoContext *s, AVFrame *frame)