]> git.sesse.net Git - vlc/commitdiff
Fixed timestamps handling in various audio filters.
authorLaurent Aimar <fenrir@videolan.org>
Mon, 26 Jul 2010 18:29:57 +0000 (20:29 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 26 Jul 2010 18:29:57 +0000 (20:29 +0200)
modules/audio_filter/channel_mixer/dolby.c
modules/audio_filter/channel_mixer/trivial.c
modules/audio_filter/converter/fixed.c
modules/audio_filter/resampler/bandlimited.c
modules/audio_filter/scaletempo.c

index adf3399343d30e8cec0dcac33cce2eefff502d8c..0319f03d7af4eb732a53dbb16e76e34514b4858f 100644 (file)
@@ -177,6 +177,10 @@ static block_t *DoWork( filter_t * p_filter, block_t * p_in_buf )
 
     float * p_out = (float*) p_out_buf->p_buffer;
     p_out_buf->i_nb_samples = i_nb_samples;
+    p_out_buf->i_dts        = p_in_buf->i_dts;
+    p_out_buf->i_pts        = p_in_buf->i_pts;
+    p_out_buf->i_length     = p_in_buf->i_length;
+
     memset( p_out, 0, p_out_buf->i_buffer );
 
     if( p_sys->i_rear_left >= 0 )
index b76aa90a64541c9fa2812bee859465c0d12b20d1..9211751e50044156bf759c11de7bc6b02f6374ba 100644 (file)
@@ -115,6 +115,9 @@ static block_t *DoWork( filter_t * p_filter, block_t * p_in_buf )
         if( !p_out_buf )
             goto out;
         p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
+        p_out_buf->i_dts        = p_in_buf->i_dts;
+        p_out_buf->i_pts        = p_in_buf->i_pts;
+        p_out_buf->i_length     = p_in_buf->i_length;
     }
 
     int32_t * p_dest = (int32_t *)p_out_buf->p_buffer;
index e0144b67701eaff45aa818e6a0accc640b13c94e..9a5b426be8e5fccdf9d205bd5c2c567bd35e2f17 100644 (file)
@@ -204,6 +204,7 @@ static block_t *Do_S16ToF32( filter_t * p_filter, block_t * p_in_buf )
         p_in++; p_out++;
     }
 
+    p_out_buf->i_dts = p_in_buf->i_dts;
     p_out_buf->i_pts = p_in_buf->i_pts;
     p_out_buf->i_length = p_in_buf->i_length;
     p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
@@ -233,6 +234,7 @@ static block_t *Do_U8ToF32( filter_t * p_filter, block_t * p_in_buf )
         *p_out = (vlc_fixed_t)( (int32_t)(*p_in - 128) * (FIXED32_ONE / 128) );
         p_in++; p_out++;
     }
+    p_out_buf->i_dts = p_in_buf->i_dts;
     p_out_buf->i_pts = p_in_buf->i_pts;
     p_out_buf->i_length = p_in_buf->i_length;
     p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
index a71aa8ff459b27ed0d35482734990797bf384fdc..d0f447d79b78f64b01ca7a53f035728e0c5054e2 100644 (file)
@@ -235,6 +235,7 @@ static block_t *Resample( filter_t * p_filter, block_t * p_in_buf )
 
         /* Finalize aout buffer */
         p_out_buf->i_nb_samples = i_out;
+        p_out_buf->i_dts =
         p_out_buf->i_pts = date_Get( &p_sys->end_date );
         p_out_buf->i_length = date_Increment( &p_sys->end_date,
                                       p_out_buf->i_nb_samples ) - p_out_buf->i_pts;
index d35fc1fb864d21fbc0817b27a980d537fa55b9e5..fa31eb925caadf62c874b050904101fdfc8bae39 100644 (file)
@@ -495,6 +495,7 @@ static block_t *DoWork( filter_t * p_filter, block_t * p_in_buf )
 
     p_out_buf->i_buffer     = bytes_out;
     p_out_buf->i_nb_samples = bytes_out / p->bytes_per_frame;
+    p_out_buf->i_dts        = p_in_buf->i_dts;
     p_out_buf->i_pts        = p_in_buf->i_pts;
     p_out_buf->i_length     = p_in_buf->i_length;