FFmpeg
|
#include <stdint.h>
#include "libavutil/imgutils.h"
#include "libavutil/mem.h"
#include "bytestream.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "decode.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 uint8_t *const extradata, int extradata_size) |
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 | parse_packet_header (AVCodecContext *const avctx, GetByteContext *gb) |
static int | decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt) |
Variables | |
static const uint64_t | plane8_lut [8][256] |
static const uint32_t | plane32_lut [32][16 *4] |
const FFCodec | ff_iff_ilbm_decoder |
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 | ) |
enum mask_type |
|
static |
Definition at line 145 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 152 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 |
Definition at line 203 of file iff.c.
Referenced by decode_init().
|
static |
|
static |
|
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 405 of file iff.c.
Referenced by decode_frame().
|
static |
Decode interleaved plane buffer up to 24bpp.
dst | Destination buffer |
buf | Source buffer |
buf_size | |
plane | plane number to decode as |
Definition at line 427 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 463 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 478 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 495 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 522 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 619 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 636 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 656 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 708 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 748 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 801 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 868 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 979 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1047 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1133 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1193 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1275 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1334 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1389 of file iff.c.
Referenced by decode_frame().
|
static |
Definition at line 1461 of file iff.c.
Referenced by decode_frame(), and txd_decode_frame().
|
static |
Definition at line 1468 of file iff.c.
Referenced by decode_frame().
|
static |
|
static |
|
static |
const FFCodec ff_iff_ilbm_decoder |