From 20ea25cee53954802480260dcd645def2a7df463 Mon Sep 17 00:00:00 2001 From: lummax Date: Sat, 19 Sep 2015 11:47:37 +0200 Subject: [PATCH] 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. --- examples/transcode-audio.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/examples/transcode-audio.rs b/examples/transcode-audio.rs index 8ff3ec8..ff12858 100644 --- a/examples/transcode-audio.rs +++ b/examples/transcode-audio.rs @@ -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(); }