WebP image decoder.
More...
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "bytestream.h"
#include "exif.h"
#include "get_bits.h"
#include "internal.h"
#include "thread.h"
#include "vp8.h"
|
|
#define | BITSTREAM_READER_LE |
| |
|
#define | VP8X_FLAG_ANIMATION 0x02 |
| |
|
#define | VP8X_FLAG_XMP_METADATA 0x04 |
| |
|
#define | VP8X_FLAG_EXIF_METADATA 0x08 |
| |
|
#define | VP8X_FLAG_ALPHA 0x10 |
| |
|
#define | VP8X_FLAG_ICC 0x20 |
| |
|
#define | MAX_PALETTE_SIZE 256 |
| |
|
#define | MAX_CACHE_BITS 11 |
| |
|
#define | NUM_CODE_LENGTH_CODES 19 |
| |
|
#define | HUFFMAN_CODES_PER_META_CODE 5 |
| |
|
#define | NUM_LITERAL_CODES 256 |
| |
|
#define | NUM_LENGTH_CODES 24 |
| |
|
#define | NUM_DISTANCE_CODES 40 |
| |
|
#define | NUM_SHORT_DISTANCES 120 |
| |
|
#define | MAX_HUFFMAN_CODE_LENGTH 15 |
| |
|
#define | GET_PIXEL(frame, x, y) ((frame)->data[0] + (y) * frame->linesize[0] + 4 * (x)) |
| |
|
#define | GET_PIXEL_COMP(frame, x, y, c) (*((frame)->data[0] + (y) * frame->linesize[0] + 4 * (x) + c)) |
| |
| #define | PARSE_BLOCK_SIZE(w, h) |
| |
|
|
typedef struct HuffReader | HuffReader |
| |
|
typedef struct ImageContext | ImageContext |
| |
|
typedef struct WebPContext | WebPContext |
| |
|
typedef void(* | inv_predict_func) (uint8_t *p, const uint8_t *p_l, const uint8_t *p_tl, const uint8_t *p_t, const uint8_t *p_tr) |
| |
|
| enum | AlphaCompression { ALPHA_COMPRESSION_NONE,
ALPHA_COMPRESSION_VP8L
} |
| |
| enum | AlphaFilter { ALPHA_FILTER_NONE,
ALPHA_FILTER_HORIZONTAL,
ALPHA_FILTER_VERTICAL,
ALPHA_FILTER_GRADIENT
} |
| |
| enum | TransformType { PREDICTOR_TRANSFORM = 0,
COLOR_TRANSFORM = 1,
SUBTRACT_GREEN = 2,
COLOR_INDEXING_TRANSFORM = 3
} |
| |
| enum | PredictionMode {
PRED_MODE_BLACK,
PRED_MODE_L,
PRED_MODE_T,
PRED_MODE_TR,
PRED_MODE_TL,
PRED_MODE_AVG_T_AVG_L_TR,
PRED_MODE_AVG_L_TL,
PRED_MODE_AVG_L_T,
PRED_MODE_AVG_TL_T,
PRED_MODE_AVG_T_TR,
PRED_MODE_AVG_AVG_L_TL_AVG_T_TR,
PRED_MODE_SELECT,
PRED_MODE_ADD_SUBTRACT_FULL,
PRED_MODE_ADD_SUBTRACT_HALF
} |
| |
| enum | HuffmanIndex {
HUFF_IDX_GREEN = 0,
HUFF_IDX_RED = 1,
HUFF_IDX_BLUE = 2,
HUFF_IDX_ALPHA = 3,
HUFF_IDX_DIST = 4
} |
| |
| enum | ImageRole {
IMAGE_ROLE_ARGB,
IMAGE_ROLE_ENTROPY,
IMAGE_ROLE_PREDICTOR,
IMAGE_ROLE_COLOR_TRANSFORM,
IMAGE_ROLE_COLOR_INDEXING,
IMAGE_ROLE_NB
} |
| |
WebP image decoder.
- Author
- Aneesh Dogra anees.nosp@m.h@su.nosp@m.garla.nosp@m.bs.o.nosp@m.rg Container and Lossy decoding
-
Justin Ruggles justi.nosp@m.n.ru.nosp@m.ggles.nosp@m.@gma.nosp@m.il.co.nosp@m.m Lossless decoder Compressed alpha for lossy
-
James Almer jamri.nosp@m.al@g.nosp@m.mail..nosp@m.com Exif metadata ICC profile
Unimplemented:
§ PARSE_BLOCK_SIZE
| #define PARSE_BLOCK_SIZE |
( |
|
w, |
|
|
|
h |
|
) |
| |
Value:do { \
block_bits = get_bits(&s->gb, 3) + 2; \
blocks_w = FFALIGN((w), 1 << block_bits) >> block_bits; \
blocks_h = FFALIGN((h), 1 << block_bits) >> block_bits; \
} while (0)
§ ff_webp_decoder
Initial value:= {
.name = "webp",
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_WEBP,
.decode = webp_decode_frame,
.close = webp_decode_close,
}
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
Definition: avcodec.h:1015
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:959