|
SphinxBase
0.6
|
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,...) |
| 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 (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 int16 * | bio_read_wavfile (char const *directory, char const *filename, char const *extension, int32 header, int32 endian, int32 *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).
But unlike fread, returns -1 if required number of elements (n_el) not read; also, no byteswapping or checksum accumulation is performed in that case.
| 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. Return value: number of array elements allocated and read; -1 if error.
| 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. Return value: number of array elements allocated and read; -1 if error.
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. Return value: number of array elements allocated and read; -1 if error.
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 | ( | 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).
| 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 logmath_write().
| 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, | ||
| int32 * | nsamps | ||
| ) |
Read raw data from the wav file.
| directory | the folder where the file is located |
| filename | the name of the file |
| extension | file extension |
| header | the size of the header to skip usually 44 bytes. |
| endian | Endian of the data |
| nsamps | number of samples read |
Definition at line 507 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_version | ( | FILE * | fp, |
| char * | version | ||
| ) |