Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
google
GitHub Repository: google/crosvm
Path: blob/main/media/libvda/tests/decode_tests.rs
5394 views
1
// Copyright 2020 The ChromiumOS Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
//! Integration tests using LibVDA fake decode implemenation.
6
7
#![cfg(any(target_os = "android", target_os = "linux"))]
8
9
use libvda::decode::*;
10
use libvda::*;
11
12
fn create_vda_instance() -> VdaInstance {
13
VdaInstance::new(VdaImplType::Fake).expect("failed to create VDAInstance")
14
}
15
16
#[test]
17
#[cfg_attr(feature = "libvda-stub", ignore = "Ignored when using libvda-stub")]
18
fn test_create_instance() {
19
let instance = create_vda_instance();
20
let caps = instance.get_capabilities();
21
22
assert_ne!(caps.input_formats.len(), 0);
23
assert_ne!(caps.output_formats.len(), 0);
24
}
25
26
#[test]
27
#[cfg_attr(feature = "libvda-stub", ignore = "Ignored when using libvda-stub")]
28
fn test_initialize_decode_session() {
29
let instance = create_vda_instance();
30
let _session = instance
31
.open_session(Profile::VP8)
32
.expect("failed to open a session for VP8");
33
}
34
35
#[test]
36
#[cfg_attr(feature = "libvda-stub", ignore = "Ignored when using libvda-stub")]
37
fn test_decode_and_get_picture_ready_fake() {
38
let instance = create_vda_instance();
39
let mut session = instance
40
.open_session(Profile::VP8)
41
.expect("failed to open a session");
42
43
// Call decode() with dummy arguments.
44
let fake_bitstream_id = 12345;
45
session
46
.decode(
47
fake_bitstream_id,
48
1, // fd
49
0, // offset
50
0, // bytes_used
51
)
52
.expect("failed to send a decode request");
53
54
// Since we are using the fake backend,
55
// we must get a event immediately after calling decode().
56
match session.read_event() {
57
Ok(Event::PictureReady { bitstream_id, .. }) => {
58
assert_eq!(bitstream_id, fake_bitstream_id);
59
}
60
Ok(event) => panic!("Obtained event is not PictureReady but {:?}", event),
61
Err(msg) => panic!("{}", msg),
62
}
63
}
64
65