#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include "common.h"#include "avcodec.h"#include "dsputil.h"

Go to the source code of this file.
Data Structures | |
| struct | VmdVideoContext |
| struct | VmdAudioContext |
Defines | |
| #define | VMD_HEADER_SIZE 0x330 |
| #define | PALETTE_COUNT 256 |
| #define | QUEUE_SIZE 0x1000 |
| #define | QUEUE_MASK 0x0FFF |
Functions | |
| static void | lz_unpack (unsigned char *src, unsigned char *dest) |
| static int | rle_unpack (unsigned char *src, unsigned char *dest, int len) |
| static void | vmd_decode (VmdVideoContext *s) |
| static int | vmdvideo_decode_init (AVCodecContext *avctx) |
| static int | vmdvideo_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size) |
| static int | vmdvideo_decode_end (AVCodecContext *avctx) |
| static int | vmdaudio_decode_init (AVCodecContext *avctx) |
| static void | vmdaudio_decode_audio (VmdAudioContext *s, unsigned char *data, uint8_t *buf, int ratio) |
| static int | vmdaudio_loadsound (VmdAudioContext *s, unsigned char *data, uint8_t *buf, int silence) |
| static int | vmdaudio_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size) |
Variables | |
| AVCodec | vmdvideo_decoder |
| AVCodec | vmdaudio_decoder |
| #define QUEUE_MASK 0x0FFF |
| #define QUEUE_SIZE 0x1000 |
| #define VMD_HEADER_SIZE 0x330 |
| static void lz_unpack | ( | unsigned char * | src, | |
| unsigned char * | dest | |||
| ) | [static] |
Definition at line 75 of file vmdav.c.
References LE_32, QUEUE_MASK, QUEUE_SIZE, and s.
Referenced by vmd_decode().
| static int rle_unpack | ( | unsigned char * | src, | |
| unsigned char * | dest, | |||
| int | len | |||
| ) | [static] |
| static void vmd_decode | ( | VmdVideoContext * | s | ) | [static] |
Definition at line 170 of file vmdav.c.
References av_log(), AV_LOG_ERROR, VmdVideoContext::avctx, b, VmdVideoContext::buf, VmdVideoContext::frame, frame_height, frame_width, AVCodecContext::height, LE_16, lz_unpack(), memcpy, VmdVideoContext::palette, PALETTE_COUNT, VmdVideoContext::prev_frame, r, rle_unpack(), VmdVideoContext::size, VmdVideoContext::unpack_buffer, and AVCodecContext::width.
Referenced by vmdvideo_decode_frame().

| static void vmdaudio_decode_audio | ( | VmdAudioContext * | s, | |
| unsigned char * | data, | |||
| uint8_t * | buf, | |||
| int | ratio | |||
| ) | [static] |
| static int vmdaudio_decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | data_size, | |||
| uint8_t * | buf, | |||
| int | buf_size | |||
| ) | [static] |
Definition at line 507 of file vmdav.c.
References VmdAudioContext::bits, VmdAudioContext::block_align, LE_32, AVCodecContext::priv_data, s, and vmdaudio_loadsound().

| static int vmdaudio_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 399 of file vmdav.c.
References av_log(), AV_LOG_DEBUG, VmdAudioContext::avctx, VmdAudioContext::bits, AVCodecContext::bits_per_sample, AVCodecContext::block_align, VmdAudioContext::block_align, AVCodecContext::channels, VmdAudioContext::channels, AVCodecContext::priv_data, s, AVCodecContext::sample_rate, VmdAudioContext::steps128, VmdAudioContext::steps16, and VmdAudioContext::steps8.

| static int vmdaudio_loadsound | ( | VmdAudioContext * | s, | |
| unsigned char * | data, | |||
| uint8_t * | buf, | |||
| int | silence | |||
| ) | [static] |
Definition at line 461 of file vmdav.c.
References av_log(), AV_LOG_INFO, VmdAudioContext::avctx, VmdAudioContext::bits, VmdAudioContext::block_align, VmdAudioContext::channels, and vmdaudio_decode_audio().
Referenced by vmdaudio_decode_frame().

| static int vmdvideo_decode_end | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 372 of file vmdav.c.
References av_free(), VmdVideoContext::prev_frame, AVCodecContext::priv_data, AVCodecContext::release_buffer, s, and VmdVideoContext::unpack_buffer.

| static int vmdvideo_decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | data_size, | |||
| uint8_t * | buf, | |||
| int | buf_size | |||
| ) | [static] |
Definition at line 336 of file vmdav.c.
References av_log(), AV_LOG_ERROR, VmdVideoContext::avctx, VmdVideoContext::buf, VmdVideoContext::frame, AVCodecContext::get_buffer, memcpy, VmdVideoContext::palette, PALETTE_COUNT, VmdVideoContext::prev_frame, AVCodecContext::priv_data, AVCodecContext::release_buffer, s, VmdVideoContext::size, and vmd_decode().

| static int vmdvideo_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 294 of file vmdav.c.
References av_log(), AV_LOG_ERROR, av_malloc(), VmdVideoContext::avctx, b, VmdVideoContext::dsp, dsputil_init(), AVCodecContext::extradata, AVCodecContext::extradata_size, VmdVideoContext::frame, AVCodecContext::has_b_frames, LE_32, NULL, VmdVideoContext::palette, PALETTE_COUNT, AVCodecContext::pix_fmt, PIX_FMT_PAL8, VmdVideoContext::prev_frame, AVCodecContext::priv_data, r, s, VmdVideoContext::unpack_buffer, and VMD_HEADER_SIZE.

Initial value:
{
"vmdaudio",
CODEC_TYPE_AUDIO,
CODEC_ID_VMDAUDIO,
sizeof(VmdAudioContext),
vmdaudio_decode_init,
NULL,
NULL,
vmdaudio_decode_frame,
}
Definition at line 569 of file vmdav.c.
Referenced by avcodec_register_all().
Initial value:
{
"vmdvideo",
CODEC_TYPE_VIDEO,
CODEC_ID_VMDVIDEO,
sizeof(VmdVideoContext),
vmdvideo_decode_init,
NULL,
vmdvideo_decode_end,
vmdvideo_decode_frame,
CODEC_CAP_DR1,
}
Definition at line 557 of file vmdav.c.
Referenced by avcodec_register_all().
1.5.5