On 25.01.2016 00:53, Hendrik Leppkes wrote:
> On Sat, Jan 23, 2016 at 3:52 PM, Andreas Cadhalpun
> <andreas.cadhal...@googlemail.com> wrote:
>> On 23.01.2016 15:10, Hendrik Leppkes wrote:
>>> On Sat, Jan 23, 2016 at 2:45 PM, Ronald S. Bultje <rsbul...@gmail.com> 
>>> wrote:
>>>> Both of you keep shouting from one side of the room to the other without
>>>> trying to actually converge to a point that might somehow be mutually
>>>> acceptable. I'm getting very grumbly here.
>>>>
>>>
>>> I'm not trying to be unreasonable here, all I'm asking for at this
>>> point is to make sure the new vp9 hwaccel doesn't break spectacularly
>>> when MT is turned on before its allowed back.
>>
>> OK, that would be fine with me.
>>
>> Do you agree that the attached patch is sufficient for this?
>>
> 
> YUV420P will not remain the only format available for hwaccel, I
> already have some work pending to allow Profile2/10-bit as well, so
> the check should be further out.

OK. Though if Ronald manages to (hopefully soon) find a solution for
automatically throttling the hwaccel threads to 1, this check will be
removed again anyway.

> It would also log every time the function executes, no matter if
> hwaccel is requested or not, unfortunately I don't see a way to fix
> that nicely since the decoder doesn't know if the user is going to
> activate hwaccel.

Indeed. But since that is anyway logged in setup_hwaccel there
is not really much need for another warning here. I've thus reduced
the log level to verbose. Attached is an updated patch.

Best regards,
Andreas
>From 8171981c467d2e67daa8cfd44edd65e2570edc80 Mon Sep 17 00:00:00 2001
From: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
Date: Sat, 23 Jan 2016 15:48:30 +0100
Subject: [PATCH] vp9: skip hwaccel whith threading

It was implemented in a way incompatible with threading.

Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
---
 libavcodec/vp9.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index 1e98e88..39f25d2 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -255,16 +255,21 @@ static int update_size(AVCodecContext *ctx, int w, int h)
     if ((res = ff_set_dimensions(ctx, w, h)) < 0)
         return res;
 
-    if (s->pix_fmt == AV_PIX_FMT_YUV420P) {
+    if (ctx->active_thread_type & FF_THREAD_FRAME) {
+        av_log(ctx, AV_LOG_VERBOSE,
+               "Skipping vp9 hwaccel, because it is not compatible with threading.\n");
+    } else {
+        if (s->pix_fmt == AV_PIX_FMT_YUV420P) {
 #if CONFIG_VP9_DXVA2_HWACCEL
-        *fmtp++ = AV_PIX_FMT_DXVA2_VLD;
+            *fmtp++ = AV_PIX_FMT_DXVA2_VLD;
 #endif
 #if CONFIG_VP9_D3D11VA_HWACCEL
-        *fmtp++ = AV_PIX_FMT_D3D11VA_VLD;
+            *fmtp++ = AV_PIX_FMT_D3D11VA_VLD;
 #endif
 #if CONFIG_VP9_VAAPI_HWACCEL
-        *fmtp++ = AV_PIX_FMT_VAAPI;
+            *fmtp++ = AV_PIX_FMT_VAAPI;
 #endif
+        }
     }
 
     *fmtp++ = s->pix_fmt;
-- 
2.7.0.rc3

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

Reply via email to