GPAC
Open Source Multimedia Framework. For more information, check out http://gpac.wp.mines-telecom.fr
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups
avilib.h File Reference
#include <gpac/tools.h>
+ Include dependency graph for avilib.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  video_index_entry
 
struct  audio_index_entry
 
struct  avisuperindex_entry
 
struct  avistdindex_entry
 
struct  avistdindex_chunk
 
struct  avisuperindex_chunk
 
struct  track_t
 
struct  alBITMAPINFOHEADER
 
struct  alWAVEFORMATEX
 
struct  alAVISTREAMHEADER
 
struct  avi_t
 
struct  riff_struct
 
struct  chunk_struct
 
struct  common_struct
 
struct  wave_header
 
struct  AVIStreamHeader
 

Macros

#define AVI_MAX_TRACKS   8
 
#define AVI_INDEX_OF_INDEXES   0x00
 
#define AVI_INDEX_OF_CHUNKS   0x01
 
#define AVI_INDEX_IS_DATA   0x80
 
#define AVI_INDEX_2FIELD   0x01
 
#define AVI_MODE_WRITE   0
 
#define AVI_MODE_READ   1
 
#define AVI_ERR_SIZELIM
 
#define AVI_ERR_OPEN
 
#define AVI_ERR_READ   3 /* Error reading from AVI File */
 
#define AVI_ERR_WRITE
 
#define AVI_ERR_WRITE_INDEX
 
#define AVI_ERR_CLOSE
 
#define AVI_ERR_NOT_PERM
 
#define AVI_ERR_NO_MEM   8 /* malloc failed */
 
#define AVI_ERR_NO_AVI   9 /* Not an AVI file */
 
#define AVI_ERR_NO_HDRL
 
#define AVI_ERR_NO_MOVI
 
#define AVI_ERR_NO_VIDS   12 /* AVI file contains no video data */
 
#define AVI_ERR_NO_IDX
 
#define WAVE_FORMAT_UNKNOWN   (0x0000)
 
#define WAVE_FORMAT_PCM   (0x0001)
 
#define WAVE_FORMAT_ADPCM   (0x0002)
 
#define WAVE_FORMAT_IBM_CVSD   (0x0005)
 
#define WAVE_FORMAT_ALAW   (0x0006)
 
#define WAVE_FORMAT_MULAW   (0x0007)
 
#define WAVE_FORMAT_OKI_ADPCM   (0x0010)
 
#define WAVE_FORMAT_DVI_ADPCM   (0x0011)
 
#define WAVE_FORMAT_DIGISTD   (0x0015)
 
#define WAVE_FORMAT_DIGIFIX   (0x0016)
 
#define WAVE_FORMAT_YAMAHA_ADPCM   (0x0020)
 
#define WAVE_FORMAT_DSP_TRUESPEECH   (0x0022)
 
#define WAVE_FORMAT_GSM610   (0x0031)
 
#define IBM_FORMAT_MULAW   (0x0101)
 
#define IBM_FORMAT_ALAW   (0x0102)
 
#define IBM_FORMAT_ADPCM   (0x0103)
 

Functions

avi_tAVI_open_output_file (char *filename)
 
void AVI_set_video (avi_t *AVI, int width, int height, double fps, char *compressor)
 
void AVI_set_audio (avi_t *AVI, int channels, long rate, int bits, int format, long mp3rate)
 
int AVI_write_frame (avi_t *AVI, char *data, long bytes, int keyframe)
 
int AVI_dup_frame (avi_t *AVI)
 
int AVI_write_audio (avi_t *AVI, char *data, long bytes)
 
int AVI_append_audio (avi_t *AVI, char *data, long bytes)
 
u64 AVI_bytes_remain (avi_t *AVI)
 
int AVI_close (avi_t *AVI)
 
u64 AVI_bytes_written (avi_t *AVI)
 
avi_tAVI_open_input_file (char *filename, int getIndex)
 
avi_tAVI_open_input_indexfile (char *filename, int getIndex, char *indexfile)
 
avi_tAVI_open_fd (FILE *fd, int getIndex)
 
avi_tAVI_open_indexfd (FILE *fd, int getIndex, char *indexfile)
 
int avi_parse_input_file (avi_t *AVI, int getIndex)
 
int avi_parse_index_from_file (avi_t *AVI, char *filename)
 
long AVI_audio_mp3rate (avi_t *AVI)
 
long AVI_audio_padrate (avi_t *AVI)
 
long AVI_video_frames (avi_t *AVI)
 
int AVI_video_width (avi_t *AVI)
 
int AVI_video_height (avi_t *AVI)
 
double AVI_frame_rate (avi_t *AVI)
 
char * AVI_video_compressor (avi_t *AVI)
 
int AVI_audio_channels (avi_t *AVI)
 
int AVI_audio_bits (avi_t *AVI)
 
int AVI_audio_format (avi_t *AVI)
 
long AVI_audio_rate (avi_t *AVI)
 
u64 AVI_audio_bytes (avi_t *AVI)
 
long AVI_audio_chunks (avi_t *AVI)
 
int AVI_can_read_audio (avi_t *AVI)
 
long AVI_max_video_chunk (avi_t *AVI)
 
long AVI_frame_size (avi_t *AVI, long frame)
 
long AVI_audio_size (avi_t *AVI, long frame)
 
int AVI_seek_start (avi_t *AVI)
 
int AVI_set_video_position (avi_t *AVI, long frame)
 
u64 AVI_get_video_position (avi_t *AVI, long frame)
 
long AVI_read_frame (avi_t *AVI, char *vidbuf, int *keyframe)
 
int AVI_set_audio_position (avi_t *AVI, long byte)
 
int AVI_set_audio_bitrate (avi_t *AVI, long bitrate)
 
long AVI_get_audio_position_index (avi_t *AVI)
 
int AVI_set_audio_position_index (avi_t *AVI, long indexpos)
 
long AVI_read_audio (avi_t *AVI, char *audbuf, long bytes, int *continuous)
 
int AVI_read_data (avi_t *AVI, char *vidbuf, long max_vidbuf, char *audbuf, long max_audbuf, long *len)
 
int AVI_scan (char *name)
 
int AVI_dump (char *name, int mode)
 
char * AVI_codec2str (short cc)
 
int AVI_file_check (char *import_file)
 
void AVI_info (avi_t *avifile)
 
u64 AVI_max_size (void)
 
int avi_update_header (avi_t *AVI)
 
int AVI_set_audio_track (avi_t *AVI, u32 track)
 
int AVI_get_audio_track (avi_t *AVI)
 
int AVI_audio_tracks (avi_t *AVI)
 
void AVI_set_audio_vbr (avi_t *AVI, long is_vbr)
 
long AVI_get_audio_vbr (avi_t *AVI)
 
void AVI_set_comment_fd (avi_t *AVI, int fd)
 
int AVI_get_comment_fd (avi_t *AVI)
 
int AVI_read_wave_header (int fd, struct wave_header *wave)
 
int AVI_write_wave_header (int fd, const struct wave_header *wave)
 
size_t AVI_read_wave_pcm_data (int fd, void *buffer, size_t buflen)
 
size_t AVI_write_wave_pcm_data (int fd, const void *buffer, size_t buflen)
 

Data Structure Documentation

struct video_index_entry
+ Collaboration diagram for video_index_entry:
Data Fields
u64 key
u64 pos
u64 len
struct audio_index_entry
+ Collaboration diagram for audio_index_entry:
Data Fields
u64 pos
u64 len
u64 tot
struct avisuperindex_entry
+ Collaboration diagram for avisuperindex_entry:
Data Fields
u64 qwOffset
u32 dwSize
u32 dwDuration
struct avistdindex_entry
+ Collaboration diagram for avistdindex_entry:
Data Fields
u32 dwOffset
u32 dwSize
struct avistdindex_chunk
+ Collaboration diagram for avistdindex_chunk:
Data Fields
char fcc[4]
u32 dwSize
u16 wLongsPerEntry
u8 bIndexSubType
u8 bIndexType
u32 nEntriesInUse
char dwChunkId[4]
u64 qwBaseOffset
u32 dwReserved3
avistdindex_entry * aIndex
struct avisuperindex_chunk
+ Collaboration diagram for avisuperindex_chunk:
Data Fields
char fcc[4]
u32 dwSize
u16 wLongsPerEntry
u8 bIndexSubType
u8 bIndexType
u32 nEntriesInUse
char dwChunkId[4]
u32 dwReserved[3]
avisuperindex_entry * aIndex
avistdindex_chunk ** stdindex
struct track_t
+ Collaboration diagram for track_t:
Data Fields
long a_fmt
long a_chans
long a_rate
long a_bits
long mp3rate
long a_vbr
long padrate
long audio_strn
u64 audio_bytes
long audio_chunks
char audio_tag[4]
long audio_posc
long audio_posb
u64 a_codech_off
u64 a_codecf_off
audio_index_entry * audio_index
avisuperindex_chunk * audio_superindex
struct alBITMAPINFOHEADER
+ Collaboration diagram for alBITMAPINFOHEADER:
Data Fields
u32 bi_size
u32 bi_width
u32 bi_height
u16 bi_planes
u16 bi_bit_count
u32 bi_compression
u32 bi_size_image
u32 bi_x_pels_per_meter
u32 bi_y_pels_per_meter
u32 bi_clr_used
u32 bi_clr_important
struct alWAVEFORMATEX
+ Collaboration diagram for alWAVEFORMATEX:
Data Fields
u16 w_format_tag
u16 n_channels
u32 n_samples_per_sec
u32 n_avg_bytes_per_sec
u16 n_block_align
u16 w_bits_per_sample
u16 cb_size
struct alAVISTREAMHEADER
+ Collaboration diagram for alAVISTREAMHEADER:
Data Fields
u32 fcc_type
u32 fcc_handler
u32 dw_flags
u32 dw_caps
u16 w_priority
u16 w_language
u32 dw_scale
u32 dw_rate
u32 dw_start
u32 dw_length
u32 dw_initial_frames
u32 dw_suggested_buffer_size
u32 dw_quality
u32 dw_sample_size
u16 dw_left
u16 dw_top
u16 dw_right
u16 dw_bottom
struct avi_t
+ Collaboration diagram for avi_t:
Data Fields
FILE * fdes
long mode
long width
long height
double fps
char compressor[8]
char compressor2[8]
u32 video_strn
long video_frames
char video_tag[4]
long video_pos
alAVISTREAMHEADER video_stream_header
u32 max_len
track_t track[8]
s64 pos
long n_idx
long max_idx
s64 v_codech_off
s64 v_codecf_off
u8(* idx)[16]
video_index_entry * video_index
avisuperindex_chunk * video_superindex
int is_opendml
s64 last_pos
u32 last_len
int must_use_index
s64 movi_start
int total_frames
u32 anum
u32 aptr
char * index_file
alBITMAPINFOHEADER * bitmap_info_header
alWAVEFORMATEX * wave_format_ex[8]
alAVISTREAMHEADER stream_headers[8]
void * extradata
unsigned long extradata_size
struct riff_struct
+ Collaboration diagram for riff_struct:
Data Fields
u8 id[4]
u32 len
u8 wave_id[4]
struct chunk_struct
+ Collaboration diagram for chunk_struct:
Data Fields
u8 id[4]
u32 len
struct common_struct
+ Collaboration diagram for common_struct:
Data Fields
u16 wFormatTag
u16 wChannels
u32 dwSamplesPerSec
u32 dwAvgBytesPerSec
u16 wBlockAlign
u16 wBitsPerSample
struct wave_header
+ Collaboration diagram for wave_header:
Data Fields
struct riff_struct riff
struct chunk_struct format
struct common_struct common
struct chunk_struct data
struct AVIStreamHeader
+ Collaboration diagram for AVIStreamHeader:
Data Fields
long fccType
long fccHandler
long dwFlags
long dwPriority
long dwInitialFrames
long dwScale
long dwRate
long dwStart
long dwLength
long dwSuggestedBufferSize
long dwQuality
long dwSampleSize

Macro Definition Documentation

#define AVI_MAX_TRACKS   8
#define AVI_INDEX_OF_INDEXES   0x00
#define AVI_INDEX_OF_CHUNKS   0x01
#define AVI_INDEX_IS_DATA   0x80
#define AVI_INDEX_2FIELD   0x01
#define AVI_MODE_WRITE   0
#define AVI_MODE_READ   1
#define AVI_ERR_SIZELIM
Value:
1 /* The write of the data would exceed
the maximum size of the AVI file.
This is more a warning than an error
since the file may be closed safely */
#define AVI_ERR_OPEN
Value:
2 /* Error opening the AVI file - wrong path
name or file nor readable/writable */
#define AVI_ERR_READ   3 /* Error reading from AVI File */
#define AVI_ERR_WRITE
Value:
4 /* Error writing to AVI File,
disk full ??? */
#define AVI_ERR_WRITE_INDEX
Value:
5 /* Could not write index to AVI file
during close, file may still be
usable */
#define AVI_ERR_CLOSE
Value:
6 /* Could not write header to AVI file
or not truncate the file during close,
file is most probably corrupted */
#define AVI_ERR_NOT_PERM
Value:
7 /* Operation not permitted:
trying to read from a file open
for writing or vice versa */
#define AVI_ERR_NO_MEM   8 /* malloc failed */
#define AVI_ERR_NO_AVI   9 /* Not an AVI file */
#define AVI_ERR_NO_HDRL
Value:
10 /* AVI file has no has no header list,
corrupted ??? */
#define AVI_ERR_NO_MOVI
Value:
11 /* AVI file has no has no MOVI list,
corrupted ??? */
#define AVI_ERR_NO_VIDS   12 /* AVI file contains no video data */
#define AVI_ERR_NO_IDX
Value:
13 /* The file has been opened with
getIndex==0, but an operation has been
performed that needs an index */
#define WAVE_FORMAT_UNKNOWN   (0x0000)
#define WAVE_FORMAT_PCM   (0x0001)
#define WAVE_FORMAT_ADPCM   (0x0002)
#define WAVE_FORMAT_IBM_CVSD   (0x0005)
#define WAVE_FORMAT_ALAW   (0x0006)
#define WAVE_FORMAT_MULAW   (0x0007)
#define WAVE_FORMAT_OKI_ADPCM   (0x0010)
#define WAVE_FORMAT_DVI_ADPCM   (0x0011)
#define WAVE_FORMAT_DIGISTD   (0x0015)
#define WAVE_FORMAT_DIGIFIX   (0x0016)
#define WAVE_FORMAT_YAMAHA_ADPCM   (0x0020)
#define WAVE_FORMAT_DSP_TRUESPEECH   (0x0022)
#define WAVE_FORMAT_GSM610   (0x0031)
#define IBM_FORMAT_MULAW   (0x0101)
#define IBM_FORMAT_ALAW   (0x0102)
#define IBM_FORMAT_ADPCM   (0x0103)

Function Documentation

avi_t* AVI_open_output_file ( char *  filename)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void AVI_set_video ( avi_t AVI,
int  width,
int  height,
double  fps,
char *  compressor 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void AVI_set_audio ( avi_t AVI,
int  channels,
long  rate,
int  bits,
int  format,
long  mp3rate 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AVI_write_frame ( avi_t AVI,
char *  data,
long  bytes,
int  keyframe 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AVI_dup_frame ( avi_t AVI)

+ Here is the call graph for this function:

int AVI_write_audio ( avi_t AVI,
char *  data,
long  bytes 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AVI_append_audio ( avi_t AVI,
char *  data,
long  bytes 
)

+ Here is the call graph for this function:

u64 AVI_bytes_remain ( avi_t AVI)
int AVI_close ( avi_t AVI)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u64 AVI_bytes_written ( avi_t AVI)
avi_t* AVI_open_input_file ( char *  filename,
int  getIndex 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

avi_t* AVI_open_input_indexfile ( char *  filename,
int  getIndex,
char *  indexfile 
)
avi_t* AVI_open_fd ( FILE *  fd,
int  getIndex 
)

+ Here is the call graph for this function:

avi_t* AVI_open_indexfd ( FILE *  fd,
int  getIndex,
char *  indexfile 
)
int avi_parse_input_file ( avi_t AVI,
int  getIndex 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int avi_parse_index_from_file ( avi_t AVI,
char *  filename 
)
long AVI_audio_mp3rate ( avi_t AVI)
long AVI_audio_padrate ( avi_t AVI)
long AVI_video_frames ( avi_t AVI)

+ Here is the caller graph for this function:

int AVI_video_width ( avi_t AVI)

+ Here is the caller graph for this function:

int AVI_video_height ( avi_t AVI)

+ Here is the caller graph for this function:

double AVI_frame_rate ( avi_t AVI)

+ Here is the caller graph for this function:

char* AVI_video_compressor ( avi_t AVI)

+ Here is the caller graph for this function:

int AVI_audio_channels ( avi_t AVI)

+ Here is the caller graph for this function:

int AVI_audio_bits ( avi_t AVI)
int AVI_audio_format ( avi_t AVI)
long AVI_audio_rate ( avi_t AVI)

+ Here is the caller graph for this function:

u64 AVI_audio_bytes ( avi_t AVI)
long AVI_audio_chunks ( avi_t AVI)
int AVI_can_read_audio ( avi_t AVI)
long AVI_max_video_chunk ( avi_t AVI)
long AVI_frame_size ( avi_t AVI,
long  frame 
)

+ Here is the caller graph for this function:

long AVI_audio_size ( avi_t AVI,
long  frame 
)

+ Here is the caller graph for this function:

int AVI_seek_start ( avi_t AVI)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AVI_set_video_position ( avi_t AVI,
long  frame 
)
u64 AVI_get_video_position ( avi_t AVI,
long  frame 
)

+ Here is the caller graph for this function:

long AVI_read_frame ( avi_t AVI,
char *  vidbuf,
int *  keyframe 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AVI_set_audio_position ( avi_t AVI,
long  byte 
)

+ Here is the caller graph for this function:

int AVI_set_audio_bitrate ( avi_t AVI,
long  bitrate 
)
long AVI_get_audio_position_index ( avi_t AVI)
int AVI_set_audio_position_index ( avi_t AVI,
long  indexpos 
)
long AVI_read_audio ( avi_t AVI,
char *  audbuf,
long  bytes,
int *  continuous 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AVI_read_data ( avi_t AVI,
char *  vidbuf,
long  max_vidbuf,
char *  audbuf,
long  max_audbuf,
long *  len 
)

+ Here is the call graph for this function:

int AVI_scan ( char *  name)
int AVI_dump ( char *  name,
int  mode 
)
char* AVI_codec2str ( short  cc)
int AVI_file_check ( char *  import_file)
void AVI_info ( avi_t avifile)
u64 AVI_max_size ( void  )
int avi_update_header ( avi_t AVI)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AVI_set_audio_track ( avi_t AVI,
u32  track 
)

+ Here is the caller graph for this function:

int AVI_get_audio_track ( avi_t AVI)
int AVI_audio_tracks ( avi_t AVI)

+ Here is the caller graph for this function:

void AVI_set_audio_vbr ( avi_t AVI,
long  is_vbr 
)
long AVI_get_audio_vbr ( avi_t AVI)
void AVI_set_comment_fd ( avi_t AVI,
int  fd 
)
int AVI_get_comment_fd ( avi_t AVI)
int AVI_read_wave_header ( int  fd,
struct wave_header wave 
)
int AVI_write_wave_header ( int  fd,
const struct wave_header wave 
)
size_t AVI_read_wave_pcm_data ( int  fd,
void *  buffer,
size_t  buflen 
)
size_t AVI_write_wave_pcm_data ( int  fd,
const void *  buffer,
size_t  buflen 
)