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.