{
track = track2;
pts = buf->start;
- //hb_log("track: #%d, frame count %ld, fifo size %d", i, track->frames, hb_fifo_size( track->fifo));
}
}
return track;
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_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 );
}
/* Build list of fifos we're interested in */
list = hb_list_init();
- hb_log( "mux: audio list count %d", hb_list_count( title->list_audio ));
track = calloc( sizeof( hb_track_t ), 1 );
track->fifo = job->fifo_mpeg4;
track->mux_data = job->mux_data;
hb_list_add( list, track );
- hb_log( "mux: 1");
for( i = 0; i < hb_list_count( title->list_audio ); i++ )
{
audio = hb_list_item( title->list_audio, i );
track->mux_data = audio->mux_data;
hb_list_add( list, track );
}
- hb_log( "mux: 2");
- 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 );
}
- hb_log( "mux: 3");
- 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 );
- hb_log( "mux: 4");
if( !stat( job->file, &sb ) )
{