• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 The Chromium OS Authors. All rights reserved.
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 use libvda::decode::*;
8 use libvda::*;
9 
create_vda_instance() -> VdaInstance10 fn create_vda_instance() -> VdaInstance {
11     VdaInstance::new(VdaImplType::Fake).expect("failed to create VDAInstance")
12 }
13 
14 #[test]
test_create_instance()15 fn test_create_instance() {
16     let instance = create_vda_instance();
17     let caps = instance.get_capabilities();
18 
19     assert_ne!(caps.input_formats.len(), 0);
20     assert_ne!(caps.output_formats.len(), 0);
21 }
22 
23 #[test]
test_initialize_decode_session()24 fn test_initialize_decode_session() {
25     let instance = create_vda_instance();
26     let _session = instance
27         .open_session(Profile::VP8)
28         .expect("failed to open a session for VP8");
29 }
30 
31 #[test]
test_decode_and_get_picture_ready_fake()32 fn test_decode_and_get_picture_ready_fake() {
33     let instance = create_vda_instance();
34     let mut session = instance
35         .open_session(Profile::VP8)
36         .expect("failed to open a session");
37 
38     // Call decode() with dummy arguments.
39     let fake_bitstream_id = 12345;
40     session
41         .decode(
42             fake_bitstream_id,
43             1, // fd
44             0, // offset
45             0, // bytes_used
46         )
47         .expect("failed to send a decode request");
48 
49     // Since we are using the fake backend,
50     // we must get a event immediately after calling decode().
51     match session.read_event() {
52         Ok(Event::PictureReady { bitstream_id, .. }) => {
53             assert_eq!(bitstream_id, fake_bitstream_id);
54         }
55         Ok(event) => panic!("Obtained event is not PictureReady but {:?}", event),
56         Err(msg) => panic!("{}", msg),
57     }
58 }
59