[packages/chiaki-ng] - up to 1.10.0

baggins baggins at pld-linux.org
Thu Apr 23 08:53:32 CEST 2026


commit 2291a1a07fb8769076cd7bc8160adf54877fe817
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Thu Apr 23 10:53:14 2026 +0200

    - up to 1.10.0

 chiaki-ng.spec |   8 +-
 git.patch      | 957 ---------------------------------------------------------
 2 files changed, 3 insertions(+), 962 deletions(-)
---
diff --git a/chiaki-ng.spec b/chiaki-ng.spec
index 46faf85..716f98d 100644
--- a/chiaki-ng.spec
+++ b/chiaki-ng.spec
@@ -4,13 +4,12 @@
 #
 Summary:	PlayStation Remote Play for Everyone
 Name:		chiaki-ng
-Version:	1.9.9
+Version:	1.10.0
 Release:	1
 License:	AGPL v3
 Group:		X11/Applications/Networking
 Source0:	https://github.com/streetpea/chiaki-ng/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	9aa32f13d1fa4e015d74a3f904e230fb
-Patch0:		git.patch
+# Source0-md5:	ff577d46e0dab16da0a1d94e16ca2e69
 URL:		https://streetpea.github.io/chiaki-ng/
 BuildRequires:	Qt6Concurrent-devel
 BuildRequires:	Qt6Core-devel
@@ -30,7 +29,7 @@ BuildRequires:	fftw3-devel
 BuildRequires:	hidapi-devel
 BuildRequires:	jerasure-devel
 BuildRequires:	libevdev-devel
-BuildRequires:	libplacebo-devel
+BuildRequires:	libplacebo-devel >= 7.349.0
 BuildRequires:	nanopb-devel
 BuildRequires:	nanopb-static
 BuildRequires:	openssl-devel
@@ -52,7 +51,6 @@ Entertainment LLC.
 
 %prep
 %setup -q
-%patch -P0 -p1
 
 %build
 mkdir -p build
diff --git a/git.patch b/git.patch
deleted file mode 100644
index 4531991..0000000
--- a/git.patch
+++ /dev/null
@@ -1,957 +0,0 @@
-diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
-index 91ad433e..7e777e1f 100755
---- a/gui/CMakeLists.txt
-+++ b/gui/CMakeLists.txt
-@@ -8,6 +8,10 @@ if(APPLE)
- endif()
- 
- find_package(Qt6 REQUIRED COMPONENTS Core Gui Concurrent Svg Qml Quick Widgets)
-+if(Qt6_VERSION VERSION_GREATER_EQUAL "6.10.0")
-+	find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
-+endif()
-+
- find_package(Qt6 COMPONENTS WebEngineQuick)
- find_package(Qt6 COMPONENTS DBus)
- 
-@@ -101,10 +105,12 @@ if(CHIAKI_ENABLE_CLI)
- endif()
- 
- target_link_libraries(chiaki Qt::Core Qt::Gui Qt::GuiPrivate Qt::Concurrent Qt::Svg Qt::Qml Qt::Quick Qt::Widgets)
--if (${Qt6DBus_FOUND} AND NOT WIN32 AND NOT APPLE)
-+if (${Qt6DBus_FOUND} AND NOT WIN32)
- 	target_link_libraries(chiaki Qt::DBus)
-+if (NOT APPLE)
- 	target_compile_definitions(chiaki PRIVATE CHIAKI_HAVE_DBUS)
- endif()
-+endif()
- if (${Qt6WebEngineQuick_FOUND})
- 	target_link_libraries(chiaki Qt::WebEngineQuick)
- 	target_compile_definitions(chiaki PRIVATE CHIAKI_HAVE_WEBENGINE)
-@@ -152,4 +158,4 @@ install(TARGETS chiaki
- 		BUNDLE DESTINATION bin)
- install(FILES chiaking.desktop DESTINATION share/applications)
- install(FILES chiaking.png DESTINATION share/icons/hicolor/512x512/apps)
--install(FILES io.github.streetpea.Chiaki4deck.appdata.xml DESTINATION share/metainfo)
-\ No newline at end of file
-+install(FILES io.github.streetpea.Chiaki4deck.appdata.xml DESTINATION share/metainfo)
-diff --git a/gui/include/qmlsettings.h b/gui/include/qmlsettings.h
-index 2f48017e..606f2f5e 100644
---- a/gui/include/qmlsettings.h
-+++ b/gui/include/qmlsettings.h
-@@ -75,6 +75,7 @@ class QmlSettings : public QObject
-     Q_PROPERTY(bool mouseTouchEnabled READ mouseTouchEnabled WRITE setMouseTouchEnabled NOTIFY mouseTouchEnabledChanged)
-     Q_PROPERTY(bool keyboardEnabled READ keyboardEnabled WRITE setKeyboardEnabled NOTIFY keyboardEnabledChanged)
-     Q_PROPERTY(bool dpadTouchEnabled READ dpadTouchEnabled WRITE setDpadTouchEnabled NOTIFY dpadTouchEnabledChanged)
-+    Q_PROPERTY(bool iDROnFECFailureEnabled READ iDROnFECFailureEnabled WRITE setIDROnFECFailureEnabled NOTIFY iDROnFECFailureEnabledChanged)
-     Q_PROPERTY(uint16_t dpadTouchIncrement READ dpadTouchIncrement WRITE setDpadTouchIncrement NOTIFY dpadTouchIncrementChanged)
-     Q_PROPERTY(uint dpadTouchShortcut1 READ dpadTouchShortcut1 WRITE setDpadTouchShortcut1 NOTIFY dpadTouchShortcut1Changed)
-     Q_PROPERTY(uint dpadTouchShortcut2 READ dpadTouchShortcut2 WRITE setDpadTouchShortcut2 NOTIFY dpadTouchShortcut2Changed)
-@@ -204,6 +205,9 @@ public:
-     bool buttonsByPosition() const;
-     void setButtonsByPosition(bool buttonsByPosition);
- 
-+    bool iDROnFECFailureEnabled() const;
-+    void setIDROnFECFailureEnabled(bool enabled);
-+
-     bool allowJoystickBackgroundEvents() const;
-     void setAllowJoystickBackgroundEvents(bool allowJoystickBackgroundEvents);
- 
-@@ -638,6 +642,7 @@ signals:
-     void streamMenuShortcut4Changed();
-     void controllerMappingChanged();
-     void packetLossMaxChanged();
-+    void iDROnFECFailureEnabledChanged();
-     void currentProfileChanged();
-     void profilesChanged();
-     void placeboUpscalerChanged();
-diff --git a/gui/include/settings.h b/gui/include/settings.h
-index 40afabf3..cfc661be 100644
---- a/gui/include/settings.h
-+++ b/gui/include/settings.h
-@@ -274,6 +274,9 @@ class Settings : public QObject
- 		bool GetFullscreenDoubleClickEnabled() const	   { return settings.value("settings/fullscreen_doubleclick", false).toBool(); }
- 		void SetFullscreenDoubleClickEnabled(bool enabled) { settings.setValue("settings/fullscreen_doubleclick", enabled); }
- 
-+		bool GetIDROnFECFailureEnabled() const	   { return settings.value("settings/idr_on_fec_failure", true).toBool(); }
-+		void SetIDROnFECFailureEnabled(bool enabled) { settings.setValue("settings/idr_on_fec_failure", enabled); }
-+
- 		float GetHapticOverride() const 			{ return settings.value("settings/haptic_override", 1.0).toFloat(); }
- 		void SetHapticOverride(float override)	{ settings.setValue("settings/haptic_override", override); }
- 
-diff --git a/gui/include/streamsession.h b/gui/include/streamsession.h
-index d603a1d4..a01ea267 100755
---- a/gui/include/streamsession.h
-+++ b/gui/include/streamsession.h
-@@ -94,6 +94,7 @@ struct StreamSessionConnectInfo
- 	ChiakiDisableAudioVideo audio_video_disabled;
- 	RumbleHapticsIntensity rumble_haptics_intensity;
- 	bool buttons_by_pos;
-+	bool enable_idr_on_fec_failure;
- 	bool start_mic_unmuted;
- #if CHIAKI_GUI_ENABLE_STEAMDECK_NATIVE
- 	bool vertical_sdeck;
-diff --git a/gui/src/main.cpp b/gui/src/main.cpp
-index 2c7ff40e..d50d6935 100644
---- a/gui/src/main.cpp
-+++ b/gui/src/main.cpp
-@@ -67,6 +67,9 @@ int real_main(int argc, char *argv[])
- 	QGuiApplication::setApplicationName("Chiaki");
- 	QGuiApplication::setApplicationVersion(CHIAKI_VERSION);
- 	QGuiApplication::setApplicationDisplayName("chiaki-ng");
-+#if defined(Q_OS_MACOS)
-+	qputenv("QT_MTL_NO_TRANSACTION", "1");
-+#endif
- #if defined(Q_OS_LINUX)
- 	if(qEnvironmentVariableIsSet("FLATPAK_ID"))
- 		QGuiApplication::setDesktopFileName(qEnvironmentVariable("FLATPAK_ID"));
-diff --git a/gui/src/qml/PSNLoginDialog.qml b/gui/src/qml/PSNLoginDialog.qml
-index 80980063..50a70008 100644
---- a/gui/src/qml/PSNLoginDialog.qml
-+++ b/gui/src/qml/PSNLoginDialog.qml
-@@ -27,6 +27,8 @@ DialogView {
-         {
-             nativeLoginForm.visible = true;
-             nativeLoginForm.forceActiveFocus(Qt.TabFocusReason);
-+            if(Qt.platform.os == "linux" || Qt.platform.os == "osx")
-+                extBrowserButton.clicked();
-         }
-         else
-         {
-diff --git a/gui/src/qml/PSNTokenDialog.qml b/gui/src/qml/PSNTokenDialog.qml
-index 4b4a57fe..fd46d840 100644
---- a/gui/src/qml/PSNTokenDialog.qml
-+++ b/gui/src/qml/PSNTokenDialog.qml
-@@ -39,6 +39,8 @@ DialogView {
-         Chiaki.settings.remotePlayAsk = true;
-         nativeTokenForm.visible = true;
-         nativeTokenForm.forceActiveFocus(Qt.TabFocusReason);
-+        if(Qt.platform.os == "linux" || Qt.platform.os == "osx")
-+            extBrowserButton.clicked();
-     }
-     function close() {
-         if(webView.web)
-diff --git a/gui/src/qml/SettingsDialog.qml b/gui/src/qml/SettingsDialog.qml
-index 1a0f1108..6cc2c3fb 100644
---- a/gui/src/qml/SettingsDialog.qml
-+++ b/gui/src/qml/SettingsDialog.qml
-@@ -1546,10 +1546,27 @@ DialogView {
-                             text: qsTr("(5%)")
-                         }
- 
-+                        Label {
-+                            Layout.alignment: Qt.AlignRight
-+                            text: qsTr("Request IDR Frame on FEC Failure")
-+                        }
-+
-+                        C.CheckBox {
-+                            lastInFocusChain: true
-+                            checked: Chiaki.settings.iDROnFECFailureEnabled
-+                            onToggled: Chiaki.settings.iDROnFECFailureEnabled = !Chiaki.settings.iDROnFECFailureEnabled
-+                        }
-+
-+                        Label {
-+                            Layout.alignment: Qt.AlignRight
-+                            text: qsTr("(Checked)")
-+                        }
-+
-                         Label {
-                             Layout.alignment: Qt.AlignRight
-                             text: qsTr("Show Stream Stats During Gameplay")
-                         }
-+
-                         C.CheckBox {
-                             lastInFocusChain: true
-                             checked: Chiaki.settings.showStreamStats
-diff --git a/gui/src/qmlbackend.cpp b/gui/src/qmlbackend.cpp
-index 420427c1..e1786d14 100644
---- a/gui/src/qmlbackend.cpp
-+++ b/gui/src/qmlbackend.cpp
-@@ -2123,31 +2123,17 @@ void QmlBackend::createSteamShortcut(QString shortcutName, QString launchOptions
- QString QmlBackend::openPsnLink()
- {
-     QUrl url = psnLoginUrl();
--    if(QDesktopServices::openUrl(url) && (qEnvironmentVariable("XDG_CURRENT_DESKTOP") != "gamescope"))
--    {
--        qCWarning(chiakiGui) << "Launched browser.";
--        return QString();
--    }
--    else
--    {
--        qCWarning(chiakiGui) << "Could not launch browser.";
--        return QString(url.toEncoded());
--    }
-+    QDesktopServices::openUrl(url);
-+    url = psnLoginUrl();
-+    return QString(url.toEncoded());
- }
- 
- QString QmlBackend::openPlaceboOptionsLink()
- {
-     QUrl url = QUrl("https://libplacebo.org/options/");
--    if(QDesktopServices::openUrl(url) && (qEnvironmentVariable("XDG_CURRENT_DESKTOP") != "gamescope"))
--    {
--        qCWarning(chiakiGui) << "Launched browser.";
--        return QString();
--    }
--    else
--    {
--        qCWarning(chiakiGui) << "Could not launch browser.";
--        return QString(url.toEncoded());
--    }
-+    QDesktopServices::openUrl(url);
-+    url = psnLoginUrl();
-+    return QString(url.toEncoded());
- }
- 
- bool QmlBackend::checkPsnRedirectURL(const QUrl &url) const
-diff --git a/gui/src/qmlmainwindow.cpp b/gui/src/qmlmainwindow.cpp
-index f00e847b..b7da28e2 100644
---- a/gui/src/qmlmainwindow.cpp
-+++ b/gui/src/qmlmainwindow.cpp
-@@ -96,14 +96,13 @@ QmlMainWindow::QmlMainWindow(const StreamSessionConnectInfo &connect_info)
-     init(connect_info.settings);
-     backend->createSession(connect_info);
- 
-+    if (connect_info.fullscreen || connect_info.zoom || connect_info.stretch)
-+        fullscreenTime();
-     if (connect_info.zoom)
-         setVideoMode(VideoMode::Zoom);
-     else if (connect_info.stretch)
-         setVideoMode(VideoMode::Stretch);
- 
--    if (connect_info.fullscreen || connect_info.zoom || connect_info.stretch)
--        fullscreenTime();
--
-     connect(session, &StreamSession::SessionQuit, qGuiApp, &QGuiApplication::quit);
- }
- 
-diff --git a/gui/src/qmlsettings.cpp b/gui/src/qmlsettings.cpp
-index 395261ed..edd90612 100644
---- a/gui/src/qmlsettings.cpp
-+++ b/gui/src/qmlsettings.cpp
-@@ -192,6 +192,17 @@ void QmlSettings::setRumbleHapticsIntensity(int intensity)
-     emit rumbleHapticsIntensityChanged();
- }
- 
-+bool QmlSettings::iDROnFECFailureEnabled() const
-+{
-+    return settings->GetIDROnFECFailureEnabled();
-+}
-+
-+void QmlSettings::setIDROnFECFailureEnabled(bool enabled)
-+{
-+    settings->SetIDROnFECFailureEnabled(enabled);
-+    emit iDROnFECFailureEnabledChanged();
-+}
-+
- #ifdef CHIAKI_GUI_ENABLE_STEAMDECK_NATIVE
- bool QmlSettings::steamDeckHaptics() const
- {
-diff --git a/gui/src/streamsession.cpp b/gui/src/streamsession.cpp
-index ad1e5b6f..e89d2d9d 100755
---- a/gui/src/streamsession.cpp
-+++ b/gui/src/streamsession.cpp
-@@ -111,6 +111,7 @@ StreamSessionConnectInfo::StreamSessionConnectInfo(
- 	this->mouse_touch_enabled = settings->GetMouseTouchEnabled();
- 	this->enable_keyboard = false; // TODO: from settings
- 	this->enable_dualsense = true;
-+	this->enable_idr_on_fec_failure = settings->GetIDROnFECFailureEnabled();
- 	this->rumble_haptics_intensity = settings->GetRumbleHapticsIntensity();
- 	this->buttons_by_pos = settings->GetButtonsByPosition();
- 	this->start_mic_unmuted = settings->GetStartMicUnmuted();
-@@ -271,6 +272,7 @@ StreamSession::StreamSession(const StreamSessionConnectInfo &connect_info, QObje
- 	chiaki_connect_info.video_profile = connect_info.video_profile;
- 	chiaki_connect_info.video_profile_auto_downgrade = true;
- 	chiaki_connect_info.enable_keyboard = false;
-+	chiaki_connect_info.enable_idr_on_fec_failure = connect_info.enable_idr_on_fec_failure;
- 	chiaki_connect_info.enable_dualsense = connect_info.enable_dualsense;
- 	chiaki_connect_info.packet_loss_max = connect_info.packet_loss_max;
- 	chiaki_connect_info.auto_regist = connect_info.auto_regist;
-@@ -1804,7 +1806,7 @@ void StreamSession::Event(ChiakiEvent *event)
- 		case CHIAKI_EVENT_QUIT:
- 			if(!connected && !holepunch_session && chiaki_quit_reason_is_error(event->quit.reason) && connect_timer.elapsed() < SESSION_RETRY_SECONDS * 1000)
- 			{
--				QTimer::singleShot(1000, this, &StreamSession::Start);
-+				QTimer::singleShot(SESSION_RETRY_SECONDS / 3, this, &StreamSession::Start);
- 				return;
- 			}
- 			connected = false;
-diff --git a/lib/include/chiaki/session.h b/lib/include/chiaki/session.h
-index 02e0b222..fcf4c850 100644
---- a/lib/include/chiaki/session.h
-+++ b/lib/include/chiaki/session.h
-@@ -88,6 +88,7 @@ typedef struct chiaki_connect_info_t
- 	chiaki_socket_t *rudp_sock;
- 	uint8_t psn_account_id[CHIAKI_PSN_ACCOUNT_ID_SIZE];
- 	double packet_loss_max;
-+	bool enable_idr_on_fec_failure;
- } ChiakiConnectInfo;
- 
- 
-@@ -217,6 +218,7 @@ typedef struct chiaki_session_t
- 		bool enable_keyboard;
- 		bool enable_dualsense;
- 		uint8_t psn_account_id[CHIAKI_PSN_ACCOUNT_ID_SIZE];
-+		bool enable_idr_on_fec_failure;
- 	} connect_info;
- 
- 	ChiakiTarget target;
-diff --git a/lib/include/chiaki/streamconnection.h b/lib/include/chiaki/streamconnection.h
-index ba3bcefc..56ec7b61 100644
---- a/lib/include/chiaki/streamconnection.h
-+++ b/lib/include/chiaki/streamconnection.h
-@@ -95,6 +95,7 @@ CHIAKI_EXPORT ChiakiErrorCode stream_connection_send_toggle_mute_direct_message(
- CHIAKI_EXPORT ChiakiErrorCode chiaki_stream_connection_stop(ChiakiStreamConnection *stream_connection);
- 
- CHIAKI_EXPORT ChiakiErrorCode stream_connection_send_corrupt_frame(ChiakiStreamConnection *stream_connection, ChiakiSeqNum16 start, ChiakiSeqNum16 end);
-+CHIAKI_EXPORT ChiakiErrorCode stream_connection_send_idr_request(ChiakiStreamConnection *stream_connection);
- 
- #ifdef __cplusplus
- }
-diff --git a/lib/include/chiaki/videoreceiver.h b/lib/include/chiaki/videoreceiver.h
-index 6eae5b29..f0878add 100644
---- a/lib/include/chiaki/videoreceiver.h
-+++ b/lib/include/chiaki/videoreceiver.h
-@@ -33,6 +33,7 @@ typedef struct chiaki_video_receiver_t
- 	int32_t frames_lost;
- 	int32_t reference_frames[16];
- 	ChiakiBitstream bitstream;
-+	bool waiting_for_idr;
- } ChiakiVideoReceiver;
- 
- CHIAKI_EXPORT void chiaki_video_receiver_init(ChiakiVideoReceiver *video_receiver, struct chiaki_session_t *session, ChiakiPacketStats *packet_stats);
-diff --git a/lib/src/ctrl.c b/lib/src/ctrl.c
-index 2bfeb91b..400c1c4a 100644
---- a/lib/src/ctrl.c
-+++ b/lib/src/ctrl.c
-@@ -1282,6 +1282,23 @@ static ChiakiErrorCode ctrl_connect(ChiakiCtrl *ctrl)
- 		err = chiaki_send_recv_http_header_psn(session->rudp, session->log, &remote_counter, send_buf, request_len, buf, sizeof(buf), &header_size, &received_size);
- 	else
- 		err = chiaki_recv_http_header(ctrl->sock, buf, sizeof(buf), &header_size, &received_size, &ctrl->notif_pipe, CTRL_EXPECT_TIMEOUT);
-+	if (err == CHIAKI_ERR_TIMEOUT)
-+	{
-+		CHIAKI_LOGI(session->log, "Initial ctrl startup request timed out, resending ...");
-+		memset(buf, 0, sizeof(buf));
-+		if(session->rudp)
-+			err = chiaki_send_recv_http_header_psn(session->rudp, session->log, &remote_counter, send_buf, request_len, buf, sizeof(buf), &header_size, &received_size);
-+		else
-+		{
-+			int sent = send(ctrl->sock, (CHIAKI_SOCKET_BUF_TYPE)send_buf, (size_t)request_len, 0);
-+			if(sent < 0)
-+			{
-+				CHIAKI_LOGE(session->log, "Failed to send ctrl request");
-+				goto error;
-+			}
-+			err = chiaki_recv_http_header(ctrl->sock, buf, sizeof(buf), &header_size, &received_size, &ctrl->notif_pipe, CTRL_EXPECT_TIMEOUT);
-+		}
-+	}
- 	if(err != CHIAKI_ERR_SUCCESS)
- 	{
- 		if(err != CHIAKI_ERR_CANCELED)
-diff --git a/lib/src/remote/holepunch.c b/lib/src/remote/holepunch.c
-index 84dc8a01..e5d8d7bf 100644
---- a/lib/src/remote/holepunch.c
-+++ b/lib/src/remote/holepunch.c
-@@ -2059,10 +2059,15 @@ static void* websocket_thread_func(void *user) {
-     size_t rlen;
-     size_t wlen;
-     bool expecting_pong = false;
--    chiaki_mutex_lock(&session->stop_mutex);
--    while (!session->ws_thread_should_stop)
-+    while (true)
-     {
-+        chiaki_mutex_lock(&session->stop_mutex);
-+        bool should_stop = session->ws_thread_should_stop;
-         chiaki_mutex_unlock(&session->stop_mutex);
-+
-+        if (should_stop)
-+            break;
-+
-         now = chiaki_time_now_monotonic_us();
- 
-         if (expecting_pong && now - last_ping_sent > 5LL * SECOND_US)
-@@ -2201,11 +2206,9 @@ static void* websocket_thread_func(void *user) {
-                 goto cleanup_json;
-             }
-         }
--        chiaki_mutex_lock(&session->stop_mutex);
-     }
- 
- cleanup_json:
--    chiaki_mutex_unlock(&session->stop_mutex);
-     json_tokener_free(tok);
-     free(buf);
- cleanup:
-@@ -2324,6 +2327,8 @@ CHIAKI_EXPORT ChiakiErrorCode holepunch_session_create_offer(Session *session)
-     }
- 
-     uint16_t local_port = ntohs(client_addr.sin_port);
-+#ifndef __SWITCH__
-+    // Switch doesn't support IPv6 - skip IPv6 socket creation
-     session->ipv6_sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
-     if (CHIAKI_SOCKET_IS_INVALID(session->ipv6_sock))
-     {
-@@ -2363,6 +2368,7 @@ CHIAKI_EXPORT ChiakiErrorCode holepunch_session_create_offer(Session *session)
-         err = CHIAKI_ERR_UNKNOWN;
-         goto cleanup_socket;
-     }
-+#endif // __SWITCH__
- 
-     size_t our_offer_msg_req_id = session->local_req_id;
-     session->local_req_id++;
-@@ -3619,11 +3625,6 @@ static ChiakiErrorCode check_candidates(
-     memcpy(candidates, candidates_received, num_candidates * sizeof(Candidate));
-     int responses_received[num_candidates + EXTRA_CANDIDATE_ADDRESSES];
-     fd_set fds;
--    FD_ZERO(&fds);
--    if(!CHIAKI_SOCKET_IS_INVALID(session->ipv4_sock))
--        FD_SET(session->ipv4_sock, &fds);
--    if(!CHIAKI_SOCKET_IS_INVALID(session->ipv6_sock))
--        FD_SET(session->ipv6_sock, &fds);
-     bool failed = true;
-     char service_remote[6];
-     struct addrinfo hints;
-@@ -3788,35 +3789,51 @@ static ChiakiErrorCode check_candidates(
-     // Wait for responses
-     uint8_t response_buf[88];
- 
--    chiaki_socket_t maxfd = -1;
--    if(!CHIAKI_SOCKET_IS_INVALID(session->ipv4_sock))
--        maxfd = session->ipv4_sock;
--    if(session->ipv6_sock > maxfd)
--        maxfd = session->ipv6_sock;
--    if(session->stun_random_allocation)
--    {
--        for(int i=0; i<RANDOM_ALLOCATION_SOCKS_NUMBER; i++)
--        {
--            if(socks[i] > maxfd)
--                maxfd = socks[i];
--            FD_SET(socks[i], &fds);
--        }
--    }
--    maxfd = maxfd + 1;
--
--    struct timeval tv;
--    tv.tv_sec = 0;
--    tv.tv_usec = SELECT_CANDIDATE_TIMEOUT_SEC * SECOND_US;
--
-     chiaki_socket_t selected_sock = CHIAKI_INVALID_SOCKET;
-     Candidate *selected_candidate = NULL;
-     bool received_response = false;
-     bool responded = false;
-     bool connecting = false;
-     int retry_counter = 0;
-+    chiaki_socket_t maxfd = -1;
-+    struct timeval tv;
- 
-     while (!selected_candidate)
-     {
-+        // Reset fd_set before each select() call 
-+        FD_ZERO(&fds);
-+        maxfd = -1;
-+        if(!CHIAKI_SOCKET_IS_INVALID(session->ipv4_sock))
-+        {
-+            FD_SET(session->ipv4_sock, &fds);
-+            maxfd = session->ipv4_sock;
-+        }
-+        if(!CHIAKI_SOCKET_IS_INVALID(session->ipv6_sock))
-+        {
-+            FD_SET(session->ipv6_sock, &fds);
-+            if(session->ipv6_sock > maxfd)
-+                maxfd = session->ipv6_sock;
-+        }
-+        if(session->stun_random_allocation)
-+        {
-+            for(int i=0; i<RANDOM_ALLOCATION_SOCKS_NUMBER; i++)
-+            {
-+                if(socks[i] > maxfd)
-+                    maxfd = socks[i];
-+                FD_SET(socks[i], &fds);
-+            }
-+        }
-+        maxfd = maxfd + 1;
-+        if(connecting)
-+        {
-+            tv.tv_sec = SELECT_CANDIDATE_CONNECTION_SEC;
-+            tv.tv_usec = 0;
-+        }
-+        else
-+        {
-+            tv.tv_usec = SELECT_CANDIDATE_TIMEOUT_SEC * SECOND_US;
-+            tv.tv_sec = 0;
-+        }
-         int ret = select(maxfd, &fds, NULL, NULL, &tv);
- #ifdef _WIN32
- 	    if (ret < 0 && WSAGetLastError() != WSAEINTR)
-@@ -3834,13 +3851,6 @@ static ChiakiErrorCode check_candidates(
-                 if(retry_counter < SELECT_CANDIDATE_TRIES && !received_response)
-                 {
-                     retry_counter++;
--                    tv.tv_sec = 0;
--                    tv.tv_usec = SELECT_CANDIDATE_TIMEOUT_SEC * SECOND_US;
--                    FD_ZERO(&fds);
--                    if(!CHIAKI_SOCKET_IS_INVALID(session->ipv4_sock))
--                        FD_SET(session->ipv4_sock, &fds);
--                    if(!CHIAKI_SOCKET_IS_INVALID(session->ipv6_sock))
--                        FD_SET(session->ipv6_sock, &fds);
-                     Candidate *candidate = NULL;
-                     chiaki_socket_t sock = CHIAKI_INVALID_SOCKET;
-                     CHIAKI_LOGI(session->log, "check_candidates: Resending requests to all candidates TRY %d... waiting for 1st response", retry_counter);
-@@ -3863,22 +3873,12 @@ static ChiakiErrorCode check_candidates(
-                             CHIAKI_LOGE(session->log, "check_candidates: Sending request failed for %s:%d with error: " CHIAKI_SOCKET_ERROR_FMT, candidate->addr, candidate->port, CHIAKI_SOCKET_ERROR_VALUE);
-                             continue;
-                         }
--                        if(session->stun_random_allocation && (candidate->type == CANDIDATE_TYPE_STATIC || candidate->type == CANDIDATE_TYPE_STUN))
--                        {
--                            for(int j=0; j<RANDOM_ALLOCATION_SOCKS_NUMBER; j++)
--                            {
--                                if(!CHIAKI_SOCKET_IS_INVALID(socks[j]))
--                                    FD_SET(socks[j], &fds);
--                            }
--                        }
-                     }
-                     continue;                    
-                 }
-                 else if(received_response && !connecting)
-                 {
-                     connecting = true;
--                    tv.tv_sec = SELECT_CANDIDATE_CONNECTION_SEC;
--                    tv.tv_usec = 0;
-                     continue;
-                 }
-                 // No responsive candidate within timeout, terminate with error
-@@ -4758,9 +4758,11 @@ static ChiakiErrorCode wait_for_session_message_ack(
-             CHIAKI_LOGE(session->log, "wait_for_session_message_ack: Got ACK for unexpected request ID %d", msg->req_id);
-             session_message_free(msg);
-             msg = NULL;
-+            chiaki_mutex_unlock(&session->stop_mutex);
-             continue;
-         }
-         finished = true;
-+        chiaki_mutex_unlock(&session->stop_mutex);
-         chiaki_mutex_lock(&session->notif_mutex);
-         session_message_free(msg);
-         chiaki_mutex_unlock(&session->notif_mutex);
-diff --git a/lib/src/session.c b/lib/src/session.c
-index 42a86002..ac8eb6a0 100644
---- a/lib/src/session.c
-+++ b/lib/src/session.c
-@@ -263,6 +263,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_session_init(ChiakiSession *session, Chiaki
- 	session->connect_info.video_profile_auto_downgrade = connect_info->video_profile_auto_downgrade;
- 	session->connect_info.enable_keyboard = connect_info->enable_keyboard;
- 	session->connect_info.enable_dualsense = connect_info->enable_dualsense;
-+	session->connect_info.enable_idr_on_fec_failure = connect_info->enable_idr_on_fec_failure;
- 
- 	return CHIAKI_ERR_SUCCESS;
- 
-diff --git a/lib/src/streamconnection.c b/lib/src/streamconnection.c
-index 50c9aa15..3853b0fc 100644
---- a/lib/src/streamconnection.c
-+++ b/lib/src/streamconnection.c
-@@ -1279,4 +1279,23 @@ CHIAKI_EXPORT ChiakiErrorCode stream_connection_send_corrupt_frame(ChiakiStreamC
- 
- 	CHIAKI_LOGD(stream_connection->log, "StreamConnection reporting corrupt frame(s) from %u to %u", (unsigned int)start, (unsigned int)end);
- 	return chiaki_takion_send_message_data(&stream_connection->takion, 1, 2, buf, stream.bytes_written, NULL);
-+}
-+
-+CHIAKI_EXPORT ChiakiErrorCode stream_connection_send_idr_request(ChiakiStreamConnection *stream_connection)
-+{
-+	tkproto_TakionMessage msg = { 0 };
-+	msg.type = tkproto_TakionMessage_PayloadType_IDRREQUEST;
-+
-+	uint8_t buf[0x10];
-+
-+	pb_ostream_t stream = pb_ostream_from_buffer(buf, sizeof(buf));
-+	bool pbr = pb_encode(&stream, tkproto_TakionMessage_fields, &msg);
-+	if(!pbr)
-+	{
-+		CHIAKI_LOGE(stream_connection->log, "StreamConnection IDR request protobuf encoding failed");
-+		return CHIAKI_ERR_UNKNOWN;
-+	}
-+
-+	CHIAKI_LOGI(stream_connection->log, "StreamConnection requesting IDR frame");
-+	return chiaki_takion_send_message_data(&stream_connection->takion, 1, 2, buf, stream.bytes_written, NULL);
- }
-\ No newline at end of file
-diff --git a/lib/src/videoreceiver.c b/lib/src/videoreceiver.c
-index fd1b754a..a09ce49f 100644
---- a/lib/src/videoreceiver.c
-+++ b/lib/src/videoreceiver.c
-@@ -51,6 +51,7 @@ CHIAKI_EXPORT void chiaki_video_receiver_init(ChiakiVideoReceiver *video_receive
- 	video_receiver->frames_lost = 0;
- 	memset(video_receiver->reference_frames, -1, sizeof(video_receiver->reference_frames));
- 	chiaki_bitstream_init(&video_receiver->bitstream, video_receiver->log, video_receiver->session->connect_info.video_profile.codec);
-+	video_receiver->waiting_for_idr = false;
- }
- 
- CHIAKI_EXPORT void chiaki_video_receiver_fini(ChiakiVideoReceiver *video_receiver)
-@@ -170,6 +171,12 @@ static ChiakiErrorCode chiaki_video_receiver_flush_frame(ChiakiVideoReceiver *vi
- 		{
- 			ChiakiSeqNum16 next_frame_expected = (ChiakiSeqNum16)(video_receiver->frame_index_prev_complete + 1);
- 			stream_connection_send_corrupt_frame(&video_receiver->session->stream_connection, next_frame_expected, video_receiver->frame_index_cur);
-+			if(video_receiver->session->connect_info.enable_idr_on_fec_failure)
-+			{
-+				stream_connection_send_idr_request(&video_receiver->session->stream_connection);
-+				video_receiver->waiting_for_idr = true;
-+				CHIAKI_LOGI(video_receiver->log, "FEC failed, waiting for IDR frame");
-+			}
- 			video_receiver->frames_lost += video_receiver->frame_index_cur - next_frame_expected + 1;
- 			video_receiver->frame_index_prev = video_receiver->frame_index_cur;
- 		}
-@@ -183,6 +190,21 @@ static ChiakiErrorCode chiaki_video_receiver_flush_frame(ChiakiVideoReceiver *vi
- 	ChiakiBitstreamSlice slice;
- 	if(chiaki_bitstream_slice(&video_receiver->bitstream, frame, frame_size, &slice))
- 	{
-+		if(video_receiver->waiting_for_idr)
-+		{
-+			if(slice.slice_type == CHIAKI_BITSTREAM_SLICE_I)
-+			{
-+				video_receiver->waiting_for_idr = false;
-+				CHIAKI_LOGI(video_receiver->log, "Received IDR frame, resuming decode");
-+			}
-+			else
-+			{
-+				CHIAKI_LOGV(video_receiver->log, "Skipping P-frame %d while waiting for IDR", (int)video_receiver->frame_index_cur);
-+				video_receiver->frame_index_prev = video_receiver->frame_index_cur;
-+				return CHIAKI_ERR_SUCCESS;
-+			}
-+		}
-+
- 		if(slice.slice_type == CHIAKI_BITSTREAM_SLICE_P)
- 		{
- 			ChiakiSeqNum16 ref_frame_index = video_receiver->frame_index_cur - slice.reference_frame - 1;
-diff --git a/scripts/build-libplacebo-windows-arm.sh b/scripts/build-libplacebo-windows-arm.sh
-index 51f9802f..5832c6fa 100755
---- a/scripts/build-libplacebo-windows-arm.sh
-+++ b/scripts/build-libplacebo-windows-arm.sh
-@@ -6,7 +6,7 @@ cd "./$1"
- shift
- ROOT="`pwd`"
- 
--TAG=1f1ba06aa2a83a2c75ade4150b7c0bba10531088
-+TAG=1dcaea8b601aa969ffd5bfa70088957ce3eaa273
- if [ ! -d "libplacebo" ]; then
- git clone --recursive https://github.com/haasn/libplacebo.git || exit 1
- fi
-diff --git a/scripts/build-libplacebo-windows.sh b/scripts/build-libplacebo-windows.sh
-index edbf6a26..465cbf1c 100755
---- a/scripts/build-libplacebo-windows.sh
-+++ b/scripts/build-libplacebo-windows.sh
-@@ -6,7 +6,7 @@ cd "./$1"
- shift
- ROOT="`pwd`"
- 
--TAG=1f1ba06aa2a83a2c75ade4150b7c0bba10531088
-+TAG=1dcaea8b601aa969ffd5bfa70088957ce3eaa273
- if [ ! -d "libplacebo" ]; then
- git clone --recursive https://github.com/haasn/libplacebo.git || exit 1
- fi
-diff --git a/scripts/build-libplacebo.sh b/scripts/build-libplacebo.sh
-index 91209f8a..9cd05fb7 100755
---- a/scripts/build-libplacebo.sh
-+++ b/scripts/build-libplacebo.sh
-@@ -6,14 +6,12 @@ cd "./$1"
- shift
- ROOT="`pwd`"
- 
--TAG=1f1ba06aa2a83a2c75ade4150b7c0bba10531088
-+TAG=1dcaea8b601aa969ffd5bfa70088957ce3eaa273
- if [ ! -d "libplacebo" ]; then
- git clone --recursive https://github.com/haasn/libplacebo.git || exit 1
- fi
- cd libplacebo || exit 1
- git checkout $TAG || exit 1
--git apply "${SCRIPT_DIR}/flatpak/0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch" || exit 1
--git apply "${SCRIPT_DIR}/flatpak/0002-Vulkan-use-16bit-for-p010.patch" | exit 1
- DIR=./build || exit 1
- meson setup --prefix /usr -Dxxhash=disabled $DIR || exit 1
- ninja -C$DIR || exit 1
-diff --git a/scripts/chiaki-ng.iss b/scripts/chiaki-ng.iss
-index 3bf37ede..7cdecc00 100644
---- a/scripts/chiaki-ng.iss
-+++ b/scripts/chiaki-ng.iss
-@@ -60,7 +60,6 @@ Name: "french"; MessagesFile: "compiler:Languages\French.isl"
- Name: "german"; MessagesFile: "compiler:Languages\German.isl"
- Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
- Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
--Name: "icelandic"; MessagesFile: "compiler:Languages\Icelandic.isl"
- Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
- Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
- Name: "korean"; MessagesFile: "compiler:Languages\Korean.isl"
-diff --git a/scripts/flatpak/0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch b/scripts/flatpak/0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch
-deleted file mode 100644
-index 4537f7b9..00000000
---- a/scripts/flatpak/0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch
-+++ /dev/null
-@@ -1,28 +0,0 @@
--diff --git a/src/vulkan/swapchain.c b/src/vulkan/swapchain.c
--index 0646e57c..226938b5 100644
----- a/src/vulkan/swapchain.c
--+++ b/src/vulkan/swapchain.c
--@@ -612,13 +612,21 @@ static bool vk_sw_recreate(pl_swapchain sw, int w, int h)
--     }
-- #endif
-- 
--+    {
--+        pl_gpu_flush(gpu);
--+        vk_wait_idle(vk);
--+        for (int i = 0; i < vk->pool_graphics->num_queues; i++)
--+            vk->QueueWaitIdle(vk->pool_graphics->queues[i]);
--+        vk->DestroySwapchainKHR(vk->dev, p->swapchain, PL_VK_ALLOC);
--+    }
--+
--     // Calling `vkCreateSwapchainKHR` puts sinfo.oldSwapchain into a retired
--     // state whether the call succeeds or not, so we always need to garbage
--     // collect it afterwards - asynchronously as it may still be in use
---    sinfo.oldSwapchain = p->swapchain;
--+    /* sinfo.oldSwapchain = p->swapchain; */
--     p->swapchain = VK_NULL_HANDLE;
--     VkResult res = vk->CreateSwapchainKHR(vk->dev, &sinfo, PL_VK_ALLOC, &p->swapchain);
---    vk_dev_callback(vk, VK_CB_FUNC(destroy_swapchain), vk, vk_wrap_handle(sinfo.oldSwapchain));
--+    /* vk_dev_callback(vk, (vk_cb) destroy_swapchain, vk, vk_wrap_handle(sinfo.oldSwapchain)); */
--     PL_VK_ASSERT(res, "vk->CreateSwapchainKHR(...)");
-- 
--     // Get the new swapchain images
-diff --git a/scripts/flatpak/0002-Vulkan-use-16bit-for-p010.patch b/scripts/flatpak/0002-Vulkan-use-16bit-for-p010.patch
-deleted file mode 100644
-index 1add78e6..00000000
---- a/scripts/flatpak/0002-Vulkan-use-16bit-for-p010.patch
-+++ /dev/null
-@@ -1,48 +0,0 @@
--diff --git a/src/vulkan/formats.c b/src/vulkan/formats.c
--index f0eb0fb7..7d1c6478 100644
----- a/src/vulkan/formats.c
--+++ b/src/vulkan/formats.c
--@@ -415,7 +415,12 @@ void vk_setup_formats(struct pl_gpu_t *gpu)
--             .pNext = has_drm_mods ? &drm_props : NULL,
--         };
-- 
---        vk->GetPhysicalDeviceFormatProperties2KHR(vk->physd, vk_fmt->tfmt, &prop2);
--+        VkFormat tfmt = vk_fmt->tfmt;
--+        if (tfmt == VK_FORMAT_R10X6_UNORM_PACK16)
--+            tfmt = VK_FORMAT_R16_UNORM;
--+        else if (tfmt == VK_FORMAT_R10X6G10X6_UNORM_2PACK16)
--+            tfmt = VK_FORMAT_R16G16_UNORM;
--+        vk->GetPhysicalDeviceFormatProperties2KHR(vk->physd, tfmt, &prop2);
-- 
--         // If wholly unsupported, try falling back to the emulation formats
--         // for texture operations
--diff --git a/src/vulkan/gpu_tex.c b/src/vulkan/gpu_tex.c
--index a419ffdc..ec32c546 100644
----- a/src/vulkan/gpu_tex.c
--+++ b/src/vulkan/gpu_tex.c
--@@ -371,6 +371,11 @@ pl_tex vk_tex_create(pl_gpu gpu, const struct pl_tex_params *params)
--         .pQueueFamilyIndices = qfs,
--     };
--
--+    if (tex_vk->img_fmt == VK_FORMAT_R10X6_UNORM_PACK16)
--+        iinfo.format = VK_FORMAT_R16_UNORM;
--+    else if (tex_vk->img_fmt == VK_FORMAT_R10X6G10X6_UNORM_2PACK16)
--+        iinfo.format = VK_FORMAT_R16G16_UNORM;
--+
--     struct vk_malloc_params mparams = {
--         .optimal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
--         .export_handle = params->export_handle,
--@@ -1215,7 +1220,12 @@ pl_tex pl_vulkan_wrap(pl_gpu gpu, const struct pl_vulkan_wrap_params *params)
--     tex_vk->external_img = true;
--     tex_vk->held = !fmt->num_planes;
--     tex_vk->img = params->image;
---    tex_vk->img_fmt = params->format;
--+    if (params->format == VK_FORMAT_R10X6_UNORM_PACK16)
--+        tex_vk->img_fmt = VK_FORMAT_R16_UNORM;
--+    else if (params->format == VK_FORMAT_R10X6G10X6_UNORM_2PACK16)
--+        tex_vk->img_fmt = VK_FORMAT_R16G16_UNORM;
--+    else
--+        tex_vk->img_fmt = params->format;
--     tex_vk->num_planes = fmt->num_planes;
--     tex_vk->usage_flags = usage;
--     tex_vk->aspect = params->aspect;
-diff --git a/scripts/flatpak/chiaki4deck-devel.yaml b/scripts/flatpak/chiaki4deck-devel.yaml
-index 50609966..c7081d52 100644
---- a/scripts/flatpak/chiaki4deck-devel.yaml
-+++ b/scripts/flatpak/chiaki4deck-devel.yaml
-@@ -54,9 +54,7 @@ modules:
-     sources:
-       - type: git
-         url: https://github.com/haasn/libplacebo
--        tag: 1f1ba06aa2a83a2c75ade4150b7c0bba10531088
--      - type: patch
--        path: 0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch
-+        tag: 1dcaea8b601aa969ffd5bfa70088957ce3eaa273
- 
-   - name: ffmpeg
-     cleanup:
-@@ -86,7 +84,7 @@ modules:
-   - name: python3-google
-     buildsystem: simple
-     build-commands:
--      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} google"
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation google"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/3e/db/5ba900920642414333bdc3cb397075381d63eafc7e75c2373bbc560a9fa1/soupsieve-2.0.1.tar.gz
-@@ -101,7 +99,7 @@ modules:
-   - name: python3-protobuf
-     buildsystem: simple
-     build-commands:
--      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} protobuf"
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation protobuf"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/ba/dd/f8a01b146bf45ac12a829bbc599e6590aa6a6849ace7d28c42d77041d6ab/protobuf-4.21.12.tar.gz
-@@ -110,7 +108,7 @@ modules:
-   - name: python3-requests
-     buildsystem: simple
-     build-commands:
--      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} requests"
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation requests"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/ea/b7/e0e3c1c467636186c39925827be42f16fee389dc404ac29e930e9136be70/idna-2.10.tar.gz
-diff --git a/scripts/flatpak/chiaki4deck.yaml b/scripts/flatpak/chiaki4deck.yaml
-index bf794181..adfe2b25 100644
---- a/scripts/flatpak/chiaki4deck.yaml
-+++ b/scripts/flatpak/chiaki4deck.yaml
-@@ -57,9 +57,7 @@ modules:
-     sources:
-       - type: git
-         url: https://github.com/haasn/libplacebo
--        tag: 1f1ba06aa2a83a2c75ade4150b7c0bba10531088
--      - type: patch
--        path: 0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch
-+        tag: 1dcaea8b601aa969ffd5bfa70088957ce3eaa273
- 
-   - name: ffmpeg
-     cleanup:
-@@ -90,7 +88,7 @@ modules:
-   - name: python3-google
-     buildsystem: simple
-     build-commands:
--      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} google"
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation google"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/3e/db/5ba900920642414333bdc3cb397075381d63eafc7e75c2373bbc560a9fa1/soupsieve-2.0.1.tar.gz
-@@ -105,7 +103,7 @@ modules:
-   - name: python3-protobuf
-     buildsystem: simple
-     build-commands:
--      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} protobuf"
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation protobuf"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/ba/dd/f8a01b146bf45ac12a829bbc599e6590aa6a6849ace7d28c42d77041d6ab/protobuf-4.21.12.tar.gz
-@@ -114,7 +112,7 @@ modules:
-   - name: python3-requests
-     buildsystem: simple
-     build-commands:
--      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} requests"
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation requests"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/ea/b7/e0e3c1c467636186c39925827be42f16fee389dc404ac29e930e9136be70/idna-2.10.tar.gz
-diff --git a/scripts/flatpak/io.github.streetpea.Chiaki4deck.yaml b/scripts/flatpak/io.github.streetpea.Chiaki4deck.yaml
-index 3afd1123..571d9b3e 100644
---- a/scripts/flatpak/io.github.streetpea.Chiaki4deck.yaml
-+++ b/scripts/flatpak/io.github.streetpea.Chiaki4deck.yaml
-@@ -58,9 +58,7 @@ modules:
-     sources:
-       - type: git
-         url: https://github.com/haasn/libplacebo
--        tag: 1f1ba06aa2a83a2c75ade4150b7c0bba10531088
--      - type: patch
--        path: 0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch
-+        tag: 1dcaea8b601aa969ffd5bfa70088957ce3eaa273
- 
-   - name: ffmpeg
-     cleanup:
-@@ -91,8 +89,7 @@ modules:
-   - name: python3-google
-     buildsystem: simple
-     build-commands:
--      - pip3 install --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST}
--        google
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation google"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/3e/db/5ba900920642414333bdc3cb397075381d63eafc7e75c2373bbc560a9fa1/soupsieve-2.0.1.tar.gz
-@@ -107,8 +104,7 @@ modules:
-   - name: python3-protobuf
-     buildsystem: simple
-     build-commands:
--      - pip3 install --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST}
--        protobuf
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation protobuf"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/ba/dd/f8a01b146bf45ac12a829bbc599e6590aa6a6849ace7d28c42d77041d6ab/protobuf-4.21.12.tar.gz
-@@ -117,8 +113,7 @@ modules:
-   - name: python3-requests
-     buildsystem: simple
-     build-commands:
--      - pip3 install --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST}
--        requests
-+      - "pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} --no-build-isolation requests"
-     sources:
-       - type: file
-         url: https://files.pythonhosted.org/packages/ea/b7/e0e3c1c467636186c39925827be42f16fee389dc404ac29e930e9136be70/idna-2.10.tar.gz
-diff --git a/scripts/switch/push-docker-build-chiaki.sh b/scripts/switch/push-docker-build-chiaki.sh
-index a4218d4c..3347808d 100755
---- a/scripts/switch/push-docker-build-chiaki.sh
-+++ b/scripts/switch/push-docker-build-chiaki.sh
-@@ -17,6 +17,6 @@ docker run \
-     -w "/build/chiaki" \
-     -ti -p 28771:28771 \
-     --entrypoint /opt/devkitpro/tools/bin/nxlink \
--    docker.io/xlanor/chiaki-ng-switch-builder:latest \
-+    ghcr.io/streetpea/chiaki-build-switch:latest \
-     "$@" -s /build/chiaki/build_switch/switch/chiaki-ng.nro
- 
-diff --git a/scripts/switch/run-docker-build-chiaki.bat b/scripts/switch/run-docker-build-chiaki.bat
-index 5cbc7ea6..8f5f668a 100644
---- a/scripts/switch/run-docker-build-chiaki.bat
-+++ b/scripts/switch/run-docker-build-chiaki.bat
-@@ -2,7 +2,7 @@ set my_dir=%cd%
- docker run --rm ^
-         -v "%my_dir%:/build/chiaki":z ^
-         -w "/build/chiaki" ^
--        docker.io/xlanor/chiaki-ng-switch-builder:latest ^
-+        ghcr.io/streetpea/chiaki-build-switch:latest ^
-         /bin/bash -c "scripts/switch/build.sh"
- 
- if %ErrorLevel% equ 0 (copy build_switch\switch\chiaki.nro build_switch\switch\chiaki-ng.nro)
-diff --git a/scripts/switch/run-docker-build-chiaki.sh b/scripts/switch/run-docker-build-chiaki.sh
-index b2d48b3b..0bb1cc8a 100755
---- a/scripts/switch/run-docker-build-chiaki.sh
-+++ b/scripts/switch/run-docker-build-chiaki.sh
-@@ -5,7 +5,7 @@ cd "`dirname $(readlink -f ${0})`/../.."
- docker run --rm \
- 	-v "`pwd`:/build/chiaki":z \
- 	-w "/build/chiaki" \
--	docker.io/xlanor/chiaki-ng-switch-builder:latest \
-+	ghcr.io/streetpea/chiaki-build-switch:latest \
- 	/bin/bash -c "scripts/switch/build.sh"
- 
- if [[ $? -eq 0 ]]; then
-diff --git a/vcpkg.json b/vcpkg.json
-index 3a5b40a9..b1539cb0 100644
---- a/vcpkg.json
-+++ b/vcpkg.json
-@@ -1,16 +1,14 @@
- {
-   "name": "chiaki-ng",
--  "version": "1.9.8",
-+  "version": "1.9.9",
-   "dependencies": [
-     "pkgconf",
-     "sdl2",
-     "protobuf",
-     "openssl",
--    "hidapi",
-     "json-c",
-     "miniupnpc",
-     "opus",
--    "fftw3",
-     "lcms",
-     "speexdsp",
-     "vulkan"
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/chiaki-ng.git/commitdiff/2291a1a07fb8769076cd7bc8160adf54877fe817




More information about the pld-cvs-commit mailing list