libavcodec/vp3.c File Reference
On2 VP3 Video Decoder.
More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "avcodec.h"
#include "dsputil.h"
#include "bitstream.h"
#include "vp3data.h"
#include "xiph.h"
Go to the source code of this file.
|
Data Structures |
struct | Coeff |
struct | Vp3Fragment |
struct | Vp3DecodeContext |
Defines |
#define | FRAGMENT_PIXELS 8 |
#define | SB_NOT_CODED 0 |
#define | SB_PARTIALLY_CODED 1 |
#define | SB_FULLY_CODED 2 |
#define | MODE_INTER_NO_MV 0 |
#define | MODE_INTRA 1 |
#define | MODE_INTER_PLUS_MV 2 |
#define | MODE_INTER_LAST_MV 3 |
#define | MODE_INTER_PRIOR_LAST 4 |
#define | MODE_USING_GOLDEN 5 |
#define | MODE_GOLDEN_MV 6 |
#define | MODE_INTER_FOURMV 7 |
#define | CODING_MODE_COUNT 8 |
#define | MODE_COPY 8 |
#define | MIN_DEQUANT_VAL 2 |
#define | COMPATIBLE_FRAME(x) (compatible_frame[s->all_fragments[x].coding_method] == current_frame_type) |
#define | FRAME_CODED(x) (s->all_fragments[x].coding_method != MODE_COPY) |
#define | DC_COEFF(u) (s->coeffs[u].index ? 0 : s->coeffs[u].coeff) |
#define | PUL 8 |
#define | PU 4 |
#define | PUR 2 |
#define | PL 1 |
#define | Y_INITIAL(chroma_shift) s->flipped_image ? 1 : s->fragment_height >> chroma_shift |
#define | Y_FINISHED(chroma_shift) s->flipped_image ? y <= s->fragment_height >> chroma_shift : y > 0 |
Functions |
static av_cold int | vp3_decode_end (AVCodecContext *avctx) |
static int | init_block_mapping (Vp3DecodeContext *s) |
static void | init_frame (Vp3DecodeContext *s, GetBitContext *gb) |
static void | init_dequantizer (Vp3DecodeContext *s) |
static void | init_loop_filter (Vp3DecodeContext *s) |
static int | unpack_superblocks (Vp3DecodeContext *s, GetBitContext *gb) |
static int | unpack_modes (Vp3DecodeContext *s, GetBitContext *gb) |
static int | unpack_vectors (Vp3DecodeContext *s, GetBitContext *gb) |
static int | unpack_vlcs (Vp3DecodeContext *s, GetBitContext *gb, VLC *table, int coeff_index, int first_fragment, int last_fragment, int eob_run) |
static int | unpack_dct_coeffs (Vp3DecodeContext *s, GetBitContext *gb) |
static void | reverse_dc_prediction (Vp3DecodeContext *s, int first_fragment, int fragment_width, int fragment_height) |
static void | render_slice (Vp3DecodeContext *s, int slice) |
static void | apply_loop_filter (Vp3DecodeContext *s) |
static void | vp3_calculate_pixel_addresses (Vp3DecodeContext *s) |
static av_cold int | vp3_decode_init (AVCodecContext *avctx) |
static int | vp3_decode_frame (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size) |
static int | read_huffman_tree (AVCodecContext *avctx, GetBitContext *gb) |
Variables |
static const int | ModeAlphabet [6][CODING_MODE_COUNT] |
AVCodec | vp3_decoder |
Detailed Description
On2 VP3 Video Decoder.
VP3 Video Decoder by Mike Melanson (mike at multimedia.cx) For more information about the VP3 coding process, visit: http://wiki.multimedia.cx/index.php?title=On2_VP3
Theora decoder by Alex Beregszaszi
Definition in file vp3.c.
Define Documentation
#define CODING_MODE_COUNT 8 |
#define COMPATIBLE_FRAME |
( |
x |
|
) |
(compatible_frame[s->all_fragments[x].coding_method] == current_frame_type) |
#define DC_COEFF |
( |
u |
|
) |
(s->coeffs[u].index ? 0 : s->coeffs[u].coeff) |
#define FRAGMENT_PIXELS 8 |
#define FRAME_CODED |
( |
x |
|
) |
(s->all_fragments[x].coding_method != MODE_COPY) |
#define MIN_DEQUANT_VAL 2 |
#define MODE_INTER_FOURMV 7 |
#define MODE_INTER_LAST_MV 3 |
#define MODE_INTER_NO_MV 0 |
#define MODE_INTER_PLUS_MV 2 |
#define MODE_INTER_PRIOR_LAST 4 |
#define MODE_USING_GOLDEN 5 |
#define SB_PARTIALLY_CODED 1 |
#define Y_FINISHED |
( |
chroma_shift |
|
) |
s->flipped_image ? y <= s->fragment_height >> chroma_shift : y > 0 |
#define Y_INITIAL |
( |
chroma_shift |
|
) |
s->flipped_image ? 1 : s->fragment_height >> chroma_shift |
Function Documentation
static void reverse_dc_prediction |
( |
Vp3DecodeContext * |
s, |
|
|
int |
first_fragment, |
|
|
int |
fragment_width, |
|
|
int |
fragment_height | |
|
) |
| | [static] |
static int vp3_decode_frame |
( |
AVCodecContext * |
avctx, |
|
|
void * |
data, |
|
|
int * |
data_size, |
|
|
const uint8_t * |
buf, |
|
|
int |
buf_size | |
|
) |
| | [static] |
static av_cold int vp3_decode_init |
( |
AVCodecContext * |
avctx |
) |
[static] |
Variable Documentation
Initial value:
{
"vp3",
CODEC_TYPE_VIDEO,
CODEC_ID_VP3,
sizeof(Vp3DecodeContext),
vp3_decode_init,
NULL,
vp3_decode_end,
vp3_decode_frame,
0,
NULL,
.long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
}
Definition at line 2332 of file vp3.c.