-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci/mingw: run meson tests #14207
ci/mingw: run meson tests #14207
Conversation
Download the artifacts for this pull request: |
By getting rid of subprocesses, you could simplify the |
70f2bd3
to
178af33
Compare
Removed what I've seen not needed. |
@@ -141,7 +148,7 @@ _ffmpeg () { | |||
--pkg-config=pkg-config --target-os=mingw32 | |||
--enable-cross-compile --cross-prefix=$TARGET- --arch=${TARGET%%-*} | |||
--cc="$CC" --cxx="$CXX" $commonflags | |||
--disable-{doc,programs,muxers,encoders} | |||
--disable-{doc,programs} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd rather only enable one relevant muxer or encoder for the tests (as on the line below)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if user wants to use different format? What is the gain to exclude some of them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most important encoders like x264/x265 aren't ffmpeg built-in anyway, so the users likely still won't get what they want. At this point most built-in encoders are unnecessary bloat.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But what is the gain of excluding what is available?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lower compile times.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see no significant difference. In cached state it is 4s difference, clean build was also not visibly slower, but I can test that to confirm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This excludes more than 200 files so it should definitely make a difference uncached.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Execution times of Build libraries
step:
master | #14207 | ||
---|---|---|---|
i386 | cached | 210 s | 170 s | 80 % |
i386 | clean | 976 s | 1026 s | 105 % |
x86_64 | cached | 262 s | 247 s | 94 % |
x86_64 | clean | 1083 s | 1162 s | 107 % |
It is slower, but the difference in my opinion is not significant enough to making some arbitrary list of enabled/disabled muxers. Note that we almost never do full rebuild, I needed to manually remove cache from my fork to test that.
Tested on CI with the following builds:
https://github.com/mpv-player/mpv/actions/runs/9191373753/job/25277639660
https://github.com/mpv-player/mpv/actions/runs/9183181995/job/25253412400
https://github.com/kasper93/mpv/actions/runs/9192050397/job/25279896478
https://github.com/kasper93/mpv/actions/runs/9192086594/job/25279911198
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most important encoders like x264/x265 aren't ffmpeg built-in anyway
At least you could save png/jpg screenshot... or something like that.
mktemp is good enough for this test purposes and also tests if libmpv is able to create a file that doesn't exist.
Helps with testing during cross-compilation and avoids external dependency. Output maybe is not that nice, but this output in our tests is not useful anyway. We know if it changes it is beacuse one of the dependency version changed.
If pathcch is not available paths are not normalized on Windows. Fixes tests on ancient mingw.
Allows running complied binaries on build machine.
pkgconfig is deprecated in favor of pkg-config. Define both for compatibility with meson < 1.3.0. https://mesonbuild.com/Release-notes-for-1-3-0.html#machine-files-pkgconfig-field-deprecated-and-replaced-by-pkgconfig
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the meson simplifications.
No more comments for a week, let's merge this. Can be improved if needed. |
No description provided.