summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2010-10-03 17:10:49 +0000
committerjstebbins <[email protected]>2010-10-03 17:10:49 +0000
commit1356204e937ac29a099f069c6056553718d54b1e (patch)
tree4c09c900b25f0db8461f0b4a52f7c0c7043f0c90
parent2234c261324989a56bb7401088e45384578b91d2 (diff)
fix another hang in the muxer.
If all streams are at EOF, then we must continue processing the track queues till they are all empty. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3564 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--libhb/muxcommon.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libhb/muxcommon.c b/libhb/muxcommon.c
index cb61739ac..ca7e20ae0 100644
--- a/libhb/muxcommon.c
+++ b/libhb/muxcommon.c
@@ -247,7 +247,8 @@ static int muxWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
int more = mux->rdy;
// all tracks have at least 'interleave' ticks of data. Output
// all that we can in 'interleave' size chunks.
- while ( ( mux->rdy & mux->allRdy ) == mux->allRdy && more )
+ while ( (( mux->rdy & mux->allRdy ) == mux->allRdy && more) ||
+ ( mux->eof == mux->allEof ) )
{
more = 0;
for ( i = 0; i < mux->ntracks; ++i )