mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-02 23:47:49 +00:00
ffmpeg: create libreelec patch
Patch created using revisions 8e12af2..1485078 from branch 4.3-libreelec-misc of https://github.com/LibreELEC/FFmpeg Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
parent
807b70364a
commit
adb3a1a169
@ -0,0 +1,73 @@
|
||||
From 823b70bfa0f451a0f8cd0539e1707f7bb7ff5891 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 bbb3ec1e6c..d8a7555c29 100644
|
||||
--- a/libavcodec/libdav1d.c
|
||||
+++ b/libavcodec/libdav1d.c
|
||||
@@ -55,6 +55,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;
|
||||
@@ -259,6 +269,7 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame)
|
||||
c->profile = p->seq_hdr->profile;
|
||||
c->level = ((p->seq_hdr->operating_points[0].major_level - 2) << 2)
|
||||
| p->seq_hdr->operating_points[0].minor_level;
|
||||
+ 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 1485078472d107806d1d3f52f89e3ff47ae8715c 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 588462504e..20364ff318 100644
|
||||
--- a/libswscale/yuv2rgb.c
|
||||
+++ b/libswscale/yuv2rgb.c
|
||||
@@ -688,10 +688,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:
|
Loading…
x
Reference in New Issue
Block a user