Releases: jcfain/XTPlayer
v0.57b
This is a small release to release a change for the new format on eroscripts/OFS. Wires were crossed and things changed. Theres a couple other changes as well.
- Fix vtt subtitles in web html video player
- Add funscript library in case you like your funscripts separated from your videos for some reason. These directories will be deep searched if the standard funscript isn't found along side the video. Note: this may increase initial media load time if you have allot of media without funscripts and you have any funscript directories specified.
- Added toggle to use the OS media back-end instead of ffmpeg. Ive heard of this working on windows but I'm not really sure about other OS's
v0.55b
Changes
Fix crash added when hiding the mouse cursor in desktop full screen
Added support for new SFMA (Single file multi axis format) This may not be in place on Eroscripts yet but is supposed to be coming.
Added half axis to random motion links. (I just remembered doing this and didn't test it much YMMV)
Fix issue where editing other metadata would affect the currently playing media in desktop.
Fix issue with crash on TCode command receive #ok with no playlist item selected. (Mostly affected Romeo BLE users)
Added some media management. Currently only a "Delete" function is implemented. Warning, this will delete the media the funscript and the thumbnail and is NOT REVERSE-ABLE. The option for delete is disabled by default and you need to turn it on before you see in the context menu. This should show up in the web as well as the desktop context menus.
Mac users: The dmg has been built on ventura this time but I was not able to get to the crashing issue during the thumb process. Just keep relaunching the app until the thumb process completes. It should run after that (sorry, I need a newer mac machine). I was also not able to get a native arm/universal build yet as I need to figure out the signing portion. So only x86_64 build this time. Should still run on an arm cpu.
Hopefully this build is more stable than v0.5
Thanks!
v0.5b
Important: Make sure to export your current settings BEFORE running this version. Just in case you want to go back. You should do this before you change versions every time. Just calling it out here at the top.
Important: zipped up funscript support has been removed in this build. I don't know if it will go back in. Youll need to extract your zipped funscripts for the program to see them.
Hello everyone, This release updates Qt to the latest release v6.9.1. What this means for XTP mostly is its now using FFMPEG as a media backend again. No more installing 3rd party codecs so you can remove them once you get comfortable with this update. This does come with a few stipulations though. The version of FFMPEG Qt includes by default does not do software AV1 decoding. So if you do not have hardware that will do this, these videos will no longer play. There is a request in (https://bugreports.qt.io/browse/QTBUG-119711) Qt to add this so instead of doing it my self for all the builds, I'm going to wait for Qt to do it. The new media widget in Qt also broke my player controls UI overlay. You'll see this has changed and not really for the better but its good enough for now.
Qt 6 also has a built in http server that Web has been ported to. This means a simpler build if your into that sort of thing.
MAC users: I was having a crash on AV1 videos on a 2013 mac pro for a while but the last time I ran it it did not crash. So I believe I fixed it. Let me know if you crash. Otherwise The mac os build should be allot better. I built this on MacOS 15 Sequioa. If you are running an older version im not sure it will work. Let me know if you need an older version and ill try to get an build thats for an older OS sooner. That is on my list of things todo just not high priority unless I get requests.
On a similar OS build version note: The aarch64 was built on Armbian 24.04 noble. (Unsure why its so much larger than the x86 build).The x86 appImage was built on Debian 12.Windows was built with Windows 10.
Release notes:
Add Alternate scripts selector to Web interface.
Adding playback rate change with funscript scaling
Adding option to export settings to json format.
Adding option to put settings.json in the directory of the exe/appimage to override the default settings location for the OS.
Refactor thumb generation code. Should be more stable. Its easier to read and maintain at least.
When a thumb generation fails it will NOT be tried again on startup. You need to manually try it again when you want.
Add media settings button to player controls to allow modifying them in full screen.
Fix issue with some filter text not working on web
Fix issue with old playlist items crashing when doing certain acrions in the context menu.
Fix issue where media metadata could break of video was renamed but script was not.
Fix issue with updating metadata from web UI
Fix issue when using escape to exit fullscreen in web
Adding error state when media path doesnt exist on playlist item anymore.
Fix issue where certain MFS files would fail silently when saving meta data on web.
Added warning when this happens. (Requires a metadata update)
Fixed re-filter on various media item update events
Fix issue where sometime alerts would show undefined.
Add notification on metadata update.
Fix some display issues with mobile screens
Adding ability to disable automatic thumb generation
Fix issue where app image wouldnt find the included www dir by default
UDP heartbeat is now disabled by default on new installations due to issues with system pings
Timeline preview is enabled on new installations by default again
v0.47b
Hello long time no see :) This release cycle has been a rough one and there's still things I'd like to fix/add but I need to release something eventually.
Changes:
-
Remove missingScript tag from scripts with only MFS
-
Fix issue where MFS only looked like FULL MFS on first process
-
Adding media load scheduler
-
tweaked random motion a bit
-
Adding process all metadata on start up option
-
Hopefully fixed the thumbnail crash on timeline
-
Adding range modifier to metadata
-
Fix issue displaying on mobile
-
Adding alt script tag for filtering media wit alt scripts
-
Pause device actions should not persist throught all media actions
-
Add tcode v4 validation (Experimental)
-
Add date added property and sort functions to desktop and web
-
Made metadata process happen before thumbs.
-
Uninstall now should delete the registry key if portable mode isnt active
-
Web only
-
Fix issue where fullscreen video was not the correct size when changing media
-
Added actions interface to the web interface along with pause tcode and home tcode
-
Made some actions bypass pause actions like device home and range adjustment.
-
Adding media loading status to settings modal
-
Adding home button and reload library buttons to web home page
-
And the Obligatory "Bug fixes and other changes"
Full Changelog: v0.461b...v0.47b #
v0.461b
This is a hotfix.
Fix issue where new media Items metadata is not processed when first seen.
v0.46b
- Adding tags support to both Web and Desktop UIs.
- Adding smart tags. Tags in this category will search the media path and script path for the tag and automatically apply this tag. I use some directories as tags so they will show in the tag filter.
- Adding viewed and unviewed tags that automatically apply after a specified percentage has been reached. Skipping the video past this percentage will trigger this. You can undo this in the media item metadata edit screen if you like.
- Adding support for stand alone MFS scripts such as videos that only have a vib script. Before the main .funscript was required. This is not the case any more. As long as there is at least one script with the track name setup in the user channels exists with the same name, the script will load it. This will also work via external media player streaming.
- Significantly sped up the library loading by moving the metadata processing to a background async process. IMPORTANT: The first time you launch this version this process will run in full. Afterwards, the results will be saved to the metadata. If you change the media's scripts like add an MFS script, you will NEED TO RUN THIS PROCESS AGAIN. As it searches for MFS scripts. This process will also process smart tags and built in tags and other future metadata systems.
- Adding specified auto add tag "viewed" percentage setting to the Desktop UI settings. I just remembered I forgot about the Web UI...
- Refactored metadata. Ir is now stored by media name without the extension instead of the absolute path. This allows you to move media items while retaining the connected metadata. If you rename the media, file the metadata will be lost. I am still brain storming ideas on how to prevent this. I will probably add an option to store the metadata in the media directory with the media with the same name. This will make it so you can put it any where you want as long as they are the same name. I don't want to force this because I don't want to write to your media directory no pollute it with a bunch of files so it will be opt in.
- Adding support for external media in external player mode. If a media item comes in that is not in the selected library the item will be added to the internal media item tracker temporarily and metadata will be saved to the settings. This will allow certain metadata to be processed like funscript offset.
- Adding UDP heart beat to close the UDP connection if no device responds to a ping for more persistent servers that stay up all the time.
- Adding option to disable the UDP heart beat in cause it causes issues for you.
- Fix issue where heresphere change caused the script to be not found and the system resorted to searching the entire media library recursively for a funscript. This made loading funscripts slow causing all sorts of issues.
- Refactored the funscript search from external player to be async, allot faster and more maintainable.
- Add subtitle support to web player. Only vtt subtitle foirmat is supported for html video streaming. Your vtt file must be the same name as the media and in the same directory. files in the srt format is still downloadable. The desktop UI does not use these files. That will be allot of work sorry. Hopefully Qt6 will support them natively.
- Add option to download the subtitle file for external players. IMPORTANT: I could not get any browser on my quest 3 to down load this file. I do not know why. It works on my desktop/mobile browsers.
- Add a clean metadata process. This process will go through and chop off orphaned metadata and remove any tags that do not exist in the system anymore. DO NOT RUN THIS UNLESS YOU HAVE ALL OF YOUR MEDIA ITEMS LOADED. If you have media items that are not in the current loaded list the metadata will be deleted. This includes the temp external media noted above.
- Adding processing status progress bars to show the current state of certain background process to Web and Desktop UIs.
- Fix Web tcode range sliders layout on mobile and other browsers.
- Remove the buffer timeout that would skip the media automatically in Web. If the video hands forever you will need to skip manually now.
- Fix issue where tcode would be sent when new media is loading in web
- Adding version info to Web settings system info tab
- Updating build to C++17
- Tweaked the random motion a bit. If the last random value is greater than the next random range will be >50 and vice versa. This seems to depend on the speed modifier and the main script speed on how effective this is.
- Added thumb cleanup button to web ui
XTEngine release: https://github.com/jcfain/XTEngine/releases/tag/0.46b
v0.452b
Hey, this one has been in the oven for a while. I kept taking it out and messing with it and putting it back in increasing the cook time. I also needed to get my build system setup again after moving PCs
It wont look like there's much here as allot of the stuff I started I didn't finish. Its also been along time since I had a release so allot of work has been forgotten sparsely documented in git commits.
I spent a good amount of time attempting to fix a thumb generation issue on linux (maybe on MAC?) but could not crack it. So you will probably experience a frustratingly amount of crashes if you dont already have your thumbs generated on startup. Sorry, if you have any clues let me know. It has to do with gstreamer and segfaults. I will continue to work on this when I have time. Windows build doesnt seem to have this issue for me.
Which brings me to my next announcement. XTPlayer and XTEngine is now opensource! XTEngine is ideally the guts of the application and built as an external library. XTPlayer is ideally the QtWidget front end. Since I separated these out way down the line in development, the separation isn't the cleanest.
L Boutin ha been kind enough to post his flake for specific package managers in linux. If you dont know what that is then welcome to the club. Here it is if you have any interest and shoutout to L Boutin! Thanks! https://github.com/LaurenBoutin/xtplayer_flake I don't know if this will be maintained with the newest version but I would like to post this here for anyone who may want it.
This release contains a new appimage that hopefully is somewhat usable for linux users. It's had limited testing so let me know if it works for you. It now includes gstreamer used to build with so its a chonky boy. There is also a. arm build (aarch64) for use on some more powerful SBCs. This testing is even more limited as I spent all my time trying to fix the thumb generation....
Change log:
IMPORTANT for users of my firmware: This version of XTP requires my latest firmware (v0.371b) to validate the connection to the device. You can also disable validation in the system tab of XTP to work around this requirement.
- Improved random motion on channels without scripts. This should be more random and not lean to one side as much. I removed the multiplier value as it was just causing issues. Its now as random as a computer can be.
- Adding offset update to web and minor tweak to ran motion
- Adding custom tcode commands/actions for sending to the firmware from XTP.
- Adding standard commands to respond to Tempests button box.
- Add global offset state to media settings dialog in XTP
- Add media settings to player controls
- Made alt scripts number show green if any exist
- Update documentation for help building the application.
- Fix issue in linux where navigating to the thumb/media in the explorer would fail.
- Fix issue with media settings window causing the system to become unresponsive
- Rewrite the device connection to handle input from the device.
XTP Web specific
- Improved some web layout on context menu and modal
- Added buttons to help with adjusting ranges in XTP web
- Added profile selector to XTP web
Probably more little things I forgot to document.
v0.444b
* Adding alt funscript search and selector
This will search the directory of the playing media on launch for funscripts that start with the video file name.
So this format <videoName><alternateName>.funscript
<alternateName> can be anything you want as long as the video file name preceeds it.
The alternate scripts will show up on the player controls so you can live swap between them. (See the screenshots above)
* Add key gamepad actions for cycling the alt funscripts.
* Finally got the fullscreen overlay back. Well mostly. Transparancy is still not a thing and linux version may have issues. Try clicking and dragging the mouse if it doesnt show up on mouse move.
* Fix issue with XTP web and heresphere in the latest Oculus update.
* Fix thread runaway when a script is being synced remotely.
v0.44b
Adding motion profiles to web ui
Adding shuffle mode to webui
Made channel ranges save after moving the sliders instead of having to manually save
Fix issue with sending home on new video start when pause all actions is active
Made time line preview disabled on first load due to how many issues I was hearing about
Adding refresh library web button to web ui
Adding randomize sort to web ui
I'm not sure if the linux appimage will work with gstreamer yet. I'm including the binary build just incase.
v0.32a
Another experimental release.
NOTE: This will start a new set of settings under the XTEngine registry path. You can export your settings from an older version and import into this one if you like.
Completely rewrote the connection manager. hopefully less buggy. It wasn't bad before but I did a piss poor job or organizing things.
Split off most of the code into a separate library called XTEngine to hopefully be used in other projects.
Made skip to play file work in VR
Fix issue with VR library paths with /media/ in path on linux
Fix issue with streaming from external VR libraries.
Change dropdowns to radios for heresphere
Fix issue with Heresphere not finding script in library
Made script search search the whole library AND VR library for a script if not found in the media path
Changed some frontend Web settings to make up for HereSphere dropdown issue
Fix issue with Heresphere external native player streaming
Add new welcome dialog about library
Adding date/time to build version
Hopefully fixed a memory leak in thumb generation.
Add XTP web quick filter
made channel go home only on random motion uncheck instead of during
Including a mac build but my MacOS VM was still having thumb generation issues. Hopefully you have better luck.
Lots of other minor things in the code split.