MythTV  master
Classes | Macros | Typedefs | Functions | Variables
dxva2decoder.cpp File Reference
#include <QString>
#include <QLibrary>
#include "mythlogging.h"
#include "initguid.h"
#include "mythrender_d3d9.h"
#include "dxva2decoder.h"
Include dependency graph for dxva2decoder.cpp:

Go to the source code of this file.

Classes

struct  dxva2_mode
 

Macros

#define LOC   QString("DXVA2: ")
 
#define ERR   QString("DXVA2 Error: ")
 
#define DXVA2_ModeWMV8_PostProc   DXVA2_ModeWMV8_A
 
#define DXVA2_ModeWMV8_MoComp   DXVA2_ModeWMV8_B
 
#define DXVA2_ModeWMV9_PostProc   DXVA2_ModeWMV9_A
 
#define DXVA2_ModeWMV9_MoComp   DXVA2_ModeWMV9_B
 
#define DXVA2_ModeWMV9_IDCT   DXVA2_ModeWMV9_C
 
#define DXVA2_ModeVC1_PostProc   DXVA2_ModeVC1_A
 
#define DXVA2_ModeVC1_MoComp   DXVA2_ModeVC1_B
 
#define DXVA2_ModeVC1_IDCT   DXVA2_ModeVC1_C
 
#define DXVA2_ModeVC1_VLD   DXVA2_ModeVC1_D
 
#define DXVA2_ModeH264_MoComp_NoFGT   DXVA2_ModeH264_A
 
#define DXVA2_ModeH264_MoComp_FGT   DXVA2_ModeH264_B
 
#define DXVA2_ModeH264_IDCT_NoFGT   DXVA2_ModeH264_C
 
#define DXVA2_ModeH264_IDCT_FGT   DXVA2_ModeH264_D
 
#define DXVA2_ModeH264_VLD_NoFGT   DXVA2_ModeH264_E
 
#define DXVA2_ModeH264_VLD_FGT   DXVA2_ModeH264_F
 
#define CREATE_CHECK(arg1, arg2)
 

Typedefs

typedef HRESULT(__stdcall * DXVA2CreateVideoServicePtr) (IDirect3DDevice9 *pDD, REFIID riid, void **ppService)
 

Functions

static QString toString (const GUID &guid)
 
 DEFINE_GUID (DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5)
 
 DEFINE_GUID (DXVA2_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0, 0x4563, 0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66)
 
 DEFINE_GUID (DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea, 0x4690, 0x80, 0x77, 0x47, 0x33, 0x46, 0x20, 0x9b, 0x7e)
 
 DEFINE_GUID (DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9)
 
 DEFINE_GUID (DXVA2_Intel_ModeH264_A, 0x604F8E64, 0x4951, 0x4c54, 0x88, 0xFE, 0xAB, 0xD2, 0x5C, 0x15, 0xB3, 0xD6)
 
 DEFINE_GUID (DXVA2_Intel_ModeH264_C, 0x604F8E66, 0x4951, 0x4c54, 0x88, 0xFE, 0xAB, 0xD2, 0x5C, 0x15, 0xB3, 0xD6)
 
 DEFINE_GUID (DXVA2_Intel_ModeH264_E, 0x604F8E68, 0x4951, 0x4c54, 0x88, 0xFE, 0xAB, 0xD2, 0x5C, 0x15, 0xB3, 0xD6)
 
 DEFINE_GUID (DXVA2_Intel_ModeVC1_E, 0xBCC5DB6D, 0xA2B6, 0x4AF0, 0xAC, 0xE4, 0xAD, 0xB1, 0xF7, 0x87, 0xBC, 0x89)
 

Variables

static const GUID IID_IDirectXVideoDecoderService
 
static const dxva2_mode dxva2_modes []
 

Macro Definition Documentation

◆ LOC

#define LOC   QString("DXVA2: ")

Definition at line 30 of file dxva2decoder.cpp.

◆ ERR

#define ERR   QString("DXVA2 Error: ")

Definition at line 31 of file dxva2decoder.cpp.

◆ DXVA2_ModeWMV8_PostProc

#define DXVA2_ModeWMV8_PostProc   DXVA2_ModeWMV8_A

Definition at line 56 of file dxva2decoder.cpp.

◆ DXVA2_ModeWMV8_MoComp

#define DXVA2_ModeWMV8_MoComp   DXVA2_ModeWMV8_B

Definition at line 57 of file dxva2decoder.cpp.

◆ DXVA2_ModeWMV9_PostProc

#define DXVA2_ModeWMV9_PostProc   DXVA2_ModeWMV9_A

Definition at line 59 of file dxva2decoder.cpp.

◆ DXVA2_ModeWMV9_MoComp

#define DXVA2_ModeWMV9_MoComp   DXVA2_ModeWMV9_B

Definition at line 60 of file dxva2decoder.cpp.

◆ DXVA2_ModeWMV9_IDCT

#define DXVA2_ModeWMV9_IDCT   DXVA2_ModeWMV9_C

Definition at line 61 of file dxva2decoder.cpp.

◆ DXVA2_ModeVC1_PostProc

#define DXVA2_ModeVC1_PostProc   DXVA2_ModeVC1_A

Definition at line 63 of file dxva2decoder.cpp.

◆ DXVA2_ModeVC1_MoComp

#define DXVA2_ModeVC1_MoComp   DXVA2_ModeVC1_B

Definition at line 64 of file dxva2decoder.cpp.

◆ DXVA2_ModeVC1_IDCT

#define DXVA2_ModeVC1_IDCT   DXVA2_ModeVC1_C

Definition at line 65 of file dxva2decoder.cpp.

◆ DXVA2_ModeVC1_VLD

#define DXVA2_ModeVC1_VLD   DXVA2_ModeVC1_D

Definition at line 66 of file dxva2decoder.cpp.

◆ DXVA2_ModeH264_MoComp_NoFGT

#define DXVA2_ModeH264_MoComp_NoFGT   DXVA2_ModeH264_A

Definition at line 68 of file dxva2decoder.cpp.

◆ DXVA2_ModeH264_MoComp_FGT

#define DXVA2_ModeH264_MoComp_FGT   DXVA2_ModeH264_B

Definition at line 69 of file dxva2decoder.cpp.

◆ DXVA2_ModeH264_IDCT_NoFGT

#define DXVA2_ModeH264_IDCT_NoFGT   DXVA2_ModeH264_C

Definition at line 70 of file dxva2decoder.cpp.

◆ DXVA2_ModeH264_IDCT_FGT

#define DXVA2_ModeH264_IDCT_FGT   DXVA2_ModeH264_D

Definition at line 71 of file dxva2decoder.cpp.

◆ DXVA2_ModeH264_VLD_NoFGT

#define DXVA2_ModeH264_VLD_NoFGT   DXVA2_ModeH264_E

Definition at line 72 of file dxva2decoder.cpp.

◆ DXVA2_ModeH264_VLD_FGT

#define DXVA2_ModeH264_VLD_FGT   DXVA2_ModeH264_F

Definition at line 73 of file dxva2decoder.cpp.

◆ CREATE_CHECK

#define CREATE_CHECK (   arg1,
  arg2 
)
Value:
if (ok) \
{ \
ok = arg1; \
if (!ok) \
LOG(VB_GENERAL, LOG_ERR, LOC + (arg2)); \
}
#define LOC

Definition at line 120 of file dxva2decoder.cpp.

Typedef Documentation

◆ DXVA2CreateVideoServicePtr

typedef HRESULT(__stdcall * DXVA2CreateVideoServicePtr) (IDirect3DDevice9 *pDD, REFIID riid, void **ppService)

Definition at line 163 of file dxva2decoder.cpp.

Function Documentation

◆ toString()

static QString toString ( const GUID &  guid)
inlinestatic

Definition at line 14 of file dxva2decoder.cpp.

Referenced by DXVA2Decoder::CreateDecoder(), and DXVA2Decoder::GetInputOutput().

◆ DEFINE_GUID() [1/22]

DEFINE_GUID ( DXVA2_ModeH264_A  ,
0x1b81be64  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [2/22]

DEFINE_GUID ( DXVA2_ModeH264_B  ,
0x1b81be65  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [3/22]

DEFINE_GUID ( DXVA2_ModeH264_C  ,
0x1b81be66  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [4/22]

DEFINE_GUID ( DXVA2_ModeH264_D  ,
0x1b81be67  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [5/22]

DEFINE_GUID ( DXVA2_ModeH264_E  ,
0x1b81be68  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [6/22]

DEFINE_GUID ( DXVA2_ModeH264_F  ,
0x1b81be69  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [7/22]

DEFINE_GUID ( DXVA2_ModeWMV8_A  ,
0x1b81be80  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [8/22]

DEFINE_GUID ( DXVA2_ModeWMV8_B  ,
0x1b81be81  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [9/22]

DEFINE_GUID ( DXVA2_ModeWMV9_A  ,
0x1b81be90  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [10/22]

DEFINE_GUID ( DXVA2_ModeWMV9_B  ,
0x1b81be91  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [11/22]

DEFINE_GUID ( DXVA2_ModeWMV9_C  ,
0x1b81be94  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [12/22]

DEFINE_GUID ( DXVA2_ModeVC1_A  ,
0x1b81beA0  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [13/22]

DEFINE_GUID ( DXVA2_ModeVC1_B  ,
0x1b81beA1  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [14/22]

DEFINE_GUID ( DXVA2_ModeVC1_C  ,
0x1b81beA2  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [15/22]

DEFINE_GUID ( DXVA2_ModeVC1_D  ,
0x1b81beA3  ,
0xa0c7  ,
0x11d3  ,
0xb9  ,
0x84  ,
0x00  ,
0xc0  ,
0x4f  ,
0x2e  ,
0x73  ,
0xc5   
)

◆ DEFINE_GUID() [16/22]

DEFINE_GUID ( DXVA2_ModeMPEG2_MoComp  ,
0xe6a9f44b  ,
0x61b0  ,
0x4563  ,
0x9e  ,
0xa4  ,
0x63  ,
0xd2  ,
0xa3  ,
0xc6  ,
0xfe  ,
0x66   
)

◆ DEFINE_GUID() [17/22]

DEFINE_GUID ( DXVA2_ModeMPEG2_IDCT  ,
0xbf22ad00  ,
0x03ea  ,
0x4690  ,
0x80  ,
0x77  ,
0x47  ,
0x33  ,
0x46  ,
0x20  ,
0x9b  ,
0x7e   
)

◆ DEFINE_GUID() [18/22]

DEFINE_GUID ( DXVA2_ModeMPEG2_VLD  ,
0xee27417f  ,
0x5e28  ,
0x4e65  ,
0xbe  ,
0xea  ,
0x1d  ,
0x26  ,
0xb5  ,
0x08  ,
0xad  ,
0xc9   
)

◆ DEFINE_GUID() [19/22]

DEFINE_GUID ( DXVA2_Intel_ModeH264_A  ,
0x604F8E64  ,
0x4951  ,
0x4c54  ,
0x88  ,
0xFE  ,
0xAB  ,
0xD2  ,
0x5C  ,
0x15  ,
0xB3  ,
0xD6   
)

◆ DEFINE_GUID() [20/22]

DEFINE_GUID ( DXVA2_Intel_ModeH264_C  ,
0x604F8E66  ,
0x4951  ,
0x4c54  ,
0x88  ,
0xFE  ,
0xAB  ,
0xD2  ,
0x5C  ,
0x15  ,
0xB3  ,
0xD6   
)

◆ DEFINE_GUID() [21/22]

DEFINE_GUID ( DXVA2_Intel_ModeH264_E  ,
0x604F8E68  ,
0x4951  ,
0x4c54  ,
0x88  ,
0xFE  ,
0xAB  ,
0xD2  ,
0x5C  ,
0x15  ,
0xB3  ,
0xD6   
)

◆ DEFINE_GUID() [22/22]

DEFINE_GUID ( DXVA2_Intel_ModeVC1_E  ,
0xBCC5DB6D  ,
0xA2B6  ,
0x4AF0  ,
0xAC  ,
0xE4  ,
0xAD  ,
0xB1  ,
0xF7  ,
0x87  ,
0xBC  ,
0x89   
)

Variable Documentation

◆ IID_IDirectXVideoDecoderService

const GUID IID_IDirectXVideoDecoderService
static
Initial value:
=
{
0xfc51a551, 0xd5e7, 0x11d9, {0xaf,0x55,0x00,0x05,0x4e,0x43,0xff,0x02}
}

Definition at line 9 of file dxva2decoder.cpp.

Referenced by DXVA2Decoder::CreateVideoService().

◆ dxva2_modes

const dxva2_mode dxva2_modes[]
static

Definition at line 86 of file dxva2decoder.cpp.

Referenced by DXVA2Decoder::GetInputOutput().