Skip to content
Snippets Groups Projects

gst recipes: Disable plugins when building with MSVC

Merged Nirbheek Chauhan requested to merge nirbheek/cerbero:msvc-disable-plugins into master

Some libraries have issues that cause us to be unable to include their headers or link to their libraries when building with MSVC. Disable them when we're building with MSVC on Windows.

With this, you can produce a mostly-complete gstreamer-1.0 package that is built with MSVC on Windows.

Edited by Nirbheek Chauhan

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • For some libary I'm not surprise, e.g. spandsp has never built on MSCV, but for other it is really surprising and I'd like this patch to include link to tracker issues as these are thing we can fix.

  • Nirbheek Chauhan marked as a Work In Progress

    marked as a Work In Progress

  • Nirbheek Chauhan changed the description

    changed the description

  • Author Maintainer

    I didn't intend this PR to fix issues with plugins that don't build with MSVC, but to make the visualstudio variant usable by disabling the things that don't build when that variant is enabled.

    There may be low-hanging fruit to fix in here, but having it upstream is a good way to get people to try things out and fix them rather than have it all in a private branch and telling people to use that. The default configuration doesn't change.

    I think the comments are self-explanatory and the problems easily reproducible, but I can file issues. Is there anything other than srt and webrtcdsp that stands out to you?

  • OpenSSL definitely builds with MSVC also (for DTLS).

  • Author Maintainer

    OpenSSL definitely builds with MSVC also (for DTLS).

    It does, but our plugin doesn't. The error message is right there in the comment ;)

    gstdtlsconnection.c(375): error C2079: 'timeout' uses undefined struct 'timeval'

  • Nirbheek Chauhan added 3 commits

    added 3 commits

    • 2ca3ec5e - packages: Remove libiconv from Windows packaging
    • ff195320 - srt.recipe: Fix building of the srt plugin with MSVC
    • 17fa3d83 - gst recipes: Disable plugins when building with MSVC

    Compare with previous version

  • Strange, we do include Winsock2.h (even though lower case in the code) as per https://docs.microsoft.com/en-us/windows/desktop/api/winsock/ns-winsock-timeval

  • gstdtlsconnection.c(375): error C2079: 'timeout' uses undefined struct 'timeval'

    That build failure has been fixed in gst-plugins-bad@b1509b10. I can reproduce it with code prior that change.

  • Thanks Jakub, that explain all the questions. @nirbheek time to rebase ?

  • Nirbheek Chauhan added 3 commits

    added 3 commits

    • c820a2c4 - gst recipes: Disable plugins when building with MSVC
    • 9d2c3d27 - glib-networking: Fix module symbol exporting with MSVC
    • 7161b665 - glib.recipe: Fix loading of GIO modules built with MSVC

    Compare with previous version

  • Author Maintainer

    That build failure has been fixed in gst-plugins-bad@b1509b10. I can reproduce it with code prior that change.

    Thanks for the heads-up, I've rebased the branch. I've also added two new commits that fix GIO module loading.

  • added 1 commit

    • 4a182a39 - gstreamer.recipe: Explicitly enable dbghlp on MSVC

    Compare with previous version

  • @nirbheek just a note that my review was only requesting that each disabled element have an associated issue reported (in the respective upstream project if it's not GST fault). I'm happy you are fixing some of it, but I'm fine if some of it does not work for a first this release. Well document this in the release notes as know issues.

  • Author Maintainer

    @ndufresne Ah, that wasn't clear to me. I will use my judgement on which libraries to open upstream bugs about, and will add the rest to a single tracker Cerbero issue.

  • Thanks! And sorry for not being too clear.

  • mentioned in issue #121 (closed)

  • Nirbheek Chauhan added 4 commits

    added 4 commits

    • 5dccacd4 - gst recipes: Disable plugins when building with MSVC
    • dd5883fe - glib-networking: Fix module symbol exporting with MSVC
    • d0c7628a - glib.recipe: Fix loading of GIO modules built with MSVC
    • cfb156b8 - gstreamer.recipe: Explicitly enable dbghlp on MSVC

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading