Fix a few warnings when building std_vorbis using Xcode 7.2.1
This commit is contained in:
parent
a83ab31335
commit
5a00ce39eb
97
stb_vorbis.c
97
stb_vorbis.c
@ -1868,85 +1868,6 @@ static int codebook_decode_deinterleave_repeat(vorb *f, Codebook *c, float **out
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef STB_VORBIS_DIVIDES_IN_CODEBOOK
|
|
||||||
static int codebook_decode_deinterleave_repeat_2(vorb *f, Codebook *c, float **outputs, int *c_inter_p, int *p_inter_p, int len, int total_decode)
|
|
||||||
{
|
|
||||||
int c_inter = *c_inter_p;
|
|
||||||
int p_inter = *p_inter_p;
|
|
||||||
int i,z, effective = c->dimensions;
|
|
||||||
|
|
||||||
// type 0 is only legal in a scalar context
|
|
||||||
if (c->lookup_type == 0) return error(f, VORBIS_invalid_stream);
|
|
||||||
|
|
||||||
while (total_decode > 0) {
|
|
||||||
float last = CODEBOOK_ELEMENT_BASE(c);
|
|
||||||
DECODE_VQ(z,f,c);
|
|
||||||
|
|
||||||
if (z < 0) {
|
|
||||||
if (!f->bytes_in_seg)
|
|
||||||
if (f->last_seg) return FALSE;
|
|
||||||
return error(f, VORBIS_invalid_stream);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if this will take us off the end of the buffers, stop short!
|
|
||||||
// we check by computing the length of the virtual interleaved
|
|
||||||
// buffer (len*ch), our current offset within it (p_inter*ch)+(c_inter),
|
|
||||||
// and the length we'll be using (effective)
|
|
||||||
if (c_inter + p_inter*2 + effective > len * 2) {
|
|
||||||
effective = len*2 - (p_inter*2 - c_inter);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
z *= c->dimensions;
|
|
||||||
if (c->sequence_p) {
|
|
||||||
// haven't optimized this case because I don't have any examples
|
|
||||||
for (i=0; i < effective; ++i) {
|
|
||||||
float val = CODEBOOK_ELEMENT_FAST(c,z+i) + last;
|
|
||||||
if (outputs[c_inter])
|
|
||||||
outputs[c_inter][p_inter] += val;
|
|
||||||
if (++c_inter == 2) { c_inter = 0; ++p_inter; }
|
|
||||||
last = val;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
i=0;
|
|
||||||
if (c_inter == 1 && i < effective) {
|
|
||||||
float val = CODEBOOK_ELEMENT_FAST(c,z+i) + last;
|
|
||||||
if (outputs[c_inter])
|
|
||||||
outputs[c_inter][p_inter] += val;
|
|
||||||
c_inter = 0; ++p_inter;
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
float *z0 = outputs[0];
|
|
||||||
float *z1 = outputs[1];
|
|
||||||
for (; i+1 < effective;) {
|
|
||||||
float v0 = CODEBOOK_ELEMENT_FAST(c,z+i) + last;
|
|
||||||
float v1 = CODEBOOK_ELEMENT_FAST(c,z+i+1) + last;
|
|
||||||
if (z0)
|
|
||||||
z0[p_inter] += v0;
|
|
||||||
if (z1)
|
|
||||||
z1[p_inter] += v1;
|
|
||||||
++p_inter;
|
|
||||||
i += 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i < effective) {
|
|
||||||
float val = CODEBOOK_ELEMENT_FAST(c,z+i) + last;
|
|
||||||
if (outputs[c_inter])
|
|
||||||
outputs[c_inter][p_inter] += val;
|
|
||||||
if (++c_inter == 2) { c_inter = 0; ++p_inter; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
total_decode -= effective;
|
|
||||||
}
|
|
||||||
*c_inter_p = c_inter;
|
|
||||||
*p_inter_p = p_inter;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int predict_point(int x, int x0, int x1, int y0, int y1)
|
static int predict_point(int x, int x0, int x1, int y0, int y1)
|
||||||
{
|
{
|
||||||
int dy = y1 - y0;
|
int dy = y1 - y0;
|
||||||
@ -4429,7 +4350,7 @@ int stb_vorbis_decode_frame_pushdata(
|
|||||||
while (get8_packet(f) != EOP)
|
while (get8_packet(f) != EOP)
|
||||||
if (f->eof) break;
|
if (f->eof) break;
|
||||||
*samples = 0;
|
*samples = 0;
|
||||||
return f->stream - data;
|
return (int) (f->stream - data);
|
||||||
}
|
}
|
||||||
if (error == VORBIS_continued_packet_flag_invalid) {
|
if (error == VORBIS_continued_packet_flag_invalid) {
|
||||||
if (f->previous_length == 0) {
|
if (f->previous_length == 0) {
|
||||||
@ -4439,7 +4360,7 @@ int stb_vorbis_decode_frame_pushdata(
|
|||||||
while (get8_packet(f) != EOP)
|
while (get8_packet(f) != EOP)
|
||||||
if (f->eof) break;
|
if (f->eof) break;
|
||||||
*samples = 0;
|
*samples = 0;
|
||||||
return f->stream - data;
|
return (int) (f->stream - data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if we get an error while parsing, what to do?
|
// if we get an error while parsing, what to do?
|
||||||
@ -4459,7 +4380,7 @@ int stb_vorbis_decode_frame_pushdata(
|
|||||||
if (channels) *channels = f->channels;
|
if (channels) *channels = f->channels;
|
||||||
*samples = len;
|
*samples = len;
|
||||||
*output = f->outputs;
|
*output = f->outputs;
|
||||||
return f->stream - data;
|
return (int) (f->stream - data);
|
||||||
}
|
}
|
||||||
|
|
||||||
stb_vorbis *stb_vorbis_open_pushdata(
|
stb_vorbis *stb_vorbis_open_pushdata(
|
||||||
@ -4482,7 +4403,7 @@ stb_vorbis *stb_vorbis_open_pushdata(
|
|||||||
f = vorbis_alloc(&p);
|
f = vorbis_alloc(&p);
|
||||||
if (f) {
|
if (f) {
|
||||||
*f = p;
|
*f = p;
|
||||||
*data_used = f->stream - data;
|
*data_used = (int) (f->stream - data);
|
||||||
*error = 0;
|
*error = 0;
|
||||||
return f;
|
return f;
|
||||||
} else {
|
} else {
|
||||||
@ -4497,9 +4418,9 @@ unsigned int stb_vorbis_get_file_offset(stb_vorbis *f)
|
|||||||
#ifndef STB_VORBIS_NO_PUSHDATA_API
|
#ifndef STB_VORBIS_NO_PUSHDATA_API
|
||||||
if (f->push_mode) return 0;
|
if (f->push_mode) return 0;
|
||||||
#endif
|
#endif
|
||||||
if (USE_MEMORY(f)) return f->stream - f->stream_start;
|
if (USE_MEMORY(f)) return (unsigned int) (f->stream - f->stream_start);
|
||||||
#ifndef STB_VORBIS_NO_STDIO
|
#ifndef STB_VORBIS_NO_STDIO
|
||||||
return ftell(f->f) - f->f_start;
|
return (unsigned int) (ftell(f->f) - f->f_start);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4995,7 +4916,7 @@ stb_vorbis * stb_vorbis_open_file_section(FILE *file, int close_on_free, int *er
|
|||||||
stb_vorbis *f, p;
|
stb_vorbis *f, p;
|
||||||
vorbis_init(&p, alloc);
|
vorbis_init(&p, alloc);
|
||||||
p.f = file;
|
p.f = file;
|
||||||
p.f_start = ftell(file);
|
p.f_start = (uint32) ftell(file);
|
||||||
p.stream_len = length;
|
p.stream_len = length;
|
||||||
p.close_on_free = close_on_free;
|
p.close_on_free = close_on_free;
|
||||||
if (start_decoder(&p)) {
|
if (start_decoder(&p)) {
|
||||||
@ -5014,9 +4935,9 @@ stb_vorbis * stb_vorbis_open_file_section(FILE *file, int close_on_free, int *er
|
|||||||
stb_vorbis * stb_vorbis_open_file(FILE *file, int close_on_free, int *error, const stb_vorbis_alloc *alloc)
|
stb_vorbis * stb_vorbis_open_file(FILE *file, int close_on_free, int *error, const stb_vorbis_alloc *alloc)
|
||||||
{
|
{
|
||||||
unsigned int len, start;
|
unsigned int len, start;
|
||||||
start = ftell(file);
|
start = (unsigned int) ftell(file);
|
||||||
fseek(file, 0, SEEK_END);
|
fseek(file, 0, SEEK_END);
|
||||||
len = ftell(file) - start;
|
len = (unsigned int) (ftell(file) - start);
|
||||||
fseek(file, start, SEEK_SET);
|
fseek(file, start, SEEK_SET);
|
||||||
return stb_vorbis_open_file_section(file, close_on_free, error, alloc, len);
|
return stb_vorbis_open_file_section(file, close_on_free, error, alloc, len);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user