quartz: Add more seek entries and fix a time continuity bug.
diff --git a/dlls/quartz/mpegsplit.c b/dlls/quartz/mpegsplit.c
index 9af8973..008dcca 100644
--- a/dlls/quartz/mpegsplit.c
+++ b/dlls/quartz/mpegsplit.c
@@ -53,7 +53,7 @@
#define MPEG_AUDIO_HEADER 1
#define MPEG_NO_HEADER 0
-#define SEEK_INTERVAL (ULONGLONG)(30 * 10000000) /* Add an entry every 30 seconds */
+#define SEEK_INTERVAL (ULONGLONG)(10 * 10000000) /* Add an entry every 10 seconds */
struct seek_entry {
ULONGLONG bytepos;
@@ -216,6 +216,7 @@
if (This->remaining_bytes)
{
DWORD towrite = min(This->remaining_bytes, *flen);
+ LONGLONG foo;
hr = copy_data(pCurrentSample, fbuf, flen, towrite);
if (FAILED(hr))
@@ -228,6 +229,11 @@
if (This->remaining_bytes)
return hr;
+ /* Restore the time in the time variable. This->position now points
+ * to the NEW timestamp which is slightly off
+ */
+ IMediaSample_GetTime(pCurrentSample, &time, &foo);
+
/* Optimize: Try appending more samples to the stream */
goto out_append;
}