MP4SplitterFile.cpp
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. #include "StdAfx.h"
  2. #include "MP4SplitterFile.h"
  3. #include "Ap4AsyncReaderStream.cpp" // FIXME
  4. CMP4SplitterFile::CMP4SplitterFile(IAsyncReader* pReader, HRESULT& hr) 
  5. : CBaseSplitterFileEx(pReader, hr)
  6. , m_pAp4File(NULL)
  7. {
  8. if(FAILED(hr)) return;
  9. hr = Init();
  10. }
  11. CMP4SplitterFile::~CMP4SplitterFile()
  12. {
  13. delete (AP4_File*)m_pAp4File;
  14. }
  15. void* /* AP4_Movie* */ CMP4SplitterFile::GetMovie()
  16. {
  17. ASSERT(m_pAp4File);
  18. return m_pAp4File ? ((AP4_File*)m_pAp4File)->GetMovie() : NULL;
  19. }
  20. HRESULT CMP4SplitterFile::Init()
  21. {
  22. Seek(0);
  23. delete (AP4_File*)m_pAp4File;
  24. AP4_ByteStream* stream = new AP4_AsyncReaderStream(this);
  25. m_pAp4File = new AP4_File(*stream);
  26. AP4_Movie* movie = ((AP4_File*)m_pAp4File)->GetMovie();
  27. stream->Release();
  28. return movie ? S_OK : E_FAIL;
  29. }