]> git.sesse.net Git - vlc/commitdiff
support de vout_DatePicture().
authorChristophe Massiot <massiot@videolan.org>
Wed, 19 Jan 2000 17:39:09 +0000 (17:39 +0000)
committerChristophe Massiot <massiot@videolan.org>
Wed, 19 Jan 2000 17:39:09 +0000 (17:39 +0000)
include/vpar_synchro.h
src/video_parser/vpar_headers.c
src/video_parser/vpar_synchro.c

index 4645d065c8c28c0a26c7cbd4990af0b61a611e6f..96c346171bcc298b5f139dbe5b646f5a8ec5a179 100644 (file)
@@ -51,4 +51,5 @@ void vpar_SynchroTrash( struct vpar_thread_s * p_vpar, int i_coding_type,
                         int i_structure );
 void vpar_SynchroDecode( struct vpar_thread_s * p_vpar, int i_coding_type,
                             int i_structure );
-mtime_t vpar_SynchroEnd( struct vpar_thread_s * p_vpar );
+void vpar_SynchroEnd( struct vpar_thread_s * p_vpar );
+mtime_t vpar_SynchroDate( struct vpar_thread_s * p_vpar );
index 097dd66511767ceb53a1209467bcefa00f1ef130..45af35e84177bcab1935706b71577e6e078591d2 100644 (file)
@@ -181,6 +181,11 @@ static void __inline__ ReferenceUpdate( vpar_thread_t * p_vpar,
     {
         if( p_vpar->sequence.p_forward != NULL )
             vout_UnlinkPicture( p_vpar->p_vout, p_vpar->sequence.p_forward );
+        if( p_vpar->sequence.p_backward != NULL )
+        {
+            vout_DatePicture( p_vpar->p_vout, p_vpar->sequence.p_backward,
+                              vpar_SynchroDate( p_vpar ) );
+        }
         p_vpar->sequence.p_forward = p_vpar->sequence.p_backward;
         p_vpar->sequence.p_backward = p_newref;
         if( p_newref != NULL )
@@ -678,9 +683,12 @@ static void PictureHeader( vpar_thread_t * p_vpar )
 
         /* Initialize values. */
         vpar_SynchroDecode( p_vpar, p_vpar->picture.i_coding_type, i_structure );
-       /* kludge to be removed once vpar_SynchroEnd is called properly */
-        P_picture->date = mdate() + 700000;
-
+        if( p_vpar->picture.i_coding_type == B_CODING_TYPE )
+        {
+            /* Put date immediately. */
+            vout_DatePicture( p_vpar->p_vout, P_picture,
+                              vpar_SynchroDate( p_vpar ) );
+        }
         P_picture->i_aspect_ratio = p_vpar->sequence.i_aspect_ratio;
         P_picture->i_matrix_coefficients = p_vpar->sequence.i_matrix_coefficients;
         p_vpar->picture.i_l_stride = ( p_vpar->sequence.i_width
index 24490d023e1b632e3cd54585a5fbf603c2da675e..46a0ea34fff2b0e4ed2290a0657ee0b826d49ab4 100644 (file)
@@ -177,9 +177,14 @@ void vpar_SynchroDecode( vpar_thread_t * p_vpar, int i_coding_type,
 /*****************************************************************************
  * vpar_SynchroEnd : Called when the image is totally decoded
  *****************************************************************************/
-mtime_t vpar_SynchroEnd( vpar_thread_t * p_vpar )
+void vpar_SynchroEnd( vpar_thread_t * p_vpar )
 {
     
+//    return mdate() + 700000;
+}
+
+mtime_t vpar_SynchroDate( vpar_thread_t * p_vpar )
+{
     return mdate() + 700000;
 }