diff options
author | van <[email protected]> | 2008-07-26 21:22:17 +0000 |
---|---|---|
committer | van <[email protected]> | 2008-07-26 21:22:17 +0000 |
commit | b5185c17599137dff179e9dadc420686592c291d (patch) | |
tree | 8afb3ce0808386a348708dcdef7b27a262e471c0 /libhb | |
parent | 02e6431ec0ca85a6725fe0c3604193771181bdde (diff) |
Fix subtitle scan to work with new stream eof logic.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1584 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb')
-rw-r--r-- | libhb/render.c | 5 | ||||
-rw-r--r-- | libhb/work.c | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/libhb/render.c b/libhb/render.c index 0fc5816a9..1989199fb 100644 --- a/libhb/render.c +++ b/libhb/render.c @@ -208,13 +208,14 @@ int renderWork( hb_work_object_t * w, hb_buffer_t ** buf_in, hb_buffer_t * in = *buf_in, * buf_tmp_in = *buf_in; hb_buffer_t * ivtc_buffer = NULL; - if(!in->data) + if( in->size <= 0 ) { /* If the input buffer is end of stream, send out an empty one * to the next stage as well. Note that this will result in us * losing the current contents of the delay queue. */ - *buf_out = job->indepth_scan? NULL : hb_buffer_init(0); + *buf_out = in; + *buf_in = NULL; return HB_WORK_DONE; } diff --git a/libhb/work.c b/libhb/work.c index 243b6b2e7..f7d050b6a 100644 --- a/libhb/work.c +++ b/libhb/work.c @@ -659,7 +659,7 @@ static void do_job( hb_job_t * job, int cpu_count ) // The muxer requires track information that's set up by the encoder // init routines so we have to init the muxer last. - job->muxer = hb_muxer_init( job ); + job->muxer = job->indepth_scan? NULL : hb_muxer_init( job ); done = 0; w = hb_list_item( job->list_work, 0 ); @@ -667,13 +667,11 @@ static void do_job( hb_job_t * job, int cpu_count ) w->init( w, job ); while( !*job->die ) { - if( ( w->status = w->work( w, NULL, NULL ) ) == HB_WORK_DONE ) + if ( !done && ( w->status = w->work( w, NULL, NULL ) ) == HB_WORK_DONE ) { done = 1; } - if( done && - final_w->status == HB_WORK_DONE && - !hb_fifo_size( job->fifo_mpeg4 ) ) + if( done && final_w->status == HB_WORK_DONE ) { break; } |