Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-13 Thread Michael Niedermayer
On Fri, Jan 13, 2017 at 02:02:29PM +0100, Steve Lhomme wrote:
> On Fri, Jan 13, 2017 at 1:04 PM, Michael Niedermayer  wrote:
> > On Fri, Jan 13, 2017 at 01:01:14PM +0100, Michael Niedermayer wrote:
> >> On Fri, Jan 13, 2017 at 10:40:23AM +, Stève Lhomme wrote:
> >> > On Fri, Jan 13, 2017 at 10:47 AM, wm4  wrote:
> >> > > On Fri, 13 Jan 2017 09:52:18 +0100
> >> > > Steve Lhomme  wrote:
> >> > >
> >> > >> For the record all 3 remaining patches (2/4, 3/4 and 4/4) are now
> >> > >> merged in libav.
> >> > >
> >> > > So how do we handle this. Do we wait until the merges catch up, or do
> >> > > you want to push your patches to ffmpeg's git immediately?
> >> >
> >> > Not sure what you mean. What merge are you talking about ?
> >> > These 3 patches can live on their own, regardless of what is being
> >> > done with d3d11va in hwcontext and ffmpeg.
> >> > I can send again 4/4 as the version number needs to be updated.
> >>
> >> when resending you may want to add a patch to add yourself to the
> >> MAINTAINERs file, maybe for d3d11va or any other part you want
> >
> > to clarify, i think you should have write access to git and the
> 
> OK, How does commit work ? login/pass via HTTP ? ssh key ?

ssh key

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-13 Thread Steve Lhomme
On Fri, Jan 13, 2017 at 1:04 PM, Michael Niedermayer  wrote:
> On Fri, Jan 13, 2017 at 01:01:14PM +0100, Michael Niedermayer wrote:
>> On Fri, Jan 13, 2017 at 10:40:23AM +, Stève Lhomme wrote:
>> > On Fri, Jan 13, 2017 at 10:47 AM, wm4  wrote:
>> > > On Fri, 13 Jan 2017 09:52:18 +0100
>> > > Steve Lhomme  wrote:
>> > >
>> > >> For the record all 3 remaining patches (2/4, 3/4 and 4/4) are now
>> > >> merged in libav.
>> > >
>> > > So how do we handle this. Do we wait until the merges catch up, or do
>> > > you want to push your patches to ffmpeg's git immediately?
>> >
>> > Not sure what you mean. What merge are you talking about ?
>> > These 3 patches can live on their own, regardless of what is being
>> > done with d3d11va in hwcontext and ffmpeg.
>> > I can send again 4/4 as the version number needs to be updated.
>>
>> when resending you may want to add a patch to add yourself to the
>> MAINTAINERs file, maybe for d3d11va or any other part you want
>
> to clarify, i think you should have write access to git and the

OK, How does commit work ? login/pass via HTTP ? ssh key ?

> list of people havig write access should match the list of people in
> MAINTAINERs

I've sent the updated patches and added myself for DXVA2 and D3D11VA stuff.

> [...]
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> During times of universal deceit, telling the truth becomes a
> revolutionary act. -- George Orwell
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-13 Thread Michael Niedermayer
On Fri, Jan 13, 2017 at 01:01:14PM +0100, Michael Niedermayer wrote:
> On Fri, Jan 13, 2017 at 10:40:23AM +, Stève Lhomme wrote:
> > On Fri, Jan 13, 2017 at 10:47 AM, wm4  wrote:
> > > On Fri, 13 Jan 2017 09:52:18 +0100
> > > Steve Lhomme  wrote:
> > >
> > >> For the record all 3 remaining patches (2/4, 3/4 and 4/4) are now
> > >> merged in libav.
> > >
> > > So how do we handle this. Do we wait until the merges catch up, or do
> > > you want to push your patches to ffmpeg's git immediately?
> > 
> > Not sure what you mean. What merge are you talking about ?
> > These 3 patches can live on their own, regardless of what is being
> > done with d3d11va in hwcontext and ffmpeg.
> > I can send again 4/4 as the version number needs to be updated.
> 
> when resending you may want to add a patch to add yourself to the
> MAINTAINERs file, maybe for d3d11va or any other part you want

to clarify, i think you should have write access to git and the
list of people havig write access should match the list of people in
MAINTAINERs

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

During times of universal deceit, telling the truth becomes a
revolutionary act. -- George Orwell


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-13 Thread Michael Niedermayer
On Fri, Jan 13, 2017 at 10:40:23AM +, Stève Lhomme wrote:
> On Fri, Jan 13, 2017 at 10:47 AM, wm4  wrote:
> > On Fri, 13 Jan 2017 09:52:18 +0100
> > Steve Lhomme  wrote:
> >
> >> For the record all 3 remaining patches (2/4, 3/4 and 4/4) are now
> >> merged in libav.
> >
> > So how do we handle this. Do we wait until the merges catch up, or do
> > you want to push your patches to ffmpeg's git immediately?
> 
> Not sure what you mean. What merge are you talking about ?
> These 3 patches can live on their own, regardless of what is being
> done with d3d11va in hwcontext and ffmpeg.
> I can send again 4/4 as the version number needs to be updated.

when resending you may want to add a patch to add yourself to the
MAINTAINERs file, maybe for d3d11va or any other part you want

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

You can kill me, but you cannot change the truth.


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-13 Thread Stève Lhomme
On Fri, Jan 13, 2017 at 10:47 AM, wm4  wrote:
> On Fri, 13 Jan 2017 09:52:18 +0100
> Steve Lhomme  wrote:
>
>> For the record all 3 remaining patches (2/4, 3/4 and 4/4) are now
>> merged in libav.
>
> So how do we handle this. Do we wait until the merges catch up, or do
> you want to push your patches to ffmpeg's git immediately?

Not sure what you mean. What merge are you talking about ?
These 3 patches can live on their own, regardless of what is being
done with d3d11va in hwcontext and ffmpeg.
I can send again 4/4 as the version number needs to be updated.

> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-13 Thread wm4
On Fri, 13 Jan 2017 09:52:18 +0100
Steve Lhomme  wrote:

> For the record all 3 remaining patches (2/4, 3/4 and 4/4) are now
> merged in libav.

So how do we handle this. Do we wait until the merges catch up, or do
you want to push your patches to ffmpeg's git immediately?
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-13 Thread Steve Lhomme
For the record all 3 remaining patches (2/4, 3/4 and 4/4) are now
merged in libav.

On Tue, Jan 10, 2017 at 11:18 AM, Steve Lhomme  wrote:
> This was not rejected and has been merged in libav.
> 3/4 and 4/4 seem to be valid too and pending on both sides. I just
> need to send an update of 4/4 as the libavcodec version has changed.
>
> On Wed, Jan 4, 2017 at 2:36 PM, Steve Lhomme  wrote:
>> ---
>>  libavcodec/dxva2_h264.c | 4 +---
>>  libavcodec/dxva2_hevc.c | 4 +---
>>  libavcodec/dxva2_internal.h | 5 +
>>  libavcodec/dxva2_mpeg2.c| 4 +---
>>  libavcodec/dxva2_vc1.c  | 4 +---
>>  libavcodec/dxva2_vp9.c  | 4 +---
>>  6 files changed, 10 insertions(+), 15 deletions(-)
>>
>> diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
>> index 82a772d..59fa5e3 100644
>> --- a/libavcodec/dxva2_h264.c
>> +++ b/libavcodec/dxva2_h264.c
>> @@ -450,9 +450,7 @@ static int dxva2_h264_start_frame(AVCodecContext *avctx,
>>  AVDXVAContext *ctx = avctx->hwaccel_context;
>>  struct dxva2_picture_context *ctx_pic = 
>> h->cur_pic_ptr->hwaccel_picture_private;
>>
>> -if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
>> -DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
>> -DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
>> +if (!DXVA_CONTEXT_VALID(avctx, ctx))
>>  return -1;
>>  assert(ctx_pic);
>>
>> diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
>> index 5a312ea..981c888 100644
>> --- a/libavcodec/dxva2_hevc.c
>> +++ b/libavcodec/dxva2_hevc.c
>> @@ -364,9 +364,7 @@ static int dxva2_hevc_start_frame(AVCodecContext *avctx,
>>  AVDXVAContext *ctx = avctx->hwaccel_context;
>>  struct hevc_dxva2_picture_context *ctx_pic = 
>> h->ref->hwaccel_picture_private;
>>
>> -if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
>> -DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
>> -DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
>> +if (!DXVA_CONTEXT_VALID(avctx, ctx))
>>  return -1;
>>  av_assert0(ctx_pic);
>>
>> diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
>> index c962810..e5322ef 100644
>> --- a/libavcodec/dxva2_internal.h
>> +++ b/libavcodec/dxva2_internal.h
>> @@ -76,6 +76,9 @@ typedef union {
>>  #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  (avctx->pix_fmt == 
>> AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigBitstreamRaw : 
>> ctx->dxva2.cfg->ConfigBitstreamRaw)
>>  #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) (avctx->pix_fmt == 
>> AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigIntraResidUnsigned : 
>> ctx->dxva2.cfg->ConfigIntraResidUnsigned)
>>  #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (avctx->pix_fmt == 
>> AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigResidDiffAccelerator : 
>> ctx->dxva2.cfg->ConfigResidDiffAccelerator)
>> +#define DXVA_CONTEXT_VALID(avctx, ctx)  
>> (DXVA_CONTEXT_DECODER(avctx, ctx) && \
>> + DXVA_CONTEXT_CFG(avctx, 
>> ctx) && \
>> + DXVA_CONTEXT_COUNT(avctx, 
>> ctx))
>>  #elif CONFIG_DXVA2
>>  #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->dxva2.workaround)
>>  #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->dxva2.surface_count)
>> @@ -85,6 +88,7 @@ typedef union {
>>  #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
>> (ctx->dxva2.cfg->ConfigBitstreamRaw)
>>  #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
>> (ctx->dxva2.cfg->ConfigIntraResidUnsigned)
>>  #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
>> (ctx->dxva2.cfg->ConfigResidDiffAccelerator)
>> +#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->dxva2.decoder && 
>> ctx->dxva2.cfg && ctx->dxva2.surface_count)
>>  #elif CONFIG_D3D11VA
>>  #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->d3d11va.workaround)
>>  #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->d3d11va.surface_count)
>> @@ -94,6 +98,7 @@ typedef union {
>>  #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
>> (ctx->d3d11va.cfg->ConfigBitstreamRaw)
>>  #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
>> (ctx->d3d11va.cfg->ConfigIntraResidUnsigned)
>>  #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
>> (ctx->d3d11va.cfg->ConfigResidDiffAccelerator)
>> +#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->d3d11va.decoder && 
>> ctx->d3d11va.cfg && ctx->d3d11va.surface_count)
>>  #endif
>>
>>  unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
>> diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
>> index c2f0b58..14ac48f 100644
>> --- a/libavcodec/dxva2_mpeg2.c
>> +++ b/libavcodec/dxva2_mpeg2.c
>> @@ -262,9 +262,7 @@ static int dxva2_mpeg2_start_frame(AVCodecContext *avctx,
>>  struct dxva2_picture_context *ctx_pic =
>>  s->current_picture_ptr->hwaccel_picture_private;
>>
>> -if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
>> -DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
>> -DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
>> +if 

Re: [FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-10 Thread Steve Lhomme
This was not rejected and has been merged in libav.
3/4 and 4/4 seem to be valid too and pending on both sides. I just
need to send an update of 4/4 as the libavcodec version has changed.

On Wed, Jan 4, 2017 at 2:36 PM, Steve Lhomme  wrote:
> ---
>  libavcodec/dxva2_h264.c | 4 +---
>  libavcodec/dxva2_hevc.c | 4 +---
>  libavcodec/dxva2_internal.h | 5 +
>  libavcodec/dxva2_mpeg2.c| 4 +---
>  libavcodec/dxva2_vc1.c  | 4 +---
>  libavcodec/dxva2_vp9.c  | 4 +---
>  6 files changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
> index 82a772d..59fa5e3 100644
> --- a/libavcodec/dxva2_h264.c
> +++ b/libavcodec/dxva2_h264.c
> @@ -450,9 +450,7 @@ static int dxva2_h264_start_frame(AVCodecContext *avctx,
>  AVDXVAContext *ctx = avctx->hwaccel_context;
>  struct dxva2_picture_context *ctx_pic = 
> h->cur_pic_ptr->hwaccel_picture_private;
>
> -if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
> -DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
> -DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
> +if (!DXVA_CONTEXT_VALID(avctx, ctx))
>  return -1;
>  assert(ctx_pic);
>
> diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
> index 5a312ea..981c888 100644
> --- a/libavcodec/dxva2_hevc.c
> +++ b/libavcodec/dxva2_hevc.c
> @@ -364,9 +364,7 @@ static int dxva2_hevc_start_frame(AVCodecContext *avctx,
>  AVDXVAContext *ctx = avctx->hwaccel_context;
>  struct hevc_dxva2_picture_context *ctx_pic = 
> h->ref->hwaccel_picture_private;
>
> -if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
> -DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
> -DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
> +if (!DXVA_CONTEXT_VALID(avctx, ctx))
>  return -1;
>  av_assert0(ctx_pic);
>
> diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
> index c962810..e5322ef 100644
> --- a/libavcodec/dxva2_internal.h
> +++ b/libavcodec/dxva2_internal.h
> @@ -76,6 +76,9 @@ typedef union {
>  #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  (avctx->pix_fmt == 
> AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigBitstreamRaw : 
> ctx->dxva2.cfg->ConfigBitstreamRaw)
>  #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) (avctx->pix_fmt == 
> AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigIntraResidUnsigned : 
> ctx->dxva2.cfg->ConfigIntraResidUnsigned)
>  #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (avctx->pix_fmt == 
> AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigResidDiffAccelerator : 
> ctx->dxva2.cfg->ConfigResidDiffAccelerator)
> +#define DXVA_CONTEXT_VALID(avctx, ctx)  (DXVA_CONTEXT_DECODER(avctx, 
> ctx) && \
> + DXVA_CONTEXT_CFG(avctx, 
> ctx) && \
> + DXVA_CONTEXT_COUNT(avctx, 
> ctx))
>  #elif CONFIG_DXVA2
>  #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->dxva2.workaround)
>  #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->dxva2.surface_count)
> @@ -85,6 +88,7 @@ typedef union {
>  #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
> (ctx->dxva2.cfg->ConfigBitstreamRaw)
>  #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
> (ctx->dxva2.cfg->ConfigIntraResidUnsigned)
>  #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
> (ctx->dxva2.cfg->ConfigResidDiffAccelerator)
> +#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->dxva2.decoder && 
> ctx->dxva2.cfg && ctx->dxva2.surface_count)
>  #elif CONFIG_D3D11VA
>  #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->d3d11va.workaround)
>  #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->d3d11va.surface_count)
> @@ -94,6 +98,7 @@ typedef union {
>  #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
> (ctx->d3d11va.cfg->ConfigBitstreamRaw)
>  #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
> (ctx->d3d11va.cfg->ConfigIntraResidUnsigned)
>  #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
> (ctx->d3d11va.cfg->ConfigResidDiffAccelerator)
> +#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->d3d11va.decoder && 
> ctx->d3d11va.cfg && ctx->d3d11va.surface_count)
>  #endif
>
>  unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
> diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
> index c2f0b58..14ac48f 100644
> --- a/libavcodec/dxva2_mpeg2.c
> +++ b/libavcodec/dxva2_mpeg2.c
> @@ -262,9 +262,7 @@ static int dxva2_mpeg2_start_frame(AVCodecContext *avctx,
>  struct dxva2_picture_context *ctx_pic =
>  s->current_picture_ptr->hwaccel_picture_private;
>
> -if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
> -DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
> -DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
> +if (!DXVA_CONTEXT_VALID(avctx, ctx))
>  return -1;
>  assert(ctx_pic);
>
> diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c
> index 36bf1ba..cc97d7b 100644
> --- a/libavcodec/dxva2_vc1.c
> +++ b/libavcodec/dxva2_vc1.c
> @@ -317,9 +317,7 @@ static int 

[FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2017-01-04 Thread Steve Lhomme
---
 libavcodec/dxva2_h264.c | 4 +---
 libavcodec/dxva2_hevc.c | 4 +---
 libavcodec/dxva2_internal.h | 5 +
 libavcodec/dxva2_mpeg2.c| 4 +---
 libavcodec/dxva2_vc1.c  | 4 +---
 libavcodec/dxva2_vp9.c  | 4 +---
 6 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 82a772d..59fa5e3 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -450,9 +450,7 @@ static int dxva2_h264_start_frame(AVCodecContext *avctx,
 AVDXVAContext *ctx = avctx->hwaccel_context;
 struct dxva2_picture_context *ctx_pic = 
h->cur_pic_ptr->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 assert(ctx_pic);
 
diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
index 5a312ea..981c888 100644
--- a/libavcodec/dxva2_hevc.c
+++ b/libavcodec/dxva2_hevc.c
@@ -364,9 +364,7 @@ static int dxva2_hevc_start_frame(AVCodecContext *avctx,
 AVDXVAContext *ctx = avctx->hwaccel_context;
 struct hevc_dxva2_picture_context *ctx_pic = 
h->ref->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 av_assert0(ctx_pic);
 
diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
index c962810..e5322ef 100644
--- a/libavcodec/dxva2_internal.h
+++ b/libavcodec/dxva2_internal.h
@@ -76,6 +76,9 @@ typedef union {
 #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  (avctx->pix_fmt == 
AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigBitstreamRaw : 
ctx->dxva2.cfg->ConfigBitstreamRaw)
 #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) (avctx->pix_fmt == 
AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigIntraResidUnsigned : 
ctx->dxva2.cfg->ConfigIntraResidUnsigned)
 #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (avctx->pix_fmt == 
AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigResidDiffAccelerator : 
ctx->dxva2.cfg->ConfigResidDiffAccelerator)
+#define DXVA_CONTEXT_VALID(avctx, ctx)  (DXVA_CONTEXT_DECODER(avctx, 
ctx) && \
+ DXVA_CONTEXT_CFG(avctx, ctx) 
&& \
+ DXVA_CONTEXT_COUNT(avctx, 
ctx))
 #elif CONFIG_DXVA2
 #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->dxva2.workaround)
 #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->dxva2.surface_count)
@@ -85,6 +88,7 @@ typedef union {
 #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
(ctx->dxva2.cfg->ConfigBitstreamRaw)
 #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
(ctx->dxva2.cfg->ConfigIntraResidUnsigned)
 #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
(ctx->dxva2.cfg->ConfigResidDiffAccelerator)
+#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->dxva2.decoder && 
ctx->dxva2.cfg && ctx->dxva2.surface_count)
 #elif CONFIG_D3D11VA
 #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->d3d11va.workaround)
 #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->d3d11va.surface_count)
@@ -94,6 +98,7 @@ typedef union {
 #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
(ctx->d3d11va.cfg->ConfigBitstreamRaw)
 #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
(ctx->d3d11va.cfg->ConfigIntraResidUnsigned)
 #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
(ctx->d3d11va.cfg->ConfigResidDiffAccelerator)
+#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->d3d11va.decoder && 
ctx->d3d11va.cfg && ctx->d3d11va.surface_count)
 #endif
 
 unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
index c2f0b58..14ac48f 100644
--- a/libavcodec/dxva2_mpeg2.c
+++ b/libavcodec/dxva2_mpeg2.c
@@ -262,9 +262,7 @@ static int dxva2_mpeg2_start_frame(AVCodecContext *avctx,
 struct dxva2_picture_context *ctx_pic =
 s->current_picture_ptr->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 assert(ctx_pic);
 
diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c
index 36bf1ba..cc97d7b 100644
--- a/libavcodec/dxva2_vc1.c
+++ b/libavcodec/dxva2_vc1.c
@@ -317,9 +317,7 @@ static int dxva2_vc1_start_frame(AVCodecContext *avctx,
 AVDXVAContext *ctx = avctx->hwaccel_context;
 struct dxva2_picture_context *ctx_pic = 
v->s.current_picture_ptr->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 assert(ctx_pic);
 
diff --git a/libavcodec/dxva2_vp9.c 

[FFmpeg-devel] [PATCH 2/4] dxva2: use a single macro to test if the DXVA context is valid

2016-12-01 Thread Steve Lhomme
From: Steve Lhomme 

---
 libavcodec/dxva2_h264.c | 4 +---
 libavcodec/dxva2_hevc.c | 4 +---
 libavcodec/dxva2_internal.h | 5 +
 libavcodec/dxva2_mpeg2.c| 4 +---
 libavcodec/dxva2_vc1.c  | 4 +---
 libavcodec/dxva2_vp9.c  | 4 +---
 6 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 82a772d..59fa5e3 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -450,9 +450,7 @@ static int dxva2_h264_start_frame(AVCodecContext *avctx,
 AVDXVAContext *ctx = avctx->hwaccel_context;
 struct dxva2_picture_context *ctx_pic = 
h->cur_pic_ptr->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 assert(ctx_pic);
 
diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
index 5a312ea..981c888 100644
--- a/libavcodec/dxva2_hevc.c
+++ b/libavcodec/dxva2_hevc.c
@@ -364,9 +364,7 @@ static int dxva2_hevc_start_frame(AVCodecContext *avctx,
 AVDXVAContext *ctx = avctx->hwaccel_context;
 struct hevc_dxva2_picture_context *ctx_pic = 
h->ref->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 av_assert0(ctx_pic);
 
diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
index c962810..e5322ef 100644
--- a/libavcodec/dxva2_internal.h
+++ b/libavcodec/dxva2_internal.h
@@ -76,6 +76,9 @@ typedef union {
 #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  (avctx->pix_fmt == 
AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigBitstreamRaw : 
ctx->dxva2.cfg->ConfigBitstreamRaw)
 #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) (avctx->pix_fmt == 
AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigIntraResidUnsigned : 
ctx->dxva2.cfg->ConfigIntraResidUnsigned)
 #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (avctx->pix_fmt == 
AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigResidDiffAccelerator : 
ctx->dxva2.cfg->ConfigResidDiffAccelerator)
+#define DXVA_CONTEXT_VALID(avctx, ctx)  (DXVA_CONTEXT_DECODER(avctx, 
ctx) && \
+ DXVA_CONTEXT_CFG(avctx, ctx) 
&& \
+ DXVA_CONTEXT_COUNT(avctx, 
ctx))
 #elif CONFIG_DXVA2
 #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->dxva2.workaround)
 #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->dxva2.surface_count)
@@ -85,6 +88,7 @@ typedef union {
 #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
(ctx->dxva2.cfg->ConfigBitstreamRaw)
 #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
(ctx->dxva2.cfg->ConfigIntraResidUnsigned)
 #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
(ctx->dxva2.cfg->ConfigResidDiffAccelerator)
+#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->dxva2.decoder && 
ctx->dxva2.cfg && ctx->dxva2.surface_count)
 #elif CONFIG_D3D11VA
 #define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->d3d11va.workaround)
 #define DXVA_CONTEXT_COUNT(avctx, ctx)  (ctx->d3d11va.surface_count)
@@ -94,6 +98,7 @@ typedef union {
 #define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx)  
(ctx->d3d11va.cfg->ConfigBitstreamRaw)
 #define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) 
(ctx->d3d11va.cfg->ConfigIntraResidUnsigned)
 #define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) 
(ctx->d3d11va.cfg->ConfigResidDiffAccelerator)
+#define DXVA_CONTEXT_VALID(avctx, ctx)  (ctx->d3d11va.decoder && 
ctx->d3d11va.cfg && ctx->d3d11va.surface_count)
 #endif
 
 unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
index c2f0b58..14ac48f 100644
--- a/libavcodec/dxva2_mpeg2.c
+++ b/libavcodec/dxva2_mpeg2.c
@@ -262,9 +262,7 @@ static int dxva2_mpeg2_start_frame(AVCodecContext *avctx,
 struct dxva2_picture_context *ctx_pic =
 s->current_picture_ptr->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 assert(ctx_pic);
 
diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c
index 36bf1ba..cc97d7b 100644
--- a/libavcodec/dxva2_vc1.c
+++ b/libavcodec/dxva2_vc1.c
@@ -317,9 +317,7 @@ static int dxva2_vc1_start_frame(AVCodecContext *avctx,
 AVDXVAContext *ctx = avctx->hwaccel_context;
 struct dxva2_picture_context *ctx_pic = 
v->s.current_picture_ptr->hwaccel_picture_private;
 
-if (DXVA_CONTEXT_DECODER(avctx, ctx) == NULL ||
-DXVA_CONTEXT_CFG(avctx, ctx) == NULL ||
-DXVA_CONTEXT_COUNT(avctx, ctx) <= 0)
+if (!DXVA_CONTEXT_VALID(avctx, ctx))
 return -1;
 assert(ctx_pic);