diff options
author | jstebbins <[email protected]> | 2010-04-22 01:57:09 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2010-04-22 01:57:09 +0000 |
commit | fa7502ca1b3fb07a785e59d9834009df54bfb19a (patch) | |
tree | e2e41939b759591cac1f64c3b898ae3ca5b25d68 | |
parent | 264340057fe7b79509bc1a206583ea1ccab975c0 (diff) |
fix fps logging when there is no audio track.
where there's no audio, the muxer closes earlier than when there is audio
due to reference counting. upon close, the muxer sets the muxing
state which overwrites the current state that includes the avg fps.
so log the avg fps before closing mux.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3251 b64f7644-9d1e-0410-96f1-a4d463321fa5
-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; |