Add audio capture for browser source #157
No reviewers
Labels
No labels
area/accessibility
area/dependency
Confirmed
Crash Report
Delayed
Design Issue
Duplicate
Feedback required
Good first issue
kind/bug
kind/cleanup
kind/enhancement
platform/linux
platform/macos
platform/windows
priority/high
Question
Request for Comments
Seeking Other Contributors
Seeking Testers
Won't Fix / By Design
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-obsproject/obs-browser!157
Loading…
Reference in a new issue
No description provided.
Delete branch "audio-dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Relies on two cef commits (both on branch 3683):
58e1149 : Add ability to capture audio output to buffer via cef handler
1501768 : Mute audio in the browser (issue #1806)
This PR turns a browser source into a regular audio source, with a vue-meter on the Sound Mixer.
The audio from browser source is now muted to desktop.
It can be captured and monitored.
The PR is compatible with multiple audio sources in same browser page.
Main author: Osiris.
Other authors: Andersama & pkv
In memoriam. Osiris
Thanks for all that you did for this project. We deeply miss the
opportunity to keep working with you. - andersama , pkv & WizardCM
Co-authored-by: Michel Snippe michel@sokar.nl
Co-authored-by: Andersama anderson.john.alexander@gmail.com
Co-authored-by: pkv pkv.stream@gmail.com
Co-authored-by: WizardCM git@wizardcm.com
Note: this requires heavy testing with CEF 3683 (Minimal Distribution) before merge, across all platforms.
update
update
Unfortunately, browser acceleration is still broken ...
We'll have to wait until this is fixed in cef.
update
I have a separate fix for that here: https://gist.github.com/pkviet/3932d59e159ca4c8d03c89d228ddabcc
It's not PR'd because it requires adding some ifdefs to check cef version.
It would be ackward though to ifdef so many blocks of code and make for less readibility.
Maybe it'd be better to remove support for earlier versions of cef ...
That's something which will require some input from Jim.
Personally, I'm totally for dropping official support for much older versions of CEF. I think the oldest version we should support (ifdefs, code paths, etc.) are the version we use for official obs-browser/obs-studio builds, or the oldest "Current Release Branch" of CEF, whichever is older. If the commits to remove older version support are clear and restricted to just dropping support for one version at a time, then it should be possible for others to revert those so that they can use older CEF builds if they want. As you noted, this is something Jim would have to decide. If we do decide to drop support for older CEF versions, I'd be happy to go through the codebase and remove sections specific to those dropped older versions.
NB:
the CookieManager fix requires changes to obs UI too , cf : https://gist.github.com/pkviet/4a0fac632c835352d4f158d14641147e
Such small files? Is in't better to if def them in include? And give a new name like "blah-blah-blah-3729.hpp" or similar?
Any good news? I apologize for the useless question, but I think many people are interested to know the current situation.
yes and no.
The fix for hardware acceleration was merged into cef master BUT not to branches; there are issues with debug builds that the author has not addressed yet.
I tested release builds on branches with the fix and it seems to work (audio + hardware acceleration).
So we still need to wait. Another PR is in the works which rehauls the hardware acceleration.
update June 19 2019
Some very good news.
The hardware acceleration fix has now been committed by Marshall in branch 3770.
(and branch 3729.)
But branch 3770 introduces a series of API changes (branch 3729 does too); I've added commits to fix them.
I checked that branch 3770 builds both with browser audio and hardware acceleration.
And that Twitch oauth is still working.
update July 12 2019
This makes the code unnecessarily convoluted.
It would be simpler as discussed above to decide to support only the last cef release.
I agree that starting with these changes, we should support 3770 at the minimum going forward. There is no reason to support older builds. This would require testing macOS with the latest CEF too.
update July 13
I pray that this gets merged soon - we need it badly lol
update