FFmpeg
4.0
|
IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN bitmap decoder. More...
#include <stdint.h>
#include "libavutil/imgutils.h"
#include "bytestream.h"
#include "avcodec.h"
#include "internal.h"
#include "mathops.h"
Go to the source code of this file.
Data Structures | |
struct | IffContext |
Macros | |
#define | LUT8_PART(plane, v) |
#define | LUT8(plane) |
#define | LUT32(plane) |
#define | DECODE_HAM_PLANE32(x) |
#define | DECODE_RGBX_COMMON(type) |
#define | GETNIBBLE ((i & 1) ? (src[i>>1] & 0xF) : (src[i>>1] >> 4)) |
Enumerations | |
enum | mask_type { MASK_NONE, MASK_HAS_MASK, MASK_HAS_TRANSPARENT_COLOR, MASK_LASSO } |
Functions | |
static av_always_inline uint32_t | gray2rgb (const uint32_t x) |
static int | cmap_read_palette (AVCodecContext *avctx, uint32_t *pal) |
Convert CMAP buffer (stored in extradata) to lavc palette format. More... | |
static int | extract_header (AVCodecContext *const avctx, const AVPacket *const avpkt) |
Extracts the IFF extra context and updates internal decoder structures. More... | |
static av_cold int | decode_end (AVCodecContext *avctx) |
static av_cold int | decode_init (AVCodecContext *avctx) |
static void | decodeplane8 (uint8_t *dst, const uint8_t *buf, int buf_size, int plane) |
Decode interleaved plane buffer up to 8bpp. More... | |
static void | decodeplane32 (uint32_t *dst, const uint8_t *buf, int buf_size, int plane) |
Decode interleaved plane buffer up to 24bpp. More... | |
static void | decode_ham_plane32 (uint32_t *dst, const uint8_t *buf, const uint32_t *const pal, unsigned buf_size) |
Converts one line of HAM6/8-encoded chunky buffer to 24bpp. More... | |
static void | lookup_pal_indicies (uint32_t *dst, const uint32_t *buf, const uint32_t *const pal, unsigned width) |
static int | decode_byterun (uint8_t *dst, int dst_size, GetByteContext *gb) |
Decode one complete byterun1 encoded line. More... | |
static int | decode_byterun2 (uint8_t *dst, int height, int line_size, GetByteContext *gb) |
static void | decode_rgb8 (GetByteContext *gb, uint8_t *dst, int width, int height, int linesize) |
Decode RGB8 buffer. More... | |
static void | decode_rgbn (GetByteContext *gb, uint8_t *dst, int width, int height, int linesize) |
Decode RGBN buffer. More... | |
static void | decode_deep_rle32 (uint8_t *dst, const uint8_t *src, int src_size, int width, int height, int linesize) |
Decode DEEP RLE 32-bit buffer. More... | |
static void | decode_deep_tvdc32 (uint8_t *dst, const uint8_t *src, int src_size, int width, int height, int linesize, const int16_t *tvdc) |
Decode DEEP TVDC 32-bit buffer. More... | |
static void | decode_short_horizontal_delta (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int bpp, int dst_size) |
static void | decode_byte_vertical_delta (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int xor, int bpp, int dst_size) |
static void | decode_delta_j (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int h, int bpp, int dst_size) |
static void | decode_short_vertical_delta (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int bpp, int dst_size) |
static void | decode_long_vertical_delta (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int bpp, int dst_size) |
static void | decode_short_vertical_delta2 (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int bpp, int dst_size) |
static void | decode_long_vertical_delta2 (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int bpp, int dst_size) |
static void | decode_delta_d (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int flag, int bpp, int dst_size) |
static void | decode_delta_e (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int flag, int bpp, int dst_size) |
static void | decode_delta_l (uint8_t *dst, const uint8_t *buf, const uint8_t *buf_end, int w, int flag, int bpp, int dst_size) |
static int | unsupported (AVCodecContext *avctx) |
static int | decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) |
Variables | |
static const uint64_t | plane8_lut [8][256] |
static const uint32_t | plane32_lut [32][16 *4] |
IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN bitmap decoder.
Definition in file iff.c.
#define LUT8_PART | ( | plane, | |
v | |||
) |
#define LUT8 | ( | plane | ) |
#define LUT32 | ( | plane | ) |
#define DECODE_HAM_PLANE32 | ( | x | ) |
#define DECODE_RGBX_COMMON | ( | type | ) |
Definition at line 630 of file iff.c.
Referenced by decode_rgb8(), and decode_rgbn().
#define GETNIBBLE ((i & 1) ? (src[i>>1] & 0xF) : (src[i>>1] >> 4)) |
Referenced by decode_deep_tvdc32().
enum mask_type |
|
static |
Definition at line 146 of file iff.c.
Referenced by cmap_read_palette(), and extract_header().
|
static |
Convert CMAP buffer (stored in extradata) to lavc palette format.
Definition at line 153 of file iff.c.
Referenced by decode_frame().
|
static |
Extracts the IFF extra context and updates internal decoder structures.
avctx | the AVCodecContext where to extract extra context to |
avpkt | the AVPacket to extract extra context from or NULL to use avctx |
Definition at line 200 of file iff.c.
Referenced by decode_frame(), and decode_init().
|
static |
Definition at line 368 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 380 of file iff.c.
Referenced by decode_frame().
Decode interleaved plane buffer up to 8bpp.
dst | Destination buffer |
buf | Source buffer |
buf_size | |
plane | plane number to decode as |
Definition at line 444 of file iff.c.
Referenced by decode_frame().
Decode interleaved plane buffer up to 24bpp.
dst | Destination buffer |
buf | Source buffer |
buf_size | |
plane | plane number to decode as |
Definition at line 465 of file iff.c.
Referenced by decode_frame().
|
static |
Converts one line of HAM6/8-encoded chunky buffer to 24bpp.
dst | the destination 24bpp buffer |
buf | the source 8bpp chunky buffer |
pal | the HAM decode table |
buf_size | the plane size in bytes |
Definition at line 501 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 516 of file iff.c.
Referenced by decode_frame().
|
static |
Decode one complete byterun1 encoded line.
dst | the destination buffer where to store decompressed bitstream |
dst_size | the destination plane size in bytes |
buf | the source byterun1 compressed bitstream |
buf_end | the EOF of source byterun1 compressed bitstream |
Definition at line 533 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 560 of file iff.c.
Referenced by decode_frame().
|
static |
Decode RGB8 buffer.
[out] | dst | Destination buffer |
width | Width of destination buffer (pixels) | |
height | Height of destination buffer (pixels) | |
linesize | Line size of destination buffer (bytes) |
Definition at line 657 of file iff.c.
Referenced by decode_frame().
|
static |
Decode RGBN buffer.
[out] | dst | Destination buffer |
width | Width of destination buffer (pixels) | |
height | Height of destination buffer (pixels) | |
linesize | Line size of destination buffer (bytes) |
Definition at line 674 of file iff.c.
Referenced by decode_frame().
|
static |
Decode DEEP RLE 32-bit buffer.
[out] | dst | Destination buffer |
[in] | src | Source buffer |
src_size | Source buffer size (bytes) | |
width | Width of destination buffer (pixels) | |
height | Height of destination buffer (pixels) | |
linesize | Line size of destination buffer (bytes) |
Definition at line 694 of file iff.c.
Referenced by decode_frame().
|
static |
Decode DEEP TVDC 32-bit buffer.
[out] | dst | Destination buffer |
[in] | src | Source buffer |
src_size | Source buffer size (bytes) | |
width | Width of destination buffer (pixels) | |
height | Height of destination buffer (pixels) | |
linesize | Line size of destination buffer (bytes) | |
Definition at line 744 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 784 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 837 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 904 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1015 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1083 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1166 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1226 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1305 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1360 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1415 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1482 of file iff.c.
Referenced by decode_frame(), and txd_decode_frame().
|
static |
|
static |
|
static |