From be559ca0a35565a0ab366259285941a623a694e4 Mon Sep 17 00:00:00 2001 From: ricardsku Date: Wed, 27 Sep 2023 10:28:28 +0300 Subject: [PATCH 1/2] Exposing `Decoder`, `DecoderSplit` and `Encoder` base time property. Added `is_key` method to `Packet` to expose key-frame flag of the packet. --- src/decode.rs | 13 +++++++++++++ src/encode.rs | 6 ++++++ src/packet.rs | 6 ++++++ 3 files changed, 25 insertions(+) diff --git a/src/decode.rs b/src/decode.rs index aea426d..01bc8cc 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -102,6 +102,12 @@ impl Decoder { }) } + /// Get decoder time base. + #[inline] + pub fn time_base(&self) -> AvRational { + self.decoder.time_base() + } + /// Decode frames through iterator interface. This is similar to `decode` but it returns frames /// through an infinite iterator. /// @@ -221,6 +227,13 @@ pub struct DecoderSplit { } impl DecoderSplit { + + /// Get decoder time base. + #[inline] + pub fn time_base(&self) -> AvRational { + self.decoder_time_base + } + /// Decode a [`Packet`]. /// /// Feeds the packet to the decoder and returns a frame if there is one available. The caller diff --git a/src/encode.rs b/src/encode.rs index 4ade760..251eadf 100644 --- a/src/encode.rs +++ b/src/encode.rs @@ -126,6 +126,12 @@ impl Encoder { self } + /// Get encoder time base. + #[inline] + pub fn time_base(&self) -> AvRational { + self.encoder_time_base + } + /// Encode a single `ndarray` frame. /// /// # Arguments diff --git a/src/packet.rs b/src/packet.rs index 8ba538f..1753a74 100644 --- a/src/packet.rs +++ b/src/packet.rs @@ -31,6 +31,12 @@ impl Packet { Time::new(Some(self.inner.duration()), self.time_base) } + // Check whether packet is key. + #[inline] + pub fn is_key(&self) -> bool { + self.inner.is_key() + } + /// Set packet PTS (presentation timestamp). #[inline] pub fn set_pts(&mut self, timestamp: &Time) { From 45f87617cd368b572e44412cf2c0814f3c38bacc Mon Sep 17 00:00:00 2001 From: ricardsku Date: Wed, 27 Sep 2023 14:34:48 +0300 Subject: [PATCH 2/2] Fixed formatting issues --- src/decode.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/decode.rs b/src/decode.rs index 01bc8cc..3ad3733 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -227,7 +227,6 @@ pub struct DecoderSplit { } impl DecoderSplit { - /// Get decoder time base. #[inline] pub fn time_base(&self) -> AvRational {