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 )
switch( job->mux )
{
case HB_MUX_MP4:
- case HB_MUX_PSP:
- case HB_MUX_IPOD:
mux->m = hb_mux_mp4_init( job );
break;
- case HB_MUX_AVI:
- mux->m = hb_mux_avi_init( job );
- break;
- case HB_MUX_OGM:
- mux->m = hb_mux_ogm_init( job );
- break;
case HB_MUX_MKV:
mux->m = hb_mux_mkv_init( job );
break;