亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dsmp4v.h

?? 經典的MP4編解碼核心庫
?? H
字號:
#ifndef _DSMP4V_H
#define _DSMP4V_H

#ifdef DEBUG2
#include <stdio.h>
#endif

#include "mp4v.h"

// {90348BCF-CB8E-4d8d-B67E-6C938906BBBB}
DEFINE_GUID(CLSID_DSMP4V, 
0x90348bcf, 0xcb8e, 0x4d8d, 0xb6, 0x7e, 0x6c, 0x93, 0x89, 0x6, 0xbb, 0xbb);

// divx
DEFINE_GUID(CLSID_DIVX,
	0x78766964, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
// DIVX
DEFINE_GUID(CLSID_DIVX_UC,
	0x58564944, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
// DX50
DEFINE_GUID(CLSID_DIVX_50,
	0x30355844, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
// RMP4
DEFINE_GUID(CLSID_RMP4,
	0x34504d52, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);

class MP4VDecoder : public CTransformFilter
{
private:
	HINSTANCE m_hDecodeLibrary;
	int (__cdecl *m_pMP4V_init)(void *, int, void *, void *);
	int (__cdecl *m_pMP4V_decode)(void *, int, void *);

	int				m_DecodeBFrame;
	MP4V_DEC_PARAM	m_param;
	MP4V_DEC_FRAME	m_Frame;
	DWORD			m_BFrameOffset;
	REFERENCE_TIME	m_AvgTimePerFrame;
	REFERENCE_TIME	m_SyncPoint;
	REFERENCE_TIME	m_ReferenceCounter;

	HRESULT TranslateColorSpace(GUID subtype, GUID formattype, void * format);

public:

    MP4VDecoder(TCHAR *, LPUNKNOWN, REFCLSID clsid);
    ~MP4VDecoder();
	
    // =================================================================
    // ----- override these bits ---------------------------------------
    // =================================================================
    // The following methods are in CTransformFilter which is inherited.
    // They are mentioned here for completeness
    //
    // These MUST be supplied in a derived class
    //
    // NOTE:
    // virtual HRESULT Transform(IMediaSample * pIn, IMediaSample *pOut);
    // virtual HRESULT CheckInputType(const CMediaType* mtIn) PURE;
    // virtual HRESULT CheckTransform
    //     (const CMediaType* mtIn, const CMediaType* mtOut) PURE;
    // static CCOMObject * CreateInstance(LPUNKNOWN, HRESULT *);
    // virtual HRESULT DecideBufferSize
    //     (IMemAllocator * pAllocator, ALLOCATOR_PROPERTIES *pprop) PURE;
    //virtual HRESULT GetMediaType(int iPosition, CMediaType *pMediaType) PURE; 
	static CUnknown * WINAPI CreateInstance(LPUNKNOWN punk, HRESULT *phr);
	HRESULT Transform(IMediaSample *pIn, IMediaSample *pOut);
	HRESULT CheckInputType (const CMediaType * mtIn);
	HRESULT GetMediaType (int iPos, CMediaType * pmt);
	HRESULT SetMediaType (PIN_DIRECTION direction, const CMediaType *pmt);	
	HRESULT CheckTransform (const CMediaType *mtIn, const CMediaType *mtOut);
	HRESULT DecideBufferSize (IMemAllocator * pima, ALLOCATOR_PROPERTIES * pProperties);
    //
    // These MAY also be overridden
    //
    // virtual HRESULT StopStreaming();
    // virtual HRESULT SetMediaType(PIN_DIRECTION direction,const CMediaType *pmt);
    // virtual HRESULT CheckConnect(PIN_DIRECTION dir,IPin *pPin);
    // virtual HRESULT BreakConnect(PIN_DIRECTION dir);
    // virtual HRESULT CompleteConnect(PIN_DIRECTION direction,IPin *pReceivePin);
    // virtual HRESULT EndOfStream(void);
    // virtual HRESULT BeginFlush(void);
    // virtual HRESULT EndFlush(void);
    // virtual HRESULT NewSegment
    //     (REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate);
	HRESULT EndFlush();

#ifdef PERF

    // If you override this - ensure that you register all these ids
    // as well as any of your own,
    virtual void RegisterPerfId() {
        m_idSkip        = MSR_REGISTER("Video Transform Skip frame");
        m_idFrameType   = MSR_REGISTER("Video transform frame type");
        m_idLate        = MSR_REGISTER("Video Transform Lateness");
        m_idTimeTillKey = MSR_REGISTER("Video Transform Estd. time to next key");
        CTransformFilter::RegisterPerfId();
    }
#endif

  protected:

    // =========== QUALITY MANAGEMENT IMPLEMENTATION ========================
    // Frames are assumed to come in three types:
    // Type 1: an AVI key frame or an MPEG I frame.
    //        This frame can be decoded with no history.
    //        Dropping this frame means that no further frame can be decoded
    //        until the next type 1 frame.
    //        Type 1 frames are sync points.
    // Type 2: an AVI non-key frame or an MPEG P frame.
    //        This frame cannot be decoded unless the previous type 1 frame was
    //        decoded and all type 2 frames since have been decoded.
    //        Dropping this frame means that no further frame can be decoded
    //        until the next type 1 frame.
    // Type 3: An MPEG B frame.
    //        This frame cannot be decoded unless the previous type 1 or 2 frame
    //        has been decoded AND the subsequent type 1 or 2 frame has also
    //        been decoded.  (This requires decoding the frames out of sequence).
    //        Dropping this frame affects no other frames.  This implementation
    //        does not allow for these.  All non-sync-point frames are treated
    //        as being type 2.
    //
    // The spacing of frames of type 1 in a file is not guaranteed.  There MUST
    // be a type 1 frame at (well, near) the start of the file in order to start
    // decoding at all.  After that there could be one every half second or so,
    // there could be one at the start of each scene (aka "cut", "shot") or
    // there could be no more at all.
    // If there is only a single type 1 frame then NO FRAMES CAN BE DROPPED
    // without losing all the rest of the movie.  There is no way to tell whether
    // this is the case, so we find that we are in the gambling business.
    // To try to improve the odds, we record the greatest interval between type 1s
    // that we have seen and we bet on things being no worse than this in the
    // future.

    // You can tell if it's a type 1 frame by calling IsSyncPoint().
    // there is no architected way to test for a type 3, so you should override
    // the quality management here if you have B-frames.

    int m_nKeyFramePeriod; // the largest observed interval between type 1 frames
                           // 1 means every frame is type 1, 2 means every other.

    int m_nFramesSinceKeyFrame; // Used to count frames since the last type 1.
                                // becomes the new m_nKeyFramePeriod if greater.

    BOOL m_bSkipping;           // we are skipping to the next type 1 frame

#ifdef PERF
    int m_idFrameType;          // MSR id Frame type.  1=Key, 2="non-key"
    int m_idSkip;               // MSR id skipping
    int m_idLate;               // MSR id lateness
    int m_idTimeTillKey;        // MSR id for guessed time till next key frame.
#endif

    virtual HRESULT StartStreaming();

    HRESULT AbortPlayback(HRESULT hr);	// if something bad happens

    HRESULT Receive(IMediaSample *pSample);

    HRESULT AlterQuality(Quality q);

    BOOL ShouldSkipFrame(IMediaSample * pIn);

    int m_itrLate;              // lateness from last Quality message
                                // (this overflows at 214 secs late).
    int m_tDecodeStart;         // timeGetTime when decode started.
    int m_itrAvgDecode;         // Average decode time in reference units.

    BOOL m_bNoSkip;             // debug - no skipping.

    // We send an EC_QUALITY_CHANGE notification to the app if we have to degrade.
    // We send one when we start degrading, not one for every frame, this means
    // we track whether we've sent one yet.
    BOOL m_bQualityChanged;

    // When non-zero, don't pass anything to renderer until next keyframe
    // If there are few keys, give up and eventually draw something
    int m_nWaitForKey;
#ifdef DEBUG2
	FILE *m_debug;
#endif

};

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费日本视频一区| 日日嗨av一区二区三区四区| 91精品久久久久久久久99蜜臂| 色综合久久六月婷婷中文字幕| 99久久婷婷国产综合精品 | 亚洲一区二区中文在线| 成人免费一区二区三区在线观看| 欧美国产亚洲另类动漫| 国产欧美日韩不卡免费| 中文字幕人成不卡一区| 综合久久综合久久| 亚洲五码中文字幕| 蜜臀久久久久久久| 国产精品一品二品| 91免费版pro下载短视频| 日本乱人伦一区| 91精品国产手机| 久久免费美女视频| 夜夜操天天操亚洲| 日日欢夜夜爽一区| 国产精品 日产精品 欧美精品| 成人一二三区视频| 欧美视频精品在线| 精品动漫一区二区三区在线观看| 欧美国产在线观看| 亚洲国产精品久久久久秋霞影院| 麻豆国产一区二区| 成人免费的视频| 欧美久久婷婷综合色| 国产亚洲欧美日韩在线一区| 亚洲人123区| 久久av老司机精品网站导航| 91在线视频观看| 欧美成人性战久久| 成人欧美一区二区三区黑人麻豆 | 午夜精品福利久久久| 国产精品一区专区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 精品污污网站免费看| 国产视频一区二区在线| 亚洲一二三四在线观看| 丁香婷婷深情五月亚洲| 欧美美女视频在线观看| 国产精品久久久久婷婷二区次| 婷婷成人激情在线网| 不卡一区二区三区四区| 欧美电影免费观看完整版| 亚洲色大成网站www久久九九| 欧美aaaaaa午夜精品| 欧美亚洲高清一区| 日韩伦理av电影| 国产老肥熟一区二区三区| 欧美精品 日韩| 免费看黄色91| 欧美日韩免费电影| 亚洲欧美另类图片小说| 国产原创一区二区| 欧美大片一区二区三区| 高清免费成人av| 精品电影一区二区三区| 日韩国产欧美三级| 欧美日韩一区二区三区不卡| 亚洲欧洲日产国码二区| 不卡一二三区首页| 亚洲国产精品精华液2区45| 韩国精品久久久| 91.麻豆视频| 日韩av电影一区| 91精品国产入口在线| 亚洲成a人片在线不卡一二三区| 一本在线高清不卡dvd| 中文字幕一区二区三区在线观看 | 久久婷婷国产综合精品青草| 亚洲主播在线观看| 精品视频全国免费看| 亚洲地区一二三色| 欧美剧在线免费观看网站| 偷窥少妇高潮呻吟av久久免费| 欧美日韩精品欧美日韩精品 | 国产精品三级av| 成人激情校园春色| 综合久久一区二区三区| 欧美亚洲国产bt| 青青草97国产精品免费观看无弹窗版| 91精品在线麻豆| 国产一区中文字幕| 国产精品丝袜在线| 91黄色激情网站| 丝袜a∨在线一区二区三区不卡| 7777精品伊人久久久大香线蕉最新版| 午夜一区二区三区在线观看| 91精品国产全国免费观看| 亚洲综合视频网| 日韩久久免费av| 国产福利一区在线观看| 亚洲色图在线视频| 日韩一级二级三级| 成人深夜在线观看| 亚洲福中文字幕伊人影院| 欧美成人精精品一区二区频| 国产成人免费视频网站| 有坂深雪av一区二区精品| 欧美影片第一页| 青青国产91久久久久久| 日韩午夜精品电影| 精品影院一区二区久久久| 久久综合一区二区| 成人黄色a**站在线观看| 亚洲精品免费在线观看| 欧美一卡2卡三卡4卡5免费| 激情久久五月天| 国产精品天美传媒| 欧美日韩一区二区在线观看视频| 午夜av一区二区| 日本一区二区三区久久久久久久久不 | 69精品人人人人| 久久精品国产99国产精品| 亚洲欧洲日韩综合一区二区| 欧美v日韩v国产v| 日本高清成人免费播放| 国产在线播放一区| 青草av.久久免费一区| 亚洲人成网站影音先锋播放| 26uuu国产电影一区二区| 欧美美女网站色| 一本大道久久a久久综合婷婷| 精品一区二区成人精品| 午夜亚洲国产au精品一区二区| 国产精品免费看片| 国产亚洲欧美激情| 日韩午夜在线影院| 欧美一卡二卡三卡| 9191精品国产综合久久久久久| 91在线国产福利| 国产不卡在线视频| 国产高清在线精品| 国产成人av一区二区三区在线| 青娱乐精品在线视频| 亚洲va欧美va人人爽| 国产视频一区在线播放| 久久综合五月天婷婷伊人| 欧美一区二区三区喷汁尤物| 欧美视频一区二区三区| 色综合久久综合网欧美综合网| 国产一区亚洲一区| 日产欧产美韩系列久久99| 日韩欧美一级在线播放| 欧美乱熟臀69xxxxxx| 91亚洲男人天堂| 国产乱一区二区| 日本成人在线视频网站| 伊人性伊人情综合网| 国产精品国产三级国产aⅴ原创 | 五月婷婷激情综合网| 亚洲一区av在线| 午夜精品国产更新| 午夜电影久久久| 美腿丝袜一区二区三区| 伦理电影国产精品| 国产精品自拍网站| 成人永久aaa| 一本大道久久a久久综合婷婷| 在线视频欧美精品| 日韩一区二区三区高清免费看看| 欧美一级二级三级蜜桃| 久久久久国产精品免费免费搜索| 国产欧美日韩精品一区| 最近中文字幕一区二区三区| 一级精品视频在线观看宜春院| 亚洲午夜电影在线观看| 日韩av网站在线观看| 国产成人在线色| 色视频成人在线观看免| 日韩欧美一区二区视频| 国产精品毛片大码女人| 天天影视涩香欲综合网| 国产精品一级黄| 欧美在线看片a免费观看| 欧美草草影院在线视频| 国产精品美女久久久久久2018 | 成人黄色大片在线观看| 欧美视频一区二区在线观看| 日韩免费一区二区三区在线播放| 国产亚洲欧美在线| 亚洲午夜私人影院| 国产成人激情av| 制服丝袜在线91| 国产精品美女久久久久久久| 亚洲成a人v欧美综合天堂| 国产麻豆精品theporn| 欧美性受xxxx黑人xyx| 久久久国产综合精品女国产盗摄| 一区二区三区久久| 国产精品123| 日韩美女一区二区三区四区| 亚洲猫色日本管| 高清在线观看日韩| 日韩欧美国产小视频| 亚洲在线一区二区三区| 国产99久久久精品|