#include "avcodec.h"
#include "bytestream.h"
#include "libavutil/imgutils.h"
Go to the source code of this file.
Data Structures | |
struct | EXRContext |
Enumerations | |
enum | ExrCompr { EXR_RAW = 0, EXR_RLE = 1, EXR_ZIP1 = 2, EXR_ZIP16 = 3, EXR_PIZ = 4, EXR_B44 = 6 } |
Functions | |
static uint16_t | exr_flt2uint (uint32_t v) |
Converts from 32-bit float as uint32_t to uint16_t. | |
static uint16_t | exr_halflt2uint (uint16_t v) |
Converts from 16-bit float as uint16_t to uint16_t. | |
static unsigned int | get_header_variable_length (const uint8_t **buf, const uint8_t *buf_end) |
Gets the size of the header variable. | |
static int | check_header_variable (AVCodecContext *avctx, const uint8_t **buf, const uint8_t *buf_end, const char *value_name, const char *value_type, unsigned int minimum_length, unsigned int *variable_buffer_data_size) |
Checks if the variable name corresponds with it's data type. | |
static int | decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt) |
static av_cold int | decode_init (AVCodecContext *avctx) |
static av_cold int | decode_end (AVCodecContext *avctx) |
Variables | |
AVCodec | ff_exr_decoder |
For more information on the OpenEXR format, visit: http://openexr.com/
exr_flt2uint() and exr_halflt2uint() is credited to Reimar Döffinger
Definition in file exr.c.
enum ExrCompr |
static int check_header_variable | ( | AVCodecContext * | avctx, | |
const uint8_t ** | buf, | |||
const uint8_t * | buf_end, | |||
const char * | value_name, | |||
const char * | value_type, | |||
unsigned int | minimum_length, | |||
unsigned int * | variable_buffer_data_size | |||
) | [static] |
Checks if the variable name corresponds with it's data type.
*avctx | the AVCodecContext | |
**buf | the current pointer location in the header where the variable name starts | |
*buf_end | pointer location of the end of the buffer | |
*value_name | name of the varible to check | |
*value_type | type of the varible to check | |
minimum_length | minimum length of the variable data | |
variable_buffer_data_size | variable length read from the header after it's checked |
Definition at line 120 of file exr.c.
Referenced by decode_frame().
static av_cold int decode_end | ( | AVCodecContext * | avctx | ) | [static] |
static int decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
AVPacket * | avpkt | |||
) | [static] |
static av_cold int decode_init | ( | AVCodecContext * | avctx | ) | [static] |
static uint16_t exr_flt2uint | ( | uint32_t | v | ) | [inline, static] |
Converts from 32-bit float as uint32_t to uint16_t.
v | 32-bit float |
Definition at line 59 of file exr.c.
Referenced by decode_frame().
static uint16_t exr_halflt2uint | ( | uint16_t | v | ) | [inline, static] |
Converts from 16-bit float as uint16_t to uint16_t.
v | 16-bit float |
Definition at line 78 of file exr.c.
Referenced by decode_frame().
static unsigned int get_header_variable_length | ( | const uint8_t ** | buf, | |
const uint8_t * | buf_end | |||
) | [static] |
Gets the size of the header variable.
**buf | the current pointer location in the header where the variable data starts | |
*buf_end | pointer location of the end of the buffer |
Definition at line 97 of file exr.c.
Referenced by check_header_variable(), and decode_frame().
Initial value:
{ .name = "exr", .type = AVMEDIA_TYPE_VIDEO, .id = CODEC_ID_EXR, .priv_data_size = sizeof(EXRContext), .init = decode_init, .close = decode_end, .decode = decode_frame, .long_name = NULL_IF_CONFIG_SMALL("OpenEXR image"), }