diff options
author | jstebbins <[email protected]> | 2010-10-03 17:10:49 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2010-10-03 17:10:49 +0000 |
commit | 1356204e937ac29a099f069c6056553718d54b1e (patch) | |
tree | 4c09c900b25f0db8461f0b4a52f7c0c7043f0c90 /libhb/muxcommon.c | |
parent | 2234c261324989a56bb7401088e45384578b91d2 (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/muxcommon.c')
-rw-r--r-- | libhb/muxcommon.c | 3 |
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 ) |