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

Stefano Sabatini stefasab at gmail.com
Tue Jun 2 12:25:34 CEST 2015


On date Friday 2015-05-29 14:34:08 -0300, James Almer encoded:
> 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?

So after rechecking, I realized that I was using the gcc defined in
the MinGW32 directory. Compilation with MSYS2 went fine, with and
without the patch.

I'm going to push the patch today if there are no objections.
-- 
FFmpeg = Fast & Fundamentalist MultiPurpose Exuberant Guide


More information about the ffmpeg-devel mailing list