summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin McPherson <justin.mcpherson@nokia.com>2009-11-11 03:56:04 (GMT)
committerJustin McPherson <justin.mcpherson@nokia.com>2009-11-12 05:39:38 (GMT)
commitefc566799797a9088628ac21d83ee2d39805fabc (patch)
tree23253da976218d4e31d44d5268d8b05ea1ecf9f7
parentcc6406d4971c5656fc4b3eb53f96058a9640c6f7 (diff)
downloadQt-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.cpp34
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."));