u8sand / Baka-MPlayer

The libmpv based media player
https://u8sand.github.io/Baka-MPlayer/
GNU General Public License v2.0
433 stars 93 forks source link

baka segfaults on audio only files with libmpv-0.15 #200

Closed mc4man closed 8 years ago

mc4man commented 8 years ago

Could be a moot point if baka is done. Otherwise simply initiated by trying to open any audio file, either from baka menu or context menu on a file bt1.txt

Chromace commented 8 years ago

@mc4man Does your audio file cause mpv to crash? Also, how do audio files with embedded album art fare?

godly-devotion commented 8 years ago

@mc4man So according to the title of the issue, were you able to confirm that this only occurs with libmpv-0.15? Because I'm also getting a lot of segfaults with audio files too.

mc4man commented 8 years ago

Yes, libmpv-0.14 works just fine. With 0.15 virtually all audio files cause a segfault, the exception here I've 1 mp3 that does work, I can't figure out why?? (- if helpful I can upload the 1 working file some where

On 02/20/2016 07:38 PM, Joshua Park wrote:

@mc4man https://github.com/mc4man So according to the title of the issue, were you able to confirm that this only occurs with libmpv-0.15? Because I'm also getting a lot of segfaults with audio files too.

— Reply to this email directly or view it on GitHub https://github.com/u8sand/Baka-MPlayer/issues/200#issuecomment-186708672.

Chromace commented 8 years ago

@mc4man Might you upload the file please?

mc4man commented 8 years ago

It's at home, I''ll upload & post link here when I get back, ck. in about 13 hrs.

On 02/20/2016 08:06 PM, Chromace wrote:

@mc4man https://github.com/mc4man Might you upload the file please?

— Reply to this email directly or view it on GitHub https://github.com/u8sand/Baka-MPlayer/issues/200#issuecomment-186714102.

godly-devotion commented 8 years ago

@mc4man I took a look at the stack trace and I think this bug is on mpv. Most likely will have to wait until they release libmpv-0.16 to see if they fixed it.

godly-devotion commented 8 years ago

@mc4man Could you try creating an issue with mpv? This bug probably occurs only in libmpv but not mpv itself, but I'm not exactly sure.

mc4man commented 8 years ago

I could start an issue but maybe first take another look as gnome-mpv with libmpv-0.15 is fine on audio only. The one file turned out to be an .m4a, forget it's history other than I think I may have added some album art. Any uploaded link below, the 2nd file is the orig. remuxed into mkv with ffmpeg, it also plays ok but I notice a window first opening, then closing (segfault of sorts?), then baka plays it., weird http://www.datafilehost.com/d/8d20f878..

godly-devotion commented 8 years ago

I did some digging in our code along with the stack trace @mc4man gave me.

Here Baka tries to get the file's width & height: https://github.com/u8sand/Baka-MPlayer/blob/master/src/mpvhandler.cpp#L798. According to mpv's man, mp.get_property(name [,def]) will return the string on success, or def, error on error. def is the second parameter provided to the function, and is nil if it's missing. This may cause a problem as we don't handle the error case which seems to occur with audio files (esp those without album art). I can't test this theory out though because I'm on a Windows machine.

u8sand commented 8 years ago

The values are 0 when there is no art, that's how I test for it in the FitWindow code and the like. Unless it's actually undefined and coincidentally 0 for most of the time.

Chromace commented 8 years ago

@mc4man Completely unscientific view here but...the m4a causes Baka to crash when I remove the album art? However, mpv works fine with it. 01-Sympathy_for_the_Devil.m4a.zip

u8sand commented 8 years ago

@mc4man the latest version of baka (on master) generates debugging information, can you send us the log on stdout after this crashes? If you need I can create a binary for you just tell me what OS.

mc4man commented 8 years ago

put up a fresh build of git-da76201 but unclear on where I'm to find this debug info or log ( can test on ubuntu 16.04 or 14.04

u8sand commented 8 years ago

@mc4man after setting debugging level in preferences to debug screenshot_2016-03-15_22-17-29

Or setting it in your settings {"mpv":{"msg-level": "debug",...},...}

Just run baka from the command line (you can send output to a log if you like)

baka-mplayer > error.log

Then error.log will have that output.

mc4man commented 8 years ago

Yeah, I had set it to debug & an error.log is created upon baka opening. Unfortunately once an audio file is selected it immediately segfaults & nothing additional is written to the log file. (- if I try baka-mplayer > error.log /path/to/filename then the log is created but empty

u8sand commented 8 years ago

@mc4man interesting... you're opening from the interface right? not: baka-mplayer file.m4a

mpv reports some information before any video is even played.

mc4man commented 8 years ago

Yeah, so here's the log in the former case. Once I then open a file in baka, (File > open file), it segfaults & nothing additional goes to the log.

error.log.txt

mc4man commented 8 years ago

For comparison the one audio file I have that works the error log (truncated, the thousands of line afterwords where basically the same as last 7 I think this .m4a works because it is somehow treated as a video file (has embedded art, though some other audio files with embedded art fail with the segfault

error.log1.txt

u8sand commented 8 years ago

@mc4man Well that's not cool.. And strangely enough, neither of those files crash on my system. I'll spend some more time trying to figure out that backtrace you initially gave.

Do ALL audio files that don't have embedded art crash on your system? Maybe you're missing qt-svg? (I'm grasping at straws). Do you know what version of mpv that is [for line: ../player/command.c:2441] Line 2441 doesn't make much sense (https://github.com/mpv-player/mpv/blob/master/player/command.c#L2441), I'm guessing it has probably changed.

mc4man commented 8 years ago

All audio files without art fail Most but not all with art work. I just embedded art in another .m4a with easytag & now it works There are 2 qt-svg libs installed - libqt5svg5 (5.5.1-2build1 libqt4-svg (4:4.8.7+dfsg-5ubuntu1 Generally always used mpv's so-called releases for libmpv to be used with baka, so the bt would have been same source as used today, ie. 0.15.0-release. https://github.com/mpv-player/mpv/releases/tag/v0.15.0

Could try 0.16.0 release or latest master though FFmpeg would have to be 2.8.6-release

On 03/15/2016 11:02 PM, Daniel Clarke wrote:

@mc4man https://github.com/mc4man Well that's not cool.. And strangely enough, neither of those files crash on my system. I'll spend some more time trying to figure out that backtrace you initially gave.

Do ALL audio files that don't have embedded art crash on your system? Maybe you're missing qt-svg? (I'm grasping at straws). Do you know what version of mpv that is [for line: ../player/command.c:2441] Line 2441 doesn't make much sense, I'm guessing it has probably changed.

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/u8sand/Baka-MPlayer/issues/200#issuecomment-197128903

u8sand commented 8 years ago

Time to narrow things down, could you apply this patch https://gist.github.com/u8sand/2a4b57a25374eade2a9e

This simply comments out all the overlay code. This should narrow down the problem somewhat to the overlay or to either our album art image or mpv itself.

mc4man commented 8 years ago

Here's 2 logs, I'm on a different machine during day mp3 error2.txt m4a error3.txt Both segfault at the last line.

Because this machine is a bit slower can see- On tagged audio that works 1st a 'transparent window' opens, disappears, then a baka window that plays. On untagged audio the trans window > segfault.

u8sand commented 8 years ago

@mc4man sorry to burden you with this. One more thing to try than I'll get my hands on an ubuntu box to debug this personally.

diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index 6c6b388..b2d3c3c 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -376,6 +376,7 @@ MainWindow::MainWindow(QWidget *parent):
                             albumArt = true;
                     }
                 }
+                    albumArt = false; // don't handle albumArt at all
                 if(video)
                 {
                     // if we were hiding album art, show it--we've gone to a video

This patch should remove our no albumArt functionality (which sounds like where the issue is).

mc4man commented 8 years ago

just tried, still segfaults..

On 03/16/2016 10:22 AM, Daniel Clarke wrote:

@mc4man https://github.com/mc4man sorry to burden you with this. One more thing to try than I'll get my hands on an ubuntu box to debug this personally.

|diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 6c6b388..b2d3c3c 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -376,6 +376,7 @@ MainWindow::MainWindow(QWidget *parent): albumArt = true; } } + albumArt = false; // don't handle albumArt at all if(video) { // if we were hiding album art, show it--we've gone to a video |

This patch should remove our no albumArt functionality (which sounds like where the issue is).

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/u8sand/Baka-MPlayer/issues/200#issuecomment-197352610

mc4man commented 8 years ago

Fixed here with libmpv-0.17+git or 16.04 release. Who knows, doesn't quite matter