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
|
||||
GPUs should work), with a software x264 fallback via `--no-hwencode`
|
||||
- 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
|
||||
- iroh QUIC bi-stream tunnel, direct-UDP and relay paths both verified
|
||||
- Interactive Host/View menu with clipboard auto-copy and mpv/VLC picker
|
||||
@@ -190,16 +190,16 @@ measured_at = "2026-05-21T20:41:16Z"
|
||||
## Audio
|
||||
|
||||
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
|
||||
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.
|
||||
- `--mic` mixes the default microphone source into the stream alongside
|
||||
system audio.
|
||||
Microphone capture is intentionally 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.
|
||||
|
||||
If a host crashes mid-session it can leave orphaned `pixelpass_capture_*`
|
||||
null-sinks and their paired loopbacks loaded in PipeWire. Run
|
||||
|
||||
@@ -21,10 +21,6 @@ pub struct Cli {
|
||||
#[arg(long, value_name = "NAME")]
|
||||
pub app: Option<String>,
|
||||
|
||||
/// Mix in the default microphone source.
|
||||
#[arg(long)]
|
||||
pub mic: bool,
|
||||
|
||||
/// Override display server autodetection.
|
||||
#[arg(long, value_enum)]
|
||||
pub display_server: Option<DisplayServerArg>,
|
||||
@@ -79,7 +75,6 @@ pub enum DisplayServerArg {
|
||||
pub struct HostOpts {
|
||||
pub window: bool,
|
||||
pub app: Option<String>,
|
||||
pub mic: bool,
|
||||
pub display_server: Option<DisplayServerArg>,
|
||||
pub bitrate: u32,
|
||||
pub framerate: u32,
|
||||
@@ -99,7 +94,6 @@ impl Cli {
|
||||
HostOpts {
|
||||
window: self.window,
|
||||
app: self.app,
|
||||
mic: self.mic,
|
||||
display_server: self.display_server,
|
||||
bitrate: self.bitrate,
|
||||
framerate: self.framerate,
|
||||
|
||||
@@ -342,8 +342,5 @@ fn capture_summary(opts: &HostOpts) -> String {
|
||||
} else {
|
||||
bits.push("system-audio".to_string());
|
||||
}
|
||||
if opts.mic {
|
||||
bits.push("mic".to_string());
|
||||
}
|
||||
bits.join(" + ")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user