00001 #pragma once 00002 00003 #include "..\BaseSplitter\BaseSplitter.h" 00004 00005 #include "Ap4.h" 00006 #include "Ap4File.h" 00007 //#include "Ap4Utils.h" 00008 //#include "Ap4Sample.h" 00009 #include "Ap4ByteStream.h" 00010 //#include "Ap4SampleEntry.h" 00011 //#include "Ap4IsmaCryp.h" 00012 //#include "Ap4AvcCAtom.h" 00013 //#include "Ap4FtabAtom.h" 00014 //#include "Ap4MdhdAtom.h" 00015 //#include "Ap4HdlrAtom.h" 00016 00017 class AP4_AsyncReaderStream : public AP4_ByteStream 00018 { 00019 int m_refs; 00020 CBaseSplitterFile* m_pFile; 00021 00022 public: 00023 AP4_AsyncReaderStream(CBaseSplitterFile* pFile); 00024 virtual ~AP4_AsyncReaderStream(); 00025 00026 void AddReference(); 00027 void Release(); 00028 00029 AP4_Result Read(void* buffer, AP4_Size bytesToRead, AP4_Size* bytesRead); 00030 AP4_Result Write(const void* buffer, AP4_Size bytesToWrite, AP4_Size* bytesWritten); 00031 AP4_Result Seek(AP4_Offset offset); 00032 AP4_Result Tell(AP4_Offset& offset); 00033 AP4_Result GetSize(AP4_Size& size); 00034 };