-
Notifications
You must be signed in to change notification settings - Fork 302
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
How to compile for WinRt and/or DLL versions #30
Comments
Well Dll's can be be created by selecting the DebugDll or ReleaseDLL configurations. However WinRT specific builds are not currently supported as many of the dependency libraries don't currently have WinRT support. |
Thanks for the info. But how does this work ? https://github.com/Microsoft/FFmpegInterop |
That works because it does not build FFmpeg with any of the dependencies. The build projects in this repo add additional features by using many dependency projects. As stated previously several off these projects don't have WinRT support so a FFmpeg using them cant have WinRT support until all the used dependencies are updated. |
thanks |
I would like a further clarification.
|
Yes they disable all dependencies and therefore loose any features provided by those dependencies. So for instance no x264/265/mp3lame encoders etc. Currently the builds provided here use the following dependencies: bzip2, fontconfig, freetype2, fribidi, game-music-emu, gmp, gnutls, lame, libass, libbluray, libcdio, libcdio-paranoia, libiconv, libilbc, liblzma, libssh, libxml2, libvpx, mfx_dispatch, modplug, opus, sdl, soxr, speex, theora, vorbis, x264, x265, xvid, zlib I am working on adding WinRT support and have modified many of the dependency projects to compile under winrt but there are still a couple of dependencies that I use that need notable code changes to get them to compile with winrt which is blocking it for the time being. |
thanks for background - update on WinRT. |
Any update ? Which libs are causing problems for WinRT ? can I help with the port ? |
The current list of projects with completed WinRT porting is:
|
Thank you Great. Should you have an initial release without libs for DVD, CD etc. - which are the tricky ones for WinRT. |
Adding an x64 release build for UWP with the available libraries would be epic. |
Still working on it. I just have limited time as this is a personal side project (gotta pay the bills first). The current blockers are gnutls, libbluray, mfx and openmpt. The kodi project has example code for libbluray UWP (also libdvdread, libdvdnav, libdvdcss etc.) in there repo but it disables bdj entirely. A better solution would be to integrate openjdk but that requires alot of work. |
Personally I have no use for the missing stuff, I just want to be able to encode to vp8/ogg. h264/aac and mp3 would be an added bonus. I've spent a few days trying to get it to build without much success. |
how do build the work in progress for UWP ? |
I just pushed an updated FFVSProjectGenerator that can create winrt/uwp configurations. So if you want to test the winrt support then you need the latest FFVSProjectGenerator from git master. Then pass it the configuration options that you want (making sure they are for dependencies that are supported for winrt) and then make sure to also pass "--enable-winrt". That will generate a new VS project that has configurations for winrt builds. |
Thank you, greate Would you be able add this to your pre-build executables? |
For the prebuilt, what is the configuration set ? I will mirror that( minus not-supported deps) for uwp |
the configure command line used is found in SMP/config.h under FFMPEG_CONFIGURATION |
Ok, traced it to following: ../msvc/include/windows-config.h(139): error C2371: 'uintptr_t': redefinition; different basic types (compiling source file ffmpeg/libavformat/tls_gnutls.c) I had copied windows-config.h from ..\source\gnutls\src\libopts\compat\windows-config.h to msvc\include. Is this correct ? |
You shouldn't need to manually copy any include files. The supplied vcxprojs files for each dependency automatically copies the required includes when they are built. So for instance the gnutls project already has a winrt configuration that will copy the required includes when it is built. |
thank you. Will save my future efforts. The problem i ran into was I could'nt get the dependent projects vcxprojs generated. I am attempting winrt compile. I was able to get the project generate generate the core. But not the dependency.
|
No, you only need to generate new projects for ffmpeg. All the dependency projects are already created in their corresponding repos and have already got project configurations for WinRT builds in them. Just open the projects in each dependencies SMP folder and youll see that they have WinRT configurations available |
Fantastic! Yes, I discovered after I posted. Any reason why the ‘core’ is not winrt enabled? At least from compilation standpoint. Also, found we don’t have winrt configurations for some dependent projects. Also the configuration names are bit confusing - releasedllstaticdeps - for dep projects ??? |
The winRT builds are only for WinRT/UWP apps. The core builds are not winrt because the winrt builds dont have all the features enabled in some cases due to winrt limitations. And the winrt builds only work on modern OSs in app form where as the default configs work on multiple different OSs. Not all dependencies have been updated to WinRT yet. See the list further up this page for the ones that are still pending. |
sibras, please see my travails. ffmpeginteropx/FFmpegInteropX#153 (comment) Also, I get the following in win32 desktop app, using [mpeg2video @ 0465BDC0] Invalid setup for format d3d11: missing configuration. |
FFmpeg has now had WinRT builds for several releases now, closing this. |
What is an easy way to do this ?
The text was updated successfully, but these errors were encountered: