On Fri, 16 May 2025, softworkz . wrote:

-----Original Message-----
From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of Martin
Storsjö
Sent: Freitag, 16. Mai 2025 10:19
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [FFmpeg-cvslog] fftools/graphprint: Now, make it a
Killer-Feature!

On Fri, 16 May 2025, softworkz . wrote:



-----Original Message-----
From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of Martin
Storsjö
Sent: Freitag, 16. Mai 2025 08:22
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [FFmpeg-cvslog] fftools/graphprint: Now, make
it a
Killer-Feature!

On Thu, 15 May 2025, softworkz wrote:

ffmpeg | branch: master | softworkz <softwo...@hotmail.com> | Thu May 15
23:10:02 2025 +0200| [1f2b8d7238eff4ab8a4d8d6177e250b8180d51f4] |
committer:
softworkz

fftools/graphprint: Now, make it a Killer-Feature!

remember this: -sg   <= means Show Graph

Signed-off-by: softworkz <softwo...@hotmail.com>



http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1f2b8d7238eff4ab8a4d
8d6177e250b8180d51f4
---

This broke compilation in a number of configurations:

Windows UWP/Phone:
https://fate.ffmpeg.org/report.cgi?slot=arm-msvc2022-
winphone&time=20250516053009

filelauncher.o : error LNK2019: unresolved external symbol ShellExecuteA
referenced in function ff_open_html_in_browser
ffmpeg_g.exe : fatal error LNK1120: 1 unresolved externals

iOS:
https://fate.ffmpeg.org/report.cgi?slot=aarch64-apple-darwin-
ios18&time=20250516011754

src/fftools/graph/filelauncher.c:61:13: error: 'system' is unavailable:
not available on iOS
    61 |         if (system(cmd) != 0)
       |             ^

/Users/mstorsjo/Xcode_16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/
Developer/SDKs/iPhoneOS.sdk/usr/include/_stdlib.h:184:6:
note: 'system' has been explicitly marked unavailable here
   184 | int      system(const char *) __DARWIN_ALIAS_C(system);
       |          ^
1 error generated.

tvOS:
https://fate.ffmpeg.org/report.cgi?slot=aarch64-apple-darwin-
tvos18&time=20250516014542

src/fftools/graph/filelauncher.c:61:13: error: 'system' is unavailable:
not available on tvOS
    61 |         if (system(cmd) != 0)
       |             ^

/Users/mstorsjo/Xcode_16.2.app/Contents/Developer/Platforms/AppleTVOS.platform
/Developer/SDKs/AppleTVOS.sdk/usr/include/_stdlib.h:184:6:
note: 'system' has been explicitly marked unavailable here
   184 | int      system(const char *) __DARWIN_ALIAS_C(system);
       |          ^
1 error generated.

// Martin


Hi Martin,

do you think this is a reasonable condition for Apple in configure?

       enable browser_launch
       if test -n "$sysroot"; then
           case "$sysroot" in
               */iPhone*.sdk|\
               */AppleTV*.sdk|\
               */WatchOS*.sdk|\
               */BridgeOS*.sdk)
                   disable browser_launch
                   ;;
           esac
       fi

This is not how we normally do it. String matching trying to detect things
is generally brittle. If the problem is that we can't compile a call to
system(), the configure check should try to compile a call to system(),
and if that doesn't succeed, avoid compiling the code that does that. That
also works for e.g. ShellExecuteA.

I'm preparing a patch that aims to limit this to Windows, Linux and Mac
(regardless of API availability) and I'm not sure how to determine whether
mac or the others above in configure.

Is there a better way?

Test compiling code and checking if the expected things are defined. You can include TargetConditionals.h and check if TARGET_OS_OSX evaluates to nonzero; that's what we do in code elsewhere anyway - grep for TARGET_OS_OSX.

// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to