2011-06-13, 21:49
Hi All,
I have modified the DXVA2 engine in XBMC's code and the patch made by a11599 to support hardware deinterlacing to both software and DXVA2 decoded playback in this patch. I think this feature will be great for users (like me) are following the evolution of PVR branch.
For those who want to test the new feature I have compiled an installer in this link. Please note this is a first version of the patch and I have only tested it in my system, so any bug reports are welcome.
To use the feature you don't have to do nothing. The player always applies DVXA2 rendering because at least bob and progressive processing must be implemented for all the video devices (Microsoft specification). To select the deinterlacing technology you can use the configuration described in a11599's post. The quickswitch option is ignored and always enabled because I didn't have any issues with it. You can select ffmpeg software or DXVA2 decoding as usual in general GUI video settings.
What is changed in code is related to CProcessor which is made totally independent of CDecoder. I have algo changed the way DirectX surfaces are created and managed in both classes to make them compatible and faster. I also have included a NV12 colorspace converter for software decoded surfaces to make use of most advanded DXVA2 deinterlacers (specially ATI video cards). You can see all the code changes in my git.
Update: new version of the patch is available with several bug fixes. Here there is also a new installer version with all the fixes and my H264 ATI patch and thespecialist's one for VC-1.
Update2:
New installer version based on my new git pvr branch. What this version includes:
- opdenkamp's PVR branch.
- my last DXVA2 deinterlacing patch based on a11599's one.
- last fixes for "black screen" problem and DXVA2 zoom scaling.
- other bug fixes found in my own tests.
- modification in method for detecting and applying ATI cards workaround as pointed by a11599.
- my patch for artifacts with ATI cards and H264 DXVA2 decoding.
- thespecialist's patches for VC-1 and MPEG2 DXVA2 decoding.
I have modified the DXVA2 engine in XBMC's code and the patch made by a11599 to support hardware deinterlacing to both software and DXVA2 decoded playback in this patch. I think this feature will be great for users (like me) are following the evolution of PVR branch.
For those who want to test the new feature I have compiled an installer in this link. Please note this is a first version of the patch and I have only tested it in my system, so any bug reports are welcome.
To use the feature you don't have to do nothing. The player always applies DVXA2 rendering because at least bob and progressive processing must be implemented for all the video devices (Microsoft specification). To select the deinterlacing technology you can use the configuration described in a11599's post. The quickswitch option is ignored and always enabled because I didn't have any issues with it. You can select ffmpeg software or DXVA2 decoding as usual in general GUI video settings.
What is changed in code is related to CProcessor which is made totally independent of CDecoder. I have algo changed the way DirectX surfaces are created and managed in both classes to make them compatible and faster. I also have included a NV12 colorspace converter for software decoded surfaces to make use of most advanded DXVA2 deinterlacers (specially ATI video cards). You can see all the code changes in my git.
Update: new version of the patch is available with several bug fixes. Here there is also a new installer version with all the fixes and my H264 ATI patch and thespecialist's one for VC-1.
Update2:
New installer version based on my new git pvr branch. What this version includes:
- opdenkamp's PVR branch.
- my last DXVA2 deinterlacing patch based on a11599's one.
- last fixes for "black screen" problem and DXVA2 zoom scaling.
- other bug fixes found in my own tests.
- modification in method for detecting and applying ATI cards workaround as pointed by a11599.
- my patch for artifacts with ATI cards and H264 DXVA2 decoding.
- thespecialist's patches for VC-1 and MPEG2 DXVA2 decoding.