aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2024-04-23 18:44:02 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2024-04-23 18:44:02 +0200
commit1b56382ecc132f9a414486cad4ac9f75241955fb (patch)
treec83de821bf2cdcd2e196596f87a86f6a519c298d
parent962b9cb37ad2ff46692eee62087c53805a3c675b (diff)
downloadnihav-1b56382ecc132f9a414486cad4ac9f75241955fb.tar.gz
Introduce NAPacketiser::attach_stream()
This allows packetisers to get initial stream information and act on it during parsing process or returning a new stream.
-rw-r--r--nihav-core/src/codecs/mod.rs4
-rw-r--r--nihav-llaudio/src/codecs/flac.rs1
-rw-r--r--nihav-mpeg/src/codecs/mpegaudio/mod.rs1
3 files changed, 6 insertions, 0 deletions
diff --git a/nihav-core/src/codecs/mod.rs b/nihav-core/src/codecs/mod.rs
index 37857d9..b7d7819 100644
--- a/nihav-core/src/codecs/mod.rs
+++ b/nihav-core/src/codecs/mod.rs
@@ -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.
diff --git a/nihav-llaudio/src/codecs/flac.rs b/nihav-llaudio/src/codecs/flac.rs
index 6d71981..6ebc78d 100644
--- a/nihav-llaudio/src/codecs/flac.rs
+++ b/nihav-llaudio/src/codecs/flac.rs
@@ -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
diff --git a/nihav-mpeg/src/codecs/mpegaudio/mod.rs b/nihav-mpeg/src/codecs/mpegaudio/mod.rs
index 677e81b..e883df8 100644
--- a/nihav-mpeg/src/codecs/mpegaudio/mod.rs
+++ b/nihav-mpeg/src/codecs/mpegaudio/mod.rs
@@ -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