examples/transcode-audio: add filter/encoder flushing
While this introduces some code duplicates, it seems to be the easy way without rewriting the whole example.
This commit is contained in:
parent
c8a95364a2
commit
20ea25cee5
@ -131,5 +131,21 @@ fn main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transcoder.filter.get("in").unwrap().source().flush().unwrap();
|
||||||
|
|
||||||
|
while let Ok(..) = transcoder.filter.get("out").unwrap().sink().frame(&mut decoded) {
|
||||||
|
if let Ok(true) = transcoder.encoder.encode(&decoded, &mut encoded) {
|
||||||
|
encoded.set_stream(0);
|
||||||
|
encoded.rescale_ts(in_time_base, out_time_base);
|
||||||
|
encoded.write_interleaved(&mut octx).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Ok(true) = transcoder.encoder.flush(&mut encoded) {
|
||||||
|
encoded.set_stream(0);
|
||||||
|
encoded.rescale_ts(in_time_base, out_time_base);
|
||||||
|
encoded.write_interleaved(&mut octx).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
octx.write_trailer().unwrap();
|
octx.write_trailer().unwrap();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user