Bug 2021361

Summary: Webcam Not Working When Using Loopback Module with Capture Card Audio
Product: [Fedora] Fedora Reporter: Lawrence <lawrencemaceren96>
Component: libwebcamAssignee: Michael Cronenworth <mike>
Status: CLOSED CANTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 35CC: hdegoede, mike
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-09 16:57:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lawrence 2021-11-09 00:08:59 UTC
Laptop: Thinkpad X1 Yoga 4th Gen
OS: Fedora 34 and 35
Relevant Hardware: Laptop Webcam, USB HDMI Capture Card
Relevant Apps: PipeWire (w/loopback module), OBS, Cheese, Discord, any webcam application

How reproducible: Very


Steps to Reproduce:
1. Connect USB Capture Card to ThinkPad X1 Yoga 4th Gen
2. Begin audio loopback using `pw-loopback` or `pactl load-module module-loopback`
3. In pavucontrol, set the loopback to the capture card audio and verify it plays out of the appropriate speaker
4. Open Cheese (or OBS, or Discord, or any webcam app), webcam does not work

Actual results:
Webcam does not work. In Cheese, I get the message "There was an error playing video from the webcam."

Expected results:
I am able to see my webcam, while also listening to audio from my capture card.



Additional info:
I stream/record games from my capture card, while also using the microphone and headset to talk to friends on Discord or in OBS. I want to be able to listen to the input audio of my Capture Card through my headphones, so that I can listen to game audio and a Discord call at the same time.

I’ve been having an issue where my webcam would no longer work on any app in my system when enabling the audio loopback module using either of:

* pactl load-module module-loopback
* pw-loopback

My setup when this happens is:

    Use laptop webcam as a video source
    USB HDMI Capture Card plugged in, capturing video and audio
    Optional: Bluetooth Headset (audio sink), USB Antilion Mic (audio source), but I have the same issue without these
    Enable loopback module


However, when I have my capture card and webcam connected, and enable the loopback module, my webcam is no longer available to apps to use as a video source. In apps like Discord and Cheese, it doesn’t even show up. All my audio inputs (including my webcam mic) are still functioning, but my webcam video no longer works. I’ve tried this without my headset or my mic plugged in, and just using my capture card and internal webcam/mic, and I still have the same issue.

My webcam continues to be unusable even if I disable the loopback module. However, if I unplug my capture card, then my webcam sometimes works again, but not always. A reboot without loading the loopback module will usually fix it though.

I’ve tried this with both PipeWire and PulseAudio (by uninstalling PipeWire), and I get the same result in both, so it doesn’t look to be PipeWire specific. I find it strange that using an audio module will cause my webcam video to not work anymore.

This was not working on my install of Fedora 34 (fully updated), and continues to not work on Fedora 35. However, I tried doing this on a live boot of my Fedora 34, and it worked there, which makes me think that there was some update either to either PipeWire, or the kernel, causing this issue.

Additionally, I tried this on my ThinkPad 13 Gen 2, and this actually worked on both Fedora 34 AND Fedora 35 live boot isos. I'm not sure if the webcam hardware is different for the two machines, but I know the X1 Yoga 4th Gen has a 4 mic setup, while the Thinkpad 13 2nd Gen has a 2 mic setup. I'm thinking there was some regression introduced either in the kernel or in some webcam driver, or PipeWire, causing a problem with my specific laptop hardware, especially since it happened during the lifecycle of Fedora 34 and also seems to be specific to my X1Y4 and not my 13.

Comment 1 Michael Cronenworth 2021-11-09 16:57:42 UTC
The 'libwebcam' package has nothing to do with your issue. It is not used with any of the software you listed.

Please pursue your issue using a user support forum such as the Fedora user mailing list, Fedora Sub-Reddit, or the Fedora Forum website.

Comment 2 Lawrence 2021-11-09 17:02:03 UTC
Do you have an idea what package may be used in this issue? I considered listing it under PipeWire until I realized I had the same issue on PulseAudio.

I have already posted this issue on the Fedora Subreddit and the Ask Fedora forum, neither post got much help as of yet. Maybe I'll try the mailing list.

Do you think this can be an issue in a kernel upgrade? Do you know where I will be able to submit this issue to any kernel developers and get their input too?

Comment 3 Michael Cronenworth 2021-11-09 17:19:07 UTC
If it works inside Live images then it would indicate something is wrong with your /home configuration files. You could try a new user or renaming your ~/.config directory.

Following up would better be served in a user support forum.

Comment 4 Lawrence 2021-11-09 17:44:17 UTC
I said in my bug report that it does NOT work in a Fedora 35 live boot on my X1Y4. It works on a 34 live boot, but once updated are applied, it no longer works. I was recommended to try a new user on the post I already put in the user forums, but that didn't work.

It does work on a Thinkpad 13, but that is not my main laptop to use. That's why I said I was lead to believe it was a compatibility issue with my hardware.

My posts on Reddit and the Ask Fedora forums were what pointed me to come here for better information, but I guess I'll just bump those old posts again and create another new post on the Fedora forums