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, MxDSStreamingAction** p_streamingAction,
MxStreamChunk* p_header MxStreamChunk* p_header
); );
static MxCore* ReadChunk(MxDSBuffer* p_buffer, MxU32* p_chunkData, MxU16 p_flags);
MxU8* SkipToData(); MxU8* SkipToData();
MxU8 ReleaseRef(MxDSChunk*); MxU8 ReleaseRef(MxDSChunk*);
void AddRef(MxDSChunk* p_chunk); void AddRef(MxDSChunk* p_chunk);
@ -60,6 +59,8 @@ class MxDSBuffer : public MxCore {
void FUN_100c6f80(MxU32 p_writeOffset); void FUN_100c6f80(MxU32 p_writeOffset);
MxU8* FUN_100c6fa0(MxU8* p_data); MxU8* FUN_100c6fa0(MxU8* p_data);
MxResult FUN_100c7090(MxDSBuffer* p_buf); 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); static MxResult Append(MxU8* p_buffer1, MxU8* p_buffer2);
inline MxU8* GetBuffer() { return m_pBuffer; } 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* current = p_data ? p_data : m_pBuffer;
MxU8* end = m_writeOffset + m_pBuffer - 8; MxU8* end = m_writeOffset + m_pBuffer - 8;
while (current <= end) { while (current <= end) {
switch (*((MxU32*) current)) { switch (*((MxU32*) current)) {
case 'TSIL': case FOURCC('L', 'I', 'S', 'T'):
case 'FFIR': case FOURCC('R', 'I', 'F', 'F'):
current += 12; current += 12;
break; break;
case 'aDxM': case FOURCC('M', 'x', 'D', 'a'):
case 'tSxM': case FOURCC('M', 'x', 'S', 't'):
current += 8; current += 8;
break; break;
case 'bOxM': case FOURCC('M', 'x', 'O', 'b'):
case 'hCxM': case FOURCC('M', 'x', 'C', 'h'):
if (current != p_data) if (current != p_data)
return current; return current;
current = ((MxU32) current & 1) + current; current = ((MxU32) current & 1) + current;
current += 8; current += 8;
break; break;
case 'dHxM': case FOURCC('M', 'x', 'H', 'd'):
current += (((MxU32*) current)[1] + 8); current += (((MxU32*) current)[1] + 8);
break; break;
} }