diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-04-20 05:28:13 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-04-20 05:28:13 +0200 |
commit | 5a284d076ffdca705204e3e4100917cd4dbda14c (patch) | |
tree | 409db710f32304c4192b2cebf4446bb0242b8189 /libavcodec/hq_hqa.h | |
parent | fcca7671e29b67812d29af710ff90486944ee428 (diff) | |
parent | 22526c1f557a72b3285d295bd8b30c40eb65d437 (diff) | |
download | ffmpeg-5a284d076ffdca705204e3e4100917cd4dbda14c.tar.gz |
Merge commit '22526c1f557a72b3285d295bd8b30c40eb65d437'
* commit '22526c1f557a72b3285d295bd8b30c40eb65d437':
Canopus HQ/HQA decoder
Conflicts:
Changelog
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/hq_hqa.h')
-rw-r--r-- | libavcodec/hq_hqa.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/libavcodec/hq_hqa.h b/libavcodec/hq_hqa.h new file mode 100644 index 0000000000..4286dd0752 --- /dev/null +++ b/libavcodec/hq_hqa.h @@ -0,0 +1,60 @@ +/* + * Canopus HQ/HQA decoder + * + * 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 + */ + +#ifndef AVCODEC_HQ_HQA_H +#define AVCODEC_HQ_HQA_H + +#include <stdint.h> + +#include "avcodec.h" +#include "get_bits.h" +#include "bytestream.h" +#include "hq_hqadsp.h" + +#define NUM_HQ_AC_ENTRIES 746 +#define NUM_HQ_PROFILES 22 +#define NUM_HQ_QUANTS 16 + +typedef struct HQContext { + AVCodecContext *avctx; + HQDSPContext hqhqadsp; + GetByteContext gbc; + + VLC hq_ac_vlc; + VLC hqa_cbp_vlc; + DECLARE_ALIGNED(16, int16_t, block)[12][64]; +} HQContext; + +typedef struct HQProfile { + const uint8_t *perm_tab; + int width, height; + int num_slices; + int tab_w, tab_h; +} HQProfile; + +extern const int32_t * const ff_hq_quants[16][2][4]; +extern const HQProfile ff_hq_profile[NUM_HQ_PROFILES]; + +extern const uint8_t ff_hq_ac_skips[NUM_HQ_AC_ENTRIES]; +extern const int16_t ff_hq_ac_syms [NUM_HQ_AC_ENTRIES]; + +int ff_hq_init_vlcs(HQContext *c); + +#endif /* AVCODEC_HQ_HQA_H */ |