summaryrefslogtreecommitdiff
path: root/libavcodec/hqx.h
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2015-04-09 19:10:45 +0200
committerVittorio Giovara <vittorio.giovara@gmail.com>2015-04-19 22:36:48 +0100
commit5b5338f6d1272526d2634501555cbaff4cdfb87b (patch)
tree4df427fe492eb77d7fc849f2113f1e38d6a5f5ba /libavcodec/hqx.h
parent453642f8afe9f979fcc813a246b1ec656ec36a93 (diff)
hqx: Implement slice-threaded decoding
Inspired by a patch from Ferdinand Oeinck <ferdo@demon.nl>. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Diffstat (limited to 'libavcodec/hqx.h')
-rw-r--r--libavcodec/hqx.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/libavcodec/hqx.h b/libavcodec/hqx.h
index 7e3fd6a3be..7f329712fd 100644
--- a/libavcodec/hqx.h
+++ b/libavcodec/hqx.h
@@ -51,10 +51,17 @@ typedef struct HQXAC {
struct HQXContext;
-typedef int (*mb_decode_func)(struct HQXContext *ctx, GetBitContext *gb, int x, int y);
+typedef int (*mb_decode_func)(struct HQXContext *ctx,
+ int slice_no, int x, int y);
+
+typedef struct HQXSlice {
+ GetBitContext gb;
+ DECLARE_ALIGNED(16, int16_t, block)[16][64];
+} HQXSlice;
typedef struct HQXContext {
HQXDSPContext hqxdsp;
+ HQXSlice slice[16];
AVFrame *pic;
mb_decode_func decode_func;
@@ -66,8 +73,6 @@ typedef struct HQXContext {
unsigned int data_size;
uint32_t slice_off[17];
- DECLARE_ALIGNED(16, int16_t, block)[16][64];
-
VLC cbp_vlc;
VLC dc_vlc[3];
} HQXContext;