OSDN Git Service

Bump libmkv to 0.6.4.1
[handbrake-jp/handbrake-jp-git.git] / libhb / sync.c
index a36b37b..9c36ee3 100644 (file)
@@ -116,7 +116,7 @@ hb_work_object_t * hb_sync_init( hb_job_t * job )
     pv->common = calloc( 1, sizeof( hb_sync_common_t ) );
     pv->common->ref++;
     pv->common->mutex = hb_lock_init();
-    pv->common->audio_pts_thresh = 0;
+    pv->common->audio_pts_thresh = -1;
     pv->common->next_frame = hb_cond_init();
     pv->common->pts_count = 1;
     if ( job->frame_to_start || job->pts_to_start )
@@ -564,7 +564,10 @@ int syncVideoWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
          */
         if( subtitle->source == CC608SUB ||
             subtitle->source == CC708SUB ||
-            subtitle->source == SRTSUB )
+            subtitle->source == SRTSUB ||
+            subtitle->source == UTF8SUB ||
+            subtitle->source == TX3GSUB ||
+            subtitle->source == SSASUB)
         {
             /*
              * Rewrite timestamps on subtitles that came from Closed Captions
@@ -928,6 +931,13 @@ static int syncAudioWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
     hb_lock( pv->common->mutex );
     while ( !pv->common->start_found )
     {
+        if ( pv->common->audio_pts_thresh < 0 )
+        {
+            // I would initialize this in hb_sync_init, but 
+            // job->pts_to_start can be modified by reader 
+            // after hb_sync_init is called.
+            pv->common->audio_pts_thresh = job->pts_to_start;
+        }
         if ( buf->start < pv->common->audio_pts_thresh )
         {
             hb_buffer_close( &buf );