Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2010-07-02 15:03:03 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-07-02 15:03:03 +0400
commita4d5c4b972568aff96553c71d0f23db2c49b9c5b (patch)
tree4cd919b2c6379ffe198c816cacc4c6610eb96070 /src/filters/transform/MPCVideoDec
parentabc5c5306103d6bc0796d64e47b69a8ef70c9b0b (diff)
whitespace cleanup
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2099 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/transform/MPCVideoDec')
-rw-r--r--src/filters/transform/MPCVideoDec/CpuId.cpp10
-rw-r--r--src/filters/transform/MPCVideoDec/CpuId.h1
-rw-r--r--src/filters/transform/MPCVideoDec/DXVADecoder.cpp24
-rw-r--r--src/filters/transform/MPCVideoDec/DXVADecoder.h2
-rw-r--r--src/filters/transform/MPCVideoDec/DXVADecoderH264.cpp22
-rw-r--r--src/filters/transform/MPCVideoDec/DXVADecoderMpeg2.cpp20
-rw-r--r--src/filters/transform/MPCVideoDec/DXVADecoderVC1.cpp2
-rw-r--r--src/filters/transform/MPCVideoDec/DXVADecoderVC1.h8
-rw-r--r--src/filters/transform/MPCVideoDec/FfmpegContext.c100
-rw-r--r--src/filters/transform/MPCVideoDec/FfmpegContext.h8
-rw-r--r--src/filters/transform/MPCVideoDec/MPCAudioDecFilter.cpp9
-rw-r--r--src/filters/transform/MPCVideoDec/MPCAudioDecFilter.h8
-rw-r--r--src/filters/transform/MPCVideoDec/MPCFfmpegDec.cpp8
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp783
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h22
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.cpp25
-rw-r--r--src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.h10
-rw-r--r--src/filters/transform/MPCVideoDec/TlibavcodecExt.h3
-rw-r--r--src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.cpp167
-rw-r--r--src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.h45
-rw-r--r--src/filters/transform/MPCVideoDec/VideoDecOutputPin.cpp4
-rw-r--r--src/filters/transform/MPCVideoDec/VideoDecOutputPin.h2
-rw-r--r--src/filters/transform/MPCVideoDec/stdafx.h3
23 files changed, 631 insertions, 655 deletions
diff --git a/src/filters/transform/MPCVideoDec/CpuId.cpp b/src/filters/transform/MPCVideoDec/CpuId.cpp
index 55895a292..8b09ebe04 100644
--- a/src/filters/transform/MPCVideoDec/CpuId.cpp
+++ b/src/filters/transform/MPCVideoDec/CpuId.cpp
@@ -162,7 +162,7 @@ char szFeatures[256];
m_CPUInfo[0] = -1;
m_CPUInfoEx[0] = -1;
- m_CPUAMDInfo[0] = -1;
+ m_CPUAMDInfo[0] = -1;
__cpuid(m_CPUInfo, 0);
nHighestFeature = (unsigned)m_CPUInfo[0];
@@ -171,10 +171,10 @@ char szFeatures[256];
nHighestFeatureEx = (unsigned)nBuff[0];
m_nDSPFlags = 0;
- if (m_CPUInfo[3] & CPUID_MMX) m_nDSPFlags|=MPC_MM_MMX;
- if (m_CPUInfo[3] & CPUID_SSE) m_nDSPFlags|=MPC_MM_SSE;
- if (m_CPUInfo[3] & CPUID_SSE2) m_nDSPFlags|=MPC_MM_SSE2;
- if (m_CPUInfo[2] & CPUID_SSE3) m_nDSPFlags|=MPC_MM_SSE3;
+ if (m_CPUInfo[3] & CPUID_MMX) m_nDSPFlags|=MPC_MM_MMX;
+ if (m_CPUInfo[3] & CPUID_SSE) m_nDSPFlags|=MPC_MM_SSE;
+ if (m_CPUInfo[3] & CPUID_SSE2) m_nDSPFlags|=MPC_MM_SSE2;
+ if (m_CPUInfo[2] & CPUID_SSE3) m_nDSPFlags|=MPC_MM_SSE3;
switch (m_nType)
{
diff --git a/src/filters/transform/MPCVideoDec/CpuId.h b/src/filters/transform/MPCVideoDec/CpuId.h
index 524ff9e4b..d8e356f49 100644
--- a/src/filters/transform/MPCVideoDec/CpuId.h
+++ b/src/filters/transform/MPCVideoDec/CpuId.h
@@ -56,4 +56,3 @@ private :
int m_nCPUFeatures;
PROCESSOR_TYPE m_nType;
};
-
diff --git a/src/filters/transform/MPCVideoDec/DXVADecoder.cpp b/src/filters/transform/MPCVideoDec/DXVADecoder.cpp
index 7b53a2676..fa359f275 100644
--- a/src/filters/transform/MPCVideoDec/DXVADecoder.cpp
+++ b/src/filters/transform/MPCVideoDec/DXVADecoder.cpp
@@ -96,7 +96,7 @@ void CDXVADecoder::Init(CMPCVideoDecFilter* pFilter, DXVAMode nMode, int nPicEnt
// === Public functions
void CDXVADecoder::AllocExecuteParams (int nSize)
{
- m_ExecuteParams.pCompressedBuffers = DNew DXVA2_DecodeBufferDesc[nSize];
+ m_ExecuteParams.pCompressedBuffers = DNew DXVA2_DecodeBufferDesc[nSize];
for (int i=0; i<nSize; i++)
memset (&m_ExecuteParams.pCompressedBuffers[i], 0, sizeof(DXVA2_DecodeBufferDesc));
@@ -141,7 +141,7 @@ HRESULT CDXVADecoder::ConfigureDXVA1()
if (m_pAMVideoAccelerator)
{
- memset (&ConfigRequested, 0, sizeof(ConfigRequested));
+ memset (&ConfigRequested, 0, sizeof(ConfigRequested));
ConfigRequested.guidConfigBitstreamEncryption = DXVA_NoEncrypt;
ConfigRequested.guidConfigMBcontrolEncryption = DXVA_NoEncrypt;
ConfigRequested.guidConfigResidDiffEncryption = DXVA_NoEncrypt;
@@ -214,7 +214,7 @@ CDXVADecoder* CDXVADecoder::CreateDecoder (CMPCVideoDecFilter* pFilter, IDirectX
else if (*guidDecoder == DXVA2_ModeMPEG2_VLD)
pDecoder = DNew CDXVADecoderMpeg2 (pFilter, pDirectXVideoDec, MPEG2_VLD, nPicEntryNumber, pDXVA2Config);
else
- ASSERT (FALSE); // Unknown decoder !!
+ ASSERT (FALSE); // Unknown decoder !!
return pDecoder;
}
@@ -416,7 +416,7 @@ HRESULT CDXVADecoder::FindFreeDXVA1Buffer(DWORD dwTypeIndex, DWORD& dwBufferInde
dwBufferIndex = 0; //(dwBufferIndex + 1) % m_ComBufferInfo[DXVA_PICTURE_DECODE_BUFFER].dwNumCompBuffers;
DO_DXVA_PENDING_LOOP (m_pAMVideoAccelerator->QueryRenderStatus ((DWORD)-1, dwBufferIndex, 0));
-
+
return hr;
}
@@ -503,8 +503,8 @@ HRESULT CDXVADecoder::EndFrame(int nSurfaceIndex)
// === Picture store functions
bool CDXVADecoder::AddToStore (int nSurfaceIndex, IMediaSample* pSample, bool bRefPicture,
- REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, bool bIsField,
- FF_FIELD_TYPE nFieldType, FF_SLICE_TYPE nSliceType, int nCodecSpecific)
+ REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, bool bIsField,
+ FF_FIELD_TYPE nFieldType, FF_SLICE_TYPE nSliceType, int nCodecSpecific)
{
if (bIsField && (m_nFieldSurface == -1))
{
@@ -536,7 +536,7 @@ bool CDXVADecoder::AddToStore (int nSurfaceIndex, IMediaSample* pSample, bool bR
m_pPictureStore[nSurfaceIndex].n1FieldType = nFieldType;
m_pPictureStore[nSurfaceIndex].nCodecSpecific = nCodecSpecific;
}
-
+
m_nFieldSurface = -1;
m_nWaitingPics++;
return true;
@@ -729,11 +729,11 @@ HRESULT CDXVADecoder::GetFreeSurfaceIndex(int& nSurfaceIndex, IMediaSample** ppS
void CDXVADecoder::FreePictureSlot (int nSurfaceIndex)
{
// TRACE ("Free : %d\n", nSurfaceIndex);
- m_pPictureStore[nSurfaceIndex].dwDisplayCount = m_dwDisplayCount++;
- m_pPictureStore[nSurfaceIndex].bInUse = false;
- m_pPictureStore[nSurfaceIndex].bDisplayed = false;
- m_pPictureStore[nSurfaceIndex].pSample = NULL;
- m_pPictureStore[nSurfaceIndex].nCodecSpecific = -1;
+ m_pPictureStore[nSurfaceIndex].dwDisplayCount = m_dwDisplayCount++;
+ m_pPictureStore[nSurfaceIndex].bInUse = false;
+ m_pPictureStore[nSurfaceIndex].bDisplayed = false;
+ m_pPictureStore[nSurfaceIndex].pSample = NULL;
+ m_pPictureStore[nSurfaceIndex].nCodecSpecific = -1;
m_nWaitingPics--;
}
diff --git a/src/filters/transform/MPCVideoDec/DXVADecoder.h b/src/filters/transform/MPCVideoDec/DXVADecoder.h
index 19d874ab3..c919d8618 100644
--- a/src/filters/transform/MPCVideoDec/DXVADecoder.h
+++ b/src/filters/transform/MPCVideoDec/DXVADecoder.h
@@ -92,7 +92,7 @@ public :
virtual void CopyBitstream(BYTE* pDXVABuffer, BYTE* pBuffer, UINT& nSize);
virtual void Flush();
HRESULT ConfigureDXVA1();
-
+
static CDXVADecoder* CreateDecoder (CMPCVideoDecFilter* pFilter, IAMVideoAccelerator* pAMVideoAccelerator, const GUID* guidDecoder, int nPicEntryNumber);
static CDXVADecoder* CreateDecoder (CMPCVideoDecFilter* pFilter, IDirectXVideoDecoder* pDirectXVideoDec, const GUID* guidDecoder, int nPicEntryNumber, DXVA2_ConfigPictureDecode* pDXVA2Config);
diff --git a/src/filters/transform/MPCVideoDec/DXVADecoderH264.cpp b/src/filters/transform/MPCVideoDec/DXVADecoderH264.cpp
index acf57627c..c219a86ae 100644
--- a/src/filters/transform/MPCVideoDec/DXVADecoderH264.cpp
+++ b/src/filters/transform/MPCVideoDec/DXVADecoderH264.cpp
@@ -55,10 +55,10 @@ CDXVADecoderH264::~CDXVADecoderH264()
void CDXVADecoderH264::Init()
{
memset (&m_DXVAPicParams, 0, sizeof (m_DXVAPicParams));
- memset (&m_DXVAPicParams, 0, sizeof (DXVA_PicParams_H264));
- memset (&m_pSliceLong, 0, sizeof (DXVA_Slice_H264_Long) *MAX_SLICES);
- memset (&m_pSliceShort, 0, sizeof (DXVA_Slice_H264_Short)*MAX_SLICES);
-
+ memset (&m_DXVAPicParams, 0, sizeof (DXVA_PicParams_H264));
+ memset (&m_pSliceLong, 0, sizeof (DXVA_Slice_H264_Long) *MAX_SLICES);
+ memset (&m_pSliceShort, 0, sizeof (DXVA_Slice_H264_Short)*MAX_SLICES);
+
m_DXVAPicParams.MbsConsecutiveFlag = 1;
if(m_pFilter->GetPCIVendor() == PCIV_Intel)
m_DXVAPicParams.Reserved16Bits = 0x534c;
@@ -114,10 +114,10 @@ void CDXVADecoderH264::CopyBitstream(BYTE* pDXVABuffer, BYTE* pBuffer, UINT& nSi
case NALU_TYPE_IDR:
// For AVC1, put startcode 0x000001
pDXVABuffer[0]=pDXVABuffer[1]=0;pDXVABuffer[2]=1;
-
+
// Copy NALU
memcpy (pDXVABuffer+3, Nalu.GetDataBuffer(), Nalu.GetDataLength());
-
+
// Complete with zero padding (buffer size should be a multiple of 128)
nDummy = 128 - ((Nalu.GetDataLength()+3) %128);
pDXVABuffer += Nalu.GetDataLength() + 3;
@@ -129,7 +129,7 @@ void CDXVADecoderH264::CopyBitstream(BYTE* pDXVABuffer, BYTE* pBuffer, UINT& nSi
m_pSliceShort[nSlices].BSNALunitDataLocation = nSize;
m_pSliceShort[nSlices].SliceBytesInBuffer = nDxvaNalLength;
- nSize += nDxvaNalLength;
+ nSize += nDxvaNalLength;
nSlices++;
break;
}
@@ -146,10 +146,10 @@ void CDXVADecoderH264::CopyBitstream(BYTE* pDXVABuffer, BYTE* pBuffer, UINT& nSi
case NALU_TYPE_IDR:
// For AVC1, put startcode 0x000001
pDXVABuffer[0]=pDXVABuffer[1]=0;pDXVABuffer[2]=1;
-
+
// Copy NALU
memcpy (pDXVABuffer+3, Nalu.GetDataBuffer(), Nalu.GetDataLength());
-
+
// Update slice control buffer
nDxvaNalLength = Nalu.GetDataLength()+3;
m_pSliceShort[nSlices].BSNALunitDataLocation = nSize;
@@ -234,12 +234,12 @@ HRESULT CDXVADecoderH264::DecodeFrame (BYTE* pDataIn, UINT nSize, REFERENCE_TIME
if (m_bFlushed && !m_DXVAPicParams.IntraPicFlag)
return S_FALSE;
-
+
CHECK_HR (GetFreeSurfaceIndex (nSurfaceIndex, &pSampleToDeliver, rtStart, rtStop));
FFH264SetCurrentPicture (nSurfaceIndex, &m_DXVAPicParams, m_pFilter->GetAVCtx());
CHECK_HR (BeginFrame(nSurfaceIndex, pSampleToDeliver));
-
+
m_DXVAPicParams.StatusReportFeedbackNumber++;
// TRACE("CDXVADecoderH264 : Decode frame %u\n", m_DXVAPicParams.StatusReportFeedbackNumber);
diff --git a/src/filters/transform/MPCVideoDec/DXVADecoderMpeg2.cpp b/src/filters/transform/MPCVideoDec/DXVADecoderMpeg2.cpp
index 7070b70ee..44d3b73f6 100644
--- a/src/filters/transform/MPCVideoDec/DXVADecoderMpeg2.cpp
+++ b/src/filters/transform/MPCVideoDec/DXVADecoderMpeg2.cpp
@@ -38,14 +38,14 @@ extern "C"
CDXVADecoderMpeg2::CDXVADecoderMpeg2 (CMPCVideoDecFilter* pFilter, IAMVideoAccelerator* pAMVideoAccelerator, DXVAMode nMode, int nPicEntryNumber)
- : CDXVADecoder (pFilter, pAMVideoAccelerator, nMode, nPicEntryNumber)
+ : CDXVADecoder (pFilter, pAMVideoAccelerator, nMode, nPicEntryNumber)
{
Init();
}
CDXVADecoderMpeg2::CDXVADecoderMpeg2 (CMPCVideoDecFilter* pFilter, IDirectXVideoDecoder* pDirectXVideoDec, DXVAMode nMode, int nPicEntryNumber, DXVA2_ConfigPictureDecode* pDXVA2Config)
- : CDXVADecoder (pFilter, pDirectXVideoDec, nMode, nPicEntryNumber, pDXVA2Config)
+ : CDXVADecoder (pFilter, pDirectXVideoDec, nMode, nPicEntryNumber, pDXVA2Config)
{
Init();
}
@@ -58,14 +58,14 @@ CDXVADecoderMpeg2::~CDXVADecoderMpeg2(void)
void CDXVADecoderMpeg2::Init()
{
- memset (&m_PictureParams, 0, sizeof(m_PictureParams));
- memset (&m_SliceInfo, 0, sizeof(m_SliceInfo));
- memset (&m_QMatrixData, 0, sizeof(m_QMatrixData));
+ memset (&m_PictureParams, 0, sizeof(m_PictureParams));
+ memset (&m_SliceInfo, 0, sizeof(m_SliceInfo));
+ memset (&m_QMatrixData, 0, sizeof(m_QMatrixData));
- m_nMaxWaiting = 5;
- m_wRefPictureIndex[0] = NO_REF_FRAME;
- m_wRefPictureIndex[1] = NO_REF_FRAME;
- m_nSliceCount = 0;
+ m_nMaxWaiting = 5;
+ m_wRefPictureIndex[0] = NO_REF_FRAME;
+ m_wRefPictureIndex[1] = NO_REF_FRAME;
+ m_nSliceCount = 0;
switch (GetMode())
{
@@ -145,7 +145,7 @@ void CDXVADecoderMpeg2::UpdatePictureParams(int nSurfaceIndex)
// Shall be 0 if bConfigResidDiffHost is 0 or if BPP > 8
if (cpd->ConfigResidDiffHost == 0 || m_PictureParams.bBPPminus1 > 7)
- m_PictureParams.bPicSpatialResid8 = 0;
+ m_PictureParams.bPicSpatialResid8 = 0;
else
{
if (m_PictureParams.bBPPminus1 == 7 && m_PictureParams.bPicIntra && cpd->ConfigResidDiffHost)
diff --git a/src/filters/transform/MPCVideoDec/DXVADecoderVC1.cpp b/src/filters/transform/MPCVideoDec/DXVADecoderVC1.cpp
index d126ac3e8..a8a32a074 100644
--- a/src/filters/transform/MPCVideoDec/DXVADecoderVC1.cpp
+++ b/src/filters/transform/MPCVideoDec/DXVADecoderVC1.cpp
@@ -124,7 +124,7 @@ HRESULT CDXVADecoderVC1::DecodeFrame (BYTE* pDataIn, UINT nSize, REFERENCE_TIME
m_PictureParams.wBackwardRefPictureIndex = (m_PictureParams.bPicBackwardPrediction == 1) ? m_wRefPictureIndex[1] : NO_REF_FRAME;
m_PictureParams.bPic4MVallowed = (m_PictureParams.wBackwardRefPictureIndex == NO_REF_FRAME && m_PictureParams.bPicStructure == 3) ? 1 : 0;
- m_PictureParams.bPicDeblockConfined |= (m_PictureParams.wBackwardRefPictureIndex == NO_REF_FRAME) ? 0x04 : 0;
+ m_PictureParams.bPicDeblockConfined |= (m_PictureParams.wBackwardRefPictureIndex == NO_REF_FRAME) ? 0x04 : 0;
m_PictureParams.bPicScanMethod++; // Use for status reporting sections 3.8.1 and 3.8.2
diff --git a/src/filters/transform/MPCVideoDec/DXVADecoderVC1.h b/src/filters/transform/MPCVideoDec/DXVADecoderVC1.h
index 379d226bf..7bd953892 100644
--- a/src/filters/transform/MPCVideoDec/DXVADecoderVC1.h
+++ b/src/filters/transform/MPCVideoDec/DXVADecoderVC1.h
@@ -26,7 +26,7 @@
#include <dxva.h>
#include "DXVADecoder.h"
-class CDXVADecoderVC1 : public CDXVADecoder
+class CDXVADecoderVC1 : public CDXVADecoder
{
public:
CDXVADecoderVC1 (CMPCVideoDecFilter* pFilter, IAMVideoAccelerator* pAMVideoAccelerator, DXVAMode nMode, int nPicEntryNumber);
@@ -66,10 +66,10 @@ public:
VC1_SCAN_ZIGZAG = 0,
VC1_SCAN_ALTERNATE_VERTICAL = 1,
VC1_SCAN_ALTERNATE_HORIZONTAL = 2,
- VC1_SCAN_ARBITRARY = 3 // Use when bConfigHostInverseScan = 1
+ VC1_SCAN_ARBITRARY = 3 // Use when bConfigHostInverseScan = 1
} VC1_PIC_SCAN_METHOD;
- typedef enum // Values for bPicDeblockConfined when bConfigBitstreamRaw = 1
+ typedef enum // Values for bPicDeblockConfined when bConfigBitstreamRaw = 1
{
VC1_EXTENDED_DMV = 0x0001,
VC1_PSF = 0x0002,
@@ -81,7 +81,7 @@ public:
VC1_POSTPROCFLAG = 0x0080
} VC1_DEBLOCK_CONFINED;
- typedef enum // Values for bPicSpatialResid8
+ typedef enum // Values for bPicSpatialResid8
{
VC1_VSTRANSFORM = 0x0001,
VC1_DQUANT = 0x0002,
diff --git a/src/filters/transform/MPCVideoDec/FfmpegContext.c b/src/filters/transform/MPCVideoDec/FfmpegContext.c
index a55bf92a4..64ce837f7 100644
--- a/src/filters/transform/MPCVideoDec/FfmpegContext.c
+++ b/src/filters/transform/MPCVideoDec/FfmpegContext.c
@@ -1,5 +1,3 @@
-
-
/*
* $Id$
*
@@ -95,8 +93,8 @@ char* GetFFMpegPictureType(int nType)
inline MpegEncContext* GetMpegEncContext(struct AVCodecContext* pAVCtx)
{
- Mpeg1Context* s1;
- MpegEncContext* s = NULL;
+ Mpeg1Context* s1;
+ MpegEncContext* s = NULL;
switch (pAVCtx->codec_id)
{
@@ -278,7 +276,7 @@ HRESULT FFH264BuildPicParams (DXVA_PicParams_H264* pDXVAPicParams, DXVA_Qmatrix_
H264Context* h = (H264Context*) pAVCtx->priv_data;
SPS* cur_sps;
PPS* cur_pps;
- MpegEncContext* const s = &h->s;
+ MpegEncContext* const s = &h->s;
int field_pic_flag;
HRESULT hr = E_FAIL;
@@ -292,23 +290,23 @@ HRESULT FFH264BuildPicParams (DXVA_PicParams_H264* pDXVAPicParams, DXVA_Qmatrix_
*nFieldType = h->s.picture_structure;
if (h->sps.pic_struct_present_flag)
{
- switch (h->sei_pic_struct)
- {
- case SEI_PIC_STRUCT_TOP_FIELD:
- case SEI_PIC_STRUCT_TOP_BOTTOM:
- case SEI_PIC_STRUCT_TOP_BOTTOM_TOP:
+ switch (h->sei_pic_struct)
+ {
+ case SEI_PIC_STRUCT_TOP_FIELD:
+ case SEI_PIC_STRUCT_TOP_BOTTOM:
+ case SEI_PIC_STRUCT_TOP_BOTTOM_TOP:
*nFieldType = PICT_TOP_FIELD;
- break;
- case SEI_PIC_STRUCT_BOTTOM_FIELD:
- case SEI_PIC_STRUCT_BOTTOM_TOP:
- case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM:
+ break;
+ case SEI_PIC_STRUCT_BOTTOM_FIELD:
+ case SEI_PIC_STRUCT_BOTTOM_TOP:
+ case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM:
*nFieldType = PICT_BOTTOM_FIELD;
- break;
- case SEI_PIC_STRUCT_FRAME_DOUBLING:
- case SEI_PIC_STRUCT_FRAME_TRIPLING:
- case SEI_PIC_STRUCT_FRAME:
+ break;
+ case SEI_PIC_STRUCT_FRAME_DOUBLING:
+ case SEI_PIC_STRUCT_FRAME_TRIPLING:
+ case SEI_PIC_STRUCT_FRAME:
*nFieldType = PICT_FRAME;
- break;
+ break;
}
}
@@ -419,16 +417,16 @@ void FFH264UpdateRefFramesList (DXVA_PicParams_H264* pDXVAPicParams, struct AVCo
for(i=0; i<16; i++)
{
- if (i < h->short_ref_count)
+ if (i < h->short_ref_count)
{
// Short list reference frames
- pic = h->short_ref[h->short_ref_count - i - 1];
+ pic = h->short_ref[h->short_ref_count - i - 1];
AssociatedFlag = pic->long_ref != 0;
}
- else if (i >= h->short_ref_count && i < h->long_ref_count)
+ else if (i >= h->short_ref_count && i < h->long_ref_count)
{
// Long list reference frames
- pic = h->short_ref[h->short_ref_count + h->long_ref_count - i - 1];
+ pic = h->short_ref[h->short_ref_count + h->long_ref_count - i - 1];
AssociatedFlag = 1;
}
else
@@ -459,7 +457,7 @@ void FFH264UpdateRefFramesList (DXVA_PicParams_H264* pDXVAPicParams, struct AVCo
pDXVAPicParams->RefFrameList[i].AssociatedFlag = AssociatedFlag;
pDXVAPicParams->RefFrameList[i].Index7Bits = (UCHAR)pic->opaque;
- }
+ }
else
{
pDXVAPicParams->FrameNumList[i] = 0;
@@ -497,7 +495,7 @@ BOOL FFH264IsRefFrameInUse (int nFrameNum, struct AVCodecContext* pAVCtx)
void FF264UpdateRefFrameSliceLong(DXVA_PicParams_H264* pDXVAPicParams, DXVA_Slice_H264_Long* pSlice, struct AVCodecContext* pAVCtx)
{
H264Context* h = (H264Context*) pAVCtx->priv_data;
- MpegEncContext* const s = &h->s;
+ MpegEncContext* const s = &h->s;
HRESULT hr = E_FAIL;
unsigned int i,j,k;
@@ -514,15 +512,15 @@ void FF264UpdateRefFrameSliceLong(DXVA_PicParams_H264* pDXVAPicParams, DXVA_Slic
{
if(h->ref_count[0] > 0){
for(i=0; i < h->ref_count[0]; i++){
- pSlice->RefPicList[0][i].Index7Bits = FFH264FindRefFrameIndex (h->ref_list[0][i].frame_num, pDXVAPicParams);
- pSlice->RefPicList[0][i].AssociatedFlag = 0;
- if((h->s.picture_structure != PICT_FRAME)){
- if((h->sei_pic_struct == SEI_PIC_STRUCT_BOTTOM_FIELD) ||
- (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM) ||
- (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM_TOP)){
- pSlice->RefPicList[0][i].AssociatedFlag = 1;
- }
- }
+ pSlice->RefPicList[0][i].Index7Bits = FFH264FindRefFrameIndex (h->ref_list[0][i].frame_num, pDXVAPicParams);
+ pSlice->RefPicList[0][i].AssociatedFlag = 0;
+ if((h->s.picture_structure != PICT_FRAME)){
+ if((h->sei_pic_struct == SEI_PIC_STRUCT_BOTTOM_FIELD) ||
+ (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM) ||
+ (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM_TOP)){
+ pSlice->RefPicList[0][i].AssociatedFlag = 1;
+ }
+ }
}
}
}
@@ -533,15 +531,15 @@ void FF264UpdateRefFrameSliceLong(DXVA_PicParams_H264* pDXVAPicParams, DXVA_Slic
{
if(h->ref_count[1] > 0){
for(i=0; i < h->ref_count[1]; i++){
- pSlice->RefPicList[1][i].Index7Bits = FFH264FindRefFrameIndex (h->ref_list[1][i].frame_num, pDXVAPicParams);
- pSlice->RefPicList[1][i].AssociatedFlag = 0;
- if((h->s.picture_structure != PICT_FRAME)){
- if((h->sei_pic_struct == SEI_PIC_STRUCT_BOTTOM_FIELD) ||
- (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM) ||
- (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM_TOP)){
- pSlice->RefPicList[1][i].AssociatedFlag = 1;
- }
- }
+ pSlice->RefPicList[1][i].Index7Bits = FFH264FindRefFrameIndex (h->ref_list[1][i].frame_num, pDXVAPicParams);
+ pSlice->RefPicList[1][i].AssociatedFlag = 0;
+ if((h->s.picture_structure != PICT_FRAME)){
+ if((h->sei_pic_struct == SEI_PIC_STRUCT_BOTTOM_FIELD) ||
+ (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM) ||
+ (h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM_TOP)){
+ pSlice->RefPicList[1][i].AssociatedFlag = 1;
+ }
+ }
}
}
}
@@ -556,7 +554,7 @@ void FF264UpdateRefFrameSliceLong(DXVA_PicParams_H264* pDXVAPicParams, DXVA_Slic
}
if(h->slice_type == FF_P_TYPE || h->slice_type == FF_I_TYPE ||
- h->slice_type ==FF_SP_TYPE || h->slice_type == FF_SI_TYPE)
+ h->slice_type ==FF_SP_TYPE || h->slice_type == FF_SI_TYPE)
{
for(i = 0; i < 16; i++)
pSlice->RefPicList[1][i].bPicEntry = 0xff;
@@ -646,8 +644,8 @@ HRESULT FFMpeg2DecodeFrame (DXVA_PictureParameters* pPicParams, DXVA_QmatrixData
{
int i;
int got_picture = 0;
- Mpeg1Context* s1 = (Mpeg1Context*)pAVCtx->priv_data;
- MpegEncContext* s = (MpegEncContext*)&s1->mpeg_enc_ctx;
+ Mpeg1Context* s1 = (Mpeg1Context*)pAVCtx->priv_data;
+ MpegEncContext* s = (MpegEncContext*)&s1->mpeg_enc_ctx;
if (pBuffer)
{
@@ -703,7 +701,7 @@ HRESULT FFMpeg2DecodeFrame (DXVA_PictureParameters* pPicParams, DXVA_QmatrixData
pPicParams->wBitstreamPCEelements = (s->intra_dc_precision<<14) | (s->picture_structure<<12) |
(s->top_field_first<<11) | (s->frame_pred_frame_dct<<10)|
(s->concealment_motion_vectors<<9) | (s->q_scale_type<<8)|
- (s->intra_vlc_format<<7) | (s->alternate_scan<<6)|
+ (s->intra_vlc_format<<7) | (s->alternate_scan<<6)|
(s->repeat_first_field<<5) | (s->chroma_420_type<<4)|
(s->progressive_frame<<3);
@@ -732,7 +730,7 @@ HRESULT FFMpeg2DecodeFrame (DXVA_PictureParameters* pPicParams, DXVA_QmatrixData
unsigned long FFGetMBNumber(struct AVCodecContext* pAVCtx)
{
- MpegEncContext* s = GetMpegEncContext(pAVCtx);
+ MpegEncContext* s = GetMpegEncContext(pAVCtx);
return (s != NULL) ? s->mb_num : 0;
}
@@ -790,7 +788,7 @@ BOOL FFSoftwareCheckCompatibility(struct AVCodecContext* pAVCtx)
int FFGetCodedPicture(struct AVCodecContext* pAVCtx)
{
- MpegEncContext* s = GetMpegEncContext(pAVCtx);
+ MpegEncContext* s = GetMpegEncContext(pAVCtx);
return (s != NULL) ? s->current_picture.coded_picture_number : 0;
}
@@ -798,7 +796,7 @@ int FFGetCodedPicture(struct AVCodecContext* pAVCtx)
BOOL FFGetAlternateScan(struct AVCodecContext* pAVCtx)
{
- MpegEncContext* s = GetMpegEncContext(pAVCtx);
+ MpegEncContext* s = GetMpegEncContext(pAVCtx);
return (s != NULL) ? s->alternate_scan : 0;
}
@@ -812,4 +810,4 @@ void DummyX64Link ()
toupper('X');
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/filters/transform/MPCVideoDec/FfmpegContext.h b/src/filters/transform/MPCVideoDec/FfmpegContext.h
index b403b149e..879733d4e 100644
--- a/src/filters/transform/MPCVideoDec/FfmpegContext.h
+++ b/src/filters/transform/MPCVideoDec/FfmpegContext.h
@@ -36,9 +36,9 @@ enum PCI_Vendors
};
// Bitmasks for DXVA compatibility check
-#define DXVA_UNSUPPORTED_LEVEL 1
-#define DXVA_TOO_MUCH_REF_FRAMES 2
-#define DXVA_INCOMPATIBLE_SAR 4
+#define DXVA_UNSUPPORTED_LEVEL 1
+#define DXVA_TOO_MUCH_REF_FRAMES 2
+#define DXVA_INCOMPATIBLE_SAR 4
// === H264 functions
void FFH264DecodeBuffer (struct AVCodecContext* pAVCtx, BYTE* pBuffer, UINT nSize, int* pFramePOC, int* pOutPOC, REFERENCE_TIME* pOutrtStart);
@@ -66,4 +66,4 @@ unsigned long FFGetMBNumber(struct AVCodecContext* pAVCtx);
void FFSetThreadNumber(struct AVCodecContext* pAVCtx, int nThreadCount);
BOOL FFSoftwareCheckCompatibility(struct AVCodecContext* pAVCtx);
int FFGetCodedPicture(struct AVCodecContext* pAVCtx);
-BOOL FFGetAlternateScan(struct AVCodecContext* pAVCtx); \ No newline at end of file
+BOOL FFGetAlternateScan(struct AVCodecContext* pAVCtx);
diff --git a/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.cpp b/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.cpp
index fb69949dc..ba38dbe64 100644
--- a/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.cpp
+++ b/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.cpp
@@ -39,9 +39,9 @@
typedef struct
{
- const CLSID* clsMinorType;
- const enum CodecID nFFCodec;
- const int fourcc;
+ const CLSID* clsMinorType;
+ const enum CodecID nFFCodec;
+ const int fourcc;
} FFMPEG_CODECS;
@@ -215,8 +215,7 @@ HRESULT CMPCAudioDecFilter::CompleteConnect(PIN_DIRECTION direction, IPin* pRece
m_pAVCtx->bits_per_coded_sample = wfex->wBitsPerSample;
m_pAVCtx->block_align = wfex->nBlockAlign;
- /*
- if (codecId==CODEC_ID_FLAC && extradata.size>=4 && *(FOURCC*)extradata.data==mmioFOURCC('f','L','a','C')) // HACK
+ /*if (codecId==CODEC_ID_FLAC && extradata.size>=4 && *(FOURCC*)extradata.data==mmioFOURCC('f','L','a','C')) // HACK
{
avctx->extradata=extradata.data+8;
avctx->extradata_size=34;
diff --git a/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.h b/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.h
index 2f1bae396..fb4641281 100644
--- a/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.h
+++ b/src/filters/transform/MPCVideoDec/MPCAudioDecFilter.h
@@ -39,17 +39,17 @@ public:
virtual ~CMPCAudioDecFilter();
DECLARE_IUNKNOWN
- STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
+ STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
HRESULT SetMediaType(PIN_DIRECTION direction,const CMediaType *pmt);
HRESULT CheckInputType(const CMediaType* mtIn);
HRESULT Transform(IMediaSample* pIn);
HRESULT GetMediaType(int iPosition, CMediaType* pmt);
- HRESULT CheckTransform(const CMediaType* mtIn, const CMediaType* mtOut);
- HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
+ HRESULT CheckTransform(const CMediaType* mtIn, const CMediaType* mtOut);
+ HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
-// HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
+// HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
HRESULT CMPCAudioDecFilter::CompleteConnect(PIN_DIRECTION direction, IPin* pReceivePin);
STDMETHODIMP_(SampleFormat) GetSampleFormat();
diff --git a/src/filters/transform/MPCVideoDec/MPCFfmpegDec.cpp b/src/filters/transform/MPCVideoDec/MPCFfmpegDec.cpp
index 838ab5b0e..fbad8c32e 100644
--- a/src/filters/transform/MPCVideoDec/MPCFfmpegDec.cpp
+++ b/src/filters/transform/MPCVideoDec/MPCFfmpegDec.cpp
@@ -22,12 +22,9 @@
#include "stdafx.h"
#include "MPCVideoDecFilter.h"
-
#include "../../../DSUtil/DSUtil.h"
-
-
#ifdef REGISTER_FILTER
@@ -35,7 +32,7 @@
const AMOVIESETUP_PIN sudpPinsVideoDec[] =
{
{L"Input", FALSE, FALSE, FALSE, FALSE, &CLSID_NULL, NULL, CMPCVideoDecFilter::sudPinTypesInCount > 115 ? 115 : CMPCVideoDecFilter::sudPinTypesInCount, CMPCVideoDecFilter::sudPinTypesIn},
- {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, CMPCVideoDecFilter::sudPinTypesOutCount, CMPCVideoDecFilter::sudPinTypesOut}
+ {L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, NULL, CMPCVideoDecFilter::sudPinTypesOutCount, CMPCVideoDecFilter::sudPinTypesOut}
};
@@ -47,7 +44,7 @@ const AMOVIESETUP_FILTER sudFilters[] =
CFactoryTemplate g_Templates[] =
{
- {sudFilters[0].strName, &__uuidof(CMPCVideoDecFilter), CreateInstance<CMPCVideoDecFilter>, NULL, &sudFilters[0]},
+ {sudFilters[0].strName, &__uuidof(CMPCVideoDecFilter), CreateInstance<CMPCVideoDecFilter>, NULL, &sudFilters[0]},
{L"CMPCVideoDecPropertyPage", &__uuidof(CMPCVideoDecSettingsWnd), CreateInstance<CInternalPropertyPageTempl<CMPCVideoDecSettingsWnd> >},
{L"CMPCVideoDecPropertyPage2", &__uuidof(CMPCVideoDecCodecWnd), CreateInstance<CInternalPropertyPageTempl<CMPCVideoDecCodecWnd> >},
};
@@ -64,7 +61,6 @@ STDAPI DllUnregisterServer()
return AMovieDllRegisterServer2(FALSE);
}
-//
#include "../../FilterApp.h"
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp
index dbc97a7b2..60c440a14 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp
@@ -42,15 +42,11 @@ extern "C"
#include "../../../DSUtil/DSUtil.h"
#include "../../../DSUtil/MediaTypes.h"
#include "../../parser/MpegSplitter/MpegSplitter.h"
-
#include <moreuuids.h>
-
#include "DXVADecoderH264.h"
-
#include "../../../apps/mplayerc/internal_filter_config.h"
-/////
#define MAX_SUPPORTED_MODE 5
#define MPCVD_CAPTION _T("MPC Video decoder")
@@ -66,79 +62,79 @@ typedef struct
typedef struct
{
- const CLSID* clsMinorType;
- const enum CodecID nFFCodec;
- const int fourcc;
- const DXVA_PARAMS* DXVAModes;
-
- int DXVAModeCount()
- {
- if (!DXVAModes) return 0;
- for (int i=0; i<MAX_SUPPORTED_MODE; i++)
- {
- if (DXVAModes->Decoder[i] == &GUID_NULL) return i;
- }
- return MAX_SUPPORTED_MODE;
- }
+ const CLSID* clsMinorType;
+ const enum CodecID nFFCodec;
+ const int fourcc;
+ const DXVA_PARAMS* DXVAModes;
+
+ int DXVAModeCount()
+ {
+ if (!DXVAModes) return 0;
+ for (int i=0; i<MAX_SUPPORTED_MODE; i++)
+ {
+ if (DXVAModes->Decoder[i] == &GUID_NULL) return i;
+ }
+ return MAX_SUPPORTED_MODE;
+ }
} FFMPEG_CODECS;
typedef enum
{
- ffYCbCr_RGB_coeff_ITUR_BT601 = 0,
- ffYCbCr_RGB_coeff_ITUR_BT709 = 1,
- ffYCbCr_RGB_coeff_SMPTE240M = 2,
+ ffYCbCr_RGB_coeff_ITUR_BT601 = 0,
+ ffYCbCr_RGB_coeff_ITUR_BT709 = 1,
+ ffYCbCr_RGB_coeff_SMPTE240M = 2,
} ffYCbCr_RGB_MatrixCoefficientsType;
struct TYCbCr2RGB_coeffs {
- double Kr;
- double Kg;
- double Kb;
- double chr_range;
- double y_mul;
- double vr_mul;
- double ug_mul;
- double vg_mul;
- double ub_mul;
- int Ysub;
- int RGB_add1;
- int RGB_add3;
-
- TYCbCr2RGB_coeffs(ffYCbCr_RGB_MatrixCoefficientsType cspOptionsIturBt,
+ double Kr;
+ double Kg;
+ double Kb;
+ double chr_range;
+ double y_mul;
+ double vr_mul;
+ double ug_mul;
+ double vg_mul;
+ double ub_mul;
+ int Ysub;
+ int RGB_add1;
+ int RGB_add3;
+
+ TYCbCr2RGB_coeffs(ffYCbCr_RGB_MatrixCoefficientsType cspOptionsIturBt,
int cspOptionsWhiteCutoff,
int cspOptionsBlackCutoff,
int cspOptionsChromaCutoff,
double cspOptionsRGB_WhiteLevel,
double cspOptionsRGB_BlackLevel)
- {
- if (cspOptionsIturBt == ffYCbCr_RGB_coeff_ITUR_BT601) {
- Kr = 0.299;
- Kg = 0.587;
- Kb = 0.114;
- } else if (cspOptionsIturBt == ffYCbCr_RGB_coeff_SMPTE240M) {
- Kr = 0.2122;
- Kg = 0.7013;
- Kb = 0.0865;
- } else {
- Kr = 0.2125;
- Kg = 0.7154;
- Kb = 0.0721;
- }
-
- double in_y_range = cspOptionsWhiteCutoff - cspOptionsBlackCutoff;
- chr_range = 128 - cspOptionsChromaCutoff;
-
- double cspOptionsRGBrange = cspOptionsRGB_WhiteLevel - cspOptionsRGB_BlackLevel;
- y_mul =cspOptionsRGBrange / in_y_range;
- vr_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kr);
- ug_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kb) * Kb / Kg;
- vg_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kr) * Kr / Kg;
- ub_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kb);
- int sub = min((int)cspOptionsRGB_BlackLevel, cspOptionsBlackCutoff);
- Ysub = cspOptionsBlackCutoff - sub;
- RGB_add1 = (int)cspOptionsRGB_BlackLevel - sub;
- RGB_add3 = (RGB_add1 << 8) + (RGB_add1 << 16) + RGB_add1;
- }
+ {
+ if (cspOptionsIturBt == ffYCbCr_RGB_coeff_ITUR_BT601) {
+ Kr = 0.299;
+ Kg = 0.587;
+ Kb = 0.114;
+ } else if (cspOptionsIturBt == ffYCbCr_RGB_coeff_SMPTE240M) {
+ Kr = 0.2122;
+ Kg = 0.7013;
+ Kb = 0.0865;
+ } else {
+ Kr = 0.2125;
+ Kg = 0.7154;
+ Kb = 0.0721;
+ }
+
+ double in_y_range = cspOptionsWhiteCutoff - cspOptionsBlackCutoff;
+ chr_range = 128 - cspOptionsChromaCutoff;
+
+ double cspOptionsRGBrange = cspOptionsRGB_WhiteLevel - cspOptionsRGB_BlackLevel;
+ y_mul =cspOptionsRGBrange / in_y_range;
+ vr_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kr);
+ ug_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kb) * Kb / Kg;
+ vg_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kr) * Kr / Kg;
+ ub_mul=(cspOptionsRGBrange / chr_range) * (1.0 - Kb);
+ int sub = min((int)cspOptionsRGB_BlackLevel, cspOptionsBlackCutoff);
+ Ysub = cspOptionsBlackCutoff - sub;
+ RGB_add1 = (int)cspOptionsRGB_BlackLevel - sub;
+ RGB_add3 = (RGB_add1 << 8) + (RGB_add1 << 16) + RGB_add1;
+ }
};
@@ -148,7 +144,7 @@ DXVA_PARAMS DXVA_Mpeg2 =
9, // PicEntryNumber
1, // PreferedConfigBitstream
{ &DXVA2_ModeMPEG2_VLD, &GUID_NULL },
- { DXVA_RESTRICTED_MODE_UNRESTRICTED, 0 } // Restricted mode for DXVA1?
+ { DXVA_RESTRICTED_MODE_UNRESTRICTED, 0 } // Restricted mode for DXVA1?
};
// DXVA modes supported for H264
@@ -157,7 +153,7 @@ DXVA_PARAMS DXVA_H264 =
16, // PicEntryNumber
2, // PreferedConfigBitstream
{ &DXVA2_ModeH264_E, &DXVA2_ModeH264_F, &DXVA_Intel_H264_ClearVideo, &GUID_NULL },
- { DXVA_RESTRICTED_MODE_H264_E, 0}
+ { DXVA_RESTRICTED_MODE_H264_E, 0}
};
DXVA_PARAMS DXVA_H264_VISTA =
@@ -165,7 +161,7 @@ DXVA_PARAMS DXVA_H264_VISTA =
22, // PicEntryNumber
2, // PreferedConfigBitstream
{ &DXVA2_ModeH264_E, &DXVA2_ModeH264_F, &DXVA_Intel_H264_ClearVideo, &GUID_NULL },
- { DXVA_RESTRICTED_MODE_H264_E, 0}
+ { DXVA_RESTRICTED_MODE_H264_E, 0}
};
// DXVA modes supported for VC1
@@ -174,180 +170,180 @@ DXVA_PARAMS DXVA_VC1 =
14, // PicEntryNumber
1, // PreferedConfigBitstream
{ &DXVA2_ModeVC1_D, &GUID_NULL },
- { DXVA_RESTRICTED_MODE_VC1_D, 0}
+ { DXVA_RESTRICTED_MODE_VC1_D, 0}
};
FFMPEG_CODECS ffCodecs[] =
{
#if INCLUDE_MPC_VIDEO_DECODER
// Flash video
- { &MEDIASUBTYPE_FLV1, CODEC_ID_FLV1, MAKEFOURCC('F','L','V','1'), NULL },
- { &MEDIASUBTYPE_flv1, CODEC_ID_FLV1, MAKEFOURCC('f','l','v','1'), NULL },
- { &MEDIASUBTYPE_FLV4, CODEC_ID_VP6F, MAKEFOURCC('F','L','V','4'), NULL },
- { &MEDIASUBTYPE_flv4, CODEC_ID_VP6F, MAKEFOURCC('f','l','v','4'), NULL },
- { &MEDIASUBTYPE_VP6F, CODEC_ID_VP6F, MAKEFOURCC('V','P','6','F'), NULL },
- { &MEDIASUBTYPE_vp6f, CODEC_ID_VP6F, MAKEFOURCC('v','p','6','f'), NULL },
+ { &MEDIASUBTYPE_FLV1, CODEC_ID_FLV1, MAKEFOURCC('F','L','V','1'), NULL },
+ { &MEDIASUBTYPE_flv1, CODEC_ID_FLV1, MAKEFOURCC('f','l','v','1'), NULL },
+ { &MEDIASUBTYPE_FLV4, CODEC_ID_VP6F, MAKEFOURCC('F','L','V','4'), NULL },
+ { &MEDIASUBTYPE_flv4, CODEC_ID_VP6F, MAKEFOURCC('f','l','v','4'), NULL },
+ { &MEDIASUBTYPE_VP6F, CODEC_ID_VP6F, MAKEFOURCC('V','P','6','F'), NULL },
+ { &MEDIASUBTYPE_vp6f, CODEC_ID_VP6F, MAKEFOURCC('v','p','6','f'), NULL },
// VP5
- { &MEDIASUBTYPE_VP50, CODEC_ID_VP5, MAKEFOURCC('V','P','5','0'), NULL },
- { &MEDIASUBTYPE_vp50, CODEC_ID_VP5, MAKEFOURCC('v','p','5','0'), NULL },
+ { &MEDIASUBTYPE_VP50, CODEC_ID_VP5, MAKEFOURCC('V','P','5','0'), NULL },
+ { &MEDIASUBTYPE_vp50, CODEC_ID_VP5, MAKEFOURCC('v','p','5','0'), NULL },
// VP6
- { &MEDIASUBTYPE_VP60, CODEC_ID_VP6, MAKEFOURCC('V','P','6','0'), NULL },
- { &MEDIASUBTYPE_vp60, CODEC_ID_VP6, MAKEFOURCC('v','p','6','0'), NULL },
- { &MEDIASUBTYPE_VP61, CODEC_ID_VP6, MAKEFOURCC('V','P','6','1'), NULL },
- { &MEDIASUBTYPE_vp61, CODEC_ID_VP6, MAKEFOURCC('v','p','6','1'), NULL },
- { &MEDIASUBTYPE_VP62, CODEC_ID_VP6, MAKEFOURCC('V','P','6','2'), NULL },
- { &MEDIASUBTYPE_vp62, CODEC_ID_VP6, MAKEFOURCC('v','p','6','2'), NULL },
- { &MEDIASUBTYPE_VP6A, CODEC_ID_VP6A, MAKEFOURCC('V','P','6','A'), NULL },
- { &MEDIASUBTYPE_vp6a, CODEC_ID_VP6A, MAKEFOURCC('v','p','6','a'), NULL },
+ { &MEDIASUBTYPE_VP60, CODEC_ID_VP6, MAKEFOURCC('V','P','6','0'), NULL },
+ { &MEDIASUBTYPE_vp60, CODEC_ID_VP6, MAKEFOURCC('v','p','6','0'), NULL },
+ { &MEDIASUBTYPE_VP61, CODEC_ID_VP6, MAKEFOURCC('V','P','6','1'), NULL },
+ { &MEDIASUBTYPE_vp61, CODEC_ID_VP6, MAKEFOURCC('v','p','6','1'), NULL },
+ { &MEDIASUBTYPE_VP62, CODEC_ID_VP6, MAKEFOURCC('V','P','6','2'), NULL },
+ { &MEDIASUBTYPE_vp62, CODEC_ID_VP6, MAKEFOURCC('v','p','6','2'), NULL },
+ { &MEDIASUBTYPE_VP6A, CODEC_ID_VP6A, MAKEFOURCC('V','P','6','A'), NULL },
+ { &MEDIASUBTYPE_vp6a, CODEC_ID_VP6A, MAKEFOURCC('v','p','6','a'), NULL },
// VP8
{ &MEDIASUBTYPE_VP80, CODEC_ID_VP8, MAKEFOURCC('V','P','8','0'), NULL },
// Xvid
- { &MEDIASUBTYPE_XVID, CODEC_ID_MPEG4, MAKEFOURCC('X','V','I','D'), NULL },
- { &MEDIASUBTYPE_xvid, CODEC_ID_MPEG4, MAKEFOURCC('x','v','i','d'), NULL },
- { &MEDIASUBTYPE_XVIX, CODEC_ID_MPEG4, MAKEFOURCC('X','V','I','X'), NULL },
- { &MEDIASUBTYPE_xvix, CODEC_ID_MPEG4, MAKEFOURCC('x','v','i','x'), NULL },
+ { &MEDIASUBTYPE_XVID, CODEC_ID_MPEG4, MAKEFOURCC('X','V','I','D'), NULL },
+ { &MEDIASUBTYPE_xvid, CODEC_ID_MPEG4, MAKEFOURCC('x','v','i','d'), NULL },
+ { &MEDIASUBTYPE_XVIX, CODEC_ID_MPEG4, MAKEFOURCC('X','V','I','X'), NULL },
+ { &MEDIASUBTYPE_xvix, CODEC_ID_MPEG4, MAKEFOURCC('x','v','i','x'), NULL },
// DivX
- { &MEDIASUBTYPE_DX50, CODEC_ID_MPEG4, MAKEFOURCC('D','X','5','0'), NULL },
- { &MEDIASUBTYPE_dx50, CODEC_ID_MPEG4, MAKEFOURCC('d','x','5','0'), NULL },
- { &MEDIASUBTYPE_DIVX, CODEC_ID_MPEG4, MAKEFOURCC('D','I','V','X'), NULL },
- { &MEDIASUBTYPE_divx, CODEC_ID_MPEG4, MAKEFOURCC('d','i','v','x'), NULL },
+ { &MEDIASUBTYPE_DX50, CODEC_ID_MPEG4, MAKEFOURCC('D','X','5','0'), NULL },
+ { &MEDIASUBTYPE_dx50, CODEC_ID_MPEG4, MAKEFOURCC('d','x','5','0'), NULL },
+ { &MEDIASUBTYPE_DIVX, CODEC_ID_MPEG4, MAKEFOURCC('D','I','V','X'), NULL },
+ { &MEDIASUBTYPE_divx, CODEC_ID_MPEG4, MAKEFOURCC('d','i','v','x'), NULL },
// WMV1/2/3
- { &MEDIASUBTYPE_WMV1, CODEC_ID_WMV1, MAKEFOURCC('W','M','V','1'), NULL },
- { &MEDIASUBTYPE_wmv1, CODEC_ID_WMV1, MAKEFOURCC('w','m','v','1'), NULL },
- { &MEDIASUBTYPE_WMV2, CODEC_ID_WMV2, MAKEFOURCC('W','M','V','2'), NULL },
- { &MEDIASUBTYPE_wmv2, CODEC_ID_WMV2, MAKEFOURCC('w','m','v','2'), NULL },
- { &MEDIASUBTYPE_WMV3, CODEC_ID_WMV3, MAKEFOURCC('W','M','V','3'), NULL },
- { &MEDIASUBTYPE_wmv3, CODEC_ID_WMV3, MAKEFOURCC('w','m','v','3'), NULL },
+ { &MEDIASUBTYPE_WMV1, CODEC_ID_WMV1, MAKEFOURCC('W','M','V','1'), NULL },
+ { &MEDIASUBTYPE_wmv1, CODEC_ID_WMV1, MAKEFOURCC('w','m','v','1'), NULL },
+ { &MEDIASUBTYPE_WMV2, CODEC_ID_WMV2, MAKEFOURCC('W','M','V','2'), NULL },
+ { &MEDIASUBTYPE_wmv2, CODEC_ID_WMV2, MAKEFOURCC('w','m','v','2'), NULL },
+ { &MEDIASUBTYPE_WMV3, CODEC_ID_WMV3, MAKEFOURCC('W','M','V','3'), NULL },
+ { &MEDIASUBTYPE_wmv3, CODEC_ID_WMV3, MAKEFOURCC('w','m','v','3'), NULL },
- // Mpeg 2
- { &MEDIASUBTYPE_MPEG2_VIDEO, CODEC_ID_MPEG2VIDEO, MAKEFOURCC('M','P','G','2'), &DXVA_Mpeg2 },
+ // MPEG-2
+ { &MEDIASUBTYPE_MPEG2_VIDEO, CODEC_ID_MPEG2VIDEO, MAKEFOURCC('M','P','G','2'), &DXVA_Mpeg2 },
// MSMPEG-4
- { &MEDIASUBTYPE_DIV3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','3'), NULL },
- { &MEDIASUBTYPE_div3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','3'), NULL },
- { &MEDIASUBTYPE_DVX3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','V','X','3'), NULL },
- { &MEDIASUBTYPE_dvx3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','v','x','3'), NULL },
- { &MEDIASUBTYPE_MP43, CODEC_ID_MSMPEG4V3, MAKEFOURCC('M','P','4','3'), NULL },
- { &MEDIASUBTYPE_mp43, CODEC_ID_MSMPEG4V3, MAKEFOURCC('m','p','4','3'), NULL },
- { &MEDIASUBTYPE_COL1, CODEC_ID_MSMPEG4V3, MAKEFOURCC('C','O','L','1'), NULL },
- { &MEDIASUBTYPE_col1, CODEC_ID_MSMPEG4V3, MAKEFOURCC('c','o','l','1'), NULL },
- { &MEDIASUBTYPE_DIV4, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','4'), NULL },
- { &MEDIASUBTYPE_div4, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','4'), NULL },
- { &MEDIASUBTYPE_DIV5, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','5'), NULL },
- { &MEDIASUBTYPE_div5, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','5'), NULL },
- { &MEDIASUBTYPE_DIV6, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','6'), NULL },
- { &MEDIASUBTYPE_div6, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','6'), NULL },
- { &MEDIASUBTYPE_AP41, CODEC_ID_MSMPEG4V3, MAKEFOURCC('A','P','4','1'), NULL },
- { &MEDIASUBTYPE_ap41, CODEC_ID_MSMPEG4V3, MAKEFOURCC('a','p','4','1'), NULL },
- { &MEDIASUBTYPE_MPG3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('M','P','G','3'), NULL },
- { &MEDIASUBTYPE_mpg3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('m','p','g','3'), NULL },
- { &MEDIASUBTYPE_DIV2, CODEC_ID_MSMPEG4V2, MAKEFOURCC('D','I','V','2'), NULL },
- { &MEDIASUBTYPE_div2, CODEC_ID_MSMPEG4V2, MAKEFOURCC('d','i','v','2'), NULL },
- { &MEDIASUBTYPE_MP42, CODEC_ID_MSMPEG4V2, MAKEFOURCC('M','P','4','2'), NULL },
- { &MEDIASUBTYPE_mp42, CODEC_ID_MSMPEG4V2, MAKEFOURCC('m','p','4','2'), NULL },
- { &MEDIASUBTYPE_MPG4, CODEC_ID_MSMPEG4V1, MAKEFOURCC('M','P','G','4'), NULL },
- { &MEDIASUBTYPE_mpg4, CODEC_ID_MSMPEG4V1, MAKEFOURCC('m','p','g','4'), NULL },
- { &MEDIASUBTYPE_DIV1, CODEC_ID_MSMPEG4V1, MAKEFOURCC('D','I','V','1'), NULL },
- { &MEDIASUBTYPE_div1, CODEC_ID_MSMPEG4V1, MAKEFOURCC('d','i','v','1'), NULL },
- { &MEDIASUBTYPE_MP41, CODEC_ID_MSMPEG4V1, MAKEFOURCC('M','P','4','1'), NULL },
- { &MEDIASUBTYPE_mp41, CODEC_ID_MSMPEG4V1, MAKEFOURCC('m','p','4','1'), NULL },
+ { &MEDIASUBTYPE_DIV3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','3'), NULL },
+ { &MEDIASUBTYPE_div3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','3'), NULL },
+ { &MEDIASUBTYPE_DVX3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','V','X','3'), NULL },
+ { &MEDIASUBTYPE_dvx3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','v','x','3'), NULL },
+ { &MEDIASUBTYPE_MP43, CODEC_ID_MSMPEG4V3, MAKEFOURCC('M','P','4','3'), NULL },
+ { &MEDIASUBTYPE_mp43, CODEC_ID_MSMPEG4V3, MAKEFOURCC('m','p','4','3'), NULL },
+ { &MEDIASUBTYPE_COL1, CODEC_ID_MSMPEG4V3, MAKEFOURCC('C','O','L','1'), NULL },
+ { &MEDIASUBTYPE_col1, CODEC_ID_MSMPEG4V3, MAKEFOURCC('c','o','l','1'), NULL },
+ { &MEDIASUBTYPE_DIV4, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','4'), NULL },
+ { &MEDIASUBTYPE_div4, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','4'), NULL },
+ { &MEDIASUBTYPE_DIV5, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','5'), NULL },
+ { &MEDIASUBTYPE_div5, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','5'), NULL },
+ { &MEDIASUBTYPE_DIV6, CODEC_ID_MSMPEG4V3, MAKEFOURCC('D','I','V','6'), NULL },
+ { &MEDIASUBTYPE_div6, CODEC_ID_MSMPEG4V3, MAKEFOURCC('d','i','v','6'), NULL },
+ { &MEDIASUBTYPE_AP41, CODEC_ID_MSMPEG4V3, MAKEFOURCC('A','P','4','1'), NULL },
+ { &MEDIASUBTYPE_ap41, CODEC_ID_MSMPEG4V3, MAKEFOURCC('a','p','4','1'), NULL },
+ { &MEDIASUBTYPE_MPG3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('M','P','G','3'), NULL },
+ { &MEDIASUBTYPE_mpg3, CODEC_ID_MSMPEG4V3, MAKEFOURCC('m','p','g','3'), NULL },
+ { &MEDIASUBTYPE_DIV2, CODEC_ID_MSMPEG4V2, MAKEFOURCC('D','I','V','2'), NULL },
+ { &MEDIASUBTYPE_div2, CODEC_ID_MSMPEG4V2, MAKEFOURCC('d','i','v','2'), NULL },
+ { &MEDIASUBTYPE_MP42, CODEC_ID_MSMPEG4V2, MAKEFOURCC('M','P','4','2'), NULL },
+ { &MEDIASUBTYPE_mp42, CODEC_ID_MSMPEG4V2, MAKEFOURCC('m','p','4','2'), NULL },
+ { &MEDIASUBTYPE_MPG4, CODEC_ID_MSMPEG4V1, MAKEFOURCC('M','P','G','4'), NULL },
+ { &MEDIASUBTYPE_mpg4, CODEC_ID_MSMPEG4V1, MAKEFOURCC('m','p','g','4'), NULL },
+ { &MEDIASUBTYPE_DIV1, CODEC_ID_MSMPEG4V1, MAKEFOURCC('D','I','V','1'), NULL },
+ { &MEDIASUBTYPE_div1, CODEC_ID_MSMPEG4V1, MAKEFOURCC('d','i','v','1'), NULL },
+ { &MEDIASUBTYPE_MP41, CODEC_ID_MSMPEG4V1, MAKEFOURCC('M','P','4','1'), NULL },
+ { &MEDIASUBTYPE_mp41, CODEC_ID_MSMPEG4V1, MAKEFOURCC('m','p','4','1'), NULL },
// AMV Video
- { &MEDIASUBTYPE_AMVV, CODEC_ID_AMV, MAKEFOURCC('A','M','V','V'), NULL },
+ { &MEDIASUBTYPE_AMVV, CODEC_ID_AMV, MAKEFOURCC('A','M','V','V'), NULL },
#endif /* INCLUDE_MPC_VIDEO_DECODER */
// H264/AVC
- { &MEDIASUBTYPE_H264, CODEC_ID_H264, MAKEFOURCC('H','2','6','4'), &DXVA_H264 },
- { &MEDIASUBTYPE_h264, CODEC_ID_H264, MAKEFOURCC('h','2','6','4'), &DXVA_H264 },
- { &MEDIASUBTYPE_X264, CODEC_ID_H264, MAKEFOURCC('X','2','6','4'), &DXVA_H264 },
- { &MEDIASUBTYPE_x264, CODEC_ID_H264, MAKEFOURCC('x','2','6','4'), &DXVA_H264 },
- { &MEDIASUBTYPE_VSSH, CODEC_ID_H264, MAKEFOURCC('V','S','S','H'), &DXVA_H264 },
- { &MEDIASUBTYPE_vssh, CODEC_ID_H264, MAKEFOURCC('v','s','s','h'), &DXVA_H264 },
- { &MEDIASUBTYPE_DAVC, CODEC_ID_H264, MAKEFOURCC('D','A','V','C'), &DXVA_H264 },
- { &MEDIASUBTYPE_davc, CODEC_ID_H264, MAKEFOURCC('d','a','v','c'), &DXVA_H264 },
- { &MEDIASUBTYPE_PAVC, CODEC_ID_H264, MAKEFOURCC('P','A','V','C'), &DXVA_H264 },
- { &MEDIASUBTYPE_pavc, CODEC_ID_H264, MAKEFOURCC('p','a','v','c'), &DXVA_H264 },
- { &MEDIASUBTYPE_AVC1, CODEC_ID_H264, MAKEFOURCC('A','V','C','1'), &DXVA_H264 },
- { &MEDIASUBTYPE_avc1, CODEC_ID_H264, MAKEFOURCC('a','v','c','1'), &DXVA_H264 },
- { &MEDIASUBTYPE_H264_bis, CODEC_ID_H264, MAKEFOURCC('a','v','c','1'), &DXVA_H264 },
-
+ { &MEDIASUBTYPE_H264, CODEC_ID_H264, MAKEFOURCC('H','2','6','4'), &DXVA_H264 },
+ { &MEDIASUBTYPE_h264, CODEC_ID_H264, MAKEFOURCC('h','2','6','4'), &DXVA_H264 },
+ { &MEDIASUBTYPE_X264, CODEC_ID_H264, MAKEFOURCC('X','2','6','4'), &DXVA_H264 },
+ { &MEDIASUBTYPE_x264, CODEC_ID_H264, MAKEFOURCC('x','2','6','4'), &DXVA_H264 },
+ { &MEDIASUBTYPE_VSSH, CODEC_ID_H264, MAKEFOURCC('V','S','S','H'), &DXVA_H264 },
+ { &MEDIASUBTYPE_vssh, CODEC_ID_H264, MAKEFOURCC('v','s','s','h'), &DXVA_H264 },
+ { &MEDIASUBTYPE_DAVC, CODEC_ID_H264, MAKEFOURCC('D','A','V','C'), &DXVA_H264 },
+ { &MEDIASUBTYPE_davc, CODEC_ID_H264, MAKEFOURCC('d','a','v','c'), &DXVA_H264 },
+ { &MEDIASUBTYPE_PAVC, CODEC_ID_H264, MAKEFOURCC('P','A','V','C'), &DXVA_H264 },
+ { &MEDIASUBTYPE_pavc, CODEC_ID_H264, MAKEFOURCC('p','a','v','c'), &DXVA_H264 },
+ { &MEDIASUBTYPE_AVC1, CODEC_ID_H264, MAKEFOURCC('A','V','C','1'), &DXVA_H264 },
+ { &MEDIASUBTYPE_avc1, CODEC_ID_H264, MAKEFOURCC('a','v','c','1'), &DXVA_H264 },
+ { &MEDIASUBTYPE_H264_bis, CODEC_ID_H264, MAKEFOURCC('a','v','c','1'), &DXVA_H264 },
+
#if INCLUDE_MPC_VIDEO_DECODER
// SVQ3
- { &MEDIASUBTYPE_SVQ3, CODEC_ID_SVQ3, MAKEFOURCC('S','V','Q','3'), NULL },
+ { &MEDIASUBTYPE_SVQ3, CODEC_ID_SVQ3, MAKEFOURCC('S','V','Q','3'), NULL },
// SVQ1
- { &MEDIASUBTYPE_SVQ1, CODEC_ID_SVQ1, MAKEFOURCC('S','V','Q','1'), NULL },
+ { &MEDIASUBTYPE_SVQ1, CODEC_ID_SVQ1, MAKEFOURCC('S','V','Q','1'), NULL },
// H263
- { &MEDIASUBTYPE_H263, CODEC_ID_H263, MAKEFOURCC('H','2','6','3'), NULL },
- { &MEDIASUBTYPE_h263, CODEC_ID_H263, MAKEFOURCC('h','2','6','3'), NULL },
+ { &MEDIASUBTYPE_H263, CODEC_ID_H263, MAKEFOURCC('H','2','6','3'), NULL },
+ { &MEDIASUBTYPE_h263, CODEC_ID_H263, MAKEFOURCC('h','2','6','3'), NULL },
- { &MEDIASUBTYPE_S263, CODEC_ID_H263, MAKEFOURCC('S','2','6','3'), NULL },
- { &MEDIASUBTYPE_s263, CODEC_ID_H263, MAKEFOURCC('s','2','6','3'), NULL },
+ { &MEDIASUBTYPE_S263, CODEC_ID_H263, MAKEFOURCC('S','2','6','3'), NULL },
+ { &MEDIASUBTYPE_s263, CODEC_ID_H263, MAKEFOURCC('s','2','6','3'), NULL },
- // Real video
- { &MEDIASUBTYPE_RV10, CODEC_ID_RV10, MAKEFOURCC('R','V','1','0'), NULL },
- { &MEDIASUBTYPE_RV20, CODEC_ID_RV20, MAKEFOURCC('R','V','2','0'), NULL },
- { &MEDIASUBTYPE_RV30, CODEC_ID_RV30, MAKEFOURCC('R','V','3','0'), NULL },
- { &MEDIASUBTYPE_RV40, CODEC_ID_RV40, MAKEFOURCC('R','V','4','0'), NULL },
+ // Real Video
+ { &MEDIASUBTYPE_RV10, CODEC_ID_RV10, MAKEFOURCC('R','V','1','0'), NULL },
+ { &MEDIASUBTYPE_RV20, CODEC_ID_RV20, MAKEFOURCC('R','V','2','0'), NULL },
+ { &MEDIASUBTYPE_RV30, CODEC_ID_RV30, MAKEFOURCC('R','V','3','0'), NULL },
+ { &MEDIASUBTYPE_RV40, CODEC_ID_RV40, MAKEFOURCC('R','V','4','0'), NULL },
// Theora
- { &MEDIASUBTYPE_THEORA, CODEC_ID_THEORA, MAKEFOURCC('T','H','E','O'), NULL },
- { &MEDIASUBTYPE_theora, CODEC_ID_THEORA, MAKEFOURCC('t','h','e','o'), NULL },
+ { &MEDIASUBTYPE_THEORA, CODEC_ID_THEORA, MAKEFOURCC('T','H','E','O'), NULL },
+ { &MEDIASUBTYPE_theora, CODEC_ID_THEORA, MAKEFOURCC('t','h','e','o'), NULL },
#endif /* INCLUDE_MPC_VIDEO_DECODER */
// WVC1
- { &MEDIASUBTYPE_WVC1, CODEC_ID_VC1, MAKEFOURCC('W','V','C','1'), &DXVA_VC1 },
- { &MEDIASUBTYPE_wvc1, CODEC_ID_VC1, MAKEFOURCC('w','v','c','1'), &DXVA_VC1 },
+ { &MEDIASUBTYPE_WVC1, CODEC_ID_VC1, MAKEFOURCC('W','V','C','1'), &DXVA_VC1 },
+ { &MEDIASUBTYPE_wvc1, CODEC_ID_VC1, MAKEFOURCC('w','v','c','1'), &DXVA_VC1 },
#if INCLUDE_MPC_VIDEO_DECODER
// Other MPEG-4
- { &MEDIASUBTYPE_MP4V, CODEC_ID_MPEG4, MAKEFOURCC('M','P','4','V'), NULL },
- { &MEDIASUBTYPE_mp4v, CODEC_ID_MPEG4, MAKEFOURCC('m','p','4','v'), NULL },
- { &MEDIASUBTYPE_M4S2, CODEC_ID_MPEG4, MAKEFOURCC('M','4','S','2'), NULL },
- { &MEDIASUBTYPE_m4s2, CODEC_ID_MPEG4, MAKEFOURCC('m','4','s','2'), NULL },
- { &MEDIASUBTYPE_MP4S, CODEC_ID_MPEG4, MAKEFOURCC('M','P','4','S'), NULL },
- { &MEDIASUBTYPE_mp4s, CODEC_ID_MPEG4, MAKEFOURCC('m','p','4','s'), NULL },
- { &MEDIASUBTYPE_3IV1, CODEC_ID_MPEG4, MAKEFOURCC('3','I','V','1'), NULL },
- { &MEDIASUBTYPE_3iv1, CODEC_ID_MPEG4, MAKEFOURCC('3','i','v','1'), NULL },
- { &MEDIASUBTYPE_3IV2, CODEC_ID_MPEG4, MAKEFOURCC('3','I','V','2'), NULL },
- { &MEDIASUBTYPE_3iv2, CODEC_ID_MPEG4, MAKEFOURCC('3','i','v','2'), NULL },
- { &MEDIASUBTYPE_3IVX, CODEC_ID_MPEG4, MAKEFOURCC('3','I','V','X'), NULL },
- { &MEDIASUBTYPE_3ivx, CODEC_ID_MPEG4, MAKEFOURCC('3','i','v','x'), NULL },
- { &MEDIASUBTYPE_BLZ0, CODEC_ID_MPEG4, MAKEFOURCC('B','L','Z','0'), NULL },
- { &MEDIASUBTYPE_blz0, CODEC_ID_MPEG4, MAKEFOURCC('b','l','z','0'), NULL },
- { &MEDIASUBTYPE_DM4V, CODEC_ID_MPEG4, MAKEFOURCC('D','M','4','V'), NULL },
- { &MEDIASUBTYPE_dm4v, CODEC_ID_MPEG4, MAKEFOURCC('d','m','4','v'), NULL },
- { &MEDIASUBTYPE_FFDS, CODEC_ID_MPEG4, MAKEFOURCC('F','F','D','S'), NULL },
- { &MEDIASUBTYPE_ffds, CODEC_ID_MPEG4, MAKEFOURCC('f','f','d','s'), NULL },
- { &MEDIASUBTYPE_FVFW, CODEC_ID_MPEG4, MAKEFOURCC('F','V','F','W'), NULL },
- { &MEDIASUBTYPE_fvfw, CODEC_ID_MPEG4, MAKEFOURCC('f','v','f','w'), NULL },
- { &MEDIASUBTYPE_DXGM, CODEC_ID_MPEG4, MAKEFOURCC('D','X','G','M'), NULL },
- { &MEDIASUBTYPE_dxgm, CODEC_ID_MPEG4, MAKEFOURCC('d','x','g','m'), NULL },
- { &MEDIASUBTYPE_FMP4, CODEC_ID_MPEG4, MAKEFOURCC('F','M','P','4'), NULL },
- { &MEDIASUBTYPE_fmp4, CODEC_ID_MPEG4, MAKEFOURCC('f','m','p','4'), NULL },
- { &MEDIASUBTYPE_HDX4, CODEC_ID_MPEG4, MAKEFOURCC('H','D','X','4'), NULL },
- { &MEDIASUBTYPE_hdx4, CODEC_ID_MPEG4, MAKEFOURCC('h','d','x','4'), NULL },
- { &MEDIASUBTYPE_LMP4, CODEC_ID_MPEG4, MAKEFOURCC('L','M','P','4'), NULL },
- { &MEDIASUBTYPE_lmp4, CODEC_ID_MPEG4, MAKEFOURCC('l','m','p','4'), NULL },
- { &MEDIASUBTYPE_NDIG, CODEC_ID_MPEG4, MAKEFOURCC('N','D','I','G'), NULL },
- { &MEDIASUBTYPE_ndig, CODEC_ID_MPEG4, MAKEFOURCC('n','d','i','g'), NULL },
- { &MEDIASUBTYPE_RMP4, CODEC_ID_MPEG4, MAKEFOURCC('R','M','P','4'), NULL },
- { &MEDIASUBTYPE_rmp4, CODEC_ID_MPEG4, MAKEFOURCC('r','m','p','4'), NULL },
- { &MEDIASUBTYPE_SMP4, CODEC_ID_MPEG4, MAKEFOURCC('S','M','P','4'), NULL },
- { &MEDIASUBTYPE_smp4, CODEC_ID_MPEG4, MAKEFOURCC('s','m','p','4'), NULL },
- { &MEDIASUBTYPE_SEDG, CODEC_ID_MPEG4, MAKEFOURCC('S','E','D','G'), NULL },
- { &MEDIASUBTYPE_sedg, CODEC_ID_MPEG4, MAKEFOURCC('s','e','d','g'), NULL },
- { &MEDIASUBTYPE_UMP4, CODEC_ID_MPEG4, MAKEFOURCC('U','M','P','4'), NULL },
- { &MEDIASUBTYPE_ump4, CODEC_ID_MPEG4, MAKEFOURCC('u','m','p','4'), NULL },
- { &MEDIASUBTYPE_WV1F, CODEC_ID_MPEG4, MAKEFOURCC('W','V','1','F'), NULL },
- { &MEDIASUBTYPE_wv1f, CODEC_ID_MPEG4, MAKEFOURCC('w','v','1','f'), NULL }
+ { &MEDIASUBTYPE_MP4V, CODEC_ID_MPEG4, MAKEFOURCC('M','P','4','V'), NULL },
+ { &MEDIASUBTYPE_mp4v, CODEC_ID_MPEG4, MAKEFOURCC('m','p','4','v'), NULL },
+ { &MEDIASUBTYPE_M4S2, CODEC_ID_MPEG4, MAKEFOURCC('M','4','S','2'), NULL },
+ { &MEDIASUBTYPE_m4s2, CODEC_ID_MPEG4, MAKEFOURCC('m','4','s','2'), NULL },
+ { &MEDIASUBTYPE_MP4S, CODEC_ID_MPEG4, MAKEFOURCC('M','P','4','S'), NULL },
+ { &MEDIASUBTYPE_mp4s, CODEC_ID_MPEG4, MAKEFOURCC('m','p','4','s'), NULL },
+ { &MEDIASUBTYPE_3IV1, CODEC_ID_MPEG4, MAKEFOURCC('3','I','V','1'), NULL },
+ { &MEDIASUBTYPE_3iv1, CODEC_ID_MPEG4, MAKEFOURCC('3','i','v','1'), NULL },
+ { &MEDIASUBTYPE_3IV2, CODEC_ID_MPEG4, MAKEFOURCC('3','I','V','2'), NULL },
+ { &MEDIASUBTYPE_3iv2, CODEC_ID_MPEG4, MAKEFOURCC('3','i','v','2'), NULL },
+ { &MEDIASUBTYPE_3IVX, CODEC_ID_MPEG4, MAKEFOURCC('3','I','V','X'), NULL },
+ { &MEDIASUBTYPE_3ivx, CODEC_ID_MPEG4, MAKEFOURCC('3','i','v','x'), NULL },
+ { &MEDIASUBTYPE_BLZ0, CODEC_ID_MPEG4, MAKEFOURCC('B','L','Z','0'), NULL },
+ { &MEDIASUBTYPE_blz0, CODEC_ID_MPEG4, MAKEFOURCC('b','l','z','0'), NULL },
+ { &MEDIASUBTYPE_DM4V, CODEC_ID_MPEG4, MAKEFOURCC('D','M','4','V'), NULL },
+ { &MEDIASUBTYPE_dm4v, CODEC_ID_MPEG4, MAKEFOURCC('d','m','4','v'), NULL },
+ { &MEDIASUBTYPE_FFDS, CODEC_ID_MPEG4, MAKEFOURCC('F','F','D','S'), NULL },
+ { &MEDIASUBTYPE_ffds, CODEC_ID_MPEG4, MAKEFOURCC('f','f','d','s'), NULL },
+ { &MEDIASUBTYPE_FVFW, CODEC_ID_MPEG4, MAKEFOURCC('F','V','F','W'), NULL },
+ { &MEDIASUBTYPE_fvfw, CODEC_ID_MPEG4, MAKEFOURCC('f','v','f','w'), NULL },
+ { &MEDIASUBTYPE_DXGM, CODEC_ID_MPEG4, MAKEFOURCC('D','X','G','M'), NULL },
+ { &MEDIASUBTYPE_dxgm, CODEC_ID_MPEG4, MAKEFOURCC('d','x','g','m'), NULL },
+ { &MEDIASUBTYPE_FMP4, CODEC_ID_MPEG4, MAKEFOURCC('F','M','P','4'), NULL },
+ { &MEDIASUBTYPE_fmp4, CODEC_ID_MPEG4, MAKEFOURCC('f','m','p','4'), NULL },
+ { &MEDIASUBTYPE_HDX4, CODEC_ID_MPEG4, MAKEFOURCC('H','D','X','4'), NULL },
+ { &MEDIASUBTYPE_hdx4, CODEC_ID_MPEG4, MAKEFOURCC('h','d','x','4'), NULL },
+ { &MEDIASUBTYPE_LMP4, CODEC_ID_MPEG4, MAKEFOURCC('L','M','P','4'), NULL },
+ { &MEDIASUBTYPE_lmp4, CODEC_ID_MPEG4, MAKEFOURCC('l','m','p','4'), NULL },
+ { &MEDIASUBTYPE_NDIG, CODEC_ID_MPEG4, MAKEFOURCC('N','D','I','G'), NULL },
+ { &MEDIASUBTYPE_ndig, CODEC_ID_MPEG4, MAKEFOURCC('n','d','i','g'), NULL },
+ { &MEDIASUBTYPE_RMP4, CODEC_ID_MPEG4, MAKEFOURCC('R','M','P','4'), NULL },
+ { &MEDIASUBTYPE_rmp4, CODEC_ID_MPEG4, MAKEFOURCC('r','m','p','4'), NULL },
+ { &MEDIASUBTYPE_SMP4, CODEC_ID_MPEG4, MAKEFOURCC('S','M','P','4'), NULL },
+ { &MEDIASUBTYPE_smp4, CODEC_ID_MPEG4, MAKEFOURCC('s','m','p','4'), NULL },
+ { &MEDIASUBTYPE_SEDG, CODEC_ID_MPEG4, MAKEFOURCC('S','E','D','G'), NULL },
+ { &MEDIASUBTYPE_sedg, CODEC_ID_MPEG4, MAKEFOURCC('s','e','d','g'), NULL },
+ { &MEDIASUBTYPE_UMP4, CODEC_ID_MPEG4, MAKEFOURCC('U','M','P','4'), NULL },
+ { &MEDIASUBTYPE_ump4, CODEC_ID_MPEG4, MAKEFOURCC('u','m','p','4'), NULL },
+ { &MEDIASUBTYPE_WV1F, CODEC_ID_MPEG4, MAKEFOURCC('W','V','1','F'), NULL },
+ { &MEDIASUBTYPE_wv1f, CODEC_ID_MPEG4, MAKEFOURCC('w','v','1','f'), NULL }
#endif /* INCLUDE_MPC_VIDEO_DECODER */
};
@@ -378,7 +374,7 @@ const AMOVIESETUP_MEDIATYPE CMPCVideoDecFilter::sudPinTypesIn[] =
{ &MEDIATYPE_Video, &MEDIASUBTYPE_vp6a },
// VP8
- { &MEDIATYPE_Video, &MEDIASUBTYPE_VP80 },
+ { &MEDIATYPE_Video, &MEDIASUBTYPE_VP80 },
// Xvid
{ &MEDIATYPE_Video, &MEDIASUBTYPE_XVID },
@@ -400,7 +396,7 @@ const AMOVIESETUP_MEDIATYPE CMPCVideoDecFilter::sudPinTypesIn[] =
{ &MEDIATYPE_Video, &MEDIASUBTYPE_WMV3 },
{ &MEDIATYPE_Video, &MEDIASUBTYPE_wmv3 },
- // Mpeg 2
+ // MPEG-2
{ &MEDIATYPE_Video, &MEDIASUBTYPE_MPEG2_VIDEO },
// MSMPEG-4
@@ -480,7 +476,7 @@ const AMOVIESETUP_MEDIATYPE CMPCVideoDecFilter::sudPinTypesIn[] =
// VC1
{ &MEDIATYPE_Video, &MEDIASUBTYPE_WVC1 },
{ &MEDIATYPE_Video, &MEDIASUBTYPE_wvc1 },
-
+
#if INCLUDE_MPC_VIDEO_DECODER
// IMPORTANT : some of the last MediaTypes present in next group may be not available in
// the standalone filter (workaround to prevent GraphEdit crash).
@@ -530,9 +526,9 @@ const AMOVIESETUP_MEDIATYPE CMPCVideoDecFilter::sudPinTypesIn[] =
const int CMPCVideoDecFilter::sudPinTypesInCount = countof(CMPCVideoDecFilter::sudPinTypesIn);
-UINT CMPCVideoDecFilter::FFmpegFilters = 0xFFFFFFFF;
-UINT CMPCVideoDecFilter::DXVAFilters = 0xFFFFFFFF;
-bool CMPCVideoDecFilter::m_ref_frame_count_check_skip = false;
+UINT CMPCVideoDecFilter::FFmpegFilters = 0xFFFFFFFF;
+UINT CMPCVideoDecFilter::DXVAFilters = 0xFFFFFFFF;
+bool CMPCVideoDecFilter::m_ref_frame_count_check_skip = false;
const AMOVIESETUP_MEDIATYPE CMPCVideoDecFilter::sudPinTypesOut[] =
{
@@ -548,7 +544,7 @@ BOOL CALLBACK EnumFindProcessWnd (HWND hwnd, LPARAM lParam)
TCHAR WindowClass [40];
GetWindowThreadProcessId (hwnd, &procid);
GetClassName (hwnd, WindowClass, countof(WindowClass));
-
+
if (procid == GetCurrentProcessId() && _tcscmp (WindowClass, _T("MediaPlayerClassicW")) == 0)
{
HWND* pWnd = (HWND*) lParam;
@@ -606,7 +602,7 @@ CMPCVideoDecFilter::CMPCVideoDecFilter(LPUNKNOWN lpunk, HRESULT* phr)
m_nWidth = 0;
m_nHeight = 0;
m_pSwsContext = NULL;
-
+
m_bUseDXVA = true;
m_bUseFFmpeg = true;
@@ -616,12 +612,12 @@ CMPCVideoDecFilter::CMPCVideoDecFilter(LPUNKNOWN lpunk, HRESULT* phr)
m_nVideoOutputCount = 0;
m_hDevice = INVALID_HANDLE_VALUE;
- m_nARMode = 1;
+ m_nARMode = 1;
m_nDXVACheckCompatibility = 1; // skip level check by default
- m_nDXVA_SD = 0;
- m_nPosB = 1;
+ m_nDXVA_SD = 0;
+ m_nPosB = 1;
m_sar.SetSize(1,1);
-
+
CRegKey key;
if(ERROR_SUCCESS == key.Open(HKEY_CURRENT_USER, _T("Software\\Gabest\\Filters\\MPC Video Decoder"), KEY_READ))
{
@@ -636,7 +632,7 @@ CMPCVideoDecFilter::CMPCVideoDecFilter(LPUNKNOWN lpunk, HRESULT* phr)
if(ERROR_SUCCESS == key.QueryDWORDValue(_T("DisableDXVA_SD"), dw)) m_nDXVA_SD = dw;
}
- if(m_nDXVACheckCompatibility > 3) m_nDXVACheckCompatibility = 1; // skip level check by default
+ if(m_nDXVACheckCompatibility > 3) m_nDXVACheckCompatibility = 1; // skip level check by default
ff_avcodec_default_get_buffer = avcodec_default_get_buffer;
ff_avcodec_default_release_buffer = avcodec_default_release_buffer;
@@ -797,7 +793,7 @@ int CMPCVideoDecFilter::FindCodec(const CMediaType* mtIn)
for (int i=0; i<countof(ffCodecs); i++)
if (mtIn->subtype == *ffCodecs[i].clsMinorType)
{
-#ifndef REGISTER_FILTER
+#ifndef REGISTER_FILTER
switch (ffCodecs[i].nFFCodec)
{
case CODEC_ID_H264 :
@@ -828,12 +824,12 @@ int CMPCVideoDecFilter::FindCodec(const CMediaType* mtIn)
#if INTERNAL_DECODER_MPEG2_DXVA
m_bUseDXVA = true;
#endif
- m_bUseFFmpeg = false; // No Mpeg2 software support with ffmpeg!
+ m_bUseFFmpeg = false; // No Mpeg2 software support with ffmpeg!
break;
default :
m_bUseDXVA = false;
}
-
+
return ((m_bUseDXVA || m_bUseFFmpeg) ? i : -1);
#else
bool bCodecActivated = false;
@@ -962,7 +958,7 @@ void CMPCVideoDecFilter::Cleanup()
void CMPCVideoDecFilter::CalcAvgTimePerFrame()
{
- CMediaType &mt = m_pInput->CurrentMediaType();
+ CMediaType &mt = m_pInput->CurrentMediaType();
if (mt.formattype==FORMAT_VideoInfo)
m_rtAvrTimePerFrame = ((VIDEOINFOHEADER*)mt.pbFormat)->AvgTimePerFrame;
else if (mt.formattype==FORMAT_VideoInfo2)
@@ -1107,8 +1103,8 @@ HRESULT CMPCVideoDecFilter::SetMediaType(PIN_DIRECTION direction,const CMediaTyp
#ifdef _DEBUG
//m_pAVCtx->debug = FF_DEBUG_PICT_INFO | FF_DEBUG_STARTCODE | FF_DEBUG_PTS;
#endif
-
- m_pAVCtx->opaque = this;
+
+ m_pAVCtx->opaque = this;
m_pAVCtx->get_buffer = get_buffer;
AllocExtradata (m_pAVCtx, pmt);
@@ -1123,7 +1119,7 @@ HRESULT CMPCVideoDecFilter::SetMediaType(PIN_DIRECTION direction,const CMediaTyp
case CODEC_ID_H264 :
if((m_nDXVA_SD) && (PictWidthRounded() < 1280))
{
- m_bDXVACompatible = false;
+ m_bDXVACompatible = false;
}
else
{
@@ -1131,14 +1127,14 @@ HRESULT CMPCVideoDecFilter::SetMediaType(PIN_DIRECTION direction,const CMediaTyp
{
// non-zero value indicates that an incompatibility was detected
int nCompat = FFH264CheckCompatibility (PictWidthRounded(), PictHeightRounded(), m_pAVCtx, (BYTE*)m_pAVCtx->extradata, m_pAVCtx->extradata_size, m_nPCIVendor, m_nPCIDevice, m_VideoDriverVersion);
-
+
if(nCompat > 0)
{
switch(m_nDXVACheckCompatibility)
{
case 0 :
// full check
- m_bDXVACompatible = false;
+ m_bDXVACompatible = false;
break;
case 1 :
// skip level check
@@ -1158,7 +1154,7 @@ HRESULT CMPCVideoDecFilter::SetMediaType(PIN_DIRECTION direction,const CMediaTyp
m_pAVCtx->dsp_mask ^= FF_MM_FORCE;
break;
}
-
+
// Force single thread for DXVA !
if (IsDXVASupported())
FFSetThreadNumber(m_pAVCtx, 1);
@@ -1314,13 +1310,13 @@ HRESULT CMPCVideoDecFilter::CompleteConnect(PIN_DIRECTION direction, IPin* pRece
{
ReconnectOutput (m_nWidth, m_nHeight);
}
- else if (direction==PINDIR_OUTPUT)
+ else if (direction==PINDIR_OUTPUT)
{
if (IsDXVASupported())
{
if (m_nDXVAMode == MODE_DXVA1)
m_pDXVADecoder->ConfigureDXVA1();
- else if (SUCCEEDED (ConfigureDXVA2 (pReceivePin)) && SUCCEEDED (SetEVRForDXVA2 (pReceivePin)) )
+ else if (SUCCEEDED (ConfigureDXVA2 (pReceivePin)) && SUCCEEDED (SetEVRForDXVA2 (pReceivePin)) )
m_nDXVAMode = MODE_DXVA2;
}
if (m_nDXVAMode == MODE_SOFTWARE && !FFSoftwareCheckCompatibility(m_pAVCtx))
@@ -1487,9 +1483,9 @@ void CMPCVideoDecFilter::InitSwscale()
template<class T> inline T odd2even(T x)
{
- return x&1 ?
- x + 1 :
- x;
+ return x&1 ?
+ x + 1 :
+ x;
}
#endif /* INCLUDE_MPC_VIDEO_DECODER */
@@ -1503,7 +1499,7 @@ HRESULT CMPCVideoDecFilter::SoftwareDecode(IMediaSample* pIn, BYTE* pDataIn, int
{
if (nSize+FF_INPUT_BUFFER_PADDING_SIZE > m_nFFBufferSize)
{
- m_nFFBufferSize = nSize+FF_INPUT_BUFFER_PADDING_SIZE;
+ m_nFFBufferSize = nSize+FF_INPUT_BUFFER_PADDING_SIZE;
m_pFFBuffer = (BYTE*)realloc(m_pFFBuffer, m_nFFBufferSize);
}
@@ -1525,7 +1521,7 @@ HRESULT CMPCVideoDecFilter::SoftwareDecode(IMediaSample* pIn, BYTE* pDataIn, int
UpdateAspectRatio();
if(FAILED(hr = GetDeliveryBuffer(m_pAVCtx->width, m_pAVCtx->height, &pOut)) || FAILED(hr = pOut->GetPointer(&pDataOut)))
return hr;
-
+
rtStart = m_pFrame->reordered_opaque;
rtStop = m_pFrame->reordered_opaque + m_rtAvrTimePerFrame;
ReorderBFrames(rtStart, rtStop);
@@ -1578,7 +1574,7 @@ HRESULT CMPCVideoDecFilter::SoftwareDecode(IMediaSample* pIn, BYTE* pDataIn, int
hr = m_pOutput->Deliver(pOut);
nSize -= used_bytes;
- pDataIn += used_bytes;
+ pDataIn += used_bytes;
}
return hr;
@@ -1970,187 +1966,187 @@ HRESULT CMPCVideoDecFilter::FindDXVA2DecoderConfiguration(IDirectXVideoDecoderSe
DXVA2_ConfigPictureDecode *pSelectedConfig,
BOOL *pbFoundDXVA2Configuration)
{
- HRESULT hr = S_OK;
- UINT cFormats = 0;
- UINT cConfigurations = 0;
+ HRESULT hr = S_OK;
+ UINT cFormats = 0;
+ UINT cConfigurations = 0;
bool bIsPrefered = false;
- D3DFORMAT *pFormats = NULL; // size = cFormats
- DXVA2_ConfigPictureDecode *pConfig = NULL; // size = cConfigurations
+ D3DFORMAT *pFormats = NULL; // size = cFormats
+ DXVA2_ConfigPictureDecode *pConfig = NULL; // size = cConfigurations
- // Find the valid render target formats for this decoder GUID.
- hr = pDecoderService->GetDecoderRenderTargets(guidDecoder, &cFormats, &pFormats);
+ // Find the valid render target formats for this decoder GUID.
+ hr = pDecoderService->GetDecoderRenderTargets(guidDecoder, &cFormats, &pFormats);
LOG (_T("GetDecoderRenderTargets => %d"), cFormats);
- if (SUCCEEDED(hr))
- {
- // Look for a format that matches our output format.
- for (UINT iFormat = 0; iFormat < cFormats; iFormat++)
- {
+ if (SUCCEEDED(hr))
+ {
+ // Look for a format that matches our output format.
+ for (UINT iFormat = 0; iFormat < cFormats; iFormat++)
+ {
LOG (_T("Try to negociate => 0x%08x"), pFormats[iFormat]);
- // Fill in the video description. Set the width, height, format, and frame rate.
- FillInVideoDescription(&m_VideoDesc); // Private helper function.
- m_VideoDesc.Format = pFormats[iFormat];
+ // Fill in the video description. Set the width, height, format, and frame rate.
+ FillInVideoDescription(&m_VideoDesc); // Private helper function.
+ m_VideoDesc.Format = pFormats[iFormat];
- // Get the available configurations.
- hr = pDecoderService->GetDecoderConfigurations(guidDecoder, &m_VideoDesc, NULL, &cConfigurations, &pConfig);
+ // Get the available configurations.
+ hr = pDecoderService->GetDecoderConfigurations(guidDecoder, &m_VideoDesc, NULL, &cConfigurations, &pConfig);
- if (FAILED(hr))
- {
- continue;
- }
+ if (FAILED(hr))
+ {
+ continue;
+ }
- // Find a supported configuration.
- for (UINT iConfig = 0; iConfig < cConfigurations; iConfig++)
- {
- if (IsSupportedDecoderConfig(pFormats[iFormat], pConfig[iConfig], bIsPrefered))
- {
- // This configuration is good.
+ // Find a supported configuration.
+ for (UINT iConfig = 0; iConfig < cConfigurations; iConfig++)
+ {
+ if (IsSupportedDecoderConfig(pFormats[iFormat], pConfig[iConfig], bIsPrefered))
+ {
+ // This configuration is good.
if (bIsPrefered || !*pbFoundDXVA2Configuration)
{
*pbFoundDXVA2Configuration = TRUE;
*pSelectedConfig = pConfig[iConfig];
}
-
+
if (bIsPrefered) break;
- }
- }
+ }
+ }
- CoTaskMemFree(pConfig);
- } // End of formats loop.
- }
+ CoTaskMemFree(pConfig);
+ } // End of formats loop.
+ }
- CoTaskMemFree(pFormats);
+ CoTaskMemFree(pFormats);
- // Note: It is possible to return S_OK without finding a configuration.
- return hr;
+ // Note: It is possible to return S_OK without finding a configuration.
+ return hr;
}
HRESULT CMPCVideoDecFilter::ConfigureDXVA2(IPin *pPin)
{
- HRESULT hr = S_OK;
- UINT cDecoderGuids = 0;
- BOOL bFoundDXVA2Configuration = FALSE;
- GUID guidDecoder = GUID_NULL;
-
- DXVA2_ConfigPictureDecode config;
- ZeroMemory(&config, sizeof(config));
-
- CComPtr<IMFGetService> pGetService;
- CComPtr<IDirect3DDeviceManager9> pDeviceManager;
- CComPtr<IDirectXVideoDecoderService> pDecoderService;
- GUID* pDecoderGuids = NULL;
- HANDLE hDevice = INVALID_HANDLE_VALUE;
-
- // Query the pin for IMFGetService.
- hr = pPin->QueryInterface(__uuidof(IMFGetService), (void**)&pGetService);
-
- // Get the Direct3D device manager.
- if (SUCCEEDED(hr))
- {
- hr = pGetService->GetService(
- MR_VIDEO_ACCELERATION_SERVICE,
- __uuidof(IDirect3DDeviceManager9),
- (void**)&pDeviceManager);
- }
-
- // Open a new device handle.
- if (SUCCEEDED(hr))
- {
- hr = pDeviceManager->OpenDeviceHandle(&hDevice);
- }
-
- // Get the video decoder service.
- if (SUCCEEDED(hr))
- {
- hr = pDeviceManager->GetVideoService(
- hDevice,
- __uuidof(IDirectXVideoDecoderService),
- (void**)&pDecoderService);
- }
-
- // Get the decoder GUIDs.
- if (SUCCEEDED(hr))
- {
- hr = pDecoderService->GetDecoderDeviceGuids(&cDecoderGuids, &pDecoderGuids);
- }
-
- if (SUCCEEDED(hr))
- {
- // Look for the decoder GUIDs we want.
- for (UINT iGuid = 0; iGuid < cDecoderGuids; iGuid++)
- {
- // Do we support this mode?
- if (!IsSupportedDecoderMode(pDecoderGuids[iGuid]))
- {
- continue;
- }
-
- // Find a configuration that we support.
- hr = FindDXVA2DecoderConfiguration(pDecoderService, pDecoderGuids[iGuid], &config, &bFoundDXVA2Configuration);
-
- if (FAILED(hr))
- {
- break;
- }
-
- if (bFoundDXVA2Configuration)
- {
- // Found a good configuration. Save the GUID.
- guidDecoder = pDecoderGuids[iGuid];
- }
- }
- }
+ HRESULT hr = S_OK;
+ UINT cDecoderGuids = 0;
+ BOOL bFoundDXVA2Configuration = FALSE;
+ GUID guidDecoder = GUID_NULL;
+
+ DXVA2_ConfigPictureDecode config;
+ ZeroMemory(&config, sizeof(config));
+
+ CComPtr<IMFGetService> pGetService;
+ CComPtr<IDirect3DDeviceManager9> pDeviceManager;
+ CComPtr<IDirectXVideoDecoderService> pDecoderService;
+ GUID* pDecoderGuids = NULL;
+ HANDLE hDevice = INVALID_HANDLE_VALUE;
+
+ // Query the pin for IMFGetService.
+ hr = pPin->QueryInterface(__uuidof(IMFGetService), (void**)&pGetService);
+
+ // Get the Direct3D device manager.
+ if (SUCCEEDED(hr))
+ {
+ hr = pGetService->GetService(
+ MR_VIDEO_ACCELERATION_SERVICE,
+ __uuidof(IDirect3DDeviceManager9),
+ (void**)&pDeviceManager);
+ }
+
+ // Open a new device handle.
+ if (SUCCEEDED(hr))
+ {
+ hr = pDeviceManager->OpenDeviceHandle(&hDevice);
+ }
+
+ // Get the video decoder service.
+ if (SUCCEEDED(hr))
+ {
+ hr = pDeviceManager->GetVideoService(
+ hDevice,
+ __uuidof(IDirectXVideoDecoderService),
+ (void**)&pDecoderService);
+ }
+
+ // Get the decoder GUIDs.
+ if (SUCCEEDED(hr))
+ {
+ hr = pDecoderService->GetDecoderDeviceGuids(&cDecoderGuids, &pDecoderGuids);
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ // Look for the decoder GUIDs we want.
+ for (UINT iGuid = 0; iGuid < cDecoderGuids; iGuid++)
+ {
+ // Do we support this mode?
+ if (!IsSupportedDecoderMode(pDecoderGuids[iGuid]))
+ {
+ continue;
+ }
+
+ // Find a configuration that we support.
+ hr = FindDXVA2DecoderConfiguration(pDecoderService, pDecoderGuids[iGuid], &config, &bFoundDXVA2Configuration);
+
+ if (FAILED(hr))
+ {
+ break;
+ }
+
+ if (bFoundDXVA2Configuration)
+ {
+ // Found a good configuration. Save the GUID.
+ guidDecoder = pDecoderGuids[iGuid];
+ }
+ }
+ }
if (pDecoderGuids) CoTaskMemFree(pDecoderGuids);
- if (!bFoundDXVA2Configuration)
- {
- hr = E_FAIL; // Unable to find a configuration.
- }
-
- if (SUCCEEDED(hr))
- {
- // Store the things we will need later.
+ if (!bFoundDXVA2Configuration)
+ {
+ hr = E_FAIL; // Unable to find a configuration.
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ // Store the things we will need later.
m_pDeviceManager = pDeviceManager;
- m_pDecoderService = pDecoderService;
+ m_pDecoderService = pDecoderService;
- m_DXVA2Config = config;
- m_DXVADecoderGUID = guidDecoder;
- m_hDevice = hDevice;
- }
+ m_DXVA2Config = config;
+ m_DXVADecoderGUID = guidDecoder;
+ m_hDevice = hDevice;
+ }
- if (FAILED(hr))
- {
- if (hDevice != INVALID_HANDLE_VALUE)
- {
- pDeviceManager->CloseDeviceHandle(hDevice);
- }
- }
+ if (FAILED(hr))
+ {
+ if (hDevice != INVALID_HANDLE_VALUE)
+ {
+ pDeviceManager->CloseDeviceHandle(hDevice);
+ }
+ }
- return hr;
+ return hr;
}
HRESULT CMPCVideoDecFilter::SetEVRForDXVA2(IPin *pPin)
{
- HRESULT hr = S_OK;
+ HRESULT hr = S_OK;
- CComPtr<IMFGetService> pGetService;
- CComPtr<IDirectXVideoMemoryConfiguration> pVideoConfig;
+ CComPtr<IMFGetService> pGetService;
+ CComPtr<IDirectXVideoMemoryConfiguration> pVideoConfig;
CComPtr<IMFVideoDisplayControl> pVdc;
- // Query the pin for IMFGetService.
- hr = pPin->QueryInterface(__uuidof(IMFGetService), (void**)&pGetService);
+ // Query the pin for IMFGetService.
+ hr = pPin->QueryInterface(__uuidof(IMFGetService), (void**)&pGetService);
- // Get the IDirectXVideoMemoryConfiguration interface.
- if (SUCCEEDED(hr))
- {
- hr = pGetService->GetService(
- MR_VIDEO_ACCELERATION_SERVICE,
- __uuidof(IDirectXVideoMemoryConfiguration),
- (void**)&pVideoConfig);
+ // Get the IDirectXVideoMemoryConfiguration interface.
+ if (SUCCEEDED(hr))
+ {
+ hr = pGetService->GetService(
+ MR_VIDEO_ACCELERATION_SERVICE,
+ __uuidof(IDirectXVideoMemoryConfiguration),
+ (void**)&pVideoConfig);
if (SUCCEEDED (pGetService->GetService(MR_VIDEO_RENDER_SERVICE, __uuidof(IMFVideoDisplayControl), (void**)&pVdc)))
{
@@ -2160,29 +2156,29 @@ HRESULT CMPCVideoDecFilter::SetEVRForDXVA2(IPin *pPin)
DetectVideoCard(hWnd);
}
}
- }
-
- // Notify the EVR.
- if (SUCCEEDED(hr))
- {
- DXVA2_SurfaceType surfaceType;
-
- for (DWORD iTypeIndex = 0; ; iTypeIndex++)
- {
- hr = pVideoConfig->GetAvailableSurfaceTypeByIndex(iTypeIndex, &surfaceType);
-
- if (FAILED(hr))
+ }
+
+ // Notify the EVR.
+ if (SUCCEEDED(hr))
+ {
+ DXVA2_SurfaceType surfaceType;
+
+ for (DWORD iTypeIndex = 0; ; iTypeIndex++)
+ {
+ hr = pVideoConfig->GetAvailableSurfaceTypeByIndex(iTypeIndex, &surfaceType);
+
+ if (FAILED(hr))
break;
- if (surfaceType == DXVA2_SurfaceType_DecoderRenderTarget)
- {
- hr = pVideoConfig->SetSurfaceType(DXVA2_SurfaceType_DecoderRenderTarget);
- break;
- }
- }
- }
+ if (surfaceType == DXVA2_SurfaceType_DecoderRenderTarget)
+ {
+ hr = pVideoConfig->SetSurfaceType(DXVA2_SurfaceType_DecoderRenderTarget);
+ break;
+ }
+ }
+ }
- return hr;
+ return hr;
}
@@ -2190,7 +2186,7 @@ HRESULT CMPCVideoDecFilter::CreateDXVA2Decoder(UINT nNumRenderTargets, IDirect3D
{
HRESULT hr;
CComPtr<IDirectXVideoDecoder> pDirectXVideoDec;
-
+
m_pDecoderRenderTarget = NULL;
if (m_pDXVADecoder) m_pDXVADecoder->SetDirectXVideoDec (NULL);
@@ -2223,7 +2219,7 @@ HRESULT CMPCVideoDecFilter::FindDXVA1DecoderConfiguration(IAMVideoAccelerator* p
pAMVideoAccelerator->GetUncompFormatsSupported (guidDecoder, &dwFormats, NULL);
if (dwFormats > 0)
{
- // Find the valid render target formats for this decoder GUID.
+ // Find the valid render target formats for this decoder GUID.
pPixelFormats = DNew DDPIXELFORMAT[dwFormats];
hr = pAMVideoAccelerator->GetUncompFormatsSupported (guidDecoder, &dwFormats, pPixelFormats);
if (SUCCEEDED(hr))
@@ -2453,4 +2449,3 @@ STDMETHODIMP_(int) CMPCVideoDecFilter::GetDXVA_SD()
CAutoLock cAutoLock(&m_csProps);
return m_nDXVA_SD;
}
-
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h
index c56d7da81..655e9fad5 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.h
@@ -23,9 +23,9 @@
#pragma once
#include <d3dx9.h>
-#include <Videoacc.h> // DXVA1
+#include <Videoacc.h> // DXVA1
#include <dxva.h>
-#include <dxva2api.h> // DXVA2
+#include <dxva2api.h> // DXVA2
#include "../BaseVideoFilter/BaseVideoFilter.h"
#include "IMPCVideoDecFilter.h"
@@ -42,7 +42,7 @@ struct SwsContext;
class CCpuId;
-#define MAX_BUFF_TIME 20
+#define MAX_BUFF_TIME 20
typedef enum
{
@@ -117,9 +117,9 @@ protected:
REFERENCE_TIME m_rtLastStart; // rtStart for last delivered frame
int m_nCountEstimated; // Number of rtStart estimated since last rtStart received
-
+
bool m_bUseDXVA;
- bool m_bUseFFmpeg;
+ bool m_bUseFFmpeg;
CSize m_sar;
SwsContext* m_pSwsContext;
int m_nOutCsp;
@@ -162,8 +162,8 @@ protected:
void SetTypeSpecificFlags(IMediaSample* pMS);
HRESULT SoftwareDecode(IMediaSample* pIn, BYTE* pDataIn, int nSize, REFERENCE_TIME& rtStart, REFERENCE_TIME& rtStop);
- //void FindStartCodeVC1 (BYTE** pDataIn, int& nSize);
- //void FindStartCodeH264 (BYTE** pDataIn, int& nSize);
+//void FindStartCodeVC1 (BYTE** pDataIn, int& nSize);
+//void FindStartCodeH264 (BYTE** pDataIn, int& nSize);
bool AppendBuffer (BYTE* pDataIn, int nSize, REFERENCE_TIME rtStart, REFERENCE_TIME rtStop);
bool FindPicture(int nIndex, int nStartCode);
void ShrinkBuffer();
@@ -187,7 +187,7 @@ public:
virtual ~CMPCVideoDecFilter();
DECLARE_IUNKNOWN
- STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
+ STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
virtual bool IsVideoInterlaced();
virtual void GetOutputSize(int& w, int& h, int& arx, int& ary, int &RealWidth, int &RealHeight);
CTransformOutputPin* GetOutputPin() { return m_pOutput; }
@@ -198,7 +198,7 @@ public:
HRESULT CheckInputType(const CMediaType* mtIn);
HRESULT Transform(IMediaSample* pIn);
HRESULT CompleteConnect(PIN_DIRECTION direction,IPin *pReceivePin);
- HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
+ HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
HRESULT NewSegment(REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, double dRate);
HRESULT BreakConnect(PIN_DIRECTION dir);
@@ -222,7 +222,7 @@ public:
STDMETHOD(SetActiveCodecs(MPC_VIDEO_CODEC nValue));
STDMETHOD_(MPC_VIDEO_CODEC, GetActiveCodecs());
STDMETHODIMP_(LPCTSTR) GetVideoCardDescription();
-
+
STDMETHOD(SetARMode(int nValue));
STDMETHOD_(int, GetARMode());
@@ -269,6 +269,6 @@ public:
HRESULT FindDXVA2DecoderConfiguration(IDirectXVideoDecoderService *pDecoderService,
const GUID& guidDecoder,
DXVA2_ConfigPictureDecode *pSelectedConfig,
- BOOL *pbFoundDXVA2Configuration);
+ BOOL *pbFoundDXVA2Configuration);
HRESULT CreateDXVA2Decoder(UINT nNumRenderTargets, IDirect3DSurface9** pDecoderRenderTargets);
};
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.cpp b/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.cpp
index 1b8baf298..2f1ea0b6c 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.cpp
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.cpp
@@ -30,8 +30,6 @@
// ==>>> Resource identifier from "resource.h" present in mplayerc project!
#define ResStr(id) CString(MAKEINTRESOURCE(id))
-//
-
#define LEFT_SPACING 25
#define VERTICAL_SPACING 25
@@ -69,7 +67,7 @@ bool CMPCVideoDecSettingsWnd::OnConnect(const CInterfaceList<IUnknown, &IID_IUnk
POSITION pos = pUnks.GetHeadPosition();
while(pos && !(m_pMDF = pUnks.GetNext(pos)));
-
+
if(!m_pMDF) return false;
return true;
@@ -89,7 +87,7 @@ bool CMPCVideoDecSettingsWnd::OnActivate()
m_grpFFMpeg.Create (ResStr (IDS_VDF_FFSETTINGS), WS_VISIBLE|WS_CHILD | BS_GROUPBOX, CRect (10, nPosY, 350, nPosY+150), this, (UINT)IDC_STATIC);
#if INTERNAL_DECODER_H264
-
+
// Decoding threads
nPosY += VERTICAL_SPACING;
m_txtThreadNumber.Create (ResStr (IDS_VDF_THREADNUMBER), WS_VISIBLE|WS_CHILD, CRect (LEFT_SPACING, nPosY, 190, nPosY+15), this, (UINT)IDC_STATIC);
@@ -102,11 +100,11 @@ bool CMPCVideoDecSettingsWnd::OnActivate()
m_cbThreadNumber.AddString (_T("6"));
m_cbThreadNumber.AddString (_T("7"));
m_cbThreadNumber.AddString (_T("8"));
-
+
#endif /* INTERNAL_DECODER_H264 */
#if INTERNAL_DECODER_H264
-
+
// H264 deblocking mode
nPosY += VERTICAL_SPACING;
m_txtDiscardMode.Create (ResStr (IDS_VDF_SKIPDEBLOCK), WS_VISIBLE|WS_CHILD, CRect (LEFT_SPACING, nPosY, 190, nPosY+15), this, (UINT)IDC_STATIC);
@@ -117,9 +115,9 @@ bool CMPCVideoDecSettingsWnd::OnActivate()
m_cbDiscardMode.AddString (ResStr (IDS_VDF_DBLK_BIDIR));
m_cbDiscardMode.AddString (ResStr (IDS_VDF_DBLK_NONKFRM));
m_cbDiscardMode.AddString (ResStr (IDS_VDF_DBLK_ALL));
-
+
#endif /* INTERNAL_DECODER_H264 */
-
+
// Error recognition
nPosY += VERTICAL_SPACING;
m_txtErrorRecognition.Create (ResStr (IDS_VDF_ERROR_RECOGNITION), WS_VISIBLE|WS_CHILD, CRect (LEFT_SPACING, nPosY, 190, nPosY+15), this, (UINT)IDC_STATIC);
@@ -171,8 +169,8 @@ bool CMPCVideoDecSettingsWnd::OnActivate()
m_txtVideoCardDescription.Create (ResStr (IDS_VDF_VIDEOCARD), WS_VISIBLE|WS_CHILD, CRect (LEFT_SPACING, nPosY, 120, nPosY+15), this, (UINT)IDC_STATIC);
m_edtVideoCardDescription.Create (WS_CHILD|WS_VISIBLE|WS_DISABLED, CRect (120, nPosY, 315, nPosY+20), this, 0);
m_edtVideoCardDescription.SetWindowText (m_pMDF->GetVideoCardDescription());
-
-
+
+
DxvaGui = m_pMDF->GetDXVADecoderGuid();
if (DxvaGui != NULL)
{
@@ -240,7 +238,6 @@ bool CMPCVideoDecSettingsWnd::OnApply()
}
-
BEGIN_MESSAGE_MAP(CMPCVideoDecSettingsWnd, CInternalPropertyPageWnd)
END_MESSAGE_MAP()
@@ -261,7 +258,7 @@ bool CMPCVideoDecCodecWnd::OnConnect(const CInterfaceList<IUnknown, &IID_IUnknow
POSITION pos = pUnks.GetHeadPosition();
while(pos && !(m_pMDF = pUnks.GetNext(pos)));
-
+
if(!m_pMDF) return false;
return true;
@@ -298,13 +295,13 @@ bool CMPCVideoDecCodecWnd::OnActivate()
m_lstCodecs.AddString (_T("VC1 (FFmpeg)"));
m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_VC1) != 0);
#endif
-#if INCLUDE_MPC_VIDEO_DECODER
+#if INCLUDE_MPC_VIDEO_DECODER
m_lstCodecs.AddString (_T("Xvid"));
m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_XVID) != 0);
m_lstCodecs.AddString (_T("DivX"));
m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_DIVX) != 0);
m_lstCodecs.AddString (_T("MS-MPEG4"));
- m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_MSMPEG4) != 0);
+ m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_MSMPEG4) != 0);
m_lstCodecs.AddString (_T("FLV1/4"));
m_lstCodecs.SetCheck (nPos++, (nActiveCodecs & MPCVD_FLASH) != 0);
m_lstCodecs.AddString (_T("VP5/6"));
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.h b/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.h
index 4e0dd588e..c9953aabd 100644
--- a/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.h
+++ b/src/filters/transform/MPCVideoDec/MPCVideoDecSettingsWnd.h
@@ -40,7 +40,7 @@ CMPCVideoDecSettingsWnd : public CInternalPropertyPageWnd
CComboBox m_cbErrorRecognition;
CStatic m_txtIDCTAlgo;
CComboBox m_cbIDCTAlgo;
-
+
CButton m_grpDXVA;
CStatic m_txtDXVAMode;
CEdit m_edtDXVAMode;
@@ -52,7 +52,7 @@ CMPCVideoDecSettingsWnd : public CInternalPropertyPageWnd
CStatic m_txtDXVACompatibilityCheck;
CComboBox m_cbDXVACompatibilityCheck;
- CButton m_cbDXVA_SD;
+ CButton m_cbDXVA_SD;
enum
{
@@ -67,7 +67,7 @@ CMPCVideoDecSettingsWnd : public CInternalPropertyPageWnd
public:
CMPCVideoDecSettingsWnd();
-
+
bool OnConnect(const CInterfaceList<IUnknown, &IID_IUnknown>& pUnks);
void OnDisconnect();
bool OnActivate();
@@ -83,8 +83,6 @@ public:
-
-
class __declspec(uuid("3C395D46-8B0F-440d-B962-2F4A97355453"))
CMPCVideoDecCodecWnd : public CInternalPropertyPageWnd
{
@@ -96,7 +94,7 @@ CMPCVideoDecCodecWnd : public CInternalPropertyPageWnd
public:
CMPCVideoDecCodecWnd();
-
+
bool OnConnect(const CInterfaceList<IUnknown, &IID_IUnknown>& pUnks);
void OnDisconnect();
bool OnActivate();
diff --git a/src/filters/transform/MPCVideoDec/TlibavcodecExt.h b/src/filters/transform/MPCVideoDec/TlibavcodecExt.h
index 68297594e..49f3dfef7 100644
--- a/src/filters/transform/MPCVideoDec/TlibavcodecExt.h
+++ b/src/filters/transform/MPCVideoDec/TlibavcodecExt.h
@@ -56,6 +56,3 @@ public:
virtual void OnReleaseBuffer(AVFrame *pic) {}
virtual void HandleUserData(const uint8_t *buf,int buf_len) {}
};
-
-
-
diff --git a/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.cpp b/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.cpp
index ac0d1d304..559b5b7f5 100644
--- a/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.cpp
+++ b/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.cpp
@@ -32,13 +32,13 @@ CDXVA2Sample::CDXVA2Sample(CVideoDecDXVAAllocator *pAlloc, HRESULT *phr)
{
}
-// Note: CMediaSample does not derive from CUnknown, so we cannot use the
-// DECLARE_IUNKNOWN macro that is used by most of the filter classes.
+//Note: CMediaSample does not derive from CUnknown, so we cannot use the
+// DECLARE_IUNKNOWN macro that is used by most of the filter classes.
STDMETHODIMP CDXVA2Sample::QueryInterface(REFIID riid, __deref_out void **ppv)
{
- CheckPointer(ppv,E_POINTER);
- ValidateReadWritePtr(ppv,sizeof(PVOID));
+ CheckPointer(ppv,E_POINTER);
+ ValidateReadWritePtr(ppv,sizeof(PVOID));
if (riid == __uuidof(IMFGetService))
{
@@ -107,7 +107,7 @@ STDMETHODIMP_(int) CDXVA2Sample::GetDXSurfaceId()
CVideoDecDXVAAllocator::CVideoDecDXVAAllocator(CMPCVideoDecFilter* pVideoDecFilter, HRESULT* phr)
- : CBaseAllocator(NAME("CVideoDecDXVAAllocator"), NULL, phr)
+ : CBaseAllocator(NAME("CVideoDecDXVAAllocator"), NULL, phr)
{
m_pVideoDecFilter = pVideoDecFilter;
m_ppRTSurfaceArray = NULL;
@@ -120,7 +120,7 @@ CVideoDecDXVAAllocator::~CVideoDecDXVAAllocator()
HRESULT CVideoDecDXVAAllocator::Alloc()
{
- HRESULT hr;
+ HRESULT hr;
CComPtr<IDirectXVideoAccelerationService> pDXVA2Service;
CheckPointer(m_pVideoDecFilter->m_pDeviceManager, E_UNEXPECTED);
@@ -129,104 +129,103 @@ HRESULT CVideoDecDXVAAllocator::Alloc()
CAutoLock lock(this);
- hr = __super::Alloc();
+ hr = __super::Alloc();
- if (SUCCEEDED(hr))
- {
- // Free the old resources.
- Free();
+ if (SUCCEEDED(hr))
+ {
+ // Free the old resources.
+ Free();
m_nSurfaceArrayCount = m_lCount;
- // Allocate a new array of pointers.
- m_ppRTSurfaceArray = DNew IDirect3DSurface9*[m_lCount];
- if (m_ppRTSurfaceArray == NULL)
- {
- hr = E_OUTOFMEMORY;
- }
- else
- {
- ZeroMemory(m_ppRTSurfaceArray, sizeof(IDirect3DSurface9*) * m_lCount);
- }
- }
-
- // Allocate the surfaces.
+ // Allocate a new array of pointers.
+ m_ppRTSurfaceArray = DNew IDirect3DSurface9*[m_lCount];
+ if (m_ppRTSurfaceArray == NULL)
+ {
+ hr = E_OUTOFMEMORY;
+ }
+ else
+ {
+ ZeroMemory(m_ppRTSurfaceArray, sizeof(IDirect3DSurface9*) * m_lCount);
+ }
+ }
+
+ // Allocate the surfaces.
D3DFORMAT m_dwFormat = m_pVideoDecFilter->m_VideoDesc.Format;
- if (SUCCEEDED(hr))
- {
- hr = pDXVA2Service->CreateSurface(
- m_pVideoDecFilter->PictWidthRounded(),
- m_pVideoDecFilter->PictHeightRounded(),
- m_lCount - 1,
- (D3DFORMAT)m_dwFormat,
- D3DPOOL_DEFAULT,
- 0,
- DXVA2_VideoDecoderRenderTarget,
- m_ppRTSurfaceArray,
- NULL
- );
- }
-
- if (SUCCEEDED(hr))
- {
+ if (SUCCEEDED(hr))
+ {
+ hr = pDXVA2Service->CreateSurface(
+ m_pVideoDecFilter->PictWidthRounded(),
+ m_pVideoDecFilter->PictHeightRounded(),
+ m_lCount - 1,
+ (D3DFORMAT)m_dwFormat,
+ D3DPOOL_DEFAULT,
+ 0,
+ DXVA2_VideoDecoderRenderTarget,
+ m_ppRTSurfaceArray,
+ NULL
+ );
+ }
+
+ if (SUCCEEDED(hr))
+ {
// Important : create samples in reverse order !
- for (m_lAllocated = m_lCount-1; m_lAllocated >= 0; m_lAllocated--)
- {
- CDXVA2Sample *pSample = DNew CDXVA2Sample(this, &hr);
- if (pSample == NULL)
- {
- hr = E_OUTOFMEMORY;
- break;
- }
- if (FAILED(hr))
- {
- break;
- }
- // Assign the Direct3D surface pointer and the index.
- pSample->SetSurface(m_lAllocated, m_ppRTSurfaceArray[m_lAllocated]);
-
- // Add to the sample list.
- m_lFree.Add(pSample);
- }
+ for (m_lAllocated = m_lCount-1; m_lAllocated >= 0; m_lAllocated--)
+ {
+ CDXVA2Sample *pSample = DNew CDXVA2Sample(this, &hr);
+ if (pSample == NULL)
+ {
+ hr = E_OUTOFMEMORY;
+ break;
+ }
+ if (FAILED(hr))
+ {
+ break;
+ }
+ // Assign the Direct3D surface pointer and the index.
+ pSample->SetSurface(m_lAllocated, m_ppRTSurfaceArray[m_lAllocated]);
+
+ // Add to the sample list.
+ m_lFree.Add(pSample);
+ }
hr = m_pVideoDecFilter->CreateDXVA2Decoder (m_lCount, m_ppRTSurfaceArray);
if (FAILED (hr)) Free();
}
- if (SUCCEEDED(hr))
- {
- m_bChanged = FALSE;
- }
- return hr;
+ if (SUCCEEDED(hr))
+ {
+ m_bChanged = FALSE;
+ }
+ return hr;
}
void CVideoDecDXVAAllocator::Free()
{
- CMediaSample *pSample = NULL;
+ CMediaSample *pSample = NULL;
m_pVideoDecFilter->FlushDXVADecoder();
// m_FreeSurface.RemoveAll();
- do
- {
- pSample = m_lFree.RemoveHead();
- if (pSample)
- {
- delete pSample;
- }
- } while (pSample);
-
- if (m_ppRTSurfaceArray)
- {
- for (long i = 0; i < m_nSurfaceArrayCount; i++)
- {
- if (m_ppRTSurfaceArray[i] != NULL)
+ do
+ {
+ pSample = m_lFree.RemoveHead();
+ if (pSample)
+ {
+ delete pSample;
+ }
+ } while (pSample);
+
+ if (m_ppRTSurfaceArray)
+ {
+ for (long i = 0; i < m_nSurfaceArrayCount; i++)
+ {
+ if (m_ppRTSurfaceArray[i] != NULL)
m_ppRTSurfaceArray[i]->Release();
- }
+ }
- delete [] m_ppRTSurfaceArray;
+ delete [] m_ppRTSurfaceArray;
m_ppRTSurfaceArray = NULL;
- }
- m_lAllocated = 0;
+ }
+ m_lAllocated = 0;
m_nSurfaceArrayCount = 0;
}
-
diff --git a/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.h b/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.h
index be49e6866..a480e16ca 100644
--- a/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.h
+++ b/src/filters/transform/MPCVideoDec/VideoDecDXVAAllocator.h
@@ -39,54 +39,53 @@ IMPCDXVA2Sample : public IUnknown
class CDXVA2Sample : public CMediaSample, public IMFGetService, public IMPCDXVA2Sample
{
- friend class CVideoDecDXVAAllocator;
+ friend class CVideoDecDXVAAllocator;
public:
- CDXVA2Sample(CVideoDecDXVAAllocator *pAlloc, HRESULT *phr);
+ CDXVA2Sample(CVideoDecDXVAAllocator *pAlloc, HRESULT *phr);
- // Note: CMediaSample does not derive from CUnknown, so we cannot use the
- // DECLARE_IUNKNOWN macro that is used by most of the filter classes.
+ //Note: CMediaSample does not derive from CUnknown, so we cannot use the
+ // DECLARE_IUNKNOWN macro that is used by most of the filter classes.
STDMETHODIMP QueryInterface(REFIID riid, __deref_out void **ppv);
- STDMETHODIMP_(ULONG) AddRef();
- STDMETHODIMP_(ULONG) Release();
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
- // IMFGetService::GetService
- STDMETHODIMP GetService(REFGUID guidService, REFIID riid, LPVOID *ppv);
+ // IMFGetService::GetService
+ STDMETHODIMP GetService(REFGUID guidService, REFIID riid, LPVOID *ppv);
// IMPCDXVA2Sample
STDMETHODIMP_(int) GetDXSurfaceId();
- // Override GetPointer because this class does not manage a system memory buffer.
- // The EVR uses the MR_BUFFER_SERVICE service to get the Direct3D surface.
- STDMETHODIMP GetPointer(BYTE ** ppBuffer);
+ // Override GetPointer because this class does not manage a system memory buffer.
+ // The EVR uses the MR_BUFFER_SERVICE service to get the Direct3D surface.
+ STDMETHODIMP GetPointer(BYTE ** ppBuffer);
private:
- // Sets the pointer to the Direct3D surface.
- void SetSurface(DWORD surfaceId, IDirect3DSurface9 *pSurf);
+ // Sets the pointer to the Direct3D surface.
+ void SetSurface(DWORD surfaceId, IDirect3DSurface9 *pSurf);
- CComPtr<IDirect3DSurface9> m_pSurface;
- DWORD m_dwSurfaceId;
+ CComPtr<IDirect3DSurface9> m_pSurface;
+ DWORD m_dwSurfaceId;
};
-
class CVideoDecDXVAAllocator : public CBaseAllocator
{
public:
CVideoDecDXVAAllocator(CMPCVideoDecFilter* pVideoDecFilter, HRESULT* phr);
virtual ~CVideoDecDXVAAllocator();
- // STDMETHODIMP GetBuffer(__deref_out IMediaSample **ppBuffer, // Try for a circular buffer!
- // __in_opt REFERENCE_TIME * pStartTime,
- // __in_opt REFERENCE_TIME * pEndTime,
- // DWORD dwFlags);
- //
- // STDMETHODIMP ReleaseBuffer(IMediaSample *pBuffer);
- // CAtlList<int> m_FreeSurface;
+// STDMETHODIMP GetBuffer(__deref_out IMediaSample **ppBuffer, // Try for a circular buffer!
+// __in_opt REFERENCE_TIME * pStartTime,
+// __in_opt REFERENCE_TIME * pEndTime,
+// DWORD dwFlags);
+//
+// STDMETHODIMP ReleaseBuffer(IMediaSample *pBuffer);
+// CAtlList<int> m_FreeSurface;
protected:
diff --git a/src/filters/transform/MPCVideoDec/VideoDecOutputPin.cpp b/src/filters/transform/MPCVideoDec/VideoDecOutputPin.cpp
index c3652416f..9f8675efc 100644
--- a/src/filters/transform/MPCVideoDec/VideoDecOutputPin.cpp
+++ b/src/filters/transform/MPCVideoDec/VideoDecOutputPin.cpp
@@ -27,7 +27,7 @@
#include "../../../DSUtil/DSUtil.h"
CVideoDecOutputPin::CVideoDecOutputPin(TCHAR* pObjectName, CBaseVideoFilter* pFilter, HRESULT* phr, LPCWSTR pName)
- : CBaseVideoOutputPin(pObjectName, pFilter, phr, pName)
+ : CBaseVideoOutputPin(pObjectName, pFilter, phr, pName)
{
m_pVideoDecFilter = static_cast<CMPCVideoDecFilter*> (pFilter);
m_pDXVA2Allocator = NULL;
@@ -110,7 +110,7 @@ STDMETHODIMP CVideoDecOutputPin::GetCreateVideoAcceleratorData(const GUID *pGuid
AMVACompBufferInfo CompInfo[30];
DWORD dwNumTypesCompBuffers = countof(CompInfo);
CComQIPtr<IAMVideoAccelerator> pAMVideoAccelerator = GetConnected();
- DXVA_ConnectMode* pConnectMode;
+ DXVA_ConnectMode* pConnectMode;
if (pAMVideoAccelerator)
{
diff --git a/src/filters/transform/MPCVideoDec/VideoDecOutputPin.h b/src/filters/transform/MPCVideoDec/VideoDecOutputPin.h
index d6de33575..12fc60cd1 100644
--- a/src/filters/transform/MPCVideoDec/VideoDecOutputPin.h
+++ b/src/filters/transform/MPCVideoDec/VideoDecOutputPin.h
@@ -42,7 +42,7 @@ public:
HRESULT InitAllocator(IMemAllocator **ppAlloc);
DECLARE_IUNKNOWN
- STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
+ STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
// IAMVideoAcceleratorNotify
STDMETHODIMP GetUncompSurfacesInfo(const GUID *pGuid, LPAMVAUncompBufferInfo pUncompBufferInfo);
diff --git a/src/filters/transform/MPCVideoDec/stdafx.h b/src/filters/transform/MPCVideoDec/stdafx.h
index 41d2d3d49..8ea5021d7 100644
--- a/src/filters/transform/MPCVideoDec/stdafx.h
+++ b/src/filters/transform/MPCVideoDec/stdafx.h
@@ -32,7 +32,7 @@
#endif
#include <afx.h>
-#include <afxwin.h> // MFC core and standard components
+#include <afxwin.h> // MFC core and standard components
#include <streams.h>
@@ -41,7 +41,6 @@
#include <evr.h>
#include <mfapi.h>
#include <mferror.h>
-
#include <atlcoll.h>
#include <vector>