The upcoming obs-studio 30 release has libdatachannel as an optional dependency for WHIP streaming, which allows streaming with a latency of just a few hundred milliseconds. Reproducible: Always
Created attachment 873924 [details] proposed ebuild Here is an ebuild i made real quick, it definitely needs some adjustments. Also, libdatachannel requires plog which is currently in ::guru, and also I think it would be nice to package libjuice and use that instead of libnice.
Thank you for your contribution. I had a short look on the ebuild. Here a few ideas: * Please test the ebuild with pkgcheck scan --net from dev-util/pkgcheck * KEYWORDS need ~ for new ebuilds and after a version bump. Run ekeyword ~all YOUREBUILD * We should improve the DESCRIPTION. I do not understand what the package does by reading the DESCRIPTION text.
Created attachment 874152 [details] updated ebuild I've removed the whitespaces pkgcheck was complaining about and added the ~amd keyword. I don't really know what to do about the description as that's the description the project itself uses. The current description is also the one Archlinux uses and the freebsd build uses this as the description: "libdatachannel is a standalone implementation of WebRTC Data Channels, WebRTC Media Transport, and WebSockets in C++17 with C bindings for POSIX platforms (including GNU/Linux, Android, and Apple macOS) and Microsoft Windows.", but that's way over 80 characters long. I can't think of a better way than this without making it any less ambiguous.
Some quick thoughts: * Copyright At least I generally use the current year for new ebuilds (instead of the default starting at 1999). * Description Not sure about the content of the description, but it is indeed a tad lengthy. I was thinking something like: "Network library for real-time peer-to-peer data exchange" but that just might be describing WebRTC in general. :] If I was writing this, I might go with something like: "Implementation of WebRTC data exchange and signaling" ...or "data/media", though is media not also data?. * SRC_URI I think we usually have the GitHub archive URLs without the 'refs/tags' part, though I can't remember if there is any particular reason for it... it does seem to end up redirecting to something like that anyblue. That is, this: https://github.com/paullouisageneau/libdatachannel/archive/v0.19.3.tar.gz works as well. * Sorting Could sort USE, dependency lists, and CMake variables alphabetically. * CMake Args Could 'usex' the 'mycmakeargs': -DNO_EXAMPLES=$(usex !examples) or so.
Created attachment 875617 [details] proposed ebuild I applied your suggestions so far. I used the $(usex ...) syntax for mycmakeargs but not for the debug flag (changed it to the way games-action/prismlauncher does it). I've also fixed the websocket flag to actually do something and added a media flag. Per https://github.com/paullouisageneau/libdatachannel/blob/master/BUILDING.md : If you only need Data Channels, the option NO_MEDIA allows to make the library lighter by removing media support. Similarly, NO_WEBSOCKET removes WebSocket support. I've updated the version to reflect the newest release and made sure that it builds properly with all flags enabled and disabled (but only on amd64).