Speex  1.2~beta4
speex_header.h
Go to the documentation of this file.
1 /* Copyright (C) 2002 Jean-Marc Valin */
6 /*
7  Redistribution and use in source and binary forms, with or without
8  modification, are permitted provided that the following conditions
9  are met:
10 
11  - Redistributions of source code must retain the above copyright
12  notice, this list of conditions and the following disclaimer.
13 
14  - Redistributions in binary form must reproduce the above copyright
15  notice, this list of conditions and the following disclaimer in the
16  documentation and/or other materials provided with the distribution.
17 
18  - Neither the name of the Xiph.org Foundation nor the names of its
19  contributors may be used to endorse or promote products derived from
20  this software without specific prior written permission.
21 
22  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
26  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
29  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
30  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
31  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 
34 */
35 
36 
37 #ifndef SPEEX_HEADER_H
38 #define SPEEX_HEADER_H
39 
44 #include "speex/speex_types.h"
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
50 struct SpeexMode;
51 
53 #define SPEEX_HEADER_STRING_LENGTH 8
54 
56 #define SPEEX_HEADER_VERSION_LENGTH 20
57 
59 typedef struct SpeexHeader {
62  spx_int32_t speex_version_id;
63  spx_int32_t header_size;
64  spx_int32_t rate;
65  spx_int32_t mode;
66  spx_int32_t mode_bitstream_version;
67  spx_int32_t nb_channels;
68  spx_int32_t bitrate;
69  spx_int32_t frame_size;
70  spx_int32_t vbr;
71  spx_int32_t frames_per_packet;
72  spx_int32_t extra_headers;
73  spx_int32_t reserved1;
74  spx_int32_t reserved2;
75 } SpeexHeader;
76 
78 void speex_init_header(SpeexHeader *header, int rate, int nb_channels, const struct SpeexMode *m);
79 
81 char *speex_header_to_packet(SpeexHeader *header, int *size);
82 
84 SpeexHeader *speex_packet_to_header(char *packet, int size);
85 
87 void speex_header_free(void *ptr);
88 
89 #ifdef __cplusplus
90 }
91 #endif
92 
94 #endif
speex_header_to_packet
char * speex_header_to_packet(SpeexHeader *header, int *size)
SpeexHeader::vbr
spx_int32_t vbr
Definition: speex_header.h:70
SpeexHeader::speex_version_id
spx_int32_t speex_version_id
Definition: speex_header.h:62
SpeexHeader::frame_size
spx_int32_t frame_size
Definition: speex_header.h:69
speex_header_free
void speex_header_free(void *ptr)
SPEEX_HEADER_STRING_LENGTH
#define SPEEX_HEADER_STRING_LENGTH
Definition: speex_header.h:53
speex_types.h
Speex types.
SpeexHeader::mode
spx_int32_t mode
Definition: speex_header.h:65
SPEEX_HEADER_VERSION_LENGTH
#define SPEEX_HEADER_VERSION_LENGTH
Definition: speex_header.h:56
SpeexHeader::frames_per_packet
spx_int32_t frames_per_packet
Definition: speex_header.h:71
SpeexHeader::bitrate
spx_int32_t bitrate
Definition: speex_header.h:68
speex_packet_to_header
SpeexHeader * speex_packet_to_header(char *packet, int size)
SpeexHeader
Definition: speex_header.h:59
SpeexHeader::reserved2
spx_int32_t reserved2
Definition: speex_header.h:74
speex_init_header
void speex_init_header(SpeexHeader *header, int rate, int nb_channels, const struct SpeexMode *m)
SpeexHeader::reserved1
spx_int32_t reserved1
Definition: speex_header.h:73
SpeexHeader
struct SpeexHeader SpeexHeader
SpeexHeader::extra_headers
spx_int32_t extra_headers
Definition: speex_header.h:72
SpeexHeader::nb_channels
spx_int32_t nb_channels
Definition: speex_header.h:67
SpeexHeader::mode_bitstream_version
spx_int32_t mode_bitstream_version
Definition: speex_header.h:66
SpeexHeader::speex_version
char speex_version[SPEEX_HEADER_VERSION_LENGTH]
Definition: speex_header.h:61
SpeexHeader::header_size
spx_int32_t header_size
Definition: speex_header.h:63
SpeexHeader::speex_string
char speex_string[SPEEX_HEADER_STRING_LENGTH]
Definition: speex_header.h:60
SpeexHeader::rate
spx_int32_t rate
Definition: speex_header.h:64
SpeexMode
Definition: speex.h:249