libavcodec/exr.c File Reference

OpenEXR decoder. More...

#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


Detailed Description

OpenEXR decoder.

Author:
Jimmy Christensen
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.


Enumeration Type Documentation

enum ExrCompr

Enumerator:
EXR_RAW 
EXR_RLE 
EXR_ZIP1 
EXR_ZIP16 
EXR_PIZ 
EXR_B44 

Definition at line 37 of file exr.c.


Function Documentation

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.

Parameters:
*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
Returns:
negative if variable is invalid

Definition at line 120 of file exr.c.

Referenced by decode_frame().

static av_cold int decode_end ( AVCodecContext avctx  )  [static]

Definition at line 477 of file exr.c.

static int decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
AVPacket avpkt 
) [static]

Definition at line 145 of file exr.c.

static av_cold int decode_init ( AVCodecContext avctx  )  [static]

Definition at line 469 of file exr.c.

static uint16_t exr_flt2uint ( uint32_t  v  )  [inline, static]

Converts from 32-bit float as uint32_t to uint16_t.

Parameters:
v 32-bit float
Returns:
normalized 16-bit unsigned int

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.

Parameters:
v 16-bit float
Returns:
normalized 16-bit unsigned int

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.

Parameters:
**buf the current pointer location in the header where the variable data starts
*buf_end pointer location of the end of the buffer
Returns:
size of variable data

Definition at line 97 of file exr.c.

Referenced by check_header_variable(), and decode_frame().


Variable Documentation

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"),
}

Definition at line 486 of file exr.c.


Generated on Fri Oct 26 02:47:56 2012 for FFmpeg by  doxygen 1.5.8