diff --git a/src/devices/cddasongloader.cpp b/src/devices/cddasongloader.cpp index 9a584b10b..9923e1636 100644 --- a/src/devices/cddasongloader.cpp +++ b/src/devices/cddasongloader.cpp @@ -35,7 +35,7 @@ CddaSongLoader::~CddaSongLoader() { QUrl CddaSongLoader::GetUrlFromTrack(int track_number) const { if (url_.isEmpty()) { - return QUrl(QString("cdda://%1").arg(track_number)); + return QUrl(QString("cdda://%1a").arg(track_number)); } else { return QUrl(QString("cdda://%1/%2").arg(url_.path()).arg(track_number)); } diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp index bff43aeac..43f988fe5 100644 --- a/src/engines/gstenginepipeline.cpp +++ b/src/engines/gstenginepipeline.cpp @@ -181,9 +181,16 @@ bool GstEnginePipeline::ReplaceDecodeBin(const QUrl& url) { spotify_server, "StartPlayback", Qt::QueuedConnection, Q_ARG(QString, url.toString()), Q_ARG(quint16, port)); } else { + QByteArray uri; + if (url.scheme() == "cdda") { + QString str = url.toString(); + str.remove(str.lastIndexOf(QChar('a')), 1); + uri = str.toUtf8(); + } else { + uri = url.toEncoded(); + } new_bin = engine_->CreateElement("uridecodebin"); - g_object_set(G_OBJECT(new_bin), "uri", url.toEncoded().constData(), - nullptr); + g_object_set(G_OBJECT(new_bin), "uri", uri.constData(), nullptr); CHECKED_GCONNECT(G_OBJECT(new_bin), "drained", &SourceDrainedCallback, this); CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this);