SphinxBase
5prealpha
|
Cross platform binary IO to process files in sphinx3 format. More...
#include <stdio.h>
#include <stdarg.h>
#include <sphinxbase/sphinxbase_export.h>
#include <sphinxbase/prim_type.h>
#include <sphinxbase/byteorder.h>
Go to the source code of this file.
Macros | |
#define | BYTE_ORDER_MAGIC (0x11223344) |
#define | REVERSE_SENSE_SWAP_INT16(x) |
"reversed senses" SWAP, ARCHAN: This is still incorporated in Sphinx 3 because lm3g2dmp used it. More... | |
#define | REVERSE_SENSE_SWAP_INT32(x) |
Functions | |
SPHINXBASE_EXPORT int32 | bio_readhdr (FILE *fp, char ***name, char ***val, int32 *swap) |
Read binary file format header: has the following format. More... | |
SPHINXBASE_EXPORT int32 | bio_writehdr_version (FILE *fp, char *version) |
Write a simple binary file header, containing only the version string. More... | |
SPHINXBASE_EXPORT int32 | bio_writehdr (FILE *fp,...) |
Write a simple binary file header with only byte order magic word. More... | |
SPHINXBASE_EXPORT void | bio_hdrarg_free (char **name, char **val) |
Free name and value strings previously allocated and returned by bio_readhdr. More... | |
SPHINXBASE_EXPORT int32 | bio_fread (void *buf, int32 el_sz, int32 n_el, FILE *fp, int32 swap, uint32 *chksum) |
Like fread but perform byteswapping and accumulate checksum (the 2 extra arguments). More... | |
SPHINXBASE_EXPORT int32 | bio_fwrite (const void *buf, int32 el_sz, int32 n_el, FILE *fp, int32 swap, uint32 *chksum) |
Like fwrite but perform byteswapping and accumulate checksum (the 2 extra arguments). More... | |
SPHINXBASE_EXPORT int32 | bio_fread_1d (void **buf, size_t el_sz, uint32 *n_el, FILE *fp, int32 sw, uint32 *ck) |
Read a 1-d array (fashioned after fread): More... | |
SPHINXBASE_EXPORT int32 | bio_fread_2d (void ***arr, size_t e_sz, uint32 *d1, uint32 *d2, FILE *fp, uint32 swap, uint32 *chksum) |
Read a 2-d matrix: More... | |
SPHINXBASE_EXPORT int32 | bio_fread_3d (void ****arr, size_t e_sz, uint32 *d1, uint32 *d2, uint32 *d3, FILE *fp, uint32 swap, uint32 *chksum) |
Read a 3-d array (set of matrices) More... | |
SPHINXBASE_EXPORT void | bio_verify_chksum (FILE *fp, int32 byteswap, uint32 chksum) |
Read and verify checksum at the end of binary file. More... | |
SPHINXBASE_EXPORT int | bio_fwrite_1d (void *arr, size_t e_sz, uint32 d1, FILE *fp, uint32 *chksum) |
Write a 1-d array. More... | |
SPHINXBASE_EXPORT int | bio_fwrite_3d (void ***arr, size_t e_sz, uint32 d1, uint32 d2, uint32 d3, FILE *fp, uint32 *chksum) |
Write a 3-d array (set of matrices). More... | |
SPHINXBASE_EXPORT int16 * | bio_read_wavfile (char const *directory, char const *filename, char const *extension, int32 header, int32 endian, size_t *nsamps) |
Read raw data from the wav file. More... | |
Cross platform binary IO to process files in sphinx3 format.
Definition in file bio.h.
#define REVERSE_SENSE_SWAP_INT16 | ( | x | ) |
SPHINXBASE_EXPORT int32 bio_fread | ( | void * | buf, |
int32 | el_sz, | ||
int32 | n_el, | ||
FILE * | fp, | ||
int32 | swap, | ||
uint32 * | chksum | ||
) |
Like fread but perform byteswapping and accumulate checksum (the 2 extra arguments).
buf | In: buffer to write |
el_sz | In: element size |
n_el | In: number of elements |
fp | In: An input file pointer |
swap | In: Byteswap iff (swap != 0) |
chksum | In/Out: Accumulated checksum |
Definition at line 326 of file bio.c.
Referenced by bio_fread_1d(), bio_fread_2d(), bio_fread_3d(), and logmath_read().
SPHINXBASE_EXPORT int32 bio_fread_1d | ( | void ** | buf, |
size_t | el_sz, | ||
uint32 * | n_el, | ||
FILE * | fp, | ||
int32 | sw, | ||
uint32 * | ck | ||
) |
Read a 1-d array (fashioned after fread):
Byteswapping and checksum accumulation performed as necessary. Fails fatally if expected data not read.
buf | Out: contains array data; allocated by this function; can be freed using ckd_free |
el_sz | In: Array element size |
n_el | Out: Number of array elements allocated/read |
fp | In: File to read |
sw | In: Byteswap iff (swap != 0) |
ck | In/Out: Accumulated checksum |
Definition at line 364 of file bio.c.
References bio_fread(), ckd_calloc, and E_FATAL.
Referenced by bio_fread_2d(), and bio_fread_3d().
SPHINXBASE_EXPORT int32 bio_fread_2d | ( | void *** | arr, |
size_t | e_sz, | ||
uint32 * | d1, | ||
uint32 * | d2, | ||
FILE * | fp, | ||
uint32 | swap, | ||
uint32 * | chksum | ||
) |
Read a 2-d matrix:
Byteswapping and checksum accumulation performed as necessary. Fails fatally if expected data not read.
Definition at line 384 of file bio.c.
References bio_fread(), bio_fread_1d(), ckd_alloc_2d_ptr, and E_ERROR_SYSTEM.
SPHINXBASE_EXPORT int32 bio_fread_3d | ( | void **** | arr, |
size_t | e_sz, | ||
uint32 * | d1, | ||
uint32 * | d2, | ||
uint32 * | d3, | ||
FILE * | fp, | ||
uint32 | swap, | ||
uint32 * | chksum | ||
) |
Read a 3-d array (set of matrices)
Byteswapping and checksum accumulation performed as necessary. Fails fatally if expected data not read.
Definition at line 430 of file bio.c.
References bio_fread(), bio_fread_1d(), ckd_alloc_3d_ptr, and E_ERROR_SYSTEM.
Referenced by feat_read_lda().
SPHINXBASE_EXPORT int32 bio_fwrite | ( | const void * | buf, |
int32 | el_sz, | ||
int32 | n_el, | ||
FILE * | fp, | ||
int32 | swap, | ||
uint32 * | chksum | ||
) |
Like fwrite but perform byteswapping and accumulate checksum (the 2 extra arguments).
buf | In: buffer to write |
el_sz | In: element size |
n_el | In: number of elements |
fp | In: An input file pointer |
swap | In: Byteswap iff (swap != 0) |
chksum | In/Out: Accumulated checksum |
Definition at line 342 of file bio.c.
References ckd_calloc, and ckd_free().
Referenced by bio_fwrite_1d(), bio_fwrite_3d(), and logmath_write().
SPHINXBASE_EXPORT int bio_fwrite_1d | ( | void * | arr, |
size_t | e_sz, | ||
uint32 | d1, | ||
FILE * | fp, | ||
uint32 * | chksum | ||
) |
Write a 1-d array.
Checksum accumulation performed as necessary.
arr | In: Data to write |
e_sz | In: Size of the elements in bytes |
d1 | In: First dimension |
fp | In: File to write to |
chksum | In/Out: Checksum accumulator |
Definition at line 558 of file bio.c.
References bio_fwrite(), and E_ERROR_SYSTEM.
Referenced by bio_fwrite_3d().
SPHINXBASE_EXPORT int bio_fwrite_3d | ( | void *** | arr, |
size_t | e_sz, | ||
uint32 | d1, | ||
uint32 | d2, | ||
uint32 | d3, | ||
FILE * | fp, | ||
uint32 * | chksum | ||
) |
Write a 3-d array (set of matrices).
Checksum accumulation performed as necessary.
arr | In: Data to write |
e_sz | In: Size of the elements in bytes |
d1 | In: First dimension |
d2 | In: Second dimension |
d3 | In: Third dimension |
fp | In: File to write to |
chksum | In/Out: Checksum accumulator |
Definition at line 507 of file bio.c.
References bio_fwrite(), bio_fwrite_1d(), and E_ERROR_SYSTEM.
SPHINXBASE_EXPORT void bio_hdrarg_free | ( | char ** | name, |
char ** | val | ||
) |
Free name and value strings previously allocated and returned by bio_readhdr.
name | In: Array previously returned by bio_readhdr |
val | In: Array previously returned by bio_readhdr |
Definition at line 121 of file bio.c.
References ckd_free().
Referenced by bio_readhdr(), feat_read_lda(), and logmath_read().
SPHINXBASE_EXPORT int16* bio_read_wavfile | ( | char const * | directory, |
char const * | filename, | ||
char const * | extension, | ||
int32 | header, | ||
int32 | endian, | ||
size_t * | nsamps | ||
) |
Read raw data from the wav file.
directory | In: the folder where the file is located |
filename | In: the name of the file |
extension | In: file extension |
header | In: the size of the header to skip usually 44 bytes |
endian | In: endian of the data |
nsamps | Out: number of samples read |
Definition at line 592 of file bio.c.
References ckd_calloc, ckd_free(), E_ERROR_SYSTEM, and E_FATAL_SYSTEM.
SPHINXBASE_EXPORT int32 bio_readhdr | ( | FILE * | fp, |
char *** | name, | ||
char *** | val, | ||
int32 * | swap | ||
) |
Read binary file format header: has the following format.
s3 <argument-name> <argument-value> <argument-name> <argument-value> ... endhdr 4-byte byte-order word used to find file byte ordering relative to host machine.
Lines beginning with # are ignored. Memory for name and val allocated by this function; use bio_hdrarg_free to free them.
fp | In: File to read |
name | Out: array of argument name strings read |
val | Out: corresponding value strings read |
swap | Out: file needs byteswapping iff (*swap) |
Definition at line 187 of file bio.c.
References bio_hdrarg_free(), ckd_calloc, ckd_salloc, and E_ERROR.
Referenced by feat_read_lda(), and logmath_read().
SPHINXBASE_EXPORT void bio_verify_chksum | ( | FILE * | fp, |
int32 | byteswap, | ||
uint32 | chksum | ||
) |
Read and verify checksum at the end of binary file.
Fails fatally if there is a mismatch.
fp | In: File to read |
byteswap | In: Byteswap iff (swap != 0) |
chksum | In: Value to compare with checksum in file |
Definition at line 492 of file bio.c.
References E_FATAL.
Referenced by logmath_read().
SPHINXBASE_EXPORT int32 bio_writehdr | ( | FILE * | fp, |
... | |||
) |
SPHINXBASE_EXPORT int32 bio_writehdr_version | ( | FILE * | fp, |
char * | version | ||
) |