diff options
author | bigbearzhu <jun.5.zhu@nokia.com> | 2012-04-12 15:40:32 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-13 03:28:21 +0200 |
commit | e91e63435f1db368aa55c0053f2bf658836d9c15 (patch) | |
tree | fb38445d7facade2ee0761d5d04daff0c4ad281e /src/plugins/gstreamer/audiodecoder | |
parent | e057fd9e8a68aa7ab5cbe3cfd8d6f9f787107dcd (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.cpp | 29 |
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); |