| Index: tests/test_opus_api.c
|
| diff --git a/tests/test_opus_api.c b/tests/test_opus_api.c
|
| index b5348c3ab2dde2f19aaddd1f504bdd15f591851c..c2d7e10381323f013f723ff272c6d037696c242b 100644
|
| --- a/tests/test_opus_api.c
|
| +++ b/tests/test_opus_api.c
|
| @@ -126,6 +126,9 @@ opus_int32 test_dec_api(void)
|
| dec = opus_decoder_create(fs, c, &err);
|
| if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| cfgs++;
|
| + dec = opus_decoder_create(fs, c, 0);
|
| + if(dec!=NULL)test_failed();
|
| + cfgs++;
|
| dec=malloc(opus_decoder_get_size(2));
|
| if(dec==NULL)test_failed();
|
| err = opus_decoder_init(dec,fs,c);
|
| @@ -224,12 +227,19 @@ opus_int32 test_dec_api(void)
|
| VG_UNDEF(packet,sizeof(packet));
|
| packet[0]=0;
|
| if(opus_decoder_get_nb_samples(dec,packet,1)!=480)test_failed();
|
| - cfgs++;
|
| + if(opus_packet_get_nb_samples(packet,1,48000)!=480)test_failed();
|
| + if(opus_packet_get_nb_samples(packet,1,96000)!=960)test_failed();
|
| + if(opus_packet_get_nb_samples(packet,1,32000)!=320)test_failed();
|
| + if(opus_packet_get_nb_samples(packet,1,8000)!=80)test_failed();
|
| + packet[0]=3;
|
| + if(opus_packet_get_nb_samples(packet,1,24000)!=OPUS_INVALID_PACKET)test_failed();
|
| packet[0]=(63<<2)|3;
|
| packet[1]=63;
|
| + if(opus_packet_get_nb_samples(packet,0,24000)!=OPUS_BAD_ARG)test_failed();
|
| + if(opus_packet_get_nb_samples(packet,2,48000)!=OPUS_INVALID_PACKET)test_failed();
|
| if(opus_decoder_get_nb_samples(dec,packet,2)!=OPUS_INVALID_PACKET)test_failed();
|
| - fprintf(stdout," opus_decoder_get_nb_samples() ................ OK.\n");
|
| - cfgs++;
|
| + fprintf(stdout," opus_{packet,decoder}_get_nb_samples() ....... OK.\n");
|
| + cfgs+=9;
|
|
|
| if(OPUS_BAD_ARG!=opus_packet_get_nb_frames(packet,0))test_failed();
|
| for(i=0;i<256;i++) {
|
| @@ -366,6 +376,9 @@ opus_int32 test_msdec_api(void)
|
| dec = opus_multistream_decoder_create(fs, c, 1, c-1, mapping, &err);
|
| if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| cfgs++;
|
| + dec = opus_multistream_decoder_create(fs, c, 1, c-1, mapping, 0);
|
| + if(dec!=NULL)test_failed();
|
| + cfgs++;
|
| dec=malloc(opus_multistream_decoder_get_size(1,1));
|
| if(dec==NULL)test_failed();
|
| err = opus_multistream_decoder_init(dec,fs,c,1,c-1, mapping);
|
| @@ -375,116 +388,128 @@ opus_int32 test_msdec_api(void)
|
| }
|
| }
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 2, 1, 0, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err==OPUS_OK || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + for(c=0;c<2;c++)
|
| + {
|
| + int *ret_err;
|
| + ret_err = c?0:&err;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - mapping[0]=mapping[1]=0;
|
| - dec = opus_multistream_decoder_create(48000, 2, 1, 0, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_OK || dec==NULL)test_failed();
|
| - cfgs++;
|
| - opus_multistream_decoder_destroy(dec);
|
| - cfgs++;
|
| + mapping[0]=0;
|
| + mapping[1]=1;
|
| + for(i=2;i<256;i++)VG_UNDEF(&mapping[i],sizeof(unsigned char));
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 1, 4, 1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_OK || dec==NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 2, 1, 0, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - err = opus_multistream_decoder_init(dec,48000, 1, 0, 0, mapping);
|
| - if(err!=OPUS_BAD_ARG)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + mapping[0]=mapping[1]=0;
|
| + dec = opus_multistream_decoder_create(48000, 2, 1, 0, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_OK) || dec==NULL)test_failed();
|
| + cfgs++;
|
| + opus_multistream_decoder_destroy(dec);
|
| + cfgs++;
|
|
|
| - err = opus_multistream_decoder_init(dec,48000, 1, 1, -1, mapping);
|
| - if(err!=OPUS_BAD_ARG)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 1, 4, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_OK) || dec==NULL)test_failed();
|
| + cfgs++;
|
|
|
| - opus_multistream_decoder_destroy(dec);
|
| - cfgs++;
|
| + err = opus_multistream_decoder_init(dec,48000, 1, 0, 0, mapping);
|
| + if(err!=OPUS_BAD_ARG)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 2, 1, 1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_OK || dec==NULL)test_failed();
|
| - cfgs++;
|
| - opus_multistream_decoder_destroy(dec);
|
| - cfgs++;
|
| + err = opus_multistream_decoder_init(dec,48000, 1, 1, -1, mapping);
|
| + if(err!=OPUS_BAD_ARG)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 255, 255, 1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + opus_multistream_decoder_destroy(dec);
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, -1, 1, 1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 2, 1, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_OK) || dec==NULL)test_failed();
|
| + cfgs++;
|
| + opus_multistream_decoder_destroy(dec);
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 0, 1, 1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 255, 255, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 1, -1, 2, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, -1, 1, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 1, -1, -1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 0, 1, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 256, 255, 1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 1, -1, 2, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - dec = opus_multistream_decoder_create(48000, 256, 255, 0, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 1, -1, -1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - mapping[0]=255;
|
| - mapping[1]=1;
|
| - mapping[2]=2;
|
| - dec = opus_multistream_decoder_create(48000, 3, 2, 0, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_BAD_ARG || dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 256, 255, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - VG_UNDEF(&err,sizeof(err));
|
| - mapping[0]=0;
|
| - mapping[1]=0;
|
| - mapping[2]=0;
|
| - dec = opus_multistream_decoder_create(48000, 3, 2, 1, mapping, &err);
|
| - VG_CHECK(&err,sizeof(err));
|
| - if(err!=OPUS_OK || dec==NULL)test_failed();
|
| - cfgs++;
|
| - opus_multistream_decoder_destroy(dec);
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + dec = opus_multistream_decoder_create(48000, 256, 255, 0, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
|
|
| - mapping[0]=0;
|
| - mapping[1]=255;
|
| - mapping[2]=1;
|
| - mapping[3]=2;
|
| - mapping[4]=3;
|
| - dec = opus_multistream_decoder_create(48001, 5, 4, 1, mapping, 0);
|
| - if(dec!=NULL)test_failed();
|
| - cfgs++;
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + mapping[0]=255;
|
| + mapping[1]=1;
|
| + mapping[2]=2;
|
| + dec = opus_multistream_decoder_create(48000, 3, 2, 0, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
| +
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + mapping[0]=0;
|
| + mapping[1]=0;
|
| + mapping[2]=0;
|
| + dec = opus_multistream_decoder_create(48000, 3, 2, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_OK) || dec==NULL)test_failed();
|
| + cfgs++;
|
| + opus_multistream_decoder_destroy(dec);
|
| + cfgs++;
|
| +
|
| + VG_UNDEF(ret_err,sizeof(*ret_err));
|
| + mapping[0]=0;
|
| + mapping[1]=255;
|
| + mapping[2]=1;
|
| + mapping[3]=2;
|
| + mapping[4]=3;
|
| + dec = opus_multistream_decoder_create(48001, 5, 4, 1, mapping, ret_err);
|
| + if(ret_err){VG_CHECK(ret_err,sizeof(*ret_err));}
|
| + if((ret_err && *ret_err!=OPUS_BAD_ARG) || dec!=NULL)test_failed();
|
| + cfgs++;
|
| + }
|
|
|
| VG_UNDEF(&err,sizeof(err));
|
| mapping[0]=0;
|
| @@ -1061,6 +1086,9 @@ opus_int32 test_enc_api(void)
|
| enc = opus_encoder_create(fs, c, OPUS_APPLICATION_VOIP, &err);
|
| if(err!=OPUS_BAD_ARG || enc!=NULL)test_failed();
|
| cfgs++;
|
| + enc = opus_encoder_create(fs, c, OPUS_APPLICATION_VOIP, 0);
|
| + if(enc!=NULL)test_failed();
|
| + cfgs++;
|
| opus_encoder_destroy(enc);
|
| enc=malloc(opus_encoder_get_size(2));
|
| if(enc==NULL)test_failed();
|
| @@ -1538,7 +1566,7 @@ int test_repacketizer_api(void)
|
| #ifdef MALLOC_FAIL
|
| /* GLIBC 2.14 declares __malloc_hook as deprecated, generating a warning
|
| * under GCC. However, this is the cleanest way to test malloc failure
|
| - * handling in our codebase, and the lack of thread saftey isn't an
|
| + * handling in our codebase, and the lack of thread safety isn't an
|
| * issue here. We therefore disable the warning for this function.
|
| */
|
| #if OPUS_GNUC_PREREQ(4,6)
|
|
|