1 // Copyright 2024 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 #[cfg(feature = "v4l2")] 6 use crate::Rect; 7 use crate::Resolution; 8 9 pub const ADDITIONAL_REFERENCE_FRAME_BUFFER: usize = 4; 10 11 pub mod stateless; 12 13 pub trait V4l2StreamInfo { 14 /// Returns the minimum number of surfaces required to decode the stream. 15 // name was chosen to match vaapi min_num_frames(&self) -> usize16 fn min_num_frames(&self) -> usize; 17 /// Returns the coded size of the surfaces required to decode the stream. coded_size(&self) -> Resolution18 fn coded_size(&self) -> Resolution; 19 /// Returns the visible rectangle within the coded size for the stream. visible_rect(&self) -> Rect20 fn visible_rect(&self) -> Rect; 21 } 22