OSDN Git Service

Fix timestamps on CC's they are now 100% ready and working. Thanks to j45 and ritsuka...
authoreddyg <eddyg@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 8 May 2009 00:33:01 +0000 (00:33 +0000)
committereddyg <eddyg@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 8 May 2009 00:33:01 +0000 (00:33 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@2403 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/muxmp4.c
libhb/sync.c

index 0f06deb..f6c4622 100644 (file)
@@ -657,7 +657,6 @@ static int MP4Mux( hb_mux_object_t * m, hb_mux_data_t * mux_data,
                     hb_error("Failed to write to output file, disk full?");
                     *job->die = 1;
                 } 
-                hb_log("Subtitle not due yet, adding delay of %lld",  buf->start - m->sum_sub_duration);
                 m->sum_sub_duration += buf->start - m->sum_sub_duration;
             }
 
@@ -680,9 +679,9 @@ static int MP4Mux( hb_mux_object_t * m, hb_mux_data_t * mux_data,
             }
 
             m->sum_sub_duration += (buf->stop - buf->start);
-            hb_log("MuxMP4:Sub:%lld:%lld:%lld: %s", buf->start, buf->stop, 
+            hb_deep_log(3, "MuxMP4:Sub:%fs:%lld:%lld:%lld: %s", (float)buf->start / 90000, buf->start, buf->stop, 
                    (buf->stop - buf->start), buf->data);
-            hb_log("MuxMP4:Total time elapsed:%lld", m->sum_sub_duration);
+            hb_deep_log(3, "MuxMP4:Total time elapsed:%lld", m->sum_sub_duration);
         }
     }
     else
index c584214..eee4708 100644 (file)
@@ -449,13 +449,20 @@ static void SyncVideo( hb_work_object_t * w )
                         sub = NULL;
                         break;
                     } else {
+                        /*
+                         * Sync the subtitles to the incoming video, and use
+                         * the matching converted video timestamp.
+                         *
+                         * Note that it doesn't appear that we need to convert 
+                         * timestamps, I guess that they were already correct,
+                         * so just push them through for rendering.
+                         *
+                         */
                         if( sub->start < cur->start )
                         {
                             uint64_t duration;
                             duration = sub->stop - sub->start;
                             sub = hb_fifo_get( subtitle->fifo_raw );
-                            sub->start = pv->next_start;
-                            sub->stop = sub->start + duration;
                             hb_fifo_push( subtitle->fifo_out, sub );
                         } else {
                             sub = NULL;