37 #define AU_UNKNOWN_SIZE ((uint32_t)(~0))
39 #define AU_HEADER_SIZE (24+8)
62 if (p->
buf[0] ==
'.' && p->
buf[1] ==
's' &&
63 p->
buf[2] ==
'n' && p->
buf[3] ==
'd')
69 #define BLOCK_SIZE 1024
73 int size, data_size = 0;
76 unsigned int id, channels, rate;
82 if (tag !=
MKTAG(
'.',
's',
'n',
'd'))
110 if (
id ==
MKBETAG(
'7',
'2',
'6',
'2')) {
113 const uint8_t bpcss[] = {4, 0, 3, 5};
115 bps = bpcss[
id - 23];
122 if (channels == 0 || channels >= INT_MAX / (
BLOCK_SIZE * bps >> 3)) {
127 if (rate == 0 || rate > INT_MAX) {
155 .read_probe = au_probe,
156 .read_header = au_read_header,
201 if (s->
pb->
seekable && file_size < INT32_MAX) {
215 .mime_type =
"audio/basic",
219 .write_header = au_write_header,
221 .write_trailer = au_write_trailer,