libavcodec/vp6.c File Reference
VP6 compatible video decoder.  
More...
#include <stdlib.h>
#include "avcodec.h"
#include "dsputil.h"
#include "get_bits.h"
#include "huffman.h"
#include "vp56.h"
#include "vp56data.h"
#include "vp6data.h"
Go to the source code of this file.
|  | 
| 
 Defines | 
| #define | VP6_MAX_HUFF_SIZE   12 | 
| 
 Functions | 
| static void | vp6_parse_coeff (VP56Context *s) | 
| static void | vp6_parse_coeff_huffman (VP56Context *s) | 
| static int | vp6_parse_header (VP56Context *s, const uint8_t *buf, int buf_size, int *golden_frame) | 
| static void | vp6_coeff_order_table_init (VP56Context *s) | 
| static void | vp6_default_models_init (VP56Context *s) | 
| static void | vp6_parse_vector_models (VP56Context *s) | 
| static int | vp6_huff_cmp (const void *va, const void *vb) | 
| static int | vp6_build_huff_tree (VP56Context *s, uint8_t coeff_model[], const uint8_t *map, unsigned size, VLC *vlc) | 
| static int | vp6_parse_coeff_models (VP56Context *s) | 
| static void | vp6_parse_vector_adjustment (VP56Context *s, VP56mv *vect) | 
| static unsigned | vp6_get_nb_null (VP56Context *s) | 
|  | Read number of consecutive blocks with null DC or AC. 
 | 
| static int | vp6_block_variance (uint8_t *src, int stride) | 
| static void | vp6_filter_hv4 (uint8_t *dst, uint8_t *src, int stride, int delta, const int16_t *weights) | 
| static void | vp6_filter_diag2 (VP56Context *s, uint8_t *dst, uint8_t *src, int stride, int h_weight, int v_weight) | 
| static void | vp6_filter (VP56Context *s, uint8_t *dst, uint8_t *src, int offset1, int offset2, int stride, VP56mv mv, int mask, int select, int luma) | 
| static av_cold int | vp6_decode_init (AVCodecContext *avctx) | 
| static av_cold int | vp6_decode_free (AVCodecContext *avctx) | 
| 
 Variables | 
| AVCodec | ff_vp6_decoder | 
| AVCodec | ff_vp6f_decoder | 
| AVCodec | ff_vp6a_decoder | 
Detailed Description
VP6 compatible video decoder. 
The VP6F decoder accepts an optional 1 byte extradata. It is composed of:
- upper 4 bits: difference between encoded width and visible width
- lower 4 bits: difference between encoded height and visible height 
Definition in file vp6.c.
Define Documentation
      
        
          | #define VP6_MAX_HUFF_SIZE   12 | 
      
 
 
Function Documentation
      
        
          | static int vp6_block_variance | ( | uint8_t * | src, | 
        
          |  |  | int | stride |  | 
        
          |  | ) |  |  |  [static] | 
      
 
 
      
        
          | static int vp6_build_huff_tree | ( | VP56Context * | s, | 
        
          |  |  | uint8_t | coeff_model[], | 
        
          |  |  | const uint8_t * | map, | 
        
          |  |  | unsigned | size, | 
        
          |  |  | VLC * | vlc |  | 
        
          |  | ) |  |  |  [static] | 
      
 
 
      
        
          | static void vp6_coeff_order_table_init | ( | VP56Context * | s | ) |  [static] | 
      
 
 
      
        
          | static av_cold int vp6_decode_free | ( | AVCodecContext * | avctx | ) |  [static] | 
      
 
 
      
        
          | static av_cold int vp6_decode_init | ( | AVCodecContext * | avctx | ) |  [static] | 
      
 
 
      
        
          | static void vp6_default_models_init | ( | VP56Context * | s | ) |  [static] | 
      
 
 
      
        
          | static void vp6_filter | ( | VP56Context * | s, | 
        
          |  |  | uint8_t * | dst, | 
        
          |  |  | uint8_t * | src, | 
        
          |  |  | int | offset1, | 
        
          |  |  | int | offset2, | 
        
          |  |  | int | stride, | 
        
          |  |  | VP56mv | mv, | 
        
          |  |  | int | mask, | 
        
          |  |  | int | select, | 
        
          |  |  | int | luma |  | 
        
          |  | ) |  |  |  [static] | 
      
 
 
      
        
          | static void vp6_filter_diag2 | ( | VP56Context * | s, | 
        
          |  |  | uint8_t * | dst, | 
        
          |  |  | uint8_t * | src, | 
        
          |  |  | int | stride, | 
        
          |  |  | int | h_weight, | 
        
          |  |  | int | v_weight |  | 
        
          |  | ) |  |  |  [static] | 
      
 
 
      
        
          | static void vp6_filter_hv4 | ( | uint8_t * | dst, | 
        
          |  |  | uint8_t * | src, | 
        
          |  |  | int | stride, | 
        
          |  |  | int | delta, | 
        
          |  |  | const int16_t * | weights |  | 
        
          |  | ) |  |  |  [static] | 
      
 
 
      
        
          | static unsigned vp6_get_nb_null | ( | VP56Context * | s | ) |  [static] | 
      
 
 
      
        
          | static int vp6_huff_cmp | ( | const void * | va, | 
        
          |  |  | const void * | vb |  | 
        
          |  | ) |  |  |  [static] | 
      
 
 
      
        
          | static void vp6_parse_coeff | ( | VP56Context * | s | ) |  [static] | 
      
 
 
      
        
          | static void vp6_parse_coeff_huffman | ( | VP56Context * | s | ) |  [static] | 
      
 
 
      
        
          | static int vp6_parse_coeff_models | ( | VP56Context * | s | ) |  [static] | 
      
 
 
      
        
          | static int vp6_parse_header | ( | VP56Context * | s, | 
        
          |  |  | const uint8_t * | buf, | 
        
          |  |  | int | buf_size, | 
        
          |  |  | int * | golden_frame |  | 
        
          |  | ) |  |  |  [static] | 
      
 
 
      
        
          | static void vp6_parse_vector_models | ( | VP56Context * | s | ) |  [static] | 
      
 
 
Variable Documentation
Initial value:
Definition at line 623 of file vp6.c.
 
 
Initial value:
 {
    .name           = "vp6a",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_VP6A,
    .priv_data_size = sizeof(VP56Context),
    .init           = vp6_decode_init,
    .close          = vp6_decode_free,
    .decode         = ff_vp56_decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version, with alpha channel)"),
}
Definition at line 649 of file vp6.c.
 
 
Initial value:
Definition at line 636 of file vp6.c.