[vlc-commits] wasapi: check IAudioClock::GetPosition for error

Rémi Denis-Courmont git at videolan.org
Thu Aug 2 17:26:05 CEST 2012


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Aug  2 17:52:09 2012 +0300| [e351093a42b312872912687ba2c4e3bd12e28588] | committer: Rémi Denis-Courmont

wasapi: check IAudioClock::GetPosition for error

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

 modules/audio_output/wasapi.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/modules/audio_output/wasapi.c b/modules/audio_output/wasapi.c
index 726b88d..6c45b83 100644
--- a/modules/audio_output/wasapi.c
+++ b/modules/audio_output/wasapi.c
@@ -100,10 +100,15 @@ static void Play(audio_output_t *aout, block_t *block, mtime_t *restrict drift)
     {
         UINT64 pos, qpcpos;
 
-        IAudioClock_GetPosition(sys->clock, &pos, &qpcpos);
-        qpcpos = (qpcpos + 5) / 10; /* 100ns -> 1µs */
         /* NOTE: this assumes mdate() uses QPC() (which it currently does). */
-        *drift = mdate() - qpcpos;
+        hr = IAudioClock_GetPosition(sys->clock, &pos, &qpcpos);
+        if (SUCCEEDED(hr))
+        {
+            qpcpos = (qpcpos + 5) / 10; /* 100ns -> 1µs */
+            *drift = mdate() - qpcpos;
+        }
+        else
+            msg_Warn(aout, "cannot get position (error 0x%lx)", hr);
     }
 
     for (;;)



More information about the vlc-commits mailing list