| 
    FFmpeg
    
   | 
 
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) << 9) + ((zero_run) << 2) + 1) | 
| #define | TOKEN_COEFF(coeff) (((coeff) << 2) + 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)) | 
| #define | copy_fields(to, from, start_field, end_field) | 
Functions | |
| static int | theora_decode_header (AVCodecContext *avctx, GetBitContext *gb) | 
| static int | theora_decode_tables (AVCodecContext *avctx, GetBitContext *gb) | 
| static av_cold void | free_tables (AVCodecContext *avctx) | 
| static void | vp3_decode_flush (AVCodecContext *avctx) | 
| static av_cold int | vp3_decode_end (AVCodecContext *avctx) | 
| static int | init_block_mapping (Vp3DecodeContext *s) | 
| This function sets up all of the various blocks mappings: superblocks <-> fragments, macroblocks <-> fragments, superblocks <-> macroblocks.   | |
| static void | init_dequantizer (Vp3DecodeContext *s, int qpi) | 
| 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_block_qpis (Vp3DecodeContext *s, GetBitContext *gb) | 
| static int | unpack_vlcs (Vp3DecodeContext *s, GetBitContext *gb, VLC *table, int coeff_index, int plane, int eob_run) | 
| static void | reverse_dc_prediction (Vp3DecodeContext *s, int first_fragment, int fragment_width, int fragment_height) | 
| static int | unpack_dct_coeffs (Vp3DecodeContext *s, GetBitContext *gb) | 
| static void | apply_loop_filter (Vp3DecodeContext *s, int plane, int ystart, int yend) | 
| static int | vp3_dequant (Vp3DecodeContext *s, Vp3Fragment *frag, int plane, int inter, int16_t block[64]) | 
| Pull DCT tokens from the 64 levels to decode and dequant the coefficients for the next block in coding order.   | |
| static void | vp3_draw_horiz_band (Vp3DecodeContext *s, int y) | 
| called when all pixels up to row y are complete   | |
| static void | await_reference_row (Vp3DecodeContext *s, Vp3Fragment *fragment, int motion_y, int y) | 
| Wait for the reference frame of the current fragment.   | |
| static void | render_slice (Vp3DecodeContext *s, int slice) | 
| static av_cold int | allocate_tables (AVCodecContext *avctx) | 
| Allocate tables for per-frame data in Vp3DecodeContext.   | |
| static av_cold int | init_frames (Vp3DecodeContext *s) | 
| static av_cold int | vp3_decode_init (AVCodecContext *avctx) | 
| static int | update_frames (AVCodecContext *avctx) | 
| Release and shuffle frames after decode finishes.   | |
| static int | ref_frame (Vp3DecodeContext *s, ThreadFrame *dst, ThreadFrame *src) | 
| static int | ref_frames (Vp3DecodeContext *dst, Vp3DecodeContext *src) | 
| static int | vp3_update_thread_context (AVCodecContext *dst, const AVCodecContext *src) | 
| static int | vp3_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) | 
| static int | read_huffman_tree (AVCodecContext *avctx, GetBitContext *gb) | 
| static int | vp3_init_thread_copy (AVCodecContext *avctx) | 
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 | 
| #define COMPATIBLE_FRAME | ( | x | ) | (compatible_frame[s->all_fragments[x].coding_method] == current_frame_type) | 
Definition at line 1152 of file vp3.c.
Referenced by reverse_dc_prediction().
Definition at line 1154 of file vp3.c.
Referenced by reverse_dc_prediction().
| #define PUL 8 | 
Referenced by reverse_dc_prediction().
| #define PU 4 | 
| #define PUR 2 | 
Referenced by reverse_dc_prediction().
| #define PL 1 | 
| #define TRANSPOSE | ( | x | ) | (((x) >> 3) | (((x) & 7) << 3)) | 
      
  | 
  static | 
Referenced by vp3_decode_frame().
      
  | 
  static | 
Referenced by 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 vp3_decode_end().
      
  | 
  static | 
Definition at line 294 of file vp3.c.
Referenced by allocate_tables(), 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 | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
Definition at line 934 of file vp3.c.
Referenced by unpack_dct_coeffs().
      
  | 
  static | 
Definition at line 1156 of file vp3.c.
Referenced by unpack_dct_coeffs().
      
  | 
  static | 
      
  | 
  static | 
Definition at line 1306 of file vp3.c.
Referenced by render_slice(), and vc1_decode_p_blocks().
      
  | 
  inlinestatic | 
Pull DCT tokens from the 64 levels to decode and dequant the coefficients for the next block in coding order.
Definition at line 1373 of file vp3.c.
Referenced by render_slice().
      
  | 
  static | 
called when all pixels up to row y are complete
Definition at line 1418 of file vp3.c.
Referenced by render_slice().
      
  | 
  static | 
Wait for the reference frame of the current fragment.
The progress value is in luma pixel rows.
Definition at line 1460 of file vp3.c.
Referenced by render_slice().
      
  | 
  static | 
      
  | 
  static | 
Allocate tables for per-frame data in Vp3DecodeContext.
Definition at line 1663 of file vp3.c.
Referenced by vp3_decode_init(), and vp3_update_thread_context().
      
  | 
  static | 
Definition at line 1700 of file vp3.c.
Referenced by vp3_decode_init(), and vp3_init_thread_copy().
      
  | 
  static | 
Definition at line 1716 of file vp3.c.
Referenced by vp3_decode_frame().
      
  | 
  static | 
Release and shuffle frames after decode finishes.
Definition at line 1894 of file vp3.c.
Referenced by vp3_update_thread_context().
      
  | 
  static | 
Definition at line 1915 of file vp3.c.
Referenced by await_reference_row(), ref_frames(), vp56_add_predictors_dc(), and vp56_decode_mb().
      
  | 
  static | 
Definition at line 1923 of file vp3.c.
Referenced by vp3_update_thread_context().
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  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 | 
 1.8.2