On Mon, 8 May 2017 22:38:55 +0100
Mark Thompson <[email protected]> wrote:

> On 04/05/17 07:44, wm4 wrote:
> > Radically rebased, and omits a few in-between commits that are
> > unnecessary for the end result. avconv_dxva2.c should probably
> > also be deleted, but for now it'd only inflate the diff. As
> > part of the rebase I've also removed Steve Lhomme as author
> > name - let me know whether I should set his name back on the
> > two relevant commits (first and last one), or how this should
> > be correctly handled.  
> 
> With the whole set applied, the default build configuration fails to build 
> avconv for me with:
> 
> libavcodec/libavcodec.a(dxva2.o):dxva2.c:(.rdata$IID_IDirectXVideoDecoderService[IID_IDirectXVideoDecoderService]+0x0):
>  multiple definition of `IID_IDirectXVideoDecoderService'
> avtools/avconv_dxva2.o:avconv_dxva2.c:(.rdata+0x310): first defined here
> libavcodec/libavcodec.a(dxva2.o): In function `bufref_free_interface':
> C:/msys64/home/mark/libav/d3d11/libavcodec/dxva2.c:210: multiple definition 
> of `DXVA2_ModeVC1_D'
> avtools/avconv_dxva2.o:C:/msys64/home/mark/libav/d3d11/avtools/avconv_dxva2.c:288:
>  first defined here
> libavcodec/libavcodec.a(dxva2.o): In function `bufref_free_interface':
> C:/msys64/home/mark/libav/d3d11/libavcodec/dxva2.c:210: multiple definition 
> of `DXVA2_ModeH264_F'
> avtools/avconv_dxva2.o:C:/msys64/home/mark/libav/d3d11/avtools/avconv_dxva2.c:289:
>  first defined here
> libavcodec/libavcodec.a(dxva2.o): In function `bufref_free_interface':
> C:/msys64/home/mark/libav/d3d11/libavcodec/dxva2.c:210: multiple definition 
> of `DXVA2_ModeH264_E'
> avtools/avconv_dxva2.o:C:/msys64/home/mark/libav/d3d11/avtools/avconv_dxva2.c:295:
>  first defined here
> libavcodec/libavcodec.a(dxva2.o): In function `bufref_free_interface':
> C:/msys64/home/mark/libav/d3d11/libavcodec/dxva2.c:210: multiple definition 
> of `DXVA2_ModeMPEG2_VLD'
> avtools/avconv_dxva2.o:C:/msys64/home/mark/libav/d3d11/avtools/avconv_dxva2.c:295:
>  first defined here
> collect2.exe: error: ld returned 1 exit status

That really shouldn't happen. All those definitions start with ff_ in
the dxva2.c code (because I haven't figured out how to do it correctly).

Maybe the included headers actually define those GUIDs. How this GUID
definition stuff works always has been a mystery to me.

> Trying to get around that by building with --disable-dxva2 doesn't work 
> either (unknown type AVDXVA2FramesContext).  So, I haven't tested it at all 
> yet (may look more later).

I haven't tested yet whether it builds/works correctly with either
dxva2 or d3d11va disabled (because apparently we still want that to
work).

> The "D3D11VA" hwcontext doesn't have much to do with "VA" directly anymore - 
> maybe it should just be D3D11?

The dxva2 hwcontext is also actually a Direct3D 9 context, which means
there's a precedent to name it after the decoding API. So I didn't
bother renaming it. But if we decide that the VA should be dropped, I
can do that.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to