Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for RTSP GE Proton #412

Closed
CorneliusCornbread opened this issue Jun 22, 2024 · 11 comments · Fixed by #470
Closed

Add support for RTSP GE Proton #412

CorneliusCornbread opened this issue Jun 22, 2024 · 11 comments · Fixed by #470
Labels
enhancement New feature or request

Comments

@CorneliusCornbread
Copy link

CorneliusCornbread commented Jun 22, 2024

Is your feature request related to a problem? Please describe.
For VRChat players we have to install a fork of GE proton which patches RTSP players. These patches include many fixes, especially to encoders found in the windows media foundations libraries. Installing these manually can be a bit of a pain

Describe the solution you'd like
I propose two possible solutions:

  • Allow for installing from an archive: this would make it so that any forked, custom version of proton can be installed easily to Steam
  • Simply support downloading RTSP proton in the same manner that regular GE proton is supported.

Additional Context
https://github.com/SpookySkeletons/proton-ge-rtsp

@CorneliusCornbread CorneliusCornbread added the enhancement New feature or request label Jun 22, 2024
@sonic2kk
Copy link
Contributor

sonic2kk commented Jun 22, 2024

Allow for installing from an archive: this would make it so that any forked, custom version of proton can be installed easily to Steam

I like this idea a lot, actually. If there was a way we could do this "ModOrganizer 2 style" where after selection we can show the contents of the archive and allow the user to select what folder should be extracted (defaulting to the top-level one) I think this would be great.

You could open a separate enhancement request for that feature, if you'd like.

Simply support downloading RTSP proton in the same manner that regular GE proton is supported.

This is probably equally valid for this use case, but doesn't invalidate the above proposal. Implementing this as a Ctmod would be straightforward I think, it could likely just inherit from the GE-Proton CtMod.

Maybe this one should be under Advanced Mode? We tend to group a lot of more "specialized" Proton flavours there (NorthStar Proton, etc).

@sonic2kk
Copy link
Contributor

sonic2kk commented Jun 22, 2024

Yeah, this was very straightforward to add. I made a branch here (forgot to put it under Advanced Mode): https://github.com/sonic2kk/ProtonUp-Qt/tree/rtsp-ge-proton (my fork is only for the purposes of contributing here, and as a playground, it's not a replacement for ProtonUp-Qt, purely a development fork)

I verified that it showed up, downloaded, and extracted correctly. The extracted contents have the same structure as GE-Proton, it uses tagging properly, uses the same archive format, so it was straightforward.

As a disclaimer: I am not sure if we want to go this direction though, so I won't open a PR yet. That branch is only there to serve as a proof-of-concept that it is possible, not a confirmation or endorsement :-)


Screenshot comparing the directory structure of GE-Proton9-5-rtsp10 (downloaded using that branch), and GE-Proton9-7.

ge-proton-rtsp-comparison

@CorneliusCornbread
Copy link
Author

As a disclaimer: I am not sure if we want to go this direction though, so I won't open a PR yet. That branch is only there to serve as a proof-of-concept that it is possible, not a confirmation or endorsement :-)

Ye, I suggested the 'install from archive' idea first as I think it scales better in the scenario where there are more forks of WINE that pop up for different specific use cases. Moreover the forks may be temporary, it's a possibility that the changes in RTSP GE eventually see themselves in upstream which would make it no longer necessary and would have to be removed from protonup-qt itself. All of which requires work to keep up to date, kinda a hassle.

@Darthagnon
Copy link

I would love this feature if it were implemented - I've had a lot of trouble with legacy software (e.g. Rockbox, Pangu) that tries to pull resources from long-dead repos online. The ability to install from a ZIP would solve this issue.

@sonic2kk
Copy link
Contributor

[...] and would have to be removed from protonup-qt itself. All of which requires work to keep up to date, kinda a hassle.

Removing tools isn't a hassle :-) we can simply remove the file from the Ctmods folder.

But I agree with the sentiment wholeheartedly, and agree that it is better than trying to add every possible tool under the sun. It also allows for offline installation by downloading the tools on another machine and allowing them to be extracted into the relevant folder, which was requested before.

There are some questions about UX to discuss I think (a dedicated button on the Main Menu, an option for "Browse..." On the CtInstaller dialog, etc) so I think a separate issue for this proposal would be great. Then it can be discussed separately from whether or not RTSP should be added.

@DavidoTek
Copy link
Owner

DavidoTek commented Jun 27, 2024

Allow for installing from an archive: this would make it so that any forked, custom version of proton can be installed easily to Steam

Interesting idea...

This needs another UI with following options:

  • Archive (Textbox with select folder button)
  • Launcher
  • Type [optional] (e.g., Wine, DXVK, ...)
  • Cancel, Install buttons

I would hide this behind advanced mode though. I'm not sure where we should put this button. There are 3.5 options:

  1. Add another button to (a) the main window (b) some other dialog
  2. Add it as an option in the drop down box of the install dialog
  3. Add a drop down arrow to the "Add tool" button (not very Steam Deck friendly, I would not consider that option)

That would somehow solve #410

I've created a new issue for this: #414

@CorneliusCornbread
Copy link
Author

Add it as an option in the drop down box of the install dialog

This is the option I like the most, just place it as the bottom-most option and it'll allow you to put a note about how the manual install for the archives works in the description, what kind of format it expects, how it's recommended for only advanced users, etc. And the info button could lead to a full on wiki page if necessary.

@regalialong
Copy link

Hey, I hate bumping issues but I'd still be interested to have rtsp added to ProtonUp. rtsp has been stable for months now and (hopefully) won't sprawl into different forks, but it's still immensely important for VRChat.

There's entire lobbies where social gathering happens around video players (Youtube Search / YTS, Popcorn Palace), which Linux users otherwise end up missing out on since videos don't play (well) without the rtsp patches.

Would it be possible to add RTSP now and maybe engineer the alternative approaches in another issue? It'd be immensely useful for Linux VR which is mostly graphical.

@DavidoTek
Copy link
Owner

I think we can add RTSP to ProtonUp-Qt just like GE-Proton, ignoring the offline archive discussion for now.

I've created a PR to merge @sonic2kk's testing branch into "the official" ProtonUp-Qt: #470

@sonic2kk
Copy link
Contributor

sonic2kk commented Oct 24, 2024

Just out of my own interest, is this fork anticipated to be needed for much longer? Valve have recently reworked media source playback in Proton Experimental, would this conceivably resolve the VRChat issues in the short-to-medium term? Note that VRChat is not called out as one of the initially impacted games.

I notice in the OP that it is implied that RTSP GE Proton does more than just media playback improvements, so maybe there is use-case beyond media codecs. Although from skimming the branches it seems most of the included patches are GStreamer-related, which suggests to me that eventually Valve's new implementation could resolve this.

@regalialong
Copy link

This is out of my depth so I'll go cc @SpookySkeletons who can probably provide more insight than I can on what specifically is needed.

From me testing experimental, I'm not able to seek with AVPro players and video owner seeking doesn't sync either, so I think VRC-specific fixes are still needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants