]> git.sesse.net Git - vlc/commitdiff
* modules/video_filter/time.c: optimized a bit.
authorGildas Bazin <gbazin@videolan.org>
Mon, 20 Sep 2004 10:09:28 +0000 (10:09 +0000)
committerGildas Bazin <gbazin@videolan.org>
Mon, 20 Sep 2004 10:09:28 +0000 (10:09 +0000)
modules/video_filter/time.c

index d6bf001dd4bbd5d091563a8e86c8a49537c194ee..28f143cc687ab2fc07f0a43c0d76bd72f634a5a9 100644 (file)
@@ -48,6 +48,8 @@ struct filter_sys_t
 {
     int i_xoff, i_yoff;  /* offsets for the display string in the video window */
     char *psz_head;  /* text to put before the day/time */
+
+    time_t last_time;
 };
 
 #define MSG_TEXT N_("Timestamp Prefix")
@@ -98,6 +100,7 @@ static int CreateFilter( vlc_object_t *p_this )
 
     /* Misc init */
     p_filter->pf_sub_filter = Filter;
+    p_sys->last_time = ((time_t)-1);
 
     return VLC_SUCCESS;
 }
@@ -131,13 +134,14 @@ char *myCtime( time_t *t )
  ****************************************************************************/
 static subpicture_t *Filter( filter_t *p_filter, mtime_t date )
 {
+    filter_sys_t *p_sys = p_filter->p_sys;
     subpicture_t *p_spu;
     video_format_t fmt;
     time_t t;
     char *psz_time, *psz_string;
-    filter_sys_t *p_sys;
 
-    p_sys = p_filter->p_sys;
+    if( p_sys->last_time == time( NULL ) ) return NULL;
+
     p_spu = p_filter->pf_sub_buffer_new( p_filter );
     if( !p_spu ) return NULL;
     
@@ -154,7 +158,8 @@ static subpicture_t *Filter( filter_t *p_filter, mtime_t date )
         p_filter->pf_sub_buffer_del( p_filter, p_spu );
         return NULL;
     }
-    t = time(NULL);
+
+    t = p_sys->last_time = time( NULL );
  
     psz_time = myCtime( &t );
     asprintf( &psz_string, "%s%s", p_sys->psz_head, psz_time );