- fn read_packet(&mut self, str: Rc<NAStream>, ts: NATimeInfo, keyframe: bool, size: usize) -> DemuxerResult<NAPacket>;
+ fn read_packet(&mut self, str: NAStreamRef, ts: NATimeInfo, keyframe: bool, size: usize) -> DemuxerResult<NAPacket>;
fn fill_packet(&mut self, pkt: &mut NAPacket) -> DemuxerResult<()>;
}
impl<'a> NAPacketReader for ByteReader<'a> {
fn fill_packet(&mut self, pkt: &mut NAPacket) -> DemuxerResult<()>;
}
impl<'a> NAPacketReader for ByteReader<'a> {
- fn read_packet(&mut self, str: Rc<NAStream>, ts: NATimeInfo, kf: bool, size: usize) -> DemuxerResult<NAPacket> {
+ fn read_packet(&mut self, str: NAStreamRef, ts: NATimeInfo, kf: bool, size: usize) -> DemuxerResult<NAPacket> {
let mut buf: Vec<u8> = Vec::with_capacity(size);
if buf.capacity() < size { return Err(DemuxerError::MemoryError); }
buf.resize(size, 0);
let mut buf: Vec<u8> = Vec::with_capacity(size);
if buf.capacity() < size { return Err(DemuxerError::MemoryError); }
buf.resize(size, 0);
let pkt = NAPacket::new(str, ts, kf, buf);
Ok(pkt)
}
fn fill_packet(&mut self, pkt: &mut NAPacket) -> DemuxerResult<()> {
let mut refbuf = pkt.get_buffer();
let buf = refbuf.as_mut().unwrap();
let pkt = NAPacket::new(str, ts, kf, buf);
Ok(pkt)
}
fn fill_packet(&mut self, pkt: &mut NAPacket) -> DemuxerResult<()> {
let mut refbuf = pkt.get_buffer();
let buf = refbuf.as_mut().unwrap();
for i in 0..self.streams.len() {
if self.streams[i].get_id() == id {
return Some(self.streams[i].clone());
for i in 0..self.streams.len() {
if self.streams[i].get_id() == id {
return Some(self.streams[i].clone());
- pub fn new(streams: &'a Vec<Rc<NAStream>>) -> Self {
- StreamIter { streams: streams, pos: 0 }
+ pub fn new(streams: &'a [NAStreamRef]) -> Self {
+ StreamIter { streams, pos: 0 }
///The structure used to create demuxers.
pub trait DemuxerCreator {
/// Create new demuxer instance that will use `ByteReader` source as an input.
///The structure used to create demuxers.
pub trait DemuxerCreator {
/// Create new demuxer instance that will use `ByteReader` source as an input.
pub struct RegisteredDemuxers {
dmxs: Vec<&'static DemuxerCreator>,
}
pub struct RegisteredDemuxers {
dmxs: Vec<&'static DemuxerCreator>,
}