fix warnings on some systems / format specifier mismatch

Instead of %ld or %lx, use %jd or %jx
for off_t (after casting to intmax_t)

Change-Id: I4cd1831816820d2862b383ff8782e548b2fca294
This commit is contained in:
Christian Soffke 2024-12-05 00:07:12 +01:00
parent 93ecb97693
commit 87452d775e
6 changed files with 70 additions and 60 deletions

View file

@ -231,13 +231,13 @@ static void init_mad(void)
frame.sbsample = &sbsample; frame.sbsample = &sbsample;
/* We do this so libmad doesn't try to call codec_calloc(). This needs to /* We do this so libmad doesn't try to call codec_calloc(). This needs to
* be called before mad_stream_init(), mad_frame_inti() and * be called before mad_stream_init(), mad_frame_inti() and
* mad_synth_init(). */ * mad_synth_init(). */
frame.overlap = &mad_frame_overlap; frame.overlap = &mad_frame_overlap;
stream.main_data = &mad_main_data; stream.main_data = &mad_main_data;
/* Call mad initialization. Those will zero the arrays frame.overlap, /* Call mad initialization. Those will zero the arrays frame.overlap,
* frame.sbsample and frame.sbsample_prev. Therefore there is no need to * frame.sbsample and frame.sbsample_prev. Therefore there is no need to
* zero them here. */ * zero them here. */
mad_stream_init(&stream); mad_stream_init(&stream);
mad_frame_init(&frame); mad_frame_init(&frame);
@ -270,7 +270,7 @@ static int audio_sync(struct audio_thread_data *td,
time = INVALID_TIMESTAMP; time = INVALID_TIMESTAMP;
str = &tmp_str; str = &tmp_str;
str->id = audio_str.id; str->id = audio_str.id;
} }
str->hdr.pos = sd->sk.pos; str->hdr.pos = sd->sk.pos;
str->hdr.limit = sd->sk.pos + sd->sk.len; str->hdr.limit = sd->sk.pos + sd->sk.len;
@ -282,8 +282,9 @@ static int audio_sync(struct audio_thread_data *td,
{ {
if (audio_buffer(str, STREAM_PM_RANDOM_ACCESS) == STREAM_DATA_END) if (audio_buffer(str, STREAM_PM_RANDOM_ACCESS) == STREAM_DATA_END)
{ {
DEBUGF("audio_sync:STR_DATA_END\n aqu:%ld swl:%ld swr:%ld\n", DEBUGF("audio_sync:STR_DATA_END\n aqu:%ld swl:%jd swr:%jd\n",
(long)audio_queue.used, str->hdr.win_left, str->hdr.win_right); (long)audio_queue.used, (intmax_t) str->hdr.win_left,
(intmax_t) str->hdr.win_right);
if (audio_queue.used <= MAD_BUFFER_GUARD) if (audio_queue.used <= MAD_BUFFER_GUARD)
goto sync_data_end; goto sync_data_end;
} }
@ -401,7 +402,7 @@ static void audio_thread_msg(struct audio_thread_data *td)
td->state = TSTATE_EOS; td->state = TSTATE_EOS;
reply = true; reply = true;
break; break;
case STREAM_RESET: case STREAM_RESET:
if (td->state == TSTATE_DATA) if (td->state == TSTATE_DATA)

View file

@ -79,10 +79,10 @@ static int disk_buf_on_data_notify(struct stream_hdr *sh)
{ {
/* It was - don't register */ /* It was - don't register */
DEBUGF("(was ready)\n" DEBUGF("(was ready)\n"
" swl:%lu swr:%lu\n" " swl:%jd swr:%jd\n"
" dwl:%lu dwr:%lu\n", " dwl:%jd dwr:%jd\n",
sh->win_left, sh->win_right, (intmax_t) sh->win_left, (intmax_t) sh->win_right,
disk_buf.win_left, disk_buf.win_right); (intmax_t) disk_buf.win_left, (intmax_t) disk_buf.win_right);
/* Be sure it's not listed though if multiple requests were made */ /* Be sure it's not listed though if multiple requests were made */
list_remove_item(nf_list, sh); list_remove_item(nf_list, sh);
return DISK_BUF_NOTIFY_OK; return DISK_BUF_NOTIFY_OK;
@ -96,10 +96,10 @@ static int disk_buf_on_data_notify(struct stream_hdr *sh)
disk_buf.state = TSTATE_BUFFERING; disk_buf.state = TSTATE_BUFFERING;
list_add_item(nf_list, sh); list_add_item(nf_list, sh);
DEBUGF("(registered)\n" DEBUGF("(registered)\n"
" swl:%lu swr:%lu\n" " swl:%jd swr:%jd\n"
" dwl:%lu dwr:%lu\n", " dwl:%jd dwr:%jd\n",
sh->win_left, sh->win_right, (intmax_t) sh->win_left, (intmax_t) sh->win_right,
disk_buf.win_left, disk_buf.win_right); (intmax_t) disk_buf.win_left, (intmax_t) disk_buf.win_right);
return DISK_BUF_NOTIFY_REGISTERED; return DISK_BUF_NOTIFY_REGISTERED;
} }
} }
@ -307,7 +307,7 @@ static void disk_buf_on_reset(ssize_t pos)
{ {
if (--tag, --page < 0) if (--tag, --page < 0)
page = disk_buf.pgcount - 1; page = disk_buf.pgcount - 1;
if (disk_buf.cache[page] != tag) if (disk_buf.cache[page] != tag)
break; break;
@ -347,8 +347,8 @@ static void disk_buf_on_reset(ssize_t pos)
disk_buf.tail = disk_buf.start + MAP_OFFSET_TO_BUFFER(anchor); disk_buf.tail = disk_buf.start + MAP_OFFSET_TO_BUFFER(anchor);
DEBUGF("disk buf reset\n" DEBUGF("disk buf reset\n"
" dwl:%ld dwr:%ld\n", " dwl:%jd dwr:%jd\n",
disk_buf.win_left, disk_buf.win_right); (intmax_t) disk_buf.win_left, (intmax_t) disk_buf.win_right);
/* Next read position is at right edge */ /* Next read position is at right edge */
rb->lseek(disk_buf.in_file, disk_buf.win_right, SEEK_SET); rb->lseek(disk_buf.in_file, disk_buf.win_right, SEEK_SET);
@ -466,7 +466,7 @@ static void disk_buf_thread(void)
disk_buf.state = TSTATE_EOS; disk_buf.state = TSTATE_EOS;
disk_buf.status = STREAM_STOPPED; disk_buf.status = STREAM_STOPPED;
while (1) while (1)
{ {
if (disk_buf.state != TSTATE_EOS) if (disk_buf.state != TSTATE_EOS)
{ {
@ -591,7 +591,7 @@ static ssize_t disk_buf_probe(off_t start, size_t length, void **p)
rng.tag_start = tag; rng.tag_start = tag;
rng.tag_end = tag_end; rng.tag_end = tag_end;
rng.pg_start = page; rng.pg_start = page;
result = rb->queue_send(disk_buf.q, DISK_BUF_CACHE_RANGE, result = rb->queue_send(disk_buf.q, DISK_BUF_CACHE_RANGE,
(intptr_t)&rng); (intptr_t)&rng);
@ -786,12 +786,14 @@ ssize_t disk_buf_prepare_streaming(off_t pos, size_t len)
else if (pos > disk_buf.filesize) else if (pos > disk_buf.filesize)
pos = disk_buf.filesize; pos = disk_buf.filesize;
DEBUGF("prepare streaming:\n pos:%ld len:%lu\n", pos, (unsigned long)len); DEBUGF("prepare streaming:\n pos:%jd len:%lu\n",
(intmax_t) pos, (unsigned long)len);
pos = disk_buf_lseek(pos, SEEK_SET); pos = disk_buf_lseek(pos, SEEK_SET);
len = disk_buf_probe(pos, len, NULL); len = disk_buf_probe(pos, len, NULL);
DEBUGF(" probe done: pos:%ld len:%lu\n", pos, (unsigned long)len); DEBUGF(" probe done: pos:%jd len:%lu\n",
(intmax_t) pos, (unsigned long)len);
len = disk_buf_send_msg(STREAM_RESET, pos); len = disk_buf_send_msg(STREAM_RESET, pos);

View file

@ -434,7 +434,7 @@ static off_t mpeg_parser_seek_PTS(uint32_t time, unsigned id)
state = STATE2; /* Last scan was early */ state = STATE2; /* Last scan was early */
sk.dir = SSCAN_REVERSE; sk.dir = SSCAN_REVERSE;
DEBUGF(">> tl:%u t:%u ct:%u tr:%u\n pl:%ld pn:%ld pr:%ld\n", DEBUGF(">> tl:%u t:%u ct:%u tr:%u\n pl:%ld pn:%ld pr:%ld\n",
(unsigned)time_left, (unsigned)time, (unsigned)currpts, (unsigned)time_left, (unsigned)time, (unsigned)currpts,
(unsigned)time_right, (long)pos_left, (long)pos_new, (unsigned)time_right, (long)pos_left, (long)pos_new,
@ -495,7 +495,7 @@ static off_t mpeg_parser_seek_PTS(uint32_t time, unsigned id)
case STATE0: case STATE0:
/* Hardly likely except at very beginning - just do L->R scan /* Hardly likely except at very beginning - just do L->R scan
* to find something */ * to find something */
DEBUGF("!! no timestamp on first probe: %ld\n", sk.pos); DEBUGF("!! no timestamp on first probe: %jd\n", (intmax_t) sk.pos);
case STATE2: case STATE2:
case STATE3: case STATE3:
/* Could just be missing timestamps because the interval is /* Could just be missing timestamps because the interval is
@ -733,10 +733,10 @@ static int parse_demux(struct stream *str, enum stream_parse_mode type)
/* Problem? Meh...probably not but just a corrupted section. /* Problem? Meh...probably not but just a corrupted section.
* Try to resync the parser which will probably succeed. */ * Try to resync the parser which will probably succeed. */
DEBUGF("packet start code prefix not found: 0x%02x\n" DEBUGF("packet start code prefix not found: 0x%02x\n"
" wl:%lu wr:%lu\n" " wl:%jd wr:%jd\n"
" p:%p cp:%p cpe:%p\n" " p:%p cp:%p cpe:%p\n"
" dbs:%p dbe:%p dbt:%p\n", " dbs:%p dbe:%p dbt:%p\n",
str->id, str->hdr.win_left, str->hdr.win_right, str->id, (intmax_t) str->hdr.win_left, (intmax_t) str->hdr.win_right,
p, str->curr_packet, str->curr_packet_end, p, str->curr_packet, str->curr_packet_end,
disk_buf.start, disk_buf.end, disk_buf.tail); disk_buf.start, disk_buf.end, disk_buf.tail);
str->state = SSTATE_SYNC; str->state = SSTATE_SYNC;
@ -993,7 +993,7 @@ try_again:
if (mpeg_parser_scan_start_code(&sk, MPEG_START_GOP)) if (mpeg_parser_scan_start_code(&sk, MPEG_START_GOP))
{ {
DEBUGF("GOP found at: %ld\n", sk.pos); DEBUGF("GOP found at: %jd\n", (intmax_t) sk.pos);
unsigned id = mpeg_parser_scan_pes(&sk); unsigned id = mpeg_parser_scan_pes(&sk);
@ -1019,7 +1019,7 @@ try_again:
str_parser.parms.sd.sk.len = 1024*1024; str_parser.parms.sd.sk.len = 1024*1024;
str_parser.parms.sd.sk.dir = SSCAN_FORWARD; str_parser.parms.sd.sk.dir = SSCAN_FORWARD;
DEBUGF("thumb pos:%ld len:%ld\n", str_parser.parms.sd.sk.pos, DEBUGF("thumb pos:%jd len:%ld\n", (intmax_t) str_parser.parms.sd.sk.pos,
(long)str_parser.parms.sd.sk.len); (long)str_parser.parms.sd.sk.len);
result = str_send_msg(&video_str, STREAM_SYNC, result = str_send_msg(&video_str, STREAM_SYNC,
@ -1072,7 +1072,8 @@ void parser_prepare_streaming(void)
if (!stream_get_window(&sw)) if (!stream_get_window(&sw))
sw.left = sw.right = disk_buf.filesize; sw.left = sw.right = disk_buf.filesize;
DEBUGF(" swl:%ld swr:%ld\n", sw.left, sw.right); DEBUGF(" swl:%jd swr:%jd\n",
(intmax_t) sw.left, (intmax_t) sw.right);
if (sw.right > disk_buf.filesize - 4*MIN_BUFAHEAD) if (sw.right > disk_buf.filesize - 4*MIN_BUFAHEAD)
sw.right = disk_buf.filesize - 4*MIN_BUFAHEAD; sw.right = disk_buf.filesize - 4*MIN_BUFAHEAD;
@ -1094,7 +1095,7 @@ int parser_init_stream(void)
* should succeed if it really is a video-only stream */ * should succeed if it really is a video-only stream */
video_str.hdr.pos = 0; video_str.hdr.pos = 0;
video_str.hdr.limit = 256*1024; video_str.hdr.limit = 256*1024;
if (parse_demux(&video_str, STREAM_PM_RANDOM_ACCESS) == STREAM_OK) if (parse_demux(&video_str, STREAM_PM_RANDOM_ACCESS) == STREAM_OK)
{ {
/* Found a video packet - assume program stream */ /* Found a video packet - assume program stream */

View file

@ -393,7 +393,8 @@ static void save_bookmark(const char *fname, int wpm)
} }
rb->close(bookmark_fd); rb->close(bookmark_fd);
} }
rb->fdprintf(tmp_fd, "%ld %d %d %s\n", line_offs, word_num, wpm, fname); rb->fdprintf(tmp_fd, "%jd %d %d %s\n",
(intmax_t) line_offs, word_num, wpm, fname);
rb->close(tmp_fd); rb->close(tmp_fd);
rb->rename(BOOKMARK_FILE ".tmp", BOOKMARK_FILE); rb->rename(BOOKMARK_FILE ".tmp", BOOKMARK_FILE);
} }
@ -585,7 +586,8 @@ static int poll_input(int *wpm, long *clear, const char *fname, off_t file_size)
offs += 99 * SEEK_INTERVAL; offs += 99 * SEEK_INTERVAL;
else if(offs >= 10 * SEEK_INTERVAL) else if(offs >= 10 * SEEK_INTERVAL)
offs += 9 * SEEK_INTERVAL; offs += 9 * SEEK_INTERVAL;
rb->splashf(0, "%ld/%ld bytes", offs + base_offs, file_size); rb->splashf(0, "%jd/%jd bytes",
(intmax_t) (offs + base_offs), (intmax_t) file_size);
rb->sleep(HZ/20); rb->sleep(HZ/20);
} while(get_useraction() == FFWD && offs + base_offs < file_size && offs + base_offs >= 0); } while(get_useraction() == FFWD && offs + base_offs < file_size && offs + base_offs >= 0);
@ -614,7 +616,8 @@ static int poll_input(int *wpm, long *clear, const char *fname, off_t file_size)
offs -= 99 * SEEK_INTERVAL; offs -= 99 * SEEK_INTERVAL;
else if(offs <= -10 * SEEK_INTERVAL) else if(offs <= -10 * SEEK_INTERVAL)
offs -= 9 * SEEK_INTERVAL; offs -= 9 * SEEK_INTERVAL;
rb->splashf(0, "%ld/%ld bytes", offs + base_offs, file_size); rb->splashf(0, "%jd/%jd bytes",
(intmax_t) (offs + base_offs), (intmax_t) file_size);
rb->sleep(HZ/20); rb->sleep(HZ/20);
} while(get_useraction() == FFWD && offs + base_offs < file_size && offs + base_offs >= 0); } while(get_useraction() == FFWD && offs + base_offs < file_size && offs + base_offs >= 0);

View file

@ -218,7 +218,8 @@ void tv_convert_fpos(off_t fpos, struct tv_screen_pos *pos)
tv_seek_page(i, SEEK_SET); tv_seek_page(i, SEEK_SET);
while (tv_create_line_positions() && cur_pos.file_pos < fpos) while (tv_create_line_positions() && cur_pos.file_pos < fpos)
rb->splashf(0, "converting %ld%%...", 100 * cur_pos.file_pos / fpos); // XXX i18n rb->splashf(0, "converting %jd%%...",
(intmax_t) (100 * cur_pos.file_pos / fpos)); // XXX i18n
if (i < max_page) if (i < max_page)
cur_pos.page--; cur_pos.page--;
@ -239,7 +240,8 @@ static void tv_seek_to_bottom_line(void)
tv_seek_page(0, SEEK_END); tv_seek_page(0, SEEK_END);
while (tv_create_line_positions()) while (tv_create_line_positions())
rb->splashf(0, "loading %ld%%...", 100 * cur_pos.file_pos / total_size); // XXX i18n rb->splashf(0, "loading %jd%%...",
(intmax_t) (100 * cur_pos.file_pos / total_size)); // XXX i18n
cur_pos.line = lines_per_page - 1; cur_pos.line = lines_per_page - 1;
} }

View file

@ -81,12 +81,12 @@ enum codec_status codec_run(void)
return CODEC_ERROR; return CODEC_ERROR;
} }
DEBUGF("ADX: after init\n"); DEBUGF("ADX: after init\n");
/* init history */ /* init history */
ch1_1=ch1_2=ch2_1=ch2_2=0; ch1_1=ch1_2=ch2_1=ch2_2=0;
codec_set_replaygain(ci->id3); codec_set_replaygain(ci->id3);
/* Get header */ /* Get header */
DEBUGF("ADX: request initial buffer\n"); DEBUGF("ADX: request initial buffer\n");
ci->seek_buffer(0); ci->seek_buffer(0);
@ -98,10 +98,10 @@ enum codec_status codec_run(void)
DEBUGF("ADX: read size = %lx\n",(unsigned long)n); DEBUGF("ADX: read size = %lx\n",(unsigned long)n);
/* Get file header for starting offset, channel count */ /* Get file header for starting offset, channel count */
chanstart = ((buf[2] << 8) | buf[3]) + 4; chanstart = ((buf[2] << 8) | buf[3]) + 4;
channels = buf[7]; channels = buf[7];
/* useful for seeking and reporting current playback position */ /* useful for seeking and reporting current playback position */
avgbytespersec = ci->id3->frequency * 18 * channels / 32; avgbytespersec = ci->id3->frequency * 18 * channels / 32;
DEBUGF("avgbytespersec=%ld\n",(unsigned long)avgbytespersec); DEBUGF("avgbytespersec=%ld\n",(unsigned long)avgbytespersec);
@ -126,7 +126,7 @@ enum codec_status codec_run(void)
const int64_t b = (M_SQRT2*big28)-big28; const int64_t b = (M_SQRT2*big28)-big28;
int64_t c; int64_t c;
int64_t d; int64_t d;
fp_sincos((unsigned long)phasemultiple,&z); fp_sincos((unsigned long)phasemultiple,&z);
a = (M_SQRT2*big28) - (z >> 3); a = (M_SQRT2*big28) - (z >> 3);
@ -147,7 +147,7 @@ enum codec_status codec_run(void)
} }
/* Get loop data */ /* Get loop data */
looping = 0; start_adr = 0; end_adr = 0; looping = 0; start_adr = 0; end_adr = 0;
if (!memcmp(buf+0x10,"\x01\xF4\x03",3)) { if (!memcmp(buf+0x10,"\x01\xF4\x03",3)) {
/* Soul Calibur 2 style (type 03) */ /* Soul Calibur 2 style (type 03) */
@ -196,7 +196,7 @@ enum codec_status codec_run(void)
DEBUGF("ADX: error, couldn't determine ADX type\n"); DEBUGF("ADX: error, couldn't determine ADX type\n");
return CODEC_ERROR; return CODEC_ERROR;
} }
/* is file using encryption */ /* is file using encryption */
if (buf[0x13]==0x08) { if (buf[0x13]==0x08) {
DEBUGF("ADX: error, encrypted ADX not supported\n"); DEBUGF("ADX: error, encrypted ADX not supported\n");
@ -204,13 +204,14 @@ enum codec_status codec_run(void)
} }
if (looping) { if (looping) {
DEBUGF("ADX: looped, start: %lx end: %lx\n",start_adr,end_adr); DEBUGF("ADX: looped, start: %jx end: %jx\n",
(intmax_t) start_adr, (intmax_t) end_adr);
} else { } else {
DEBUGF("ADX: not looped\n"); DEBUGF("ADX: not looped\n");
} }
/* advance to first frame */ /* advance to first frame */
DEBUGF("ADX: first frame at %lx\n",chanstart); DEBUGF("ADX: first frame at %jx\n", (intmax_t) chanstart);
bufoff = chanstart; bufoff = chanstart;
/* get in position */ /* get in position */
@ -226,7 +227,7 @@ enum codec_status codec_run(void)
} else { } else {
DEBUGF("ADX CODEC_ERROR: more than 2 channels\n"); DEBUGF("ADX CODEC_ERROR: more than 2 channels\n");
return CODEC_ERROR; return CODEC_ERROR;
} }
endofstream = 0; endofstream = 0;
loop_count = 0; loop_count = 0;
@ -234,13 +235,13 @@ enum codec_status codec_run(void)
fade_frames = 1; fade_frames = 1;
/* The main decoder loop */ /* The main decoder loop */
while (!endofstream) { while (!endofstream) {
long action = ci->get_command(&param); long action = ci->get_command(&param);
if (action == CODEC_ACTION_HALT) if (action == CODEC_ACTION_HALT)
break; break;
/* do we need to loop? */ /* do we need to loop? */
if (bufoff > end_adr-18*channels && looping) { if (bufoff > end_adr-18*channels && looping) {
DEBUGF("ADX: loop!\n"); DEBUGF("ADX: loop!\n");
@ -266,7 +267,7 @@ enum codec_status codec_run(void)
/* do we need to seek? */ /* do we need to seek? */
if (action == CODEC_ACTION_SEEK_TIME) { if (action == CODEC_ACTION_SEEK_TIME) {
uint32_t newpos; uint32_t newpos;
DEBUGF("ADX: seek to %ldms\n", (long)param); DEBUGF("ADX: seek to %ldms\n", (long)param);
endofstream = 0; endofstream = 0;
@ -291,9 +292,9 @@ enum codec_status codec_run(void)
} }
if (bufoff>ci->filesize-channels*18) break; /* End of stream */ if (bufoff>ci->filesize-channels*18) break; /* End of stream */
sampleswritten=0; sampleswritten=0;
while ( while (
/* Is there data left in the file? */ /* Is there data left in the file? */
(bufoff <= ci->filesize-(18*channels)) && (bufoff <= ci->filesize-(18*channels)) &&
@ -310,13 +311,13 @@ enum codec_status codec_run(void)
buf = ci->request_buffer(&n, 18); buf = ci->request_buffer(&n, 18);
if (!buf || n!=18) { if (!buf || n!=18) {
DEBUGF("ADX: couldn't get buffer at %lx\n", DEBUGF("ADX: couldn't get buffer at %jx\n",
bufoff); (intmax_t) bufoff);
return CODEC_ERROR; return CODEC_ERROR;
} }
scale = ((buf[0] << 8) | (buf[1])) +1; scale = ((buf[0] << 8) | (buf[1])) +1;
for (i = 2; i < 18; i++) for (i = 2; i < 18; i++)
{ {
d = (buf[i] >> 4) & 15; d = (buf[i] >> 4) & 15;
@ -332,14 +333,14 @@ enum codec_status codec_run(void)
if (d & 8) d -= 16; if (d & 8) d -= 16;
ch1_0 = d*scale + ((coef1*ch1_1 + coef2*ch1_2) >> 12); ch1_0 = d*scale + ((coef1*ch1_1 + coef2*ch1_2) >> 12);
if (ch1_0 > 32767) ch1_0 = 32767; if (ch1_0 > 32767) ch1_0 = 32767;
else if (ch1_0 < -32768) ch1_0 = -32768; else if (ch1_0 < -32768) ch1_0 = -32768;
samples[sampleswritten] = ch1_0; samples[sampleswritten] = ch1_0;
sampleswritten+=channels; sampleswritten+=channels;
ch1_2 = ch1_1; ch1_1 = ch1_0; ch1_2 = ch1_1; ch1_1 = ch1_0;
} }
bufoff+=18; bufoff+=18;
ci->advance_buffer(18); ci->advance_buffer(18);
if (channels == 2) { if (channels == 2) {
/* decode second channel */ /* decode second channel */
int32_t scale; int32_t scale;
@ -348,13 +349,13 @@ enum codec_status codec_run(void)
buf = ci->request_buffer(&n, 18); buf = ci->request_buffer(&n, 18);
if (!buf || n!=18) { if (!buf || n!=18) {
DEBUGF("ADX: couldn't get buffer at %lx\n", DEBUGF("ADX: couldn't get buffer at %jx\n",
bufoff); (intmax_t) bufoff);
return CODEC_ERROR; return CODEC_ERROR;
} }
scale = ((buf[0] << 8)|(buf[1]))+1; scale = ((buf[0] << 8)|(buf[1]))+1;
sampleswritten-=63; sampleswritten-=63;
for (i = 2; i < 18; i++) for (i = 2; i < 18; i++)
@ -372,7 +373,7 @@ enum codec_status codec_run(void)
if (d & 8) d -= 16; if (d & 8) d -= 16;
ch2_0 = d*scale + ((coef1*ch2_1 + coef2*ch2_2) >> 12); ch2_0 = d*scale + ((coef1*ch2_1 + coef2*ch2_2) >> 12);
if (ch2_0 > 32767) ch2_0 = 32767; if (ch2_0 > 32767) ch2_0 = 32767;
else if (ch2_0 < -32768) ch2_0 = -32768; else if (ch2_0 < -32768) ch2_0 = -32768;
samples[sampleswritten] = ch2_0; samples[sampleswritten] = ch2_0;
sampleswritten+=2; sampleswritten+=2;
ch2_2 = ch2_1; ch2_1 = ch2_0; ch2_2 = ch2_1; ch2_1 = ch2_0;
@ -394,7 +395,7 @@ enum codec_status codec_run(void)
sampleswritten >>= 1; /* make samples/channel */ sampleswritten >>= 1; /* make samples/channel */
ci->pcmbuf_insert(samples, NULL, sampleswritten); ci->pcmbuf_insert(samples, NULL, sampleswritten);
ci->set_elapsed( ci->set_elapsed(
((end_adr-start_adr)*loop_count + bufoff-chanstart)* ((end_adr-start_adr)*loop_count + bufoff-chanstart)*
1000LL/avgbytespersec); 1000LL/avgbytespersec);