clementine-player / Clementine

:tangerine: Clementine Music Player
https://www.clementine-player.org/
GNU General Public License v3.0
3.77k stars 677 forks source link

Clementine stops playback before song completion #4722

Closed TheLastProject closed 9 years ago

TheLastProject commented 9 years ago

I ran into this issue on a 64-bit Gentoo Linux system, running ALSA.

The song in question is SISTERS - l⦡s✞ ɦɐll∅ween, available as a free download on BandCamp. Be sure to get the FLAC version to reliably reproduce this issue.

When playing this song in Clementine, playback cuts off at the 42 second mark, and Clementine switches to the next song in the playlist. VLC player plays the song completely without any issues. When converting the song using oggenc SISTERS - l⦡s✞ ɦɐll∅ween.flac, Clementine mistakes the song for taking 47 seconds, but does play it for the full 7 minutes and 2 seconds.

clementine_47_seconds

The FLAC file is not damaged, I have redownloaded and tested to make sure:

$ flac -t SISTERS\ -\ l⦡s✞\ ɦɐll∅ween.flac 

flac 1.3.1, Copyright (C) 2000-2009  Josh Coalson, 2011-2014  Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

SISTERS - l⦡s✞ ɦɐll∅ween.flac: ok

I have attempted the following:

If there is any way to help further debug this issue, I would be happy to help.

sobkas commented 9 years ago

I'm unable to reproduce this bug, what version of libflac are you using?

TheLastProject commented 9 years ago

1.3.1-r1, the most recent version available on Gentoo: http://packages.gentoo.org/package/media-libs/flac

sobkas commented 9 years ago

on debian I have 1.3.1-1 md5sum flac file have this sum: 49ed4ed4845378403aaf94a8b115aa02

TheLastProject commented 9 years ago

49ed4ed4845378403aaf94a8b115aa02 SISTERS - l⦡s✞ ɦɐll∅ween.flac

Matches.

EDIT: md5sum correct file...

sobkas commented 9 years ago

Can you try to play it using "gst-launch-1.0 playbin uri=file:///tmp/SISTERS\ -\ l⦡s✞\ ɦɐll∅ween.flac"

TheLastProject commented 9 years ago

Initially I got:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: Free Lossless Audio Codec (FLAC) decoder
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'audio/x-flac'.
Additional debug info:
/var/tmp/portage/media-libs/gst-plugins-base-1.2.4-r1/work/gst-plugins-base-1.2.4/gst/playback/gsturidecodebin.c(930): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
/var/tmp/portage/media-libs/gst-plugins-base-1.2.4-r1/work/gst-plugins-base-1.2.4/gst/playback/gstdecodebin2.c(3928): gst_decode_bin_expose (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found                                                                                                                                                                      
ERROR: pipeline doesn't want to preroll.                                                                                                                                                       
Setting pipeline to NULL ...                                                                                                                                                                   
Freeing pipeline ...                                                                                                                                                            

So, I installed media-plugins/gst-plugins-flac and tried again:

Setting pipeline to PAUSED ...                                                                                                                                                                 
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Got EOS from element "playbin0".
Execution ended after 0:07:02.718162163
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Which played fine.

So, I tried Clementine again, but it still stopped at 42 seconds on all possible GStreamer outputs, so the initially missing gstreamer flac plugin, which is now installed, unfortunately is not the issue. (For clarity, I exited Clementine completely and started it cleanly)

hatstand commented 9 years ago

Clementine 1.2.3 still uses gstreamer 0.10 so installing 1.0 plugins won't help you. Try a newer build from http://builds.clementine-player.org/

TheLastProject commented 9 years ago

@hatstand I have no clue which of those builds I should use on Gentoo, so I first opted for explicitly installing version 0.10.31-r1 of media-plugins/gst-plugins-flac, which changed nothing. Then, I went back to updating it to the latest version and compile Clementine from source, in which version it seems to work. So, I'll close this, because the problem doesn't occur in the development version, and apologize for not having thought of that. @hatstand and @sobkas, thank you for your time, and my apologies.

sobkas commented 9 years ago

Try to play it using gst-launch-0.10 playbin uri=file:///tmp/SISTERS\ -\ l⦡s✞\ ɦɐll∅ween.flac And I have time for users(especially linux ones) Until the next version will be released this bug should be reopen

TheLastProject commented 9 years ago
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Got EOS from element "playbin0".
Execution ended after 42594016326 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

That basically settles it, it's a GStreamer 0.10 issue.

sobkas commented 9 years ago

I was able to reproduce GStreamer 0.10 issue with this file, so definitely a GStreamer problem. You can submit a bug here: http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer or on distros bug tracker