Hello
I want to work on GStreamer support for Windows (directsound and wasapi elements) and I look for advice for the most convenient setup. Cerbero is cool but recompiling whole package after change can be painful. What is the most convenient way to go? msys2? Native Microsoft tools? Marcin
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Marcin,
On Sat, Oct 29, 2016 at 12:13 PM, [hidden email] <[hidden email]> wrote: > I want to work on GStreamer support for Windows (directsound and wasapi > elements) and I look for advice for the most convenient setup. Cerbero is > cool but recompiling whole package after change can be painful. > > What is the most convenient way to go? msys2? Native Microsoft tools? > Unfortunately, Cerbero is currently the only way to do GStreamer development on Windows. The real pain with Cerbero is actually that it builds everything with Autotools so it takes forever to bootstrap and setup. You can find instructions here: https://cgit.freedesktop.org/gstreamer/cerbero/tree/README#n36 This will build GStreamer and all its dependencies with Autotools (MinGW/GCC). It also isn't the most robust system, so you can expect some build issues while setting it up. Do pop in at #gstreamer on FreeNode if you have issues! If you want to build GStreamer and some of its dependencies with MSVC (but the majority of dependencies will still use Autotools/MinGW/GCC), you can take a look at this experimental Cerbero branch: https://github.com/centricular/cerbero#windows A little while back I also wrote a doc about development of GStreamer using Cerbero: https://github.com/centricular/cerbero-docs/blob/master/start.md#dev-workflow Hope this helps! -- ~Nirbheek Chauhan _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello Nirbheek, I am quite familiar with Cerbero. However as you noticed it takes ages to build anything so it's not very nice for daily development of Windows-related plug-ins. Anyway I will handle this somehow or find a workaround M. sob., 29.10.2016, 09:02 użytkownik Nirbheek Chauhan <[hidden email]> napisał: Hi Marcin, _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello, The new gst-build(0) module has been reported to work with msys2, I have not tested myself yet but believe we can find a nice workflow to develop GStreamer on Windows using it fwiw. Regards, Thibault Saunier (0) https://cgit.freedesktop.org/gstreamer/gst-build/ El oct 30, 2016 6:44 AM, "[hidden email]" <[hidden email]> escribió:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Sun, Oct 30, 2016 at 7:03 PM, Thibault Saunier
<[hidden email]> wrote: > The new gst-build(0) module has been reported to work with msys2, I have not > tested myself yet but believe we can find a nice workflow to develop > GStreamer on Windows using it fwiw. > I think we can get it working with pure MSVC with a little work. -- ~Nirbheek Chauhan _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
31.10.2016 06:32, Nirbheek Chauhan
пишет:
I think we can get it working with pure MSVC with a little work.
Could you, please, make it less archaic? For
now, GStreamer binaries for Windows are built with mingw-4.7
or msvc-2010. It
would be great to upgrade the toolchain to something more
modern.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mon, Oct 31, 2016 at 4:34 PM, Pavel Bludov <[hidden email]> wrote:
> 31.10.2016 06:32, Nirbheek Chauhan пишет: > > I think we can get it working with pure MSVC with a little work. > > > Could you, please, make it less archaic? > > For now, GStreamer binaries for Windows are built with mingw-4.7 or > msvc-2010. > Both of them are more then five years old. Everyone, who wants to use > GStreamer > _and_ Qt, are stuck with Qt 5.0 (mingw) or Qt 5.5 (msvc). > While the msvc binaries are quite usable, the mingw binaries aren't, since > Qt 5.0 lacks many modules. > > It would be great to upgrade the toolchain to something more modern. > I think you've missed our latest efforts w.r.t. porting GStreamer to Meson[1] which enables us to build on Windows with MinGW, MSVC 2010, 2013, and 2015. However, we officially only support building with MSVC 2015 with the Meson build files. 1. http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html The build files will be in the 1.10 release (only in the git repos for now), and the Cerbero bits will be merged in the next cycle. The previous conversation was about making the core of GStreamer buildable on Windows without Cerbero (and hence Autotools/MinGW) at all. As for MinGW/GCC, we would like to upgrade our toolchain but no one has gotten around to it yet. If you would like to work on that, we'd be happy to help and accept your work into Cerbero. :) -- ~Nirbheek Chauhan _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Pavel Bludov
On Mon, Oct 31, 2016 at 07:04:13PM +0800, Pavel Bludov wrote:
> 31.10.2016 06:32, Nirbheek Chauhan пишет: > > I think we can get it working with pure MSVC with a little > > work. > > > > Could you, please, make it less archaic? > > For now, GStreamer binaries for Windows are built with mingw-4.7 > or msvc-2010. Both of them are more then five years old. > Everyone, who wants to use GStreamer _and_ Qt, are stuck with Qt > 5.0 (mingw) or Qt 5.5 (msvc). While the msvc binaries are > quite usable, the mingw binaries aren't, since Qt 5.0 lacks many > modules. > > It would be great to upgrade the toolchain to something more > modern. I was able to use gst-build with msvc from visual studio 2015, using binaries from msys2 for the dependencies. I don't have my windows machine on hand to write up the full list of steps, but it's something like: 1. Install python and add it to PATH 2. Install git and add it to PATH 3. Download ninja-build and add it to PATH 4. Install msys2 5. Install dependencies in msys2. You want the packages whose names start with mingw-w64-x86_64- when those are present. You want glib, libxml2, pkg-config, bison, possibly some others. 6. Run this python script to make link.exe compatible versions of the mingw64 import libraries: https://github.com/scott-d-phillips/mingw_make_libs/blob/master/make_libs.py 7. Open a "Native x64 tools" command prompt from visual studio. 8. Append ;C:\msys64\mingw64\bin;C:\msys64\usr\bin to PATH 9. git clone gst-build 10. git clone meson inside the gst-build directory 11. run: py setup ninja -C build And then you should have gstreamer built with msvc. You can use the gst-uninstalled script to set up most of the environment, but you will need to make an additional directory under build called `dlls` or something, copy all the built .dll files there and add it to PATH. Also you might need to move the C:\msys64 directories from the end of PATH to the front at this point, I had a conflicting version of zlib1.dll from some other directory in the middle of my PATH. It's a bit rough but with a little effort I think building with msvc will be super easy with meson. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mon, Oct 31, 2016 at 11:38:42AM -0700, Scott D Phillips wrote:
> ... > 9. git clone gst-build Oops, I forgot that at this point the patches from this bug need applied: https://bugzilla.gnome.org/show_bug.cgi?id=773568 > 10. git clone meson inside the gst-build directory _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On 01-Nov-2016 01:23, "Scott D Phillips" <[hidden email]> wrote: Oh, I didn't see this bug or I would've gotten it into the 1.10 release. Will get this into the master branch soon after release. Do poke me on IRC if there's things like this that block building with Meson for you! :) _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Scott D Phillips
Hello Scott,
Thanks for figuring all that out! I gave your instructions a try but I think you are missing a step to get the pkg-file point to a place that msvc understand for the -I as they point to /mingw64/include/XXX but that does not work, can you remember what you do? What am I missing? :) I am also coming up with a simple script to do that all in one step. Thanks Thibault On Mon, Oct 31, 2016 at 3:38 PM, Scott D Phillips <[hidden email]> wrote: > On Mon, Oct 31, 2016 at 07:04:13PM +0800, Pavel Bludov wrote: >> 31.10.2016 06:32, Nirbheek Chauhan пишет: >> > I think we can get it working with pure MSVC with a little >> > work. >> > >> >> Could you, please, make it less archaic? >> >> For now, GStreamer binaries for Windows are built with mingw-4.7 >> or msvc-2010. Both of them are more then five years old. >> Everyone, who wants to use GStreamer _and_ Qt, are stuck with Qt >> 5.0 (mingw) or Qt 5.5 (msvc). While the msvc binaries are >> quite usable, the mingw binaries aren't, since Qt 5.0 lacks many >> modules. >> >> It would be great to upgrade the toolchain to something more >> modern. > > I was able to use gst-build with msvc from visual studio 2015, > using binaries from msys2 for the dependencies. I don't have my > windows machine on hand to write up the full list of steps, but > it's something like: > > 1. Install python and add it to PATH > 2. Install git and add it to PATH > 3. Download ninja-build and add it to PATH > 4. Install msys2 > 5. Install dependencies in msys2. You want the packages whose > names start with mingw-w64-x86_64- when those are present. You > want glib, libxml2, pkg-config, bison, possibly some others. > 6. Run this python script to make link.exe compatible versions of > the mingw64 import libraries: > > https://github.com/scott-d-phillips/mingw_make_libs/blob/master/make_libs.py > > 7. Open a "Native x64 tools" command prompt from visual studio. > 8. Append ;C:\msys64\mingw64\bin;C:\msys64\usr\bin to PATH > 9. git clone gst-build > 10. git clone meson inside the gst-build directory > 11. run: > > py setup > > ninja -C build > > And then you should have gstreamer built with msvc. You can use > the gst-uninstalled script to set up most of the environment, but > you will need to make an additional directory under build called > `dlls` or something, copy all the built .dll files there and add > it to PATH. Also you might need to move the C:\msys64 directories > from the end of PATH to the front at this point, I had a > conflicting version of zlib1.dll from some other directory in the > middle of my PATH. > > It's a bit rough but with a little effort I think building with > msvc will be super easy with meson. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hey,
Nevermind me, I just needed to use PKG_CONFIG_SYSROOT_DIR. Keeping you posted about the windows setup script. Thibault On Fri, Nov 18, 2016 at 8:54 PM, Thibault Saunier <[hidden email]> wrote: > Hello Scott, > > Thanks for figuring all that out! I gave your instructions a try but I > think you are missing a step to get the pkg-file point to a place that > msvc understand for the -I as they point to /mingw64/include/XXX but > that does not work, can you remember what you do? What am I missing? > :) > > I am also coming up with a simple script to do that all in one step. > > Thanks > > Thibault > > On Mon, Oct 31, 2016 at 3:38 PM, Scott D Phillips > <[hidden email]> wrote: >> On Mon, Oct 31, 2016 at 07:04:13PM +0800, Pavel Bludov wrote: >>> 31.10.2016 06:32, Nirbheek Chauhan пишет: >>> > I think we can get it working with pure MSVC with a little >>> > work. >>> > >>> >>> Could you, please, make it less archaic? >>> >>> For now, GStreamer binaries for Windows are built with mingw-4.7 >>> or msvc-2010. Both of them are more then five years old. >>> Everyone, who wants to use GStreamer _and_ Qt, are stuck with Qt >>> 5.0 (mingw) or Qt 5.5 (msvc). While the msvc binaries are >>> quite usable, the mingw binaries aren't, since Qt 5.0 lacks many >>> modules. >>> >>> It would be great to upgrade the toolchain to something more >>> modern. >> >> I was able to use gst-build with msvc from visual studio 2015, >> using binaries from msys2 for the dependencies. I don't have my >> windows machine on hand to write up the full list of steps, but >> it's something like: >> >> 1. Install python and add it to PATH >> 2. Install git and add it to PATH >> 3. Download ninja-build and add it to PATH >> 4. Install msys2 >> 5. Install dependencies in msys2. You want the packages whose >> names start with mingw-w64-x86_64- when those are present. You >> want glib, libxml2, pkg-config, bison, possibly some others. >> 6. Run this python script to make link.exe compatible versions of >> the mingw64 import libraries: >> >> https://github.com/scott-d-phillips/mingw_make_libs/blob/master/make_libs.py >> >> 7. Open a "Native x64 tools" command prompt from visual studio. >> 8. Append ;C:\msys64\mingw64\bin;C:\msys64\usr\bin to PATH >> 9. git clone gst-build >> 10. git clone meson inside the gst-build directory >> 11. run: >> >> py setup >> >> ninja -C build >> >> And then you should have gstreamer built with msvc. You can use >> the gst-uninstalled script to set up most of the environment, but >> you will need to make an additional directory under build called >> `dlls` or something, copy all the built .dll files there and add >> it to PATH. Also you might need to move the C:\msys64 directories >> from the end of PATH to the front at this point, I had a >> conflicting version of zlib1.dll from some other directory in the >> middle of my PATH. >> >> It's a bit rough but with a little effort I think building with >> msvc will be super easy with meson. >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Sat, Nov 19, 2016 at 09:30:16AM -0300, Thibault Saunier wrote:
> Hey, > > Nevermind me, I just needed to use PKG_CONFIG_SYSROOT_DIR. > Keeping you posted about the windows setup script. Hmm, I didn't need to do anything special with pkg-config env vars, just needed to get pkg-config itself in the PATH. Maybe you installed the msys2 pkg-config instead of the mingw64 one? I recently had occasion to set up a new machine and kept track of the exact steps I performed as I did: http://scott.ph/gst-build-msvc.md > Thibault > > On Fri, Nov 18, 2016 at 8:54 PM, Thibault Saunier <[hidden email]> wrote: > > Hello Scott, > > > > Thanks for figuring all that out! I gave your instructions a try but I > > think you are missing a step to get the pkg-file point to a place that > > msvc understand for the -I as they point to /mingw64/include/XXX but > > that does not work, can you remember what you do? What am I missing? > > :) > > > > I am also coming up with a simple script to do that all in one step. > > > > Thanks > > > > Thibault > > > > On Mon, Oct 31, 2016 at 3:38 PM, Scott D Phillips > > <[hidden email]> wrote: > >> On Mon, Oct 31, 2016 at 07:04:13PM +0800, Pavel Bludov wrote: > >>> 31.10.2016 06:32, Nirbheek Chauhan пишет: > >>> > I think we can get it working with pure MSVC with a little > >>> > work. > >>> > > >>> > >>> Could you, please, make it less archaic? > >>> > >>> For now, GStreamer binaries for Windows are built with mingw-4.7 > >>> or msvc-2010. Both of them are more then five years old. > >>> Everyone, who wants to use GStreamer _and_ Qt, are stuck with Qt > >>> 5.0 (mingw) or Qt 5.5 (msvc). While the msvc binaries are > >>> quite usable, the mingw binaries aren't, since Qt 5.0 lacks many > >>> modules. > >>> > >>> It would be great to upgrade the toolchain to something more > >>> modern. > >> > >> I was able to use gst-build with msvc from visual studio 2015, > >> using binaries from msys2 for the dependencies. I don't have my > >> windows machine on hand to write up the full list of steps, but > >> it's something like: > >> > >> 1. Install python and add it to PATH > >> 2. Install git and add it to PATH > >> 3. Download ninja-build and add it to PATH > >> 4. Install msys2 > >> 5. Install dependencies in msys2. You want the packages whose > >> names start with mingw-w64-x86_64- when those are present. You > >> want glib, libxml2, pkg-config, bison, possibly some others. > >> 6. Run this python script to make link.exe compatible versions of > >> the mingw64 import libraries: > >> > >> https://github.com/scott-d-phillips/mingw_make_libs/blob/master/make_libs.py > >> > >> 7. Open a "Native x64 tools" command prompt from visual studio. > >> 8. Append ;C:\msys64\mingw64\bin;C:\msys64\usr\bin to PATH > >> 9. git clone gst-build > >> 10. git clone meson inside the gst-build directory > >> 11. run: > >> > >> py setup > >> > >> ninja -C build > >> > >> And then you should have gstreamer built with msvc. You can use > >> the gst-uninstalled script to set up most of the environment, but > >> you will need to make an additional directory under build called > >> `dlls` or something, copy all the built .dll files there and add > >> it to PATH. Also you might need to move the C:\msys64 directories > >> from the end of PATH to the front at this point, I had a > >> conflicting version of zlib1.dll from some other directory in the > >> middle of my PATH. > >> > >> It's a bit rough but with a little effort I think building with > >> msvc will be super easy with meson. > >> _______________________________________________ > >> gstreamer-devel mailing list > >> [hidden email] > >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mon, Nov 21, 2016 at 4:33 PM, Scott D Phillips
<[hidden email]> wrote: > On Sat, Nov 19, 2016 at 09:30:16AM -0300, Thibault Saunier wrote: >> Hey, >> >> Nevermind me, I just needed to use PKG_CONFIG_SYSROOT_DIR. >> Keeping you posted about the windows setup script. > > Hmm, I didn't need to do anything special with pkg-config env > vars, just needed to get pkg-config itself in the PATH. Maybe you > installed the msys2 pkg-config instead of the mingw64 one? Indeed I noticed afterward that I had pkg-config installed instead of mingw-pkg-config which caused that issue (not sure why it did but well :)). > I recently had occasion to set up a new machine and kept track of > the exact steps I performed as I did: > > http://scott.ph/gst-build-msvc.md Nice, thanks. > >> Thibault >> >> On Fri, Nov 18, 2016 at 8:54 PM, Thibault Saunier <[hidden email]> wrote: >> > Hello Scott, >> > >> > Thanks for figuring all that out! I gave your instructions a try but I >> > think you are missing a step to get the pkg-file point to a place that >> > msvc understand for the -I as they point to /mingw64/include/XXX but >> > that does not work, can you remember what you do? What am I missing? >> > :) >> > >> > I am also coming up with a simple script to do that all in one step. >> > >> > Thanks >> > >> > Thibault >> > >> > On Mon, Oct 31, 2016 at 3:38 PM, Scott D Phillips >> > <[hidden email]> wrote: >> >> On Mon, Oct 31, 2016 at 07:04:13PM +0800, Pavel Bludov wrote: >> >>> 31.10.2016 06:32, Nirbheek Chauhan пишет: >> >>> > I think we can get it working with pure MSVC with a little >> >>> > work. >> >>> > >> >>> >> >>> Could you, please, make it less archaic? >> >>> >> >>> For now, GStreamer binaries for Windows are built with mingw-4.7 >> >>> or msvc-2010. Both of them are more then five years old. >> >>> Everyone, who wants to use GStreamer _and_ Qt, are stuck with Qt >> >>> 5.0 (mingw) or Qt 5.5 (msvc). While the msvc binaries are >> >>> quite usable, the mingw binaries aren't, since Qt 5.0 lacks many >> >>> modules. >> >>> >> >>> It would be great to upgrade the toolchain to something more >> >>> modern. >> >> >> >> I was able to use gst-build with msvc from visual studio 2015, >> >> using binaries from msys2 for the dependencies. I don't have my >> >> windows machine on hand to write up the full list of steps, but >> >> it's something like: >> >> >> >> 1. Install python and add it to PATH >> >> 2. Install git and add it to PATH >> >> 3. Download ninja-build and add it to PATH >> >> 4. Install msys2 >> >> 5. Install dependencies in msys2. You want the packages whose >> >> names start with mingw-w64-x86_64- when those are present. You >> >> want glib, libxml2, pkg-config, bison, possibly some others. >> >> 6. Run this python script to make link.exe compatible versions of >> >> the mingw64 import libraries: >> >> >> >> https://github.com/scott-d-phillips/mingw_make_libs/blob/master/make_libs.py >> >> >> >> 7. Open a "Native x64 tools" command prompt from visual studio. >> >> 8. Append ;C:\msys64\mingw64\bin;C:\msys64\usr\bin to PATH >> >> 9. git clone gst-build >> >> 10. git clone meson inside the gst-build directory >> >> 11. run: >> >> >> >> py setup >> >> >> >> ninja -C build >> >> >> >> And then you should have gstreamer built with msvc. You can use >> >> the gst-uninstalled script to set up most of the environment, but >> >> you will need to make an additional directory under build called >> >> `dlls` or something, copy all the built .dll files there and add >> >> it to PATH. Also you might need to move the C:\msys64 directories >> >> from the end of PATH to the front at this point, I had a >> >> conflicting version of zlib1.dll from some other directory in the >> >> middle of my PATH. >> >> >> >> It's a bit rough but with a little effort I think building with >> >> msvc will be super easy with meson. >> >> _______________________________________________ >> >> gstreamer-devel mailing list >> >> [hidden email] >> >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |