37
37
#ifndef SPEEX_HEADER_H
38
38
#define SPEEX_HEADER_H
40
#include "speex/speex_types.h"
48
#define SPEEX_HEADER_STRING_LENGTH 8
46
50
/** Maximum number of characters for encoding the Speex version number in the header */
47
51
#define SPEEX_HEADER_VERSION_LENGTH 20
49
53
/** Speex header info for file-based formats */
50
54
typedef struct SpeexHeader {
51
char speex_string[8]; /**< Identifies a Speex bit-stream, always set to "Speex " */
52
char speex_version[SPEEX_HEADER_VERSION_LENGTH]; /**< Speex version */
53
int speex_version_id; /**< Version for Speex (for checking compatibility) */
54
int header_size; /**< Total size of the header ( sizeof(SpeexHeader) ) */
55
int rate; /**< Sampling rate used */
56
int mode; /**< Mode used (0 for narrowband, 1 for wideband) */
57
int mode_bitstream_version; /**< Version ID of the bit-stream */
58
int nb_channels; /**< Number of channels encoded */
59
int bitrate; /**< Bit-rate used */
60
int frame_size; /**< Size of frames */
61
int vbr; /**< 1 for a VBR encoding, 0 otherwise */
62
int frames_per_packet; /**< Number of frames stored per Ogg packet */
63
int extra_headers; /**< Number of additional headers after the comments */
64
int reserved1; /**< Reserved for future use, must be zero */
65
int reserved2; /**< Reserved for future use, must be zero */
55
char speex_string[SPEEX_HEADER_STRING_LENGTH]; /**< Identifies a Speex bit-stream, always set to "Speex " */
56
char speex_version[SPEEX_HEADER_VERSION_LENGTH]; /**< Speex version */
57
spx_int32_t speex_version_id; /**< Version for Speex (for checking compatibility) */
58
spx_int32_t header_size; /**< Total size of the header ( sizeof(SpeexHeader) ) */
59
spx_int32_t rate; /**< Sampling rate used */
60
spx_int32_t mode; /**< Mode used (0 for narrowband, 1 for wideband) */
61
spx_int32_t mode_bitstream_version; /**< Version ID of the bit-stream */
62
spx_int32_t nb_channels; /**< Number of channels encoded */
63
spx_int32_t bitrate; /**< Bit-rate used */
64
spx_int32_t frame_size; /**< Size of frames */
65
spx_int32_t vbr; /**< 1 for a VBR encoding, 0 otherwise */
66
spx_int32_t frames_per_packet; /**< Number of frames stored per Ogg packet */
67
spx_int32_t extra_headers; /**< Number of additional headers after the comments */
68
spx_int32_t reserved1; /**< Reserved for future use, must be zero */
69
spx_int32_t reserved2; /**< Reserved for future use, must be zero */
68
72
/** Initializes a SpeexHeader using basic information */