OSDN Git Service
(root)
/
handbrake-jp
/
handbrake-jp-git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
WinGui:
[handbrake-jp/handbrake-jp-git.git]
/
libhb
/
muxcommon.c
diff --git
a/libhb/muxcommon.c
b/libhb/muxcommon.c
index
05f49d4
..
cb61739
100644
(file)
--- a/
libhb/muxcommon.c
+++ b/
libhb/muxcommon.c
@@
-244,10
+244,12
@@
static int muxWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
return HB_WORK_OK;
}
return HB_WORK_OK;
}
+ int more = mux->rdy;
// all tracks have at least 'interleave' ticks of data. Output
// all that we can in 'interleave' size chunks.
// all tracks have at least 'interleave' ticks of data. Output
// all that we can in 'interleave' size chunks.
- while ( ( mux->rdy & mux->allRdy ) == mux->allRdy )
+ while ( ( mux->rdy & mux->allRdy ) == mux->allRdy
&& more
)
{
{
+ more = 0;
for ( i = 0; i < mux->ntracks; ++i )
{
track = mux->track[i];
for ( i = 0; i < mux->ntracks; ++i )
{
track = mux->track[i];
@@
-270,6
+272,10
@@
static int muxWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
{
mux->rdy &=~ ( 1 << i );
}
{
mux->rdy &=~ ( 1 << i );
}
+ if ( track->mf.out != track->mf.in )
+ {
+ more |= ( 1 << i );
+ }
}
// if all the tracks are at eof we're just purging their
}
// if all the tracks are at eof we're just purging their