Summary: | Launching amarok with --cdplay doesn't add the CD to playlist | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Jonathan Marten <jjm> |
Component: | Collections/CD | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | e.m.a.t.i.r.o.v, t.gornak |
Priority: | NOR | Flags: | myriam:
Usability+
|
Version: | 2.8.0 | ||
Target Milestone: | 2.9 | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/multimedia/amarok/-/commit/212b693c210f673e9dac91d4c62995e30ad5ecbd | Version Fixed In: | |
Sentry Crash Report: |
Description
Jonathan Marten
2011-08-02 17:15:19 UTC
What if you open amarok without that option and try to play a CD from there? Insert audio CD then select "Play Audio CD with Amarok" option from the Plasma device notifier => crash as above. Insert CD then start Amarok from command line or K-menu => nothing happens (no "Audio CD" appears in collection, no attempt made to play). Insert CD after Amarok has been started => "Audio CD" appears in collection and title/track names appear after a few seconds. The album or individual tracks can be dragged to playlist, but clicking "Play" does not start playback. Log messages as follows: amarok: BEGIN: virtual bool Meta::AudioCdAlbum::isCompilation() const amarok: END__: virtual bool Meta::AudioCdAlbum::isCompilation() const [Took: 0s] amarok: BEGIN: void EngineController::playPause() amarok: [EngineController] PlayPause: EngineController state 1 amarok: BEGIN: void EngineController::play() amarok: BEGIN: void Playlist::Actions::play() amarok: BEGIN: void Playlist::Actions::play(quint64, bool) amarok: BEGIN: void EngineController::play(Meta::TrackPtr, uint) amarok: BEGIN: void EngineController::stop(bool) Transitioning to state "ready" State change Moving from "null" 0 to "ready" 1 Transitioning to state "ready" Setting new source New source: QUrl( "" ) amarok: END__: void EngineController::stop(bool) [Took: 0s] amarok: [EngineController] play: bounded is QObject(0x0) current "Co mmunication Breakdown" amarok: [EngineController] Just a normal, boring track... :-P amarok: BEGIN: void EngineController::playUrl(const KUrl&, uint) amarok: [EngineController] URL: KUrl("audiocd:/d411160f/1?device=/d ev/sr1") "audiocd:/d411160f/1?device=/dev/sr1" amarok: [EngineController] Offset: 0 amarok: [EngineController] play track from cd amarok: [EngineController] Old device: "" Setting new source New source: QUrl( "" ) amarok: [EngineController] New device: "/dev/sr1" Setting new source New source: QUrl( "" ) amarok: [EngineController] Track: 1 amarok: [EngineController] no boom? Transitioning to state "playing" (amarok:26648): GLib-GObject-WARNING **: gsignal.c:2392: instance `0xa6a9320' ha s no handler with id `53' 1 Transitioning to state "null" amarok: [EngineController] track pos after play: 0 amarok: END__: void EngineController::playUrl(const KUrl&, uint) [Took : 0.037s] amarok: END__: void EngineController::play(Meta::TrackPtr, uint) [Took: 0.038s] amarok: END__: void Playlist::Actions::play(quint64, bool) [Took: 0.038s] amarok: END__: void Playlist::Actions::play() [Took: 0.038s] amarok: END__: void EngineController::play() [Took: 0.038s] amarok: END__: void EngineController::playPause() [Took: 0.038s] amarok: BEGIN: void EngineController::slotTrackLengthChanged(qint64) amarok: BEGIN: void ProgressWidget::redrawBookmarks(const QString*) amarok: END__: void ProgressWidget::redrawBookmarks(const QString*) [Took: 0s] amarok: END__: void EngineController::slotTrackLengthChanged(qint64) [Took: 0s] amarok: BEGIN: void EngineController::slotStateChanged(Phonon::State, Phonon::State) amarok: END__: void EngineController::slotStateChanged(Phonon::State, Phonon::State) [Took: 0s] amarok: BEGIN: virtual bool Meta::AudioCdAlbum::isCompilation() const amarok: END__: virtual bool Meta::AudioCdAlbum::isCompilation() const [Took: 0s] (Phonon backend is GStreamer, if that is relevant) Does the same happen with the phonon-backend-vlc? Also what versions of the phonon backends do you use? With Phonon backend set to VLC: insert CD while Amarok is running => Audio CD appears in collection, tracks can be dragged to playlist, plays correctly with no apparent problems. insert CD then start Amarok => nothing happens (no Audio CD appears in collection). start play from the Plasma device notifier or with the command 'amarok -d --cdplay' when Amarok is not running => crash as above start play from the Plasma device notifier or with the command 'amarok -d --cdplay' while Amarok is already running => messages as follows, but nothing else happens $ amarok -d --cdplay Amarok is already running! amarok: BEGIN: virtual int App::newInstance() amarok: BEGIN: static void App::handleCliArgs() amarok: BEGIN: bool MainWindow::playAudioCd() amarok: [MainWindow] waiting for cd... amarok: END__: bool MainWindow::playAudioCd() [Took: 0s] amarok: END__: static void App::handleCliArgs() [Took: 0s] amarok: END__: virtual int App::newInstance() [Took: 0s] $ All compiled from sources, versions: amarok v2.4.0-760-gaba12e0 phonon/phonon 4.5.0-100-ge66be3f phonon/phonon-gstreamer 4.5.1-105-gfb62ed7 phonon/phonon-vlc 0.4.0-54-ge747076 vlc 1.1.10 Thank you for the valuable feedback. Confirmed still happening with current build. $ git describe v2.4.0-1067-gb05b8fb $ amarok --version Qt: 4.8.0 KDE Development Platform: 4.7.3 (4.7.3) Amarok: 2.4-GIT Jonathan: can you still reproduce this with Amarok 2.5 or current 2.5-git? Sorry, still does not seem to be 100% working. insert CD while Amarok is running => Audio CD appears in collection, tracks can be dragged to playlist, plays correctly with no apparent problems. insert CD then start Amarok => Audio CD appears in collection and can be played as above. * This is now working (it didn't work before) * start play from the Plasma device notifier or with the command 'amarok -d --cdplay' when Amarok is not running => crash as above, same backtrace modulo line numbers. start play from the Plasma device notifier or with the command 'amarok -d --cdplay' while Amarok is already running => no crash, but nothing else happens amarok v2.5.0-220-g141e901 phonon v4.6.0-26-gc7c200b phonon-gstreamer v4.6.0-13-g18cacbe phonon-vlc v0.5.0-17-gfd70afe $ amarok --version Qt: 4.8.2 KDE Development Platform: 4.8.2 (4.8.2) Amarok: 2.5-GIT $ vlc --version VLC media player 1.1.13 The Luggage (revision exported) Phonon backend: vlc (but same happens with gstreamer) (In reply to comment #8) > Sorry, still does not seem to be 100% working. ... > start play from the Plasma device notifier or with the command 'amarok -d > --cdplay' while Amarok is already running => no crash, but nothing else > happens That last option can't work as you can't run two instances of Amarok without an additional option. I can not reproduce this crash in Amarok 2.6 or 2.6-git of today. What doesn't work indeed is that you can't launch a CD to play from the command line or the plasma notifier I can't reproduce this crash but when I run amarok 2.8.0 with --cdplay it doesn't add songs from cd to playlist. Git commit 212b693c210f673e9dac91d4c62995e30ad5ecbd by Tuomas Nurmi. Committed on 29/03/2024 at 23:36. Pushed by nurmi into branch 'master'. Fix --cdplay command line option First, avoid touching MainWindow member variables before MainWindow is constructed to avoid immediate segfault. Second, don't try casting cd collection to MemoryCollection, which it doesn't inherit (at least anymore). Casting to MediaDeviceCollection actually works. Hard to tell since when this has been broken, but most of relevant code seems to be last changed in 2010 or earlier, so possibly a while. Related: bug 482463 M +2 -2 ChangeLog M +8 -4 src/MainWindow.cpp https://invent.kde.org/multimedia/amarok/-/commit/212b693c210f673e9dac91d4c62995e30ad5ecbd |