projects
/
nihav.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
70910ac
)
switch NAFrame references to Arc
author
Kostya Shishkov
<kostya.shishkov@gmail.com>
Mon, 29 Apr 2019 11:37:08 +0000
(13:37 +0200)
committer
Kostya Shishkov
<kostya.shishkov@gmail.com>
Mon, 29 Apr 2019 11:37:08 +0000
(13:37 +0200)
37 files changed:
nihav-commonfmt/src/codecs/aac.rs
patch
|
blob
|
blame
|
history
nihav-commonfmt/src/codecs/atrac3.rs
patch
|
blob
|
blame
|
history
nihav-commonfmt/src/codecs/clearvideo.rs
patch
|
blob
|
blame
|
history
nihav-commonfmt/src/codecs/pcm.rs
patch
|
blob
|
blame
|
history
nihav-commonfmt/src/codecs/sipro.rs
patch
|
blob
|
blame
|
history
nihav-commonfmt/src/codecs/ts102366.rs
patch
|
blob
|
blame
|
history
nihav-core/src/frame.rs
patch
|
blob
|
blame
|
history
nihav-core/src/test/dec_video.rs
patch
|
blob
|
blame
|
history
nihav-duck/src/codecs/dkadpcm.rs
patch
|
blob
|
blame
|
history
nihav-duck/src/codecs/truemotion1.rs
patch
|
blob
|
blame
|
history
nihav-duck/src/codecs/truemotion2.rs
patch
|
blob
|
blame
|
history
nihav-duck/src/codecs/truemotion2x.rs
patch
|
blob
|
blame
|
history
nihav-duck/src/codecs/truemotionrt.rs
patch
|
blob
|
blame
|
history
nihav-game/src/codecs/bmv.rs
patch
|
blob
|
blame
|
history
nihav-game/src/codecs/bmv3.rs
patch
|
blob
|
blame
|
history
nihav-game/src/codecs/gremlinvideo.rs
patch
|
blob
|
blame
|
history
nihav-game/src/codecs/vmd.rs
patch
|
blob
|
blame
|
history
nihav-indeo/src/codecs/imc.rs
patch
|
blob
|
blame
|
history
nihav-indeo/src/codecs/indeo2.rs
patch
|
blob
|
blame
|
history
nihav-indeo/src/codecs/indeo3.rs
patch
|
blob
|
blame
|
history
nihav-indeo/src/codecs/indeo4.rs
patch
|
blob
|
blame
|
history
nihav-indeo/src/codecs/indeo5.rs
patch
|
blob
|
blame
|
history
nihav-indeo/src/codecs/intel263.rs
patch
|
blob
|
blame
|
history
nihav-indeo/src/codecs/ivibr.rs
patch
|
blob
|
blame
|
history
nihav-rad/src/codecs/bink2.rs
patch
|
blob
|
blame
|
history
nihav-rad/src/codecs/binkaud.rs
patch
|
blob
|
blame
|
history
nihav-rad/src/codecs/binkvid.rs
patch
|
blob
|
blame
|
history
nihav-rad/src/codecs/smacker.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/cook.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/ra144.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/ra288.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/ralf.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/rv10.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/rv20.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/rv30.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/rv40.rs
patch
|
blob
|
blame
|
history
nihav-realmedia/src/codecs/rv60.rs
patch
|
blob
|
blame
|
history
diff --git
a/nihav-commonfmt/src/codecs/aac.rs
b/nihav-commonfmt/src/codecs/aac.rs
index 412bc9c8b4c0883403ba31ba897dfd053334b317..7b3c9034304b8cb8206f418639708b5077ad1ce5 100644
(file)
--- a/
nihav-commonfmt/src/codecs/aac.rs
+++ b/
nihav-commonfmt/src/codecs/aac.rs
@@
-1251,7
+1251,7
@@
impl NADecoder for AACDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-commonfmt/src/codecs/atrac3.rs
b/nihav-commonfmt/src/codecs/atrac3.rs
index 42fbe8a708fe053d15d0bf20bcc27589c2bcb4be..9cc7dd4a79a536412c4356fd17f7866e30b1e685 100644
(file)
--- a/
nihav-commonfmt/src/codecs/atrac3.rs
+++ b/
nihav-commonfmt/src/codecs/atrac3.rs
@@
-688,7
+688,7
@@
impl NADecoder for Atrac3Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-commonfmt/src/codecs/clearvideo.rs
b/nihav-commonfmt/src/codecs/clearvideo.rs
index d485bdb6b00cb572f7bb91cdce916c7284ff9ebc..ba23148dddd77dfb7b9a77bd2079de31396a2120 100644
(file)
--- a/
nihav-commonfmt/src/codecs/clearvideo.rs
+++ b/
nihav-commonfmt/src/codecs/clearvideo.rs
@@
-726,7
+726,7
@@
impl NADecoder for ClearVideoDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
- return Ok(
Rc::new(RefCell::new(frm)
));
+ return Ok(
frm.into_ref(
));
}
let is_intra = (src[off] & 2) == 2;
}
let is_intra = (src[off] & 2) == 2;
@@
-757,7
+757,7
@@
impl NADecoder for ClearVideoDecoder {
} else {
frm.set_frame_type(FrameType::P);
}
} else {
frm.set_frame_type(FrameType::P);
}
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-commonfmt/src/codecs/pcm.rs
b/nihav-commonfmt/src/codecs/pcm.rs
index 132d4c3a60755e91548643f05d9d8287e10d0b12..00f5c3158151082b7457a20c5fb0a6b9c67868cc 100644
(file)
--- a/
nihav-commonfmt/src/codecs/pcm.rs
+++ b/
nihav-commonfmt/src/codecs/pcm.rs
@@
-51,7
+51,7
@@
impl NADecoder for PCMDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, NABufferType::AudioPacked(abuf));
frm.set_duration(Some(duration));
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, info, NABufferType::AudioPacked(abuf));
frm.set_duration(Some(duration));
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-commonfmt/src/codecs/sipro.rs
b/nihav-commonfmt/src/codecs/sipro.rs
index 05e6816588df5047d708a0a20ad06e0c2067caf0..88b525e94cc6bc0768c91b00534204c9fb6bb6f1 100644
(file)
--- a/
nihav-commonfmt/src/codecs/sipro.rs
+++ b/
nihav-commonfmt/src/codecs/sipro.rs
@@
-729,7
+729,7
@@
impl NADecoder for SiproDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-commonfmt/src/codecs/ts102366.rs
b/nihav-commonfmt/src/codecs/ts102366.rs
index f17b43106229dc75d552ac405b6248c0fc688c8d..a4d457024a7b76e9f031e5a8da929f01a8eccc5a 100644
(file)
--- a/
nihav-commonfmt/src/codecs/ts102366.rs
+++ b/
nihav-commonfmt/src/codecs/ts102366.rs
@@
-1235,7
+1235,7
@@
impl NADecoder for AudioDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-core/src/frame.rs
b/nihav-core/src/frame.rs
index d97850b7c7b59cd5a8f9d28975f10f842e0cee7d..d219ee45967b180e9174b8b01d1b9c6d44d23022 100644
(file)
--- a/
nihav-core/src/frame.rs
+++ b/
nihav-core/src/frame.rs
@@
-1,8
+1,6
@@
use std::cmp::max;
use std::collections::HashMap;
use std::fmt;
use std::cmp::max;
use std::collections::HashMap;
use std::fmt;
-pub use std::rc::Rc;
-pub use std::cell::*;
use std::sync::Arc;
pub use crate::formats::*;
pub use crate::refs::*;
use std::sync::Arc;
pub use crate::formats::*;
pub use crate::refs::*;
@@
-653,7
+651,7
@@
pub struct NAFrame {
options: HashMap<String, NAValue>,
}
options: HashMap<String, NAValue>,
}
-pub type NAFrameRef =
Rc<RefCell<NAFrame>
>;
+pub type NAFrameRef =
Arc<NAFrame
>;
fn get_plane_size(info: &NAVideoInfo, idx: usize) -> (usize, usize) {
let chromaton = info.get_format().get_chromaton(idx);
fn get_plane_size(info: &NAVideoInfo, idx: usize) -> (usize, usize) {
let chromaton = info.get_format().get_chromaton(idx);
@@
-687,6
+685,8
@@
impl NAFrame {
pub fn set_duration(&mut self, dur: Option<u64>) { self.ts.set_duration(dur); }
pub fn get_buffer(&self) -> NABufferType { self.buffer.clone() }
pub fn set_duration(&mut self, dur: Option<u64>) { self.ts.set_duration(dur); }
pub fn get_buffer(&self) -> NABufferType { self.buffer.clone() }
+
+ pub fn into_ref(self) -> NAFrameRef { Arc::new(self) }
}
impl fmt::Display for NAFrame {
}
impl fmt::Display for NAFrame {
diff --git
a/nihav-core/src/test/dec_video.rs
b/nihav-core/src/test/dec_video.rs
index 2c16b3dadb3fc155e1accc4cebb3aedf11c12fb2..538a0ef82edf8ffd272495e6aad72270f3f45a65 100644
(file)
--- a/
nihav-core/src/test/dec_video.rs
+++ b/
nihav-core/src/test/dec_video.rs
@@
-6,8
+6,7
@@
use crate::demuxers::*;
//use crate::io::byteio::*;
use super::wavwriter::WavWriter;
//use crate::io::byteio::*;
use super::wavwriter::WavWriter;
-fn write_pgmyuv(pfx: &str, strno: usize, num: u64, frmref: NAFrameRef) {
- let frm = frmref.borrow();
+fn write_pgmyuv(pfx: &str, strno: usize, num: u64, frm: NAFrameRef) {
if let NABufferType::None = frm.get_buffer() { return; }
let name = format!("assets/{}out{:02}_{:06}.pgm", pfx, strno, num);
let mut ofile = File::create(name).unwrap();
if let NABufferType::None = frm.get_buffer() { return; }
let name = format!("assets/{}out{:02}_{:06}.pgm", pfx, strno, num);
let mut ofile = File::create(name).unwrap();
@@
-90,8
+89,7
@@
fn write_pgmyuv(pfx: &str, strno: usize, num: u64, frmref: NAFrameRef) {
}
}
}
}
-fn write_palppm(pfx: &str, strno: usize, num: u64, frmref: NAFrameRef) {
- let frm = frmref.borrow();
+fn write_palppm(pfx: &str, strno: usize, num: u64, frm: NAFrameRef) {
let name = format!("assets/{}out{:02}_{:06}.ppm", pfx, strno, num);
let mut ofile = File::create(name).unwrap();
let buf = frm.get_buffer().get_vbuf().unwrap();
let name = format!("assets/{}out{:02}_{:06}.ppm", pfx, strno, num);
let mut ofile = File::create(name).unwrap();
let buf = frm.get_buffer().get_vbuf().unwrap();
@@
-122,8
+120,7
@@
fn write_palppm(pfx: &str, strno: usize, num: u64, frmref: NAFrameRef) {
}
}
}
}
-fn write_ppm(pfx: &str, strno: usize, num: u64, frmref: NAFrameRef) {
- let frm = frmref.borrow();
+fn write_ppm(pfx: &str, strno: usize, num: u64, frm: NAFrameRef) {
let name = format!("assets/{}out{:02}_{:06}.ppm", pfx, strno, num);
let mut ofile = File::create(name).unwrap();
if let NABufferType::VideoPacked(ref buf) = frm.get_buffer() {
let name = format!("assets/{}out{:02}_{:06}.ppm", pfx, strno, num);
let mut ofile = File::create(name).unwrap();
if let NABufferType::VideoPacked(ref buf) = frm.get_buffer() {
@@
-237,10
+234,10
@@
pub fn test_file_decoding(demuxer: &str, name: &str, limit: Option<u64>,
let streamno = pkt.get_stream().get_id() as usize;
if let Some(ref mut dec) = decs[streamno] {
let frm = dec.decode(&pkt).unwrap();
let streamno = pkt.get_stream().get_id() as usize;
if let Some(ref mut dec) = decs[streamno] {
let frm = dec.decode(&pkt).unwrap();
- if pkt.get_stream().get_info().is_video() && video_pfx.is_some() && frm.
borrow().
get_frame_type() != FrameType::Skip {
+ if pkt.get_stream().get_info().is_video() && video_pfx.is_some() && frm.get_frame_type() != FrameType::Skip {
let pfx = video_pfx.unwrap();
let pfx = video_pfx.unwrap();
- let pts = if let Some(fpts) = frm.
borrow().
get_pts() { fpts } else { pkt.get_pts().unwrap() };
- let vinfo = frm.
borrow().
get_buffer().get_video_info().unwrap();
+ let pts = if let Some(fpts) = frm.get_pts() { fpts } else { pkt.get_pts().unwrap() };
+ let vinfo = frm.get_buffer().get_video_info().unwrap();
if vinfo.get_format().is_paletted() {
write_palppm(pfx, streamno, pts, frm);
} else if vinfo.get_format().get_model().is_yuv() {
if vinfo.get_format().is_paletted() {
write_palppm(pfx, streamno, pts, frm);
} else if vinfo.get_format().get_model().is_yuv() {
@@
-300,8
+297,7
@@
pub fn test_decode_audio(demuxer: &str, name: &str, limit: Option<u64>, audio_pf
}
let streamno = pkt.get_stream().get_id() as usize;
if let Some(ref mut dec) = decs[streamno] {
}
let streamno = pkt.get_stream().get_id() as usize;
if let Some(ref mut dec) = decs[streamno] {
- let frm_ = dec.decode(&pkt).unwrap();
- let frm = frm_.borrow();
+ let frm = dec.decode(&pkt).unwrap();
if frm.get_info().is_audio() {
if !wrote_header {
wwr.write_header(frm.get_info().as_ref().get_properties().get_audio_info().unwrap()).unwrap();
if frm.get_info().is_audio() {
if !wrote_header {
wwr.write_header(frm.get_info().as_ref().get_properties().get_audio_info().unwrap()).unwrap();
diff --git
a/nihav-duck/src/codecs/dkadpcm.rs
b/nihav-duck/src/codecs/dkadpcm.rs
index 0104b306d9e8f622743537f4e3f104f5f5469fbc..9ff5ed93cecb63987d5364de3b90a5d8697c2121 100644
(file)
--- a/
nihav-duck/src/codecs/dkadpcm.rs
+++ b/
nihav-duck/src/codecs/dkadpcm.rs
@@
-158,7
+158,7
@@
impl NADecoder for DuckADPCMDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(duration as u64));
frm.set_keyframe(false);
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(duration as u64));
frm.set_keyframe(false);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-duck/src/codecs/truemotion1.rs
b/nihav-duck/src/codecs/truemotion1.rs
index 2c8e5d273933c901763836beb5d8dcd894f2afda..b8edd4e383050ce4b5bbdeaaec3fdd91987151df 100644
(file)
--- a/
nihav-duck/src/codecs/truemotion1.rs
+++ b/
nihav-duck/src/codecs/truemotion1.rs
@@
-578,7
+578,7
@@
impl NADecoder for TM1Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
- return Ok(
Rc::new(RefCell::new(frm)
));
+ return Ok(
frm.into_ref(
));
}
let compr_info = cinfo.unwrap();
let is_24bit = !is_sprite && compr_info.is_24bit;
}
let compr_info = cinfo.unwrap();
let is_24bit = !is_sprite && compr_info.is_24bit;
@@
-656,7
+656,7
@@
impl NADecoder for TM1Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra || is_sprite);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra || is_sprite);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-duck/src/codecs/truemotion2.rs
b/nihav-duck/src/codecs/truemotion2.rs
index e8225450a52b2e17398c7652f89905d380ccbd23..1c91640883b7ca4a862351b2ad5e7dc0c68f190c 100644
(file)
--- a/
nihav-duck/src/codecs/truemotion2.rs
+++ b/
nihav-duck/src/codecs/truemotion2.rs
@@
-585,7
+585,7
@@
impl NADecoder for TM2Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-duck/src/codecs/truemotion2x.rs
b/nihav-duck/src/codecs/truemotion2x.rs
index fce5fb359b3a9bd68f0979ed4375cdb990958b87..560ab6a969d213e69bbe6e1f8b6f65ad75353415 100644
(file)
--- a/
nihav-duck/src/codecs/truemotion2x.rs
+++ b/
nihav-duck/src/codecs/truemotion2x.rs
@@
-688,7
+688,7
@@
impl NADecoder for TM2XDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.is_intra);
frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.is_intra);
frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-duck/src/codecs/truemotionrt.rs
b/nihav-duck/src/codecs/truemotionrt.rs
index 12548ef302719698dff09b1ab6d3cf80f6d19746..a96d6099085464d3170564701baf2b637b8df85c 100644
(file)
--- a/
nihav-duck/src/codecs/truemotionrt.rs
+++ b/
nihav-duck/src/codecs/truemotionrt.rs
@@
-80,7
+80,7
@@
impl NADecoder for TMRTDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(true);
frm.set_frame_type(FrameType::I);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(true);
frm.set_frame_type(FrameType::I);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-game/src/codecs/bmv.rs
b/nihav-game/src/codecs/bmv.rs
index 79b8745b17cdd529017e9e2e74b240eb5bc39355..6712ce2615bdf82d03fd9002e5e23c3181adfa18 100644
(file)
--- a/
nihav-game/src/codecs/bmv.rs
+++ b/
nihav-game/src/codecs/bmv.rs
@@
-220,7
+220,7
@@
impl NADecoder for BMVVideoDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
@@
-294,7
+294,7
@@
impl NADecoder for BMVAudioDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-game/src/codecs/bmv3.rs
b/nihav-game/src/codecs/bmv3.rs
index 687ca237c09a8420a8258dffdf9e17e442ed7b1e..2cd0b2b8868797cf83fcaaddc333943368c88ab5 100644
(file)
--- a/
nihav-game/src/codecs/bmv3.rs
+++ b/
nihav-game/src/codecs/bmv3.rs
@@
-504,7
+504,7
@@
impl NADecoder for BMV3VideoDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.is_intra);
frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.is_intra);
frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
@@
-591,7
+591,7
@@
impl NADecoder for BMV3AudioDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-game/src/codecs/gremlinvideo.rs
b/nihav-game/src/codecs/gremlinvideo.rs
index cf7f7b13c1ff23425d8fb47063e5e7c5c519d7af..c7bdaf9ff6a44cf4940e0eda74d90f8c579b7500 100644
(file)
--- a/
nihav-game/src/codecs/gremlinvideo.rs
+++ b/
nihav-game/src/codecs/gremlinvideo.rs
@@
-429,12
+429,12
@@
impl NADecoder for GremlinVideoDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
- return Ok(
Rc::new(RefCell::new(frm)
))
+ return Ok(
frm.into_ref(
))
} else if cmethod == 3 {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
} else if cmethod == 3 {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
frm.set_keyframe(false);
frm.set_frame_type(FrameType::Skip);
- return Ok(
Rc::new(RefCell::new(frm)
))
+ return Ok(
frm.into_ref(
))
} else if cmethod == 2 {
self.decode_method2(&mut br)?;
} else if cmethod == 5 {
} else if cmethod == 2 {
self.decode_method2(&mut br)?;
} else if cmethod == 5 {
@@
-456,7
+456,7
@@
impl NADecoder for GremlinVideoDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
@@
-545,7
+545,7
@@
impl NADecoder for GremlinAudioDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-game/src/codecs/vmd.rs
b/nihav-game/src/codecs/vmd.rs
index dc831c4fb8200834e1eb8e2af4fded93f25c6ebe..a1e71ed7b7385f355080aadc1d7b38c126d7a5c8 100644
(file)
--- a/
nihav-game/src/codecs/vmd.rs
+++ b/
nihav-game/src/codecs/vmd.rs
@@
-264,7
+264,7
@@
impl NADecoder for VMDVideoDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::Video(buf));
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::Video(buf));
frm.set_keyframe(is_intra);
frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
@@
-433,7
+433,7
@@
impl NADecoder for VMDAudioDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-indeo/src/codecs/imc.rs
b/nihav-indeo/src/codecs/imc.rs
index ceac0d1062e33de26dbeb77b7bab7fc33b73d9e2..5f1390aa6b69445ce24fe232fad5537ad94b92bd 100644
(file)
--- a/
nihav-indeo/src/codecs/imc.rs
+++ b/
nihav-indeo/src/codecs/imc.rs
@@
-920,7
+920,7
@@
impl NADecoder for IMCDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-indeo/src/codecs/indeo2.rs
b/nihav-indeo/src/codecs/indeo2.rs
index 5ea8b3f5ad5666e53333c9f104890e835f34d0dc..d110dc89496eeb5926847b7ce4655b3254d6ea26 100644
(file)
--- a/
nihav-indeo/src/codecs/indeo2.rs
+++ b/
nihav-indeo/src/codecs/indeo2.rs
@@
-343,7
+343,7
@@
impl NADecoder for Indeo2Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(true);
frm.set_frame_type(FrameType::I);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(true);
frm.set_frame_type(FrameType::I);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
let bufret = self.frmmgr.clone_ref();
if let None = bufret { return Err(DecoderError::MissingReference); }
} else {
let bufret = self.frmmgr.clone_ref();
if let None = bufret { return Err(DecoderError::MissingReference); }
@@
-356,7
+356,7
@@
impl NADecoder for Indeo2Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::Video(buf));
frm.set_keyframe(false);
frm.set_frame_type(FrameType::P);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::Video(buf));
frm.set_keyframe(false);
frm.set_frame_type(FrameType::P);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
}
}
diff --git
a/nihav-indeo/src/codecs/indeo3.rs
b/nihav-indeo/src/codecs/indeo3.rs
index ebf941c6be9c249ea26dac252b9fa1692ef7597a..eaef84b2eb31b76aeb7e0ee75bd98d76b701af98 100644
(file)
--- a/
nihav-indeo/src/codecs/indeo3.rs
+++ b/
nihav-indeo/src/codecs/indeo3.rs
@@
-783,7
+783,7
@@
impl NADecoder for Indeo3Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(intraframe);
frm.set_frame_type(if intraframe { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(intraframe);
frm.set_frame_type(if intraframe { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-indeo/src/codecs/indeo4.rs
b/nihav-indeo/src/codecs/indeo4.rs
index 07f6d67fa9e5faa1d6c8822a55eee3c311770fa8..9ee3a411666d5e2f99e13e1572507ea545ca398f 100644
(file)
--- a/
nihav-indeo/src/codecs/indeo4.rs
+++ b/
nihav-indeo/src/codecs/indeo4.rs
@@
-453,7
+453,7
@@
impl NADecoder for Indeo4Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(self.dec.get_frame_type());
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(self.dec.get_frame_type());
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-indeo/src/codecs/indeo5.rs
b/nihav-indeo/src/codecs/indeo5.rs
index 1f770814c4b5fbb18597cfc4207fabfeb71deaa6..faa3107fd2df864b49161399828399b245731866 100644
(file)
--- a/
nihav-indeo/src/codecs/indeo5.rs
+++ b/
nihav-indeo/src/codecs/indeo5.rs
@@
-528,7
+528,7
@@
impl NADecoder for Indeo5Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(self.dec.get_frame_type());
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(self.dec.get_frame_type());
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-indeo/src/codecs/intel263.rs
b/nihav-indeo/src/codecs/intel263.rs
index 3b95c5fa8e4f52466e84323a1a1a27051e77f09d..7afee94ac602363a7964a2b0e818aa501d998876 100644
(file)
--- a/
nihav-indeo/src/codecs/intel263.rs
+++ b/
nihav-indeo/src/codecs/intel263.rs
@@
-393,7
+393,7
@@
impl NADecoder for Intel263Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), buftype);
frm.set_keyframe(false);
frm.set_frame_type(if is_skip { FrameType::Skip } else { FrameType::B });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), buftype);
frm.set_keyframe(false);
frm.set_frame_type(if is_skip { FrameType::Skip } else { FrameType::B });
- return Ok(
Rc::new(RefCell::new(frm)
));
+ return Ok(
frm.into_ref(
));
}
let mut ibr = Intel263BR::new(&src, &self.tables);
}
let mut ibr = Intel263BR::new(&src, &self.tables);
@@
-402,7
+402,7
@@
impl NADecoder for Intel263Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(if self.dec.is_intra() { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(if self.dec.is_intra() { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-indeo/src/codecs/ivibr.rs
b/nihav-indeo/src/codecs/ivibr.rs
index b5fa2919b5e2f18aca6dbfad076082f37cc0e7b7..edeec468b352fe07b92b91150f6c7c9dec04785a 100644
(file)
--- a/
nihav-indeo/src/codecs/ivibr.rs
+++ b/
nihav-indeo/src/codecs/ivibr.rs
@@
-1,6
+1,6
@@
use std::mem;
use std::rc::Rc;
use std::mem;
use std::rc::Rc;
-use std::cell::{Ref,RefCell};
+
pub
use std::cell::{Ref,RefCell};
use nihav_core::io::bitreader::*;
//use io::intcode::*;
use nihav_core::codecs::*;
use nihav_core::io::bitreader::*;
//use io::intcode::*;
use nihav_core::codecs::*;
diff --git
a/nihav-rad/src/codecs/bink2.rs
b/nihav-rad/src/codecs/bink2.rs
index 60d42a4fb8a9d5a0d1c05809d2771fd77711f2d4..d57f8bdaf337b872e622323e1708a25792ca91de 100644
(file)
--- a/
nihav-rad/src/codecs/bink2.rs
+++ b/
nihav-rad/src/codecs/bink2.rs
@@
-1933,7
+1933,7
@@
impl NADecoder for Bink2Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_frame_type(if self.key_frame { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_frame_type(if self.key_frame { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-rad/src/codecs/binkaud.rs
b/nihav-rad/src/codecs/binkaud.rs
index 182c6c91f2a5d7e370f429e6d3dda1d895f58be6..3d7568c538c86e10aeea10533358523549222b13 100644
(file)
--- a/
nihav-rad/src/codecs/binkaud.rs
+++ b/
nihav-rad/src/codecs/binkaud.rs
@@
-268,7
+268,7
@@
impl NADecoder for BinkAudioDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(self.duration as u64));
frm.set_keyframe(false);
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(self.duration as u64));
frm.set_keyframe(false);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-rad/src/codecs/binkvid.rs
b/nihav-rad/src/codecs/binkvid.rs
index 2f95ed6b58c1add29a8d1f437e1043663c06e56e..3a0b4961e43feabcd63bbdd9294f6ec3726f5246 100644
(file)
--- a/
nihav-rad/src/codecs/binkvid.rs
+++ b/
nihav-rad/src/codecs/binkvid.rs
@@
-1260,7
+1260,7
@@
println!("decode frame {} b={} i={}", pkt.get_pts().unwrap(), self.is_ver_b, sel
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_frame_type(FrameType::P);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_frame_type(FrameType::P);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-rad/src/codecs/smacker.rs
b/nihav-rad/src/codecs/smacker.rs
index bc27ab0b31a6616d5761c6cf97d1d319f5d911ca..9ed2a9fa7511e1d9c28fc27d606e77f2c66def6c 100644
(file)
--- a/
nihav-rad/src/codecs/smacker.rs
+++ b/
nihav-rad/src/codecs/smacker.rs
@@
-465,7
+465,7
@@
impl NADecoder for SmackerVideoDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(ftype);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(is_intra);
frm.set_frame_type(ftype);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
@@
-514,7
+514,7
@@
impl NADecoder for SmackerAudioDecoder {
if !br.read_bool()? {
let mut frm = NAFrame::new_from_pkt(pkt, info.clone(), NABufferType::None);
frm.set_frame_type(FrameType::Skip);
if !br.read_bool()? {
let mut frm = NAFrame::new_from_pkt(pkt, info.clone(), NABufferType::None);
frm.set_frame_type(FrameType::Skip);
- return Ok(
Rc::new(RefCell::new(frm)
));
+ return Ok(
frm.into_ref(
));
}
let stereo = br.read_bool()?;
let bits16 = br.read_bool()?;
}
let stereo = br.read_bool()?;
let bits16 = br.read_bool()?;
@@
-586,7
+586,7
@@
impl NADecoder for SmackerAudioDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
let mut frm = NAFrame::new_from_pkt(pkt, info, abuf);
frm.set_duration(Some(samples as u64));
frm.set_keyframe(false);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
} else {
Err(DecoderError::InvalidData)
}
} else {
Err(DecoderError::InvalidData)
}
diff --git
a/nihav-realmedia/src/codecs/cook.rs
b/nihav-realmedia/src/codecs/cook.rs
index 6303724c2ff1edcfdeecf29faca6c5a12f233e54..b954bd7c7d58eb94f48592ccda5743fa24ac9b60 100644
(file)
--- a/
nihav-realmedia/src/codecs/cook.rs
+++ b/
nihav-realmedia/src/codecs/cook.rs
@@
-668,7
+668,7
@@
impl NADecoder for CookDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/ra144.rs
b/nihav-realmedia/src/codecs/ra144.rs
index 38d76c3764f8e1dd2107d2ba7ccb3ef2b6cc69d1..07d234a6dddf4823bdbd90a4516c4cf26cc84552 100644
(file)
--- a/
nihav-realmedia/src/codecs/ra144.rs
+++ b/
nihav-realmedia/src/codecs/ra144.rs
@@
-305,7
+305,7
@@
impl NADecoder for RA144Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/ra288.rs
b/nihav-realmedia/src/codecs/ra288.rs
index 142cf2ae1cec294242c637382b9d514dcef5d268..dbb7f90c444c0f97d2ca581ec6c770ddd9ddce84 100644
(file)
--- a/
nihav-realmedia/src/codecs/ra288.rs
+++ b/
nihav-realmedia/src/codecs/ra288.rs
@@
-195,7
+195,7
@@
impl NADecoder for RA288Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/ralf.rs
b/nihav-realmedia/src/codecs/ralf.rs
index 307436c9ed03743a7158a5f88761c28383e7cba7..b8a06d140f1ecd67ba987689b87430c699ed7af9 100644
(file)
--- a/
nihav-realmedia/src/codecs/ralf.rs
+++ b/
nihav-realmedia/src/codecs/ralf.rs
@@
-417,7
+417,7
@@
impl NADecoder for RALFDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), NABufferType::None);
frm.set_frame_type(FrameType::Skip);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), NABufferType::None);
frm.set_frame_type(FrameType::Skip);
- return Ok(
Rc::new(RefCell::new(frm)
));
+ return Ok(
frm.into_ref(
));
}
src_len = pktbuf.len();
}
}
src_len = pktbuf.len();
}
@@
-465,7
+465,7
@@
impl NADecoder for RALFDecoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf);
frm.set_keyframe(true);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/rv10.rs
b/nihav-realmedia/src/codecs/rv10.rs
index 1d93a012433a54cb12f2a446e9bb1de005926231..733b6776288f53faeb1b5554bf1d1e75e50794b9 100644
(file)
--- a/
nihav-realmedia/src/codecs/rv10.rs
+++ b/
nihav-realmedia/src/codecs/rv10.rs
@@
-447,7
+447,7
@@
println!("???");
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(if self.dec.is_intra() { FrameType::I } else { FrameType::P });
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(if self.dec.is_intra() { FrameType::I } else { FrameType::P });
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/rv20.rs
b/nihav-realmedia/src/codecs/rv20.rs
index 36ccc67846ce9dd1d806f9a9542d311ce84c91da..44386f6967b4c0a90cc8e11d77920ea9ce8fc2eb 100644
(file)
--- a/
nihav-realmedia/src/codecs/rv20.rs
+++ b/
nihav-realmedia/src/codecs/rv20.rs
@@
-501,7
+501,7
@@
impl NADecoder for RealVideo20Decoder {
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(self.dec.get_frame_type());
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(self.dec.is_intra());
frm.set_frame_type(self.dec.get_frame_type());
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/rv30.rs
b/nihav-realmedia/src/codecs/rv30.rs
index a2d7090cc19098ddefdc98b92b4c0b5d6510035a..7ec3cb23e03bd158d8313a23424f1de0f8ee9a1c 100644
(file)
--- a/
nihav-realmedia/src/codecs/rv30.rs
+++ b/
nihav-realmedia/src/codecs/rv30.rs
@@
-153,7
+153,7
@@
println!("???");
frm.set_keyframe(ftype == FrameType::I);
frm.set_pts(Some(pts));
frm.set_frame_type(ftype);//if ftype == FrameType::B { FrameType::Skip } else { ftype } );
frm.set_keyframe(ftype == FrameType::I);
frm.set_pts(Some(pts));
frm.set_frame_type(ftype);//if ftype == FrameType::B { FrameType::Skip } else { ftype } );
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/rv40.rs
b/nihav-realmedia/src/codecs/rv40.rs
index eb45164401e6ed50127968d7f9549f995ba0e793..482d85680036ee0d8134f11d3c6c7bf444e85d1d 100644
(file)
--- a/
nihav-realmedia/src/codecs/rv40.rs
+++ b/
nihav-realmedia/src/codecs/rv40.rs
@@
-346,7
+346,7
@@
println!("???");
frm.set_keyframe(ftype == FrameType::I);
frm.set_frame_type(ftype);
frm.set_pts(Some(ts));
frm.set_keyframe(ftype == FrameType::I);
frm.set_frame_type(ftype);
frm.set_pts(Some(ts));
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}
diff --git
a/nihav-realmedia/src/codecs/rv60.rs
b/nihav-realmedia/src/codecs/rv60.rs
index 4adbe394406c2b25be546fbcfb153a453998d9b4..82dce045f87d255871f6ac06122631c5691fd6cf 100644
(file)
--- a/
nihav-realmedia/src/codecs/rv60.rs
+++ b/
nihav-realmedia/src/codecs/rv60.rs
@@
-1458,7
+1458,7
@@
println!("???");
frm.set_keyframe(hdr.ftype == FrameType::I);
frm.set_pts(Some(hdr.ts as u64));
frm.set_frame_type(hdr.ftype);
frm.set_keyframe(hdr.ftype == FrameType::I);
frm.set_pts(Some(hdr.ts as u64));
frm.set_frame_type(hdr.ftype);
- Ok(
Rc::new(RefCell::new(frm)
))
+ Ok(
frm.into_ref(
))
}
}
}
}