mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-22 00:06:59 +02:00
Fix a crash trying to seek on a failed async data stream.
This commit is contained in:
@@ -34,13 +34,13 @@ int main(int argc, char** argv)
|
||||
|
||||
|
||||
#if 1
|
||||
result = ma_engine_sound_init_from_file(&engine, argv[1], MA_DATA_SOURCE_FLAG_DECODE | MA_DATA_SOURCE_FLAG_ASYNC | MA_DATA_SOURCE_FLAG_STREAM, NULL, &sound);
|
||||
result = ma_engine_sound_init_from_file(&engine, /*argv[1]*/ "unknownfile.wav", MA_DATA_SOURCE_FLAG_DECODE | MA_DATA_SOURCE_FLAG_ASYNC | MA_DATA_SOURCE_FLAG_STREAM, NULL, &sound);
|
||||
if (result != MA_SUCCESS) {
|
||||
ma_engine_uninit(&engine);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*ma_data_source_seek_to_pcm_frame(sound.pDataSource, 5000000);*/
|
||||
ma_data_source_seek_to_pcm_frame(sound.pDataSource, 5000000);
|
||||
|
||||
ma_engine_sound_set_volume(&engine, &sound, 0.25f);
|
||||
ma_engine_sound_set_pitch(&engine, &sound, 1.0f);
|
||||
@@ -51,8 +51,8 @@ int main(int argc, char** argv)
|
||||
|
||||
#if 1
|
||||
/*ma_engine_play_sound(&engine, argv[1], NULL);*/
|
||||
ma_engine_play_sound(&engine, argv[2], NULL);
|
||||
ma_engine_play_sound(&engine, argv[3], NULL);
|
||||
/*ma_engine_play_sound(&engine, argv[2], NULL);
|
||||
ma_engine_play_sound(&engine, argv[3], NULL);*/
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
|
||||
@@ -3143,6 +3143,11 @@ static ma_result ma_resource_manager_handle_message__seek_data_stream(ma_resourc
|
||||
MA_ASSERT(pResourceManager != NULL);
|
||||
MA_ASSERT(pDataStream != NULL);
|
||||
|
||||
/* For streams the status should be MA_SUCCESS for this to do anything. */
|
||||
if (pDataStream->result != MA_SUCCESS || pDataStream->isDecoderInitialized == MA_FALSE) {
|
||||
return MA_INVALID_OPERATION;
|
||||
}
|
||||
|
||||
/*
|
||||
With seeking we just assume both pages are invalid and the relative frame cursor at at position 0. This is basically exactly the same as loading, except
|
||||
instead of initializing the decoder, we seek to a frame.
|
||||
|
||||
Reference in New Issue
Block a user