I'm writing here because I'm out of ideas now, I allow my iOS app to be used on macOS and previously I was able to launch my app via XCode and perform debugging but suddenly I'm not able to launch my app anymore (I updated my OS (12.6) and my XCode (14.0.1) in the meantime). When I start it I see the icon but then it immediately crashes with following error in the output
AddressSanitizer: CHECK failed: sanitizer_mac.cpp:1231 "((ret_value)) <= (((1ULL << 36)))" ...
AddressSanitizer: CHECK failed: sanitizer_mac.cpp:1231 "((ret_value)) <= (((1ULL << 36)))" ...
(lldb)
I can't even put a breakpoint anywhere as my code doesn't even get executed. I tried a test project and it works there but my project doesn't start up even though it works perfectly fine on iOS/ tvOS and on iPads. How can I fix this error or what's exactly the problem?
Post
Replies
Boosts
Views
Activity
I have a streaming app which is able to receive a video stream via raw h264 or h265 (HEVC). I render the stream via AVSampleBufferDisplayLayer. I uploaded my app via TestFlight and some users mentioned that the h265 freezes sometimes. I started to investigate the issue and it turned out the h265 stream sometimes freezes but without any errors. Even the AVSampleBufferDisplayLayer status is returning ".rendering" and "isReadyForMoreMediaData" is returning true. The stream only continues after I receive an I-Frame/ Key-Frame.
It is a real time streaming app and the problem occurs when I lose a frame during the streaming session (which can happen regularly). I connect to a 3rd Party streaming server so I can't change I-Frame interval. On h264 when I lose a frame then the stream will get pixelated until I receive the next I-Frame (which is expected) but for some reason the stream freezes when I lose a frame via h265. Are there any settings which I can apply to the "CMSampleBuffer" via the "CFDictionarySetValue" to avoid this?
I built a small sample app to reproduce the problem. It is available here
https://bitbucket.org/grill2010/hevcdecodertest/src/master/
The project will render a HEVC stream (stream length is only a few seconds in total). The sample app includes two buttons "Start decoding" and "Start Decoding with lost frame". If you click "Start decoding" the stream will be rendered correctly but if you click "Start Decoding with lost frame" you see that it will freeze immediately the app simulates a frame loss.
I previously posted this problem in regards of a similar problem on iPads
https://developer.apple.com/forums/thread/711905
on iPads the problem can be solved by using
controller.physicalInputProfile.buttons[GCInputButtonHome].preferredSystemGestureState = GCSystemGestureStateDisabled;
However this doesn't work on tvOS. A short press on the PS button is opening up some kind of menu (look at the attached screenshot) and a long press is causing the app to get minimized. Can this be avoided somehow? This is actually a very annoying problem for users when the PS button doesn't work correctly and causing the app to get minimized.
I'm currently beta testing my app on TestFlight and some users reported a problem with the DualSense controller. It seems on iOS 15 a long press on the PS Button of the controller is opening the App Library and I don't receive a callback via the valueChangedHandler function. The App library which will be opened looks like this
This is how I handle all controller inputs:
func handleController(controller: GCController) {
controller.extendedGamepad?.valueChangedHandler = { [weak self] (gamepad: GCExtendedGamepad, element: GCControllerElement) in
guard let self = self else {
return
}
// no feedback received when performing a long press on the PS button
}
Is there any way to suppress this behavior? Sony's PS Remote Play app somehow manages to suppress it, but I don't know how, nor can I find anything in Apple's official API documentation.