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:
authorv0lt <v0lt@rambler.ru>2013-05-12 18:18:23 +0400
committerv0lt <v0lt@rambler.ru>2013-05-12 18:18:23 +0400
commit10de765546ccac4e829953c185768da3f110618b (patch)
treeb211f57e952c8d1c57dba93d06e23a66aaa05df1 /src/filters/parser
parent65dfd8e8b8f2ad058fa0ed0ae44f6d3da072366b (diff)
AviSplitter: back support DivX subtitles after a8719e5ec1.
Diffstat (limited to 'src/filters/parser')
-rw-r--r--src/filters/parser/AviSplitter/AviFile.cpp5
-rw-r--r--src/filters/parser/AviSplitter/AviSplitter.cpp9
2 files changed, 13 insertions, 1 deletions
diff --git a/src/filters/parser/AviSplitter/AviFile.cpp b/src/filters/parser/AviSplitter/AviFile.cpp
index b94ef77f8..4fbb40318 100644
--- a/src/filters/parser/AviSplitter/AviFile.cpp
+++ b/src/filters/parser/AviSplitter/AviFile.cpp
@@ -324,6 +324,11 @@ REFERENCE_TIME CAviFile::GetTotalTime()
for (DWORD i = 0; i < m_avih.dwStreams; ++i) {
strm_t* s = m_strms[i];
+
+ if (s->IsRawSubtitleStream()) {
+ continue;
+ }
+
REFERENCE_TIME t2 = s->GetRefTime((DWORD)s->cs.GetCount(), s->totalsize);
t = max(t, t2);
}
diff --git a/src/filters/parser/AviSplitter/AviSplitter.cpp b/src/filters/parser/AviSplitter/AviSplitter.cpp
index fbf2968ed..0c52f0725 100644
--- a/src/filters/parser/AviSplitter/AviSplitter.cpp
+++ b/src/filters/parser/AviSplitter/AviSplitter.cpp
@@ -537,10 +537,17 @@ bool CAviSplitterFilter::DemuxLoop()
CAviFile::strm_t* s = m_pFile->m_strms[j];
DWORD f = m_tFrame[j];
- if (f >= (DWORD)s->cs.GetCount() || s->IsRawSubtitleStream()) {
+ if (f >= (DWORD)s->cs.GetCount()) {
continue;
}
+ if (s->IsRawSubtitleStream()) {
+ // TODO: get subtitle time from index
+ minTime = 0;
+ curTrack = j;
+ break; // read all subtitles at once
+ }
+
REFERENCE_TIME start = s->GetRefTime(f, s->cs[f].size);
if (start < minTime) {
minTime = start;