No description
Find a file
Alexandre Courbot 74cd872091 media: cros-codecs: vaapi: use method to get reference to parsed metadata
The StreamMetadataState struct provides us with some useful stream
information, but some if it is only available after the initial stream
parsing is done. As a consequence, many of its accessor methods return
an error if we are in the wrong state. This check is repeated quite a
lot in code that uses StreamMetadataState even though a single check
should be enough.

Replace these accessor methods by a single method returning a reference
to the parsed state if it is accessible. This groups redundant runtime
checks for the metadata parsing state into a single check and thus
reduces the code size a bit.

BUG=b:214478588
TEST=cargo test --features vaapi -p cros-codecs

Change-Id: I2455ec7901e29f50716d535017f83e4d19b3c6fa
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4164541
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.corp-partner.google.com>
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
2023-03-01 12:55:19 +00:00
.cargo tools: Do not use pip to install python packages 2023-02-27 19:24:18 +00:00
.config tools/run_tests2: Prepare for CI usage 2023-02-09 00:09:02 +00:00
.devcontainer dev_container: Add mdformat-tables to dependency 2022-11-15 22:36:38 +00:00
.github Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
.vscode Document feature flags and introduce new feature sets 2022-10-14 20:31:19 +00:00
aarch64 aarch64: dump device tree blob before length check 2023-02-28 19:10:44 +00:00
acpi_tables acpi: Mark structs as repr(C, packed) 2023-02-08 21:32:43 +00:00
anti_tamper kiwi: clean anti_tamper and metrics related code 2023-01-04 00:08:27 +00:00
arch jail: create jail crate from jail_helpers.rs 2023-02-14 00:24:55 +00:00
argh_helpers Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
base devices: use fork_process() from ProxyDevice::new() 2023-02-27 02:46:48 +00:00
bit_field crosvm: Uprev rust toolchain and dev container 2023-02-08 20:26:30 +00:00
broker_ipc Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
common audio_streams: Implement Serialize and Deserialize for StreamEffect 2023-02-23 10:40:12 +00:00
crash_report metrics: Add missing process types 2023-02-22 20:01:38 +00:00
cros_async cros_async: dedup Executor::run implementations 2023-02-28 20:48:28 +00:00
cros_fdt cros_fdt: remove max_size from FdtWriter::finish() 2023-02-28 18:36:13 +00:00
cros_tracing cros_tracing: do not print errors in push_descriptors() 2023-02-21 20:31:28 +00:00
crosvm-fuzz Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
crosvm_cli vhost-user: snd: Implement Windows broker & device setup 2023-02-28 21:34:01 +00:00
crosvm_control crosvm_control: Add vmm swap (enable/disable/swapout) API 2023-01-26 07:47:48 +00:00
crosvm_plugin Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
devices devices: snd: Add parsing PCMDeviceParameters to Parameters 2023-03-01 10:03:19 +00:00
disk disk: add PunchHoleMut trait 2023-02-22 01:53:38 +00:00
docs/book book: Update building/testing sections with new tooling 2023-02-28 23:11:13 +00:00
e2e_tests e2e_tests: Restructure for initial benchmark support 2023-02-23 22:11:48 +00:00
fuse crosvm: Partially convert DataInit to zerocopy (1/n) 2023-02-02 19:28:57 +00:00
gpu_display gpu_display: find wayland-scanner with which in build.rs 2023-02-27 21:18:21 +00:00
hypervisor bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
infra Roll recipe dependencies (trivial). 2023-02-28 22:11:55 +00:00
io_uring bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
jail crosvm: plugin: use create_sandbox_minijail() for plugin 2023-02-21 01:07:20 +00:00
kernel_cmdline Rust 1.65: Fix clippy derive_partial_eq_without_eq lints 2022-12-01 01:32:30 +00:00
kernel_loader bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
kvm bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
kvm_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
libcras_stub devices: snd: Add parsing PCMDeviceParameters to Parameters 2023-03-01 10:03:19 +00:00
linux_input_sys crosvm: Partially convert DataInit to zerocopy (6/n) 2023-02-10 01:52:24 +00:00
logo
media media: cros-codecs: vaapi: use method to get reference to parsed metadata 2023-03-01 12:55:19 +00:00
metrics metrics: Add missing process types 2023-02-22 20:01:38 +00:00
net_sys Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
net_util virtio_sys: Update bindgen to derive zerocopy 2023-02-09 22:59:10 +00:00
power_monitor power_monitor: refactor to use ReadNotifier 2023-01-03 22:37:36 +00:00
prebuilts e2e_tests: Clarify prebuilt download logs 2023-02-07 20:17:23 +00:00
proto_build_tools proto_build_tools: dont fail silently 2023-01-31 18:03:00 +00:00
protos Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
qcow_utils Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
resources resource: system_allocator: introduce GPE allocator 2023-02-06 22:02:37 +00:00
rutabaga_gfx crosvm: Convert DataInit to zerocopy (8/n) 2023-02-21 21:12:31 +00:00
sandbox vhost-user: snd: Implement Windows broker & device setup 2023-02-28 21:34:01 +00:00
serde_keyvalue Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
src vhost-user: snd: Implement Windows broker & device setup 2023-02-28 21:34:01 +00:00
swap swap: punch a hole to swap file if the pages are removed 2023-02-22 01:53:38 +00:00
system_api Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
tests Enable parallel execution of plugin and e2e tests 2023-01-26 20:38:57 +00:00
third_party crosvm: Partially convert DataInit to zerocopy (1/n) 2023-02-02 19:28:57 +00:00
tools tools/presubmit: New presubmit checks 2023-02-28 22:31:48 +00:00
tpm2 Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
tpm2-sys Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
tube_transporter crosvm: Uprev rust toolchain and dev container 2023-02-08 20:26:30 +00:00
usb_sys Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
usb_util crosvm: Partially convert DataInit to zerocopy (2/n) 2023-02-07 23:08:23 +00:00
vfio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vhost Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
virtio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vm_control devices: virtio: block: test resize and reset 2023-02-28 01:35:27 +00:00
vm_memory vm_memory: option to set MADV_DONTFORK on guest memory 2023-02-16 18:23:47 +00:00
win_audio kiwi: clean anti_tamper and metrics related code 2023-01-04 00:08:27 +00:00
win_util metrics: Add missing process types 2023-02-22 20:01:38 +00:00
x86_64 Reland "x86_64: place setup_data immediately after cmdline" 2023-02-28 18:54:59 +00:00
.dockerignore
.gitignore Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
.gitmodules health-check: Add infra checks 2022-08-18 00:17:04 +00:00
.rustfmt.toml rustfmt, win_util: update to 2021 edition 2022-05-31 23:35:02 +00:00
ARCHITECTURE.md jail: create jail crate from jail_helpers.rs 2023-02-14 00:24:55 +00:00
Cargo.lock gpu_display: find wayland-scanner with which in build.rs 2023-02-27 21:18:21 +00:00
Cargo.toml Move IRQ handling to its own thread. 2023-02-23 01:15:15 +00:00
CONTRIBUTING.md docs: typos and nits in CONTRIBUTING.md 2023-01-31 00:24:46 +00:00
DIR_METADATA DIR_METADATA: Add public buganizer component 2022-09-21 17:43:59 +00:00
LICENSE Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
mypy.ini Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
OWNERS Require council review for changes to Cargo.lock 2022-12-01 18:50:48 +00:00
OWNERS_COUNCIL Require council review for changes to Cargo.lock 2022-12-01 18:50:48 +00:00
PRESUBMIT.cfg Cleanup: Remove old, deprecated and no longer used files 2022-09-20 21:05:57 +00:00
pyproject.toml Add python configs for consistency between IDE and CI 2022-08-16 18:33:23 +00:00
README.chromeos.md crosvm: update book and doc links to crosvm.dev 2022-07-29 22:54:01 +00:00
README.md Fix remaining Chrome/Chromium OS instances 2023-01-03 22:14:30 +00:00
rust-toolchain rust-toolchain: Add llvm-tools-preview 2023-02-10 20:47:41 +00:00

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linuxs KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesnt emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on ChromeOS devices.

Logo