From 1accfe77b73c9b2e9b481792b8fd35d0a58d07ba Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 21 Jan 2020 21:53:28 +0100 Subject: shotcut: auto-detection of VAAPI rendering is broken again The 'connection=x11' parameter to ffmpeg breaks hardware rendering with my Radeon RX 590 card. If we just drop that option, everything works fine. --- ...dock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch | 33 ++++++++++++++++++++++ pkgs/applications/video/shotcut/default.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch (limited to 'pkgs/applications/video/shotcut') diff --git a/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch b/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch new file mode 100644 index 00000000000..475788ba3a4 --- /dev/null +++ b/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch @@ -0,0 +1,33 @@ +From 247baa7e9210bbe5462b6155014c3dcd4a60e56a Mon Sep 17 00:00:00 2001 +From: Peter Simons +Date: Tue, 24 Sep 2019 10:27:17 +0200 +Subject: [PATCH] encodedock.cpp: connect to VAAPI via DRM, not X11 + +--- + src/docks/encodedock.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/docks/encodedock.cpp b/src/docks/encodedock.cpp +index f2d64fc8..63d20787 100644 +--- a/src/docks/encodedock.cpp ++++ b/src/docks/encodedock.cpp +@@ -766,7 +766,6 @@ Mlt::Properties* EncodeDock::collectProperties(int realtime) + setIfNotSet(p, "pix_fmt", "nv12"); + } else if (vcodec.endsWith("_vaapi")) { + setIfNotSet(p, "vprofile", "main"); +- setIfNotSet(p, "connection_type", "x11"); + } + } + setIfNotSet(p, "width", ui->widthSpinner->value()); +@@ -1890,7 +1889,7 @@ void EncodeDock::on_hwencodeCheckBox_clicked(bool checked) + QStringList args; + args << "-hide_banner" << "-f" << "lavfi" << "-i" << "color=s=640x360" << "-frames" << "1" << "-an"; + if (codec.endsWith("_vaapi")) +- args << "-init_hw_device" << "vaapi=vaapi0:,connection_type=x11" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload"; ++ args << "-init_hw_device" << "vaapi=vaapi0" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload"; + else if (codec == "hevc_qsv") + args << "-load_plugin" << "hevc_hw"; + args << "-c:v" << codec << "-f" << "rawvideo" << "pipe:"; +-- +2.24.1 + diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix index 33ce5c18028..6926f7e8eae 100644 --- a/pkgs/applications/video/shotcut/default.nix +++ b/pkgs/applications/video/shotcut/default.nix @@ -17,6 +17,8 @@ mkDerivation rec { sha256 = "1vwgah8pp2kbd0iaz952d3bwxphk06yxqc0pi4hk1mklkh87qzm9"; }; + patches = [ ./0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch ]; + enableParallelBuilding = true; nativeBuildInputs = [ pkgconfig qmake ]; buildInputs = [ -- cgit 1.4.1