wangf1978 / DirectXVideoScreen

Various programs around Desktop Duplication API, DirectX Video Processor, Shader, DX11/DX9

Repository from Github https://github.comwangf1978/DirectXVideoScreenRepository from Github https://github.comwangf1978/DirectXVideoScreen

DirectXVideoScreen

  • D3D9RenderShaderYUV : ok
  • D3D9VideoProcessor : ok
  • D3D11ShaderNV12 : ok
  • D3D11VideoProcessor : ok
  • DirectXVideoScreen : not started
  • SimpleDesktopDuplication : ok

D3D9RenderShaderYUV

A DirectX9 program to convert NV12/YV12 to RGBA with shader. I use a technique that I called "Shift for YUV texture". This technique uses one or two Texture1D, so we can use the shader directly on the NV12/YV12 texture.

ShowRGB

YUVShader

D3D9VideoProcessor

A DirectX9 program to convert BGRA texture to NV12 texture, using the video processor from the GPU.

D3D11ShaderNV12

Notes: The original implementation only shows how to seperate Y, U, V channels from RGB texture, and downsample U/V plane(s), and merge them into a R8 plane, don't form a real NV12 texture in GPU side, now added some code to implement this code path. ShaderRGB2NV12

A DirectX11 program to convert BGRA texture to NV12 texture, using shader only.

ShaderNV12

D3D11VideoProcessor

A DirectX11 program to convert BGRA texture to NV12 texture, using the video processor from the GPU.

DirectXVideoScreen

Not started

SimpleDesktopDuplication

A DirectX11 program using Desktop Duplication API. A simple screenshot is done.

About

Various programs around Desktop Duplication API, DirectX Video Processor, Shader, DX11/DX9


Languages

Language:C++ 90.4%Language:HLSL 6.9%Language:C 2.7%