diff options
author | Casimir666 <casimir666@users.sourceforge.net> | 2010-01-03 11:43:10 +0300 |
---|---|---|
committer | Casimir666 <casimir666@users.sourceforge.net> | 2010-01-03 11:43:10 +0300 |
commit | d8af5c28764a2de4b33a8663dd52dce172a7adef (patch) | |
tree | 55bff3345aaab81de46de257e225675a7903ea41 /src/filters/parser | |
parent | 7db04d297fccad3d15ff82d40bd3f55899b44b40 (diff) |
Fixed : broken x64 compilation with Sync Renderer merge
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1478 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/parser')
-rw-r--r-- | src/filters/parser/mp4splitter/MP4Splitter.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/filters/parser/mp4splitter/MP4Splitter.cpp b/src/filters/parser/mp4splitter/MP4Splitter.cpp index d2620a8e9..8048389d5 100644 --- a/src/filters/parser/mp4splitter/MP4Splitter.cpp +++ b/src/filters/parser/mp4splitter/MP4Splitter.cpp @@ -1084,7 +1084,8 @@ bool CMP4SplitterFilter::DemuxLoop() pPairNext->m_value.index -= pPairNext->m_value.index % wfe->nBlockAlign;
}
- p->rtStop = p->rtStart;
+// p->rtStop = p->rtStart;
+ AP4_UI32 nAP4SampleDuration = 0;
int fFirst = true;
@@ -1094,14 +1095,20 @@ bool CMP4SplitterFilter::DemuxLoop() const AP4_Byte* ptr = data.GetData();
for(int i = 0; i < size; i++) p->Add(ptr[i]);
+//int x = p->GetCount();
+//if (x>4 && p->GetAt(x-4)==0x91 && p->GetAt(x-3)==0x11 && p->GetAt(x-2)==0x19 && p->GetAt(x-1)==0x90)
+// printf("gotcha");
+
if(fFirst) {p->rtStart = p->rtStop = (REFERENCE_TIME)(10000000.0 / track->GetMediaTimeScale() * sample.GetCts()); fFirst = false;}
- p->rtStop += (REFERENCE_TIME)(10000000.0 / track->GetMediaTimeScale() * sample.GetDuration());
+ nAP4SampleDuration += sample.GetDuration();
if(pPairNext->m_value.index+1 >= track->GetSampleCount() || p->GetCount() >= nBlockAlign)
break;
pPairNext->m_value.index++;
}
+
+ p->rtStop = p->rtStart + (REFERENCE_TIME)(10000000.0 / track->GetMediaTimeScale() * nAP4SampleDuration);
}
else if(track->GetType() == AP4_Track::TYPE_TEXT)
{
@@ -1181,6 +1188,11 @@ bool CMP4SplitterFilter::DemuxLoop() p->SetData(data.GetData(), data.GetDataSize());
}
+ if (track->GetType() == AP4_Track::TYPE_AUDIO)
+ TRACE ("MP4 Deliver : A %10I64d - %10I64d\n", p->rtStart, p->rtStop);
+ else if (track->GetType() == AP4_Track::TYPE_VIDEO)
+ TRACE ("MP4 Deliver : V %10I64d - %10I64d\n", p->rtStart, p->rtStop);
+
hr = DeliverPacket(p);
}
|