add explicit casts for some implicit conversions
diff --git a/src/flac/decode.c b/src/flac/decode.c
index 7bee2e1..79f738f 100644
--- a/src/flac/decode.c
+++ b/src/flac/decode.c
@@ -365,12 +365,12 @@
if(is_unsigned_samples) {
for(sample = wide_sample = 0; wide_sample < wide_samples; wide_sample++)
for(channel = 0; channel < channels; channel++, sample++)
- u8buffer[sample] = buffer[channel][wide_sample] + 0x80;
+ u8buffer[sample] = (FLAC__uint8)(buffer[channel][wide_sample] + 0x80);
}
else {
for(sample = wide_sample = 0; wide_sample < wide_samples; wide_sample++)
for(channel = 0; channel < channels; channel++, sample++)
- s8buffer[sample] = buffer[channel][wide_sample];
+ s8buffer[sample] = (FLAC__int8)(buffer[channel][wide_sample]);
}
if(fwrite(u8buffer, 1, sample, fout) != sample)
return FLAC__STREAM_DECODER_WRITE_ABORT;
@@ -379,12 +379,12 @@
if(is_unsigned_samples) {
for(sample = wide_sample = 0; wide_sample < wide_samples; wide_sample++)
for(channel = 0; channel < channels; channel++, sample++)
- u16buffer[sample] = buffer[channel][wide_sample] + 0x8000;
+ u16buffer[sample] = (FLAC__uint16)(buffer[channel][wide_sample] + 0x8000);
}
else {
for(sample = wide_sample = 0; wide_sample < wide_samples; wide_sample++)
for(channel = 0; channel < channels; channel++, sample++)
- s16buffer[sample] = buffer[channel][wide_sample];
+ s16buffer[sample] = (FLAC__int16)(buffer[channel][wide_sample]);
}
if(is_big_endian != is_big_endian_host) {
unsigned char tmp;
diff --git a/src/flac/encode.c b/src/flac/encode.c
index cacfbbd..031ec8b 100644
--- a/src/flac/encode.c
+++ b/src/flac/encode.c
@@ -247,7 +247,7 @@
}
else {
unsigned left, need;
- for(left = skip; left > 0; ) {
+ for(left = (unsigned)skip; left > 0; ) { /*@@@ WATCHOUT: 4GB limit */
need = min(left, CHUNK_OF_SAMPLES);
if(fread(ucbuffer, 1, bytes_per_wide_sample * need, infile) < need) {
fprintf(stderr, "%s: ERROR during read while skipping samples\n", encoder_wrapper.inbasefilename);
@@ -258,10 +258,10 @@
}
}
- data_bytes -= skip * bytes_per_wide_sample;
+ data_bytes -= (unsigned)skip * bytes_per_wide_sample; /*@@@ WATCHOUT: 4GB limit */
encoder_wrapper.total_samples_to_encode = data_bytes / bytes_per_wide_sample + *align_reservoir_samples;
if(sector_align) {
- align_remainder = encoder_wrapper.total_samples_to_encode % 588;
+ align_remainder = (unsigned)(encoder_wrapper.total_samples_to_encode % 588);
if(is_last_file)
encoder_wrapper.total_samples_to_encode += (588-align_remainder); /* will pad with zeroes */
else
@@ -1058,7 +1058,7 @@
for(i = 0; i < encoder_wrapper->seek_table.num_points; i++) {
if(!write_big_endian_uint64(f, encoder_wrapper->seek_table.points[i].sample_number)) goto end_;
if(!write_big_endian_uint64(f, encoder_wrapper->seek_table.points[i].stream_offset)) goto end_;
- if(!write_big_endian_uint16(f, encoder_wrapper->seek_table.points[i].frame_samples)) goto end_;
+ if(!write_big_endian_uint16(f, (FLAC__uint16)encoder_wrapper->seek_table.points[i].frame_samples)) goto end_;
}
}
diff --git a/src/libFLAC/bitbuffer.c b/src/libFLAC/bitbuffer.c
index f786843..a93cfd8 100644
--- a/src/libFLAC/bitbuffer.c
+++ b/src/libFLAC/bitbuffer.c
@@ -290,17 +290,17 @@
n = 8 - bb->bits;
if(n == 8) { /* i.e. bb->bits == 0 */
if(bits < 8) {
- bb->buffer[bb->bytes] = val;
+ bb->buffer[bb->bytes] = (FLAC__byte)val;
bb->bits = bits;
break;
}
else if(bits == 8) {
- bb->buffer[bb->bytes++] = val;
+ bb->buffer[bb->bytes++] = (FLAC__byte)val;
break;
}
else {
k = bits - 8;
- bb->buffer[bb->bytes++] = val >> k;
+ bb->buffer[bb->bytes++] = (FLAC__byte)(val >> k);
val &= (~(0xffffffff << k));
bits -= 8;
}
@@ -371,17 +371,17 @@
while(bits > 0) {
if(bb->bits == 0) {
if(bits < 8) {
- bb->buffer[bb->bytes] = val;
+ bb->buffer[bb->bytes] = (FLAC__byte)val;
bb->bits = bits;
break;
}
else if(bits == 8) {
- bb->buffer[bb->bytes++] = val;
+ bb->buffer[bb->bytes++] = (FLAC__byte)val;
break;
}
else {
k = bits - 8;
- bb->buffer[bb->bytes++] = val >> k;
+ bb->buffer[bb->bytes++] = (FLAC__byte)(val >> k);
val &= (~(0xffffffffffffffff << k));
bits -= 8;
}
diff --git a/src/libFLAC/file_decoder.c b/src/libFLAC/file_decoder.c
index 0bb50a8..4947065 100644
--- a/src/libFLAC/file_decoder.c
+++ b/src/libFLAC/file_decoder.c
@@ -506,6 +506,7 @@
FLAC__bool seek_to_absolute_sample_(FLAC__FileDecoder *decoder, long filesize, FLAC__uint64 target_sample)
{
+ /* @@@ we should really change long to off_t and start using lseek(); with fseek() we have the 2GB file limit. */
long first_frame_offset, lower_bound, upper_bound, pos = -1, last_pos = -1;
int i, lower_seek_point = -1, upper_seek_point = -1;
unsigned approx_bytes_per_frame;
@@ -563,7 +564,7 @@
break;
}
if(i >= 0) { /* i.e. we found a suitable seek point... */
- lower_bound = first_frame_offset + decoder->private->seek_table->points[i].stream_offset;
+ lower_bound = first_frame_offset + (long)decoder->private->seek_table->points[i].stream_offset;
lower_seek_point = i;
}
@@ -573,7 +574,7 @@
break;
}
if(i < (int)decoder->private->seek_table->num_points) { /* i.e. we found a suitable seek point... */
- upper_bound = first_frame_offset + decoder->private->seek_table->points[i].stream_offset;
+ upper_bound = first_frame_offset + (long)decoder->private->seek_table->points[i].stream_offset;
upper_seek_point = i;
}
}