-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Add com.obsproject.Studio.Plugin.StreamFX #3159
base: new-pr
Are you sure you want to change the base?
Conversation
streamfx-force-frontend.patch
Outdated
@@ -0,0 +1,13 @@ | |||
diff --git a/CMakeLists.txt b/CMakeLists.txt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This patch is necessary to enable the front-end. The build system checks for the presence of ${libobs_SOURCE_DIR}/cmake/obs-frontend-api/obs-frontend-apiConfig.cmake
, which apparently isn't shipped in the Flatpak of OBS.
@GeorgesStavracas do you know if something can be done about it in OBS?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to ship this file (and any other files like this) by default. This should be fixed upstream, in the OBS Studio repository itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is more of an artifact of two conflicting PRs sent to upstream, one which only added the header file and the other which turned obs-frontend-api into its own module separate from libobs/obs. Unfortunately the former was merged and the latter was rejected.
There was/is also a separate PR that completely redesigns the CMake file for obs-studio, which is what I am waiting for before I redesign the CMake file for StreamFX again. I'm currently failing at finding the link for the CMake rework PR.
Edit: Found it
@GeorgesStavracas Let me know when it can be merged. |
I'll review it properly next week |
streamfx-fix-library-name.patch
Outdated
|
||
# Minimum Dependencies | ||
-list(APPEND PROJECT_LIBRARIES libobs) | ||
+list(APPEND PROJECT_LIBRARIES obs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm still fairly sure this link target is incorrect and targets the UI instead of the libobs
library. StreamFX's build system requires the presence of LibObsConfig.cmake
, which defines libobs
not obs
. The future 27.2.4+ CMakeLists build script also entirely revolves around the existence of libobs, as well as the necessary cmake files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added this patch before setting the libobs_SOURCE_DIR
option, and didn't try to build without it afterwards. Indeed, it is not necessary, I removed it.
c261115
to
c6ab13e
Compare
bot, build com.obsproject.Studio.Plugin.StreamFX |
Queued test build for com.obsproject.Studio.Plugin.StreamFX. |
Started test build 93469 |
Build 93469 successful
|
For your information, there is a work-in-progress upstream PR which changes the CMake build system slightly. It will now allow specifying lookup paths for all three dependencies (if the platform needs them), so you can specify |
Nice! Unfortunately I can't test it now due to the OBS Flatpak not having the More worrisome, the Flatpak from OBS |
See this comment, it is an artifact from two conflicting PRs. The build system will be enhanced to also check for obs-frontend-api.lib and obs-frontend-api.h if that cmake file is missing. |
That'd be great, as we have the libraries and headers in the Flatpak. |
@Xaymar Since both OBS and StreamFX will have major changes in their build system, I think it'll be better to wait for their next respective release before publishing the StreamFX Flatpak, to avoid any disruption in the updates while the manifest is adapted. Is that fine with you? |
@rmnvgr v0.12 has no set release date, so it might release before or after OBS Studio 28.0 is out. So I don't mind, since I already release non-flatpak packages anyway. |
It's been a few months, here's the status from my end:
As I don't plan to make any other massive changes to the build system for now, this should be as stable as it gets until there's another massive change necessary. Edit: Due to the above changes, it is now required to provide the proper OBS Libraries as a CMakeConfig module. |
@GeorgesStavracas @Xaymar Can you please give me simple yes or no whether it's good to be merged? |
@barthalion No, I will rework it when OBS 28 releases. I'll put the MR in draft until then. @Xaymar Thank you for the update! |
c6ab13e
to
12db4b4
Compare
bot, build com.obsproject.Studio.Plugin.StreamFX |
Queued test build for com.obsproject.Studio.Plugin.StreamFX. |
bot, build com.obsproject.Studio.Plugin.StreamFX |
Queued test build for com.obsproject.Studio.Plugin.StreamFX. |
Now that OBS 28 is out, I did a test build with the latest StreamFX alpha, it builds without any patches, which is nice. (I built it locally, I don't know why the bot doesn't start the build). I only needed to force the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The manifest and the metainfo files look good to me. Unless @Xaymar has any objection to landing this, I think it's ready to go!
LGTM if Flathub has multiple update channels like StreamFX does. Alpha, Beta and Candidate versions shouldn't be used by end-users without explicitly opting into them |
There is Flathub Beta, which could hold Beta and RC releases, but not alpha. I'll leave the decision to use Flathub Beta or not to you and @rmnvgr's discretion 🙂 |
I'd prefer to avoid maintaining the beta channel and stick to releases. I'll update the manifest and mark the PR as ready when StreamFX 0.12 releases. |
Queued test build for com.obsproject.Studio.Plugin.StreamFX. |
Started test build 25378 |
Build 25378 successful
|
@hfiguiere Thanks, that appears to fix it. |
bot, build com.obsproject.Studio.Plugin.StreamFX |
Queued test build for com.obsproject.Studio.Plugin.StreamFX. |
Started test build 27386 |
Build 27386 successful
|
The plugin is loading. Nonetheless there is an error about a missing library in the startup messages:
|
The library needed might be here: https://aomedia.googlesource.com/aom/. Though, it might not be too much of a worry, since not many platforms support AV1 yet. |
AOM encoder in StreamFX is deprecated and scheduled to be removed in a future revision. Even if you provide the library, it will just stay hidden. |
Ok, I am going to ignore the message then. Thanks for letting me know. |
bot, build com.obsproject.Studio.Plugin.StreamFX |
Queued test build for com.obsproject.Studio.Plugin.StreamFX. |
Started test build 29261 |
Build 29261 successful
|
Just a heads-up, in case things break, the reason is that I had to remove a few GPLv2 "or later" incompatible submissions to the plugin retroactively. I've mostly restored the content of the repository to the best of my ability, but still have to do a lot of work to fix up the remaining branches, and then rebuild binaries without the unwanted code. |
Sorry I might be missing something, but when I tried to install this via @flathubbot's comment above, I get a 404 error. Is there a Flatpak of the StreamFX plugin that I can install and test now @Xaymar? |
bot, build com.obsproject.Studio.Plugin.StreamFX |
Queued test build for com.obsproject.Studio.Plugin.StreamFX. |
Started test build 56480 |
Build 56480 failed |
the test build expired, and the current PR must be updated as the upstream source repository doesn't carry the revisions that is expected. |
Thanks @hfiguiere, sounds like we need OP @rmnvgr to update this pull request? |
At the current time, I do not maintain a flatpak package however in the future official packages for various Linux distributions may be considered. However due to the CEF and Wayland incompatibility that causes OBS Studio to crash, it is also likely that Linux support is dropped entirely unless someone has a known way to fix it. |
Is this still being worked on? |
diff --git a/com.obsproject.Studio.Plugin.StreamFX.yml b/com.obsproject.Studio.Plugin.StreamFX.yml
index 269ad8f..c040e58 100644
--- a/com.obsproject.Studio.Plugin.StreamFX.yml
+++ b/com.obsproject.Studio.Plugin.StreamFX.yml
@@ -21,8 +21,8 @@ modules:
sources:
- type: git
url: https://github.com/Xaymar/obs-StreamFX.git
- tag: 0.12.0a173
- commit: fcb441bdf6e5c70d5eb5ebf6795f2ddd43f70a23
+ tag: 0.12.0b299
+ commit: 8b97c2b23ddd931eee538e6feec71d76d42e494d
disable-shallow-clone: true
x-checker-data:
type: json After changing this I was able to run |
Please confirm your submission meets all the criteria
We agreed with the developer to ship the patches to the build system downstream.