feat(cli): remove --mic (microphone is out of scope)
pixelpass is a screen-share tool meant to be paired with a dedicated voice app (Mumble, TeamSpeak, Discord, …) for two-way talk — it never mixes a mic. The --mic flag was declared, shown in the host banner, and documented as working, but was never wired into the gst pipeline (a no-op). Removed the flag from Cli + HostOpts + into_host_opts, dropped it from the banner capture summary, and replaced the README's "--mic mixes the mic" claim with an explicit out-of-scope note. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -21,7 +21,7 @@ Working:
|
|||||||
- VAAPI H.264 encode in GStreamer (RDNA3 confirmed; other VAAPI-capable
|
- VAAPI H.264 encode in GStreamer (RDNA3 confirmed; other VAAPI-capable
|
||||||
GPUs should work), with a software x264 fallback via `--no-hwencode`
|
GPUs should work), with a software x264 fallback via `--no-hwencode`
|
||||||
- Audio capture of the default sink's monitor, with optional per-app
|
- Audio capture of the default sink's monitor, with optional per-app
|
||||||
routing (`--app <name>`) and microphone mixing (`--mic`)
|
routing (`--app <name>`)
|
||||||
- `--repair` cleanup of orphaned PipeWire state left by a crashed host
|
- `--repair` cleanup of orphaned PipeWire state left by a crashed host
|
||||||
- iroh QUIC bi-stream tunnel, direct-UDP and relay paths both verified
|
- iroh QUIC bi-stream tunnel, direct-UDP and relay paths both verified
|
||||||
- Interactive Host/View menu with clipboard auto-copy and mpv/VLC picker
|
- Interactive Host/View menu with clipboard auto-copy and mpv/VLC picker
|
||||||
@@ -190,16 +190,16 @@ measured_at = "2026-05-21T20:41:16Z"
|
|||||||
## Audio
|
## Audio
|
||||||
|
|
||||||
By default pixelpass captures the default sink's monitor — the viewer
|
By default pixelpass captures the default sink's monitor — the viewer
|
||||||
hears whatever the host hears. Two flags adjust this:
|
hears whatever the host hears. `--app <name>` narrows that to a single
|
||||||
|
application: pixelpass creates a per-PID null-sink and uses libpipewire to
|
||||||
|
reroute matching `Stream/Output/Audio` nodes (by `application.name`) into
|
||||||
|
it, so the viewer hears just that app instead of the whole desktop. In the
|
||||||
|
interactive menu you can pick the app from a list of what's currently
|
||||||
|
playing.
|
||||||
|
|
||||||
- `--app <name>` routes only a single application's audio. pixelpass
|
Microphone capture is intentionally out of scope — pixelpass is a
|
||||||
creates a per-PID null-sink and uses libpipewire to reroute matching
|
screen-share tool meant to be paired with a dedicated voice app (Mumble,
|
||||||
`Stream/Output/Audio` nodes (by `application.name`) into it, so the
|
TeamSpeak, Discord, …) for two-way talk.
|
||||||
viewer hears just that app instead of the whole desktop. In the
|
|
||||||
interactive menu you can pick the app from a list of what's currently
|
|
||||||
playing.
|
|
||||||
- `--mic` mixes the default microphone source into the stream alongside
|
|
||||||
system audio.
|
|
||||||
|
|
||||||
If a host crashes mid-session it can leave orphaned `pixelpass_capture_*`
|
If a host crashes mid-session it can leave orphaned `pixelpass_capture_*`
|
||||||
null-sinks and their paired loopbacks loaded in PipeWire. Run
|
null-sinks and their paired loopbacks loaded in PipeWire. Run
|
||||||
|
|||||||
@@ -21,10 +21,6 @@ pub struct Cli {
|
|||||||
#[arg(long, value_name = "NAME")]
|
#[arg(long, value_name = "NAME")]
|
||||||
pub app: Option<String>,
|
pub app: Option<String>,
|
||||||
|
|
||||||
/// Mix in the default microphone source.
|
|
||||||
#[arg(long)]
|
|
||||||
pub mic: bool,
|
|
||||||
|
|
||||||
/// Override display server autodetection.
|
/// Override display server autodetection.
|
||||||
#[arg(long, value_enum)]
|
#[arg(long, value_enum)]
|
||||||
pub display_server: Option<DisplayServerArg>,
|
pub display_server: Option<DisplayServerArg>,
|
||||||
@@ -79,7 +75,6 @@ pub enum DisplayServerArg {
|
|||||||
pub struct HostOpts {
|
pub struct HostOpts {
|
||||||
pub window: bool,
|
pub window: bool,
|
||||||
pub app: Option<String>,
|
pub app: Option<String>,
|
||||||
pub mic: bool,
|
|
||||||
pub display_server: Option<DisplayServerArg>,
|
pub display_server: Option<DisplayServerArg>,
|
||||||
pub bitrate: u32,
|
pub bitrate: u32,
|
||||||
pub framerate: u32,
|
pub framerate: u32,
|
||||||
@@ -99,7 +94,6 @@ impl Cli {
|
|||||||
HostOpts {
|
HostOpts {
|
||||||
window: self.window,
|
window: self.window,
|
||||||
app: self.app,
|
app: self.app,
|
||||||
mic: self.mic,
|
|
||||||
display_server: self.display_server,
|
display_server: self.display_server,
|
||||||
bitrate: self.bitrate,
|
bitrate: self.bitrate,
|
||||||
framerate: self.framerate,
|
framerate: self.framerate,
|
||||||
|
|||||||
@@ -342,8 +342,5 @@ fn capture_summary(opts: &HostOpts) -> String {
|
|||||||
} else {
|
} else {
|
||||||
bits.push("system-audio".to_string());
|
bits.push("system-audio".to_string());
|
||||||
}
|
}
|
||||||
if opts.mic {
|
|
||||||
bits.push("mic".to_string());
|
|
||||||
}
|
|
||||||
bits.join(" + ")
|
bits.join(" + ")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user