diff --git a/libavcodec/jpeglsenc.c b/libavcodec/jpeglsenc.c index d8e8bda763203742168286fa60c6ea00efddba11..501e2f9e5034f598c1b676c2e3a490bc3db95a6e 100644 --- a/libavcodec/jpeglsenc.c +++ b/libavcodec/jpeglsenc.c @@ -28,6 +28,7 @@ #include "avcodec.h" #include "bitstream.h" #include "golomb.h" +#include "dsputil.h" #include "mjpeg.h" #include "jpegls.h" diff --git a/libavcodec/mjpeg.h b/libavcodec/mjpeg.h index 4009b4a02a88a76ec0a94f00a0ee4944af6dd497..ec14dd459826a73ae56eb85bde9d48629e258a37 100644 --- a/libavcodec/mjpeg.h +++ b/libavcodec/mjpeg.h @@ -35,8 +35,6 @@ #include "avcodec.h" #include "bitstream.h" -#include "dsputil.h" -#include "mpegvideo.h" /* JPEG marker codes */ @@ -127,71 +125,6 @@ static inline void put_marker(PutBitContext *p, int code) put_bits(p, 8, code); } -#define MAX_COMPONENTS 4 - -typedef struct MJpegDecodeContext { - AVCodecContext *avctx; - GetBitContext gb; - - int start_code; /* current start code */ - int buffer_size; - uint8_t *buffer; - - int16_t quant_matrixes[4][64]; - VLC vlcs[2][4]; - int qscale[4]; ///< quantizer scale calculated from quant_matrixes - - int org_height; /* size given at codec init */ - int first_picture; /* true if decoding first picture */ - int interlaced; /* true if interlaced */ - int bottom_field; /* true if bottom field */ - int lossless; - int ls; - int progressive; - int rgb; - int rct; /* standard rct */ - int pegasus_rct; /* pegasus reversible colorspace transform */ - int bits; /* bits per component */ - - int maxval; - int near; ///< near lossless bound (si 0 for lossless) - int t1,t2,t3; - int reset; ///< context halfing intervall ?rename - - int width, height; - int mb_width, mb_height; - int nb_components; - int component_id[MAX_COMPONENTS]; - int h_count[MAX_COMPONENTS]; /* horizontal and vertical count for each component */ - int v_count[MAX_COMPONENTS]; - int comp_index[MAX_COMPONENTS]; - int dc_index[MAX_COMPONENTS]; - int ac_index[MAX_COMPONENTS]; - int nb_blocks[MAX_COMPONENTS]; - int h_scount[MAX_COMPONENTS]; - int v_scount[MAX_COMPONENTS]; - int h_max, v_max; /* maximum h and v counts */ - int quant_index[4]; /* quant table index for each component */ - int last_dc[MAX_COMPONENTS]; /* last DEQUANTIZED dc (XXX: am I right to do that ?) */ - AVFrame picture; /* picture structure */ - int linesize[MAX_COMPONENTS]; ///< linesize << interlaced - int8_t *qscale_table; - DECLARE_ALIGNED_8(DCTELEM, block[64]); - ScanTable scantable; - DSPContext dsp; - - int restart_interval; - int restart_count; - - int buggy_avid; - int cs_itu601; - int interlace_polarity; - - int mjpb_skiptosod; - - int cur_scan; /* current scan, used by JPEG-LS */ -} MJpegDecodeContext; - #define PREDICT(ret, topleft, top, left, predictor)\ switch(predictor){\ case 1: ret= left; break;\ diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h index baa7583587a4a8bca93331d8b03a6e29704acb6c..178d2cb2980846d1d53d19b772651e845d70fc30 100644 --- a/libavcodec/mjpegdec.h +++ b/libavcodec/mjpegdec.h @@ -30,6 +30,74 @@ #define MJPEGDEC_H #include "avcodec.h" +#include "bitstream.h" +#include "dsputil.h" +#include "mpegvideo.h" + +#define MAX_COMPONENTS 4 + +typedef struct MJpegDecodeContext { + AVCodecContext *avctx; + GetBitContext gb; + + int start_code; /* current start code */ + int buffer_size; + uint8_t *buffer; + + int16_t quant_matrixes[4][64]; + VLC vlcs[2][4]; + int qscale[4]; ///< quantizer scale calculated from quant_matrixes + + int org_height; /* size given at codec init */ + int first_picture; /* true if decoding first picture */ + int interlaced; /* true if interlaced */ + int bottom_field; /* true if bottom field */ + int lossless; + int ls; + int progressive; + int rgb; + int rct; /* standard rct */ + int pegasus_rct; /* pegasus reversible colorspace transform */ + int bits; /* bits per component */ + + int maxval; + int near; ///< near lossless bound (si 0 for lossless) + int t1,t2,t3; + int reset; ///< context halfing intervall ?rename + + int width, height; + int mb_width, mb_height; + int nb_components; + int component_id[MAX_COMPONENTS]; + int h_count[MAX_COMPONENTS]; /* horizontal and vertical count for each component */ + int v_count[MAX_COMPONENTS]; + int comp_index[MAX_COMPONENTS]; + int dc_index[MAX_COMPONENTS]; + int ac_index[MAX_COMPONENTS]; + int nb_blocks[MAX_COMPONENTS]; + int h_scount[MAX_COMPONENTS]; + int v_scount[MAX_COMPONENTS]; + int h_max, v_max; /* maximum h and v counts */ + int quant_index[4]; /* quant table index for each component */ + int last_dc[MAX_COMPONENTS]; /* last DEQUANTIZED dc (XXX: am I right to do that ?) */ + AVFrame picture; /* picture structure */ + int linesize[MAX_COMPONENTS]; ///< linesize << interlaced + int8_t *qscale_table; + DECLARE_ALIGNED_8(DCTELEM, block[64]); + ScanTable scantable; + DSPContext dsp; + + int restart_interval; + int restart_count; + + int buggy_avid; + int cs_itu601; + int interlace_polarity; + + int mjpb_skiptosod; + + int cur_scan; /* current scan, used by JPEG-LS */ +} MJpegDecodeContext; int ff_mjpeg_decode_init(AVCodecContext *avctx); int ff_mjpeg_decode_end(AVCodecContext *avctx);