summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote branch 'origin/4.6' into 4.7-from-4.6Rohan McGovern2010-10-0410-40/+141
|\ | | | | | | | | Conflicts: src/multimedia/audio/qaudioinput_win32_p.cpp
| * Fix compile failure in QtMultimedia.Andrew den Exter2010-09-231-3/+3
| | | | | | | | | | | | | | QAudioFormat::sampleRate() and QAudioFormat::channelCount() weren't introduced until 4.7. Use frequency() and channels() instead. Reviewed-by: Justin McPherson
| * Verify the audio format before trying to open an audio device.Andrew den Exter2010-09-2210-35/+141
| | | | | | | | | | | | | | | | | | This was causing a crash on windows because the buffer and period sizes were worked out to 0 with an invalid sample size and dividing one by the other is division by 0. Task-number: QTMOBILITY-438 Reviewed-by: Justin McPherson
| * Implement QAudioInput::suspend() using CMMFDevSound::Stop()Gareth Stockwell2010-09-174-42/+73
| | | | | | | | | | | | | | | | | | | | | | As with playback mode, lack of support for CMMFDevSound::Pause() in DevSound's recording mode causes problems on some devices. Specifically, while QAudioInput works fine on the Nokia 5800, this bug was observed on the Nokia N8. This fix means that suspending and resuming audio input will work correctly on all devices. Task-number: QTBUG-13506 Reviewed-by: Derick Hawcroft
| * Discard buffer pointer when DevSound is stoppedGareth Stockwell2010-09-171-0/+1
| | | | | | | | | | Task-number: QTBUG-13504 Reviewed-by: Derick Hawcroft
| * Suppress overflow errors raised by Symbian DevSound during playbackGareth Stockwell2010-09-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QAudioOutput::suspend() and QAudioOutput::resume() are called repeatedly, with a short delay between each call, DevSound occasionally raises a KErrOverflow error. The backend previously translated this into QAudio::IOError, causing the object to transition into the QAudio::Stopped state. This error can be safely ignored, with playback resuming as soon as more audio data is provided to DevSound. This patch therefore suppresses the error. Task-number: QTBUG-13059 Reviewed-by: Derick Hawcroft
| * Discard empty buffer on call to QAudioOutput::resume()Gareth Stockwell2010-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The Symbian backend holds buffers which are passed to it from DevSound, exposing the memory of these buffers via the QIODevice interface. When QAudioOutput::resume() is called, the backend re-starts data flow by passing the buffer it holds back to DevSound. Previously, this would not happen if the buffer was empty, potentially causing playback to stall. This patch ensures that the buffer is always sent back to DevSound, and data flow therefore always resumes. Task-number: QTBUG-13059 Reviewed-by: Derick Hawcroft
| * Permit QAudioOutput::processedUSecs() to be called immediately after start()Gareth Stockwell2010-09-171-8/+9
| | | | | | | | | | | | | | | | | | | | If QAudioOutput::processedUSecs() is called very soon after QAudioOutput::start(), the DevSound instance owned by the Symbian backend may still be initializing. This patch causes the function to return zero, rather than failing an assertion. Task-number: QTBUG-13059 Reviewed-by: Derick Hawcroft
| * Discard all DevSound buffers held when QAudioInput::suspend() calledGareth Stockwell2010-09-171-4/+3
| | | | | | | | | | | | | | | | | | Resuming recording causes buffers previously provided to the client (via MDevSoundObserver::BufferToBeEmptied()) to be invalidated. The buffers therefore must be discarded when recording is suspended. Task-number: QTBUG-13058 Reviewed-by: Derick Hawcroft
| * Fixed buffer overrun in Symbian QAudioInput backendGareth Stockwell2010-09-171-4/+6
| | | | | | | | | | Task-number: QTBUG-13058 Reviewed-by: Derick Hawcroft
| * QAudioOutput(ALSA); Fix check for available devices.Justin McPherson2010-08-121-14/+17
| | | | | | | | | | | | | | ALSA can return a list of one empty item when no devices are available. Task-number: QTBUG-12690 Reviewed-by: Andrew den Exter
* | Implement QAudioInput::suspend() using CMMFDevSound::Stop()Gareth Stockwell2010-09-174-42/+73
| | | | | | | | | | | | | | | | | | | | | | As with playback mode, lack of support for CMMFDevSound::Pause() in DevSound's recording mode causes problems on some devices. Specifically, while QAudioInput works fine on the Nokia 5800, this bug was observed on the Nokia N8. This fix means that suspending and resuming audio input will work correctly on all devices. Task-number: QTBUG-13506 Reviewed-by: Derick Hawcroft
* | Discard buffer pointer when DevSound is stoppedGareth Stockwell2010-09-171-0/+1
| | | | | | | | | | Task-number: QTBUG-13504 Reviewed-by: Derick Hawcroft
* | Suppress overflow errors raised by Symbian DevSound during playbackGareth Stockwell2010-09-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When QAudioOutput::suspend() and QAudioOutput::resume() are called repeatedly, with a short delay between each call, DevSound occasionally raises a KErrOverflow error. The backend previously translated this into QAudio::IOError, causing the object to transition into the QAudio::Stopped state. This error can be safely ignored, with playback resuming as soon as more audio data is provided to DevSound. This patch therefore suppresses the error. Task-number: QTBUG-13059 Reviewed-by: Derick Hawcroft
* | Discard empty buffer on call to QAudioOutput::resume()Gareth Stockwell2010-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The Symbian backend holds buffers which are passed to it from DevSound, exposing the memory of these buffers via the QIODevice interface. When QAudioOutput::resume() is called, the backend re-starts data flow by passing the buffer it holds back to DevSound. Previously, this would not happen if the buffer was empty, potentially causing playback to stall. This patch ensures that the buffer is always sent back to DevSound, and data flow therefore always resumes. Task-number: QTBUG-13059 Reviewed-by: Derick Hawcroft
* | Permit QAudioOutput::processedUSecs() to be called immediately after start()Gareth Stockwell2010-09-171-8/+9
| | | | | | | | | | | | | | | | | | | | If QAudioOutput::processedUSecs() is called very soon after QAudioOutput::start(), the DevSound instance owned by the Symbian backend may still be initializing. This patch causes the function to return zero, rather than failing an assertion. Task-number: QTBUG-13059 Reviewed-by: Derick Hawcroft
* | Discard all DevSound buffers held when QAudioInput::suspend() calledGareth Stockwell2010-09-171-4/+3
| | | | | | | | | | | | | | | | | | Resuming recording causes buffers previously provided to the client (via MDevSoundObserver::BufferToBeEmptied()) to be invalidated. The buffers therefore must be discarded when recording is suspended. Task-number: QTBUG-13058 Reviewed-by: Derick Hawcroft
* | Fixed buffer overrun in Symbian QAudioInput backendGareth Stockwell2010-09-171-4/+6
| | | | | | | | | | Task-number: QTBUG-13058 Reviewed-by: Derick Hawcroft
* | QAudioOutput(ALSA); Fix check for available devices.Justin McPherson2010-08-121-14/+17
| | | | | | | | | | | | | | ALSA can return a list of one empty item when no devices are available. Task-number: QTBUG-12690 Reviewed-by: Andrew den Exter
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-07-158-40/+196
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/3rdparty/webkit/WebCore/bridge/qt/qt_instance.cpp src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.h src/3rdparty/webkit/WebCore/page/FrameView.cpp src/3rdparty/webkit/WebCore/page/FrameView.h src/3rdparty/webkit/WebCore/platform/ScrollView.cpp src/3rdparty/webkit/WebCore/platform/ScrollView.h src/corelib/plugin/quuid.cpp src/gui/dialogs/qfontdialog.cpp src/multimedia/audio/qaudiodevicefactory.cpp src/opengl/qgl.cpp src/openvg/qpaintengine_vg.cpp tests/auto/qxmlquery/tst_qxmlquery.cpp
| * Don't try and use QFactoryLoader when relevant features are turned off.Justin McPherson2010-07-071-4/+15
| | | | | | | | | | Task-number: QTBUG-11900 Reviewed-by: Andrew den Exter
| * Segmentation Fault in QAudioOutputPrivate::freeBlocks() caused by wrongKurt Korbatits2010-07-022-2/+2
| | | | | | | | | | | | | | pointer increment Task-number:QTBUG-11883 Reviewed-by:Andrew den Exter
| * QAudioInput push mode does not workKurt Korbatits2010-06-292-15/+40
| | | | | | | | | | Task-number:QTBUG-11755 Reviewed-by:Derick Hawcroft
| * Fix compile error on win32 with multimedia lib.Kurt Korbatits2010-06-251-3/+2
| | | | | | | | Reviewed-by:TrustMe
| * Fix compile err with win2005 compiler for multimedia lib.Kurt Korbatits2010-06-251-1/+2
| | | | | | | | Reviewed-by:TrustMe
| * Fixed compile error in multimedia moduleKurt Korbatits2010-06-241-0/+4
| | | | | | | | | | | | WAVE_FORMAT_EXTENSIBLE not in v6.0 ms SDK only in v6.1's Reviewed-by:TrustMe
| * Fixed compile error introduced by win32 surround sound support change.Kurt Korbatits2010-06-241-1/+42
| | | | | | | | Reviewed-by:Andrew den Exter
| * Added surround sound support to alsa low-level audio backend.Kurt Korbatits2010-06-242-0/+51
| | | | | | | | | | Task-number:QTBUG-11586 Reviewed-by:Derick Hawcroft
| * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-staging into 4.6Kurt Korbatits2010-06-243-40/+33
| |\
| * | Added surround sound support to win32 low-level audio backend.Kurt Korbatits2010-06-242-9/+50
| | | | | | | | | | | | | | | Task-number:QTBUG-11586 Reviewed-by:Andrew den Exter
* | | Merge branch '4.6-s60' into 4.7-s60axis2010-06-243-40/+33
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | Conflicts: src/3rdparty/phonon/qt7/mediaobject.mm src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog src/plugins/phonon/mmf/mmf.pro
| * | Audio(osx); Fix period size calculation.Justin McPherson2010-06-221-13/+2
| | | | | | | | | | | | | | | Task-number: QTBUG-8878 Reviewed-by:Dmytro Poplavskiy
| * | Audio(osx); refactor input period conversionJustin McPherson2010-06-221-24/+25
| | | | | | | | | | | | Reviewed-by:Dmytro Poplavskiy
| * | Audio(osx); Fix audio format converters.Justin McPherson2010-06-221-3/+6
| |/ | | | | | | Reviewed-by:Dmytro Poplavskiy
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into qt-4.7-from-4.6Simon Hausmann2010-06-161-2/+2
|\ \ | |/ | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebCore/ChangeLog
| * Audio (osx); In pull mode emit readyRead() for each period received.Justin McPherson2010-06-161-2/+2
| | | | | | | | | | Task-number: QTBUG-10009 Reviewed-by:Dmytro Poplavskiy
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-05-252-2/+71
|\ \ | |/ | | | | | | | | | | | | Conflicts: demos/spectrum/app/app.pro src/gui/egl/qegl.cpp tests/auto/qhttpnetworkconnection/qhttpnetworkconnection.pro tests/auto/qmenu/tst_qmenu.cpp
| * QAudioDeviceInfo::nearestFormat() consistent across all platformsKurt Korbatits2010-05-191-1/+61
| | | | | | | | | | Task-number:QTBUG-10760 Reviewed-by:Justin McPherson
| * The documentation for processedUSecs() is ambiguousKurt Korbatits2010-05-191-1/+10
| | | | | | | | | | Task-number:QTBUG-10759 Reviewed-by:Justin McPherson
| * Merge branch '4.6' of S:\sync\git\trolltech\qt-s60-public.git\ into 4.6Gareth Stockwell2010-05-112-0/+20
| |\
| | * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-05-108-453/+649
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: Return correct formats supported lists from Symbian audio backend
| | * | Update to low-level audio documentation.Kurt Korbatits2010-05-092-0/+20
| | | | | | | | | | | | | | | | Reviewed-by:Gareth Stockwell
| * | | Fixed typo in QAudioInput bufferSize documentationGareth Stockwell2010-05-111-2/+2
| | |/ | |/| | | | | | | | | | | | | | | | Docs stated that the bufferSize was a value in milliseconds. Corrected this to bytes. Reviewed-by: trustme
| * | Return correct formats supported lists from Symbian audio backendGareth Stockwell2010-05-108-453/+649
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * QAudioDeviceInfoInternal functions now call CMMFDevSound::InitializeL() The root cause of QTBUG-10205 was that CMMFDevSound::IntitializeL() was not called before CMMFDevSound::Capabilities(), resulting in incorrect values being returned by QAudioDeviceInfo 'supported format' functions. Resolving this was not straightforward because, while QAudioDeviceInfo is an entirely synchronous API, CMMFDevSound::InitializeL() is an asynchronous function. The changes therefore include a while(QApplication::instance()->processEvents(...)) loop, which is not a particularly elegant solution. * Encapsulated all interaction with CMMFDevSound API in DevSoundWrapper class Because the original bug fix required QAudioDeviceInfoInternal to call CMMFDevSound::InitializeL(), MDevSoundObserver callback functions had to be implemented in QAudioDeviceInfoInternal. Rather than pollute QAudioDeviceInfoInternal, a new class, DevSoundWrapper, was created which encapsulates all interaction with CMMFDevSound, and therefore implements MDevSoundObserver. QAudioInputPrivate and QAudioOutputPrivate now call CMMFDevSound via DevSoundWrapper, with only the required MDevSoundObserver callbacks forwarded on via signals. After fixing this bug, running the auto test suites exposed a number of regressions which had been introduced by the necessary refactoring described above; this commit therefore also includes fixes for the following: * No stateChanged() signal emitted during DevSound initialization Previously, QAudioInput / QAudioOutput would emit a state change from StoppedState to IdleState or ActiveState, as soon as start() was called. In the case where the requested format is subsequently found to be unsupported, in addition to the error() value being set to OpenError, a second state change would be emitted, back to StoppedState. This is not the behaviour exhibited by the other platforms' backends, and therefore caused an auto test failure. Now, the backend only transitions to IdleState / ActiveState on successful initialization. * Stop emitting notify() signal when notifyInterval is set to zero * Call CMMFDevSound::RecordInitL() from QAudioInput::resume() if no buffer is currently held This is necessary in order to restart the data flow. * Call CMMFDevSound::BufferFilled() from QAudioOutput::resume() in push mode The auto test does not resume pushing data to QAudioOutput until 'bytesFree() >= periodSize()' becomes true. Because, for the Symbian backend, periodSize() == bufferSize(), this condition is only met when a new buffer is provided by DevSound via BufferToBeFilled(). Task-number: QTBUG-10205
| * win32 backend for low-level audio fixesKurt Korbatits2010-04-264-78/+67
| | | | | | | | | | | | | | | | - fix deadlock with QAudioInput (win32) backend - changed win32 backend to use QMutex lock - setNotifyInterval(0) to disable notify() signal Reviewed-by:Derick Hawcroft
| * Disable notify() signal when setNotifyInterval is zero in alsa backend.Kurt Korbatits2010-04-232-14/+4
| | | | | | | | Reviewed-by:Derick Hawcroft
| * QAudioOutput always uses default output deviceKurt Korbatits2010-04-211-4/+3
| | | | | | | | | | Task-number:QTBUG-9766 Reviewed-by:Derick Hawcroft
| * Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-staging into ↵Qt Continuous Integration System2010-04-192-2/+4
| |\ | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-staging: Bug in QAudioOutput: Invalid use of "waveOutUnprepareHeader"
| | * Bug in QAudioOutput: Invalid use of "waveOutUnprepareHeader"Kurt Korbatits2010-04-192-2/+4
| | | | | | | | | | | | | | | | | | | | | Fixed freeBlocks func in both input and output Task-number:QTBUG-9875 Reviewed-by:Andrew den Exter
| * | Fixed compiler warningGareth Stockwell2010-04-151-2/+2
| | | | | | | | | | | | Reviewed-by: trustme