Coder Social home page Coder Social logo

Comments (27)

Sibras avatar Sibras commented on September 18, 2024

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.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

Thanks for the info. But how does this work ? https://github.com/Microsoft/FFmpegInterop

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

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.
WinRT is support is planned but may take some time as all dependency libraries need to be tested and updated as required.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

thanks

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

I would like a further clarification.

That works because it does not build FFmpeg with any of the dependencies.
So how they integrate with these libraries ? does it not use APIs from these dependencies ?

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

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.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

thanks for background - update on WinRT.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

Any update ? Which libs are causing problems for WinRT ? can I help with the port ?

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

The current list of projects with completed WinRT porting is:

  • bzip2
  • zlib
  • iconv
  • lzma
  • libxml2
  • fdk
  • modplug (is rather broken under WinRT, Im looking at replacing it with openmpt)
  • lame
  • ogg
  • opus
  • soxr
  • speex
  • vorbis
  • libilbc
  • libgme
  • libvpx
  • theora
  • x264
  • x265
  • xvid
  • freetype
  • fontconfig
  • fribidi
  • harfbuzz
  • libgpgerror
  • libgcrypt
  • libssh
  • gmp
  • nettle
  • gnutls
  • libass
  • libbluray ???
  • libdvdread
  • libdvdnav
  • libcdio
  • libcdioparanoia
  • sdl

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

Thank you Great. Should you have an initial release without libs for DVD, CD etc. - which are the tricky ones for WinRT.

from ffmpeg.

ispysoftware avatar ispysoftware commented on September 18, 2024

Adding an x64 release build for UWP with the available libraries would be epic.

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

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.

from ffmpeg.

ispysoftware avatar ispysoftware commented on September 18, 2024

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.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

how do build the work in progress for UWP ?

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

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.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

Thank you, greate Would you be able add this to your pre-build executables?

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

For the prebuilt, what is the configuration set ? I will mirror that( minus not-supported deps) for uwp

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

the configure command line used is found in SMP/config.h under FFMPEG_CONFIGURATION

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

After much agony I got this going - had to individually copy the dependent includes files to msvc/include. I am not sure why. But I did. So, project_generate aborts at the following, any clues ? Attached screen shot
image

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

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 ?

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

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.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

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.

  1. how to get project generator do this ?
  2. I assume i run the project generator for the core after I build the dep projects ? (which is after the project gen for dependents)

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

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

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

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 ???

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

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.

from ffmpeg.

mediabuff avatar mediabuff commented on September 18, 2024

sibras, please see my travails. ffmpeginteropx/FFmpegInteropX#153 (comment)

Also, I get the following in win32 desktop app, using
https://github.com/ShiftMediaProject/FFmpeg/releases/tag/4.3.r96057.

[mpeg2video @ 0465BDC0] Invalid setup for format d3d11: missing configuration.
[mpeg2video @ 0465BDC0] decoding to AV_PIX_FMT_NONE is not supported.
[mpeg2video @ 0465BDC0] mpeg_decode_postinit() failure

from ffmpeg.

Sibras avatar Sibras commented on September 18, 2024

FFmpeg has now had WinRT builds for several releases now, closing this.

from ffmpeg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.