73 lines
2.4 KiB
Diff
73 lines
2.4 KiB
Diff
From 2836d9b400c063b4332cdf6bb6f1a3719822eaed Mon Sep 17 00:00:00 2001
|
|
From: Lukas Rusak <lorusak@gmail.com>
|
|
Date: Wed, 10 Apr 2019 13:39:21 -0700
|
|
Subject: [PATCH 1/2] libavcodec/libdav1d: add libdav1d_get_format method to
|
|
call ff_get_format
|
|
|
|
This will allow applications to properly init the decoder in
|
|
cases where a hardware decoder is tried first and and software
|
|
decoder is tried after by calling the get_format callback.
|
|
|
|
Even though there is no hardware pixel formats available
|
|
we still need to return the software pixel format.
|
|
|
|
Tested with Kodi by checking if multithreaded software
|
|
decoding is properly activated.
|
|
---
|
|
libavcodec/libdav1d.c | 11 +++++++++++
|
|
1 file changed, 11 insertions(+)
|
|
|
|
diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
|
|
index 2488a709c7..48c8658a22 100644
|
|
--- a/libavcodec/libdav1d.c
|
|
+++ b/libavcodec/libdav1d.c
|
|
@@ -64,6 +64,16 @@ static const enum AVPixelFormat pix_fmt_rgb[3] = {
|
|
AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12,
|
|
};
|
|
|
|
+static enum AVPixelFormat libdav1d_get_format(AVCodecContext *avctx, const Dav1dPicture *p)
|
|
+{
|
|
+ enum AVPixelFormat pix_fmts[2], *fmt = pix_fmts;
|
|
+
|
|
+ *fmt++ = pix_fmt[p->p.layout][p->seq_hdr->hbd];
|
|
+ *fmt = AV_PIX_FMT_NONE;
|
|
+
|
|
+ return ff_get_format(avctx, pix_fmts);
|
|
+}
|
|
+
|
|
static void libdav1d_log_callback(void *opaque, const char *fmt, va_list vl)
|
|
{
|
|
AVCodecContext *c = opaque;
|
|
@@ -424,6 +434,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|
if (res < 0)
|
|
goto fail;
|
|
|
|
+ frame->format = c->pix_fmt = libdav1d_get_format(c, p);
|
|
frame->width = p->p.w;
|
|
frame->height = p->p.h;
|
|
if (c->width != p->p.w || c->height != p->p.h) {
|
|
|
|
From 19913e020c8760e8a760439a07bcb50273643324 Mon Sep 17 00:00:00 2001
|
|
From: chewitt <github@chrishewitt.net>
|
|
Date: Sun, 11 Aug 2019 07:08:19 +0000
|
|
Subject: [PATCH 2/2] add long-term yuv2rgb logging patch
|
|
|
|
---
|
|
libswscale/yuv2rgb.c | 4 ----
|
|
1 file changed, 4 deletions(-)
|
|
|
|
diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
|
|
index 9c3f5e23c6..2a10527365 100644
|
|
--- a/libswscale/yuv2rgb.c
|
|
+++ b/libswscale/yuv2rgb.c
|
|
@@ -690,10 +690,6 @@ SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c)
|
|
if (t)
|
|
return t;
|
|
|
|
- av_log(c, AV_LOG_WARNING,
|
|
- "No accelerated colorspace conversion found from %s to %s.\n",
|
|
- av_get_pix_fmt_name(c->srcFormat), av_get_pix_fmt_name(c->dstFormat));
|
|
-
|
|
switch (c->dstFormat) {
|
|
case AV_PIX_FMT_BGR48BE:
|
|
case AV_PIX_FMT_BGR48LE:
|