summary refs log tree commit diff
path: root/src/main.rs
diff options
context:
space:
mode:
authorKeiichi Watanabe <keiichiw@chromium.org>2019-12-06 22:24:40 +0900
committerCommit Bot <commit-bot@chromium.org>2020-05-23 09:54:13 +0000
commit57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f (patch)
tree11bc695e179762b6eac26302e6b89db55b251dba /src/main.rs
parentb2ca24c97b0084b805f7da28804b4c430c151ccb (diff)
downloadcrosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.gz
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.bz2
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.lz
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.xz
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.tar.zst
crosvm-57df6a0ab23c3b2ba233b9aa5886ecf47ba3f91f.zip
devices: virtio: Initial implementation of virtio-video device
This CL adds a fundamental part of the virtio video device, which will
be shared between the encoder and the decoder.
Both devices uses the virtio-video protocol proposed as RFC v3 [1,2].
The corresponding driver code is at CL:2060327 and its children CLs.

The actual decoding and encoding logic will be implemented in different
CLs.

[1]: mail: https://markmail.org/thread/wxdne5re7aaugbjg
[2]: PDF: https://drive.google.com/file/d/1jOsS2WdVhL4PpcWLO8Zukq5J0fXDiWn-/view

BUG=b:147465619, b:140082257
TEST=cargo check --features=video-decoder,video-encoder
TEST=ARCVM started with --video-decoder --video-encoder

Cq-Depend: chromium:2203997
Change-Id: I01999eea218ba0f3aaed1558ca2311a57d0c6819
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1973973
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: Keiichi Watanabe <keiichiw@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 557c630..61fcd48 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1226,6 +1226,12 @@ fn set_argument(cfg: &mut Config, name: &str, value: Option<&str>) -> argument::
 
             cfg.vfio.push(vfio_path);
         }
+        "video-decoder" => {
+            cfg.video_dec = true;
+        }
+        "video-encoder" => {
+            cfg.video_enc = true;
+        }
 
         "help" => return Err(argument::Error::PrintHelp),
         _ => unreachable!(),
@@ -1396,6 +1402,10 @@ writeback=BOOL - Indicates whether the VM can use writeback caching (default: fa
           Argument::flag("split-irqchip", "(EXPERIMENTAL) enable split-irqchip support"),
           Argument::value("bios", "PATH", "Path to BIOS/firmware ROM"),
           Argument::value("vfio", "PATH", "Path to sysfs of pass through or mdev device"),
+          #[cfg(feature = "video-decoder")]
+          Argument::flag("video-decoder", "(EXPERIMENTAL) enable virtio-video decoder device"),
+          #[cfg(feature = "video-encoder")]
+          Argument::flag("video-encoder", "(EXPERIMENTAL) enable virtio-video encoder device"),
           Argument::short_flag('h', "help", "Print help message.")];
 
     let mut cfg = Config::default();