libavcodec/vp6.c File Reference

VP6 compatible video decoder. More...

#include <stdlib.h>
#include "avcodec.h"
#include "dsputil.h"
#include "bitstream.h"
#include "huffman.h"
#include "mpegvideo.h"
#include "vp56.h"
#include "vp56data.h"
#include "vp6data.h"

Go to the source code of this file.

Functions

static void vp6_parse_coeff (vp56_context_t *s)
static void vp6_parse_coeff_huffman (vp56_context_t *s)
static int vp6_parse_header (vp56_context_t *s, const uint8_t *buf, int buf_size, int *golden_frame)
static void vp6_coeff_order_table_init (vp56_context_t *s)
static void vp6_default_models_init (vp56_context_t *s)
static void vp6_parse_vector_models (vp56_context_t *s)
static int vp6_huff_cmp (const void *va, const void *vb)
static void vp6_build_huff_tree (vp56_context_t *s, uint8_t coeff_model[], const uint8_t *map, unsigned size, VLC *vlc)
static void vp6_parse_coeff_models (vp56_context_t *s)
static void vp6_parse_vector_adjustment (vp56_context_t *s, vp56_mv_t *vect)
static unsigned vp6_get_nb_null (vp56_context_t *s)
 Read number of consecutive blocks with null DC or AC.
static int vp6_adjust (int v, int t)
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 (vp56_context_t *s, uint8_t *dst, uint8_t *src, int stride, int h_weight, int v_weight)
static void vp6_filter_diag4 (uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights)
static void vp6_filter (vp56_context_t *s, uint8_t *dst, uint8_t *src, int offset1, int offset2, int stride, vp56_mv_t mv, int mask, int select, int luma)
static int vp6_decode_init (AVCodecContext *avctx)

Variables

AVCodec vp6_decoder
AVCodec vp6f_decoder
AVCodec vp6a_decoder


Detailed Description

VP6 compatible video decoder.

Copyright (C) 2006 Aurelien Jacobs <aurel@gnuage.org>

The VP6F decoder accepts an optional 1 byte extradata. It is composed of:

This file is part of FFmpeg.

FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition in file vp6.c.


Function Documentation

static int vp6_adjust ( int  v,
int  t 
) [static]

Definition at line 477 of file vp6.c.

Referenced by vp6_decode_init().

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

Definition at line 490 of file vp6.c.

Referenced by vp6_filter().

static void vp6_build_huff_tree ( vp56_context_t s,
uint8_t  coeff_model[],
const uint8_t map,
unsigned  size,
VLC vlc 
) [static]

Definition at line 212 of file vp6.c.

Referenced by vp6_parse_coeff_models().

static void vp6_coeff_order_table_init ( vp56_context_t s  )  [static]

Definition at line 153 of file vp6.c.

Referenced by vp6_default_models_init(), and vp6_parse_coeff_models().

static int vp6_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 613 of file vp6.c.

static void vp6_default_models_init ( vp56_context_t s  )  [static]

Definition at line 164 of file vp6.c.

Referenced by vp6_decode_init().

static void vp6_filter ( vp56_context_t s,
uint8_t dst,
uint8_t src,
int  offset1,
int  offset2,
int  stride,
vp56_mv_t  mv,
int  mask,
int  select,
int  luma 
) [static]

Definition at line 563 of file vp6.c.

Referenced by vp6_decode_init().

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

Definition at line 522 of file vp6.c.

Referenced by vp6_filter().

static void vp6_filter_diag4 ( uint8_t dst,
uint8_t src,
int  stride,
const int16_t *  h_weights,
const int16_t *  v_weights 
) [static]

Definition at line 530 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 505 of file vp6.c.

Referenced by vp6_filter().

static unsigned vp6_get_nb_null ( vp56_context_t s  )  [static]

Read number of consecutive blocks with null DC or AC.

This value is < 74.

Definition at line 338 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 206 of file vp6.c.

Referenced by vp6_build_huff_tree().

static void vp6_parse_coeff ( vp56_context_t s  )  [static]

Definition at line 405 of file vp6.c.

Referenced by vp6_parse_header().

static void vp6_parse_coeff_huffman ( vp56_context_t s  )  [static]

Definition at line 350 of file vp6.c.

Referenced by vp6_parse_header().

static void vp6_parse_coeff_models ( vp56_context_t s  )  [static]

Definition at line 231 of file vp6.c.

Referenced by vp6_decode_init().

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

Definition at line 44 of file vp6.c.

Referenced by vp6_decode_init().

static void vp6_parse_vector_adjustment ( vp56_context_t s,
vp56_mv_t vect 
) [static]

Definition at line 296 of file vp6.c.

Referenced by vp6_decode_init().

static void vp6_parse_vector_models ( vp56_context_t s  )  [static]

Definition at line 182 of file vp6.c.

Referenced by vp6_decode_init().


Variable Documentation

Initial value:

Definition at line 631 of file vp6.c.

Initial value:

Definition at line 657 of file vp6.c.

Initial value:

Definition at line 644 of file vp6.c.


Generated on Thu Apr 2 07:16:13 2009 for ffmpeg by  doxygen 1.5.6