FFmpeg
|
IFF ACBM/DEEP/ILBM/PBM bitmap decoder. More...
#include "libavutil/imgutils.h"
#include "bytestream.h"
#include "avcodec.h"
#include "get_bits.h"
#include "internal.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. | |
static int | extract_header (AVCodecContext *const avctx, const AVPacket *const avpkt) |
Extracts the IFF extra context and updates internal decoder structures. | |
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. | |
static void | decodeplane32 (uint32_t *dst, const uint8_t *buf, int buf_size, int plane) |
Decode interleaved plane buffer up to 24bpp. | |
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. | |
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, const uint8_t *buf, const uint8_t *const buf_end) |
Decode one complete byterun1 encoded line. | |
static void | decode_rgb8 (GetByteContext *gb, uint8_t *dst, int width, int height, int linesize) |
Decode RGB8 buffer. | |
static void | decode_rgbn (GetByteContext *gb, uint8_t *dst, int width, int height, int linesize) |
Decode RGBN buffer. | |
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. | |
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. | |
static int | unsupported (AVCodecContext *avctx) |
static int | decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) |
static av_cold int | decode_end (AVCodecContext *avctx) |
Variables | |
static const uint64_t | plane8_lut [8][256] |
static const uint32_t | plane32_lut [32][16 *4] |
IFF ACBM/DEEP/ILBM/PBM bitmap decoder.
Definition in file iff.c.
#define LUT8_PART | ( | plane, | |
v | |||
) |
#define LUT8 | ( | plane | ) |
#define LUT32 | ( | plane | ) |
#define DECODE_HAM_PLANE32 | ( | x | ) |
Definition at line 419 of file iff.c.
Referenced by decode_ham_plane32().
#define DECODE_RGBX_COMMON | ( | type | ) |
Definition at line 491 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 135 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 142 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 191 of file iff.c.
Referenced by decode_frame(), and decode_init().
|
static |
Decode interleaved plane buffer up to 8bpp.
dst | Destination buffer |
buf | Source buffer |
buf_size | |
plane | plane number to decode as |
Definition at line 380 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 401 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 437 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 452 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 469 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 518 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 535 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 555 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) | |
int] | tvdc TVDC lookup table |
Definition at line 605 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 645 of file iff.c.
Referenced by decode_frame(), mov_read_elst(), and txd_decode_frame().
|
static |
|
static |
|
static |
|
static |