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 "mpegvideo.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 KEYFRAMES_ONLY   0
#define DEBUG_VP3   0
#define DEBUG_INIT   0
#define DEBUG_DEQUANTIZERS   0
#define DEBUG_BLOCK_CODING   0
#define DEBUG_MODES   0
#define DEBUG_VECTORS   0
#define DEBUG_TOKEN   0
#define DEBUG_VLC   0
#define DEBUG_DC_PRED   0
#define DEBUG_IDCT   0
#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

Functions

static void debug_vp3 (const char *format,...)
static void debug_init (const char *format,...)
static void debug_dequantizers (const char *format,...)
static void debug_block_coding (const char *format,...)
static void debug_modes (const char *format,...)
static void debug_vectors (const char *format,...)
static void debug_token (const char *format,...)
static void debug_vlc (const char *format,...)
static void debug_dc_pred (const char *format,...)
static void debug_idct (const char *format,...)
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 horizontal_filter (unsigned char *first_pixel, int stride, int *bounding_values)
static void vertical_filter (unsigned char *first_pixel, int stride, int *bounding_values)
static void render_slice (Vp3DecodeContext *s, int slice)
static void apply_loop_filter (Vp3DecodeContext *s)
static void vp3_calculate_pixel_addresses (Vp3DecodeContext *s)
static void theora_calculate_pixel_addresses (Vp3DecodeContext *s)
static 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 vp3_decode_end (AVCodecContext *avctx)
static int read_huffman_tree (AVCodecContext *avctx, GetBitContext *gb)

Variables

static int ModeAlphabet [7][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://multimedia.cx/

Theora decoder by Alex Beregszaszi

Definition in file vp3.c.


Define Documentation

#define CODING_MODE_COUNT   8

Definition at line 170 of file vp3.c.

#define COMPATIBLE_FRAME (  )     (compatible_frame[s->all_fragments[x].coding_method] == current_frame_type)

Definition at line 1310 of file vp3.c.

Referenced by reverse_dc_prediction().

#define DC_COEFF (  )     (s->coeffs[u].index ? 0 : s->coeffs[u].coeff)

Definition at line 1313 of file vp3.c.

Referenced by render_slice(), and reverse_dc_prediction().

#define DEBUG_BLOCK_CODING   0

Definition at line 70 of file vp3.c.

#define DEBUG_DC_PRED   0

Definition at line 75 of file vp3.c.

#define DEBUG_DEQUANTIZERS   0

Definition at line 69 of file vp3.c.

#define DEBUG_IDCT   0

Definition at line 76 of file vp3.c.

#define DEBUG_INIT   0

Definition at line 68 of file vp3.c.

#define DEBUG_MODES   0

Definition at line 71 of file vp3.c.

#define DEBUG_TOKEN   0

Definition at line 73 of file vp3.c.

#define DEBUG_VECTORS   0

Definition at line 72 of file vp3.c.

#define DEBUG_VLC   0

Definition at line 74 of file vp3.c.

#define DEBUG_VP3   0

Definition at line 67 of file vp3.c.

#define FRAGMENT_PIXELS   8

#define FRAME_CODED (  )     (s->all_fragments[x].coding_method != MODE_COPY)

Definition at line 1312 of file vp3.c.

Referenced by reverse_dc_prediction().

#define KEYFRAMES_ONLY   0

Definition at line 65 of file vp3.c.

#define MIN_DEQUANT_VAL   2

Definition at line 219 of file vp3.c.

#define MODE_COPY   8

#define MODE_GOLDEN_MV   6

Definition at line 168 of file vp3.c.

Referenced by render_slice(), and unpack_vectors().

#define MODE_INTER_FOURMV   7

Definition at line 169 of file vp3.c.

Referenced by unpack_vectors().

#define MODE_INTER_LAST_MV   3

Definition at line 165 of file vp3.c.

Referenced by unpack_vectors().

#define MODE_INTER_NO_MV   0

Definition at line 162 of file vp3.c.

Referenced by unpack_superblocks().

#define MODE_INTER_PLUS_MV   2

Definition at line 164 of file vp3.c.

Referenced by unpack_vectors().

#define MODE_INTER_PRIOR_LAST   4

Definition at line 166 of file vp3.c.

Referenced by unpack_vectors().

#define MODE_INTRA   1

Definition at line 163 of file vp3.c.

Referenced by render_slice(), and unpack_modes().

#define MODE_USING_GOLDEN   5

Definition at line 167 of file vp3.c.

Referenced by render_slice().

#define PL   1

#define PU   4

Referenced by reverse_dc_prediction().

#define PUL   8

Referenced by reverse_dc_prediction().

#define PUR   2

Referenced by reverse_dc_prediction().

#define SB_FULLY_CODED   2

Definition at line 160 of file vp3.c.

Referenced by unpack_superblocks().

#define SB_NOT_CODED   0

Definition at line 158 of file vp3.c.

Referenced by unpack_superblocks().

#define SB_PARTIALLY_CODED   1

Definition at line 159 of file vp3.c.

Referenced by unpack_superblocks().


Function Documentation

static void apply_loop_filter ( Vp3DecodeContext s  )  [static]

Definition at line 1751 of file vp3.c.

Referenced by vp3_decode_frame().

static void debug_block_coding ( const char *  format,
  ... 
) [inline, static]

Definition at line 99 of file vp3.c.

Referenced by unpack_superblocks().

static void debug_dc_pred ( const char *  format,
  ... 
) [inline, static]

Definition at line 129 of file vp3.c.

Referenced by reverse_dc_prediction().

static void debug_dequantizers ( const char *  format,
  ... 
) [inline, static]

Definition at line 93 of file vp3.c.

static void debug_idct ( const char *  format,
  ... 
) [inline, static]

Definition at line 135 of file vp3.c.

Referenced by render_slice().

static void debug_init ( const char *  format,
  ... 
) [inline, static]

static void debug_modes ( const char *  format,
  ... 
) [inline, static]

Definition at line 105 of file vp3.c.

Referenced by unpack_modes().

static void debug_token ( const char *  format,
  ... 
) [inline, static]

Definition at line 117 of file vp3.c.

static void debug_vectors ( const char *  format,
  ... 
) [inline, static]

Definition at line 111 of file vp3.c.

Referenced by unpack_vectors().

static void debug_vlc ( const char *  format,
  ... 
) [inline, static]

Definition at line 123 of file vp3.c.

Referenced by unpack_vlcs().

static void debug_vp3 ( const char *  format,
  ... 
) [inline, static]

static void horizontal_filter ( unsigned char *  first_pixel,
int  stride,
int *  bounding_values 
) [static]

Definition at line 1718 of file vp3.c.

Referenced by apply_loop_filter(), and render_slice().

static int init_block_mapping ( Vp3DecodeContext s  )  [static]

Definition at line 343 of file vp3.c.

Referenced by vp3_decode_init().

static void init_dequantizer ( Vp3DecodeContext s  )  [static]

Definition at line 605 of file vp3.c.

Referenced by vp3_decode_frame().

static void init_frame ( Vp3DecodeContext s,
GetBitContext gb 
) [static]

Definition at line 584 of file vp3.c.

static void init_loop_filter ( Vp3DecodeContext s  )  [static]

Definition at line 645 of file vp3.c.

Referenced by vp3_decode_frame().

static int read_huffman_tree ( AVCodecContext avctx,
GetBitContext gb 
) [static]

Definition at line 2336 of file vp3.c.

static void render_slice ( Vp3DecodeContext s,
int  slice 
) [static]

Definition at line 1498 of file vp3.c.

Referenced by vp3_decode_frame().

static void reverse_dc_prediction ( Vp3DecodeContext s,
int  first_fragment,
int  fragment_width,
int  fragment_height 
) [static]

Definition at line 1315 of file vp3.c.

Referenced by vp3_decode_frame().

static void theora_calculate_pixel_addresses ( Vp3DecodeContext s  )  [static]

Definition at line 1887 of file vp3.c.

Referenced by vp3_decode_frame().

static int unpack_dct_coeffs ( Vp3DecodeContext s,
GetBitContext gb 
) [static]

Definition at line 1217 of file vp3.c.

Referenced by vp3_decode_frame().

static int unpack_modes ( Vp3DecodeContext s,
GetBitContext gb 
) [static]

Definition at line 873 of file vp3.c.

Referenced by vp3_decode_frame().

static int unpack_superblocks ( Vp3DecodeContext s,
GetBitContext gb 
) [static]

Definition at line 667 of file vp3.c.

Referenced by vp3_decode_frame().

static int unpack_vectors ( Vp3DecodeContext s,
GetBitContext gb 
) [static]

Definition at line 958 of file vp3.c.

Referenced by vp3_decode_frame().

static int unpack_vlcs ( Vp3DecodeContext s,
GetBitContext gb,
VLC table,
int  coeff_index,
int  first_fragment,
int  last_fragment,
int  eob_run 
) [static]

Definition at line 1141 of file vp3.c.

Referenced by unpack_dct_coeffs().

static void vertical_filter ( unsigned char *  first_pixel,
int  stride,
int *  bounding_values 
) [static]

Definition at line 1734 of file vp3.c.

Referenced by apply_loop_filter(), and render_slice().

static void vp3_calculate_pixel_addresses ( Vp3DecodeContext s  )  [static]

Definition at line 1840 of file vp3.c.

Referenced by vp3_decode_frame().

static int vp3_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 2313 of file vp3.c.

static int vp3_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
const uint8_t buf,
int  buf_size 
) [static]

Definition at line 2127 of file vp3.c.

static int vp3_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 1936 of file vp3.c.


Variable Documentation

int ModeAlphabet[7][CODING_MODE_COUNT] [static]

Definition at line 176 of file vp3.c.

Referenced by unpack_modes().

Initial value:

Definition at line 2626 of file vp3.c.


Generated on Sat Sep 6 21:24:59 2008 for ffmpeg by  doxygen 1.5.6