summaryrefslogtreecommitdiffstats
path: root/src/multimedia
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fixed QVideoSurfaceFormat::isValid()Dmytro Poplavskiy2010-07-221-1/+1
| | | | | | | Trivial fix, valid formats have pixel format != Invalid, not ==. Task-number: QTBUG-12337 Reviewed-by: Andrew den Exter
* 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-244-40/+36
|\
| * 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
| * Fixed memory lean in QImageVideoBuffer and QMemoryVideoBuffer.Dmytro Poplavskiy2010-06-181-0/+3
| | | | | | | | | | | | | | QAbstractVideoBufferPrivate was intended to have virtual desctructor, otherwise subclasses are not deleted properly. Reviewed-by: Andrew den Exter
* | 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
* 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
* 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
* | Document Symbian platform security requirements on Qt APIsFrans Englich2010-04-121-0/+18
|/ | | | | | | | | Work done jointly by Gareth and me. Yields no qdoc errors. Task-number: QTBUG-9342 Task-number: QTBUG-9120 Reviewed-by: Gareth Stockwell Reviewed-by: David Boddie
* Corruption in data captured by QAudioInputKurt Korbatits2010-04-091-2/+2
| | | | | | | | Increased default buffer size and period size for windows. 11025monoS16LE was choppy, needed bigger periods. Task-number:QTBUG-9101 Reviewed-by:Derick Hawcroft
* Just one (static) waveInCriticalSection but multiple QAudioInput toKurt Korbatits2010-04-094-11/+11
| | | | | | | record from different soundcards Task-number:QTBUG-9221 Reviewed-by:Andrew den Exter
* Mismatch between reported and actual supported sample rates inKurt Korbatits2010-04-071-11/+63
| | | | | | | | | QtMultimedia backend for Windows -Added 8000 as long as another frequency is available. -options available changed from hard-coded to detected options. Task-number:QTBUG-9100 Reviewed-by:Derick Hawcroft
* QAudioInput: possible change of state without emitting stateChange()Kurt Korbatits2010-04-062-2/+1
| | | | | | | | Removed state change from close() function, should be set by caller depending on context. Task-number:QTBUG-9357 Reviewed-by:Dmytro Poplavskiy
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-staging into ↵Qt Continuous Integration System2010-03-241-2/+2
|\ | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-staging: Calculate period size correctly.
| * Calculate period size correctly.Justin McPherson2010-03-241-2/+2
| | | | | | | | Reviewed-by:Dmytro Poplavskiy
* | Symbian QAudioOutput::suspend() was resetting processedUSecs() to zeroGareth Stockwell2010-03-241-1/+2
|/ | | | | | | | | | | | | Because of the logic in the Symbian implementations of suspend() and processedUSecs(), the behaviour prior to this patch was as follows: - after calling suspend(), processedUSecs() reported zero - when resume() is called, the amount of silent padding data inserted into the output stream is equal to the amount of data played prior to suspend() The patch corrects the above defect, but introduces a new one, which is described in QTBUG-9322 Reviewed-by: trustme
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-staging into ↵Qt Continuous Integration System2010-03-163-30/+52
|\ | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-staging: Use AudioConverter when not preferred format. Handle values passed to setNotifyInterval more robustly. Make sure to check for a valid audioformat before open.
| * Use AudioConverter when not preferred format.Justin McPherson2010-03-162-26/+34
| | | | | | | | Reviewed-by:Dmytro Poplavskiy
| * Handle values passed to setNotifyInterval more robustly.Justin McPherson2010-03-162-2/+16
| | | | | | | | Reviewed-by:Dmytro Poplavskiy