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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cmediasample.c

?? linux下實(shí)現(xiàn)視頻播放的播放器
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* * Modified for use with MPlayer, detailed changelog at * http://svn.mplayerhq.hu/mplayer/trunk/ * $Id$ */#include "config.h"#if (C_HAS_DIRECTSHOW)#include "cmediasample.h"#include "mediatype.h"#include "wine/winerror.h"/* * currently hack to make some extra room for DS Acel codec which * seems to overwrite allocated memory - FIXME better later * check the buffer allocation */static const int SAFETY_ACEL = 1024;/** * \brief IPin::QueryInternalConnections (retries pin's internal connections) * * \param[in]     This  pointer to IPin interface * \param[out]    apPin Array that receives pins, internally connected to this * \param[in,out] nPint Size of an array * * \return S_OK - success * \return S_FALSE - pin rejects media type * \return E_NOTIMPL - not implemented * */static long STDCALL CMediaSample_QueryInterface(IUnknown* This,						/* [in] */ const GUID* iid,						/* [iid_is][out] */ void **ppv){    LOG_MSG("CMediaSample_QueryInterface(%p) called", This);    if (!ppv)	return E_INVALIDARG;    if (memcmp(iid, &IID_IUnknown, sizeof(*iid)) == 0)    {	*ppv = (void*)This;	((IMediaSample*) This)->vt->AddRef(This);	return 0;    }    if (memcmp(iid, &IID_IMediaSample, sizeof(*iid)) == 0)    {	*ppv = (void*)This;	((IMediaSample*) This)->vt->AddRef(This);	return 0;    }    return E_NOINTERFACE;}/** * \brief IUnknown::AddRef (increases reference counter for interface) * * \param[in]  This pointer to IUnknown class * * \return new value of reference counter * * \remarks * Return value should be used only for debug purposes * */static long STDCALL CMediaSample_AddRef(IUnknown* This){    LOG_MSG("CMediaSample_AddRef(%p) called", This);    ((CMediaSample*)This)->refcount++;    return 0;}/** * \brief CMediaSample destructor * * \param[in] This pointer to CMediaSample object * */void CMediaSample_Destroy(CMediaSample* This){    LOG_MSG("CMediaSample_Destroy(%p) called (ref:%d)", This, This->refcount);    free(This->vt);    free(This->own_block);    FreeMediaType(&(This->media_type));    free(This);}/** * \brief IUnknown::Release (desreases reference counter for interface) * * \param[in]  This pointer to IUnknown class * * \return new value of reference counter * * \remarks * When reference counter reaches zero calls destructor * Return value should be used only for debug purposes * */static long STDCALL CMediaSample_Release(IUnknown* This){    CMediaSample* parent = (CMediaSample*)This;    LOG_MSG("CMediaSample_Release(%p) called  (new ref:%d)",		 This, ((CMediaSample*)This)->refcount-1);    if (--((CMediaSample*) This)->refcount == 0)    {	parent->all->vt->ReleaseBuffer((IMemAllocator*)(parent->all),				       (IMediaSample*)This);    }    return 0;}/** * \brief IMediaSample::GetPointer (retrieves a read/write pointer to the media sample's buffer) * * \param[in] This pointer to CMediaSample object * \param[out] address of variable that receives pointer to sample's buffer * * \return S_OK success * \return apropriate error otherwise * * \note The calles should not free or reallocate buffer * */static HRESULT STDCALL CMediaSample_GetPointer(IMediaSample* This,					       /* [out] */ BYTE** ppBuffer){    LOG_MSG("CMediaSample_GetPointer(%p) called -> %p, size: %d  %d", This, ((CMediaSample*) This)->block, ((CMediaSample*)This)->actual_size, ((CMediaSample*)This)->size);    if (!ppBuffer)	return E_INVALIDARG;    *ppBuffer = (BYTE*) ((CMediaSample*) This)->block;    return 0;}/** * \brief IMediaSample::GetSize (retrieves a size of buffer in bytes) * * \param[in] This pointer to CMediaSample object * * \return size of buffer in bytes * */static long STDCALL CMediaSample_GetSize(IMediaSample * This){    CMediaSample* cs = (CMediaSample*) This;    // this is a hack to prevent buffer overflows when custom buffer is used    if((cs->block != cs->own_block) && (cs->actual_size)) {	LOG_MSG("CMediaSample_GetSize(%p) called -> %d", This, ((CMediaSample*) This)->actual_size);	return cs->actual_size;    }    LOG_MSG("CMediaSample_GetSize(%p) called -> %d", This, ((CMediaSample*) This)->size);    return cs->size;}/** * \brief IMediaSample::GetTime (retrieves a stream time at wich sample sould start and finish) * * \param[in] This pointer to CMediaSample object * \param[out] pTimeStart pointer to variable that receives start time * \param[out] pTimeEnd pointer to variable that receives end time * * \return S_OK success * \return VFW_E_NO_STOP_TIME The sample has valid start time, but no stop time * \return VFW_E_SAMPLE_TIME_NOT_SET The sample is not time-stamped * * \remarks * Both values are relative to stream time * */static HRESULT STDCALL CMediaSample_GetTime(IMediaSample * This,					    /* [out] */ REFERENCE_TIME *pTimeStart,					    /* [out] */ REFERENCE_TIME *pTimeEnd){    if (pTimeStart)	*pTimeStart = ((CMediaSample*) This)->time_start;    if (pTimeEnd)	*pTimeEnd = ((CMediaSample*) This)->time_end;    LOG_MSG("CMediaSample_GetTime(%p) called (" LLD ") (" LLD ")", This,	pTimeStart ? *pTimeStart : -1LL, pTimeEnd ? *pTimeEnd : -1LL);    return 0;}/** * \brief IMediaSample::SetTime (sets a stream time at wich sample sould start and finish) * * \param[in] This pointer to CMediaSample object * \param[out] pTimeStart pointer to variable that contains start time * \param[out] pTimeEnd pointer to variable that contains end time * * \return S_OK success * \return apropriate error otherwise * * \remarks * Both values are relative to stream time * To invalidate the stream times set pTimeStart and pTimeEnd to NULL. this will cause * IMEdiaSample::GetTime to return VFW_E_SAMPLE_TIME_NOT_SET * */static HRESULT STDCALL CMediaSample_SetTime(IMediaSample * This,					    /* [in] */ REFERENCE_TIME *pTimeStart,					    /* [in] */ REFERENCE_TIME *pTimeEnd){    if (pTimeStart)	((CMediaSample*) This)->time_start = *pTimeStart;    if (pTimeEnd)	((CMediaSample*) This)->time_end = *pTimeEnd;    LOG_MSG("CMediaSample_SetTime(%p) called (" LLD ") (" LLD ")", This,	pTimeStart ? *pTimeStart : -1LL, pTimeEnd ? *pTimeEnd : -1LL);    return 0;}/** * \brief IMediaSample::IsSyncPoint (determines if start of this sample is sync point) * * \param[in] This pointer to CMediaSample object * * \return S_OK start of this sample is sync point * \return S_FALSE start of this sample is not sync point * * \remarks * If bTemporalCompression of AM_MEDIA_TYPE is FALSE, all samples are sync points. * */static HRESULT STDCALL CMediaSample_IsSyncPoint(IMediaSample * This){    LOG_MSG("CMediaSample_IsSyncPoint(%p) called", This);    if (((CMediaSample*)This)->isSyncPoint)	return 0;    return 1;}/** * \brief IMediaSample::SetSyncPoint (specifies if start of this sample is sync point) * * \param[in] This pointer to CMediaSample object * \param[in] bIsSyncPoint specifies whether this is sync point or not * * \return S_OK success * \return apropriate error code otherwise * */static HRESULT STDCALL CMediaSample_SetSyncPoint(IMediaSample * This,						 long bIsSyncPoint){    LOG_MSG("CMediaSample_SetSyncPoint(%p) called", This);    ((CMediaSample*)This)->isSyncPoint = bIsSyncPoint;    return 0;}/** * \brief IMediaSample::IsPreroll (determines if this sample is preroll sample) * * \param[in] This pointer to CMediaSample object * * \return S_OK if this sample is preroll sample * \return S_FALSE if this sample is not preroll sample * * \remarks * Preroll samples are processed but  not displayed. They are lokated in media stream * before displayable samples. * */static HRESULT STDCALL CMediaSample_IsPreroll(IMediaSample * This){    LOG_MSG("CMediaSample_IsPreroll(%p) called", This);    if (((CMediaSample*)This)->isPreroll)	return 0;//S_OK    return 1;//S_FALSE}/** * \brief IMediaSample::SetPreroll (specifies if this sample is preroll sample) * * \param[in] This pointer to CMediaSample object * \param[in] bIsPreroll specifies whether this sample is preroll sample or not * * \return S_OK success * \return apropriate error code otherwise * * \remarks * Preroll samples are processed but  not displayed. They are lokated in media stream * before displayable samples. * */static HRESULT STDCALL CMediaSample_SetPreroll(IMediaSample * This,					       long bIsPreroll){    LOG_MSG("CMediaSample_SetPreroll(%p) called", This);    ((CMediaSample*)This)->isPreroll=bIsPreroll;    return 0;}/** * \brief IMediaSample::GetActualDataLength (retrieves the length of valid data in the buffer)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合激情小说| 91久久国产最好的精华液| 久久99热这里只有精品| 免费成人在线播放| 另类综合日韩欧美亚洲| 精品一区二区三区欧美| 韩国精品主播一区二区在线观看 | 亚洲欧美另类在线| 成人欧美一区二区三区| 亚洲精品久久久蜜桃| 伊人夜夜躁av伊人久久| 一区二区三区四区亚洲| 亚洲成人综合网站| 日本在线不卡视频| 国产在线不卡视频| 国产精品亚洲а∨天堂免在线| 国产成人免费高清| 99在线热播精品免费| 91传媒视频在线播放| 欧美伦理视频网站| 精品国产免费人成电影在线观看四季 | 一区二区三区中文字幕电影| 亚洲综合久久久久| 裸体健美xxxx欧美裸体表演| 国产成人免费高清| 91蝌蚪国产九色| 欧美日韩国产一二三| 欧美videossexotv100| 国产亚洲综合在线| 一区二区三区欧美久久| 日韩成人午夜电影| 国产成人自拍高清视频在线免费播放| 国产91在线|亚洲| 欧美性猛片aaaaaaa做受| 欧美一区二区福利在线| 国产精品天干天干在观线| 亚洲午夜久久久| 精品一区二区三区在线视频| 91在线精品一区二区三区| 欧美日韩视频在线一区二区| 欧美精品一区二区三区蜜桃视频| 中文字幕五月欧美| 免费成人美女在线观看| 99视频精品免费视频| 欧美一级精品在线| 国产精品国产馆在线真实露脸| 亚洲电影一区二区| 国产成人精品一区二区三区四区| 一本色道久久综合精品竹菊| 欧美电影免费观看高清完整版在线观看 | 欧美丝袜丝交足nylons图片| 26uuu亚洲综合色| 亚洲综合在线视频| 国内一区二区视频| 日本高清无吗v一区| 久久婷婷成人综合色| 亚洲一区二区三区四区在线| 国产成人亚洲精品青草天美| 欧美日韩在线播放三区四区| 欧美激情一区二区三区四区| 五月激情六月综合| 97成人超碰视| 久久精品网站免费观看| 日本va欧美va精品发布| 日本精品一区二区三区四区的功能| 精品久久久网站| 亚洲国产人成综合网站| 91网站在线观看视频| 欧美tickle裸体挠脚心vk| 亚洲国产精品一区二区尤物区| 成人激情综合网站| 精品国产一区二区三区久久影院 | 午夜伊人狠狠久久| caoporm超碰国产精品| 久久女同互慰一区二区三区| 丝袜美腿高跟呻吟高潮一区| 91蜜桃网址入口| 久久精品视频一区二区三区| 日本欧美韩国一区三区| 欧美日韩中文字幕一区| 亚洲精品中文在线| 成人av在线网站| 日本一区二区三区四区在线视频| 裸体歌舞表演一区二区| 91精品在线麻豆| 亚洲va天堂va国产va久| 欧美性极品少妇| 亚洲综合免费观看高清完整版在线| 99久久精品免费| 国产精品视频一二三| 国产乱一区二区| 久久久久久久久蜜桃| 国产真实乱偷精品视频免| 日韩亚洲欧美高清| 秋霞国产午夜精品免费视频| 欧美日本视频在线| 视频一区欧美日韩| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲色图在线看| 99久久精品国产网站| 成人免费在线播放视频| 99精品欧美一区| 亚洲美女免费视频| 欧美无人高清视频在线观看| 亚洲一区二区三区视频在线播放| 91精品福利视频| 亚洲国产毛片aaaaa无费看| 欧美日韩国产色站一区二区三区| 亚洲综合一二三区| 欧美狂野另类xxxxoooo| 日本伊人精品一区二区三区观看方式| 在线不卡中文字幕播放| 免费久久精品视频| 久久久亚洲欧洲日产国码αv| 国产69精品一区二区亚洲孕妇 | 久久国产精品一区二区| 欧美成人bangbros| 国产在线播放一区二区三区| 国产日本欧美一区二区| 波多野结衣中文字幕一区二区三区| 国产精品青草久久| 色88888久久久久久影院按摩| 亚洲国产欧美在线人成| 欧美一级xxx| 国产精品伊人色| 亚洲精品午夜久久久| 91精品一区二区三区久久久久久| 精品一区二区久久| 国产精品网站在线观看| 在线观看视频一区二区| 久久国产夜色精品鲁鲁99| 日本一区二区三区四区在线视频 | 日韩欧美一级在线播放| 国产一区二区三区在线观看免费视频| 亚洲国产精品ⅴa在线观看| 一本色道久久综合狠狠躁的推荐| 亚洲va中文字幕| 久久精品人人做| 欧美性受xxxx黑人xyx| 老司机免费视频一区二区| 国产精品国产三级国产普通话99 | av毛片久久久久**hd| 婷婷六月综合亚洲| 国产欧美中文在线| 欧美日韩高清影院| 豆国产96在线|亚洲| 亚洲国产一区在线观看| 久久久电影一区二区三区| 色狠狠色噜噜噜综合网| 精品一区免费av| 亚洲一区在线观看网站| 久久久噜噜噜久久中文字幕色伊伊| 色综合久久天天| 看片的网站亚洲| 亚洲人123区| wwwwxxxxx欧美| 欧美日韩二区三区| www.爱久久.com| 日本不卡一二三| 亚洲免费在线看| 26uuu色噜噜精品一区二区| 欧美性大战久久久久久久| 高清beeg欧美| 日本特黄久久久高潮| 一区二区三区在线观看视频| 国产亚洲美州欧州综合国| 4438成人网| 色综合天天性综合| 国产精品中文字幕日韩精品| 日日夜夜一区二区| 综合分类小说区另类春色亚洲小说欧美 | 91精品国产色综合久久不卡蜜臀| 91色在线porny| 成人午夜视频免费看| 日韩精品91亚洲二区在线观看| 1区2区3区欧美| 欧美激情在线一区二区三区| 精品久久久久久久久久久久包黑料 | 精品国产1区二区| 欧美精品一二三区| 欧美中文一区二区三区| k8久久久一区二区三区| 国产精品一区在线| 激情av综合网| 美女视频黄 久久| 日韩成人精品在线| 婷婷综合在线观看| 亚洲午夜国产一区99re久久| 亚洲人成在线播放网站岛国| 国产免费成人在线视频| 久久久久久亚洲综合| 337p粉嫩大胆噜噜噜噜噜91av| 欧美一区午夜视频在线观看| 欧美性欧美巨大黑白大战| 日本高清无吗v一区| 在线亚洲高清视频| 在线区一区二视频| 在线视频观看一区| 欧美午夜片在线看| 在线观看亚洲精品视频|