Skip to content

obs-outputs: Use system-wide FTL-SDK if present#4018

Merged
jp9000 merged 1 commit intoobsproject:masterfrom
Scrumplex:feat-use-system-ftl
Jan 18, 2021
Merged

obs-outputs: Use system-wide FTL-SDK if present#4018
jp9000 merged 1 commit intoobsproject:masterfrom
Scrumplex:feat-use-system-ftl

Conversation

@Scrumplex
Copy link
Contributor

@Scrumplex Scrumplex commented Jan 5, 2021

Related #3834
Fixes #3881

Description

To support FTL, it needed to be present in-tree to be compiled. This PR adds support for system-wide installations of libftl.

It uses pkg-config to find the system-wide installation.
If pkg-config can't provide libftl we just fall back to using the in-tree submodule.
If that's also not available it won't be included at all like before.

Motivation and Context

The OBS Studio package on Arch Linux does not come with FTL support, as both FTL-SDK and OBS Studio lacked the capabilities to use system libraries. (See [1] [2])
The former was solved by a fork as development stopped (The company behind it, Mixer, is not operating anymore). This PR should fix the latter problem upstream, instead of having to maintain patchsets in Arch Linux.

How Has This Been Tested?

I tested this on my Arch Linux machine. I installed ftl-sdk from the AUR and then built OBS in portable-mode. After starting the binary I tested the output by streaming to my instance of the Lightspeed streaming server.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

Not really sure about the first and last checkboxes, as I didn't change anything in code. I guess they are not applicable.

@dodgepong
Copy link
Member

We will be deprecating FTL entirely now that Mixer is dead. Expect a post about it on our Github discussions page soon.

@Scrumplex
Copy link
Contributor Author

We will be deprecating FTL entirely now that Mixer is dead. Expect a post about it on our Github discussions page soon.

That's unfortunate. Especially because there are a few services and projects using that as a primary protocol

@dodgepong
Copy link
Member

That's unfortunate. Especially because there are a few services and projects using that as a primary protocol

Then they should investigate using a protocol that is open and standard.

@GRVYDEV
Copy link

GRVYDEV commented Jan 5, 2021

We will be deprecating FTL entirely now that Mixer is dead. Expect a post about it on our Github discussions page soon.

We will be working on standardizing and reviving the FTL protocol hopefully you guys will be willing to wait until we can do this before deprecating?

Edit: If you are interested in talking with use about it you can join this server https://discord.gg/FhE7ApBJst

@dodgepong
Copy link
Member

Please direct further FTL discussion here: #4021

Copy link
Member

@RytoEX RytoEX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A single question about if + if versus if + elseif.

@WizardCM WizardCM added the Bug Fix Non-breaking change which fixes an issue label Jan 6, 2021
@Scrumplex Scrumplex force-pushed the feat-use-system-ftl branch 2 times, most recently from 581dcd9 to 45f635c Compare January 8, 2021 16:21
@Scrumplex
Copy link
Contributor Author

Rebased and fixed @RytoEX remark.

Can this be merged, as the FTL codebase will still be in OBS at least until next year?

Copy link
Member

@RytoEX RytoEX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use the correct commit prefix, obs-outputs: .

Can this be merged, as the FTL codebase will still be in OBS at least until next year?

As with any PR, this may be merged if and when time allows and if we're comfortable merging it.

@Scrumplex
Copy link
Contributor Author

As with any PR, this may be merged if and when time allows and if we're comfortable merging it.

Yeah no pressure. I was just unsure if this PR will be ignored because of the deprecation

@Scrumplex Scrumplex force-pushed the feat-use-system-ftl branch from 45f635c to 20568a0 Compare January 8, 2021 17:12
@Scrumplex Scrumplex requested a review from RytoEX January 8, 2021 17:13
@Scrumplex
Copy link
Contributor Author

The Windows build failing should be attributed to obs-browser (commits 0a614cb and onwards)

@Texas40
Copy link

Texas40 commented Jan 8, 2021 via email

@RytoEX
Copy link
Member

RytoEX commented Jan 8, 2021

The Windows build failing should be attributed to obs-browser (commits 0a614cb and onwards)

Yeah, we're aware of the Windows CI failures, and we're working on it.

@WizardCM
Copy link
Member

To fix the Windows builds, please rebase on latest master and force push. Thanks!

To support FTL, it needed to be present in-tree to be compiled. This PR
adds support for system-wide installations of libftl. It uses
pkg-config to find the system-wide installation. If pkg-config can't
provide libftl we just fall back to using the in-tree submodule. If
that's also not available it won't be included at all like before.
@Scrumplex Scrumplex force-pushed the feat-use-system-ftl branch from 20568a0 to a920e39 Compare January 15, 2021 22:54
@Scrumplex
Copy link
Contributor Author

There we go! Rebased.

@jp9000 jp9000 merged commit 9024421 into obsproject:master Jan 18, 2021
@RytoEX RytoEX added this to the OBS Studio 27.0 milestone Mar 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Fix Non-breaking change which fixes an issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ftl_output not found on Arch Linux Install

8 participants