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