vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Nov 17 
18:20:52 2012 +0200| [2a0c18e438d217ffaee797e9cc7ed67ad42b671e] | committer: 
Rémi Denis-Courmont

Support draining in aout_PacketFlush()

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2a0c18e438d217ffaee797e9cc7ed67ad42b671e
---

 modules/audio_output/packet.c |   18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/modules/audio_output/packet.c b/modules/audio_output/packet.c
index b2b6137..f245a82 100644
--- a/modules/audio_output/packet.c
+++ b/modules/audio_output/packet.c
@@ -190,11 +190,19 @@ void aout_PacketFlush (audio_output_t *aout, bool drain)
     aout_packet_t *p = aout_packet (aout);
 
     vlc_mutex_lock (&p->lock);
-    aout_FifoReset (&p->partial);
-    aout_FifoReset (&p->fifo);
-    vlc_mutex_unlock (&p->lock);
-
-    (void) drain; /* TODO */
+    if (drain)
+    {
+        mtime_t pts = date_Get (&p->fifo.end_date);
+        vlc_mutex_unlock (&p->lock);
+        if (pts != VLC_TS_INVALID)
+            mwait (pts);
+    }
+    else
+    {
+        aout_FifoReset (&p->partial);
+        aout_FifoReset (&p->fifo);
+        vlc_mutex_unlock (&p->lock);
+    }
 }
 
 

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to