hb_mux_object_t * m = NULL;
/* Get a real muxer */
- if( job->pass != 1 )
+ if( job->pass == 0 || job->pass == 2)
{
switch( job->mux )
{
case HB_MUX_MP4:
+ case HB_MUX_PSP:
+ case HB_MUX_IPOD:
m = hb_mux_mp4_init( job );
break;
case HB_MUX_AVI:
case HB_MUX_OGM:
m = hb_mux_ogm_init( job );
break;
+ case HB_MUX_MKV:
+ m = hb_mux_mkv_init( job );
}
}
}
/* Create file, write headers */
- if( job->pass != 1 )
+ if( job->pass == 0 || job->pass == 2 )
{
m->init( m );
}
hb_list_add( list, track );
}
- while( !*job->die && !job->done )
+ int thread_sleep_interval = 50;
+ while( !*job->die && !job->done )
{
if( !( track = GetTrack( list ) ) )
{
- hb_snooze( 50 );
+ hb_snooze( thread_sleep_interval );
+// thread_sleep_interval += 1;
continue;
}
+// thread_sleep_interval = MAX(1, (thread_sleep_interval - 1));
buf = hb_fifo_get( track->fifo );
- if( job->pass != 1 )
+ if( job->pass == 0 || job->pass == 2 )
{
m->mux( m, track->mux_data, buf );
track->frames += 1;
hb_buffer_close( &buf );
}
- if( job->pass != 1 )
+ if( job->pass == 0 || job->pass == 2 )
{
struct stat sb;
uint64_t bytes_total, frames_total;
+#define p state.param.muxing
+ /* Update the UI */
+ hb_state_t state;
+ state.state = HB_STATE_MUXING;
+ p.progress = 0;
+ hb_set_state( job->h, &state );
+#undef p
m->end( m );
if( !stat( job->file, &sb ) )