|
Libav 0.7.1
|
MJPEG decoder. More...
#include <assert.h>#include "libavutil/imgutils.h"#include "avcodec.h"#include "dsputil.h"#include "mjpeg.h"#include "mjpegdec.h"#include "jpeglsdec.h"Go to the source code of this file.
Defines | |
| #define | REFINE_BIT(j) |
| #define | ZERO_RUN |
Functions | |
| static int | build_vlc (VLC *vlc, const uint8_t *bits_table, const uint8_t *val_table, int nb_codes, int use_static, int is_ac) |
| static void | build_basic_mjpeg_vlc (MJpegDecodeContext *s) |
| av_cold int | ff_mjpeg_decode_init (AVCodecContext *avctx) |
| int | ff_mjpeg_decode_dqt (MJpegDecodeContext *s) |
| int | ff_mjpeg_decode_dht (MJpegDecodeContext *s) |
| int | ff_mjpeg_decode_sof (MJpegDecodeContext *s) |
| static int | mjpeg_decode_dc (MJpegDecodeContext *s, int dc_index) |
| static int | decode_block (MJpegDecodeContext *s, DCTELEM *block, int component, int dc_index, int ac_index, int16_t *quant_matrix) |
| static int | decode_dc_progressive (MJpegDecodeContext *s, DCTELEM *block, int component, int dc_index, int16_t *quant_matrix, int Al) |
| static int | decode_block_progressive (MJpegDecodeContext *s, DCTELEM *block, uint8_t *last_nnz, int ac_index, int16_t *quant_matrix, int ss, int se, int Al, int *EOBRUN) |
| static int | decode_block_refinement (MJpegDecodeContext *s, DCTELEM *block, uint8_t *last_nnz, int ac_index, int16_t *quant_matrix, int ss, int se, int Al, int *EOBRUN) |
| static int | ljpeg_decode_rgb_scan (MJpegDecodeContext *s, int predictor, int point_transform) |
| static int | ljpeg_decode_yuv_scan (MJpegDecodeContext *s, int predictor, int point_transform) |
| static av_always_inline void | mjpeg_copy_block (uint8_t *dst, const uint8_t *src, int linesize, int lowres) |
| static int | mjpeg_decode_scan (MJpegDecodeContext *s, int nb_components, int Ah, int Al, const uint8_t *mb_bitmask, const AVFrame *reference) |
| static int | mjpeg_decode_scan_progressive_ac (MJpegDecodeContext *s, int ss, int se, int Ah, int Al, const uint8_t *mb_bitmask, const AVFrame *reference) |
| int | ff_mjpeg_decode_sos (MJpegDecodeContext *s, const uint8_t *mb_bitmask, const AVFrame *reference) |
| static int | mjpeg_decode_dri (MJpegDecodeContext *s) |
| static int | mjpeg_decode_app (MJpegDecodeContext *s) |
| static int | mjpeg_decode_com (MJpegDecodeContext *s) |
| static int | find_marker (const uint8_t **pbuf_ptr, const uint8_t *buf_end) |
| int | ff_mjpeg_find_marker (MJpegDecodeContext *s, const uint8_t **buf_ptr, const uint8_t *buf_end, const uint8_t **unescaped_buf_ptr, int *unescaped_buf_size) |
| int | ff_mjpeg_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt) |
| av_cold int | ff_mjpeg_decode_end (AVCodecContext *avctx) |
Variables | |
| AVCodec | ff_mjpeg_decoder |
| AVCodec | ff_thp_decoder |
MJPEG decoder.
Definition in file mjpegdec.c.
| #define REFINE_BIT | ( | j | ) |
{\
UPDATE_CACHE(re, &s->gb);\
sign = block[j]>>15;\
block[j] += SHOW_UBITS(re, &s->gb, 1) * ((quant_matrix[j]^sign)-sign) << Al;\
LAST_SKIP_BITS(re, &s->gb, 1);\
}
Definition at line 536 of file mjpegdec.c.
Referenced by decode_block_refinement().
| #define ZERO_RUN |
for(;;i++) {\ if(i > last) {\ i += run;\ if(i > se) {\ av_log(s->avctx, AV_LOG_ERROR, "error count: %d\n", i);\ return -1;\ }\ break;\ }\ j = s->scantable.permutated[i];\ if(block[j])\ REFINE_BIT(j)\ else if(run-- == 0)\ break;\ }
Definition at line 543 of file mjpegdec.c.
Referenced by decode_block_refinement().
| static void build_basic_mjpeg_vlc | ( | MJpegDecodeContext * | s | ) | [static] |
Definition at line 65 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_init().
| static int build_vlc | ( | VLC * | vlc, |
| const uint8_t * | bits_table, | ||
| const uint8_t * | val_table, | ||
| int | nb_codes, | ||
| int | use_static, | ||
| int | is_ac | ||
| ) | [static] |
Definition at line 44 of file mjpegdec.c.
Referenced by build_basic_mjpeg_vlc(), and ff_mjpeg_decode_dht().
| static int decode_block | ( | MJpegDecodeContext * | s, |
| DCTELEM * | block, | ||
| int | component, | ||
| int | dc_index, | ||
| int | ac_index, | ||
| int16_t * | quant_matrix | ||
| ) | [static] |
Definition at line 405 of file mjpegdec.c.
Referenced by mjpeg_decode_scan().
| static int decode_block_progressive | ( | MJpegDecodeContext * | s, |
| DCTELEM * | block, | ||
| uint8_t * | last_nnz, | ||
| int | ac_index, | ||
| int16_t * | quant_matrix, | ||
| int | ss, | ||
| int | se, | ||
| int | Al, | ||
| int * | EOBRUN | ||
| ) | [static] |
Definition at line 470 of file mjpegdec.c.
Referenced by mjpeg_decode_scan_progressive_ac().
| static int decode_block_refinement | ( | MJpegDecodeContext * | s, |
| DCTELEM * | block, | ||
| uint8_t * | last_nnz, | ||
| int | ac_index, | ||
| int16_t * | quant_matrix, | ||
| int | ss, | ||
| int | se, | ||
| int | Al, | ||
| int * | EOBRUN | ||
| ) | [static] |
Definition at line 561 of file mjpegdec.c.
Referenced by mjpeg_decode_scan_progressive_ac().
| static int decode_dc_progressive | ( | MJpegDecodeContext * | s, |
| DCTELEM * | block, | ||
| int | component, | ||
| int | dc_index, | ||
| int16_t * | quant_matrix, | ||
| int | Al | ||
| ) | [static] |
Definition at line 453 of file mjpegdec.c.
Referenced by mjpeg_decode_scan().
| int ff_mjpeg_decode_dht | ( | MJpegDecodeContext * | s | ) |
Definition at line 158 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame(), ff_mjpeg_decode_init(), mjpegb_decode_frame(), and mxpeg_decode_frame().
| int ff_mjpeg_decode_dqt | ( | MJpegDecodeContext * | s | ) |
Definition at line 123 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame(), mjpegb_decode_frame(), and mxpeg_decode_frame().
| av_cold int ff_mjpeg_decode_end | ( | AVCodecContext * | avctx | ) |
Definition at line 1600 of file mjpegdec.c.
Referenced by mxpeg_decode_end().
| int ff_mjpeg_decode_frame | ( | AVCodecContext * | avctx, |
| void * | data, | ||
| int * | data_size, | ||
| AVPacket * | avpkt | ||
| ) |
Definition at line 1423 of file mjpegdec.c.
Referenced by sp5x_decode_frame().
| av_cold int ff_mjpeg_decode_init | ( | AVCodecContext * | avctx | ) |
Definition at line 80 of file mjpegdec.c.
Referenced by mxpeg_decode_init().
| int ff_mjpeg_decode_sof | ( | MJpegDecodeContext * | s | ) |
Definition at line 211 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame(), mjpegb_decode_frame(), and mxpeg_decode_frame().
| int ff_mjpeg_decode_sos | ( | MJpegDecodeContext * | s, |
| const uint8_t * | mb_bitmask, | ||
| const AVFrame * | reference | ||
| ) |
Definition at line 959 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame(), mjpegb_decode_frame(), and mxpeg_decode_frame().
| int ff_mjpeg_find_marker | ( | MJpegDecodeContext * | s, |
| const uint8_t ** | buf_ptr, | ||
| const uint8_t * | buf_end, | ||
| const uint8_t ** | unescaped_buf_ptr, | ||
| int * | unescaped_buf_size | ||
| ) |
Definition at line 1328 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame(), and mxpeg_decode_frame().
| static int find_marker | ( | const uint8_t ** | pbuf_ptr, |
| const uint8_t * | buf_end | ||
| ) | [static] |
Definition at line 1300 of file mjpegdec.c.
Referenced by ff_mjpeg_find_marker().
| static int ljpeg_decode_rgb_scan | ( | MJpegDecodeContext * | s, |
| int | predictor, | ||
| int | point_transform | ||
| ) | [static] |
Definition at line 625 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_sos().
| static int ljpeg_decode_yuv_scan | ( | MJpegDecodeContext * | s, |
| int | predictor, | ||
| int | point_transform | ||
| ) | [static] |
Definition at line 693 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_sos().
| static av_always_inline void mjpeg_copy_block | ( | uint8_t * | dst, |
| const uint8_t * | src, | ||
| int | linesize, | ||
| int | lowres | ||
| ) | [static] |
Definition at line 776 of file mjpegdec.c.
Referenced by mjpeg_decode_scan(), and mjpeg_decode_scan_progressive_ac().
| static int mjpeg_decode_app | ( | MJpegDecodeContext * | s | ) | [static] |
Definition at line 1089 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame().
| static int mjpeg_decode_com | ( | MJpegDecodeContext * | s | ) | [static] |
Definition at line 1236 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame().
| static int mjpeg_decode_dc | ( | MJpegDecodeContext * | s, |
| int | dc_index | ||
| ) | [inline, static] |
Definition at line 387 of file mjpegdec.c.
Referenced by decode_block(), decode_dc_progressive(), ljpeg_decode_rgb_scan(), and ljpeg_decode_yuv_scan().
| static int mjpeg_decode_dri | ( | MJpegDecodeContext * | s | ) | [static] |
Definition at line 1078 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_frame().
| static int mjpeg_decode_scan | ( | MJpegDecodeContext * | s, |
| int | nb_components, | ||
| int | Ah, | ||
| int | Al, | ||
| const uint8_t * | mb_bitmask, | ||
| const AVFrame * | reference | ||
| ) | [static] |
Definition at line 791 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_sos().
| static int mjpeg_decode_scan_progressive_ac | ( | MJpegDecodeContext * | s, |
| int | ss, | ||
| int | se, | ||
| int | Ah, | ||
| int | Al, | ||
| const uint8_t * | mb_bitmask, | ||
| const AVFrame * | reference | ||
| ) | [static] |
Definition at line 896 of file mjpegdec.c.
Referenced by ff_mjpeg_decode_sos().
{
"mjpeg",
AVMEDIA_TYPE_VIDEO,
CODEC_ID_MJPEG,
sizeof(MJpegDecodeContext),
ff_mjpeg_decode_init,
NULL,
ff_mjpeg_decode_end,
ff_mjpeg_decode_frame,
CODEC_CAP_DR1,
NULL,
.max_lowres = 3,
.long_name = NULL_IF_CONFIG_SMALL("MJPEG (Motion JPEG)"),
}
Definition at line 1624 of file mjpegdec.c.
{
"thp",
AVMEDIA_TYPE_VIDEO,
CODEC_ID_THP,
sizeof(MJpegDecodeContext),
ff_mjpeg_decode_init,
NULL,
ff_mjpeg_decode_end,
ff_mjpeg_decode_frame,
CODEC_CAP_DR1,
NULL,
.max_lowres = 3,
.long_name = NULL_IF_CONFIG_SMALL("Nintendo Gamecube THP video"),
}
Definition at line 1639 of file mjpegdec.c.
1.7.4