[Interest] QAudioDecoder: defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.audiodecode"

Till Oliver Knoll till.oliver.knoll at gmail.com
Fri Mar 22 20:01:47 CET 2013


Hi,

I am trying to learn OpenAL. For that I need to read simple *.wav files
and thought the QAudioDecoder (Qt 5.0.1 - OS X 10.8.2) would be a
perfect fit.

I have:

  m_audioDecoder = new QAudioDecoder;
  qDebug("Error: %s", qPrintable(m_audioDecoder->errorString()));
  connect(m_audioDecoder, SIGNAL(bufferReady()),
            this, SLOT(handleBufferReady()));
  ...
  // select WAV file
  ...
  m_audioDecoder->setSourceFilename(filePath);
  m_audioDecoder->start();
  ...

When I run my application from within Qt Creator (in debug mode) I
immediatelly get on the console ("Application Output"):

  defaultServiceProvider::requestService(): no service found for -
"org.qt-project.qt.audiodecode"

Also the qDebug statement prints out:

  Error: The QAudioDecoder object does not have a valid service

and when I execute start() my slot handleBufferReady() is hence never
called.


I also get lots of error messages upon application startup, such as

objc[747]: Class TransparentQTMovieView is implemented in both
/Users/tknoll/Qt5.0.1/5.0.1/clang_64/plugins/mediaservice/libqqt7engine.dylib
and
/Users/tknoll/Qt5.0.1/5.0.1/clang_64/plugins/mediaservice/libqqt7engine_debug.dylib.
One of the two will be used. Which one is undefined.
objc[747]: Class HiddenQTMovieView is implemented in both
/Users/tknoll/Qt5.0.1/5.0.1/clang_64/plugins/mediaservice/libqqt7engine.dylib
and
/Users/tknoll/Qt5.0.1/5.0.1/clang_64/plugins/mediaservice/libqqt7engine_debug.dylib.
One of the two will be used. Which one is undefined.
objc[747]: Class QTMovieObserver is implemented in both
/Users/tknoll/Qt5.0.1/5.0.1/clang_64/plugins/mediaservice/libqqt7engine.dylib
and
/Users/tknoll/Qt5.0.1/5.0.1/clang_64/plugins/mediaservice/libqqt7engine_debug.dylib.
One of the two will be used. Which one is undefined.

(and more)


AFAIK I never had problems with previous Qt Creator / Qt 4.8 versions
and debug/release plugins being mixed up - is that a known problem with
the stock binary Qt 5.0.1 distribution for Mac? Do I have to manually
move e.g. the _debug plugins into a dedicated folder, setup/modify the
plugin search path within my app and make sure that only those are
picked up when running my application in debug mode? Or is there a flag
in Qt Creator or some DEFINE I have to set?

At this point I did not any deployment (App Bundle), I simply start my
application from a fresh Qt 5.0.1 / Qt Creator installation.

By the way this is a simple QWidget based application as created from
the Qt Creator "MainWindow" template. I link with the OpenAL framework,
in case that matters (but I don't get any OpenAL related errors up to
that point, AFAICT).

The generated and modified *.pro file:

QT       += core gui multimedia

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = MyOpenAl
TEMPLATE = app


SOURCES += main.cpp\
        MainWindow.cpp

HEADERS  += MainWindow.h

FORMS    += MainWindow.ui

LIBS += -framework OpenAL


Also I get lots of entries such as:

Could not find object file
"/Users/bld.qt/bamboo-agent-home/xml-data/build-dir/DQTC-RELEASE5LGPL-OSX106/qt5_workdir/w/s/qtmultimedia/src/plugins/audiocapture/.obj/debug-shared/audioencodercontrol.o"
- no debug information available for "audioencodercontrol.cpp".

I mean several dozens such entries (for several source files - they
probably don't harm, but are a bit annoying (I never had such console
output with Qt 4.x when debugging my applications, AFAICR).



Unrelated: it seems that (since Qt 4.7 or Qt 4.8 - but it was fixed in
between and is an ever re-occuring regression) in each binary Qt
distribution there seems to be another folder "missing" when linking my
own application:

  ld: warning: directory not found for option
'-F/Users/tknoll/Qt5.0.1/5.0.1/clang_64/qtbase/lib'

Yes, that directory really does not exists (and my application links
just fine) - but still qmake seems to insist to add it to the linker
include paths. Harmless, but a little bit annoying ;)



More information about the Interest mailing list