No description
Find a file
Daniel Almeida 42bdf1de57 media: cros-codecs: Introduce the cros-codecs crate
Introduce the cros-codecs crate. This crate contains all the
codec-related code and does not depend on CrosVM. The decoders are
decoupled from the backends, which allows for the implementation of new
backends without touching the decoder code.

This crate comes with dummy backends to test the decoder functionality
in isolation, but in order to decode frames, a real backend is needed.
Currently this backend is the VAAPI backend. Using it adds a dependency
on the libva crate.

This change adds support for VP8, H264 and VP9.

BUG=b:214478588
TEST="cd media/cros-codecs && cargo test --release --features vaapi -- --include-ignored"
TEST="emerge-hatch chromeos-base/crosvm" completes successfully.

Change-Id: I596d5db4dabcc96dcfdbce1f41c8092e01b64271
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3875043
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2022-10-28 03:23:26 +00:00
.cargo health-check: Add check for newline at ends of files 2022-08-18 00:17:04 +00:00
.devcontainer dev_container: Fix vscode integration 2022-09-14 00:16: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: Fix Goldfish battery to send IRQ correctly 2022-10-25 01:02:33 +00:00
acpi_tables acpi: Add More AML objects 2022-10-11 13:32:01 +00:00
anti_tamper Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
arch arch: split fdt code into its own crate 2022-10-19 17:43:19 +00:00
argh_helpers Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
base base: Extract integration tests 2022-10-24 22:49:29 +00:00
bit_field Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
broker_ipc crash-report: Build with feature crash-report 2022-09-28 14:45:00 +00:00
common p9: set filetype from directory to file in lcreate 2022-10-26 23:23:53 +00:00
crash_report crash_report: Update Cargo.toml dependency for windows cfg. 2022-10-11 16:54:37 +00:00
cros_async base: event: add Event::reset() API 2022-10-20 21:04:14 +00:00
cros_fdt arch: split fdt code into its own crate 2022-10-19 17:43:19 +00:00
cros_tracing tracing: rename tracing to cros_tracing. 2022-10-17 20:49:16 +00:00
crosvm-fuzz base: cross platform Event API 2022-10-19 20:17:42 +00:00
crosvm_cli devices: add err code for disk image open failed. 2022-10-20 20:27:58 +00:00
crosvm_control Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
crosvm_plugin Remove plugin-render-server feature 2022-10-14 20:31:19 +00:00
devices Extract devices integration tests 2022-10-26 17:53:08 +00:00
disk devices: virtio: block: impl DiskOption::open for Windows 2022-09-20 03:42:20 +00:00
docs/book docs: Replace crbug link with issuetracker.google.com 2022-10-18 06:22:41 +00:00
fuse Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
gpu_display gpu: handle unexpected compositor disconnections 2022-10-25 21:39:45 +00:00
hypervisor hypervisor: only check whpx feature for Windows targets 2022-10-27 22:46:27 +00:00
infra infra: Fix recipe name 2022-10-27 02:19:48 +00:00
integration_tests integration_tests: add tests for disk resize command 2022-10-17 23:59:37 +00:00
io_uring cros_async: fix io at current file pos for io_uring 2022-09-30 20:32:02 +00:00
kernel_cmdline Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
kernel_loader cargo doc: fix warnings 2022-10-06 20:23:59 +00:00
kvm aarch64: Expose MTE to guests 2022-09-13 21:05:15 +00:00
kvm_sys bindgen: update bindings to Linux 5.15 2022-09-14 22:09:30 +00:00
libcras_stub tree-wide: apply cargo fmt --nightly 2022-10-03 21:39:26 +00:00
linux_input_sys Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
media media: cros-codecs: Introduce the cros-codecs crate 2022-10-28 03:23:26 +00:00
metrics base: cross platform Event API 2022-10-19 20:17:42 +00:00
net_sys tree-wide: use "crosvm" capitalization everywhere 2022-10-07 01:10:12 +00:00
net_util base: cross platform Event API 2022-10-19 20:17:42 +00:00
power_monitor power_monitor: Enable feature in all-linux 2022-09-20 21:06:47 +00:00
prebuilts prebuilts: move prebuilts tests under tests 2022-10-07 15:54:37 +00:00
protos Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
qcow_utils Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
resources resources: reject unknown fields when deserializing AddressRange 2022-10-24 02:56:12 +00:00
rutabaga_gfx gfxstream: Enable the feature upstream via stub backend 2022-10-20 20:22:23 +00:00
sandbox sandbox: Add a README 2022-10-13 16:25:08 +00:00
seccomp seccomp: add lseek to all devices 2022-10-18 06:39:41 +00:00
serde_keyvalue serde_keyvalue: allow parsing of inner structs 2022-10-26 17:41:37 +00:00
src crosvm: allow several video devices to be instantiated 2022-10-26 07:56:46 +00:00
system_api Fix compilation with vtpm enabled 2022-09-29 17:17:21 +00:00
tests Document feature flags and introduce new feature sets 2022-10-14 20:31:19 +00:00
third_party devices: vhost-user: add protocol flag for shmem 2022-10-21 01:09:07 +00:00
tools tools/health-check: ignore more video file types for newline check 2022-10-28 03:21:59 +00:00
tpm2 Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
tpm2-sys Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
tube_transporter base: cross platform Event API 2022-10-19 20:17:42 +00:00
usb_sys Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
usb_util Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
vfio_sys vfio_pci: add support for runtime power management 2022-10-10 10:56:05 +00:00
vhost Update all copyright headers to match new style 2022-09-13 18:41:29 +00:00
virtio_sys bindgen: update bindings to Linux 5.15 2022-09-14 22:09:30 +00:00
vm_control base: cross platform Event API 2022-10-19 20:17:42 +00:00
vm_memory aarch64: Don't include pVM firmware region in memory size calculation. 2022-10-12 17:42:33 +00:00
win_audio base: remove Windows EventExt::new_with_manual_reset() 2022-10-20 21:15:41 +00:00
win_util crosvm: move enum ProcessType to win_util. 2022-09-21 19:28:49 +00:00
x86_64 arch: split fdt code into its own crate 2022-10-19 17:43:19 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.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 arch: allocate reserved PCI addresses first 2022-08-01 18:57:44 +00:00
build.rs Modify builds via CROSVM_BUILD_VARIANT env var 2022-10-04 21:23:00 +00:00
Cargo.lock media: cros-codecs: Introduce the cros-codecs crate 2022-10-28 03:23:26 +00:00
Cargo.toml media: cros-codecs: Introduce the cros-codecs crate 2022-10-28 03:23:26 +00:00
CONTRIBUTING.md CONTRIBUTING: Add a section about commit messages' format 2022-10-19 06:22:42 +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 Add rizhang@ to OWNERS 2022-08-17 01:14:13 +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 docs: Replace crbug link with issuetracker.google.com 2022-10-18 06:22:41 +00:00
rust-toolchain dev_container: Upgrade to debian bookworm 2022-09-14 22:32:36 +00:00

crosvm - The Chrome OS 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 Chrome OS 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 Chrome OS devices.

Logo