Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasimir666 <casimir666@users.sourceforge.net>2010-01-03 11:43:10 +0300
committerCasimir666 <casimir666@users.sourceforge.net>2010-01-03 11:43:10 +0300
commitd8af5c28764a2de4b33a8663dd52dce172a7adef (patch)
tree55bff3345aaab81de46de257e225675a7903ea41 /src/filters/parser
parent7db04d297fccad3d15ff82d40bd3f55899b44b40 (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.cpp16
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);
}