diff options
author | Marco Nelissen <marcone@google.com> | 2020-03-26 17:17:06 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2020-03-26 17:43:55 -0700 |
commit | 5eb6a7ee7b33dd34280ef5a0da88f4b47a0072f1 (patch) | |
tree | ec79f6d7088e766af4cc39f65bf357431b5dd504 | |
parent | af41595537b044618234fe7dd9ebfcc652de1576 (diff) | |
download | sonivox-5eb6a7ee7b33dd34280ef5a0da88f4b47a0072f1.tar.gz |
Fix DLS parsing
Fix a bug resulting from many of sonivox's 32 bit types actually being
64 bit.
Bug: 151448144
Test: play file with DLS and observe the DLS code actually being called,
compare output with example test vector output.
Change-Id: I6c2db281329805df03f8633d114e14f431521dbb
-rw-r--r-- | arm-wt-22k/lib_src/eas_mdls.c | 5 | ||||
-rw-r--r-- | arm-wt-22k/lib_src/eas_xmf.c | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/arm-wt-22k/lib_src/eas_mdls.c b/arm-wt-22k/lib_src/eas_mdls.c index 4d45d8b..4c33da0 100644 --- a/arm-wt-22k/lib_src/eas_mdls.c +++ b/arm-wt-22k/lib_src/eas_mdls.c @@ -466,6 +466,7 @@ EAS_RESULT DLSParser (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE fileHandle, EAS_RESULT result; SDLS_SYNTHESIZER_DATA dls; EAS_U32 temp; + uint32_t chunk_type; EAS_I32 pos; EAS_I32 chunkPos; EAS_I32 size; @@ -495,11 +496,11 @@ EAS_RESULT DLSParser (EAS_HW_DATA_HANDLE hwInstData, EAS_FILE_HANDLE fileHandle, /* seek to start of DLS and read in RIFF tag and set processor endian flag */ if ((result = EAS_HWFileSeek(dls.hwInstData, dls.fileHandle, offset)) != EAS_SUCCESS) return result; - if ((result = EAS_HWReadFile(dls.hwInstData, dls.fileHandle, &temp, sizeof(temp), &size)) != EAS_SUCCESS) + if ((result = EAS_HWReadFile(dls.hwInstData, dls.fileHandle, &chunk_type, sizeof(chunk_type), &size)) != EAS_SUCCESS) return result; /* check for processor endian-ness */ - dls.bigEndian = (temp == CHUNK_RIFF); + dls.bigEndian = (chunk_type == CHUNK_RIFF); /* first chunk should be DLS */ pos = offset; diff --git a/arm-wt-22k/lib_src/eas_xmf.c b/arm-wt-22k/lib_src/eas_xmf.c index 98269b6..62bdc17 100644 --- a/arm-wt-22k/lib_src/eas_xmf.c +++ b/arm-wt-22k/lib_src/eas_xmf.c @@ -697,7 +697,7 @@ static EAS_RESULT XMF_ReadNode (EAS_HW_DATA_HANDLE hwInstData, S_XMF_DATA *pXMFD if (chunkType == XMF_RIFF_CHUNK) { /* skip length */ - if ((result = EAS_HWFileSeekOfs(hwInstData, pXMFData->fileHandle, sizeof(EAS_I32))) != EAS_SUCCESS) + if ((result = EAS_HWFileSeekOfs(hwInstData, pXMFData->fileHandle, 4)) != EAS_SUCCESS) return result; /* get RIFF file type */ |