Feat: Add mixed-system games to .sub files with metadata and artwork#27
Open
SSSTAiNLESSS wants to merge 20 commits intophulshof:masterfrom
Open
Feat: Add mixed-system games to .sub files with metadata and artwork#27SSSTAiNLESSS wants to merge 20 commits intophulshof:masterfrom
SSSTAiNLESSS wants to merge 20 commits intophulshof:masterfrom
Conversation
Author
|
My primary motivation for developing this feature was to gain full control over the display order of games within |
The playbin3 element was introduced in commit 0c828bd (April 2023) but is not available in GStreamer 1.4 (2014). This caused video playback failure with legacy GStreamer installations. Reverted to playbin for backwards compatibility with GStreamer 1.4 while maintaining functionality with newer versions (playbin is available in all GStreamer 1.x versions). Error in log: [DEBUG] [Video] Could not create playbin - STAiNLESS
- STAiNLESS
Major Changes: - Complete replacement of GStreamer backend with libVLC - Smart volume-based playback (only decode when volume > 0.01) - Fixed audio to stereo output with optimized buffer - Added stop() function to Sound class for proper cleanup Performance Optimizations: - Videos/audio with volume=0 don't consume CPU - Background media only plays when needed - Proper cleanup when switching menus Files Added: - VLCVideo.cpp/h - Complete libVLC implementation - deploy_test.bat - Quick deployment script - BUILD_VLC.md - Comprehensive build documentation Files Modified: - VideoComponent.cpp - Smart playback based on volume - Video.cpp - Updated to use VLCVideo - Page.cpp - Stop sounds on menu switch - Sound.cpp/h - Added stop() function - SDL.cpp - Fixed audio configuration - CMakeLists.txt - VLC configuration Implementation by CORE Team Co-Authored-By: Claude <noreply@anthropic.com>
- Full technical details of the migration - Performance metrics and improvements - Complete bug fix list - Testing checklist - Migration guide - CORE Team credits Documentation for the complete GStreamer to libVLC backend replacement.
- Added proper attribution for RFSVIEIRA who pioneered the VLC migration - Updated both CHANGELOG and BUILD documentation - Credit where credit is due Thanks RFSVIEIRA for showing the way!
- Clarified that VLC SDK is already in tools/vlc-sdk/ - Runtime files in tools/vlc-runtime.zip - Users don't need to download VLC separately - Made included SDK the recommended option - Updated CMake instructions to use tools folder by default Easier compilation for contributors!
- Removed Package/Environment/Windows/core 1.4/ (GStreamer 1.4 files) - Removed Scripts/deploy_test.bat (temporary deployment script) - tools/vlc-sdk not tracked in git (as intended) Repository cleanup for VLC implementation
The build_and_store.ps1 script handles everything automatically. No need for separate documentation.
- Removed reference to deploy_test.bat - Removed reference to BUILD_VLC.md - Updated deployment instructions
- tools/ folder is gitignored - Added download instructions for VLC SDK - Developers need to download SDK separately
- Integrated VLC video backend - Smart volume-based playback - Performance optimizations - Audio improvements (stereo, proper cleanup) Mixed collections now uses VLC instead of GStreamer
4832eda to
c4cf1b2
Compare
- Added lib/msvc path hint for libvlc libraries - Supports RSATom/libvlc-sdk structure - Mixed-collections now builds with VLC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This branch introduces the ability to create "Mixed Collections" where a single list can contain games from multiple different systems, launching them with their respective emulators and displaying correct metadata.
Added
SystemName:GameNamesyntax in.subfiles (e.g.,Nintendo Entertainment System:Super Mario Bros).CollectionInfoobjects on-the-fly for foreign systems found in a list.settings.conffor foreign systems to ensure artwork paths (screenshots, videos) and launcher configurations are resolved correctly.MetadataDatabase::injectItemMetadatato query the HyperList database for a specific game without requiring the full collection to be loaded..subfiles to prevent parsing errors on the first line.Fixed
CollectionInfoobjects in the main collection's destructor.settings.confis loaded into the global configuration.