Use FOURCC

This commit is contained in:
Christian Semmler 2024-01-10 06:02:07 -05:00
parent 92da604f19
commit 4112df92f4
2 changed files with 10 additions and 8 deletions

View File

@ -52,7 +52,6 @@ class MxDSBuffer : public MxCore {
MxDSStreamingAction** p_streamingAction,
MxStreamChunk* p_header
);
static MxCore* ReadChunk(MxDSBuffer* p_buffer, MxU32* p_chunkData, MxU16 p_flags);
MxU8* SkipToData();
MxU8 ReleaseRef(MxDSChunk*);
void AddRef(MxDSChunk* p_chunk);
@ -60,6 +59,8 @@ class MxDSBuffer : public MxCore {
void FUN_100c6f80(MxU32 p_writeOffset);
MxU8* FUN_100c6fa0(MxU8* p_data);
MxResult FUN_100c7090(MxDSBuffer* p_buf);
static MxCore* ReadChunk(MxDSBuffer* p_buffer, MxU32* p_chunkData, MxU16 p_flags);
static MxResult Append(MxU8* p_buffer1, MxU8* p_buffer2);
inline MxU8* GetBuffer() { return m_pBuffer; }

View File

@ -497,24 +497,25 @@ MxU8* MxDSBuffer::FUN_100c6fa0(MxU8* p_data)
{
MxU8* current = p_data ? p_data : m_pBuffer;
MxU8* end = m_writeOffset + m_pBuffer - 8;
while (current <= end) {
switch (*((MxU32*) current)) {
case 'TSIL':
case 'FFIR':
case FOURCC('L', 'I', 'S', 'T'):
case FOURCC('R', 'I', 'F', 'F'):
current += 12;
break;
case 'aDxM':
case 'tSxM':
case FOURCC('M', 'x', 'D', 'a'):
case FOURCC('M', 'x', 'S', 't'):
current += 8;
break;
case 'bOxM':
case 'hCxM':
case FOURCC('M', 'x', 'O', 'b'):
case FOURCC('M', 'x', 'C', 'h'):
if (current != p_data)
return current;
current = ((MxU32) current & 1) + current;
current += 8;
break;
case 'dHxM':
case FOURCC('M', 'x', 'H', 'd'):
current += (((MxU32*) current)[1] + 8);
break;
}