Add -aa and -aai options to record audio only from selected applications

Use the --list-application-audio option to list available applications
to record from.
This commit is contained in:
dec05eba
2024-11-10 23:54:36 +01:00
parent f1b4979365
commit 4240f0e334
12 changed files with 878 additions and 119 deletions

19
TODO
View File

@@ -176,14 +176,19 @@ Default to hevc if capture size is larger than 4096 in width or height.
Set low latency mode on vulkan encoding.
Support pipewire audio capture which also allows capturing audio from a single application. This can also be done with pulseaudio by creating a virtual sink:
pactl load-module module-combine-sink sink_name=gsr2 slaves=$(pactl get-default-sink) sink_properties=device.description="gsr"
pactl move-sink-input 2944 gsr2 # 2944 comes from 'pactl list sink-inputs'
and then record gsr2.monitor.
Or use pa_stream_set_monitor_stream, which also takes the sink-input as input. However need to track when the sink disconnects to mute and then reconnect again.
Support recording/replay/livestreaming at the same time by allowing commands to be run on an existing gpu screen recorder instance.
Test if `xrandr --output DP-1 --scale 1.5` captures correct size on nvidia.
Fix cursor position and scale when scaling x11 display.
Fix cursor position and scale when scaling x11 display.
Support surround audio in application audio recording. Right now only stereo sound is supported.
Support application audio recording without pulseaudio combined sink.
If recording application audio setup gsr_pipewire_audio and add gsr_pipewire_audio_add_link_from_app_to_stream for application and the created combined sink.
Use gsr_pipewire_audio_add_link_from_app_to_stream_inverted for inverted scenario. Parse inverted scenario as well.
Support transposing (rotating) with vaapi. This isn't supported on many devices with rgb buffer, but its supported with nv12 buffer (on intel at least).
Link name for stream_name input is wrong. It should be Playback_FL/Playback_FR now with combined sink. Add function for combined sink, or rewrite existing code.