Fix wmv1 encoding if all other msmpeg4-related encoders were disabled.
[ffmpeg.git] / libavcodec / ffv1.h
index e0e33f8..5081397 100644 (file)
 #include "libavutil/pixdesc.h"
 #include "libavutil/timer.h"
 #include "avcodec.h"
+#include "get_bits.h"
 #include "internal.h"
-#include "dsputil.h"
-#include "rangecoder.h"
-#include "golomb.h"
 #include "mathops.h"
+#include "put_bits.h"
+#include "rangecoder.h"
+#include "thread.h"
 
 #ifdef __INTEL_COMPILER
 #undef av_flatten
@@ -52,8 +53,6 @@
 #define MAX_QUANT_TABLES 8
 #define MAX_CONTEXT_INPUTS 5
 
-extern const uint8_t ff_log2_run[41];
-
 typedef struct VlcState {
     int16_t drift;
     uint16_t error_sum;
@@ -81,15 +80,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 micro_version;
     int width, height;
     int chroma_planes;
     int chroma_h_shift, chroma_v_shift;
     int transparency;
     int flags;
     int picture_number;
-    AVFrame picture;
-    AVFrame last_picture;
+    ThreadFrame picture, last_picture;
+    struct FFV1Context *fsrc;
+
+    AVFrame *cur;
     int plane_count;
     int ac;                              ///< 1=range coder <-> 0=golomb rice
     int ac_byte_count;                   ///< number of bytes used for AC coding
@@ -104,6 +105,7 @@ typedef struct FFV1Context {
     int16_t *sample_buffer;
 
     int ec;
+    int intra;
     int slice_damaged;
     int key_frame_ok;
 
@@ -113,8 +115,6 @@ typedef struct FFV1Context {
     int gob_count;
     int quant_table_count;
 
-    DSPContext dsp;
-
     struct FFV1Context *slice_context[MAX_SLICES];
     int slice_count;
     int num_v_slices;
@@ -123,6 +123,10 @@ typedef struct FFV1Context {
     int slice_height;
     int slice_x;
     int slice_y;
+    int slice_reset_contexts;
+    int slice_coding_mode;
+    int slice_rct_by_coef;
+    int slice_rct_ry_coef;
 } FFV1Context;
 
 int ffv1_common_init(AVCodecContext *avctx);