diff --git a/gstreamer-pbutils/src/discoverer_stream_info.rs b/gstreamer-pbutils/src/discoverer_stream_info.rs index 8f83fa3ba..7d0cb9939 100644 --- a/gstreamer-pbutils/src/discoverer_stream_info.rs +++ b/gstreamer-pbutils/src/discoverer_stream_info.rs @@ -28,20 +28,25 @@ impl Iterator for Iter { } } -impl DiscovererStreamInfo { - pub fn next_iter(&self) -> Iter { +impl std::iter::FusedIterator for Iter {} + +pub trait DiscovererStreamInfoExtManual: 'static { + fn next_iter(&self) -> Iter; + fn previous_iter(&self) -> Iter; +} + +impl> DiscovererStreamInfoExtManual for O { + fn next_iter(&self) -> Iter { Iter { stream_info: self.next(), direction_forward: true, } } - pub fn previous_iter(&self) -> Iter { + fn previous_iter(&self) -> Iter { Iter { stream_info: self.previous(), direction_forward: false, } } } - -impl std::iter::FusedIterator for Iter {} diff --git a/gstreamer-pbutils/src/lib.rs b/gstreamer-pbutils/src/lib.rs index 1aedd6a24..5a64094e7 100644 --- a/gstreamer-pbutils/src/lib.rs +++ b/gstreamer-pbutils/src/lib.rs @@ -62,6 +62,7 @@ pub mod prelude { pub use crate::{ audio_visualizer::*, auto::traits::*, + discoverer_stream_info::DiscovererStreamInfoExtManual, encoding_profile::{ EncodingProfileBuilder, EncodingProfileExtManual, EncodingProfileHasRestrictionGetter, },