Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • pipewire pipewire
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 396
    • Issues 396
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 11
    • Merge requests 11
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PipeWire
  • pipewirepipewire
  • Issues
  • #513

Closed
Open
Created Dec 25, 2020 by Gabriel Ebner@gebnerContributor

Streams do not run unless linked to a physical device even if the driver flag is set

In short, the following works fine: pipewire-stream0 But if you unlink the microphone, then the other source stops as well: pipewire-stream1

To reproduce:

gst-launch-1.0 pipewiresrc ! audio/x-raw ! pipewiresink
gst-launch-1.0 audiotestsrc ! pipewiresink mode=provide stream-properties=pw,media.class=Audio/Source

The first gstreamer pipeline runs as long as it is connected to a physical microphone. If you link the the second pipewiresink to the first pipewiresrc, then you can hear the test signal. But when you unlink the microphone, then the test signal stops.

I'm probably very confused, but I thought the purpose of the PW_STREAM_FLAG_DRIVER flag (and the corresponding mode=provide gstreamer option) was so that you could use a stream just like a real device. The same issue also occurs if you modify pipewiresrc to set PW_STREAM_FLAG_DRIVER. AFAICT this is because pw_stream relies on other nodes to provide a clock and can't produce it's own clock.

(My original use case was to use gstreamer to connect to a network speaker using gst-launch-1.0 pipewiresrc ! pulsesink server=1.2.3.4. This works wonderfully, but only as long as I link a local microphone...)

Assignee
Assign to
Time tracking