Encoder  4.4
VC-5 Sample Encoder
bandfile.h File Reference

Go to the source code of this file.

Data Structures

struct  _bandfile
 Declaration of the band file data structure. More...
 

Typedefs

typedef struct _bandfile BANDFILE
 Declaration of the band file data structure. More...
 
typedef int BANDFILE_ERROR
 

Enumerations

enum  BAND_TYPE { BAND_TYPE_UINT16 = 0, BAND_TYPE_SINT16, BAND_TYPE_ENCODED = 16, BAND_TYPE_ENCODED_RUNLENGTHS }
 Data type of the data for a band in the band file.
 
enum  {
  BANDFILE_ERROR_OKAY = 0, BANDFILE_ERROR_OPEN_FAILED, BANDFILE_ERROR_READ_FAILED, BANDFILE_ERROR_UNKNOWN_HEADER,
  BANDFILE_ERROR_CREATE_FAILED, BANDFILE_ERROR_WRITE_FAILED, BANDFILE_ERROR_END_OF_DATA
}
 Error codes returned by the band file module.
 

Functions

int OpenBandFile (BANDFILE *bandfile, const char *pathname)
 Open the band file for reading band data.
 
int FindNextBand (BANDFILE *bandfile)
 Find the next band in the band file. More...
 
int ReadFileHeader (BANDFILE *bandfile)
 
int ReadFrameHeader (BANDFILE *bandfile)
 
int ReadChannelHeader (BANDFILE *bandfile)
 
int ReadWaveletHeader (BANDFILE *bandfile)
 
int ReadBandHeader (BANDFILE *bandfile)
 
int ReadBandData (BANDFILE *bandfile, void *data, size_t size)
 Read the data for the next band from the band file.
 
int CreateBandFile (BANDFILE *bandfile, const char *pathname)
 Create a band file for storing band data.
 
int WriteFileHeader (BANDFILE *bandfile, int max_band_width, int max_band_height)
 
int WriteWaveletBand (BANDFILE *bandfile, int frame, int channel, int wavelet, int band, int type, int width, int height, void *data, size_t size)
 Write the band data to the band file. More...
 
int WriteFrameHeader (BANDFILE *bandfile, int frame)
 
int WriteChannelHeader (BANDFILE *bandfile, int channel)
 
int WriteWaveletHeader (BANDFILE *bandfile, int wavelet)
 
int WriteBandHeader (BANDFILE *bandfile, int band, int type, int width, int height, size_t size)
 
int WriteBandData (BANDFILE *bandfile, void *data, size_t size)
 
int CloseBandFile (BANDFILE *bandfile)
 

Detailed Description

Declaration of the data structures and functions for reading and writing binary files that contain band data (for debugging).

The band file can contain one or more channels and any combination of subbands can be written for each channel.

(c) 2013 Society of Motion Picture & Television Engineers LLC and Woodman Labs, Inc. All rights reserved–use subject to compliance with end user license agreement.

Typedef Documentation

◆ BANDFILE

typedef struct _bandfile BANDFILE

Declaration of the band file data structure.

Todo:
Replace the Boolean flags that are currently defined to be one byte with a 32-bit word using one bit per flag.

Function Documentation

◆ FindNextBand()

int FindNextBand ( BANDFILE bandfile)

Find the next band in the band file.

This routine is the recommended method for reading band data from a band file. Any combination of bands can be stored in any order. This routine updates the band file data structure with the index of the next frame, channel, wavelet, and band and the type of band.

After calling this routine, the calling application should call the routine ReadBandData to read the actual band data.

◆ WriteWaveletBand()

int WriteWaveletBand ( BANDFILE bandfile,
int  frame,
int  channel,
int  wavelet,
int  band,
int  type,
int  width,
int  height,
void *  data,
size_t  size 
)

Write the band data to the band file.

This is the recommended method for writing band data to a file. Any headers that must be written to the file will be written before the band data. For example, if the frame, channel, and wavelet numbers have not changed since the last call to this routine then the frame, channel, and wavelet headers will be be rewritten.