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:

Definition in file vp6.c.


Define Documentation

#define VP6_MAX_HUFF_SIZE   12

Definition at line 41 of file vp6.c.

Referenced by vp6_build_huff_tree().


Function Documentation

static int vp6_block_variance ( uint8_t *  src,
int  stride 
) [static]

Definition at line 499 of file vp6.c.

Referenced by vp6_filter().

static int vp6_build_huff_tree ( VP56Context s,
uint8_t  coeff_model[],
const uint8_t *  map,
unsigned  size,
VLC vlc 
) [static]

Definition at line 221 of file vp6.c.

Referenced by vp6_parse_coeff_models().

static void vp6_coeff_order_table_init ( VP56Context s  )  [static]

Definition at line 161 of file vp6.c.

Referenced by vp6_default_models_init(), and vp6_parse_coeff_models().

static av_cold int vp6_decode_free ( AVCodecContext avctx  )  [static]

Definition at line 606 of file vp6.c.

static av_cold int vp6_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 589 of file vp6.c.

static void vp6_default_models_init ( VP56Context s  )  [static]

Definition at line 172 of file vp6.c.

Referenced by vp6_decode_init().

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]

Definition at line 539 of file vp6.c.

Referenced by vp6_decode_init().

static void vp6_filter_diag2 ( VP56Context s,
uint8_t *  dst,
uint8_t *  src,
int  stride,
int  h_weight,
int  v_weight 
) [static]

Definition at line 531 of file vp6.c.

Referenced by vp6_filter().

static void vp6_filter_hv4 ( uint8_t *  dst,
uint8_t *  src,
int  stride,
int  delta,
const int16_t weights 
) [static]

Definition at line 514 of file vp6.c.

Referenced by vp6_filter().

static unsigned vp6_get_nb_null ( VP56Context s  )  [static]

Read number of consecutive blocks with null DC or AC.

This value is < 74.

Definition at line 353 of file vp6.c.

Referenced by vp6_parse_coeff_huffman().

static int vp6_huff_cmp ( const void *  va,
const void *  vb 
) [static]

Definition at line 215 of file vp6.c.

Referenced by vp6_build_huff_tree().

static void vp6_parse_coeff ( VP56Context s  )  [static]

Definition at line 424 of file vp6.c.

Referenced by vp6_parse_header().

static void vp6_parse_coeff_huffman ( VP56Context s  )  [static]

Definition at line 365 of file vp6.c.

Referenced by vp6_parse_header().

static int vp6_parse_coeff_models ( VP56Context s  )  [static]

Definition at line 242 of file vp6.c.

Referenced by vp6_decode_init().

static int vp6_parse_header ( VP56Context s,
const uint8_t *  buf,
int  buf_size,
int *  golden_frame 
) [static]

Definition at line 46 of file vp6.c.

Referenced by vp6_decode_init().

static void vp6_parse_vector_adjustment ( VP56Context s,
VP56mv vect 
) [static]

Definition at line 311 of file vp6.c.

Referenced by vp6_decode_init().

static void vp6_parse_vector_models ( VP56Context s  )  [static]

Definition at line 190 of file vp6.c.

Referenced by vp6_decode_init().


Variable Documentation

Initial value:

 {
    .name           = "vp6",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_VP6,
    .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"),
}

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:

 {
    .name           = "vp6f",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_VP6F,
    .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)"),
}

Definition at line 636 of file vp6.c.


Generated on Fri Oct 26 02:43:50 2012 for FFmpeg by  doxygen 1.5.8