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

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

?? inputpin.c

?? linux下實現(xiàn)視頻播放的播放器
?? C
?? 第 1 頁 / 共 3 頁
字號:
 * \return E_UNEXPECTED - The pin is output pin * */static long STDCALL CInputPin_NewSegment(IPin* This,					  /* [in] */ REFERENCE_TIME tStart,					  /* [in] */ REFERENCE_TIME tStop,					  /* [in] */ double dRate){    LOG_MSG("CInputPin_NewSegment(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief CInputPin destructor * * \param[in]  This pointer to CInputPin class * */static void CInputPin_Destroy(CInputPin* This){    free(This->vt);    FreeMediaType(&(This->type));    free(This);}IMPLEMENT_IUNKNOWN(CInputPin)/** * \brief CInputPin constructor * * \param[in]  amt media type for pin * * \return pointer to CInputPin if success * \return NULL if error occured * */CInputPin* CInputPinCreate(CBaseFilter* p, const AM_MEDIA_TYPE* amt){    CInputPin* This = (CInputPin*) malloc(sizeof(CInputPin));    if (!This)        return NULL;    This->refcount = 1;    This->parent = p;    CopyMediaType(&(This->type),amt);    This->vt= (IPin_vt*) malloc(sizeof(IPin_vt));    if (!This->vt)    {	free(This);	return NULL;    }    This->vt->QueryInterface = CInputPin_QueryInterface;    This->vt->AddRef = CInputPin_AddRef;    This->vt->Release = CInputPin_Release;    This->vt->Connect = CInputPin_Connect;    This->vt->ReceiveConnection = CInputPin_ReceiveConnection;    This->vt->Disconnect = CInputPin_Disconnect;    This->vt->ConnectedTo = CInputPin_ConnectedTo;    This->vt->ConnectionMediaType = CInputPin_ConnectionMediaType;    This->vt->QueryPinInfo = CInputPin_QueryPinInfo;    This->vt->QueryDirection = CInputPin_QueryDirection;    This->vt->QueryId = CInputPin_QueryId;    This->vt->QueryAccept = CInputPin_QueryAccept;    This->vt->EnumMediaTypes = CInputPin_EnumMediaTypes;    This->vt->QueryInternalConnections = CInputPin_QueryInternalConnections;    This->vt->EndOfStream = CInputPin_EndOfStream;    This->vt->BeginFlush = CInputPin_BeginFlush;    This->vt->EndFlush = CInputPin_EndFlush;    This->vt->NewSegment = CInputPin_NewSegment;    This->interfaces[0]=IID_IUnknown;    return This;}/************* * BaseFilter *************/static long STDCALL CBaseFilter_GetClassID(IBaseFilter * This,					   /* [out] */ CLSID *pClassID){    LOG_MSG("CBaseFilter_GetClassID(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::Stop  (stops the filter) * * \param[in] This pointer to IBaseFilter interface * * \return S_OK success * \return S_FALSE transition is not complete * * \remarks * When filter is stopped it does onot deliver or process any samples and rejects any samples * from upstream filter. * Transition may be asynchronous. In this case method should return S_FALSE. * Method always sets filter's state to State_Stopped even if error occured. * */static long STDCALL CBaseFilter_Stop(IBaseFilter* This){    LOG_MSG("CBaseFilter_Stop(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::Pause (pauses filter) * * \param[in] This pointer to IBaseFilter interface * * \return S_OK success * \return S_FALSE transition is not complete * * \remarks * When filter is paused it can receive, process and deliver samples. * Live source filters do not deliver any samples while paused. * Transition may be asynchronous. In this case method should return S_FALSE. * Method always sets filter's state to State_Stopped even if error occured. * */static long STDCALL CBaseFilter_Pause(IBaseFilter* This){    LOG_MSG("CBaseFilter_Pause(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::Run (runs the filter) * * \param[in] This pointer to IBaseFilter interface * \param[in] tStart Reference time corresponding to stream time 0. * * \return S_OK success * \return S_FALSE transition is not complete * * \remarks * When filter is running it can receive, process and deliver samples. Source filters * generatesnew  samples, and renderers renders them. * Stream time is calculated as the current reference time minus tStart. * Graph Manager sets tStart slightly in the future according to graph latency. * */static long STDCALL CBaseFilter_Run(IBaseFilter* This, REFERENCE_TIME tStart){    LOG_MSG("CBaseFilter_Run(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::GetState (retrieves the filter's state (running, stopped or paused)) * * \param[in] This pointer to IBaseFilter interface * \param[in] dwMilliSecsTimeout Timeout interval in milliseconds. To block indifinitely pass *            INFINITE. * \param[out] State pointer to variable that receives a member of FILTER_STATE enumeration. * * \return S_OK success * \return E_POINTER Null pointer * \return VFW_S_STATE_INTERMEDATE Intermediate state * \return VFW_S_CANT_CUE The filter is active, but cannot deliver data. * */static long STDCALL CBaseFilter_GetState(IBaseFilter* This,					 /* [in] */ unsigned long dwMilliSecsTimeout,					 // /* [out] */ FILTER_STATE *State)					 void* State){    LOG_MSG("CBaseFilter_GetState(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::SetSyncSource (sets the reference clock) * * \param[in] This pointer to IBaseFilter interface * \param[in] pClock IReferenceClock interface of reference clock * * \return S_OK success * \return apripriate error otherwise * */static long STDCALL CBaseFilter_SetSyncSource(IBaseFilter* This,					      /* [in] */ IReferenceClock *pClock){    LOG_MSG("CBaseFilter_SetSyncSource(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediafilter::GetSyncSource (gets current reference clock) * * \param[in] This pointer to IBaseFilter interface * \param[out] pClock address of variable that receives pointer to clock's *  IReferenceClock interface * * \return S_OK success * \return E_POINTER Null pointer * */static long STDCALL CBaseFilter_GetSyncSource(IBaseFilter* This,					      /* [out] */ IReferenceClock **pClock){    LOG_MSG("CBaseFilter_GetSyncSource(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IBaseFilter::EnumPins (enumerates the pins of this filter) * * \param[in] This pointer to IBaseFilter interface * \param[out] ppEnum address of variable that receives pointer to IEnumPins interface * * \return S_OK success * \return E_OUTOFMEMORY Insufficient memory * \return E_POINTER Null pointer * */static long STDCALL CBaseFilter_EnumPins(IBaseFilter* This,					 /* [out] */ IEnumPins **ppEnum){    LOG_MSG("CBaseFilter_EnumPins(%p) called", This);    *ppEnum = (IEnumPins*) CEnumPinsCreate(((CBaseFilter*)This)->pin, ((CBaseFilter*)This)->unused_pin);    return 0;}/** * \brief IBaseFilter::FindPin (retrieves the pin with specified id) * * \param[in] This pointer to IBaseFilter interface * \param[in] Id  constant wide string, containing pin id * \param[out] ppPin address of variable that receives pointer to pin's IPin interface * * \return S_OK success * \return E_POINTER Null pointer * \return VFW_E_NOT_FOUND Could not find a pin with specified id * * \note * Be sure to release the interface after use. * */static long STDCALL CBaseFilter_FindPin(IBaseFilter* This,					/* [string][in] */ const unsigned short* Id,					/* [out] */ IPin **ppPin){    LOG_MSG("CBaseFilter_FindPin(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IBaseFilter::QueryFilterInfo (retrieves information aboud the filter) * * \param[in] This pointer to IBaseFilter interface * \param[out] pInfo pointer to FILTER_INFO structure * * \return S_OK success * \return E_POINTER Null pointer * * \note * If pGraph member of FILTER_INFO is not NULL, be sure to release IFilterGraph interface after use. * */static long STDCALL CBaseFilter_QueryFilterInfo(IBaseFilter* This,						// /* [out] */ FILTER_INFO *pInfo)						void* pInfo){    LOG_MSG("CBaseFilter_QueryFilterInfo(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IBaseFilter::JoinFilterGraph (notifies the filter that it has joined of left filter graph) * * \param[in] This pointer to IBaseFilter interface * \param[in] pInfo pointer to graph's IFilterGraph interface or NULL if filter is leaving graph * \param[in] pName pointer to wide character string that specifies a name for the filter * * \return S_OK success * \return apropriate error code otherwise * * \remarks * Filter should not call to graph's AddRef method. * The IFilterGraph is guaranteed to be valid until graph manager calls this method again with * the value NULL. * */static long STDCALL CBaseFilter_JoinFilterGraph(IBaseFilter* This,						/* [in] */ IFilterGraph* pGraph,						/* [string][in] */ const unsigned short* pName){    LOG_MSG("CBaseFilter_JoinFilterGraph(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IBaseFilter::QueryVendorInfo (retrieves a string containing vendor info) * * \param[in] This pointer to IBaseFilter interface * \param[out] address of variable that receives pointer to a string containing vendor info * * \return S_OK success * \return E_POINTER Null pointer * \return E_NOTIMPL Not implemented * * \remarks * Call to CoTaskMemFree to free memory allocated for string * */static long STDCALL CBaseFilter_QueryVendorInfo(IBaseFilter* This,						/* [string][out] */ unsigned short** pVendorInfo){    LOG_MSG("CBaseFilter_QueryVendorInfo(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief CBaseFilter::GetPin (gets used pin) * * \param[in] This pointer to CBaseFilter object * * \return pointer to used pin's IPin interface * */static IPin* CBaseFilter_GetPin(CBaseFilter* This){    return This->pin;}/** * \brief CBaseFilter::GetUnusedPin (gets used pin) * * \param[in] This pointer to CBaseFilter object * * \return pointer to unused pin's IPin interface * */static IPin* CBaseFilter_GetUnusedPin(CBaseFilter* This){    return This->unused_pin;}/** * \brief CBaseFilter destructor * * \param[in] This pointer to CBaseFilter object * */static void CBaseFilter_Destroy(CBaseFilter* This){    if (This->vt)	free(This->vt);    if (This->pin)	This->pin->vt->Release((IUnknown*)This->pin);    if (This->unused_pin)	This->unused_pin->vt->Release((IUnknown*)This->unused_pin);    free(This);}IMPLEMENT_IUNKNOWN(CBaseFilter)/** * \brief CBaseFilter constructor * * \param[in] type Pointer to media type for connection * \param[in] parent Pointer to parent CBaseFilter2 object * * \return pointer to CBaseFilter object or NULL if error occured * */CBaseFilter* CBaseFilterCreate(const AM_MEDIA_TYPE* type, CBaseFilter2* parent){    CBaseFilter* This = (CBaseFilter*) malloc(sizeof(CBaseFilter));    if (!This)	return NULL;    This->refcount = 1;    This->pin = (IPin*) CInputPinCreate(This, type);    This->unused_pin = (IPin*) CRemotePinCreate(This, parent->GetPin(parent));    This->vt = (IBaseFilter_vt*) malloc(sizeof(IBaseFilter_vt));    if (!This->vt || !This->pin || !This->unused_pin)    {        CBaseFilter_Destroy(This);        return NULL;    }    This->vt->QueryInterface = CBaseFilter_QueryInterface;    This->vt->AddRef = CBaseFilter_AddRef;    This->vt->Release = CBaseFilter_Release;    This->vt->GetClassID = CBaseFilter_GetClassID;    This->vt->Stop = CBaseFilter_Stop;    This->vt->Pause = CBaseFilter_Pause;    This->vt->Run = CBaseFilter_Run;    This->vt->GetState = CBaseFilter_GetState;    This->vt->SetSyncSource = CBaseFilter_SetSyncSource;    This->vt->GetSyncSource = CBaseFilter_GetSyncSource;    This->vt->EnumPins = CBaseFilter_EnumPins;    This->vt->FindPin = CBaseFilter_FindPin;    This->vt->QueryFilterInfo = CBaseFilter_QueryFilterInfo;    This->vt->JoinFilterGraph = CBaseFilter_JoinFilterGraph;    This->vt->QueryVendorInfo = CBaseFilter_QueryVendorInfo;    This->interfaces[0] = IID_IUnknown;    This->interfaces[1] = IID_IBaseFilter;    This->GetPin = CBaseFilter_GetPin;    This->GetUnusedPin = CBaseFilter_GetUnusedPin;    return This;}/************** * BaseFilter2 **************/static long STDCALL CBaseFilter2_GetClassID(IBaseFilter* This,					     /* [out] */ CLSID* pClassID){    LOG_MSG("CBaseFilter2_GetClassID(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::Stop  (stops the filter) * * \param[in] This pointer to IBaseFilter interface * * \return S_OK success * \return S_FALSE transition is not complete * * \remarks * When filter is stopped it does onot deliver or process any samples and rejects any samples * from upstream filter. * Transition may be asynchronous. In this case method should return S_FALSE. * Method always sets filter's state to State_Stopped even if error occured. * */static long STDCALL CBaseFilter2_Stop(IBaseFilter* This){    LOG_MSG("CBaseFilter2_Stop(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::Pause (pauses filter) * * \param[in] This pointer to IBaseFilter interface * * \return S_OK success * \return S_FALSE transition is not complete * * \remarks * When filter is paused it can receive, process and deliver samples. * Live source filters do not deliver any samples while paused. * Transition may be asynchronous. In this case method should return S_FALSE. * Method always sets filter's state to State_Stopped even if error occured. * */static long STDCALL CBaseFilter2_Pause(IBaseFilter* This){    LOG_MSG("CBaseFilter2_Pause(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}/** * \brief IMediaFilter::Run (runs the filter) * * \param[in] This pointer to IBaseFilter interface * \param[in] tStart Reference time corresponding to stream time 0. * * \return S_OK success * \return S_FALSE transition is not complete * * \remarks * When filter is running it can receive, process and deliver samples. Source filters * generatesnew  samples, and renderers renders them. * Stream time is calculated as the current reference time minus tStart. * Graph Manager sets tStart slightly in the future according to graph latency. * */static long STDCALL CBaseFilter2_Run(IBaseFilter* This, REFERENCE_TIME tStart){    LOG_MSG("CBaseFilter2_Run(%p) (UNIMPLEMENTED)", This);    return E_NOTIMPL;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日产欧产美韩系列久久99| 亚洲伦理在线免费看| 欧美一区二区在线视频| 欧美制服丝袜第一页| 在线看日本不卡| 色婷婷久久久久swag精品 | 欧美日韩免费高清一区色橹橹| 99在线精品免费| 99久久精品国产观看| 一本一道综合狠狠老| 欧美日韩一区二区电影| 91精品欧美福利在线观看| 日韩一区二区中文字幕| 欧美精品一区二| 亚洲欧洲av一区二区三区久久| 日韩毛片精品高清免费| 亚洲最大色网站| 日本不卡高清视频| 国产一区二区久久| 95精品视频在线| 欧洲av一区二区嗯嗯嗯啊| 91精品国产91久久久久久一区二区 | 成人免费毛片嘿嘿连载视频| 91片黄在线观看| 欧美久久久久中文字幕| 久久夜色精品国产噜噜av| 国产精品久久久久久久久果冻传媒| 亚洲免费av在线| 免费一级欧美片在线观看| 波多野结衣在线aⅴ中文字幕不卡| 在线观看亚洲成人| 久久精品亚洲国产奇米99| 亚洲乱码精品一二三四区日韩在线| 一区二区三区 在线观看视频| 青草av.久久免费一区| 成人av在线影院| 日韩亚洲欧美在线| 伊人色综合久久天天人手人婷| 免费人成精品欧美精品| k8久久久一区二区三区| 欧美一区二区在线不卡| 日本一二三四高清不卡| 蜜臀久久久久久久| 一本到三区不卡视频| 欧美xfplay| 性做久久久久久免费观看欧美| 国产美女在线精品| 欧美日韩大陆在线| 亚洲色图欧洲色图| 成人av在线资源| 久久久久99精品国产片| 亚洲成av人片在线| 91影院在线免费观看| 久久久www免费人成精品| 天堂成人免费av电影一区| 97精品超碰一区二区三区| 国产精品每日更新| 国产suv一区二区三区88区| 欧美一区午夜视频在线观看| 亚洲自拍与偷拍| 91成人免费网站| 综合av第一页| 成人激情视频网站| 国产日韩欧美高清| 成人国产精品免费观看| 久久噜噜亚洲综合| 国产精品中文字幕日韩精品| 欧美α欧美αv大片| 免费观看在线色综合| 7777精品伊人久久久大香线蕉的 | 欧美日韩精品一区二区三区| 国产精品美女一区二区| av一区二区三区在线| 中文字幕一区在线观看视频| 成人在线视频一区二区| 国产精品久久久久婷婷二区次| 国产不卡视频在线播放| 国产日韩欧美不卡在线| 成人少妇影院yyyy| 亚洲丝袜精品丝袜在线| 欧美亚洲国产怡红院影院| 亚洲午夜精品网| 91精品综合久久久久久| 久久精品国产99国产| 久久综合九色综合97婷婷女人| 国产精品自在欧美一区| 国产精品美女一区二区在线观看| 91论坛在线播放| 午夜精品福利一区二区蜜股av| 欧美人狂配大交3d怪物一区| 人人狠狠综合久久亚洲| 久久综合中文字幕| 国产一区二区成人久久免费影院 | 777精品伊人久久久久大香线蕉| 欧美aaaaaa午夜精品| 欧美www视频| 国产一区二区不卡| 日韩美女视频一区二区| 欧美日韩三级一区| 国产丶欧美丶日本不卡视频| 亚洲宅男天堂在线观看无病毒| 欧美在线一二三| 美女免费视频一区二区| 国产精品乱码人人做人人爱| 欧美性色欧美a在线播放| 久久国产精品一区二区| 国产精品乱人伦一区二区| 欧美疯狂性受xxxxx喷水图片| 国内精品久久久久影院薰衣草| 综合电影一区二区三区 | 日本一区二区在线不卡| 色综合久久久久综合99| 久久99精品国产| 一区二区高清视频在线观看| 亚洲精品在线免费观看视频| 一本色道久久综合精品竹菊| 激情综合五月婷婷| 久久精品99国产国产精| 国产精品欧美久久久久一区二区| 欧美日韩国产精选| 99精品一区二区三区| 国产一区二区三区美女| 日韩中文欧美在线| 亚洲男女一区二区三区| 国产亚洲精品福利| 欧美一区二区日韩| 欧美日韩在线播放一区| 成人毛片在线观看| 国产专区综合网| 视频一区二区三区入口| 一区二区三区在线观看动漫| 国产偷v国产偷v亚洲高清| 日韩三级在线观看| 91国内精品野花午夜精品| 成人美女视频在线观看18| 国产乱色国产精品免费视频| 日韩高清国产一区在线| 亚洲国产你懂的| 亚洲综合久久久久| 亚洲人成亚洲人成在线观看图片| 久久夜色精品国产欧美乱极品| 欧美一区二区在线观看| 91精品午夜视频| 欧美日韩免费在线视频| 欧美视频在线播放| 91九色最新地址| 色综合久久天天综合网| 91女人视频在线观看| 99久久久国产精品免费蜜臀| 成人免费毛片a| 91麻豆蜜桃一区二区三区| 成人国产视频在线观看| 99精品视频中文字幕| 一本大道久久精品懂色aⅴ| 91麻豆精品视频| 欧美亚洲自拍偷拍| 777xxx欧美| 欧美va在线播放| 国产午夜精品美女毛片视频| 久久色视频免费观看| 久久色.com| 国产精品国产馆在线真实露脸| 亚洲欧美一区二区三区久本道91| 亚洲美女视频一区| 午夜成人免费电影| 激情偷乱视频一区二区三区| 国产一区二区三区四 | 一区二区不卡在线播放| 亚洲一区二区视频在线观看| 污片在线观看一区二区| 国模一区二区三区白浆| www.亚洲免费av| 欧美日本免费一区二区三区| 欧美成人一区二区三区| 国产日韩欧美精品电影三级在线| 国产精品久久久久毛片软件| 亚洲一级片在线观看| 久久精品国产精品亚洲红杏| 高清国产一区二区三区| 在线观看www91| 国产天堂亚洲国产碰碰| 一区二区三区中文免费| 人人爽香蕉精品| 99久久久久久99| 精品久久国产字幕高潮| 日韩久久一区二区| 精品亚洲国内自在自线福利| 99久久精品99国产精品| 欧美一区二区三区在| 国产精品免费丝袜| 老鸭窝一区二区久久精品| 成人激情开心网| 日韩欧美一级二级三级久久久 | 91丝袜高跟美女视频| 日韩午夜三级在线| 亚洲精品综合在线| 国产精品一区二区91| 欧美猛男gaygay网站| 国产精品乱码妇女bbbb| 久久不见久久见中文字幕免费|