diff options
-rw-r--r-- | libhb/muxcommon.c | 19 | ||||
-rw-r--r-- | libhb/work.c | 12 |
2 files changed, 19 insertions, 12 deletions
diff --git a/libhb/muxcommon.c b/libhb/muxcommon.c index 702285bba..b6b5a2a57 100644 --- a/libhb/muxcommon.c +++ b/libhb/muxcommon.c @@ -289,6 +289,19 @@ void muxClose( hb_work_object_t * w ) hb_lock( mux->mutex ); if ( --mux->ref == 0 ) { + // Update state before closing muxer. Closing the muxer + // may initiate optimization which can take a while and + // we want the muxing state to be visible while this is + // happening. + if( job->pass == 0 || job->pass == 2 ) + { + /* Update the UI */ + hb_state_t state; + state.state = HB_STATE_MUXING; + state.param.muxing.progress = 0; + hb_set_state( job->h, &state ); + } + if( mux->m ) { mux->m->end( mux->m ); @@ -301,12 +314,6 @@ void muxClose( hb_work_object_t * w ) struct stat sb; uint64_t bytes_total, frames_total; - /* Update the UI */ - hb_state_t state; - state.state = HB_STATE_MUXING; - state.param.muxing.progress = 0; - hb_set_state( job->h, &state ); - if( !stat( job->file, &sb ) ) { hb_deep_log( 2, "mux: file size, %"PRId64" bytes", (uint64_t) sb.st_size ); diff --git a/libhb/work.c b/libhb/work.c index eea492b9c..935ffa490 100644 --- a/libhb/work.c +++ b/libhb/work.c @@ -939,6 +939,12 @@ static void do_job( hb_job_t * job, int cpu_count ) } } + hb_handle_t * h = job->h; + hb_state_t state; + hb_get_state( h, &state ); + + hb_log("work: average encoding speed for job is %f fps", state.param.working.rate_avg); + job->done = 1; if( muxer != NULL ) { @@ -953,12 +959,6 @@ static void do_job( hb_job_t * job, int cpu_count ) free( sync ); } - hb_handle_t * h = job->h; - hb_state_t state; - hb_get_state( h, &state ); - - hb_log("work: average encoding speed for job is %f fps", state.param.working.rate_avg); - cleanup: /* Stop the write thread (thread_close will block until the muxer finishes) */ job->done = 1; |