Introduce NAPacketiser::attach_stream()
authorKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 23 Apr 2024 16:44:02 +0000 (18:44 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 23 Apr 2024 16:44:02 +0000 (18:44 +0200)
This allows packetisers to get initial stream information and act on it
during parsing process or returning a new stream.

nihav-core/src/codecs/mod.rs
nihav-llaudio/src/codecs/flac.rs
nihav-mpeg/src/codecs/mpegaudio/mod.rs

index 37857d98d1f3cc7d4779bc628171b2c8ec68747a..b7d781987a8a7da159561ba8fb0bb076137b12c2 100644 (file)
@@ -427,6 +427,10 @@ impl RegisteredEncoders {
 
 /// Trait for packetisers (objects that form full packets from raw stream data).
 pub trait NAPacketiser {
+    /// Provides the reference stream from the demuxer to the packetiser.
+    ///
+    /// This may be useful in cases when packetiser cannot determine stream parameters by itself.
+    fn attach_stream(&mut self, stream: NAStreamRef);
     /// Queues new raw stream data for parsing.
     ///
     /// Returns false is the internal buffer grows too large.
index 6d7198120a2820ce05e71b23877cdd87b6d60bba..6ebc78d2d80e0d8422cffd958b36ec6999fdc49a 100644 (file)
@@ -552,6 +552,7 @@ impl FLACPacketiser {
 }
 
 impl NAPacketiser for FLACPacketiser {
+    fn attach_stream(&mut self, _stream: NAStreamRef) {}
     fn add_data(&mut self, src: &[u8]) -> bool {
         self.buf.extend_from_slice(src);
         self.buf.len() < 4096
index 677e81b55049594d428d3066bc12f9587032c68d..e883df80a66c21caae6820c946ff645849c23f2a 100644 (file)
@@ -373,6 +373,7 @@ impl MPAPacketiser {
 }
 
 impl NAPacketiser for MPAPacketiser {
+    fn attach_stream(&mut self, _stream: NAStreamRef) {}
     fn add_data(&mut self, src: &[u8]) -> bool {
         self.buf.extend_from_slice(src);
         self.buf.len() < 4096