diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2012-10-19 12:14:22 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2012-10-20 18:14:52 +0200 |
commit | 0f13cd3187192ba0cc2b043430de6e279e7b97c3 (patch) | |
tree | 604398111a32e7515ffac7284dde79ae2b50b2ed /libavcodec/ffv1.h | |
parent | 4a2a4524a3f50ed302820ba971ddd48e78c7436f (diff) | |
download | ffmpeg-0f13cd3187192ba0cc2b043430de6e279e7b97c3.tar.gz |
ffv1: update to ffv1 version 3
Based on code from Carl Eugen Hoyos, Michael Niedermayer and Paul B Mahol.
Diffstat (limited to 'libavcodec/ffv1.h')
-rw-r--r-- | libavcodec/ffv1.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/libavcodec/ffv1.h b/libavcodec/ffv1.h index 7676c61be3..74f1159537 100644 --- a/libavcodec/ffv1.h +++ b/libavcodec/ffv1.h @@ -1,7 +1,7 @@ /* * FFV1 codec for libavcodec * - * Copyright (c) 2012 Michael Niedermayer <michaelni@gmx.at> + * Copyright (c) 2003-2012 Michael Niedermayer <michaelni@gmx.at> * * This file is part of Libav. * @@ -57,6 +57,7 @@ typedef struct PlaneContext { #define MAX_SLICES 256 typedef struct FFV1Context { + AVClass *class; AVCodecContext *avctx; RangeCoder c; GetBitContext gb; @@ -64,13 +65,17 @@ typedef struct FFV1Context { uint64_t rc_stat[256][2]; uint64_t (*rc_stat2[MAX_QUANT_TABLES])[32][2]; int version; + int minor_version; int width, height; + int chroma_planes; int chroma_h_shift, chroma_v_shift; + int transparency; int flags; int picture_number; - AVFrame picture; + AVFrame picture, last_picture; int plane_count; int ac; // 1 = range coder <-> 0 = golomb rice + int ac_byte_count; // number of bytes used for AC coding PlaneContext plane[MAX_PLANES]; int16_t quant_table[MAX_CONTEXT_INPUTS][256]; int16_t quant_tables[MAX_QUANT_TABLES][MAX_CONTEXT_INPUTS][256]; @@ -80,8 +85,15 @@ typedef struct FFV1Context { int run_index; int colorspace; int16_t *sample_buffer; - int gob_count; + int ec; + int slice_damaged; + int key_frame_ok; + + int bits_per_raw_sample; + int packed_at_lsb; + + int gob_count; int quant_table_count; DSPContext dsp; @@ -175,10 +187,10 @@ static inline void update_vlc_state(VlcState *const state, const int v) } int ffv1_common_init(AVCodecContext *avctx); -int ffv1_init_slice_state(FFV1Context *f); +int ffv1_init_slice_state(FFV1Context *f, FFV1Context *fs); int ffv1_init_slice_contexts(FFV1Context *f); int ffv1_allocate_initial_states(FFV1Context *f); -void ffv1_clear_state(FFV1Context *f); +void ffv1_clear_slice_state(FFV1Context *f, FFV1Context *fs); int ffv1_close(AVCodecContext *avctx); #endif /* AVCODEC_FFV1_H */ |