]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/hqx.h
dv: Mark internal frame reference as const
[ffmpeg] / libavcodec / hqx.h
index e72191fd90b0ccb8c2297025ce8c0b5216322fe0..7f329712fde01fbabd6cf08db7778665b99a2652 100644 (file)
 #define AVCODEC_HQX_H
 
 #include <stdint.h>
+
+#include "libavutil/frame.h"
 #include "libavutil/mem.h"
 #include "get_bits.h"
+#include "hqxdsp.h"
 
 enum HQXACMode {
     HQX_AC_Q0 = 0,
@@ -46,11 +49,29 @@ typedef struct HQXAC {
     const HQXLUT *lut;
 } HQXAC;
 
+struct HQXContext;
+
+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;
+
     int format, dcb, width, height;
     int interlaced;
 
-    DECLARE_ALIGNED(16, int16_t, block)[16][64];
+    uint8_t *src;
+    unsigned int data_size;
+    uint32_t slice_off[17];
 
     VLC cbp_vlc;
     VLC dc_vlc[3];