Till Oliver Knoll
2013-03-22 19:01:47 UTC
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 ;)
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 ;)