⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hvviddec.cpp

📁 linux下的一款播放器
💻 CPP
📖 第 1 页 / 共 2 页
字号:
 * *********************************************************************/HX_RESULTVvVideoDecoderFilter::DecideBufferSize(void){	return( HXR_OK );}/********************************************************************** * *	StartStreaming * *	PARAMETERS:		None * *	RETURNS:		 * *		HRESULT:	Returns NOERROR if this function is successful, *					otherwise returns the error that occurred. * *	DESCRIPTION:	 * *		This function gets called by the base filter classes whenever *		this filter is in the process of switching to active mode, *		paused or running. * *********************************************************************/HX_RESULTVvVideoDecoderFilter::StartStreaming(	const HXVA_Image_Format &src_fmt,    const HXVA_Image_Format &dst_fmt	) {// this call is made to lock the critical section guarding this filter // critical sections need to be locked in order to protect data during // multithreading operations//CAutoLock	cFilterLock( &m_csFilter );	HX_RESULT	lResult	= HXR_OK;	// checks the return of called functions	// try to load the video codec into global memory	lResult	= TheCodec().Load();	if ( lResult != HXR_OK )				// if it could not be loaded		return( HXR_FAIL );			// return an error	TheCodec().Enable();			// enable the video codec for use		// GNEEL: SEND DOWN FID	m_pcVideoCodec = TheCodec().OpenInstance( );	if ( NULL == m_pcVideoCodec )	// if the video codec instance could not be created		return( HXR_OUTOFMEMORY );	// return an out of memory error	m_input_format = src_fmt;	m_output_format = dst_fmt;	return( HXR_OK );}/********************************************************************** * *	StopStreaming * *	PARAMETERS:		None * *	RETURNS:		 * *		HRESULT:	Returns NOERROR if this function is successful, *					otherwise returns the error that occurred. * *	DESCRIPTION:	 * *		This function gets called by the base filter classes whenever *		this transform filter is in the process of leaving active mode *		and entering stopped mode. * *********************************************************************/HX_RESULTVvVideoDecoderFilter::StopStreaming( void ){// this call is made to lock the critical sections guarding this filter // and receiving thread; critical sections need to be locked in order to// protect data during multithreading operations//CAutoLock	cFilterLock( &m_csFilter ),//			cReceiveLock( &m_csReceive );	if ( NULL == m_pcVideoCodec )		return( HXR_FAIL );	//end compression before deleting the pointer, otherwise codec stays open	HX_RESULT	lResult	= HXR_OK;	// checks the return of called functions	if ( m_bStartDecompress == TRUE )	{		lResult = m_pcVideoCodec->DecompressEnd();		if ( lResult == HXR_OK )	{			m_bStartDecompress = FALSE;		}	}	// terminate the video codec instance to remove it from memory	TheCodec().CloseInstance( (HXH263CodecInstance*) m_pcVideoCodec );	m_pcVideoCodec	= NULL;	TheCodec().Disable();	TheCodec().Free();	return( HXR_OK );}/********************************************************************** * *	EndOfStream * *	PARAMETERS:		None * *	RETURNS:		 * *		HRESULT:	Returns NOERROR if this function is successful, *					otherwise returns the error that occurred. * *	DESCRIPTION:	 * *		This function gets called from the output pin whenever *		the output data has reached the end of the stream.  If this *		function is overridden, the end-of-stream notification must *		be passed to the next filter. * *********************************************************************/HX_RESULTVvVideoDecoderFilter::EndOfStream( void ){// this call is made to lock the critical section guarding the receiving // thread; critical sections need to be locked in order to protect data // during multithreading operations//CAutoLock cReceiveLock(&m_csReceive);    if ( NULL == m_pcVideoCodec ) 	{        return HXR_FAIL;    }	// return the end-of-stream notification to the next filter that	// is connected to this filter    return HXR_OK;}/********************************************************************** * *	EndFlush * *	PARAMETERS:		None * *	RETURNS:		 * *		HRESULT:	Returns NOERROR if this function is successful, *					otherwise returns the error that occurred. * *	DESCRIPTION:	 * *		This function gets called from the input pin whenever the *		pin is leaving the flushing state.  If this function is  *		overridden, the notification must be passed to the next filter. * *********************************************************************/HX_RESULTVvVideoDecoderFilter::EndFlush( void ){// this call is made to lock the critical section guarding the receiving // thread; critical sections need to be locked in order to protect data // during multithreading operations//CAutoLock cReceiveLock(&m_csReceive);	// return the flushing notification to the next filter that is	// connected to this filter    return HXR_OK;}/********************************************************************** * *	GetMediaType * *	PARAMETERS:		 * *		nPosition:	the position of the media type in the media type list *		pcMediaType:the returned output pin media type * *	RETURNS:		 * *		HRESULT:	Returns NOERROR if this function is successful, *					otherwise returns the error that occurred. * *	DESCRIPTION:	 * *		This function is called by the base filter classes to supply *		one of the media types that the output pin supports based on *		the position of the media type, nPosition, in the media type list. * *********************************************************************/HX_RESULTVvVideoDecoderFilter::GetMediaType( void ){    return( HXR_OK );}/********************************************************************** * *	CheckInputType * *	PARAMETERS:		 * *		pcInMediaType:	the media type associated with the input pin * *	RETURNS:		 * *		HRESULT:		Returns NOERROR if this function is successful, *						otherwise returns the error that occurred. * *	DESCRIPTION:	 * *		This function gets called by the base filter classes to  *		verify that the input pin supports the input media type *		and to propose an output pin media type based on the  *		input pin media type. * *********************************************************************/HX_RESULTVvVideoDecoderFilter::CheckInputType( void ){	return HXR_OK;}/********************************************************************** * *	CheckTransform * *	PARAMETERS:		 * *		pcInMediaType:	the media type associated with the input pin *		pcOutMediaType:	the media type associated with the output pin * *	RETURNS:		 * *		HRESULT:		Returns NOERROR if this function is successful, *						otherwise returns the error that occurred. * *	DESCRIPTION:	 * *		This function gets called by the base filter classes to verify *		that th input and output pins support their media types * *********************************************************************/HX_RESULTVvVideoDecoderFilter::CheckTransform( void ){    return HXR_OK;}//*** end VvVideoDecoderFilter class ***

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -