-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SDL locked audio issue #21
Comments
While I don't know anything about SDL's AHI handling and I also don't think it's SDL's responsibility to work around other programs erroneous handling of AHI resources, it might be an idea for SDL to check for locked AHI resources and, if found, simply use one of the free units available instead (Music, 0 to 3)? If such is even possible... |
This doesn't seem to be an SDL issue. If some application uses low-level (function) API to control AHI, then other applications cannot use it. For example, in such a case, try playing test sound using AHI prefs (any unit). AFAIK the only way is to change MPlayer to use device API. |
…pened This was the callstack: frame #3: 0x00000001004e1930 libSDL3.1.0.0.dylib`IOS_AddJoystickDevice(controller=0x0000600003b0c000, accelerometer=SDL_FALSE) at SDL_mfijoystick.m:528:14 frame #4: 0x00000001004e1a54 libSDL3.1.0.0.dylib`__IOS_JoystickInit_block_invoke(.block_descriptor=0x0000000100547760, note=@"GCControllerDidConnectNotification") at SDL_mfijoystick.m:673:45 frame #5: 0x000000018601e578 CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 128 frame #6: 0x00000001860bc074 CoreFoundation`___CFXRegistrationPost_block_invoke + 88 frame #7: 0x00000001860bbfbc CoreFoundation`_CFXRegistrationPost + 440 frame #8: 0x0000000185fefbac CoreFoundation`_CFXNotificationPost + 708 frame #9: 0x0000000186edc72c Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 88 frame #10: 0x000000019b054a18 GameController`__60-[_GCControllerManagerAppClient _onqueue_publishController:]_block_invoke + 156 frame #11: 0x0000000185dc19dc libdispatch.dylib`_dispatch_call_block_and_release + 32 frame #12: 0x0000000185dc3504 libdispatch.dylib`_dispatch_client_callout + 20 frame #13: 0x0000000185dd1d1c libdispatch.dylib`_dispatch_main_queue_drain + 928 frame #14: 0x0000000185dd196c libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44 frame #15: 0x000000018606ad6c CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 frame #16: 0x00000001860287ec CoreFoundation`__CFRunLoopRun + 2036 frame #17: 0x00000001860278a4 CoreFoundation`CFRunLoopRunSpecific + 612 frame #18: 0x00000001003b1194 libSDL3.1.0.0.dylib`process_pending_events at hid.c:509:9 frame #19: 0x00000001003aebe8 libSDL3.1.0.0.dylib`PLATFORM_hid_open_path(path="USB_054c_05c4_0x11a104290", bExclusive=0) at hid.c:823:2 frame #20: 0x00000001003b051c libSDL3.1.0.0.dylib`SDL_hid_open_path_REAL(path="USB_054c_05c4_0x11a104290", bExclusive=0) at SDL_hidapi.c:1419:19 frame #21: 0x00000001004dabdc libSDL3.1.0.0.dylib`HIDAPI_SetupDeviceDriver(device=0x0000600003518000, removed=0x000000016fdfee3c) at SDL_hidapijoystick.c:399:19 frame #22: 0x00000001004da890 libSDL3.1.0.0.dylib`HIDAPI_AddDevice(info=0x000060000212c2d0, num_children=0, children=0x0000000000000000) at SDL_hidapijoystick.c:843:5 frame #23: 0x00000001004d9148 libSDL3.1.0.0.dylib`HIDAPI_UpdateDeviceList at SDL_hidapijoystick.c:1000:21 frame #24: 0x00000001004d9940 libSDL3.1.0.0.dylib`HIDAPI_JoystickDetect at SDL_hidapijoystick.c:1205:13 frame #25: 0x00000001003bc6d8 libSDL3.1.0.0.dylib`SDL_UpdateJoysticks_REAL at SDL_joystick.c:1703:9 frame #26: 0x00000001003a13a8 libSDL3.1.0.0.dylib`SDL_PumpEventsInternal(push_sentinel=SDL_FALSE) at SDL_events.c:855:9 frame #27: 0x00000001003a1340 libSDL3.1.0.0.dylib`SDL_PumpEvents_REAL at SDL_events.c:879:5 frame #28: 0x000000010038b380 libSDL3.1.0.0.dylib`SDL_PumpEvents at SDL_dynapi_procs.h:572:1 frame #29: 0x0000000100004524 testgamepad`loop + 40 frame #30: 0x00000001000063d8 testgamepad`main + 2140 (cherry picked from commit a9650d4)
…pened This was the callstack: frame #3: 0x00000001004e1930 libSDL3.1.0.0.dylib`IOS_AddJoystickDevice(controller=0x0000600003b0c000, accelerometer=SDL_FALSE) at SDL_mfijoystick.m:528:14 frame #4: 0x00000001004e1a54 libSDL3.1.0.0.dylib`__IOS_JoystickInit_block_invoke(.block_descriptor=0x0000000100547760, note=@"GCControllerDidConnectNotification") at SDL_mfijoystick.m:673:45 frame #5: 0x000000018601e578 CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 128 frame #6: 0x00000001860bc074 CoreFoundation`___CFXRegistrationPost_block_invoke + 88 frame #7: 0x00000001860bbfbc CoreFoundation`_CFXRegistrationPost + 440 frame #8: 0x0000000185fefbac CoreFoundation`_CFXNotificationPost + 708 frame #9: 0x0000000186edc72c Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 88 frame #10: 0x000000019b054a18 GameController`__60-[_GCControllerManagerAppClient _onqueue_publishController:]_block_invoke + 156 frame #11: 0x0000000185dc19dc libdispatch.dylib`_dispatch_call_block_and_release + 32 frame #12: 0x0000000185dc3504 libdispatch.dylib`_dispatch_client_callout + 20 frame #13: 0x0000000185dd1d1c libdispatch.dylib`_dispatch_main_queue_drain + 928 frame #14: 0x0000000185dd196c libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44 frame #15: 0x000000018606ad6c CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 frame #16: 0x00000001860287ec CoreFoundation`__CFRunLoopRun + 2036 frame #17: 0x00000001860278a4 CoreFoundation`CFRunLoopRunSpecific + 612 frame #18: 0x00000001003b1194 libSDL3.1.0.0.dylib`process_pending_events at hid.c:509:9 frame #19: 0x00000001003aebe8 libSDL3.1.0.0.dylib`PLATFORM_hid_open_path(path="USB_054c_05c4_0x11a104290", bExclusive=0) at hid.c:823:2 frame #20: 0x00000001003b051c libSDL3.1.0.0.dylib`SDL_hid_open_path_REAL(path="USB_054c_05c4_0x11a104290", bExclusive=0) at SDL_hidapi.c:1419:19 frame #21: 0x00000001004dabdc libSDL3.1.0.0.dylib`HIDAPI_SetupDeviceDriver(device=0x0000600003518000, removed=0x000000016fdfee3c) at SDL_hidapijoystick.c:399:19 frame #22: 0x00000001004da890 libSDL3.1.0.0.dylib`HIDAPI_AddDevice(info=0x000060000212c2d0, num_children=0, children=0x0000000000000000) at SDL_hidapijoystick.c:843:5 frame #23: 0x00000001004d9148 libSDL3.1.0.0.dylib`HIDAPI_UpdateDeviceList at SDL_hidapijoystick.c:1000:21 frame #24: 0x00000001004d9940 libSDL3.1.0.0.dylib`HIDAPI_JoystickDetect at SDL_hidapijoystick.c:1205:13 frame #25: 0x00000001003bc6d8 libSDL3.1.0.0.dylib`SDL_UpdateJoysticks_REAL at SDL_joystick.c:1703:9 frame #26: 0x00000001003a13a8 libSDL3.1.0.0.dylib`SDL_PumpEventsInternal(push_sentinel=SDL_FALSE) at SDL_events.c:855:9 frame #27: 0x00000001003a1340 libSDL3.1.0.0.dylib`SDL_PumpEvents_REAL at SDL_events.c:879:5 frame #28: 0x000000010038b380 libSDL3.1.0.0.dylib`SDL_PumpEvents at SDL_dynapi_procs.h:572:1 frame #29: 0x0000000100004524 testgamepad`loop + 40 frame #30: 0x00000001000063d8 testgamepad`main + 2140
If you have an AHI output busy with another application opened (lets say for example MPlayer) and you launch an SDL app that still use the same audio source --> we got this message error:
Could not initialize SDL: Failed to load AHI
Raziel added:
SDL doesn't like another program hogging AHI resources...i got that with other SDL apps too.
https://www.amigans.net/modules/newbb/viewtopic.php?post_id=130403#forumpost130403
The text was updated successfully, but these errors were encountered: