summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* winrt: Add camera serviceAndrew Knight2014-08-3016-4/+2375
| | | | | | | | | | | | | | | This adds a basic camera service with viewfinder (video renderer based), still image capture, and device selection support. Runtime apps must set the "webcam" and "microphone" device capabilities in order to access the hardware. This can be done by adding the following to the .pro file: WINRT_MANIFEST.capabilites_device += webcam microphone [ChangeLog] Enabled basic camera support in the winrt backend. Change-Id: If4f963ef645d93c757ae23aec9a9c8aae122324f Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Fix little typo in QCameraExposureControlSamuel Gaist2014-08-261-1/+1
| | | | | | | Should not shuld Change-Id: I97f7e6ce322dc73bc3b1775a336493d95da848a2 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Add a declaration to QIODeviceThiago Macieira2014-08-251-0/+2
| | | | | | | | | | It isn't getting #included nor forward-declared at this point. That was only an indirect inclusion. qaudiosystem.h:78:24: error: ‘QIODevice’ has not been declared Change-Id: I5b9121b693bb06414638e8a4664115597da7466f Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* winrt: Add media playback serviceAndrew Knight2014-08-2511-1/+1917
| | | | | | | | | | | | This introduces a MediaPlayer service based on the MFEngineEx API. Only scene graph video rendering is supported at this time. The video renderer control is abstracted in order to provide a base for future video nodes which do not source their content from the MF engine. [ChangeLog] Media player support was added to the winrt backend. Change-Id: I8155a1030466ea352fad0a87d1ae97a88983760c Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Introducing Windows Runtime backendAndrew Knight2014-08-255-0/+148
| | | | | | | | | | | | | | | This lays the foundation for using supported APIs in Media Foundation for the Windows Runtime family of devies. Due to the narrowing of supported MF classes, as well as classes that are only available on Windows 8 and newer, this backend is built as a new plugin rather than a modification to the existing wmf plugin. [ChangeLog] Added a new backend plugin, winrt, to support multimedia within Windows Runtime OSes. Change-Id: If64ac417127b7400baa5e56fe02b65f909a4dece Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Update license headers and add new license filesAntti Kokko2014-08-24795-15099/+8739
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: Ied06887225df341064c12bcc14c259ae74116f2e Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Set volume only if volume was explicitly set.Robin Burchell2014-08-042-3/+17
| | | | | | Change-Id: I0d5abab0ffbf61a74c59ce240fd39e756479026b Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com> Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Resource policy support for QSoundEffect.Robin Burchell2014-08-042-1/+47
| | | | | | | | | | | | | | | | | | Since sound effects are something short and mixed with other audio, do not acquire resources explicitly. Follow the resources availability information to determine when it is ok to play the sound effects. When client has registered itself to resource manager, client's streams are classified properly. If no higher priority client has acquired the resources, isAvailable() is true, and sound effects can be played. We do not explicitly acquire the resources, since then other clients with the same resource class would lose the resources, thus not possible to have second client play music with QMediaPlayer class while our client would just want to play simple sound effects. Change-Id: Ib5589349dca6900a8bee616b8ad77e7cb5ec9533 Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com> Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Only call pa_cvolme set on stream creation if volume explicitly set.Robin Burchell2014-08-042-7/+22
| | | | | | | | | | | Streams without a custom volume set use suitable volume selected by the PulseAudio server. This is usually the correct choice, since then stream-restore module can apply old volume to the stream. Also with Sailfish explicitly setting the volume to streams breaks system volume. Change-Id: I75f5bf4e7aaafb4bd55510f5ac4ddf03767d494b Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com> Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Implement more full resource policy features.Robin Burchell2014-08-043-18/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Handle released by manager properly. Signal resourcesReleasedByManager is different from signal handleResourcesLost and needs to be handled separately. Signal handleResourcesLost means some other client has acquired the resources, thus the resources are lost from us, but if the other client frees the resources, we will automatically get the resources back. With resourcesReleasedByManager we lose the resources, and resource manager releases them as well (same as if client would call release()), so only way to re-acquire resources in latter case is calling acquire() again. This distinction is useful for example in cases where user is listening to music with headphones connected and removes the headphones, then the music player shouldn't continue playback until user requests so. But if user is listening to music when phone call is received, it is convenient to resume the playback automatically after the call. * Implement availability changed. Availability changed is information whether resources the client is interested in are available (no higher priority resource classes have acquired the resources). * Implement missing resources released. Emit resourcesReleased signal when receiving corresponding signal from libresource-qt. * Add mechanism to change used resource class. Check for environment for special variable, and if the variable has proper data, use that as the resource class. Can be set with for example qputenv("NEMO_RESOURCE_CLASS_OVERRIDE", "game"); Change-Id: I8e92f40cc5c01b6b94f54c3fa0f7a07775e87df0 Done-with: Juho Hämäläinen <juho.hamalainen@tieto.com> Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* QMediaNetworkPlaylistProvider: Upon error parsing, stop parsing.Robin Burchell2014-08-041-0/+2
| | | | | | | | | | | | | When an error is found parsing a playlist, stop parsing. This will also prevent the emission of the "loaded" signal when the parser finishes. Some of the newly added testcases do not yet pass because the parser is overly strict. These improvements are being tracked in QTBUG-40515. Change-Id: I5c96b7eb488996f28eebd7b6c643940de8e2e0b9 Done-by: Andres Gomez <agomez@igalia.com> Task-number: QTBUG-40513 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Fix build with Mesa EGLThiago Macieira2014-07-311-0/+4
| | | | | | | Mesa EGL headers include X11 headers, which may #define Bool. Change-Id: I17379c24bfb7bac809b92f4c2a41298de00a972c Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/devFrederik Gladhorn2014-07-291-1/+3
|\
| * Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-291-1/+3
| |\ | | | | | | | | | Change-Id: I6091afdf3d4ab71462dc42ef29e001ccd8ca627b
| | * Ensure the system libraries are linked against when -no-opengl is usedAndy Shaw2014-07-241-1/+3
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-40406 Change-Id: I1e166a5003f524cdeb4a53d78a382a6b11719b6a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | | Support dynamic opengl32 - ANGLE switching on WindowsLaszlo Agocs2014-07-2912-102/+320
|/ / | | | | | | | | | | Change-Id: I38532db3ab0ad4fcb8dbabd0cbb528f7d8e4ba06 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Add missing registration of CameraViewfinder QML type.Yoann Lopes2014-07-251-0/+3
| | | | | | | | | | Change-Id: If4eedd6298731953a3f86c86f0e61b850ee263aa Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-2234-1848/+1215
|\| | | | | | | Change-Id: If8e5050901a320f1ff692e842f173c0062bed5fe
| * CoreAudio: make sure audio stops playing when the device is muted.Yoann Lopes2014-07-161-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | The audio session's category was set to Playback, which implies that audio is still audible even after setting the device to silent mode or locking the screen. This shouldn't be the default behavior. We now set it to Ambient, which preserves mixing with other apps but makes sure sound is turned off when it should. Task-number: QTBUG-39036 Change-Id: Ic36668d73f3179dc38b41023e380e15f8c8517e0 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * Android: Make sure we check and clear exceptions from the camera.Christian Strømme2014-07-143-36/+59
| | | | | | | | | | | | | | | | | | | | In several places we where ignoring the fact that we might get an exception from the camera code on Android. Failing to clear them will cause the application to to terminate. Task-number: QTBUG-39425 Change-Id: Idfe40e1749f54d551d37dae25912d9ddbc3da01e Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| * DirectShow: Refactor camera backend.Yoann Lopes2014-07-1115-1417/+615
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Almost entire rewrite of the camera backend. It doesn't provide new features but is more stable and behave as it should. - Correctly report camera state and status - Correctly report if the camera is ready to capture - Emit imageExposed() signal - Save captured images in an appropriate directory - Images can be captured even without a viewport - Better error handling Removed the custom QVideoWidgetControl as it doesn't provide anything more than the QVideoWidget's renderer control fallback. Task-number: QTBUG-33782 Change-Id: I9baf6f83e7c69619f20a101921f7865a1c90d5e4 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * Android: fix setting camera parameters from QML.Yoann Lopes2014-07-108-136/+189
| | | | | | | | | | | | | | | | | | | | | | | | We were ignoring new parameter values when the camera was not loaded. All QML properties that were set at initialization time were therefore ignored since the camera is not loaded at that point. We now store all camera parameters and apply them once the camera is loaded. Task-number: QTBUG-39307 Change-Id: If66d768941c25cede2aea1b48fb928c4735c10f8 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * AVFoundation: correctly pass output URLs to AVCaptureMovieFileOutput.Yoann Lopes2014-07-101-4/+2
| | | | | | | | | | | | | | | | | | | | The URL string passed to NSURL was not fully encoded, causing the recorder to start with a nil URL, leading to an exception. We now use QURL::toNSURL() which automatically encode the URL. Task-number: QTBUG-38668 Change-Id: I06bf881a0a25fb37efd8784ebf518c8b90ecc6b4 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * PulseAudio: make plugin more robust.Yoann Lopes2014-07-106-253/+347
| | | | | | | | | | | | | | | | | | | | | | | | | | Handle more thoroughly error cases, such as when the PulseAudio daemon does not respond or terminates while QAudioInput/QAudioOutput is active, in which cases it used to crash or hang. We now correctly emit the error signal and change the state when errors occur. Task-number: QTBUG-29742 Change-Id: I173d35aece60d96e578785e1522cf78b24dcb8b8 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* | Add an EGLImageKHR video node.Andrew den Exter2014-07-188-1/+370
| | | | | | | | | | | | | | | | [ChangeLog] Added a VideoNode plugin which allows direct rendering of EGLImageKHR backed video frames. Change-Id: I36fb6fd27680dbe9c71a446bbd54df95488725f8 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | New camera selection API in QML.Yoann Lopes2014-07-1712-39/+637
| | | | | | | | | | | | | | | | | | | | | | | | Also added a new QtMultimedia global object which makes it possible to retrieve the list of available cameras. It can be extended with new utility functions in the future. Includes documentation, example and auto tests. Task-number: QTBUG-23770 Change-Id: Ifea076329c3582ea99246ee1131853344a7b773f Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* | Provide face and orientation info from gstreamer camera backend.Andrew den Exter2014-07-1215-284/+446
| | | | | | | | | | | | | | | | | | | | Cleans up duplicate device enumeration code so the devices listed by the QMediaServiceProviderPlugin are the same as those in the QVideoInputDeviceControl and includes face and orientation information if available. Change-Id: Iaa4c303c973bcf3e0f7c8c2fd7a7de629bccec86 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-1012-60/+39
|\| | | | | | | Change-Id: I38ebcb3da0e4d2acc9e7108c9579ea98323864e0
| * Fix documentation for QML Camera's cameraStateChanged signal.Yoann Lopes2014-07-081-2/+2
| | | | | | | | | | | | | | | | The signal name is 'cameraStateChanged' but was documented as 'stateChanged'. Change-Id: I80279613b55105a925acafc21f67c4a0917906af Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * QAlsaAudioOutput remove async callback.Dyami Caliri2014-07-042-33/+1
| | | | | | | | | | | | | | | | | | | | The async callback mechanism in ALSA is prone to deadlock. There was already a timer fallback mechanism that appears to be sufficient. Task-number: QTBUG-39677 Change-Id: I44b59e6b16eea1c9c4eeb6967335ce4f468cf3c4 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| * QAlsaAudioInput remove unused async_handler member.Dyami Caliri2014-07-042-2/+0
| | | | | | | | | | | | | | | | The member 'ahandler' was not used and will not be used. Removing to avoid confusion. Change-Id: I35f3659a650f109c564c6308573a211f324e5411 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| * GStreamer: correctly handle URLs from QMediaRecorder::setOutputLocationYoann Lopes2014-07-032-3/+16
| | | | | | | | | | | | Task-number: QTBUG-39949 Change-Id: Idf575b126bd3531655c8abda55c9e04149a4fb85 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
| * GStreamer: fix looping a media when it's loaded from qrc.Yoann Lopes2014-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | When playing a media for the second time, the backend resets the the media by calling setMedia() with the same value. The problem is that setMedia() clears the previous media, which is a QFile in this case and is the one we are trying to set again... The QFile was deleted, causing the current media to be a dangling pointer. Change-Id: I6854b40212fd084d1e31e756a040a02ad103b7ba Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * Doc: link errorsNico Vertriest2014-07-012-2/+2
| | | | | | | | | | | | Task-number: QTBUG-34749 Change-Id: I1d107a8700e03ac550fd6611d80a985a36558b22 Reviewed-by: Martin Smith <martin.smith@digia.com>
| * Android: fix crash when stopping the camera while a recording is activeYoann Lopes2014-06-301-1/+2
| | | | | | | | | | | | | | | | | | | | When unloading the camera, any active recording is automatically stopped, which in turn triggers the viewfinder to be restarted... We don't try anymore to restart the viewfinder after stopping recording unless the camera is still active. Change-Id: I77e4e3fc8d7116ac660d8bb23f6c400ebed4ffed Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * Android: fix registering recorded videos with the Android media scannerYoann Lopes2014-06-301-1/+1
| | | | | | | | | | Change-Id: I6dfc4e13b8a0bccb1bcfead728f7e1ddb7b58bb4 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
| * Android: correctly update camera focus zones.Yoann Lopes2014-06-301-15/+14
| | | | | | | | | | | | | | | | | | When setting a null custom focus point, we were correctly resetting the focus zones but we were not emitting the focusZonesChanged signal, causing the QML Camera to not update its focus zones. Change-Id: I59940c4cd2979fa08dc26566dc0f6d19e503f64f Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* | Implement customFocusPoint in camerabin backend.Andrew den Exter2014-07-104-7/+141
| | | | | | | | | | | | | | | | | | | | | | | | Send a regions-of-interest event containing a rectangle surrounding the focus point to the camera source when the camera's focusPointMode is QCameraFocus::CustomFocusPoint. Reset the regions-of-interest if the focusPointMode changes to any other value. [ChangeLog][GStreamer] Implement customFocusPoint in camerabin backend. Change-Id: If75405733b18d476dff5467abae3f08271caf06a Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Add QML accessors for camera viewfinder properties.Andrew den Exter2014-07-095-2/+249
| | | | | | | | | | | | | | [ChangeLog] Added QML accessors for camera viewfinder properties. Change-Id: I05a2a6c552aa8606e8dc31a11d1cfdedf66c554f Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Support per-plane strides and data offsets in QVideoFrame.Andrew den Exter2014-07-086-41/+337
| | | | | | | | | | | | | | | | | | | | | | | | Since just adding a new virtual isn't binary compatible add a new derivative type with a virtual member and connect it up through a virtual in the private class. [ChangeLog] Support for per-plane strides and data offsets in QVideoFrame. Task-number: QTBUG-38345 Change-Id: I1974c2b0b454d130e17971ce549031259d61f9cd Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Add meta-data accessors to the QML Camera type.Andrew den Exter2014-07-074-46/+447
| | | | | | | | | | | | | | | | | | | | | | Add write accessors to the properties of QDeclarativeMediaMetaData as well as additional properties for previously unmapped image keys and add a metaData property exposing this to QDeclarativeCamera. [ChangeLog] New metaData property for the QML Camera type. Change-Id: I4456b7b6120842f7ad9a1b175e42b9fb332adf13 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Fix change-of-sign warningThiago Macieira2014-07-071-3/+3
| | | | | | | | | | | | | | qgstappsrc.cpp(54): warning #68: integer conversion resulted in a change of sign Change-Id: I0bf8c93cb5e27114a8857dc650ac506152607491 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Doc: Removing url variable from qdocconf file.Jerome Pasion2014-07-072-2/+0
| | | | | | | | | | | | | | -url inherited from the url variable set in qtbase/doc/global Change-Id: I5761a583cc1242f31f1beece7da2236c47e3a9bd Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Fix compilation with -no-openglKai Koehne2014-07-012-5/+10
| | | | | | | | | | Change-Id: Ib8f39dcea58018f076d6a3fa733303958c707f1a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Fix stuttering with RTSP streams.Andrew den Exter2014-06-261-0/+1
| | | | | | | | | | | | | | | | | | Set the rtspsrc buffer-mode to 'slave' which is the default in gstreamer 1.0 and doesn't cause the stuttering apparent with the default buffer mode. Change-Id: I4241fbe638c176ad93f441a3f76a1041ef1cb6bb Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Enable both PulseAudio and Alsa plugins on Linux.Yoann Lopes2014-06-191-5/+2
| | | | | | | | | | | | | | | | | | | | It was previously only one or the other, and all Qt packages for linux were only including the PulseAudio backend. Now, both will be included; if PulseAudio is available it will be used by default, otherwise it will fall back to Alsa. Change-Id: I393c7728ec9741b1b58681608c184cd1b92126b1 Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Merge remote-tracking branch 'origin/5.3' into devSergio Ahumada2014-06-1493-1598/+1927
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Iecd8d7b94e52a8981526b12cffa40e99870ba62f
| * Make multimedia QML types available for the 5.3 import version.Yoann Lopes2014-06-101-0/+5
| | | | | | | | | | | | | | | | At least one type needs to be registered with the 5.3 version number to make it known to the QML engine. Change-Id: Iacfe62650b4194fbb89135fef7cb148309227ce2 Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
| * Fix static initialization order fiasco in some plugins.Yoann Lopes2014-06-065-347/+337
| | | | | | | | | | | | | | | | | | Some static variables were initialized using QMediaMetaData values, which are also statically initialized. Task-number: QTBUG-39202 Change-Id: Ibedc0a77d96cdfa575aad122c4ec654e6830e1f7 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
| * Android: Use a file descriptor for all local media files.Christian Strømme2014-06-052-6/+11
| | | | | | | | | | | | | | | | | | Using a fd is more consistent across different Android versions and also works with files that are in the applications private storage. Task-number: QTBUG-39346 Change-Id: I462822459d12d7842d15f1cb7caafc75c18fe32c Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>