summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/audiodecoder
diff options
context:
space:
mode:
authorbigbearzhu <jun.5.zhu@nokia.com>2012-04-12 15:40:32 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-13 03:28:21 +0200
commite91e63435f1db368aa55c0053f2bf658836d9c15 (patch)
treefb38445d7facade2ee0761d5d04daff0c4ad281e /src/plugins/gstreamer/audiodecoder
parente057fd9e8a68aa7ab5cbe3cfd8d6f9f787107dcd (diff)
Translated corresponding Gstreamer errors to QAudioDecoder::FormatError
Change-Id: I34834075ea98c163251e7a9aca1fb7bc486ad7e9 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/plugins/gstreamer/audiodecoder')
-rw-r--r--src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
index e18984519..752aeb548 100644
--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodersession.cpp
@@ -263,10 +263,33 @@ bool QGstreamerAudioDecoderSession::processBusMessage(const QGstreamerMessage &m
gchar *debug;
gst_message_parse_error(gm, &err, &debug);
QAudioDecoder::Error qerror = QAudioDecoder::ResourceError;
- if (err->domain == GST_STREAM_ERROR
- && (err->code == GST_STREAM_ERROR_DECRYPT || err->code == GST_STREAM_ERROR_DECRYPT_NOKEY)) {
- qerror = QAudioDecoder::AccessDeniedError;
+ if (err->domain == GST_STREAM_ERROR) {
+ switch (err->code) {
+ case GST_STREAM_ERROR_DECRYPT:
+ case GST_STREAM_ERROR_DECRYPT_NOKEY:
+ qerror = QAudioDecoder::AccessDeniedError;
+ break;
+ case GST_STREAM_ERROR_FORMAT:
+ case GST_STREAM_ERROR_DEMUX:
+ case GST_STREAM_ERROR_DECODE:
+ case GST_STREAM_ERROR_WRONG_TYPE:
+ case GST_STREAM_ERROR_TYPE_NOT_FOUND:
+ case GST_STREAM_ERROR_CODEC_NOT_FOUND:
+ qerror = QAudioDecoder::FormatError;
+ break;
+ default:
+ break;
+ }
+ } else if (err->domain == GST_CORE_ERROR) {
+ switch (err->code) {
+ case GST_CORE_ERROR_MISSING_PLUGIN:
+ qerror = QAudioDecoder::FormatError;
+ break;
+ default:
+ break;
+ }
}
+
processInvalidMedia(qerror, QString::fromUtf8(err->message));
g_error_free(err);
g_free(debug);