| 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 | 
 1.8.13
 1.8.13