Commit 69bc820a authored by David Reid's avatar David Reid

Fix an error when loading WAV files.

The sample format of a WAV file is not always being set which results
in get_data_format() returning ma_format_unknown.
parent 98a39ded
...@@ -61092,33 +61092,8 @@ static ma_result ma_wav_init_internal(const ma_decoding_backend_config* pConfig, ...@@ -61092,33 +61092,8 @@ static ma_result ma_wav_init_internal(const ma_decoding_backend_config* pConfig,
return MA_SUCCESS; return MA_SUCCESS;
} }
MA_API ma_result ma_wav_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_wav* pWav) static ma_result ma_wav_post_init(ma_wav* pWav)
{ {
ma_result result;
result = ma_wav_init_internal(pConfig, pWav);
if (result != MA_SUCCESS) {
return result;
}
if (onRead == NULL || onSeek == NULL) {
return MA_INVALID_ARGS; /* onRead and onSeek are mandatory. */
}
pWav->onRead = onRead;
pWav->onSeek = onSeek;
pWav->onTell = onTell;
pWav->pReadSeekTellUserData = pReadSeekTellUserData;
#if !defined(MA_NO_WAV)
{
ma_bool32 wavResult;
wavResult = ma_dr_wav_init(&pWav->dr, ma_wav_dr_callback__read, ma_wav_dr_callback__seek, pWav, pAllocationCallbacks);
if (wavResult != MA_TRUE) {
return MA_INVALID_FILE;
}
/* /*
If an explicit format was not specified, try picking the closest match based on the internal If an explicit format was not specified, try picking the closest match based on the internal
format. The format needs to be supported by miniaudio. format. The format needs to be supported by miniaudio.
...@@ -61155,6 +61130,38 @@ MA_API ma_result ma_wav_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_p ...@@ -61155,6 +61130,38 @@ MA_API ma_result ma_wav_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_p
} }
} }
return MA_SUCCESS;
}
MA_API ma_result ma_wav_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_wav* pWav)
{
ma_result result;
result = ma_wav_init_internal(pConfig, pWav);
if (result != MA_SUCCESS) {
return result;
}
if (onRead == NULL || onSeek == NULL) {
return MA_INVALID_ARGS; /* onRead and onSeek are mandatory. */
}
pWav->onRead = onRead;
pWav->onSeek = onSeek;
pWav->onTell = onTell;
pWav->pReadSeekTellUserData = pReadSeekTellUserData;
#if !defined(MA_NO_WAV)
{
ma_bool32 wavResult;
wavResult = ma_dr_wav_init(&pWav->dr, ma_wav_dr_callback__read, ma_wav_dr_callback__seek, pWav, pAllocationCallbacks);
if (wavResult != MA_TRUE) {
return MA_INVALID_FILE;
}
ma_wav_post_init(pWav);
return MA_SUCCESS; return MA_SUCCESS;
} }
#else #else
...@@ -61184,6 +61191,8 @@ MA_API ma_result ma_wav_init_file(const char* pFilePath, const ma_decoding_backe ...@@ -61184,6 +61191,8 @@ MA_API ma_result ma_wav_init_file(const char* pFilePath, const ma_decoding_backe
return MA_INVALID_FILE; return MA_INVALID_FILE;
} }
ma_wav_post_init(pWav);
return MA_SUCCESS; return MA_SUCCESS;
} }
#else #else
...@@ -61214,6 +61223,8 @@ MA_API ma_result ma_wav_init_file_w(const wchar_t* pFilePath, const ma_decoding_ ...@@ -61214,6 +61223,8 @@ MA_API ma_result ma_wav_init_file_w(const wchar_t* pFilePath, const ma_decoding_
return MA_INVALID_FILE; return MA_INVALID_FILE;
} }
ma_wav_post_init(pWav);
return MA_SUCCESS; return MA_SUCCESS;
} }
#else #else
...@@ -61244,6 +61255,8 @@ MA_API ma_result ma_wav_init_memory(const void* pData, size_t dataSize, const ma ...@@ -61244,6 +61255,8 @@ MA_API ma_result ma_wav_init_memory(const void* pData, size_t dataSize, const ma
return MA_INVALID_FILE; return MA_INVALID_FILE;
} }
ma_wav_post_init(pWav);
return MA_SUCCESS; return MA_SUCCESS;
} }
#else #else
...@@ -62422,6 +62435,18 @@ static ma_result ma_mp3_generate_seek_table(ma_mp3* pMP3, const ma_decoding_back ...@@ -62422,6 +62435,18 @@ static ma_result ma_mp3_generate_seek_table(ma_mp3* pMP3, const ma_decoding_back
return MA_SUCCESS; return MA_SUCCESS;
} }
static ma_result ma_mp3_post_init(ma_mp3* pMP3, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks)
{
ma_result result;
result = ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks);
if (result != MA_SUCCESS) {
return result;
}
return MA_SUCCESS;
}
MA_API ma_result ma_mp3_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_mp3* pMP3) MA_API ma_result ma_mp3_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_mp3* pMP3)
{ {
ma_result result; ma_result result;
...@@ -62449,7 +62474,7 @@ MA_API ma_result ma_mp3_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_p ...@@ -62449,7 +62474,7 @@ MA_API ma_result ma_mp3_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_p
return MA_INVALID_FILE; return MA_INVALID_FILE;
} }
ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks);
return MA_SUCCESS; return MA_SUCCESS;
} }
...@@ -62480,7 +62505,7 @@ MA_API ma_result ma_mp3_init_file(const char* pFilePath, const ma_decoding_backe ...@@ -62480,7 +62505,7 @@ MA_API ma_result ma_mp3_init_file(const char* pFilePath, const ma_decoding_backe
return MA_INVALID_FILE; return MA_INVALID_FILE;
} }
ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks);
return MA_SUCCESS; return MA_SUCCESS;
} }
...@@ -62512,7 +62537,7 @@ MA_API ma_result ma_mp3_init_file_w(const wchar_t* pFilePath, const ma_decoding_ ...@@ -62512,7 +62537,7 @@ MA_API ma_result ma_mp3_init_file_w(const wchar_t* pFilePath, const ma_decoding_
return MA_INVALID_FILE; return MA_INVALID_FILE;
} }
ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks);
return MA_SUCCESS; return MA_SUCCESS;
} }
...@@ -62544,7 +62569,7 @@ MA_API ma_result ma_mp3_init_memory(const void* pData, size_t dataSize, const ma ...@@ -62544,7 +62569,7 @@ MA_API ma_result ma_mp3_init_memory(const void* pData, size_t dataSize, const ma
return MA_INVALID_FILE; return MA_INVALID_FILE;
} }
ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks);
return MA_SUCCESS; return MA_SUCCESS;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment