⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mjpegdec.h

📁 ffmpeg的完整源代码和作者自己写的文档。不但有在Linux的工程哦
💻 H
字号:
/* * MJPEG decoder * Copyright (c) 2000, 2001 Fabrice Bellard. * Copyright (c) 2003 Alex Beregszaszi * Copyright (c) 2003-2004 Michael Niedermayer * * 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 *//** * @file mjpegdec.h * MJPEG decoder. */#ifndef MJPEGDEC_H#define MJPEGDEC_H#include "avcodec.h"#include "bitstream.h"#include "dsputil.h"#include "mpegvideo.h"#define MAX_COMPONENTS 4typedef 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);int ff_mjpeg_decode_frame(AVCodecContext *avctx,                          void *data, int *data_size,                          uint8_t *buf, int buf_size);int ff_mjpeg_decode_dqt(MJpegDecodeContext *s);int ff_mjpeg_decode_dht(MJpegDecodeContext *s);int ff_mjpeg_decode_sof(MJpegDecodeContext *s);int ff_mjpeg_decode_sos(MJpegDecodeContext *s);#endif /* MJPEGDEC_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -