From 40532d61ea4909b3f8b12dd7024de217dbdfec6d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 16 Nov 2012 21:42:31 +0000 Subject: Various external audio fixes. --- src/lib/transcoder.cc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/lib/transcoder.cc') diff --git a/src/lib/transcoder.cc b/src/lib/transcoder.cc index d54022bbc..2ee96790a 100644 --- a/src/lib/transcoder.cc +++ b/src/lib/transcoder.cc @@ -38,6 +38,7 @@ #include "audio_decoder.h" using std::string; +using std::cout; using boost::shared_ptr; using boost::dynamic_pointer_cast; @@ -88,15 +89,21 @@ Transcoder::go () { _encoder->process_begin (); try { + bool done[2] = { false, false }; + while (1) { - bool const v = _decoders.first->pass (); + if (!done[0]) { + done[0] = _decoders.first->pass (); + _decoders.first->set_progress (); + } - bool a = true; - if (dynamic_pointer_cast (_decoders.second) != dynamic_pointer_cast (_decoders.first)) { - a = _decoders.second->pass (); + if (!done[1] && dynamic_pointer_cast (_decoders.second) != dynamic_pointer_cast (_decoders.first)) { + done[1] = _decoders.second->pass (); + } else { + done[1] = true; } - if (v && a) { + if (done[0] && done[1]) { break; } } -- cgit v1.2.3