X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fframe.rs;h=10db18de0d15ccf7be8a9d4dc50123e4a7f5c4fc;hb=de3f3f006ff7b0b6407111d4dca3ec124be398fb;hp=792bfb41953ee9915e9200a93e764ff51dc2b1c0;hpb=2a998d8fb46273ffbf62a7e909ad8228c089f1d0;p=nihav.git diff --git a/nihav-core/src/frame.rs b/nihav-core/src/frame.rs index 792bfb4..10db18d 100644 --- a/nihav-core/src/frame.rs +++ b/nihav-core/src/frame.rs @@ -746,6 +746,22 @@ impl NAVideoBufferPool { pub fn reset(&mut self) { self.pool.clear(); } + /// Returns the number of frames currently in use. + pub fn get_num_used(&self) -> usize { + self.pool.iter().filter(|el| el.get_num_refs() != 1).count() + } + /// Adds a manually allocated frame to the pool. + pub fn add_frame(&mut self, buf: NAVideoBufferRef) { + self.pool.push(buf); + } + /// Returns current video format (if available). + pub fn get_info(&self) -> Option { + if !self.pool.is_empty() { + Some(self.pool[0].get_info()) + } else { + None + } + } } impl NAVideoBufferPool { @@ -1388,14 +1404,14 @@ pub struct NAPacket { impl NAPacket { /// Constructs a new `NAPacket` instance. - pub fn new(str: NAStreamRef, ts: NATimeInfo, kf: bool, vec: Vec) -> Self { + pub fn new(stream: NAStreamRef, ts: NATimeInfo, kf: bool, vec: Vec) -> Self { // let mut vec: Vec = Vec::new(); // vec.resize(size, 0); - NAPacket { stream: str, ts, keyframe: kf, buffer: NABufferRef::new(vec), side_data: Vec::new() } + NAPacket { stream, ts, keyframe: kf, buffer: NABufferRef::new(vec), side_data: Vec::new() } } /// Constructs a new `NAPacket` instance reusing a buffer reference. - pub fn new_from_refbuf(str: NAStreamRef, ts: NATimeInfo, kf: bool, buffer: NABufferRef>) -> Self { - NAPacket { stream: str, ts, keyframe: kf, buffer, side_data: Vec::new() } + pub fn new_from_refbuf(stream: NAStreamRef, ts: NATimeInfo, kf: bool, buffer: NABufferRef>) -> Self { + NAPacket { stream, ts, keyframe: kf, buffer, side_data: Vec::new() } } /// Returns information about the stream packet belongs to. pub fn get_stream(&self) -> NAStreamRef { self.stream.clone() } @@ -1414,8 +1430,8 @@ impl NAPacket { /// Adds side data for a packet. pub fn add_side_data(&mut self, side_data: NASideData) { self.side_data.push(side_data); } /// Assigns packet to a new stream. - pub fn reassign(&mut self, str: NAStreamRef, ts: NATimeInfo) { - self.stream = str; + pub fn reassign(&mut self, stream: NAStreamRef, ts: NATimeInfo) { + self.stream = stream; self.ts = ts; } }