mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-24 09:14:04 +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
|
#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) {
|
if (result != MA_SUCCESS) {
|
||||||
ma_engine_uninit(&engine);
|
ma_engine_uninit(&engine);
|
||||||
return -1;
|
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_volume(&engine, &sound, 0.25f);
|
||||||
ma_engine_sound_set_pitch(&engine, &sound, 1.0f);
|
ma_engine_sound_set_pitch(&engine, &sound, 1.0f);
|
||||||
@@ -51,8 +51,8 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
/*ma_engine_play_sound(&engine, argv[1], NULL);*/
|
/*ma_engine_play_sound(&engine, argv[1], NULL);*/
|
||||||
ma_engine_play_sound(&engine, argv[2], NULL);
|
/*ma_engine_play_sound(&engine, argv[2], NULL);
|
||||||
ma_engine_play_sound(&engine, argv[3], NULL);
|
ma_engine_play_sound(&engine, argv[3], NULL);*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
#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(pResourceManager != NULL);
|
||||||
MA_ASSERT(pDataStream != 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
|
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.
|
instead of initializing the decoder, we seek to a frame.
|
||||||
|
|||||||
Reference in New Issue
Block a user