chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sources, by analogy with sinks
[disorder]
/
server
/
normalize.c
diff --git
a/server/normalize.c
b/server/normalize.c
index 2a28c1f5c5778db3a147dfe6757fcb48159519dd..0f97a2ff024a9d3360526af306828b3ad7767630 100644
(file)
--- a/
server/normalize.c
+++ b/
server/normalize.c
@@
-71,16
+71,16
@@
static void copy(int infd, int outfd, size_t n) {
if(errno == EINTR)
continue;
else
if(errno == EINTR)
continue;
else
- fatal(errno, "read error");
+
disorder_
fatal(errno, "read error");
}
if(readden == 0)
}
if(readden == 0)
- fatal(0, "unexpected EOF");
+
disorder_
fatal(0, "unexpected EOF");
n -= readden;
written = 0;
while(written < readden) {
const ssize_t w = write(outfd, buffer + written, readden - written);
if(w < 0)
n -= readden;
written = 0;
while(written < readden) {
const ssize_t w = write(outfd, buffer + written, readden - written);
if(w < 0)
- fatal(errno, "write error");
+
disorder_
fatal(errno, "write error");
written += w;
}
}
written += w;
}
}
@@
-105,7
+105,7
@@
static void soxargs(const char ***pp, char **qq,
case 16: *(*pp)++ = "-w"; break;
case 32: *(*pp)++ = "-l"; break;
case 64: *(*pp)++ = "-d"; break;
case 16: *(*pp)++ = "-w"; break;
case 32: *(*pp)++ = "-l"; break;
case 64: *(*pp)++ = "-d"; break;
- default: fatal(0, "cannot handle sample size %d", header->bits);
+ default:
disorder_
fatal(0, "cannot handle sample size %d", header->bits);
}
break;
case 1:
}
break;
case 1:
@@
-116,11
+116,11
@@
static void soxargs(const char ***pp, char **qq,
case ENDIAN_LITTLE: *(*pp)++ = "-L"; break;
}
if(header->bits % 8)
case ENDIAN_LITTLE: *(*pp)++ = "-L"; break;
}
if(header->bits % 8)
- fatal(0, "cannot handle sample size %d", header->bits);
+
disorder_
fatal(0, "cannot handle sample size %d", header->bits);
*qq += sprintf((char *)(*(*pp)++ = *qq), "-%d", header->bits / 8) + 1;
break;
default:
*qq += sprintf((char *)(*(*pp)++ = *qq), "-%d", header->bits / 8) + 1;
break;
default:
- fatal(0, "unknown sox_generation %ld", config->sox_generation);
+
disorder_
fatal(0, "unknown sox_generation %ld", config->sox_generation);
}
}
#else
}
}
#else
@@
-150,7
+150,7
@@
int main(int argc, char attribute((unused)) **argv) {
set_progname(argv);
if(!setlocale(LC_CTYPE, ""))
set_progname(argv);
if(!setlocale(LC_CTYPE, ""))
- fatal(errno, "error calling setlocale");
+
disorder_
fatal(errno, "error calling setlocale");
while((n = getopt_long(argc, argv, "hVc:dDSs", options, 0)) >= 0) {
switch(n) {
case 'h': help();
while((n = getopt_long(argc, argv, "hVc:dDSs", options, 0)) >= 0) {
switch(n) {
case 'h': help();
@@
-160,11
+160,11
@@
int main(int argc, char attribute((unused)) **argv) {
case 'D': debugging = 0; break;
case 'S': logsyslog = 0; break;
case 's': logsyslog = 1; break;
case 'D': debugging = 0; break;
case 'S': logsyslog = 0; break;
case 's': logsyslog = 1; break;
- default: fatal(0, "invalid option");
+ default:
disorder_
fatal(0, "invalid option");
}
}
if(config_read(1, NULL))
}
}
if(config_read(1, NULL))
- fatal(0, "cannot read configuration");
+
disorder_
fatal(0, "cannot read configuration");
if(logsyslog) {
openlog(progname, LOG_PID, LOG_DAEMON);
log_default = &log_syslog;
if(logsyslog) {
openlog(progname, LOG_PID, LOG_DAEMON);
log_default = &log_syslog;
@@
-178,26
+178,28
@@
int main(int argc, char attribute((unused)) **argv) {
if(r < 0) {
if(errno != EINTR)
if(r < 0) {
if(errno != EINTR)
- fatal(errno, "error reading header");
+
disorder_
fatal(errno, "error reading header");
} else if(r == 0) {
if(n)
} else if(r == 0) {
if(n)
- fatal(0, "EOF reading header");
+
disorder_
fatal(0, "EOF reading header");
break;
} else
n += r;
}
if(!n)
break;
break;
} else
n += r;
}
if(!n)
break;
+ D(("NEW HEADER: %"PRIu32" bytes %"PRIu32"Hz %"PRIu8" channels %"PRIu8" bits %"PRIu8" endian",
+ header.nbytes, header.rate, header.channels, header.bits, header.endian));
/* Sanity check the header */
if(header.rate < 100 || header.rate > 1000000)
/* Sanity check the header */
if(header.rate < 100 || header.rate > 1000000)
- fatal(0, "implausible rate %"PRId32"Hz (%#"PRIx32")",
- header.rate, header.rate);
+
disorder_
fatal(0, "implausible rate %"PRId32"Hz (%#"PRIx32")",
+
header.rate, header.rate);
if(header.channels < 1 || header.channels > 2)
if(header.channels < 1 || header.channels > 2)
- fatal(0, "unsupported channel count %d", header.channels);
+
disorder_
fatal(0, "unsupported channel count %d", header.channels);
if(header.bits % 8 || !header.bits || header.bits > 64)
if(header.bits % 8 || !header.bits || header.bits > 64)
- fatal(0, "unsupported sample size %d bits", header.bits);
+
disorder_
fatal(0, "unsupported sample size %d bits", header.bits);
if(header.endian != ENDIAN_BIG && header.endian != ENDIAN_LITTLE)
if(header.endian != ENDIAN_BIG && header.endian != ENDIAN_LITTLE)
- fatal(0, "unsupported byte order %d", header.endian);
+
disorder_
fatal(0, "unsupported byte order %d", header.endian);
/* Skip empty chunks regardless of their alleged format */
if(header.nbytes == 0)
continue;
/* Skip empty chunks regardless of their alleged format */
if(header.nbytes == 0)
continue;
@@
-210,7
+212,8
@@
int main(int argc, char attribute((unused)) **argv) {
else {
/* If we have a resampler active already check it is suitable and destroy
* it if not */
else {
/* If we have a resampler active already check it is suitable and destroy
* it if not */
- if(!formats_equal(&header, &latest_format) && rs_in_use) {
+ if(rs_in_use) {
+ D(("call resample_close"));
resample_close(rs);
rs_in_use = 0;
}
resample_close(rs);
rs_in_use = 0;
}
@@
-227,6
+230,7
@@
int main(int argc, char attribute((unused)) **argv) {
config->sample_format.endian);*/
if(!rs_in_use) {
/* Create a suitable resampler. */
config->sample_format.endian);*/
if(!rs_in_use) {
/* Create a suitable resampler. */
+ D(("call resample_init"));
resample_init(rs,
header.bits,
header.channels,
resample_init(rs,
header.bits,
header.channels,
@@
-260,17
+264,20
@@
int main(int argc, char attribute((unused)) **argv) {
left -= r;
used += r;
//syslog(LOG_INFO, "read %zd bytes", r);
left -= r;
used += r;
//syslog(LOG_INFO, "read %zd bytes", r);
+ D(("read %zd bytes", r));
}
/*syslog(LOG_INFO, " in: %02x %02x %02x %02x",
(uint8_t)buffer[0],
(uint8_t)buffer[1],
(uint8_t)buffer[2],
(uint8_t)buffer[3]);*/
}
/*syslog(LOG_INFO, " in: %02x %02x %02x %02x",
(uint8_t)buffer[0],
(uint8_t)buffer[1],
(uint8_t)buffer[2],
(uint8_t)buffer[3]);*/
+ D(("calling resample_convert used=%zu !left=%d", used, !left));
const size_t consumed = resample_convert(rs,
(uint8_t *)buffer, used,
!left,
converted, 0);
//syslog(LOG_INFO, "used=%zu consumed=%zu", used, consumed);
const size_t consumed = resample_convert(rs,
(uint8_t *)buffer, used,
!left,
converted, 0);
//syslog(LOG_INFO, "used=%zu consumed=%zu", used, consumed);
+ D(("consumed=%zu", consumed));
memmove(buffer, buffer + consumed, used - consumed);
used -= consumed;
}
memmove(buffer, buffer + consumed, used - consumed);
used -= consumed;
}
@@
-282,9
+289,9
@@
int main(int argc, char attribute((unused)) **argv) {
/* There's a running converter, stop it */
xclose(outfd);
if(waitpid(pid, &n, 0) < 0)
/* There's a running converter, stop it */
xclose(outfd);
if(waitpid(pid, &n, 0) < 0)
- fatal(errno, "error calling waitpid");
+
disorder_
fatal(errno, "error calling waitpid");
if(n)
if(n)
- fatal(0, "sox failed: %#x", n);
+
disorder_
fatal(0, "sox failed: %#x", n);
pid = -1;
outfd = -1;
}
pid = -1;
outfd = -1;
}
@@
-308,7
+315,7
@@
int main(int argc, char attribute((unused)) **argv) {
xclose(p[0]);
xclose(p[1]);
execvp(av[0], (char **)av);
xclose(p[0]);
xclose(p[1]);
execvp(av[0], (char **)av);
- fatal(errno, "sox");
+
disorder_
fatal(errno, "sox");
}
xclose(p[0]);
outfd = p[1];
}
xclose(p[0]);
outfd = p[1];
@@
-327,9
+334,9
@@
int main(int argc, char attribute((unused)) **argv) {
if(pid != -1) {
/* There's still a converter running */
if(waitpid(pid, &n, 0) < 0)
if(pid != -1) {
/* There's still a converter running */
if(waitpid(pid, &n, 0) < 0)
- fatal(errno, "error calling waitpid");
+
disorder_
fatal(errno, "error calling waitpid");
if(n)
if(n)
- fatal(0, "sox failed: %#x", n);
+
disorder_
fatal(0, "sox failed: %#x", n);
}
if(rs_in_use)
resample_close(rs);
}
if(rs_in_use)
resample_close(rs);