UltraStar-Deluxe / USDX

The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStar™
https://usdx.eu
GNU General Public License v2.0
812 stars 160 forks source link

Crash when opening songs with MPG/FLV videos #764

Closed DerGitRob closed 8 months ago

DerGitRob commented 8 months ago

Actual behaviour

Ultrastar Deluxe crashes when opening songs that contain a video with MPG or FLV ending

Expected behaviour

Song should be played with the video

Details

terminal output $ flatpak run --branch=stable --arch=x86_64 --command=ultrastardx eu.usdx.UltraStarDeluxe Sorry, an error ocurred! Please report this error to the game-developers. Also check the Error.log file in the game folder. Stacktrace: Exception class: EAccessViolation Message: Access violation $000000000050B3AB

USDX error.log (last entries) INFO: VideoStreamIndex : 0 [TVideoPlayback_ffmpeg.Open] INFO: Using h264 codec [TVideoPlayback_ffmpeg.Open] INFO: Framerate: 30fps [TVideoPlayback_ffmpeg.Open] INFO: Using decoder FFmpeg_Decoder for "/home/.ultrastardx/songs/Ultrastar 90s (Radio Pop)/All 4 One - I Swear [VIDEO]/All 4 One - I Swear.mp3" [TAudioPlaybackBase.OpenDecodeStream] ERROR: Failed to open file "/home/.ultrastardx/songs/Ultrastar 90s (Radio Pop)/All 4 One - I Swear [VIDEO]/All 4 One - I Swear [VD#0].mpg" (::-1094995529) STATUS: Begin [OnShow] ERROR: Failed to open file "/home/.ultrastardx/songs/Ultrastar 90s (Radio Pop)/All 4 One - I Swear [VIDEO]/All 4 One - I Swear [VD#0].mpg" (::-1094995529) STATUS: Closing DB file [Finalization] INFO: TDataBaseSystem.Free [TDataBaseSystem.Destroy] STATUS: Finalize Media [Finalization] STATUS: Uninitialize 3D [Finalization] STATUS: Kill Fonts [UnloadFontTextures] STATUS: Finalize SDL [Finalization] STATUS: Finalize Log [Finalization]

The video is being played outside USDX with no problems.

barbeque-squared commented 8 months ago

do you have a native (non-flatpak) USDX somewhere and do they work there? It's fine if you just use a Windows portable for this. if they work there, it has to be something specifc to the flatpak (which I know nothing about).

if they also don't work there, I'll need the actual video files. If you can't link them here, either PM or link them on Discord, or send me an email to my github commit email.

s09bQ5 commented 8 months ago

This issue consists of two parts. We have FFmpeg inside the Flatpak environment rejecting the video and we have USDX crashing when FFmpeg rejects a video.

$000000000050B3AB is here. I guess fCurrentVideo is nil.

The -1094995529 error code is AVERROR_INVALIDDATA.

What does ffprobe say about All 4 One - I Swear [VD#0].mpg?

DerGitRob commented 8 months ago

Duration: 00:04:19.86, start: 0.188411, bitrate: 1262 kb/s Stream #0:0[0x1c0]: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s Stream #0:1[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x240 [SAR 200:219 DAR 880:657], 1120 kb/s, 29.97 fps, 29.97 tbr, 90k tbn

ein weiteres Beispiel ist Duration: 00:03:45.88, start: 0.000000, bitrate: 707 kb/s Stream #0:0: Video: h264 (Main), yuv420p(progressive), 854x480 [SAR 1:1 DAR 427:240], 617 kb/s, 25 fps, 25 tbr, 1k tbn Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 98 kb/s

I also installed "flatpak install org.freedesktop.Platform.ffmpeg-full" but the problem remains

s09bQ5 commented 8 months ago

ffmpeg-full in runtime version 22.08 does not contain the mpegps demuxer and the mpeg1video decoder. The one in 23.08 does. I'll switch to the newer runtime with the 2023.11.0 release.

DerGitRob commented 8 months ago

I installed that version separately, but i guessed already that this cannot be used by USDX flatpak in that way. So it's really great that you will switch to the newer runtime in the upcoming release :)