[vlc-commits] [Git][videolan/vlc][master] aout: remove original_pts

Thomas Guillem (@tguillem) gitlab at videolan.org
Mon Apr 8 05:42:59 UTC 2024



Thomas Guillem pushed to branch master at VideoLAN / VLC


Commits:
1727b938 by Thomas Guillem at 2024-04-07T18:11:04+00:00
aout: remove original_pts

Partial revert of 9d4bad0da0f49033ed0efaa961066d1187ac5780

All "audio resampler" already use the original pts (out->pts = in->pts)
(but the block->length do match the new rate).

- - - - -


1 changed file:

- src/audio_output/dec.c


Changes:

=====================================
src/audio_output/dec.c
=====================================
@@ -59,7 +59,6 @@ struct vlc_aout_stream
         vlc_tick_t request_delay;
         vlc_tick_t delay;
     } sync;
-    vlc_tick_t original_pts;
 
     struct
     {
@@ -159,7 +158,6 @@ static int stream_GetDelay(vlc_aout_stream *stream, vlc_tick_t *delay)
 static void stream_Discontinuity(vlc_aout_stream *stream)
 {
     stream->sync.discontinuity = true;
-    stream->original_pts = VLC_TICK_INVALID;
 
     vlc_mutex_lock(&stream->timing.lock);
     stream->timing.first_pts = VLC_TICK_INVALID;
@@ -735,15 +733,6 @@ int vlc_aout_stream_Play(vlc_aout_stream *stream, block_t *block)
     if (block->i_flags & BLOCK_FLAG_DISCONTINUITY)
         stream_Discontinuity(stream);
 
-    if (stream->original_pts == VLC_TICK_INVALID)
-    {
-        /* Use the original PTS for synchronization and as a play date of the
-         * aout module. This PTS need to be saved here in order to use the PTS
-         * of the first block that has been filtered. Indeed, aout filters may
-         * need more than one block to output a new one. */
-        stream->original_pts = block->i_pts;
-    }
-
     if (stream->filters)
     {
         if (atomic_load_explicit(&owner->vp.update, memory_order_relaxed))
@@ -759,9 +748,6 @@ int vlc_aout_stream_Play(vlc_aout_stream *stream, block_t *block)
             return ret;
     }
 
-    const vlc_tick_t original_pts = stream->original_pts;
-    stream->original_pts = VLC_TICK_INVALID;
-
     /* Software volume */
     if (stream->volume != NULL)
         aout_volume_Amplify(stream->volume, block);
@@ -784,10 +770,10 @@ int vlc_aout_stream_Play(vlc_aout_stream *stream, block_t *block)
 
     vlc_clock_Lock(stream->sync.clock);
     vlc_tick_t play_date =
-        vlc_clock_ConvertToSystem(stream->sync.clock, system_now, original_pts,
+        vlc_clock_ConvertToSystem(stream->sync.clock, system_now, block->i_pts,
                                   stream->sync.rate);
     vlc_clock_Unlock(stream->sync.clock);
-    stream_Synchronize(stream, system_now, play_date, original_pts);
+    stream_Synchronize(stream, system_now, play_date, block->i_pts);
 
     vlc_audio_meter_Process(&owner->meter, block, play_date);
 
@@ -797,14 +783,14 @@ int vlc_aout_stream_Play(vlc_aout_stream *stream, block_t *block)
         vlc_mutex_lock(&stream->timing.lock);
         /* Save the first timing point seeing a rate change */
         stream->timing.rate_system_ts = play_date;
-        stream->timing.rate_audio_ts = original_pts;
+        stream->timing.rate_audio_ts = block->i_pts;
         stream->timing.rate = stream->sync.rate;
 
         /* Update the clock immediately with the new rate, instead of waiting
          * for a timing update that could come too late (after 1second). */
         vlc_clock_Lock(stream->sync.clock);
         stream->timing.last_drift =
-            vlc_clock_Update(stream->sync.clock, play_date, original_pts,
+            vlc_clock_Update(stream->sync.clock, play_date, block->i_pts,
                              stream->sync.rate);
         vlc_clock_Unlock(stream->sync.clock);
         vlc_mutex_unlock(&stream->timing.lock);
@@ -813,7 +799,7 @@ int vlc_aout_stream_Play(vlc_aout_stream *stream, block_t *block)
     if (stream->timing.first_pts == VLC_TICK_INVALID)
     {
         vlc_mutex_lock(&stream->timing.lock);
-        stream->timing.first_pts = original_pts;
+        stream->timing.first_pts = block->i_pts;
         vlc_mutex_unlock(&stream->timing.lock);
     }
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/1727b938bf13514bbb34ecb00c4adb91164b4e57

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/1727b938bf13514bbb34ecb00c4adb91164b4e57
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list