FFmpeg
Macros | Functions
mjpegdec.c File Reference

MJPEG decoder. More...

#include "libavutil/imgutils.h"
#include "libavutil/avassert.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "blockdsp.h"
#include "copy_block.h"
#include "hwaccel.h"
#include "idctdsp.h"
#include "internal.h"
#include "jpegtables.h"
#include "mjpeg.h"
#include "mjpegdec.h"
#include "jpeglsdec.h"
#include "put_bits.h"
#include "tiff.h"
#include "exif.h"
#include "bytestream.h"

Macros

#define REFINE_BIT(j)
 
#define ZERO_RUN
 
#define copy_data_segment(skip)
 

Functions

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)
 
int ff_mjpeg_decode_sos (MJpegDecodeContext *s, const uint8_t *mb_bitmask, int mb_bitmask_size, const AVFrame *reference)
 
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 *got_frame, AVPacket *avpkt)
 
av_cold int ff_mjpeg_decode_end (AVCodecContext *avctx)
 

Detailed Description

MJPEG decoder.

Macro Definition Documentation

§ copy_data_segment

#define copy_data_segment (   skip)
Value:
do { \
ptrdiff_t length = (ptr - src) - (skip); \
if (length > 0) { \
memcpy(dst, src, length); \
dst += length; \
src = ptr; \
} \
} while (0)

§ REFINE_BIT

#define REFINE_BIT (   j)
Value:
{ \
UPDATE_CACHE(re, &s->gb); \
sign = block[j] >> 15; \
block[j] += SHOW_UBITS(re, &s->gb, 1) * \
((quant_matrix[i] ^ sign) - sign) << Al; \
LAST_SKIP_BITS(re, &s->gb, 1); \
}

§ ZERO_RUN

#define ZERO_RUN
Value:
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; \
}
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:176