On Thu, Dec 15, 2016 at 06:01:42PM +0100, Steve Lhomme wrote:
> From: Steve Lhomme <rob...@gmail.com>
> 
> avconv_dxva.h has to be included and misc. typedefs have to be set to use the
> proper DXVA2 structures.
> 
> initguid.h is included in avconv_dxva.h so any includes after that will also
> define GUIDs locally.
> ---
>  avconv_dxva.h  | 294 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  avconv_dxva2.c | 277 +++++++++--------------------------------------------
>  2 files changed, 340 insertions(+), 231 deletions(-)
>  create mode 100644 avconv_dxva.h

Does this pass "make check"?

> --- /dev/null
> +++ b/avconv_dxva.h
> @@ -0,0 +1,294 @@
> +
> +#ifndef AVCONV_DXVA_H
> +#define AVCONV_DXVA_H

Probably dxva2.h would be a better file name.

> +static int dxva_get_decoder_configuration(AVCodecContext *s,
> +                                          const DXVA_DECODER_CONFIG 
> *cfg_list,
> +                                          unsigned cfg_count,
> +                                          DXVA_DECODER_CONFIG *config)

You are putting static functions in a header file. They will be duplicated
in the object code if you #include this from the d3d11va code as well.

> --- a/avconv_dxva2.c
> +++ b/avconv_dxva2.c
> @@ -43,52 +43,6 @@
>  #include "libavutil/hwcontext.h"
>  #include "libavutil/hwcontext_dxva2.h"
>  
> -/* define all the GUIDs used directly here,
> -   to avoid problems with inconsistent dxva2api.h versions in mingw-w64 and 
> different MSVC version */
> -#include <initguid.h>
> -DEFINE_GUID(IID_IDirectXVideoDecoderService, 
> 0xfc51a551,0xd5e7,0x11d9,0xaf,0x55,0x00,0x05,0x4e,0x43,0xff,0x02);
> -
> @@ -102,55 +56,24 @@ typedef struct DXVA2Context {
>      AVBufferRef                 *hw_frames_ctx;
>  } DXVA2Context;
>  
> +typedef DXVA2_ConfigPictureDecode   DXVA_DECODER_CONFIG;
> +typedef D3DFORMAT                   DXVA_SURFACE_FORMAT;
> +typedef DXVA2Context                DXVA_CONTEXT;
> +typedef struct dxva_context         DXVA_AV_CONTEXT;
> +typedef IDirectXVideoDecoderService *DXVA_DECODER_SERVICE;
> +#include "avconv_dxva.h"

Why is the #include down here? And please at least leave an empty line above it.

> +DEFINE_GUID(IID_IDirectXVideoDecoderService, 
> 0xfc51a551,0xd5e7,0x11d9,0xaf,0x55,0x00,0x05,0x4e,0x43,0xff,0x02);

Why do you move this DEFINE down?

Diego
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to