#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 |
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.
#define VP6_MAX_HUFF_SIZE 12 |
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] |
Definition at line 163 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] |
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] |
Read number of consecutive blocks with null DC or AC.
This value is < 74.
Definition at line 355 of file vp6.c.
Referenced by vp6_parse_coeff_huffman().
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_adjustment | ( | VP56Context * | s, | |
VP56mv * | vect | |||
) | [static] |
static void vp6_parse_vector_models | ( | VP56Context * | s | ) | [static] |
Initial value:
{ "vp6", AVMEDIA_TYPE_VIDEO, CODEC_ID_VP6, sizeof(VP56Context), vp6_decode_init, NULL, vp6_decode_free, ff_vp56_decode_frame, CODEC_CAP_DR1, .long_name = NULL_IF_CONFIG_SMALL("On2 VP6"), }
Initial value:
{ "vp6a", AVMEDIA_TYPE_VIDEO, CODEC_ID_VP6A, sizeof(VP56Context), vp6_decode_init, NULL, vp6_decode_free, ff_vp56_decode_frame, CODEC_CAP_DR1, .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version, with alpha channel)"), }
Initial value:
{ "vp6f", AVMEDIA_TYPE_VIDEO, CODEC_ID_VP6F, sizeof(VP56Context), vp6_decode_init, NULL, vp6_decode_free, ff_vp56_decode_frame, CODEC_CAP_DR1, .long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version)"), }