philipp.hofmann
Members-
Content Count
67 -
Joined
-
Last visited
Everything posted by philipp.hofmann
-
curl-example for POST works, Delphi code throws an 404
philipp.hofmann replied to philipp.hofmann's topic in Network, Cloud and Web
Sorry, this was copy and paste from an example and it's only to demonstrate that there is an alternative approach. I won't use inline variables in my projects normally. -
curl-example for POST works, Delphi code throws an 404
philipp.hofmann replied to philipp.hofmann's topic in Network, Cloud and Web
Info: I was successful with the following code (using Indy now): with TIdHTTP.Create(nil) do try var FIdSSLIOHandlerSocketOpenSSL:TIdSSLIOHandlerSocketOpenSSL:=TIdSSLIOHandlerSocketOpenSSL.Create(nil); var Params: TIdMultiPartFormDataStream; filename:=StringReplace(Training.filename, '.ictt', '.fit', [rfIgnoreCase]); FIdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1_2; FIdSSLIOHandlerSocketOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1_2]; IOHandler := FIdSSLIOHandlerSocketOpenSSL; Request.ContentType := 'multipart/form-data'; Request.CustomHeaders.add('Authorization: Bearer ' + bearer); Params := TIdMultiPartFormDataStream.Create; try params.AddFile('file', filename, GetMIMETypeFromFile(filename)); ResponseStr := Post('https://pushinglimits.club/api/oauth/upload_single_fit_file', Params); finally Params.Free; end; finally Free; end; -
Hi, I play a video in my app and in the normal display it's absolutely okay. But if I display some information with overlays the video playback is jerky then. How I can prevent this? Best regards, Philipp
-
This was my first test, but without any effect. Because of the overlay each information is rendered always again. One positive effect seems to reduce the internal image size of the icons from 224x224 to 56x56.
-
It seems to be a problem with TTMSFMXCalendarPicker but there is a fix for this yet on TMS-Software-Homepage (3.7.8.6).
-
I have the same problem with a FMX-file in my project after migration to Delphi 11.3 and in my case also TMS is involved. Currently I don't know what to do. And I have installed with cleaned regristry. Every help is appreaciated.
-
Hi, I have to make the following settings for a test with a video chat software: "What you can try, if you haven't already, would be to set the AVAudioSession to Mode AVAudioSession.Mode.videoChat and add the AVAudioSession.CategoryOption.mixWithOthers." The reason is that currently as soon as I enter the video chat room, the music played in the app stops playing. Now I've tried this with the following code: procedure TicTrainerF.initIOSAudioSession(); var AudioSession: AVAudioSession; LErrorPtr: Pointer; LError: NSError; hasError: boolean; begin mlog.info('initIOSAudioSession'); hasError:=false; LErrorPtr := nil; AudioSession := TAVAudioSession.Wrap(TAVAudioSession.OCClass.sharedInstance); if (not hasError) then begin AudioSession.setMode(CocoaNSStringConst(libAVFoundation, 'AVAudioSessionModeVideoChat'),@LErrorPtr); if (LErrorPtr <> nil) then begin LError := TNSError.Wrap(LErrorPtr); mlog.info('initIOSAudioSession-Error (setMode): '+NSStrToStr(LError.localizedDescription)); hasError:=true; end; end; if (not hasError) then begin AudioSession.setCategory(CocoaNSStringConst(libAVFoundation, 'AVAudioSessionCategoryOptionMixWithOthers'),@LErrorPtr); if (LErrorPtr <> nil) then begin LError := TNSError.Wrap(LErrorPtr); mlog.info('initIOSAudioSession-Error (setCategory): '+NSStrToStr(LError.localizedDescription)); hasError:=true; end; end; if (not hasError) then mlog.info('initIOSAudioSession: finished successfully'); end; But I get an OSStatus error -50 error back during the calls. What else is wrong here? Regards, Philipp
-
Hi, I want to use a video chat in our embedded browser (TTMSFNCWebBrowser). For Android I have to request the CAMERA + RECORD_AUDIO permission beforehand, that's clear. For Windows, it's helpful to create a TCameraComponent for a short time to get also the allowance beforehand. For iOS the Video-Chat-Software is asking for the permission to use camera and microphone. But I'm lost with MacOS: I don't find any solution to ask for the permission to use the camera or the microphone in our app beforehand and also the video chat software is not asking for it but displaying an error. Is there any possibility to add our app in the MacOS camera and microphone permission list beforehand (Mac: How to check app permissions for camera, mic, Photos - 9to5Mac)? Best regards,
-
Camera and Microphone Permission for MacOS
philipp.hofmann replied to philipp.hofmann's topic in Cross-platform
I was so stupid. Set the correct entitlements and it's fine. I don't understand why this entitlements are not set in the CameraComponent example project but there is seems to be the entitlement <key>com.apple.security.get-task-allow</key> <true/> which is not generated in my case. But it's working now. -
Windows App Store icon sizes - unplated?
philipp.hofmann replied to Incus J's topic in Delphi IDE and APIs
I've created https://quality.embarcadero.com/browse/RSP-38836 to clarify this issue.- 9 replies
-
- appx
- windows store app
-
(and 3 more)
Tagged with:
-
Windows App Store icon sizes - unplated?
philipp.hofmann replied to Incus J's topic in Delphi IDE and APIs
Is there a solution for this behaviour in meantime? I have also the problem with the plated icon in Task Bar.- 9 replies
-
- appx
- windows store app
-
(and 3 more)
Tagged with:
-
Hi, has anyone experience with BLE connection on ChromeOS. I search with Google and it should be fine since ChromeOS version 68 but one customer use ChromeOS 100 and bleDevice.DiscoverServices() is returning directly 0 services. Best regards, Philipp
-
Massive (!) reduction of supported Android devices in 10.4
philipp.hofmann replied to stewag64's topic in Cross-platform
You find two entries in AndroidManifest.xml (here with Delphi 11): <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="30" /> So you have to compare not only the targetSdkVersion but also the minSdkVersion. Perhaps this reduce the number. You can set minSdkVersion manually in the Delphi 10.4.2 to the same value as in the Delphi 10.3.3 version to compare the number of devices then. But you can´t be sure that the Delphi 10.4.2 APK-file is running on Android devices with a lower sdk as with the default Delphi 10.4.2 value. -
Hi, I handle the normal Exception for MacOS/Android/iOS with TgoExceptionReportMessage: [DELPHI] Application.OnException:=TgoExceptionReporter.ExceptionHandler; TMessageManager.DefaultManager.SubscribeToMessage(TgoExceptionReportMessage, HandleExceptionReport); [/DELPHI] But after a long runtime I get some exceptions that let the app crash instantly. I can see the following info in the IPS-Report: {"app_name":"icTrainer","timestamp":"2022-02-27 06:29:52.00 +0100","app_version":"1.1.20","slice_uuid":"a396d6ae-7496-3d1c-a2e6-01cca47875b5","build_version":"1.1.20","platform":2,"bundleID":"de.ictrainer","share_with_app_devs":1,"is_first_party":0,"bug_type":"309","os_version":"iPhone OS 15.3.1 (19D52)","incident_id":"8B389F09-04BA-44D0-8C8F-A4731A463CED","name":"icTrainer"} { "uptime" : 540000, "procLaunch" : "2022-02-26 23:20:01.8441 +0100", "procRole" : "Foreground", "version" : 2, "userID" : 501, "deployVersion" : 210, "modelCode" : "iPad5,3", "procStartAbsTime" : 12397598747101, "coalitionID" : 538, "osVersion" : { "isEmbedded" : true, "train" : "iPhone OS 15.3.1", "releaseType" : "User", "build" : "19D52" }, "captureTime" : "2022-02-27 06:29:48.8427 +0100", "incident" : "8B389F09-04BA-44D0-8C8F-A4731A463CED", "bug_type" : "309", "pid" : 8845, "procExitAbsTime" : 13016489314095, "cpuType" : "ARM-64", "procName" : "icTrainer", "procPath" : "\/private\/var\/containers\/Bundle\/Application\/E6E92D83-83A8-4C74-93E0-7A164D03B852\/icTrainer.app\/icTrainer", "bundleInfo" : {"CFBundleShortVersionString":"1.1.20","CFBundleVersion":"1.1.20","CFBundleIdentifier":"de.ictrainer"}, "storeInfo" : {"deviceIdentifierForVendor":"AA2D17ED-3D2F-4958-8B29-9E18FB8DB067","thirdParty":true}, "parentProc" : "launchd", "parentPid" : 1, "coalitionName" : "de.ictrainer", "crashReporterKey" : "cddd0195c075fddd0ef10bb717fa644fb4870e8b", "isCorpse" : 1, "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"}, "ktriageinfo" : "VM - Fault hit memory shortage\nVM - Fault hit memory shortage\nVM - Fault hit memory shortage\nVM - Compressor failed a blocking pager_get\n", "asi" : {"libsystem_c.dylib":["abort() called"]}, "faultingThread" : 0, "threads" : [{"triggered":true,"id":1476280,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":1},{"value":4697931816},{"value":4413228416,"symbolLocation":0,"symbol":"_main_thread"},{"value":6045610786204958370},{"value":7993421764,"symbolLocation":1040,"symbol":"__simple_bprintf"},{"value":162},{"value":0},{"value":56},{"value":3763094163105146229},{"value":2874369050621497},{"value":328},{"value":1032064},{"value":0},{"value":6},{"value":259},{"value":4413228640,"symbolLocation":224,"symbol":"_main_thread"},{"value":6170703888},{"value":4697931776},{"value":0},{"value":0},{"value":6170721342},{"value":4413228416,"symbolLocation":0,"symbol":"_main_thread"},{"value":311}],"flavor":"ARM_THREAD_STATE64","lr":{"value":7993522212},"cpsr":{"value":1073741824},"fp":{"value":6170703648},"sp":{"value":6170703616},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":7455607272,"matchesCrashFrame":1},"far":{"value":0}},"queue":"com.apple.main-thread","frames":[{"imageOffset":27112,"symbol":"__pthread_kill","symbolLocation":8,"imageIndex":0},{"imageOffset":67620,"symbol":"pthread_kill","symbolLocation":208,"imageIndex":1},{"imageOffset":127156,"symbol":"abort","symbolLocation":120,"imageIndex":2},{"imageOffset":109020,"symbol":"malloc_vreport","symbolLocation":548,"imageIndex":3},{"imageOffset":109640,"symbol":"malloc_zone_error","symbolLocation":100,"imageIndex":3},{"imageOffset":62060,"symbol":"nanov2_allocate_from_block$VARIANT$mp","symbolLocation":544,"imageIndex":3},{"imageOffset":58516,"symbol":"nanov2_allocate$VARIANT$mp","symbolLocation":124,"imageIndex":3},{"imageOffset":58312,"symbol":"nanov2_malloc$VARIANT$mp","symbolLocation":60,"imageIndex":3},{"imageOffset":20828,"symbol":"_malloc_zone_malloc","symbolLocation":148,"imageIndex":3},{"imageOffset":53768,"symbol":"System::SysGetMem(NativeInt)","symbolLocation":20,"imageIndex":4},{"imageOffset":54388,"symbol":"System::_ReallocMem(void*&, NativeInt)","symbolLocation":144,"imageIndex":4},{"imageOffset":123960,"symbol":"System::DynArraySetLength(void*&, void*, NativeInt, NativeInt*)","symbolLocation":480,"imageIndex":4},{"imageOffset":111656,"symbol":"System::_DynArraySetLength(void*&, void*, NativeInt)","symbolLocation":40,"imageIndex":4},{"imageOffset":3334032,"symbol":"Fmx::Canvas::Gpu::TCanvasGpu::InternalFillPolygon(System::DynamicArray<System::Types::TPointF>, float, Fmx::Graphics::TBrush*, System::Types::TRectF const&)","symbolLocation":628,"imageIndex":4},{"imageOffset":3324024,"symbol":"Fmx::Canvas::Gpu::TCanvasGpu::DoFillPath(Fmx::Graphics::TPathData*, float, Fmx::Graphics::TBrush*)","symbolLocation":116,"imageIndex":4},{"imageOffset":2491632,"symbol":"Fmx::Graphics::TCanvas::FillPath(Fmx::Graphics::TPathData*, float, Fmx::Graphics::TBrush*)","symbolLocation":88,"imageIndex":4},{"imageOffset":3709504,"symbol":"Fmx::Objects::TPie::Paint()","symbolLocation":304,"imageIndex":4},{"imageOffset":4431504,"symbol":"Fmx::Controls::TControl::PaintInternal()::DoPaintInternal(void*)","symbolLocation":640,"imageIndex":4},{"imageOffset":4432380,"symbol":"Fmx::Controls::TControl::PaintInternal()::PaintAndClipChild(void*)","symbolLocation":328,"imageIndex":4},{"imageOffset":4428448,"symbol":"Fmx::Controls::TControl::PaintInternal()","symbolLocation":136,"imageIndex":4},{"imageOffset":4351172,"symbol":"Fmx::Controls::TControl::PaintChildren()","symbolLocation":652,"imageIndex":4},{"imageOffset":4431732,"symbol":"Fmx::Controls::TControl::PaintInternal()::DoPaintInternal(void*)","symbolLocation":868,"imageIndex":4},{"imageOffset":4432380,"symbol":"Fmx::Controls::TControl::PaintInternal()::PaintAndClipChild(void*)","symbolLocation":328,"imageIndex":4},{"imageOffset":4428448,"symbol":"Fmx::Controls::TControl::PaintInternal()","symbolLocation":136,"imageIndex":4},{"imageOffset":4351172,"symbol":"Fmx::Controls::TControl::PaintChildren()","symbolLocation":652,"imageIndex":4},{"imageOffset":4066104,"symbol":"Fmx::Controls::Presentation::TPresentedControl::PaintChildren()","symbolLocation":72,"imageIndex":4},{"imageOffset":4431732,"symbol":"Fmx::Controls::TControl::PaintInternal()::DoPaintInternal(void*)","symbolLocation":868,"imageIndex":4},{"imageOffset":4432380,"symbol":"Fmx::Controls::TControl::PaintInternal()::PaintAndClipChild(void*)","symbolLocation":328,"imageIndex":4},{"imageOffset":4428448,"symbol":"Fmx::Controls::TControl::PaintInternal()","symbolLocation":136,"imageIndex":4},{"imageOffset":4351172,"symbol":"Fmx::Controls::TControl::PaintChildren()","symbolLocation":652,"imageIndex":4},{"imageOffset":4431732,"symbol":"Fmx::Controls::TControl::PaintInternal()::DoPaintInternal(void*)","symbolLocation":868,"imageIndex":4},{"imageOffset":4432380,"symbol":"Fmx::Controls::TControl::PaintInternal()::PaintAndClipChild(void*)","symbolLocation":328,"imageIndex":4},{"imageOffset":4428448,"symbol":"Fmx::Controls::TControl::PaintInternal()","symbolLocation":136,"imageIndex":4},{"imageOffset":4779288,"symbol":"Fmx::Forms::TCustomForm::PaintRects(System::Types::TRectF const*, int)","symbolLocation":776,"imageIndex":4},{"imageOffset":4137600,"symbol":"Fmx::Platform::Ios::TFMXGLKView3D::drawRect(Iosapi::Foundation::NSRect)","symbolLocation":104,"imageIndex":4},{"imageOffset":16238672,"symbol":"DispatchToDelphi","symbolLocation":144,"imageIndex":4},{"imageOffset":8024,"symbol":"-[GLKView _display:]","symbolLocation":248,"imageIndex":5},{"imageOffset":197584,"symbol":"CA::Layer::layout_and_display_if_needed(CA::Transaction*)","symbolLocation":424,"imageIndex":6},{"imageOffset":277048,"symbol":"CA::Context::commit_transaction(CA::Transaction*, double, double*)","symbolLocation":520,"imageIndex":6},{"imageOffset":311088,"symbol":"CA::Transaction::commit()","symbolLocation":660,"imageIndex":6},{"imageOffset":195092,"symbol":"CA::Transaction::flush_as_runloop_observer(bool)","symbolLocation":84,"imageIndex":6},{"imageOffset":253892,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__","symbolLocation":32,"imageIndex":7},{"imageOffset":62984,"symbol":"__CFRunLoopDoObservers","symbolLocation":588,"imageIndex":7},{"imageOffset":43932,"symbol":"__CFRunLoopRun","symbolLocation":1012,"imageIndex":7},{"imageOffset":122396,"symbol":"CFRunLoopRunSpecific","symbolLocation":572,"imageIndex":7},{"imageOffset":6560,"symbol":"GSEventRunModal","symbolLocation":160,"imageIndex":8},{"imageOffset":5159824,"symbol":"-[UIApplication _run]","symbolLocation":1080,"imageIndex":9},{"imageOffset":2625900,"symbol":"UIApplicationMain","symbolLocation":332,"imageIndex":9},{"imageOffset":4096776,"symbol":"Fmx::Platform::Ios::TPlatformCocoaTouch::Run()","symbolLocation":88,"imageIndex":4},{"imageOffset":4726168,"symbol":"Fmx::Forms::TApplication::Run()","symbolLocation":92,"imageIndex":4},{"imageOffset":16237876,"symbol":"main","symbolLocation":168,"imageIndex":4},{"imageOffset":98896,"symbol":"start","symbolLocation":444,"imageIndex":10}]},{"id":1476283,"frames":[{"imageOffset":2832,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":4404,"symbol":"mach_msg","symbolLocation":72,"imageIndex":0},{"imageOffset":189620,"symbol":"System::Internal::Machexceptions::ExcThread(void*)","symbolLocation":156,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476300,"name":"com.apple.uikit.eventfetch-thread","frames":[{"imageOffset":2832,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":4404,"symbol":"mach_msg","symbolLocation":72,"imageIndex":0},{"imageOffset":27488,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":368,"imageIndex":7},{"imageOffset":44104,"symbol":"__CFRunLoopRun","symbolLocation":1184,"imageIndex":7},{"imageOffset":122396,"symbol":"CFRunLoopRunSpecific","symbolLocation":572,"imageIndex":7},{"imageOffset":95196,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":232,"imageIndex":11},{"imageOffset":351308,"symbol":"-[NSRunLoop(NSRunLoop) runUntilDate:]","symbolLocation":88,"imageIndex":11},{"imageOffset":4626604,"symbol":"-[UIEventFetcher threadMain]","symbolLocation":512,"imageIndex":9},{"imageOffset":407740,"symbol":"__NSThread__start__","symbolLocation":792,"imageIndex":11},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476317,"frames":[{"imageOffset":4232,"symbol":"__semwait_signal","symbolLocation":8,"imageIndex":0},{"imageOffset":18656,"symbol":"nanosleep","symbolLocation":212,"imageIndex":2},{"imageOffset":21928,"symbol":"usleep","symbolLocation":64,"imageIndex":2},{"imageOffset":900988,"symbol":"System::Classes::TThread::Sleep(int)","symbolLocation":32,"imageIndex":4},{"imageOffset":12926628,"symbol":"Mybluetoothmanager::TBluetoothLEService::Execute()","symbolLocation":2820,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476379,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476380,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476381,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476382,"name":"SDLTimer","frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":31569780,"symbol":"SDL_CondWaitTimeout","symbolLocation":148,"imageIndex":4},{"imageOffset":31570552,"symbol":"SDL_SemWaitTimeout","symbolLocation":76,"imageIndex":4},{"imageOffset":31456008,"symbol":"SDL_TimerThread","symbolLocation":404,"imageIndex":4},{"imageOffset":31572488,"symbol":"SDL_RunThread","symbolLocation":60,"imageIndex":4},{"imageOffset":31571056,"symbol":"RunThread","symbolLocation":12,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476408,"name":"AURemoteIO::IOThread","frames":[{"imageOffset":2832,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":4404,"symbol":"mach_msg","symbolLocation":72,"imageIndex":0},{"imageOffset":10140,"symbol":"void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup const&)::'lambda'(), std::__1::tuple<> > >(void*)","symbolLocation":532,"imageIndex":12},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476416,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":1203756,"symbol":"System::Syncobjs::TConditionVariableMutex::WaitFor(System::Syncobjs::TMutex*, unsigned int)","symbolLocation":300,"imageIndex":4},{"imageOffset":7075780,"symbol":"Avplayer::TFrameQueue::peek_writable()","symbolLocation":64,"imageIndex":4},{"imageOffset":7090848,"symbol":"Avplayer::TAVAudioThread::Execute()","symbolLocation":740,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476417,"frames":[{"imageOffset":4232,"symbol":"__semwait_signal","symbolLocation":8,"imageIndex":0},{"imageOffset":18656,"symbol":"nanosleep","symbolLocation":212,"imageIndex":2},{"imageOffset":21928,"symbol":"usleep","symbolLocation":64,"imageIndex":2},{"imageOffset":900988,"symbol":"System::Classes::TThread::Sleep(int)","symbolLocation":32,"imageIndex":4},{"imageOffset":7092080,"symbol":"Avplayer::TAVRefreshThread::Execute()","symbolLocation":208,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476418,"frames":[{"imageOffset":2916,"symbol":"semaphore_timedwait_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":17268,"symbol":"_dispatch_sema4_timedwait$VARIANT$mp","symbolLocation":60,"imageIndex":13},{"imageOffset":18688,"symbol":"_dispatch_semaphore_wait_slow","symbolLocation":72,"imageIndex":13},{"imageOffset":344376,"symbol":"System::Sysutils::WaitForSyncWaitObj(void*, unsigned int)","symbolLocation":92,"imageIndex":4},{"imageOffset":345408,"symbol":"System::Sysutils::WaitOrSignalObj(void*, void*, unsigned int)","symbolLocation":80,"imageIndex":4},{"imageOffset":93772,"symbol":"System::TMonitor::Wait(System::TMonitor*, unsigned int)","symbolLocation":140,"imageIndex":4},{"imageOffset":40392,"symbol":"System::TMonitor::Wait(System::TObject*, System::TObject*, unsigned int)","symbolLocation":88,"imageIndex":4},{"imageOffset":1204324,"symbol":"System::Syncobjs::TConditionVariableCS::WaitFor(System::Syncobjs::TCriticalSection*, unsigned int)","symbolLocation":88,"imageIndex":4},{"imageOffset":7201892,"symbol":"Avplayer::TAVPlayer::WaitForRead()","symbolLocation":96,"imageIndex":4},{"imageOffset":7083436,"symbol":"Avplayer::TAVReadThread::Execute()","symbolLocation":3276,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476480,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":23199340,"symbol":"frame_worker_thread","symbolLocation":492,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476481,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":23199340,"symbol":"frame_worker_thread","symbolLocation":492,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476482,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":23199340,"symbol":"frame_worker_thread","symbolLocation":492,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476483,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":23199340,"symbol":"frame_worker_thread","symbolLocation":492,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476484,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":1203756,"symbol":"System::Syncobjs::TConditionVariableMutex::WaitFor(System::Syncobjs::TMutex*, unsigned int)","symbolLocation":300,"imageIndex":4},{"imageOffset":7075780,"symbol":"Avplayer::TFrameQueue::peek_writable()","symbolLocation":64,"imageIndex":4},{"imageOffset":7186712,"symbol":"Avplayer::TAVPlayer::queue_picture(Frame::TAVFrame*, double, double, long long, int)","symbolLocation":48,"imageIndex":4},{"imageOffset":7089600,"symbol":"Avplayer::TAVVideoThread::Execute()","symbolLocation":1224,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1476485,"frames":[{"imageOffset":4232,"symbol":"__semwait_signal","symbolLocation":8,"imageIndex":0},{"imageOffset":18656,"symbol":"nanosleep","symbolLocation":212,"imageIndex":2},{"imageOffset":21928,"symbol":"usleep","symbolLocation":64,"imageIndex":2},{"imageOffset":900988,"symbol":"System::Classes::TThread::Sleep(int)","symbolLocation":32,"imageIndex":4},{"imageOffset":7092092,"symbol":"Avplayer::TAVRefreshThread::Execute()","symbolLocation":220,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1518290,"frames":[{"imageOffset":18920,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":1}]},{"id":1532058,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532059,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532060,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532061,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":1203756,"symbol":"System::Syncobjs::TConditionVariableMutex::WaitFor(System::Syncobjs::TMutex*, unsigned int)","symbolLocation":300,"imageIndex":4},{"imageOffset":7075780,"symbol":"Avplayer::TFrameQueue::peek_writable()","symbolLocation":64,"imageIndex":4},{"imageOffset":7090848,"symbol":"Avplayer::TAVAudioThread::Execute()","symbolLocation":740,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532062,"frames":[{"imageOffset":4232,"symbol":"__semwait_signal","symbolLocation":8,"imageIndex":0},{"imageOffset":18656,"symbol":"nanosleep","symbolLocation":212,"imageIndex":2},{"imageOffset":21928,"symbol":"usleep","symbolLocation":64,"imageIndex":2},{"imageOffset":900988,"symbol":"System::Classes::TThread::Sleep(int)","symbolLocation":32,"imageIndex":4},{"imageOffset":7092080,"symbol":"Avplayer::TAVRefreshThread::Execute()","symbolLocation":208,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532063,"frames":[{"imageOffset":2916,"symbol":"semaphore_timedwait_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":17268,"symbol":"_dispatch_sema4_timedwait$VARIANT$mp","symbolLocation":60,"imageIndex":13},{"imageOffset":18688,"symbol":"_dispatch_semaphore_wait_slow","symbolLocation":72,"imageIndex":13},{"imageOffset":344376,"symbol":"System::Sysutils::WaitForSyncWaitObj(void*, unsigned int)","symbolLocation":92,"imageIndex":4},{"imageOffset":345408,"symbol":"System::Sysutils::WaitOrSignalObj(void*, void*, unsigned int)","symbolLocation":80,"imageIndex":4},{"imageOffset":93772,"symbol":"System::TMonitor::Wait(System::TMonitor*, unsigned int)","symbolLocation":140,"imageIndex":4},{"imageOffset":40392,"symbol":"System::TMonitor::Wait(System::TObject*, System::TObject*, unsigned int)","symbolLocation":88,"imageIndex":4},{"imageOffset":1204324,"symbol":"System::Syncobjs::TConditionVariableCS::WaitFor(System::Syncobjs::TCriticalSection*, unsigned int)","symbolLocation":88,"imageIndex":4},{"imageOffset":7201892,"symbol":"Avplayer::TAVPlayer::WaitForRead()","symbolLocation":96,"imageIndex":4},{"imageOffset":7083436,"symbol":"Avplayer::TAVReadThread::Execute()","symbolLocation":3276,"imageIndex":4},{"imageOffset":1150008,"symbol":"System::Classes::ThreadProc(System::Classes::TThread*)","symbolLocation":188,"imageIndex":4},{"imageOffset":102528,"symbol":"System::ThreadWrapper(void*)","symbolLocation":48,"imageIndex":4},{"imageOffset":25508,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":1},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532391,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532392,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]},{"id":1532393,"frames":[{"imageOffset":5360,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":0},{"imageOffset":52220,"symbol":"_pthread_cond_wait$VARIANT$mp","symbolLocation":1216,"imageIndex":1},{"imageOffset":17607604,"symbol":"thread_worker","symbolLocation":100,"imageIndex":4},{"imageOffset":18940,"symbol":"thread_start","symbolLocation":8,"imageIndex":1}]}], "usedImages" : [ [/CODE] Does somebody has an idea how to search for this issue and handle it? Best regards, Philipp
-
MacOS 12: OpenSSL with error "Clients should not load the unversioned libcrpto dylib as it does not have a stable ABI."
philipp.hofmann posted a topic in Cross-platform
I have a new problem with MacOS12 (older versions are fine). I use the following OpenSSL-Libs to send mails: markieren Code: InitSSL from /Applications/icTrainer.app/Contents/MacOS SSL-Version: OpenSSL 1.0.2s 28 May 2019 and the files have the names markieren Code: libcrypto.1.0.0.dylib libssl.1.0.0.dylib but I get the following error message now: markieren Code: Invalid dylib load. Clients should not load the unversioned libcrpto dylib as it does not have a stable ABI. ... libcrypto.dylib -> here I can´t see the version number. a) What to do? b) Where to get the newest version of 1.0.0-MacOS-64-Libs? Best regards, Philipp Grüße, Philipp -
MacOS 12: OpenSSL with error "Clients should not load the unversioned libcrpto dylib as it does not have a stable ABI."
philipp.hofmann replied to philipp.hofmann's topic in Cross-platform
And now I get the following info about the used SSL-libraries: 09:31:23.452 354530816-Info InitSSL from /Applications/icTrainer.app/Contents/MacOS 09:31:23.477 354530816-Info SSL-Version: LibreSSL 2.8.3 But it works. -
MacOS 12: OpenSSL with error "Clients should not load the unversioned libcrpto dylib as it does not have a stable ABI."
philipp.hofmann replied to philipp.hofmann's topic in Cross-platform
Don´t ask my why the version number in the file name is 1.0.0. The libs are returning in my logs 1.0.2, so it should be fine. Thanks for the tip with the symlinks, that works fine with MacOS 12.0. -
Tethering: MacOS 11.x/iOS 14.x devices are not found with TTetheringManager.DiscoverManagers
philipp.hofmann posted a topic in RTL and Delphi Object Pascal
Hi, even after adding the new Apple Multicast-Entitlement it's not possible to use Tethering with MacOS 11.x and iOS 14.x devices on server side. This devices will not be found with the method TTetheringManager.DiscoverManagers requested on client side. It's fine with MacOS 10.x and iOS 13.x devices on server side. You can test this also with the samples - DesktopWallApp (server) - MobilePhotoApp (client) DesktopWallApp Windows Android MacOS 10.x iOS 13.x MacOS 11.x iOS 14.x MobilePhotoApp Windows OK OK OK OK not OK not OK Android OK OK OK OK not OK not OK MacOS 10.x OK OK OK OK not OK not OK iOS 13.x OK OK OK OK not OK not OK MacOS 11.x OK OK OK OK not OK not OK iOS 14.x OK OK OK OK not OK not OK The reason is that the method TTetheringNetworkManagerCommunicationThread.DoOnReceiveData is never reached with this OS versions. This problem crops the usage of Tethering as the biggest part of MacOS/iOS devices are running with the newest OS-version. So Tethering is usable for Windows and Android only. Do anybody knows a solution for this. Best regards, Philipp Activity -
Tethering: MacOS 11.x/iOS 14.x devices are not found with TTetheringManager.DiscoverManagers
philipp.hofmann replied to philipp.hofmann's topic in RTL and Delphi Object Pascal
I have found now the reason: - as long as I have a iPad connected to my MacBook via USB-C-Cable, I can't establish a Tethering connection (means I can't discover the iPad and I can't discover the MacOS device) - as soon as I remove the cable, I can establish a Tethering connection and can discover both devices -
TIdUDPListenerThread.UDPRead is not reached on MacOS 11 (but 10)
philipp.hofmann posted a topic in RTL and Delphi Object Pascal
Hi, I'm searching for the reason that TIdUDPListenerThread.UDPRead is not reached in my Tethering app if I run the app under MacOS 11. It's fine with MacOS 10. The FBindind.Select(AcceptWait) is always return false on MacOS11. How can I solve this? Best regards, Philipp TetheringDemo.zip -
TIdUDPListenerThread.UDPRead is not reached on MacOS 11 (but 10)
philipp.hofmann replied to philipp.hofmann's topic in RTL and Delphi Object Pascal
I have found now the reason: - as long as I have a iPad connected to my MacBook via USB-C-Cable, I can't establish a Tethering connection - as soon as I remove the cable, I can establish a Tethering connection -
Tethering: MacOS 11.x/iOS 14.x devices are not found with TTetheringManager.DiscoverManagers
philipp.hofmann replied to philipp.hofmann's topic in RTL and Delphi Object Pascal
If there is an access violation at this line, the binding was not successful before. a) Is the IP-address 192.168.1.56 correct for your test? This is the only relevant change by my patches. b) Did your App has the permission to access local network in iOS settings? c) Did your Provision profile has the new permission "com.apple.developer.networking.multicast"? https://developer.apple.com/contact/request/networking-multicast On my devices (I've tested with three iOS devices), it works fine (with and without mobile data). -
Tethering: MacOS 11.x/iOS 14.x devices are not found with TTetheringManager.DiscoverManagers
philipp.hofmann replied to philipp.hofmann's topic in RTL and Delphi Object Pascal
Since today it's running fine on my side for MacOS Big Sur 11.4 and iOS 14.6. The only thing I have updated this week was XCode. Attached you find all Tethering fixes I have done in my enviroment. TetheringPatches_Delphi_10.4.2.zip -
TIdUDPListenerThread.UDPRead is not reached on MacOS 11 (but 10)
philipp.hofmann replied to philipp.hofmann's topic in RTL and Delphi Object Pascal
There is no handler assigned to the event. The handler is called. The port is set correctly between both methods in the Tethering implementation. It works perfectly with Windows, Android, iOS 13 and MacOS 10. But now we come to magic: Since today it's running fine on MacOS 11 and iOS 14 also. I haven't updated the code or the OS. But I've updated to newest XCode version this week. This is the only dependency I can imagine that this was the reason. But thanks for your help to get a better understanding of the technic below Tethering. If I run again into problems, this could help. -
TIdUDPListenerThread.UDPRead is not reached on MacOS 11 (but 10)
philipp.hofmann replied to philipp.hofmann's topic in RTL and Delphi Object Pascal
The OnBeforeBind is requested but not assigned. But this is also the case under Windows and seems to be no problem. The code you are asking for should be constructor TTetheringNetworkServerCommUDP.Create(AIPVersion: TCommIPVersion; const ABindToAddress: string); var I: Integer; LSocket: IIPSocketHandle; LSubnetTable: TArray<TIPv4Subnet>; begin inherited Create; FIPVersion := AIPVersion; FUDPServer := PeerFactory.CreatePeer('', IIPUDPServer, nil) as IIPUDPServer; FUDPServer.ThreadedEvent := True; FUDPServer.OnRead := DoUDPRead; FUDPServer.OnException := DoUDPException; FUDPServer.IPVersion := FIPVersion; if ABindToAddress <> '' then begin FSocketUDP := FUDPServer.Bindings.Add; FSocketUDP.IP := ABindToAddress; FSocketUDP.IPVersion := FIPVersion; end else begin LSubnetTable := GStackPeers.GetIPv4Subnets; if Length(LSubnetTable) < 2 then begin FSocketUDP := FUDPServer.Bindings.Add; FSocketUDP.IPVersion := FIPVersion; end else begin for I := Low(LSubnetTable) to High(LSubnetTable) do begin LSocket := FUDPServer.Bindings.Add; LSocket.IPVersion := FIPVersion; LSocket.IP := LSubnetTable[I].Address; if not assigned(FSocketUDP) then FSocketUDP := LSocket; end; end; end; end; function TTetheringNetworkServerCommUDP.DoStartServer: Boolean; begin Result := True; try FUDPServer.Active := True; except // This is a non conventional method to catch an exception that is in a library that we do not want to have a dependency. // This is considered a HACK and not a good sample of programming techniques. // We are going to let this code handle the exceptions until we add a proper mechanism to propagate the // Indy exceptions through the IPPeerAPI in an ordered and safe manner. on E: Exception do begin Result := False; if not (CheckExceptionName(E, 'EIdCouldNotBindSocket') or CheckExceptionName(E, 'EIdSocketError')) then // Do not translate raise; end; end; end; Do you have an example how to use TIdUDPServer directly? I'm using the Delphi Tethering implementation to hide such complicate issues from me. And now I'm in as I try to solve an error.