X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Fmuxcommon.c;h=702285bba39d6d23fe85bf42a0f3ba4941e2da06;hb=3e441ebb595c36a1f2f029e4ce907bb1bffaea50;hp=a5ee9b0ba7db77c7d753eb2cdbe443a6d84c9c43;hpb=0935ceb66f3c5f59c9ee07d390dd03f9b6f5cdec;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/muxcommon.c b/libhb/muxcommon.c index a5ee9b0b..702285bb 100644 --- a/libhb/muxcommon.c +++ b/libhb/muxcommon.c @@ -185,9 +185,10 @@ static void OutputTrackChunk( hb_mux_t *mux, hb_track_t *track, hb_mux_object_t while ( ( buf = mf_peek( track ) ) != NULL && buf->start < mux->pts ) { - m->mux( m, track->mux_data, mf_pull( track ) ); + buf = mf_pull( track ); track->frames += 1; track->bytes += buf->size; + m->mux( m, track->mux_data, buf ); } } @@ -384,6 +385,10 @@ static void mux_loop( void * _w ) } w->status = w->work( w, &buf_in, NULL ); + if( buf_in ) + { + hb_buffer_close( &buf_in ); + } } } @@ -444,8 +449,7 @@ hb_work_object_t * hb_muxer_init( hb_job_t * job ) muxer->private_data->track = mux->ntracks; muxer->fifo_in = job->fifo_mpeg4; add_mux_track( mux, job->mux_data, 1 ); - muxer->done = &job->done; - muxer->thread = hb_thread_init( muxer->name, mux_loop, muxer, HB_NORMAL_PRIORITY ); + muxer->done = &muxer->private_data->mux->done; for( i = 0; i < hb_list_count( title->list_audio ); i++ ) {