diff options
author | van <[email protected]> | 2008-07-26 01:04:00 +0000 |
---|---|---|
committer | van <[email protected]> | 2008-07-26 01:04:00 +0000 |
commit | e529b1dbda55f01e21fe6fb04ee7f85c2e755725 (patch) | |
tree | 1748a00de07c035323dc9c3c9597ec9fefdeae7e /libhb/work.c | |
parent | e3298b9003a7ee6070842516818bc08d8b0a65ed (diff) |
- in encx264, if an video frame is larger than init_delay split it into pieces so we don't get jerky output caused by out-of-order frames.
- add an explicit EOF for all streams, not just video.
- don't generate extra audio silence at the end of an encode (don't need it with explicit eof).
- get rid of 80ms initial delay in AAC encode & flush final four frames buffered in encoder.
- put mp4 'chap' atom on first track (usually video) rather than first audio track since we can now do video without audio (atom just needs to go on an enabled media track & video is always enabled).
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1581 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/work.c')
-rw-r--r-- | libhb/work.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libhb/work.c b/libhb/work.c index a6071de4b..243b6b2e7 100644 --- a/libhb/work.c +++ b/libhb/work.c @@ -265,7 +265,7 @@ static void do_job( hb_job_t * job, int cpu_count ) } hb_log (" + PixelRatio: %d, width:%d, height: %d",job->pixel_ratio,job->width, job->height); - job->fifo_mpeg2 = hb_fifo_init( 2048 ); + job->fifo_mpeg2 = hb_fifo_init( 128 ); job->fifo_raw = hb_fifo_init( FIFO_CPU_MULT * cpu_count ); job->fifo_sync = hb_fifo_init( FIFO_CPU_MULT * cpu_count ); job->fifo_render = hb_fifo_init( FIFO_CPU_MULT * cpu_count ); @@ -585,9 +585,9 @@ static void do_job( hb_job_t * job, int cpu_count ) audio->priv.config.vorbis.language = audio->config.lang.simple; /* set up the audio work structures */ - audio->priv.fifo_in = hb_fifo_init( 256 ); + audio->priv.fifo_in = hb_fifo_init( 32 ); audio->priv.fifo_raw = hb_fifo_init( FIFO_CPU_MULT * cpu_count ); - audio->priv.fifo_sync = hb_fifo_init( 256 ); + audio->priv.fifo_sync = hb_fifo_init( 32 ); audio->priv.fifo_out = hb_fifo_init( FIFO_CPU_MULT * cpu_count ); @@ -638,7 +638,6 @@ static void do_job( hb_job_t * job, int cpu_count ) job->reader = hb_reader_init( job ); hb_log( " + output: %s", job->file ); - job->muxer = hb_muxer_init( job ); job->done = 0; @@ -658,6 +657,10 @@ static void do_job( hb_job_t * job, int cpu_count ) HB_LOW_PRIORITY ); } + // 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 ); + done = 0; w = hb_list_item( job->list_work, 0 ); w->thread_sleep_interval = 50; |