summaryrefslogtreecommitdiffstats
path: root/libhb
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 /libhb
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
Diffstat (limited to 'libhb')
-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 )