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.