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;
}
// 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 );
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;
}