summaryrefslogtreecommitdiff
path: root/ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch')
-rw-r--r--ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch b/ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch
new file mode 100644
index 0000000..1d087b4
--- /dev/null
+++ b/ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch
@@ -0,0 +1,60 @@
+From 0ae5ba3567a896af2b272e3a52ca574b7f41ec5a Mon Sep 17 00:00:00 2001
+From: Lukas Rusak <lorusak@gmail.com>
+Date: Wed, 10 Apr 2019 13:40:07 -0700
+Subject: [PATCH 0/1] *** SUBJECT HERE ***
+
+*** BLURB HERE ***
+
+Lukas Rusak (1):
+ libavcodec/libdav1d: add libdav1d_get_format method in order to call
+ ff_get_format
+
+ libavcodec/libdav1d.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+--
+2.20.1
+
+From 0ae5ba3567a896af2b272e3a52ca574b7f41ec5a 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/1] libavcodec/libdav1d: add libdav1d_get_format method in
+ order to call ff_get_format
+
+---
+ libavcodec/libdav1d.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
+index 30c6eccfef..fa71834543 100644
+--- a/libavcodec/libdav1d.c
++++ b/libavcodec/libdav1d.c
+@@ -48,6 +48,16 @@ static const enum AVPixelFormat pix_fmt[][3] = {
+ [DAV1D_PIXEL_LAYOUT_I444] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12 },
+ };
+
++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;
+@@ -214,7 +224,7 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame)
+ frame->linesize[2] = p->stride[1];
+
+ c->profile = p->seq_hdr->profile;
+- frame->format = c->pix_fmt = pix_fmt[p->p.layout][p->seq_hdr->hbd];
++ 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) {
+--
+2.20.1
+