OSDN Git Service

Change subtitle position to prevent displaying within a 2% margin of the height of...
[handbrake-jp/handbrake-jp-git.git] / libhb / muxcommon.c
index 17628df..d6a8270 100644 (file)
@@ -46,7 +46,6 @@ static hb_track_t * GetTrack( hb_list_t * list )
         {
             track = track2;
             pts   = buf->start;
-                       //hb_log("track: #%d, frame count %ld, fifo size %d", i, track->frames, hb_fifo_size( track->fifo));
         }
     }
     return track;
@@ -66,7 +65,7 @@ static void MuxerFunc( void * _mux )
     hb_mux_object_t * m = NULL;
 
     /* Get a real muxer */
-    if( job->pass != 1 )
+    if( job->pass == 0 || job->pass == 2)
     {
         switch( job->mux )
         {
@@ -81,6 +80,8 @@ static void MuxerFunc( void * _mux )
             case HB_MUX_OGM:
                 m = hb_mux_ogm_init( job );
                 break;
+            case HB_MUX_MKV:
+                m = hb_mux_mkv_init( job );
         }
     }
 
@@ -113,21 +114,19 @@ static void MuxerFunc( void * _mux )
     }
 
     /* Create file, write headers */
-    if( job->pass != 1 )
+    if( job->pass == 0 || job->pass == 2 )
     {
         m->init( m );
     }
 
     /* Build list of fifos we're interested in */
     list = hb_list_init();
-       hb_log( "mux: audio list count %d", hb_list_count( title->list_audio ));
 
     track           = calloc( sizeof( hb_track_t ), 1 );
     track->fifo     = job->fifo_mpeg4;
     track->mux_data = job->mux_data;
     hb_list_add( list, track );
 
-       hb_log( "mux: 1");
     for( i = 0; i < hb_list_count( title->list_audio ); i++ )
     {
         audio           = hb_list_item( title->list_audio, i );
@@ -136,18 +135,20 @@ static void MuxerFunc( void * _mux )
         track->mux_data = audio->mux_data;
         hb_list_add( list, track );
     }
-       hb_log( "mux: 2");
 
-    while( !*job->die && !job->done )
+       int thread_sleep_interval = 50;
+       while( !*job->die && !job->done )
     {
         if( !( track = GetTrack( list ) ) )
         {
-            hb_snooze( 50 );
+            hb_snooze( thread_sleep_interval );
+//                     thread_sleep_interval += 1;
             continue;
         }
+//             thread_sleep_interval = MAX(1, (thread_sleep_interval - 1));
 
         buf = hb_fifo_get( track->fifo );
-        if( job->pass != 1 )
+        if( job->pass == 0 || job->pass == 2 )
         {
             m->mux( m, track->mux_data, buf );
             track->frames += 1;
@@ -156,15 +157,20 @@ static void MuxerFunc( void * _mux )
         }
         hb_buffer_close( &buf );
     }
-       hb_log( "mux: 3");
 
-    if( job->pass != 1 )
+    if( job->pass == 0 || job->pass == 2 )
     {
         struct stat sb;
         uint64_t bytes_total, frames_total;
 
+#define p state.param.muxing
+        /* Update the UI */
+        hb_state_t state;
+        state.state   = HB_STATE_MUXING;
+               p.progress = 0;
+        hb_set_state( job->h, &state );
+#undef p
         m->end( m );
-               hb_log( "mux: 4");
 
         if( !stat( job->file, &sb ) )
         {