From 53b7a6e4a180ddf1baaed8c3393229eb4ffa86f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Wed, 29 Jan 2020 23:39:59 +0100 Subject: ffmpeg-rpi: try to port from LibreELEC --- ...9-dav1d-fix-multithreaded-av1-sw-decoding.patch | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch (limited to 'ffmpeg-rpi/ffmpeg-99.1009-dav1d-fix-multithreaded-av1-sw-decoding.patch') 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 +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 +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 + -- cgit v1.2.3