diff options
author | hkuang <hkuang@google.com> | 2014-04-10 17:21:41 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-04-10 17:21:41 +0000 |
commit | 704338728f68ac5ff7f36186bc4cdff890994959 (patch) | |
tree | d4655502ab2768db0858ae72ba2de7b530fa3afd /libvpx/third_party/libwebm/mkvreader.cpp | |
parent | 7616a7e29066d65ecd1d6f54485360d3964c67bb (diff) | |
parent | 4fb68e5dd4e93c7599dc905d861de11ac39c5585 (diff) | |
download | android_external_libvpx-704338728f68ac5ff7f36186bc4cdff890994959.tar.gz android_external_libvpx-704338728f68ac5ff7f36186bc4cdff890994959.tar.bz2 android_external_libvpx-704338728f68ac5ff7f36186bc4cdff890994959.zip |
am 4fb68e5d: Roll latest libvpx to fix hang when doing adaptive playback.
* commit '4fb68e5dd4e93c7599dc905d861de11ac39c5585':
Roll latest libvpx to fix hang when doing adaptive playback.
Diffstat (limited to 'libvpx/third_party/libwebm/mkvreader.cpp')
-rw-r--r-- | libvpx/third_party/libwebm/mkvreader.cpp | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/libvpx/third_party/libwebm/mkvreader.cpp b/libvpx/third_party/libwebm/mkvreader.cpp index cb3567f..b4b2459 100644 --- a/libvpx/third_party/libwebm/mkvreader.cpp +++ b/libvpx/third_party/libwebm/mkvreader.cpp @@ -14,13 +14,20 @@ namespace mkvparser { MkvReader::MkvReader() : - m_file(NULL) -{ + m_file(NULL), + reader_owns_file_(true) { } -MkvReader::~MkvReader() -{ +MkvReader::MkvReader(FILE* fp) : + m_file(fp), + reader_owns_file_(false) { + GetFileSize(); +} + +MkvReader::~MkvReader() { + if (reader_owns_file_) Close(); + m_file = NULL; } int MkvReader::Open(const char* fileName) @@ -42,12 +49,17 @@ int MkvReader::Open(const char* fileName) if (m_file == NULL) return -1; #endif + return !GetFileSize(); +} +bool MkvReader::GetFileSize() { + if (m_file == NULL) + return false; #ifdef _MSC_VER int status = _fseeki64(m_file, 0L, SEEK_END); if (status) - return -1; //error + return false; //error m_length = _ftelli64(m_file); #else @@ -56,16 +68,19 @@ int MkvReader::Open(const char* fileName) #endif assert(m_length >= 0); + if (m_length < 0) + return false; + #ifdef _MSC_VER status = _fseeki64(m_file, 0L, SEEK_SET); if (status) - return -1; //error + return false; //error #else fseek(m_file, 0L, SEEK_SET); #endif - return 0; + return true; } void MkvReader::Close() |