FFmpeg
4.0
|
On2 VP3 Video Decoder. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "get_bits.h"
#include "hpeldsp.h"
#include "internal.h"
#include "mathops.h"
#include "thread.h"
#include "videodsp.h"
#include "vp3data.h"
#include "vp3dsp.h"
#include "xiph.h"
Go to the source code of this file.
Data Structures | |
struct | Vp3Fragment |
struct | Vp3DecodeContext |
Macros | |
#define | FRAGMENT_PIXELS 8 |
#define | SB_NOT_CODED 0 |
#define | SB_PARTIALLY_CODED 1 |
#define | SB_FULLY_CODED 2 |
#define | MAXIMUM_LONG_BIT_RUN 4129 |
#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 | TOKEN_EOB(eob_run) ((eob_run) << 2) |
#define | TOKEN_ZERO_RUN(coeff, zero_run) (((coeff) * 512) + ((zero_run) << 2) + 1) |
#define | TOKEN_COEFF(coeff) (((coeff) * 4) + 2) |
#define | BLOCK_X (2 * mb_x + (k & 1)) |
#define | BLOCK_Y (2 * mb_y + (k >> 1)) |
#define | SET_CHROMA_MODES |
#define | COMPATIBLE_FRAME(x) (compatible_frame[s->all_fragments[x].coding_method] == current_frame_type) |
#define | DC_COEFF(u) s->all_fragments[u].dc |
#define | PUL 8 |
#define | PU 4 |
#define | PUR 2 |
#define | PL 1 |
#define | TRANSPOSE(x) (((x) >> 3) | (((x) & 7) << 3)) |
Variables | |
static const int | ModeAlphabet [6][CODING_MODE_COUNT] |
static const uint8_t | hilbert_offset [16][2] |
AVCodec | ff_vp3_decoder |
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 FRAGMENT_PIXELS 8 |
Definition at line 49 of file vp3.c.
Referenced by vp3_decode_init().
#define SB_NOT_CODED 0 |
Definition at line 58 of file vp3.c.
Referenced by unpack_superblocks().
#define SB_PARTIALLY_CODED 1 |
Definition at line 59 of file vp3.c.
Referenced by unpack_superblocks().
#define SB_FULLY_CODED 2 |
Definition at line 60 of file vp3.c.
Referenced by unpack_superblocks().
#define MAXIMUM_LONG_BIT_RUN 4129 |
Definition at line 65 of file vp3.c.
Referenced by unpack_block_qpis(), and unpack_superblocks().
#define MODE_INTER_NO_MV 0 |
Definition at line 67 of file vp3.c.
Referenced by unpack_modes(), and unpack_superblocks().
#define MODE_INTRA 1 |
Definition at line 68 of file vp3.c.
Referenced by render_slice(), and unpack_modes().
#define MODE_INTER_PLUS_MV 2 |
Definition at line 69 of file vp3.c.
Referenced by unpack_vectors().
#define MODE_INTER_LAST_MV 3 |
Definition at line 70 of file vp3.c.
Referenced by unpack_vectors().
#define MODE_INTER_PRIOR_LAST 4 |
Definition at line 71 of file vp3.c.
Referenced by unpack_vectors().
#define MODE_USING_GOLDEN 5 |
Definition at line 72 of file vp3.c.
Referenced by await_reference_row(), and render_slice().
#define MODE_GOLDEN_MV 6 |
Definition at line 73 of file vp3.c.
Referenced by await_reference_row(), render_slice(), and unpack_vectors().
#define MODE_INTER_FOURMV 7 |
Definition at line 74 of file vp3.c.
Referenced by unpack_vectors().
#define CODING_MODE_COUNT 8 |
Definition at line 75 of file vp3.c.
Referenced by unpack_modes().
#define MODE_COPY 8 |
Definition at line 78 of file vp3.c.
Referenced by apply_loop_filter(), render_slice(), reverse_dc_prediction(), unpack_modes(), unpack_superblocks(), and unpack_vectors().
#define TOKEN_EOB | ( | eob_run | ) | ((eob_run) << 2) |
Definition at line 211 of file vp3.c.
Referenced by unpack_vlcs().
Definition at line 212 of file vp3.c.
Referenced by unpack_vlcs().
Definition at line 213 of file vp3.c.
Referenced by unpack_vlcs().
#define BLOCK_X (2 * mb_x + (k & 1)) |
Referenced by unpack_modes(), and unpack_vectors().
#define BLOCK_Y (2 * mb_y + (k >> 1)) |
Referenced by unpack_modes(), and unpack_vectors().
#define SET_CHROMA_MODES |
Referenced by unpack_modes().
#define COMPATIBLE_FRAME | ( | x | ) | (compatible_frame[s->all_fragments[x].coding_method] == current_frame_type) |
Definition at line 1164 of file vp3.c.
Referenced by reverse_dc_prediction().
Definition at line 1166 of file vp3.c.
Referenced by reverse_dc_prediction().
#define PUL 8 |
Referenced by reverse_dc_prediction().
#define PU 4 |
Referenced by reverse_dc_prediction().
#define PUR 2 |
Referenced by reverse_dc_prediction().
#define PL 1 |
Referenced by reverse_dc_prediction().
#define TRANSPOSE | ( | x | ) | (((x) >> 3) | (((x) & 7) << 3)) |
Referenced by vp3_decode_init().
|
static |
Referenced by read_huffman_tree(), and vp3_decode_frame().
|
static |
Referenced by read_huffman_tree(), and vp3_decode_frame().
|
static |
Definition at line 268 of file vp3.c.
Referenced by allocate_tables(), and vp3_decode_end().
|
static |
Definition at line 282 of file vp3.c.
Referenced by read_huffman_tree(), and vp3_decode_end().
|
static |
Definition at line 294 of file vp3.c.
Referenced by allocate_tables(), read_huffman_tree(), and vp3_decode_frame().
|
static |
This function sets up all of the various blocks mappings: superblocks <-> fragments, macroblocks <-> fragments, superblocks <-> macroblocks.
Definition at line 336 of file vp3.c.
Referenced by allocate_tables().
|
static |
Definition at line 370 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Definition at line 412 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Definition at line 441 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Definition at line 593 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Definition at line 702 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Definition at line 880 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Definition at line 934 of file vp3.c.
Referenced by unpack_dct_coeffs().
|
static |
Definition at line 1168 of file vp3.c.
Referenced by unpack_dct_coeffs(), and unpack_vlcs().
|
static |
Definition at line 1066 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Definition at line 1318 of file vp3.c.
Referenced by render_slice(), vc1_decode_p_blocks(), and vp3_decode_frame().
|
inlinestatic |
Pull DCT tokens from the 64 levels to decode and dequant the coefficients for the next block in coding order.
Definition at line 1385 of file vp3.c.
Referenced by render_slice().
|
static |
called when all pixels up to row y are complete
Definition at line 1430 of file vp3.c.
Referenced by render_slice(), and vp3_decode_frame().
|
static |
Wait for the reference frame of the current fragment.
The progress value is in luma pixel rows.
Definition at line 1472 of file vp3.c.
Referenced by render_slice().
|
static |
Definition at line 1495 of file vp3.c.
Referenced by vp3_decode_frame().
|
static |
Allocate tables for per-frame data in Vp3DecodeContext.
Definition at line 1675 of file vp3.c.
Referenced by ref_frames(), and vp3_decode_init().
|
static |
Definition at line 1712 of file vp3.c.
Referenced by read_huffman_tree(), and vp3_decode_init().
|
static |
Definition at line 1728 of file vp3.c.
Referenced by read_huffman_tree(), and vp3_decode_frame().
|
static |
Release and shuffle frames after decode finishes.
Definition at line 1908 of file vp3.c.
Referenced by ref_frames(), and vp3_decode_frame().
|
static |
Definition at line 1929 of file vp3.c.
Referenced by await_reference_row(), ref_frames(), vp56_add_predictors_dc(), and vp56_render_mb().
|
static |
|
static |
Definition at line 2009 of file vp3.c.
Referenced by read_huffman_tree().
|
static |
|
static |
Definition at line 85 of file vp3.c.
Referenced by unpack_modes().
|
static |
Definition at line 123 of file vp3.c.
Referenced by init_block_mapping(), and render_slice().
AVCodec ff_vp3_decoder |