mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-05 18:20:34 +00:00
linux: Add cras-capture option for cras-audio device
The flag can enable capturing audio from CRAS server to the cras-audio device. We'll re-enable capture function on Crostini after finishing capture permission works. BUG=chromium:932268 TEST=Boot vm with crosvm --cras-audio --cras-capture to check recording functionality. Cq-Depend: chromium:1628633 Change-Id: I7502cbd668cbc722224164d9f69e50a16b0ab86b Reviewed-on: https://chromium-review.googlesource.com/1628687 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Chih-Yang Hsia <paulhsia@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> Reviewed-by: Chih-Yang Hsia <paulhsia@chromium.org>
This commit is contained in:
parent
d7738ec486
commit
580d418656
2 changed files with 10 additions and 1 deletions
|
@ -823,7 +823,10 @@ fn create_devices(
|
|||
}
|
||||
|
||||
if cfg.cras_audio {
|
||||
let server = Box::new(CrasClient::new().map_err(Error::CreateCrasClient)?);
|
||||
let mut server = Box::new(CrasClient::new().map_err(Error::CreateCrasClient)?);
|
||||
if cfg.cras_capture {
|
||||
server.enable_cras_capture();
|
||||
}
|
||||
let cras_audio = devices::Ac97Dev::new(mem.clone(), server);
|
||||
|
||||
pci_devices.push((
|
||||
|
|
|
@ -103,6 +103,7 @@ pub struct Config {
|
|||
gpu: bool,
|
||||
software_tpm: bool,
|
||||
cras_audio: bool,
|
||||
cras_capture: bool,
|
||||
null_audio: bool,
|
||||
serial_parameters: BTreeMap<u8, SerialParameters>,
|
||||
syslog_tag: Option<String>,
|
||||
|
@ -144,6 +145,7 @@ impl Default for Config {
|
|||
sandbox: !cfg!(feature = "default-no-sandbox"),
|
||||
seccomp_policy_dir: PathBuf::from(SECCOMP_POLICY_DIR),
|
||||
cras_audio: false,
|
||||
cras_capture: false,
|
||||
null_audio: false,
|
||||
serial_parameters: BTreeMap::new(),
|
||||
syslog_tag: None,
|
||||
|
@ -368,6 +370,9 @@ fn set_argument(cfg: &mut Config, name: &str, value: Option<&str>) -> argument::
|
|||
"cras-audio" => {
|
||||
cfg.cras_audio = true;
|
||||
}
|
||||
"cras-capture" => {
|
||||
cfg.cras_capture = true;
|
||||
}
|
||||
"null-audio" => {
|
||||
cfg.null_audio = true;
|
||||
}
|
||||
|
@ -792,6 +797,7 @@ fn run_vm(args: std::env::Args) -> std::result::Result<(), ()> {
|
|||
Argument::value("netmask", "NETMASK", "Netmask for VM subnet."),
|
||||
Argument::value("mac", "MAC", "MAC address for VM."),
|
||||
Argument::flag("cras-audio", "Add an audio device to the VM that plays samples through CRAS server"),
|
||||
Argument::flag("cras-capture", "Enable capturing audio from CRAS server to the cras-audio device"),
|
||||
Argument::flag("null-audio", "Add an audio device to the VM that plays samples to /dev/null"),
|
||||
Argument::value("serial",
|
||||
"type=TYPE,[path=PATH,num=NUM,console]",
|
||||
|
|
Loading…
Reference in a new issue