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:
Diffstat (limited to 'src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp')
-rw-r--r--src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp b/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp
index 61a3b011a..f2c1e0d82 100644
--- a/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp
+++ b/src/filters/muxer/MatroskaMuxer/MatroskaFile.cpp
@@ -1,6 +1,6 @@
/*
* (C) 2003-2006 Gabest
- * (C) 2006-2014 see Authors.txt
+ * (C) 2006-2015 see Authors.txt
*
* This file is part of MPC-HC.
*
@@ -255,7 +255,7 @@ QWORD CLength::Size(bool fWithHeader)
QWORD len = 0;
for (int i = 1; i <= 8; i++) {
- if (!(m_len & (~((1i64 << (7 * i)) - 1))) && (m_len & ((1i64 << (7 * i)) - 1)) != ((1i64 << (7 * i)) - 1)) {
+ if (!(m_len & (~((QWORD(1) << (7 * i)) - 1))) && (m_len & ((QWORD(1) << (7 * i)) - 1)) != ((QWORD(1) << (7 * i)) - 1)) {
len += i;
break;
}
@@ -924,8 +924,14 @@ HRESULT Void::Write(IStream* pStream)
HeaderWrite(pStream);
BYTE buff[64];
memset(buff, 0x80, sizeof(buff));
- for (int len = (int)m_len; len > 0; len -= sizeof(buff)) {
- pStream->Write(buff, std::min<ULONG>(sizeof(buff), (ULONG)len), nullptr);
+ QWORD len = m_len;
+ for (; len >= sizeof(buff); len -= sizeof(buff)) {
+ pStream->Write(buff, sizeof(buff), nullptr);
}
+
+ if (len > 0) {
+ pStream->Write(buff, (ULONG)len, nullptr);
+ }
+
return S_OK;
}