FFmpeg
|
#include <float.h>
#include <zlib.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/csp.h"
#include "libavutil/imgutils.h"
#include "libavutil/intfloat.h"
#include "libavutil/avstring.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/half2float.h"
#include "avcodec.h"
#include "bytestream.h"
#include "codec_internal.h"
#include "decode.h"
#include "exrdsp.h"
#include "get_bits.h"
#include "mathops.h"
#include "thread.h"
Go to the source code of this file.
Data Structures | |
struct | HuffEntry |
struct | EXRChannel |
struct | EXRTileAttribute |
struct | EXRThreadData |
struct | EXRContext |
Macros | |
#define | USHORT_RANGE (1 << 16) |
#define | BITMAP_SIZE (1 << 13) |
#define | HUF_ENCBITS 16 |
#define | HUF_ENCSIZE ((1 << HUF_ENCBITS) + 1) |
#define | SHORT_ZEROCODE_RUN 59 |
#define | LONG_ZEROCODE_RUN 63 |
#define | SHORTEST_LONG_RUN (2 + LONG_ZEROCODE_RUN - SHORT_ZEROCODE_RUN) |
#define | LONGEST_LONG_RUN (255 + SHORTEST_LONG_RUN) |
#define | NBITS 16 |
#define | A_OFFSET (1 << (NBITS - 1)) |
#define | MOD_MASK ((1 << NBITS) - 1) |
#define | OFFSET(x) offsetof(EXRContext, x) |
#define | VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM |
Enumerations | |
enum | ExrCompr { EXR_RAW, EXR_RLE, EXR_ZIP1, EXR_ZIP16, EXR_PIZ, EXR_PXR24, EXR_B44, EXR_B44A, EXR_DWAA, EXR_DWAB, EXR_UNKN, EXR_RAW, EXR_RLE, EXR_ZIP1, EXR_ZIP16, EXR_NBCOMPR } |
enum | ExrPixelType { EXR_UINT, EXR_HALF, EXR_FLOAT, EXR_UNKNOWN, EXR_UINT, EXR_HALF, EXR_FLOAT, EXR_UNKNOWN } |
enum | ExrTileLevelMode { EXR_TILE_LEVEL_ONE, EXR_TILE_LEVEL_MIPMAP, EXR_TILE_LEVEL_RIPMAP, EXR_TILE_LEVEL_UNKNOWN } |
enum | ExrTileLevelRound { EXR_TILE_ROUND_UP, EXR_TILE_ROUND_DOWN, EXR_TILE_ROUND_UNKNOWN } |
Functions | |
static int | zip_uncompress (const EXRContext *s, const uint8_t *src, int compressed_size, int uncompressed_size, EXRThreadData *td) |
static int | rle (uint8_t *dst, const uint8_t *src, int compressed_size, int uncompressed_size) |
static int | rle_uncompress (const EXRContext *ctx, const uint8_t *src, int compressed_size, int uncompressed_size, EXRThreadData *td) |
static uint16_t | reverse_lut (const uint8_t *bitmap, uint16_t *lut) |
static void | apply_lut (const uint16_t *lut, uint16_t *dst, int dsize) |
static void | huf_canonical_code_table (uint64_t *freq) |
static int | huf_unpack_enc_table (GetByteContext *gb, int32_t im, int32_t iM, uint64_t *freq) |
static int | huf_build_dec_table (const EXRContext *s, EXRThreadData *td, int im, int iM) |
static int | huf_decode (VLC *vlc, GetByteContext *gb, int nbits, int run_sym, int no, uint16_t *out) |
static int | huf_uncompress (const EXRContext *s, EXRThreadData *td, GetByteContext *gb, uint16_t *dst, int dst_size) |
static void | wdec14 (uint16_t l, uint16_t h, uint16_t *a, uint16_t *b) |
static void | wdec16 (uint16_t l, uint16_t h, uint16_t *a, uint16_t *b) |
static void | wav_decode (uint16_t *in, int nx, int ox, int ny, int oy, uint16_t mx) |
static int | piz_uncompress (const EXRContext *s, const uint8_t *src, int ssize, int dsize, EXRThreadData *td) |
static int | pxr24_uncompress (const EXRContext *s, const uint8_t *src, int compressed_size, int uncompressed_size, EXRThreadData *td) |
static void | unpack_14 (const uint8_t b[14], uint16_t s[16]) |
static void | unpack_3 (const uint8_t b[3], uint16_t s[16]) |
static int | b44_uncompress (const EXRContext *s, const uint8_t *src, int compressed_size, int uncompressed_size, EXRThreadData *td) |
static int | ac_uncompress (const EXRContext *s, GetByteContext *gb, float *block) |
static void | idct_1d (float *blk, int step) |
static void | dct_inverse (float *block) |
static void | convert (float y, float u, float v, float *b, float *g, float *r) |
static float | to_linear (float x, float scale) |
static int | dwa_uncompress (const EXRContext *s, const uint8_t *src, int compressed_size, int uncompressed_size, EXRThreadData *td) |
static int | decode_block (AVCodecContext *avctx, void *tdata, int jobnr, int threadnr) |
static void | skip_header_chunk (EXRContext *s) |
static int | check_header_variable (EXRContext *s, const char *value_name, const char *value_type, unsigned int minimum_length) |
Check if the variable name corresponds to its data type. More... | |
static int | decode_header (EXRContext *s, AVFrame *frame) |
static int | decode_frame (AVCodecContext *avctx, AVFrame *picture, int *got_frame, AVPacket *avpkt) |
static av_cold int | decode_init (AVCodecContext *avctx) |
static av_cold int | decode_end (AVCodecContext *avctx) |
Variables | |
static const AVOption | options [] |
static const AVClass | exr_class |
const FFCodec | ff_exr_decoder |
OpenEXR decoder
For more information on the OpenEXR format, visit: http://openexr.com/
Definition in file exr.c.
#define HUF_ENCSIZE ((1 << HUF_ENCBITS) + 1) |
#define SHORTEST_LONG_RUN (2 + LONG_ZEROCODE_RUN - SHORT_ZEROCODE_RUN) |
#define LONGEST_LONG_RUN (255 + SHORTEST_LONG_RUN) |
#define OFFSET | ( | x | ) | offsetof(EXRContext, x) |
#define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM |
enum ExrCompr |
enum ExrPixelType |
enum ExrTileLevelMode |
enum ExrTileLevelRound |
|
static |
Definition at line 200 of file exr.c.
Referenced by decode_block().
|
static |
Definition at line 217 of file exr.c.
Referenced by decode_frame(), dwa_uncompress(), epic_decode_run_length(), populate_distribution(), and rle_uncompress().
|
static |
Definition at line 259 of file exr.c.
Referenced by decode_block().
|
static |
Definition at line 275 of file exr.c.
Referenced by piz_uncompress().
|
static |
Definition at line 290 of file exr.c.
Referenced by piz_uncompress().
|
static |
Definition at line 301 of file exr.c.
Referenced by huf_unpack_enc_table().
|
static |
Definition at line 329 of file exr.c.
Referenced by huf_uncompress().
|
static |
Definition at line 372 of file exr.c.
Referenced by huf_uncompress().
|
static |
Definition at line 418 of file exr.c.
Referenced by huf_uncompress().
|
static |
Definition at line 447 of file exr.c.
Referenced by dwa_uncompress(), and piz_uncompress().
|
inlinestatic |
Definition at line 489 of file exr.c.
Referenced by wav_decode().
|
inlinestatic |
Definition at line 506 of file exr.c.
Referenced by wav_decode().
|
static |
Definition at line 516 of file exr.c.
Referenced by piz_uncompress().
|
static |
Definition at line 595 of file exr.c.
Referenced by decode_block().
|
static |
Definition at line 681 of file exr.c.
Referenced by decode_block().
|
static |
Definition at line 765 of file exr.c.
Referenced by b44_uncompress().
|
static |
Definition at line 800 of file exr.c.
Referenced by b44_uncompress().
|
static |
Definition at line 816 of file exr.c.
Referenced by decode_block().
|
static |
Definition at line 887 of file exr.c.
Referenced by dwa_uncompress().
|
static |
Definition at line 908 of file exr.c.
Referenced by dct_inverse().
|
static |
Definition at line 952 of file exr.c.
Referenced by dwa_uncompress().
Definition at line 963 of file exr.c.
Referenced by dwa_uncompress(), and query_formats().
Definition at line 971 of file exr.c.
Referenced by dwa_uncompress().
|
static |
Definition at line 984 of file exr.c.
Referenced by decode_block().
|
static |
Definition at line 1174 of file exr.c.
Referenced by decode_frame().
|
static |
Definition at line 1481 of file exr.c.
Referenced by decode_header().
|
static |
Check if the variable name corresponds to its data type.
s | the EXRContext |
value_name | name of the variable to check |
value_type | type of the variable to check |
minimum_length | minimum length of the variable data |
Definition at line 1510 of file exr.c.
Referenced by decode_header().
|
static |
Definition at line 1540 of file exr.c.
Referenced by decode_frame().
|
static |
|
static |
|
static |
|
static |
const FFCodec ff_exr_decoder |