summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2020-03-26 17:17:06 -0700
committerMarco Nelissen <marcone@google.com>2020-03-26 17:43:55 -0700
commit5eb6a7ee7b33dd34280ef5a0da88f4b47a0072f1 (patch)
treeec79f6d7088e766af4cc39f65bf357431b5dd504
parentaf41595537b044618234fe7dd9ebfcc652de1576 (diff)
downloadsonivox-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.c5
-rw-r--r--arm-wt-22k/lib_src/eas_xmf.c2
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 */