projects
/
nihav-tool.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
125ba9b
)
use NADecoderSupport
author
Kostya Shishkov
<kostya.shishkov@gmail.com>
Thu, 2 May 2019 11:32:32 +0000
(13:32 +0200)
committer
Kostya Shishkov
<kostya.shishkov@gmail.com>
Thu, 2 May 2019 11:32:32 +0000
(13:32 +0200)
src/main.rs
patch
|
blob
|
blame
|
history
diff --git
a/src/main.rs
b/src/main.rs
index e191e7a4087dc11e246bb4ecec0ec60a5f7e9592..9f9d4976bd4c61858142e0d8b3ecf877d9ce8842 100644
(file)
--- a/
src/main.rs
+++ b/
src/main.rs
@@
-132,7
+132,7
@@
println!("trying demuxer {} on {}", dmx_name, name);
br.seek(SeekFrom::Start(0)).unwrap();
let mut dmx = create_demuxer(dmx_fact, &mut br).unwrap();
br.seek(SeekFrom::Start(0)).unwrap();
let mut dmx = create_demuxer(dmx_fact, &mut br).unwrap();
- let mut decs: Vec<Option<
Box<NADecoder>
>> = Vec::new();
+ let mut decs: Vec<Option<
(Box<NADecoderSupport>, Box<NADecoder>)
>> = Vec::new();
let mut sids: Vec<u32> = Vec::new();
let mut writers: Vec<Outputter> = Vec::new();
for i in 0..dmx.get_num_streams() {
let mut sids: Vec<u32> = Vec::new();
let mut writers: Vec<Outputter> = Vec::new();
for i in 0..dmx.get_num_streams() {
@@
-150,8
+150,9
@@
println!("stream {} - {} {}", i, s, info.get_name());
return;
}
let mut dec = (decfunc.unwrap())();
return;
}
let mut dec = (decfunc.unwrap())();
- dec.init(info).unwrap();
- decs.push(Some(dec));
+ let mut dsupp = Box::new(NADecoderSupport::new());
+ dec.init(&mut dsupp, info).unwrap();
+ decs.push(Some((dsupp, dec)));
if !noout {
writers.push(Outputter::Video(FrameOutput{prefix: "", streamno: i, frameno: 1, nmode: nmode}));
has_out = true;
if !noout {
writers.push(Outputter::Video(FrameOutput{prefix: "", streamno: i, frameno: 1, nmode: nmode}));
has_out = true;
@@
-166,8
+167,9
@@
println!("stream {} - {} {}", i, s, info.get_name());
return;
}
let mut dec = (decfunc.unwrap())();
return;
}
let mut dec = (decfunc.unwrap())();
- dec.init(info).unwrap();
- decs.push(Some(dec));
+ let mut dsupp = Box::new(NADecoderSupport::new());
+ dec.init(&mut dsupp, info).unwrap();
+ decs.push(Some((dsupp, dec)));
if !noout {
let name = format!("out{:02}.wav", i);
writers.push(Outputter::Audio(AudioOutput::new(&name)));
if !noout {
let name = format!("out{:02}.wav", i);
writers.push(Outputter::Audio(AudioOutput::new(&name)));
@@
-194,8
+196,8
@@
panic!("decoder {} not found", info.get_name());
let streamno = pkt.get_stream().get_id();
let sr = sids.iter().position(|x| *x == streamno);
let idx = sr.unwrap();
let streamno = pkt.get_stream().get_id();
let sr = sids.iter().position(|x| *x == streamno);
let idx = sr.unwrap();
- if let Some(
ref mut dec
) = decs[idx] {
- let frm = dec.decode(&pkt).unwrap();
+ if let Some(
(ref mut dsupp, ref mut dec)
) = decs[idx] {
+ let frm = dec.decode(
dsupp,
&pkt).unwrap();
if !noout {
match writers[idx] {
Outputter::Video(ref mut wr) => { wr.output_frame(&pkt, frm); },
if !noout {
match writers[idx] {
Outputter::Video(ref mut wr) => { wr.output_frame(&pkt, frm); },