Code Search for Developers
 
 
  

MP4Splitter.h from guliverkli at Krugle


Show MP4Splitter.h syntax highlighted

/* 
 *	Copyright (C) 2003-2006 Gabest
 *	http://www.gabest.org
 *
 *  This Program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2, or (at your option)
 *  any later version.
 *   
 *  This Program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 *  GNU General Public License for more details.
 *   
 *  You should have received a copy of the GNU General Public License
 *  along with GNU Make; see the file COPYING.  If not, write to
 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
 *  http://www.gnu.org/copyleft/gpl.html
 *
 */

#pragma once

#include <atlbase.h>
#include <atlcoll.h>
#include "MP4SplitterFile.h"
#include "..\BaseSplitter\BaseSplitter.h"

[uuid("61F47056-E400-43d3-AF1E-AB7DFFD4C4AD")]
class CMP4SplitterFilter : public CBaseSplitterFilter
{
	struct trackpos {DWORD /*AP4_Ordinal*/ index; unsigned __int64 /*AP4_TimeStamp*/ ts;};
	CAtlMap<DWORD, trackpos> m_trackpos;
	CSize m_framesize;

protected:
	CAutoPtr<CMP4SplitterFile> m_pFile;
	HRESULT CreateOutputs(IAsyncReader* pAsyncReader);

	bool DemuxInit();
	void DemuxSeek(REFERENCE_TIME rt);
	bool DemuxLoop();

public:
	CMP4SplitterFilter(LPUNKNOWN pUnk, HRESULT* phr);
	virtual ~CMP4SplitterFilter();

	// IKeyFrameInfo

	STDMETHODIMP_(HRESULT) GetKeyFrameCount(UINT& nKFs);
	STDMETHODIMP_(HRESULT) GetKeyFrames(const GUID* pFormat, REFERENCE_TIME* pKFs, UINT& nKFs);
};

[uuid("3CCC052E-BDEE-408a-BEA7-90914EF2964B")]
class CMP4SourceFilter : public CMP4SplitterFilter
{
public:
	CMP4SourceFilter(LPUNKNOWN pUnk, HRESULT* phr);
};

// for raw mpeg4 elementary streams:

[uuid("D3D9D58B-45B5-48AB-B199-B8C40560AEC7")]
class CMPEG4VideoSplitterFilter : public CBaseSplitterFilter
{
	__int64 m_seqhdrsize;
	int NextStartCode();
	void SkipUserData();

protected:
	CAutoPtr<CBaseSplitterFileEx> m_pFile;
	HRESULT CreateOutputs(IAsyncReader* pAsyncReader);

	bool DemuxInit();
	void DemuxSeek(REFERENCE_TIME rt);
	bool DemuxLoop();

public:
	CMPEG4VideoSplitterFilter(LPUNKNOWN pUnk, HRESULT* phr);
};

[uuid("E2B98EEA-EE55-4E9B-A8C1-6E5288DF785A")]
class CMPEG4VideoSourceFilter : public CMPEG4VideoSplitterFilter
{
public:
	CMPEG4VideoSourceFilter(LPUNKNOWN pUnk, HRESULT* phr);
};




See more files for this project here

guliverkli

Home of VobSub, Media Player Classic (MPC) and other misc utils.

Project homepage: http://sourceforge.net/projects/guliverkli
Programming language(s): C,C++,PHP
License: other

  AP4/
    Update/
      v0.6.3/
        Source/
          Config/
            Ap4Config.h
          Core/
            Ap4Atom.h
            Ap4AtomFactory.cpp
            Ap4AtomFactory.h
            Ap4AtomSampleTable.cpp
            Ap4AtomSampleTable.h
            Ap4AvcCAtom.cpp
            Ap4AvcCAtom.h
            Ap4ByteStream.cpp
            Ap4ByteStream.h
            Ap4ChplAtom.cpp
            Ap4ChplAtom.h
            Ap4CmvdAtom.cpp
            Ap4CmvdAtom.h
            Ap4Co64Atom.cpp
            Ap4Co64Atom.h
            Ap4ContainerAtom.cpp
            Ap4CttsAtom.cpp
            Ap4CttsAtom.h
            Ap4DataAtom.cpp
            Ap4DataAtom.h
            Ap4DcomAtom.cpp
            Ap4DcomAtom.h
            Ap4DrefAtom.cpp
            Ap4File.cpp
            Ap4FtabAtom.cpp
            Ap4FtabAtom.h
            Ap4HdlrAtom.cpp
            Ap4HdlrAtom.h
            Ap4MdhdAtom.cpp
            Ap4MdhdAtom.h
            Ap4MoovAtom.cpp
            Ap4Movie.cpp
            Ap4Movie.h
            Ap4MvhdAtom.cpp
            Ap4MvhdAtom.h
            Ap4Sample.cpp
            Ap4Sample.h
            Ap4SampleDescription.h
            Ap4SampleEntry.cpp
            Ap4SampleEntry.h
            Ap4StcoAtom.cpp
            Ap4StscAtom.h
            Ap4StsdAtom.cpp
            Ap4StsdAtom.h
            Ap4StssAtom.h
            Ap4StszAtom.cpp
            Ap4StszAtom.h
            Ap4SttsAtom.cpp
            Ap4SttsAtom.h
            Ap4TkhdAtom.cpp
            Ap4TkhdAtom.h
            Ap4Track.cpp
            Ap4Track.h
            Ap4TrakAtom.cpp
            Ap4TrakAtom.h
            Ap4Types.h
            Ap4Utils.cpp
            Ap4Utils.h
          Crypto/
            Ap4AesBlockCipher.cpp
        Bento4_0.6.3-001.7z
  Ap4AsyncReaderStream.cpp
  Ap4AsyncReaderStream.h
  MP4Splitter.cpp
  MP4Splitter.def
  MP4Splitter.h
  MP4Splitter.rc
  MP4SplitterFile.cpp
  MP4SplitterFile.h
  MP4Splitter_vs2005.sln
  MP4Splitter_vs2005.vcproj
  readme.txt
  resource.h
  stdafx.cpp
  stdafx.h