27 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0
30 17, 23, 32, 36, 40, 46, 50, 58, 60, 5, 5, 0, 0, 0, 0, 0
43 if(!data)
return data;
64 const uint8_t *speech_data;
93 for (frames = 1; frames < len && (buf[frames] & 0x80); frames++) ;
95 if (1 + frames >= len) {
101 speech_data = buf + 1 + frames;
111 for (i = 0; i < frames; i++) {
112 uint8_t toc = buf[1 + i];
113 int frame_size = frame_sizes[(toc >> 3) & 0x0f];
115 if (speech_data + frame_size > buf + len) {
119 memset(ptr, 0, pkt->
data + pkt->
size - ptr);
128 memcpy(ptr, speech_data, frame_size);
129 speech_data += frame_size;
133 if (speech_data < buf + len) {
136 memset(ptr, 0, pkt->
data + pkt->
size - ptr);
144 char *attr,
char *value)
150 if (!strcmp(value,
"")) {
152 "nonstandard empty value\n", attr);
155 if (!strcmp(attr,
"octet-align"))
157 else if (!strcmp(attr,
"crc"))
158 data->
crc = atoi(value);
159 else if (!strcmp(attr,
"interleaving"))
161 else if (!strcmp(attr,
"channels"))