1 #define DR_WAV_LIBSNDFILE_COMPAT
4 #define FILE_NAME_WIDTH 40
5 #define NUMBER_WIDTH 10
8 #define DEFAULT_SOURCE_DIR "testvectors/wav/tests"
22 if (pcmFrameCount_libsndfile != pcmFrameCount_drwav) {
23 printf(
" Decoded frame counts differ: pcmFrameCount=%d, libsndfile=%d, dr_wav=%d", (
int)pcmFrameCount, (
int)pcmFrameCount_libsndfile, (
int)pcmFrameCount_drwav);
28 DRWAV_ASSERT(pcmFrameCount_libsndfile == pcmFrameCount_drwav);
30 for (iPCMFrame = 0; iPCMFrame < pcmFrameCount_libsndfile; iPCMFrame += 1) {
36 for (iChannel = 0; iChannel < pWav->
channels; iChannel += 1) {
37 if (pPCMFrame_libsndfile[iChannel] != pPCMFrame_drwav[iChannel]) {
38 printf(
" PCM Frame @ %d[%d] does not match: pcmFrameCount=%d", (
int)iPCMFrame, iChannel, (
int)pcmFrameCount);
65 if (pPCMFrames_libsndfile ==
NULL) {
66 printf(
" [libsndfile] Out of memory");
71 if (pPCMFrames_drwav ==
NULL) {
72 free(pPCMFrames_libsndfile);
73 printf(
" [dr_wav] Out of memory");
77 for (iPCMFrame = 0; iPCMFrame < pWav->
totalPCMFrameCount; iPCMFrame += pcmFrameChunkSize) {
84 free(pPCMFrames_libsndfile);
85 free(pPCMFrames_drwav);
102 if (pcmFrameCount_libsndfile != pcmFrameCount_drwav) {
103 printf(
" Decoded frame counts differ: pcmFrameCount=%d, libsndfile=%d, dr_wav=%d", (
int)pcmFrameCount, (
int)pcmFrameCount_libsndfile, (
int)pcmFrameCount_drwav);
108 DRWAV_ASSERT(pcmFrameCount_libsndfile == pcmFrameCount_drwav);
110 for (iPCMFrame = 0; iPCMFrame < pcmFrameCount_libsndfile; iPCMFrame += 1) {
111 float* pPCMFrame_libsndfile = pPCMFrames_libsndfile + (iPCMFrame * pWav->
channels);
112 float* pPCMFrame_drwav = pPCMFrames_drwav + (iPCMFrame * pWav->
channels);
116 for (iChannel = 0; iChannel < pWav->
channels; iChannel += 1) {
117 if (pPCMFrame_libsndfile[iChannel] != pPCMFrame_drwav[iChannel]) {
118 printf(
" PCM Frame @ %d[%d] does not match: pcmFrameCount=%d", (
int)iPCMFrame, iChannel, (
int)pcmFrameCount);
137 float* pPCMFrames_libsndfile;
138 float* pPCMFrames_drwav;
144 pPCMFrames_libsndfile = (
float*)malloc((
size_t)(pcmFrameChunkSize * pWav->
channels *
sizeof(float)));
145 if (pPCMFrames_libsndfile ==
NULL) {
146 printf(
" [libsndfile] Out of memory");
150 pPCMFrames_drwav = (
float*)malloc((
size_t)(pcmFrameChunkSize * pWav->
channels *
sizeof(float)));
151 if (pPCMFrames_drwav ==
NULL) {
152 free(pPCMFrames_libsndfile);
153 printf(
" [dr_wav] Out of memory");
157 for (iPCMFrame = 0; iPCMFrame < pWav->
totalPCMFrameCount; iPCMFrame += pcmFrameChunkSize) {
164 free(pPCMFrames_libsndfile);
165 free(pPCMFrames_drwav);
182 if (pcmFrameCount_libsndfile != pcmFrameCount_drwav) {
183 printf(
" Decoded frame counts differ: pcmFrameCount=%d, libsndfile=%d, dr_wav=%d", (
int)pcmFrameCount, (
int)pcmFrameCount_libsndfile, (
int)pcmFrameCount_drwav);
188 DRWAV_ASSERT(pcmFrameCount_libsndfile == pcmFrameCount_drwav);
190 for (iPCMFrame = 0; iPCMFrame < pcmFrameCount_libsndfile; iPCMFrame += 1) {
196 for (iChannel = 0; iChannel < pWav->
channels; iChannel += 1) {
197 if (pPCMFrame_libsndfile[iChannel] != pPCMFrame_drwav[iChannel]) {
198 printf(
" PCM Frame @ %d[%d] does not match: pcmFrameCount=%d", (
int)iPCMFrame, iChannel, (
int)pcmFrameCount);
225 if (pPCMFrames_libsndfile ==
NULL) {
226 printf(
" [libsndfile] Out of memory");
231 if (pPCMFrames_drwav ==
NULL) {
232 free(pPCMFrames_libsndfile);
233 printf(
" [dr_wav] Out of memory");
237 for (iPCMFrame = 0; iPCMFrame < pWav->
totalPCMFrameCount; iPCMFrame += pcmFrameChunkSize) {
244 free(pPCMFrames_libsndfile);
245 free(pPCMFrames_drwav);
314 printf(
" Failed to open via libsndfile.");
320 printf(
" Failed to open via dr_wav.");
369 while (pFile !=
NULL) {
415 printf(
"Failed to initialize libsndfile API.");
420 printf(
"=======================================================================\n");
421 printf(
"DECODE TESTING\n");
422 printf(
"=======================================================================\n");
429 printf(
"=======================================================================\n");
430 printf(
"WARNING: Correctness Tests Disabled\n");
431 printf(
"=======================================================================\n");
436 printf(
"=======================================================================\n");
437 printf(
"DECODE PROFILING (LOWER IS BETTER)\n");
438 printf(
"=======================================================================\n");