// all tracks have at least 'interleave' ticks of data. Output
// all that we can in 'interleave' size chunks.
// 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 )
+ while ( ( mux->rdy & mux->allRdy ) == mux->allRdy && more )
for ( i = 0; i < mux->ntracks; ++i )
{
track = mux->track[i];
for ( i = 0; i < mux->ntracks; ++i )
{
track = mux->track[i];
{
mux->rdy &=~ ( 1 << i );
}
{
mux->rdy &=~ ( 1 << i );
}
+ if ( track->mf.out != track->mf.in )
+ {
+ more |= ( 1 << i );
+ }
}
// if all the tracks are at eof we're just purging their
}
// if all the tracks are at eof we're just purging their