mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-18 22:51:50 +00:00
100 lines
3.5 KiB
C
100 lines
3.5 KiB
C
/*
|
|
* InterplayDecoder
|
|
* Copyright (C) 2020 sirlemonhead
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
/* This code is based on interplayvideo.c, dpcm.c and ipmovie.c from the FFmpeg project which can be obtained
|
|
* from http://www.ffmpeg.org/. Below is the license from interplayvideo.c
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
/*
|
|
* Interplay MVE Video Decoder
|
|
* Copyright (C) 2003 The FFmpeg project
|
|
*
|
|
* This file is part of FFmpeg.
|
|
*
|
|
* FFmpeg is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* FFmpeg is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with FFmpeg; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#ifndef playmve_h_
|
|
#define playmve_h_
|
|
|
|
#include "baselayer.h"
|
|
#include "build.h"
|
|
#include "compat.h"
|
|
#include "pragmas.h"
|
|
|
|
bool playmve(const char* filename);
|
|
|
|
#define kMVETile (MAXTILES-1)
|
|
#define kMVEPal 5
|
|
|
|
#define CHUNK_PREAMBLE_SIZE 4
|
|
#define OPCODE_PREAMBLE_SIZE 4
|
|
|
|
#define CHUNK_INIT_AUDIO 0x0000
|
|
#define CHUNK_AUDIO_ONLY 0x0001
|
|
#define CHUNK_INIT_VIDEO 0x0002
|
|
#define CHUNK_VIDEO 0x0003
|
|
#define CHUNK_SHUTDOWN 0x0004
|
|
#define CHUNK_END 0x0005
|
|
/* these last types are used internally */
|
|
#define CHUNK_DONE 0xFFFC
|
|
#define CHUNK_NOMEM 0xFFFD
|
|
#define CHUNK_EOF 0xFFFE
|
|
#define CHUNK_BAD 0xFFFF
|
|
|
|
#define OPCODE_END_OF_STREAM 0x00
|
|
#define OPCODE_END_OF_CHUNK 0x01
|
|
#define OPCODE_CREATE_TIMER 0x02
|
|
#define OPCODE_INIT_AUDIO_BUFFERS 0x03
|
|
#define OPCODE_START_STOP_AUDIO 0x04
|
|
#define OPCODE_INIT_VIDEO_BUFFERS 0x05
|
|
#define OPCODE_UNKNOWN_06 0x06
|
|
#define OPCODE_SEND_BUFFER 0x07
|
|
#define OPCODE_AUDIO_FRAME 0x08
|
|
#define OPCODE_SILENCE_FRAME 0x09
|
|
#define OPCODE_INIT_VIDEO_MODE 0x0A
|
|
#define OPCODE_CREATE_GRADIENT 0x0B
|
|
#define OPCODE_SET_PALETTE 0x0C
|
|
#define OPCODE_SET_PALETTE_COMPRESSED 0x0D
|
|
#define OPCODE_UNKNOWN_0E 0x0E
|
|
#define OPCODE_SET_DECODING_MAP 0x0F
|
|
#define OPCODE_UNKNOWN_10 0x10
|
|
#define OPCODE_VIDEO_DATA 0x11
|
|
#define OPCODE_UNKNOWN_12 0x12
|
|
#define OPCODE_UNKNOWN_13 0x13
|
|
#define OPCODE_UNKNOWN_14 0x14
|
|
#define OPCODE_UNKNOWN_15 0x15
|
|
|
|
#define PALETTE_COUNT 256
|
|
|
|
#endif
|