diff options
author | Justin McPherson <justin.mcpherson@nokia.com> | 2009-11-11 03:56:04 (GMT) |
---|---|---|
committer | Justin McPherson <justin.mcpherson@nokia.com> | 2009-11-12 05:39:38 (GMT) |
commit | efc566799797a9088628ac21d83ee2d39805fabc (patch) | |
tree | 23253da976218d4e31d44d5268d8b05ea1ecf9f7 | |
parent | cc6406d4971c5656fc4b3eb53f96058a9640c6f7 (diff) | |
download | Qt-efc566799797a9088628ac21d83ee2d39805fabc.zip Qt-efc566799797a9088628ac21d83ee2d39805fabc.tar.gz Qt-efc566799797a9088628ac21d83ee2d39805fabc.tar.bz2 |
Gstreamer: Added DVD support
Intergrated KDE change 1040729 by nlecureuil
This bug was already fixed in Qt phonon repo in exactly the same
way, but KDE change is applyed to keep phonon sources in sync.
Reviewed-by: Dmytro Poplavskiy
-rw-r--r-- | src/3rdparty/phonon/gstreamer/mediaobject.cpp | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/3rdparty/phonon/gstreamer/mediaobject.cpp b/src/3rdparty/phonon/gstreamer/mediaobject.cpp index f312b6f..eafaeec 100644 --- a/src/3rdparty/phonon/gstreamer/mediaobject.cpp +++ b/src/3rdparty/phonon/gstreamer/mediaobject.cpp @@ -344,7 +344,7 @@ void MediaObject::cb_pad_added(GstElement *decodebin, Q_UNUSED(decodebin); GstPad *decodepad = static_cast<GstPad*>(data); gst_pad_link (pad, decodepad); - gst_object_unref (decodepad); + //gst_object_unref (decodepad); } /** @@ -928,23 +928,27 @@ void MediaObject::setSource(const MediaSource &source) setError(tr("Could not open media source.")); break; - case MediaSource::Disc: // CD tracks can be specified by setting the url in the following way uri=cdda:4 + case MediaSource::Disc: { - QUrl url; + QString mediaUrl; switch (source.discType()) { - case Phonon::Cd: - url = QUrl(QLatin1String("cdda://")); - break; - case Phonon::Dvd: - url = QUrl(QLatin1String("dvd://")); - break; - case Phonon::Vcd: - url = QUrl(QLatin1String("vcd://")); - break; - default: - break; + case Phonon::NoDisc: + qWarning() << "I should never get to see a MediaSource that is a disc but doesn't specify which one"; + return; + case Phonon::Cd: // CD tracks can be specified by setting the url in the following way uri=cdda:4 + mediaUrl = QLatin1String("cdda://"); + break; + case Phonon::Dvd: + mediaUrl = QLatin1String("dvd://"); + break; + case Phonon::Vcd: + mediaUrl = QLatin1String("vcd://"); + break; + default: + qWarning() << "media " << source.discType() << " not implemented"; + return; } - if (!url.isEmpty() && createPipefromURL(url)) + if (!mediaUrl.isEmpty() && createPipefromURL(QUrl(mediaUrl))) m_loading = true; else setError(tr("Could not open media source.")); |