ref: 21322357d4f8731cac3f6d8075f5331f0e462034
parent: 1886f65bc94fbd4779da2b9ac6e9898133031f43
author: Timothy B. Terriberry <tterribe@xiph.org>
date: Sat Sep 29 03:17:33 EDT 2012
Clean-up for alternate configurations. * s/op_read_stereo_float/op_read_float_stereo/ for the fixed-point API. * Fix compiler warnings exposed when optimizations are enabled. * Fix opusfile_example to work with --enable-fixed-point --disable-float * Fix seeking_example to not re-define OP_FIXED_POINT if it's already been defined.
--- a/examples/opusfile_example.c
+++ b/examples/opusfile_example.c
@@ -24,6 +24,14 @@
#endif
#include <opusfile.h>
+#if defined(OP_FIXED_POINT)
+typedef opus_int16 op_sample;
+# define op_read_native_stereo op_read_stereo
+#else
+typedef float op_sample;
+# define op_read_native_stereo op_read_float_stereo
+#endif
+
int main(int _argc,const char **_argv){
OggOpusFile *of;
ogg_int64_t pcm_offset;
@@ -85,9 +93,9 @@
}
for(;;){
ogg_int64_t next_pcm_offset;
- float pcm[120*48*2];
+ op_sample pcm[120*48*2];
int li;
- ret=op_read_float_stereo(of,pcm,sizeof(pcm)/sizeof(*pcm));
+ ret=op_read_native_stereo(of,pcm,sizeof(pcm)/sizeof(*pcm));
if(ret<0){
fprintf(stderr,"Error decoding '%s': %i\n",_argv[1],ret);
ret=EXIT_FAILURE;
--- a/examples/seeking_example.c
+++ b/examples/seeking_example.c
@@ -26,7 +26,9 @@
#include <opusfile.h>
/*Use shorts, they're smaller.*/
-#define OP_FIXED_POINT (1)
+#if !defined(OP_FIXED_POINT)
+# define OP_FIXED_POINT (1)
+#endif
#if defined(OP_FIXED_POINT)
@@ -436,8 +438,8 @@
fprintf(stderr,")...\n");
max_seeks=0;
for(i=0;i<NSEEK_TESTS;i++){
- long nseeks_tmp;
ogg_int64_t pcm_offset2;
+ long nseeks_tmp;
nseeks_tmp=nreal_seeks;
pcm_offset=(ogg_int64_t)(rand()/(double)RAND_MAX*pcm_length);
fprintf(stderr,"\r\t%3i [PCM position %li]... ",
--- a/src/http.c
+++ b/src/http.c
@@ -258,7 +258,9 @@
hostport=userinfo_end+1;
}
else{
- user=NULL;
+ /*We shouldn't have to initialize user_end, but gcc is too dumb to figure
+ out that user!=NULL below means we didn't take this else branch.*/
+ user=user_end=NULL;
pass=NULL;
hostport=authority;
}
@@ -1251,6 +1253,10 @@
int ret;
if(_proxy_host!=NULL&&OP_UNLIKELY(_proxy_port>65535U))return OP_EINVAL;
last_host=NULL;
+ /*We shouldn't have to initialize last_port, but gcc is too dumb to figure
+ out that last_host!=NULL implies we've already taken one trip through the
+ loop.*/
+ last_port=0;
ret=op_parse_url(&_stream->url,_url);
if(OP_UNLIKELY(ret<0))return ret;
for(nredirs=0;nredirs<OP_REDIRECT_LIMIT;nredirs++){
--- a/src/opusfile.c
+++ b/src/opusfile.c
@@ -712,6 +712,11 @@
if(_og==NULL)_og=&og;
serialno=_of->os.serialno;
cur_page_gp=-1;
+ op_count=0;
+ /*We shouldn't have to initialize total_duration, but gcc is too dumb to
+ figure out that op_count>0 implies we've been through the whole loop at
+ least once.*/
+ total_duration=0;
do{
/*We should get a page unless the file is truncated or mangled.
Otherwise there are no audio data packets in the whole logical stream.*/
@@ -2553,6 +2558,7 @@
op_sample *_src,int _nsamples,int _nchannels){
float *dst;
int i;
+ _of=_of;
dst=(float *)_dst;
if(OP_UNLIKELY(_nsamples*_nchannels>_dst_sz))_nsamples=_dst_sz/_nchannels;
_dst_sz=_nsamples*_nchannels;
@@ -2586,7 +2592,7 @@
return op_short2float_filter(_of,dst,_dst_sz,_src,_nsamples,2);
}
-int op_read_stereo_float(OggOpusFile *_of,opus_int16 *_pcm,int _buf_size){
+int op_read_float_stereo(OggOpusFile *_of,float *_pcm,int _buf_size){
return op_read_native_filter(_of,_pcm,_buf_size,
op_short2float_stereo_filter,NULL);
}