Aric Stewart : wineqtdecoder: Improve and differentiate Sample Time and MediaTime.

Alexandre Julliard julliard at winehq.org
Mon Jan 16 13:01:33 CST 2012


Module: wine
Branch: master
Commit: 2ea8f8a4a062b2f2832d60afce377bcc1da7725c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2ea8f8a4a062b2f2832d60afce377bcc1da7725c

Author: Aric Stewart <aric at codeweavers.com>
Date:   Mon Jan 16 10:13:12 2012 -0600

wineqtdecoder: Improve and differentiate Sample Time and MediaTime.

---

 dlls/wineqtdecoder/qtsplitter.c |   18 ++++++++----------
 1 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c
index a42f984..17f173c 100644
--- a/dlls/wineqtdecoder/qtsplitter.c
+++ b/dlls/wineqtdecoder/qtsplitter.c
@@ -467,6 +467,7 @@ static DWORD WINAPI QTSplitter_thread(LPVOID data)
     do
     {
         LONGLONG tStart=0, tStop=0;
+        LONGLONG mStart=0, mStop=0;
         float time;
 
         GetMovieNextInterestingTime(This->pQTMovie, nextTimeStep, 0, NULL, movie_time, 1, &next_time, NULL);
@@ -485,6 +486,9 @@ static DWORD WINAPI QTSplitter_thread(LPVOID data)
         TRACE("In loop at time %ld\n",movie_time);
         TRACE("In Next time %ld\n",next_time);
 
+        mStart = movie_time;
+        mStop = next_time;
+
         time = (float)movie_time / tr.scale;
         tStart = time * 10000000;
         time = (float)next_time / tr.scale;
@@ -539,11 +543,8 @@ static DWORD WINAPI QTSplitter_thread(LPVOID data)
 
             IMediaSample_SetActualDataLength(sample, frames * pvi->nBlockAlign);
 
-            IMediaSample_SetMediaTime(sample, &tStart, &tStop);
-            if (tStart)
-                IMediaSample_SetTime(sample, &tStart, &tStop);
-            else
-                IMediaSample_SetTime(sample, NULL, NULL);
+            IMediaSample_SetMediaTime(sample, &mStart, &mStop);
+            IMediaSample_SetTime(sample, &tStart, &tStop);
 
             hr = OutputQueue_Receive(This->pAudio_Pin->queue, sample);
             TRACE("Audio Delivered (%x)\n",hr);
@@ -597,11 +598,8 @@ audio_error:
 
                 IMediaSample_SetActualDataLength(sample, This->outputSize);
 
-                IMediaSample_SetMediaTime(sample, &tStart, &tStop);
-                if (tStart)
-                    IMediaSample_SetTime(sample, &tStart, &tStop);
-                else
-                    IMediaSample_SetTime(sample, NULL, NULL);
+                IMediaSample_SetMediaTime(sample, &mStart, &mStop);
+                IMediaSample_SetTime(sample, &tStart, &tStop);
 
                 hr = OutputQueue_Receive(This->pVideo_Pin->queue, sample);
                 TRACE("Video Delivered (%x)\n",hr);




More information about the wine-cvs mailing list