[FFmpeg-devel] [PATCH] ffmpeg_dxva2: call GetDesktopWindow() in place of GetShellWindow()

James Almer jamrial at gmail.com
Fri May 29 19:34:08 CEST 2015


On 29/05/15 12:40 PM, Stefano Sabatini wrote:
> On date Friday 2015-05-29 16:32:11 +0200, Hendrik Leppkes encoded:
>> On Fri, May 29, 2015 at 3:21 PM, Stefano Sabatini <stefasab at gmail.com> wrote:
>>> This fixes compilation with latest MinGW32 and MSYS2/MinGW64.
>>> ---
>>>  ffmpeg_dxva2.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/ffmpeg_dxva2.c b/ffmpeg_dxva2.c
>>> index 741c55b..6b20195 100644
>>> --- a/ffmpeg_dxva2.c
>>> +++ b/ffmpeg_dxva2.c
>>> @@ -364,7 +364,7 @@ static int dxva2_alloc(AVCodecContext *s)
>>>      d3dpp.SwapEffect       = D3DSWAPEFFECT_DISCARD;
>>>      d3dpp.Flags            = D3DPRESENTFLAG_VIDEO;
>>>
>>> -    hr = IDirect3D9_CreateDevice(ctx->d3d9, adapter, D3DDEVTYPE_HAL, GetShellWindow(),
>>> +    hr = IDirect3D9_CreateDevice(ctx->d3d9, adapter, D3DDEVTYPE_HAL, GetDesktopWindow(),
>>>                                   D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED | D3DCREATE_FPU_PRESERVE,
>>>                                   &d3dpp, &ctx->d3d9device);
>>>      if (FAILED(hr)) {
>>
>>
> 
>> While the patch itself is fine, I would still encourage people to
>> abandon mingw32 (which is dead) and move to mingw-w64, which is much
>> newer and still maintained.
> 
> I agree, I plan to update the wiki soon, but note that the patch is
> also required when compiling with MSYS2+MinGW64.

I'm using MSYS2's gcc 4.9.2 package (which uses a recent Mingw-w64 snapshot from
trunk) yet I'm getting no failures of any kind. Also tried a self compiled gcc
5.1.0 using Mingw-w64 v4 (latest stable release) and it compiles fine as well.
Can't comment about mingw32 since i haven't used in a long time.

What error are you getting and is your MSYS2 environment modified in any way?

> 
> I'll apply the patch in a few days if I read no objections, thanks.
> 



More information about the ffmpeg-devel mailing list