|
FFmpeg
|
Sierra VMD audio & video decoders by Vladimir "VAG" Gneushev (vagsoft at mail.ru) for more information on the Sierra VMD format, visit: http://www.pcisys.net/~melanson/codecs/. More...
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "libavutil/avassert.h"#include "libavutil/channel_layout.h"#include "libavutil/common.h"#include "libavutil/intreadwrite.h"#include "avcodec.h"#include "internal.h"#include "bytestream.h"Go to the source code of this file.
Data Structures | |
| struct | VmdVideoContext |
| struct | VmdAudioContext |
Macros | |
| #define | VMD_HEADER_SIZE 0x330 |
| #define | PALETTE_COUNT 256 |
| #define | QUEUE_SIZE 0x1000 |
| #define | QUEUE_MASK 0x0FFF |
| #define | BLOCK_TYPE_AUDIO 1 |
| #define | BLOCK_TYPE_INITIAL 2 |
| #define | BLOCK_TYPE_SILENCE 3 |
Functions | |
| static int | lz_unpack (const unsigned char *src, int src_len, unsigned char *dest, int dest_len) |
| static int | rle_unpack (const unsigned char *src, unsigned char *dest, int src_count, int src_size, int dest_len) |
| static int | vmd_decode (VmdVideoContext *s, AVFrame *frame) |
| static av_cold int | vmdvideo_decode_end (AVCodecContext *avctx) |
| static av_cold int | vmdvideo_decode_init (AVCodecContext *avctx) |
| static int | vmdvideo_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) |
| static av_cold int | vmdaudio_decode_init (AVCodecContext *avctx) |
| static void | decode_audio_s16 (int16_t *out, const uint8_t *buf, int buf_size, int channels) |
| static int | vmdaudio_decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) |
Variables | |
| static const uint16_t | vmdaudio_table [128] |
| AVCodec | ff_vmdvideo_decoder |
| AVCodec | ff_vmdaudio_decoder |
Sierra VMD audio & video decoders by Vladimir "VAG" Gneushev (vagsoft at mail.ru) for more information on the Sierra VMD format, visit: http://www.pcisys.net/~melanson/codecs/.
The video decoder outputs PAL8 colorspace data. The decoder expects a 0x330-byte VMD file header to be transmitted via extradata during codec initialization. Each encoded frame that is sent to this decoder is expected to be prepended with the appropriate 16-byte frame information record from the VMD file.
The audio decoder, like the video decoder, expects each encoded data chunk to be prepended with the appropriate 16-byte frame information record from the VMD file. It does not require the 0x330-byte VMD file header, but it does need the audio setup parameters passed in through normal libavcodec API means.
Definition in file vmdav.c.
| #define VMD_HEADER_SIZE 0x330 |
Definition at line 54 of file vmdav.c.
Referenced by vmdvideo_decode_init().
| #define PALETTE_COUNT 256 |
Definition at line 55 of file vmdav.c.
Referenced by vmd_decode(), vmdvideo_decode_frame(), and vmdvideo_decode_init().
| #define QUEUE_SIZE 0x1000 |
Definition at line 76 of file vmdav.c.
Referenced by lz_unpack().
| #define QUEUE_MASK 0x0FFF |
Definition at line 77 of file vmdav.c.
Referenced by lz_unpack().
| #define BLOCK_TYPE_INITIAL 2 |
Definition at line 480 of file vmdav.c.
Referenced by vmdaudio_decode_frame().
| #define BLOCK_TYPE_SILENCE 3 |
Definition at line 481 of file vmdav.c.
Referenced by vmdaudio_decode_frame().
|
static |
Definition at line 79 of file vmdav.c.
Referenced by vmd_decode().
|
static |
Definition at line 152 of file vmdav.c.
Referenced by vmd_decode().
|
static |
Definition at line 196 of file vmdav.c.
Referenced by vmdvideo_decode_frame().
|
static |
Definition at line 380 of file vmdav.c.
Referenced by vmdvideo_decode_init().
|
static |
|
static |
|
static |
|
static |
Definition at line 536 of file vmdav.c.
Referenced by vmdaudio_decode_frame().
|
static |
|
static |
Definition at line 488 of file vmdav.c.
Referenced by decode_audio_s16().
| AVCodec ff_vmdvideo_decoder |
| AVCodec ff_vmdaudio_decoder |
1.8.2