diff --git a/CMakeLists.txt b/CMakeLists.txt index 371dfe93b..5c042d6db 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,7 @@ tri_option(CHIAKI_USE_SYSTEM_CURL "Use system-provided curl instead of submodule set(CHIAKI_VERSION_MAJOR 1) set(CHIAKI_VERSION_MINOR 9) -set(CHIAKI_VERSION_PATCH 0) +set(CHIAKI_VERSION_PATCH 1) set(CHIAKI_VERSION ${CHIAKI_VERSION_MAJOR}.${CHIAKI_VERSION_MINOR}.${CHIAKI_VERSION_PATCH}) set(CPACK_PACKAGE_NAME "chiaki-ng") diff --git a/docs/diy/buildit.md b/docs/diy/buildit.md index dc628a900..972784f30 100644 --- a/docs/diy/buildit.md +++ b/docs/diy/buildit.md @@ -91,7 +91,7 @@ 1. Install the necessary [flatpak runtime](https://docs.flatpak.org/en/latest/basic-concepts.html#runtimes){target="_blank" rel="noopener"}, associated [sdk](https://docs.flatpak.org/en/latest/building-introduction.html#software-development-kits-sdks){target="_blank" rel="noopener"}, and base app. ```bash - flatpak install -y flathub org.kde.Platform//6.7 flathub org.kde.Sdk//6.7 + flatpak install -y flathub org.kde.Platform//6.8 flathub org.kde.Sdk//6.8 ``` 2. Create a directory for your build files and switch into it @@ -114,19 +114,7 @@ curl -LO https://raw.githubusercontent.com/streetpea/chiaki-ng/main/scripts/flatpak/0001-Vulkan-Don-t-try-to-reuse-old-swapchain.patch ``` - 2. 0001-lavc-vaapi_h264-Fixup-invalid-references.patch - - ``` - curl -LO https://raw.githubusercontent.com/streetpea/chiaki-ng/main/scripts/flatpak/0001-lavc-vaapi_h264-Fixup-invalid-references.patch - ``` - - 3. 0001-lavc-vaapi_hevc-Fixup-invalid-references.patch - - ``` - curl -LO https://raw.githubusercontent.com/streetpea/chiaki-ng/main/scripts/flatpak/0001-lavc-vaapi_hevc-Fixup-invalid-references.patch - ``` - - 4. 0001-vulkan-ignore-frames-without-hw-context.patch + 2. 0001-vulkan-ignore-frames-without-hw-context.patch ``` curl -LO https://raw.githubusercontent.com/streetpea/chiaki-ng/main/scripts/flatpak/0001-vulkan-ignore-frames-without-hw-context.patch diff --git a/docs/diy/steamdeckdev.md b/docs/diy/steamdeckdev.md index 158330c22..0f6e14e3f 100644 --- a/docs/diy/steamdeckdev.md +++ b/docs/diy/steamdeckdev.md @@ -8,10 +8,10 @@ This is for contributors that want to make/test updates to the codebase without ## Setup Environment -1. Install flatpak and/or build a new one with any added dependencies following [Building the Flatpak Yourself](buildit.md){target="_blank" rel="noopener"} +1. Install flatpak with debug extension and/or build a new one with any added dependencies following [Building the Flatpak Yourself](buildit.md){target="_blank" rel="noopener"} ``` bash - flatpak install --user -y https://raw.githubusercontent.com/streetpea/chiaki-ng/main/scripts/flatpak/io.github.streetpea.Chiaki4deck-devel.flatpakref + flatpak install --include-debug -y https://raw.githubusercontent.com/streetpea/chiaki-ng/main/scripts/flatpak/io.github.streetpea.Chiaki4deck-devel.flatpakref ``` !!! Info "Creating local flatpak builds" @@ -42,22 +42,16 @@ This is for contributors that want to make/test updates to the codebase without 3. Install the SDK ``` bash - flatpak install org.kde.Sdk//6.7 + flatpak install org.kde.Sdk//6.8 ``` 4. Install the `Debug` extensions for the SDK ``` bash - flatpak install org.kde.Sdk.Debug//6.7 + flatpak install org.kde.Sdk.Debug//6.8 ``` -5. Install the `Debug` extension for the application build for debugging - - ``` bash - flatpak install io.github.streetpea.Chiaki4deck.Debug - ``` - -6. Clone the project onto your Steam Deck with: +5. Clone the project onto your Steam Deck with: === "HTTPS" diff --git a/docs/setup/configuration.md b/docs/setup/configuration.md index 259c76e90..7081191cd 100644 --- a/docs/setup/configuration.md +++ b/docs/setup/configuration.md @@ -41,42 +41,44 @@ 2. `Enable turning on PS4 from Network` - 3. Get your PlayStation AccountID (This is needed to access your ps account) + 2. Open `chiaki-ng` (click the Steam icon in the bottom left and search for it in the `Games` section via GUI or `flatpak run io.github.streetpea.chiaki-ng` via `konsole`) and your PlayStation system should be automatically discovered. - === "Using Gui (Linux and MacOS only)" + ![Unregistered PS5](images/UnregisteredPS5.png) - 1. Wait until step 5 below when you are registering your console, hit the `PSN Login` button and login to your PlayStation account on the window that opens. + !!! Question "What if my PlayStation Console isn't Appearing?" + + Make sure your client device (i.e., Steam Deck) is on the same wireless network as your PlayStation system and that the PlayStation console is either on or in sleep/rest mode. If this doesn't work, you can always try restarting your client device (i.e., Steam Deck) and connecting to the network again. If it still doesn't work you can try the Manual Registration step in step 5 below. - ![PSN Login](images/PSNLogin.png) + 2. Register `chiaki-ng` with PSN to enable remote Play via PSN via the popup - === "Using konsole (Flatpak only)" + ![Remote Play PSN Popup](images/RemotePlayPSNPopup.png) - 1. Run the flatpak with the `psn-account-id` command + 1. Login to psn on the provided page if one appears. Otherwise, paste your clipboard contents in a web browser and bang enter to bring up the login to psn page. - ``` bash - flatpak run --command=psn-account-id io.github.streetpea.Chiaki4deck - ``` + ???- Tip "Tips for those having trouble logging into to PSN" - 2. Follow the prompts, opening a browser and logging in with your PlayStation network account details when prompted. + If you get a `connection to the server timed out` message, keep on trying to login by hitting ++enter++ every few seconds until you get a different error message such as `Can't connect to the server` or you have tried for at least 20 seconds. If that doesn't work, please try refreshing the page and going through the process again. If you still can't find success, make an attempt using a different browser. - 3. Copy the Account-ID you receive and store it in a safe place. This is the Account-ID used for remote play that is associated with your PlayStation online account username and password. + Unfortunately, we have no control over Sony's site (that gives out auth tokens to access their PSN servers for the remote connection over PSN setup) so we can only give tips on how best to handle the errors that may occur on the page and wish you the best in obtaining your token. Fortunately, once this token is obtained, chiaki-ng will automatically refresh it as needed and only ask for you to create a new token in the event that PSN requires you to generate a new one using your login. - === "Using public website" + 2. Copy your redirect url from the browser - 1. Change your PSN privacy settings to allow anyone to find you in your search - 2. Go to [psn.flipscreen.games](https://psn.flipscreen.games/){target="_blank" rel="noopener"} - 3. Enter your Account ID - 4. Copy your encoded id for Chiaki + ![Redirect picture](images/CopyRedirectLinkPsn.png) - 4. Open `chiaki-ng` (click the Steam icon in the bottom left and search for it in the `Games` section via GUI or `flatpak run io.github.streetpea.chiaki-ng` via `konsole`) and your PlayStation system should be automatically discovered. + 3. Paste your redirect url on the page and create your token - ![Unregistered PS5](images/UnregisteredPS5.png) + ![Create token](images/PasteUrlPSN.png) - !!! Question "What if my PlayStation Console isn't Appearing?" - - Make sure your client device (i.e., Steam Deck) is on the same wireless network as your PlayStation system and that the PlayStation console is either on or in sleep/rest mode. If this doesn't work, you can always try restarting your client device (i.e., Steam Deck) and connecting to the network again. If it still doesn't work you can try the Manual Registration step in step 5 below. + 4. See success message and close the dialog box + + ![Success Message](images/CloseTokenDialogBox.png) + + !!! Danger "Error Message" - 5. Register your PlayStation console + If you obtain an error with a link to Sony's oauth site, it is likely the code from the link has expired and you need to create a new code by logging in again and pasting the url into chiaki-ng. The code usually expires within a few minutes. Otherwise, the error code should hopefully be self explanatory. + + + 3. Register your PlayStation console === "Register Discovered Console (Recommended)" @@ -86,7 +88,7 @@ 2. Choose your console type - 3. Enter your PSN Account-ID obtained in step 1 above (if not automatically copied). + 3. If you registered for remote connection via PSN your `PSN Account-ID` will be automatically entered. Otherwise, either use PSN via the `PSN Login` button or public lookup using the `Public Lookup` button to obtain your `PSN Account-ID`. 4. Get a registration code for remote play @@ -98,9 +100,11 @@ Go to `Settings -> Remote Play -> Add Device` - 5. Enter the code from your device in the `PIN` field + 5. Enter the code from your device in the `Remote Play PIN` field + + 6. (Optional) If you have a pin for your console, enter it in the `Console Pin` field to have `chiaki-ng` automatically enter your PIN instead of having to enter it manually each time. - 6. Click Register (will become available when all necessary fields are filled) + 7. Click Register (will become available when all necessary fields are filled) === "Manual Registration" @@ -186,46 +190,11 @@ 2. Open `chiaki-ng` - 3. Double click on the box with the console icon colored orange (**State: standby**). - - 4. When prompted with, "The Console is currently in standby mode.Should we send a Wakeup packet instead of trying to connect immediately?": - - - choose **Yes** - - 5. Your PlayStation console should wake up and the box with the console icon should turn from orange to blue (**State: ready**). - - === "Your PlayStation has awoken from slumber! :sun_with_face:" - - !!! success - - Now it's time to test connecting via PlayStation Remote Play in the next step! - - === "Your PlayStation hit the snooze button :zzz:" - - !!! Failure "Here's how to get back on the happy path" - - 1. Make sure your PlayStation shows as registered and is currently in sleep mode. If it's not in sleep mode, you can't wake it up. - - 2. Make sure that you have enabled turning on your PlayStation console from rest mode: - - === "PS5" - - Go to `Settings -> System -> Power Saving -> Features Available in Rest Mode` and turn on: - - 1. `Stay Connected to the Internet` - 2. `Enable Turning on PS5 from Network` - - === "PS4" - - Go to `Settings -> Power Save Settings -> Set Function Available in Rest Mode` and turn on: - - 1. `Stay Connected to the Internet` - - 2. `Enable turning on PS4 from Network` + 3. Your PlayStation console should be discovered display (**State: ready** or **State: standby**). 2. Test PlayStation Remote Play - 1. Double click on the box with the now blue console icon (**State: ready**) + 1. Press/click on your registered console 2. Test launching a game if you want @@ -255,11 +224,11 @@ Here are different settings you can use for Chiaki/`chiaki-ng` depending on your If you are in an area with bad Internet, as long as you have a good wireless router, you can get close to native performance. -1. Open `chiaki-ng` and click the gear icon in the top right to open the settings menu +1. Open `chiaki-ng` and click the gear icon in the top right or the options button on your controller to open the settings menu ![Open Settings](images/OpenSettings.png) -2. Adjust the settings to your preferences. +2. Adjust the settings to your preferences moving between settings by either clicking or using L1/R1. 1. **General Settings** @@ -282,48 +251,48 @@ Here are different settings you can use for Chiaki/`chiaki-ng` depending on your For `Action on Disconnect`, choose `Ask` (the default) to get prompted (use the touchscreen to respond to prompt window) about putting your PlayStation to sleep when you close your session with ++ctrl+q++ (you will add this shortcut as part of you controller configuration in [controller section](controlling.md){target="_blank" rel="noopener"}). If you prefer, you can also use `Enter Sleep Mode` to automatically put your PlayStation console to sleep as soon as you close your session with ++ctrl+q++ - - 2. **Audio/WiFi Settings** - - ![Audio/Wifi Settings](images/AudioSettings.png) - 3. **Video Settings** + 2. **Video Settings** ![Video Settings](images/VideoSettings.png) - 4. **Stream Settings** + 3. **Stream Settings** (choose the **PS5 HDR** tab if you have a PS5 connected to a HDR TV/monitor ([see HDR section below for more details](#hdr-high-dynamic-range)), **PS5** if you have a PS5 not connected to an HDR TV/monitor, and **PS4** if you have a PS4). If you are having issues with your PS5 connection, please try switching to 720P following with its default bitrate of 10,000 with your PS5 since that requires significantly less bandwidth from your wireless router. - === "PS5 HDR" + === "PS5 HDR" - Stream output with [HDR](#hdr-high-dynamic-range). This are the recommended PS5 settings for a device that supports HDR such as the Steam Deck OLED. + Stream output with [HDR](#hdr-high-dynamic-range). This are the recommended PS5 settings for a device that supports HDR such as the Steam Deck OLED. - ![PS5 HDR Settings](images/PS5_SettingsHDR.png) + ![PS5 HDR Settings](images/PS5_SettingsHDR.png) - ???+ Question "Why 1080p if the client device [i.e., Steam Deck] is only 800p?" + ???+ Question "Why 1080p if the client device [i.e., Steam Deck] is only 800p?" - Using 1080p results in a better picture for me than 720p. The biggest factor in this seems to be [chroma-sub sampling](https://www.phonearena.com/news/Did-you-know-4K-vs-1080p-chroma-sub-sampling-and-why-you-should-record-in-4K-even-if-your-TV-does-not-support-it-yet_id61878){target="_blank" rel="noopener"}. In simple terms, the colors for an image are compressed and so you get a much lower resolution of color data than your image resolution. This means a 1080p image (with a high bitrate) will have more color data than a 720p image even if the image resolution itself ends up being 720p (since the color resolution will be higher than the equivalent 720p picture's color resolution). This results in an image that has more pop to it. Thus, I recommend streaming at 1080p if you have the bandwidth (good enough wireless router). - - However, if you are having issues with your wireless connection (i.e choppy audio, flashes in your video, or lag) while playing, then please use 720p instead. The gains you get from 1080p are nice, but aren't worth having a bad connection. + Using 1080p results in a better picture for me than 720p. The biggest factor in this seems to be [chroma-sub sampling](https://www.phonearena.com/news/Did-you-know-4K-vs-1080p-chroma-sub-sampling-and-why-you-should-record-in-4K-even-if-your-TV-does-not-support-it-yet_id61878){target="_blank" rel="noopener"}. In simple terms, the colors for an image are compressed and so you get a much lower resolution of color data than your image resolution. This means a 1080p image (with a high bitrate) will have more color data than a 720p image even if the image resolution itself ends up being 720p (since the color resolution will be higher than the equivalent 720p picture's color resolution). This results in an image that has more pop to it. Thus, I recommend streaming at 1080p if you have the bandwidth (good enough wireless router). + + However, if you are having issues with your wireless connection (i.e choppy audio, flashes in your video, or lag) while playing, then please use 720p instead. The gains you get from 1080p are nice, but aren't worth having a bad connection. - === "PS5" + === "PS5" - These are the recommended PS5 settings for a device that doesn't support HDR like the ROG Ally. + These are the recommended PS5 settings for a device that doesn't support HDR like the ROG Ally. - ![1080p Settings](images/PS5_SettingsSDR.png) + ![1080p Settings](images/PS5_SettingsSDR.png) - ???+ Question "Why 1080p if the client device [i.e., Steam Deck] is only 800p?" + ???+ Question "Why 1080p if the client device [i.e., Steam Deck] is only 800p?" - Using 1080p results in a better picture for me than 720p. The biggest factor in this seems to be [chroma-sub sampling](https://www.phonearena.com/news/Did-you-know-4K-vs-1080p-chroma-sub-sampling-and-why-you-should-record-in-4K-even-if-your-TV-does-not-support-it-yet_id61878){target="_blank" rel="noopener"}. In simple terms, the colors for an image are compressed and so you get a much lower resolution of color data than your image resolution. This means a 1080p image (with a high bitrate) will have more color data than a 720p image even if the image resolution itself ends up being 720p (since the color resolution will be higher than the equivalent 720p picture's color resolution). This results in an image that has more pop to it. Thus, I recommend streaming at 1080p if you have the bandwidth (good enough wireless router). - - However, if you are having issues with your wireless connection (i.e choppy audio, flashes in your video, or lag) while playing, then please use 720p instead. The gains you get from 1080p are nice, but aren't worth having a bad connection. + Using 1080p results in a better picture for me than 720p. The biggest factor in this seems to be [chroma-sub sampling](https://www.phonearena.com/news/Did-you-know-4K-vs-1080p-chroma-sub-sampling-and-why-you-should-record-in-4K-even-if-your-TV-does-not-support-it-yet_id61878){target="_blank" rel="noopener"}. In simple terms, the colors for an image are compressed and so you get a much lower resolution of color data than your image resolution. This means a 1080p image (with a high bitrate) will have more color data than a 720p image even if the image resolution itself ends up being 720p (since the color resolution will be higher than the equivalent 720p picture's color resolution). This results in an image that has more pop to it. Thus, I recommend streaming at 1080p if you have the bandwidth (good enough wireless router). + + However, if you are having issues with your wireless connection (i.e choppy audio, flashes in your video, or lag) while playing, then please use 720p instead. The gains you get from 1080p are nice, but aren't worth having a bad connection. + + === "PS4" - === "PS4" + This is the recommended setting for a PS4. If you have a PS4 pro you can use 1080P instead. - This is the recommended setting for a PS4. If you have a PS4 pro you can use 1080P instead. + ![PS4 Settings](images/PS4_Settings.png) - ![PS4 Settings](images/PS4_Settings.png) + 4. **Audio/WiFi Settings** + + ![Audio/Wifi Settings](images/AudioSettings.png) ### HDR (High Dynamic Range) @@ -359,7 +328,9 @@ If you have one console you want to connect to remotely or locally you can use t ### Profiles -You can switch between profiles in chiaki-ng so if, for example you have 2 users that both use the same device you can create a profile for each user. You can see your current profile listed at Settings (Gear icon)->Config->Current profile. You can create, switch, and delete profiles via Settings (Gear icon)->Config->Manage Profiles. +You can switch between profiles in chiaki-ng. If, for example, you have 2 users that both use the same device, you can create a profile for each user. You can see your current profile at the top of the chiaki-ng window and listed at Settings (Gear icon)->Config->Current profile. You can create, switch, and delete profiles via Settings (Gear icon)->Config->Manage Profiles. + +![Profiles](images/ProfilesPic.png) #### Creating a profile diff --git a/docs/setup/controlling.md b/docs/setup/controlling.md index 2dd7ff527..5d7aab2a4 100644 --- a/docs/setup/controlling.md +++ b/docs/setup/controlling.md @@ -319,3 +319,75 @@ In order to enable DualSense haptics on MacOS please do the following: ![Select Quadrophonic audio](images/configure_quadrophonic.png) 7. Play your favorite PS5 game with haptic feedback on Mac via `chiaki-ng`! + +## Using a non-PlayStation controller with chiaki-ng + +### Controller Mapping + +#### Change Controller Mapping + +You can re-map all necessary PlayStation buttons to your controller using the controller mapper built-in to `chiaki-ng` + +1. Go to Settings->Controllers and select `Change Controller Mapping` + + ![Change Controller Mapping](images/ChangeControllerMapping.png) + +2. Click on any button on the controller you want to change the mapping for + +3. Change the buttons as you see fit on the controller mapping page (i.e., change touchpad to Share button on the Xbox Series X Controller) + + ![Controller Mapping Changes](images/ControllerMappingMenu.png) + +4. Update Controller Mapping using the `Options` button on the controller + +#### Reset Controller Mapping + +You can reset a controller mapping for a controller back to default at any time + +1. Go to Settings->Controllers and select `Reset Controller Mapping` + +2. Click on any button on the controller you want to reset the mapping for + +### Dpad Touch Emulation + +Non-PlayStation controllers such as Xbox and Nintendo controllers don't have a touchpad. To use touchpad functionality in games, chiaki-ng provides dpad touch emulation. It is enabled by default in Settings->Controllers and can be disabled at any time. The `Dpad Touch Increment` controls how far away the next touch on the dpad will be when holding down a direction on the dpad. Changing this will make you "move across the touchpad" (in the currently pressed dpad direction) farther or nearer to your current position + +![Dpad Touch Emulation](images/DpadTouchEmulation.png) + +!!! Question "How does Dpad Touch Emulation work" + + Pushing one of the dpad buttons will register a touch in the quadrant of that button: + + - Dpad Left: All the way to the left and halfway up the touchpad + + - Dpad Right: All the way to the right and halfway up the touchpad + + - Dpad Up: In the middle of the touchpad horizontally and at the top of the touchpad + + - Dpad Down: In the middle of the touchpad horizontally and at the bottom of the touchpad + + How to perform some common touchpad functions with the dpad: + + - For a touchpad left click: + + You want to press the touchpad click button you have mapped for your controller (such as the Share key) and dpad left + + - For a touchpad right click: + + You want to press the touchpad click button you have mapped for your controller (such as the Share key) and dpad right + + - For a swipe from left to right: + + First touch dpad left and then hold dpad right for a second or so. This will start you at the left side of the touchpad and move you across the touchpad in the right direction. + + - For a swipe from right to left: + + First touch dpad right and then hold dpad left for a second or so. This will start you at the right side of the touchpad and move you across the touchpad in the left direction. + + - For a swipe from up to down: + + First touch dpad up and then hold dpad down for a second or so. This will start you at the top of the touchpad and move you across the touchpad in the down direction. + + - For a swipe from down to up: + + First touch dpad down and then hold dpad up for a second or so. This will start you at the bottom of the touchpad and move you across the touchpad in the up direction. \ No newline at end of file diff --git a/docs/setup/images/AddPS5Regular.png b/docs/setup/images/AddPS5Regular.png index 43516e675..1aa38d0a7 100644 Binary files a/docs/setup/images/AddPS5Regular.png and b/docs/setup/images/AddPS5Regular.png differ diff --git a/docs/setup/images/AudioSettings.png b/docs/setup/images/AudioSettings.png index cca1d89a7..56a8c8746 100644 Binary files a/docs/setup/images/AudioSettings.png and b/docs/setup/images/AudioSettings.png differ diff --git a/docs/setup/images/ChangeControllerMapping.png b/docs/setup/images/ChangeControllerMapping.png new file mode 100644 index 000000000..0daf5b175 Binary files /dev/null and b/docs/setup/images/ChangeControllerMapping.png differ diff --git a/docs/setup/images/ClickLoginToPsn.png b/docs/setup/images/ClickLoginToPsn.png index 94fffc019..6b1957687 100644 Binary files a/docs/setup/images/ClickLoginToPsn.png and b/docs/setup/images/ClickLoginToPsn.png differ diff --git a/docs/setup/images/ControllerMappingMenu.png b/docs/setup/images/ControllerMappingMenu.png new file mode 100644 index 000000000..02a6907c8 Binary files /dev/null and b/docs/setup/images/ControllerMappingMenu.png differ diff --git a/docs/setup/images/DpadTouchEmulation.png b/docs/setup/images/DpadTouchEmulation.png new file mode 100644 index 000000000..118d792d0 Binary files /dev/null and b/docs/setup/images/DpadTouchEmulation.png differ diff --git a/docs/setup/images/InstallChiaking.png b/docs/setup/images/InstallChiaking.png new file mode 100644 index 000000000..dc47d9f04 Binary files /dev/null and b/docs/setup/images/InstallChiaking.png differ diff --git a/docs/setup/images/MainSettings.png b/docs/setup/images/MainSettings.png index b1209954a..3374844ea 100644 Binary files a/docs/setup/images/MainSettings.png and b/docs/setup/images/MainSettings.png differ diff --git a/docs/setup/images/PS5Connected.png b/docs/setup/images/PS5Connected.png index e38dfeeaf..d2ef4368a 100644 Binary files a/docs/setup/images/PS5Connected.png and b/docs/setup/images/PS5Connected.png differ diff --git a/docs/setup/images/ProfilesPic.png b/docs/setup/images/ProfilesPic.png new file mode 100644 index 000000000..9e269b0fb Binary files /dev/null and b/docs/setup/images/ProfilesPic.png differ diff --git a/docs/setup/images/RegisteredConsole.png b/docs/setup/images/RegisteredConsole.png index 87f1e1bc8..ccaa0bc14 100644 Binary files a/docs/setup/images/RegisteredConsole.png and b/docs/setup/images/RegisteredConsole.png differ diff --git a/docs/setup/images/RemotePlayPSNPopup.png b/docs/setup/images/RemotePlayPSNPopup.png new file mode 100644 index 000000000..27654dc3f Binary files /dev/null and b/docs/setup/images/RemotePlayPSNPopup.png differ diff --git a/docs/setup/images/SteamShortcutMenu.png b/docs/setup/images/SteamShortcutMenu.png index bdde13a40..643ebc2d0 100644 Binary files a/docs/setup/images/SteamShortcutMenu.png and b/docs/setup/images/SteamShortcutMenu.png differ diff --git a/docs/setup/images/UnregisteredPS5.png b/docs/setup/images/UnregisteredPS5.png index 4753cf9c9..5df12a62a 100644 Binary files a/docs/setup/images/UnregisteredPS5.png and b/docs/setup/images/UnregisteredPS5.png differ diff --git a/docs/setup/images/VideoSettings.png b/docs/setup/images/VideoSettings.png index 7731b4e98..d9c888167 100644 Binary files a/docs/setup/images/VideoSettings.png and b/docs/setup/images/VideoSettings.png differ diff --git a/docs/setup/installation.md b/docs/setup/installation.md index c1d4d0abd..a77fac013 100644 --- a/docs/setup/installation.md +++ b/docs/setup/installation.md @@ -1,33 +1,45 @@ # Installing `chiaki-ng` -!!! Tip "Copying from and Pasting into Konsole Windows" +=== "Linux Flatpak" - You can copy from and paste into `konsole` windows with ++ctrl+shift+c++ (copy) and ++ctrl+shift+v++ (paste) instead of the normal ++ctrl+c++ (copy) and ++ctrl+v++ (paste) shortcuts. In fact, ++ctrl+c++ is a shortcut to terminate the current process in the `konsole`. Additionally, you can still right-click and select copy or paste as per normal. + !!! Tip "Copying from and Pasting into Konsole Windows" -=== "Using the Discover Store (Recommended)" + You can copy from and paste into `konsole` windows with ++ctrl+shift+c++ (copy) and ++ctrl+shift+v++ (paste) instead of the normal ++ctrl+c++ (copy) and ++ctrl+v++ (paste) shortcuts. In fact, ++ctrl+c++ is a shortcut to terminate the current process in the `konsole`. Additionally, you can still right-click and select copy or paste as per normal. - 1. Open the Discover store + === "Using the Discover Store (Recommended)" - ![Open Discover](images/OpenDiscover.png) + 1. Open the Discover store - 2. Search for `chiaki-ng` in the search bar + ![Open Discover](images/OpenDiscover.png) - ![Install chiaki-ng](images/InstallChiaki4deck.png) + 2. Search for `chiaki-ng` in the search bar - 3. Click Install + ![Install chiaki-ng](images/InstallChiaking.png) -=== "Using the `konsole` (If for some reason it doesn't show up on the Discover store)" + 3. Click Install - 1. Run the following command in the `konsole` + === "Using the `konsole` (If for some reason it doesn't show up on the Discover store)" - ``` - flatpak install -y io.github.streetpea.Chiaki4deck - ``` + 1. Run the following command in the `konsole` + + ``` + flatpak install -y io.github.streetpea.Chiaki4deck + ``` + + !!! Note "About `chiaki-ng`" -!!! Note "About `chiaki-ng`" + The above instructions are for the official `chiaki-ng` flatpak on Flathub. + + However, you can also build the flatpak yourself (recommended for users who want to add their own source code changes on top of the ones I've made) by following the instructions in [Building the flatpak yourself](../diy/buildit.md){target="_blank" rel="noopener"}. - This is a flatpak I created for `chiaki-ng` from [updated](../updates/done.md){target="_blank" rel="noopener"} Chiaki source code is available on Flathub. This is the recommended install as it is the most straightforward. - - However, you can also build the flatpak yourself (recommended for users who want to add their own source code changes on top of the ones I've made) by following the instructions in [Building the flatpak yourself](../diy/buildit.md){target="_blank" rel="noopener"}. +=== "MacOS via Brew" + + 1. Install with the following command in the terminal + + ``` + brew install --cask streetpea/streetpea/chiaki-ng + ``` +=== "MacOS/Windows/Linux Appimage Package" + 1. Download the appopriate package from the [releases page](https://github.com/streetpea/chiaki-ng/releases){target="_blank" rel="noopener"} on GitHub (for Mac there are separate packages for the Intel (`-amd64`) and Apple (`-arm64`) based Macs) \ No newline at end of file diff --git a/docs/setup/remoteconnection.md b/docs/setup/remoteconnection.md index 2b6cdc287..f963d97fd 100644 --- a/docs/setup/remoteconnection.md +++ b/docs/setup/remoteconnection.md @@ -31,11 +31,11 @@ The remote connection via PSN uses PSN servers as an initial go-between to excha ![Go to Settings](images/GoToSettings.png) -2. Go to the PSN tab and then click `Login to PSN` +2. Go to the `Config` tab and then click `Login to PSN` ![PSN credentials](images/ClickLoginToPsn.png) -3. Login to psn on the provided page +3. Login to psn on the provided page if one appears. Otherwise, paste your clipboard contents in a web browser and bang enter to bring up the login to psn page. ???- Tip "Tips for those having trouble logging into to PSN" @@ -98,7 +98,7 @@ Forward the ports for your console on your router following [this port forwardin | Port | Connection Type | | ---- | --------------- | - | 9295 | TCP | + | 9295 | UDP/TCP | | 9296 | UDP | | 9297 | UDP | | 9302 | UDP | @@ -108,7 +108,7 @@ Forward the ports for your console on your router following [this port forwardin | Port | Connection Type | | ---- | --------------- | | 987 | UDP | - | 9295 | TCP | + | 9295 | UDP/TCP | | 9296 | UDP | | 9297 | UDP | diff --git a/docs/updates/releases.md b/docs/updates/releases.md index 3b8156c79..e799b4a94 100644 --- a/docs/updates/releases.md +++ b/docs/updates/releases.md @@ -41,26 +41,64 @@ To migrate to the flathub repo do the following: In order to update your already installed `chiaki-ng` to the newest version, either: -- Check for updates in `Discover` and update there +=== "Linux Flatpak" - **OR** + - Check for updates in `Discover` and update there -- Update via the `konsole` with: + **OR** - === "chiaki-ng Installed Via Discover Store" + - Update via the `konsole` with: - ``` bash - flatpak update -y io.github.streetpea.Chiaki4deck - ``` + === "chiaki-ng Installed Via Discover Store" + + ``` bash + flatpak update -y io.github.streetpea.Chiaki4deck + ``` + + === "chiaki-ng Legacy Install Via Konsole" + + ``` bash + flatpak update --user -y re.chiaki.Chiaki4deck + ``` - === "chiaki-ng Legacy Install Via Konsole" +=== "MacOS Brew" + + - Update via the terminal with: ``` bash - flatpak update --user -y re.chiaki.Chiaki4deck + brew install --cask streetpea/streetpea/chiaki-ng ``` +=== "Windows/MacOS/Linux Appimage" + + Download the appopriate package from the [releases page](https://github.com/streetpea/chiaki-ng/releases){target="_blank" rel="noopener"} on GitHub (for Mac there are separate packages for the Intel (`-amd64`) and Apple (`-arm64`) based Macs) + ## Releases (Newest First) +### 1.9.1 + +Small patch update: + +- Adds dpad touch emulation to use the dpad for touchscreen touches and swipes [see dpad touch emulation](../setup/controlling.md#dpad-touch-emulation){target="_blank" rel="noopener"} +- Add --exit-app-on-stream-exit option to exit `chiaki-ng` immediately after closing a streaming session +- Fix registration issues related to broadcast settings by automatically detecting when broadcast should be used +- Reset motion controls when necessary to prevent jumping to position when using motion controls to aim in games that activate motion controls via a trigger press such as Resident Evil 4 Remake +- Fix bug where upnp discovery could take too long, causing the remote connection via PSN to fail +- Notify users of the possibility of remote connection via PSN as many users aren't aware of this option still +- Add mapping for Share button on Xbox Series and Xbox One Controllers +- Display current profile name with colon after application name as Application Display Name +- Update controller mappings to be portable across all platforms (Linux, Mac/OS, and Windows) +- Add controller name for controller mapping for controllers that don't have a name configured in the mapping itself +- Allow entering controller mapping and reset mapping using the back button +- Make log dialogs, registered consoles, and hidden consoles scrollable with a controller +- Increase STUN timeouts to 5 seconds + add timeouts for curl of 10 seconds +- Make key mapping dialog navigable with controller +- Disable zero-copy for hw cards that don't support it +- Increase wait time for DualSense haptics of DualSense edge to come online to 15 seconds +- Add homebrew cask for `chiaki-ng` for MacOS +- Fix an error causing a crash when random stun allocation was used for remote connection via PSN +- Fix a memory leak in remote connection via PSN + ### 1.9.0 Brings ability to set controller mappings for chiaki-ng diff --git a/gui/io.github.streetpea.Chiaki4deck.appdata.xml b/gui/io.github.streetpea.Chiaki4deck.appdata.xml index 96b916e73..f3bb688ad 100644 --- a/gui/io.github.streetpea.Chiaki4deck.appdata.xml +++ b/gui/io.github.streetpea.Chiaki4deck.appdata.xml @@ -13,7 +13,7 @@ https://github.com/streetpea/chiaki-ng/issues

- chiaki-ng is a fork of Chiaki, adding new features and ongoing support as the original project (Chiaki) is in maintenance mode. It is a free and Open Source Client for PlayStation 4 and PlayStation 5 Remote Play. It can be used to play in real time on a PlayStation as long as there is a network connection. + chiaki-ng is the next-generation of Chiaki, adding new features and ongoing support as the original project (Chiaki) is in maintenance mode. It is a free and Open Source Client for PlayStation 4 and PlayStation 5 Remote Play. It can be used to play in real time on a PlayStation as long as there is a network connection.

@@ -24,12 +24,56 @@ streetpea@proton.me + + Adds dpad touch emulation to use the dpad for touchscreen touches and swipes see dpad touch emulation + Add --exit-app-on-stream-exit option to exit chiaki-ng immediately after closing a streaming session + Fix registration issues related to broadcast settings by automatically detecting when broadcast should be used + Reset motion controls when necessary to prevent jumping to position when using motion controls to aim in games that activate motion controls via a trigger press such as Resident Evil 4 Remake + Fix bug where upnp discovery could take too long, causing the remote connection via PSN to fail + Notify users of the possibility of remote connection via PSN as many users aren't aware of this option still + Add mapping for Share button on Xbox Series and Xbox One Controllers + Display current profile name with colon after application name as Application Display Name + Update controller mappings to be portable across all platforms (Linux, Mac/OS, and Windows) + Adds controller name for controller mapping for controllers that don't have a name configured in the mapping itself + Allow entering controller mapping and reset mapping using the back button + Make log dialogs, registered consoles, and hidden consoles scrollable with a controller + Increase STUN timeouts to 5 seconds + add timeouts for curl of 10 seconds + Make key mapping dialog navigable with controller + Disable zero-copy for hw cards that don't support it + Increase wait time for DualSense haptics of DualSense edge to come online to 15 seconds + Add homebrew cask for chiaki-ng for MacOS + Fix an error causing a crash when random stun allocation was used for remote connection via PSN + Fix a memory leak in remote connection via PSN + + +

This release provides the following improvements:

+
    +
  • Adds dpad touch emulation to use the dpad for touchscreen touches and swipes see dpad touch emulation
  • +
  • Adds --exit-app-on-stream-exit option to exit chiaki-ng immediately after closing a streaming session
  • +
  • Fix registration issues related to broadcast settings by automatically detecting when broadcast should be used
  • +
  • Reset motion controls when necessary to prevent jumping to position when using motion controls to aim in games that activate motion controls via a trigger press such as Resident Evil 4 Remake
  • +
  • Fix bug where upnp discovery could take too long, causing the remote connection via PSN to fail
  • +
  • Notify users of the possibility of remote connection via PSN as many users aren't aware of this option still
  • +
  • Add mapping for Share button on Xbox Series and Xbox One Controllers
  • +
  • Display current profile name with colon after application name as Application Display Name
  • +
  • Update controller mappings to be portable across all platforms (Linux, Mac/OS, and Windows)
  • +
  • Adds controller name for controller mapping for controllers that don't have a name configured in the mapping itself
  • +
  • Allow entering controller mapping and reset mapping using the back button
  • +
  • Make log dialogs, registered consoles, and hidden consoles scrollable with a controller
  • +
  • Make key mapping dialog navigable with controller
  • +
  • Increase STUN timeouts to 5 seconds + add timeouts for curl of 10 seconds
  • +
  • Disable zero-copy for hw cards that don't support it
  • +
  • Increase wait time for DualSense haptics of DualSense edge to come online to 15 seconds
  • +
  • Fix an error causing a crash when random stun allocation was used for remote connection via PSN
  • +
  • Fix a memory leak in remote connection via PSN
  • +
+
+

This release provides the following improvements:

    -
  • adds Controllers section to chiaki-ng settings which allows you to configure the mapping for your controller (especially nice for mapping Xbox and Switch controllers to PlayStation inputs) -
  • +
  • adds Controllers section to chiaki-ng settings which allows you to configure the mapping for your controller (especially nice for mapping Xbox and Switch controllers to PlayStation inputs)
  • adds Custom renderer option which allows you to configure your renderer options very granularly with the options at https://libplacebo.org/options/
  • add defaults to all settings so users are aware of the defaults/which settings they've changed
  • add different haptic rumble intensity settings for users to configure if the default is not to their liking
  • diff --git a/gui/src/qml/PSNTokenDialog.qml b/gui/src/qml/PSNTokenDialog.qml index be9dc60a1..4d94ef880 100644 --- a/gui/src/qml/PSNTokenDialog.qml +++ b/gui/src/qml/PSNTokenDialog.qml @@ -119,47 +119,55 @@ DialogView { } } - Dialog { - id: logDialog - parent: Overlay.overlay - x: Math.round((root.width - width) / 2) - y: Math.round((root.height - height) / 2) - title: qsTr("Create PSN Automatic Remote Connection Token") - modal: true - KeyNavigation.up: { - if(logScrollbar.position > 0.001) - logFlick.flick(0, 500); - } - KeyNavigation.down: { - if(logScrollbar.position < 1.0 - logScrollbar.size - 0.001) - logFlick.flick(0, -500); + Item { + Keys.onPressed: (event) => { + switch (event.key) { + case Qt.Key_Up: + if(logScrollbar.position > 0.001) + logFlick.flick(0, 500); + event.accepted = true; + break; + case Qt.Key_Down: + if(logScrollbar.position < 1.0 - logScrollbar.size - 0.001) + logFlick.flick(0, -500); + event.accepted = true; + break; + } } - closePolicy: Popup.NoAutoClose - standardButtons: Dialog.Cancel - Material.roundedScale: Material.MediumScale - onOpened: logArea.forceActiveFocus() - onClosed: root.showMainView() + Dialog { + id: logDialog + parent: Overlay.overlay + x: Math.round((root.width - width) / 2) + y: Math.round((root.height - height) / 2) + title: qsTr("Create PSN Automatic Remote Connection Token") + modal: true + closePolicy: Popup.NoAutoClose + standardButtons: Dialog.Cancel + Material.roundedScale: Material.MediumScale + onOpened: logArea.forceActiveFocus() + onClosed: root.showMainView() - Flickable { - id: logFlick - implicitWidth: 600 - implicitHeight: 400 - clip: true - contentWidth: logArea.contentWidth - contentHeight: logArea.contentHeight - flickableDirection: Flickable.AutoFlickIfNeeded - ScrollBar.vertical: ScrollBar { - id: logScrollbar - policy: ScrollBar.AlwaysOn - visible: logFlick.contentHeight > logFlick.implicitHeight - } + Flickable { + id: logFlick + implicitWidth: 600 + implicitHeight: 400 + clip: true + contentWidth: logArea.contentWidth + contentHeight: logArea.contentHeight + flickableDirection: Flickable.AutoFlickIfNeeded + ScrollBar.vertical: ScrollBar { + id: logScrollbar + policy: ScrollBar.AlwaysOn + visible: logFlick.contentHeight > logFlick.implicitHeight + } - Label { - id: logArea - width: logFlick.width - wrapMode: TextEdit.Wrap - Keys.onReturnPressed: if (logDialog.standardButtons == Dialog.Close) logDialog.close() - Keys.onEscapePressed: logDialog.close() + Label { + id: logArea + width: logFlick.width + wrapMode: TextEdit.Wrap + Keys.onReturnPressed: if (logDialog.standardButtons == Dialog.Close) logDialog.close() + Keys.onEscapePressed: logDialog.close() + } } } } diff --git a/gui/src/qml/RegistDialog.qml b/gui/src/qml/RegistDialog.qml index 9c1e97ecd..c6ec81719 100644 --- a/gui/src/qml/RegistDialog.qml +++ b/gui/src/qml/RegistDialog.qml @@ -198,47 +198,55 @@ DialogView { buttons: [ps4_7, ps4_75, ps4_8, ps5_0] } - Dialog { - id: logDialog - parent: Overlay.overlay - x: Math.round((root.width - width) / 2) - y: Math.round((root.height - height) / 2) - title: qsTr("Register Console") - modal: true - closePolicy: Popup.NoAutoClose - standardButtons: Dialog.Cancel - Material.roundedScale: Material.MediumScale - onOpened: logArea.forceActiveFocus() - onClosed: stack.pop(); - KeyNavigation.up: { - if(logScrollbar.position > 0.001) - logFlick.flick(0, 500); - } - KeyNavigation.down: { - if(logScrollbar.position < 1.0 - logScrollbar.size - 0.001) - logFlick.flick(0, -500); + Item { + Keys.onPressed: (event) => { + switch (event.key) { + case Qt.Key_Up: + if(logScrollbar.position > 0.001) + logFlick.flick(0, 500); + event.accepted = true; + break; + case Qt.Key_Down: + if(logScrollbar.position < 1.0 - logScrollbar.size - 0.001) + logFlick.flick(0, -500); + event.accepted = true; + break; + } } + Dialog { + id: logDialog + parent: Overlay.overlay + x: Math.round((root.width - width) / 2) + y: Math.round((root.height - height) / 2) + title: qsTr("Register Console") + modal: true + closePolicy: Popup.NoAutoClose + standardButtons: Dialog.Cancel + Material.roundedScale: Material.MediumScale + onOpened: logArea.forceActiveFocus() + onClosed: stack.pop(); - Flickable { - id: logFlick - implicitWidth: 600 - implicitHeight: 400 - clip: true - contentWidth: logArea.contentWidth - contentHeight: logArea.contentHeight - flickableDirection: Flickable.AutoFlickIfNeeded - ScrollBar.vertical: ScrollBar { - id: logScrollbar - policy: ScrollBar.AlwaysOn - visible: logFlick.contentHeight > logFlick.implicitHeight - } + Flickable { + id: logFlick + implicitWidth: 600 + implicitHeight: 400 + clip: true + contentWidth: logArea.contentWidth + contentHeight: logArea.contentHeight + flickableDirection: Flickable.AutoFlickIfNeeded + ScrollBar.vertical: ScrollBar { + id: logScrollbar + policy: ScrollBar.AlwaysOn + visible: logFlick.contentHeight > logFlick.implicitHeight + } - Label { - id: logArea - width: logFlick.width - wrapMode: TextEdit.Wrap - Keys.onReturnPressed: if (logDialog.standardButtons == Dialog.Close) logDialog.close() - Keys.onEscapePressed: logDialog.close() + Label { + id: logArea + width: logFlick.width + wrapMode: TextEdit.Wrap + Keys.onReturnPressed: if (logDialog.standardButtons == Dialog.Close) logDialog.close() + Keys.onEscapePressed: logDialog.close() + } } } } diff --git a/gui/src/qml/SteamShortcutDialog.qml b/gui/src/qml/SteamShortcutDialog.qml index 6b6740d5f..ea60f348c 100644 --- a/gui/src/qml/SteamShortcutDialog.qml +++ b/gui/src/qml/SteamShortcutDialog.qml @@ -62,47 +62,55 @@ DialogView { } } - Dialog { - id: logDialog - parent: Overlay.overlay - x: Math.round((root.width - width) / 2) - y: Math.round((root.height - height) / 2) - title: qsTr("Create non-Steam game") - modal: true - closePolicy: Popup.NoAutoClose - standardButtons: Dialog.Cancel - Material.roundedScale: Material.MediumScale - onOpened: logArea.forceActiveFocus() - onClosed: restartDialog.open() - KeyNavigation.up: { - if(logScrollbar.position > 0.001) - logFlick.flick(0, 500); - } - KeyNavigation.down: { - if(logScrollbar.position < 1.0 - logScrollbar.size - 0.001) - logFlick.flick(0, -500); + Item { + Keys.onPressed: (event) => { + switch (event.key) { + case Qt.Key_Up: + if(logScrollbar.position > 0.001) + logFlick.flick(0, 500); + event.accepted = true; + break; + case Qt.Key_Down: + if(logScrollbar.position < 1.0 - logScrollbar.size - 0.001) + logFlick.flick(0, -500); + event.accepted = true; + break; + } } + Dialog { + id: logDialog + parent: Overlay.overlay + x: Math.round((root.width - width) / 2) + y: Math.round((root.height - height) / 2) + title: qsTr("Create non-Steam game") + modal: true + closePolicy: Popup.NoAutoClose + standardButtons: Dialog.Cancel + Material.roundedScale: Material.MediumScale + onOpened: logArea.forceActiveFocus() + onClosed: restartDialog.open() - Flickable { - id: logFlick - implicitWidth: 600 - implicitHeight: 400 - clip: true - contentWidth: logArea.contentWidth - contentHeight: logArea.contentHeight - flickableDirection: Flickable.AutoFlickIfNeeded - ScrollBar.vertical: ScrollBar { - id: logScrollbar - policy: ScrollBar.AlwaysOn - visible: logFlick.contentHeight > logFlick.implicitHeight - } + Flickable { + id: logFlick + implicitWidth: 600 + implicitHeight: 400 + clip: true + contentWidth: logArea.contentWidth + contentHeight: logArea.contentHeight + flickableDirection: Flickable.AutoFlickIfNeeded + ScrollBar.vertical: ScrollBar { + id: logScrollbar + policy: ScrollBar.AlwaysOn + visible: logFlick.contentHeight > logFlick.implicitHeight + } - Label { - id: logArea - width: logFlick.width - wrapMode: TextEdit.Wrap - Keys.onReturnPressed: if (logDialog.standardButtons == Dialog.Close) logDialog.close() - Keys.onEscapePressed: logDialog.close() + Label { + id: logArea + width: logFlick.width + wrapMode: TextEdit.Wrap + Keys.onReturnPressed: if (logDialog.standardButtons == Dialog.Close) logDialog.close() + Keys.onEscapePressed: logDialog.close() + } } } } diff --git a/scripts/build-ffmpeg.sh b/scripts/build-ffmpeg.sh index 7f1287ba2..25af8bda9 100755 --- a/scripts/build-ffmpeg.sh +++ b/scripts/build-ffmpeg.sh @@ -9,8 +9,6 @@ ROOT="`pwd`" TAG=n7.1 git clone https://git.ffmpeg.org/ffmpeg.git --depth 1 -b $TAG && cd ffmpeg || exit 1 -# git apply ${SCRIPT_DIR}/flatpak/0001-lavc-vaapi_hevc-Fixup-invalid-references.patch || exit 1 -git apply ${SCRIPT_DIR}/flatpak/0001-lavc-vaapi_h264-Fixup-invalid-references.patch || exit 1 git apply ${SCRIPT_DIR}/flatpak/0001-vulkan-ignore-frames-without-hw-context.patch || exit 1 ./configure --disable-all --enable-static --enable-avformat --enable-vulkan --enable-libdrm --enable-avcodec --enable-decoder=h264 --enable-decoder=hevc --enable-hwaccel=h264_vaapi --enable-hwaccel=hevc_vaapi --enable-hwaccel=h264_vulkan --enable-hwaccel=hevc_vulkan --prefix=/usr "$@" || exit 1 make -j4 || exit 1 diff --git a/scripts/flatpak/0001-lavc-vaapi_h264-Fixup-invalid-references.patch b/scripts/flatpak/0001-lavc-vaapi_h264-Fixup-invalid-references.patch deleted file mode 100644 index 83acc13c3..000000000 --- a/scripts/flatpak/0001-lavc-vaapi_h264-Fixup-invalid-references.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 9d4b9b0b963f5375317636f4f527a203e21e89b9 Mon Sep 17 00:00:00 2001 -From: David Rosca -Date: Mon, 8 Jan 2024 12:44:20 +0100 -Subject: [PATCH] lavc/vaapi_h264: Fixup invalid references - ---- - libavcodec/vaapi_h264.c | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) - -diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c -index 55cf5a05ee..c935c88bad 100644 ---- a/libavcodec/vaapi_h264.c -+++ b/libavcodec/vaapi_h264.c -@@ -128,6 +128,8 @@ static int fill_vaapi_ReferenceFrames(VAPictureParameterBufferH264 *pic_param, - DPB dpb; - int i; - -+ const H264Picture *pic_good = NULL; -+ - dpb.size = 0; - dpb.max_size = FF_ARRAY_ELEMS(pic_param->ReferenceFrames); - dpb.va_pics = pic_param->ReferenceFrames; -@@ -136,7 +138,23 @@ static int fill_vaapi_ReferenceFrames(VAPictureParameterBufferH264 *pic_param, - - for (i = 0; i < h->short_ref_count; i++) { - const H264Picture *pic = h->short_ref[i]; -- if (pic && pic->reference && dpb_add(&dpb, pic) < 0) -+ if (!pic || !pic->reference) -+ continue; -+ if (pic->recovered) { -+ pic_good = pic; -+ } else { -+ if (pic_good) { -+ pic = pic_good; -+ } else { -+ for (int i = 0; i < h->short_ref_count; i++) { -+ if (h->short_ref[i] && h->short_ref[i]->reference && h->short_ref[i]->recovered) { -+ pic = h->short_ref[i]; -+ break; -+ } -+ } -+ } -+ } -+ if (dpb_add(&dpb, pic) < 0) - return -1; - } - --- -2.43.0 - diff --git a/scripts/flatpak/0001-lavc-vaapi_hevc-Fixup-invalid-references.patch b/scripts/flatpak/0001-lavc-vaapi_hevc-Fixup-invalid-references.patch deleted file mode 100644 index 4821f7ac7..000000000 --- a/scripts/flatpak/0001-lavc-vaapi_hevc-Fixup-invalid-references.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 1b516ca017fa45888d4962ebf97a78987e696209 Mon Sep 17 00:00:00 2001 -From: David Rosca -Date: Sun, 10 Dec 2023 10:00:28 +0100 -Subject: [PATCH] lavc/vaapi_hevc: Fixup invalid references - ---- - libavcodec/vaapi_hevc.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c -index 3bdd2dd1b8..d08fb50e37 100644 ---- a/libavcodec/vaapi_hevc.c -+++ b/libavcodec/vaapi_hevc.c -@@ -100,6 +100,8 @@ static void fill_vaapi_reference_frames(const HEVCContext *h, VAPictureParameter - const HEVCFrame *current_picture = h->ref; - int i, j, rps_type; - -+ const HEVCFrame *frame_good = NULL; -+ - for (i = 0, j = 0; i < FF_ARRAY_ELEMS(pp->ReferenceFrames); i++) { - const HEVCFrame *frame = NULL; - -@@ -113,6 +115,22 @@ static void fill_vaapi_reference_frames(const HEVCContext *h, VAPictureParameter - init_vaapi_pic(&pp->ReferenceFrames[i]); - - if (frame) { -+ if (frame->sequence != HEVC_SEQUENCE_COUNTER_INVALID) { -+ frame_good = frame; -+ } else { -+ if (frame_good) { -+ frame = frame_good; -+ } else { -+ for (int k = 0; k < FF_ARRAY_ELEMS(h->DPB); k++) { -+ if ((&h->DPB[k] != current_picture || h->ps.pps->pps_curr_pic_ref_enabled_flag) && -+ (h->DPB[k].flags & (HEVC_FRAME_FLAG_LONG_REF | HEVC_FRAME_FLAG_SHORT_REF)) && -+ h->DPB[k].sequence != HEVC_SEQUENCE_COUNTER_INVALID) { -+ frame = &h->DPB[k]; -+ break; -+ } -+ } -+ } -+ } - rps_type = find_frame_rps_type(h, frame); - fill_vaapi_pic(&pp->ReferenceFrames[i], frame, rps_type); - } --- -2.43.0 - diff --git a/scripts/flatpak/chiaki4deck-devel.yaml b/scripts/flatpak/chiaki4deck-devel.yaml index abd9ad11b..3d6fecf9b 100644 --- a/scripts/flatpak/chiaki4deck-devel.yaml +++ b/scripts/flatpak/chiaki4deck-devel.yaml @@ -1,6 +1,6 @@ app-id: io.github.streetpea.Chiaki4deck-devel runtime: org.kde.Platform -runtime-version: '6.7' +runtime-version: '6.8' sdk: org.kde.Sdk command: chiaki rename-icon: chiaking @@ -17,7 +17,8 @@ finish-args: - --env=DBUS_FATAL_WARNINGS=0 - --env=CPATH=/app/include - --env=RADV_PERFTEST=video_decode - - --env=PKG_CONFIG_PATH=/app/lib/pkgconfig + - --env=PKG_CONFIG_PATH=/app/lib64/pkgconfig + - --env=LD_LIBRARY_PATH=/app/lib64 - --env=QML_DISABLE_DISK_CACHE=1 - --env=SDL_AUDIODRIVER=pipewire - --talk-name=org.freedesktop.ScreenSaver @@ -25,7 +26,11 @@ finish-args: - --filesystem=xdg-run/pipewire-0 - --filesystem=xdg-run/gamescope-0 - --filesystem=host - + +build-options: + env: + PKG_CONFIG_PATH: "/app/lib64/pkgconfig" + modules: - name: protobuf-compilers sources: @@ -110,12 +115,8 @@ modules: - --enable-hwaccel=hevc_vulkan sources: - type: archive - url: https://ffmpeg.org/releases/ffmpeg-6.1.2.tar.xz - sha256: 3b624649725ecdc565c903ca6643d41f33bd49239922e45c9b1442c63dca4e38 - - type: patch - path: 0001-lavc-vaapi_hevc-Fixup-invalid-references.patch - - type: patch - path: 0001-lavc-vaapi_h264-Fixup-invalid-references.patch + url: https://ffmpeg.org/releases/ffmpeg-7.1.tar.xz + sha256: 40973d44970dbc83ef302b0609f2e74982be2d85916dd2ee7472d30678a7abe6 - type: patch path: 0001-vulkan-ignore-frames-without-hw-context.patch diff --git a/scripts/flatpak/chiaki4deck.yaml b/scripts/flatpak/chiaki4deck.yaml index 1199f8f40..988f5f180 100644 --- a/scripts/flatpak/chiaki4deck.yaml +++ b/scripts/flatpak/chiaki4deck.yaml @@ -1,7 +1,7 @@ app-id: io.github.streetpea.Chiaki4deck branch: chiaki4deck runtime: org.kde.Platform -runtime-version: '6.7' +runtime-version: '6.8' sdk: org.kde.Sdk command: chiaki rename-icon: chiaking @@ -14,6 +14,7 @@ finish-args: - --device=all - --allow=bluetooth - --socket=pulseaudio + - --env=LD_LIBRARY_PATH=/app/lib64 - --env=DBUS_FATAL_WARNINGS=0 - --env=QML_DISABLE_DISK_CACHE=1 - --env=SDL_AUDIODRIVER=pipewire @@ -23,6 +24,10 @@ finish-args: - --filesystem=xdg-run/gamescope-0 - --filesystem=host +build-options: + env: + PKG_CONFIG_PATH: "/app/lib64/pkgconfig" + modules: - name: protobuf-compilers sources: @@ -111,12 +116,8 @@ modules: - --enable-hwaccel=hevc_vulkan sources: - type: archive - url: https://ffmpeg.org/releases/ffmpeg-6.1.2.tar.xz - sha256: 3b624649725ecdc565c903ca6643d41f33bd49239922e45c9b1442c63dca4e38 - - type: patch - path: 0001-lavc-vaapi_hevc-Fixup-invalid-references.patch - - type: patch - path: 0001-lavc-vaapi_h264-Fixup-invalid-references.patch + url: https://ffmpeg.org/releases/ffmpeg-7.1.tar.xz + sha256: 40973d44970dbc83ef302b0609f2e74982be2d85916dd2ee7472d30678a7abe6 - type: patch path: 0001-vulkan-ignore-frames-without-hw-context.patch