diff options
Diffstat (limited to 'drivers/theoraplayer/src/TheoraDataSource.cpp')
-rw-r--r-- | drivers/theoraplayer/src/TheoraDataSource.cpp | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/drivers/theoraplayer/src/TheoraDataSource.cpp b/drivers/theoraplayer/src/TheoraDataSource.cpp deleted file mode 100644 index 6011dc6783..0000000000 --- a/drivers/theoraplayer/src/TheoraDataSource.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/************************************************************************************ -This source file is part of the Theora Video Playback Library -For latest info, see http://libtheoraplayer.googlecode.com -************************************************************************************* -Copyright (c) 2008-2014 Kresimir Spes (kspes@cateia.com) -This program is free software; you can redistribute it and/or modify it under -the terms of the BSD license: http://opensource.org/licenses/BSD-3-Clause -*************************************************************************************/ -#include <stdio.h> -#include <memory.h> -#include "TheoraDataSource.h" -#include "TheoraException.h" -#include "TheoraVideoManager.h" -#include "TheoraUtil.h" - -TheoraDataSource::~TheoraDataSource() -{ - -} - -TheoraFileDataSource::TheoraFileDataSource(std::string filename) -{ - mFilename = filename; - mFilePtr = NULL; -} - -TheoraFileDataSource::~TheoraFileDataSource() -{ - if (mFilePtr) - { - fclose(mFilePtr); - mFilePtr = NULL; - } -} - -void TheoraFileDataSource::openFile() -{ - if (mFilePtr == NULL) - { - mFilePtr=fopen(mFilename.c_str(), "rb"); - if (!mFilePtr) - { - std::string msg = "Can't open video file: " + mFilename; - th_writelog(msg); - throw TheoraGenericException(msg); - } - fseek(mFilePtr, 0, SEEK_END); - mSize = ftell(mFilePtr); - fseek(mFilePtr, 0, SEEK_SET); - } -} - -int TheoraFileDataSource::read(void* output, int nBytes) -{ - if (mFilePtr == NULL) openFile(); - size_t n = fread(output, 1, nBytes, mFilePtr); - return (int) n; -} - -void TheoraFileDataSource::seek(unsigned long byte_index) -{ - if (mFilePtr == NULL) openFile(); - fseek(mFilePtr, byte_index, SEEK_SET); -} - -unsigned long TheoraFileDataSource::size() -{ - if (mFilePtr == NULL) openFile(); - return mSize; -} - -unsigned long TheoraFileDataSource::tell() -{ - if (mFilePtr == NULL) return 0; - return ftell(mFilePtr); -} - -TheoraMemoryFileDataSource::TheoraMemoryFileDataSource(std::string filename) : - mReadPointer(0), - mData(0) -{ - mFilename=filename; - FILE* f=fopen(filename.c_str(),"rb"); - if (!f) throw TheoraGenericException("Can't open video file: "+filename); - fseek(f,0,SEEK_END); - mSize=ftell(f); - fseek(f,0,SEEK_SET); - mData=new unsigned char[mSize]; - fread(mData,1,mSize,f); - fclose(f); -} - -TheoraMemoryFileDataSource::TheoraMemoryFileDataSource(unsigned char* data, long size, const std::string& filename) -{ - mFilename = filename; - mData = data; - mSize = size; - mReadPointer = 0; -} - -TheoraMemoryFileDataSource::~TheoraMemoryFileDataSource() -{ - if (mData) delete [] mData; -} - -int TheoraMemoryFileDataSource::read(void* output, int nBytes) -{ - int n = (int) ((mReadPointer+nBytes <= mSize) ? nBytes : mSize - mReadPointer); - if (!n) return 0; - memcpy(output, mData + mReadPointer, n); - mReadPointer += n; - return n; -} - -void TheoraMemoryFileDataSource::seek(unsigned long byte_index) -{ - mReadPointer=byte_index; -} - -unsigned long TheoraMemoryFileDataSource::size() -{ - return mSize; -} - -unsigned long TheoraMemoryFileDataSource::tell() -{ - return mReadPointer; -} |