summaryrefslogtreecommitdiff
path: root/src/plugins/avfoundation
Commit message (Collapse)AuthorAgeFilesLines
* New QCameraInfo class.Yoann Lopes2014-02-284-2/+30
| | | | | | | | | | | | | | | | | | | | The class allows to get the list of available cameras on the system as well as getting some static information about them such as their unique ID, display name, physical position and sensor orientation. This makes QCamera::availableDevices() and QCamera::deviceDescription() obsolete. This patch contains the API, documentation and auto-tests but not the actual implementation by each backend (except for retrieving the default camera device). [ChangeLog][QtMultimedia] Added new QCameraInfo class [ChangeLog][QtMultimedia] QCamera: availableDevices() and deviceDescription() are deprecated, use QCameraInfo instead Change-Id: I64fd65729ab26a789468979ed5444ee90bb82cd0 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* AVFoundation: mirror viewfinder frames of front-facing cameras.Yoann Lopes2014-02-144-7/+56
| | | | | Change-Id: I95920aa459ff0931819cb6f8278ab296db542601 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fixes mediaplayer crashes on OSXtom2014-01-241-11/+23
| | | | | | | | | | | | | Fixes the "libqavfmediaplayer.dylib 0x0000000110fa7c8c -[AVFMediaPlayerSessionObserver unloadMedia]" crash on Macs. The problem was: writing to memory that had already been released. If not sure, one should always check if the objects exist before deleting it. Solution tested on OSX 10.7, 10.8, 10.9 [ChangeLog][qtmultimedia][avfmediaplayersession] Task-number: QTBUG-34213 Change-Id: Iac108711851c348e96e73542b4e71653007eeb54 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Use QStringRef instead of QString whenever possible.Jędrzej Nowacki2014-01-151-1/+1
| | | | | | | That way we reduce count of temporary QString instances. Change-Id: Id806c68ea616828c2355c07b8576616fa6a8da17 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* AVFoundation: Basic camera support for iOSAndy Nichols2013-08-272-6/+9
| | | | | | | Enables basic software rendering support for iOS. Change-Id: Icd29076ea627295819ede6d9680de576ba39b34e Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* AVFoundation: Enable QVideoWidget on iOSAndy Nichols2013-08-272-22/+21
| | | | | Change-Id: I88041e7a2ea052fe449542eeaada31c09d93d163 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* AVFoundation: Use CoreAnimation to render video to QVideoWidgetAndy Nichols2013-08-277-262/+115
| | | | | | | | | Previously a QGLWidget was used as a target for the AVFVideoFrameRenderer. This was uncessary as it is possible to render directly on top of the QWidget using the CoreAnimation Framework. Change-Id: I08923c85fd56c8874c1d8c187ae5145e220fab92 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* AVFoundation: Enable use of QMediaPlayer for audio on iOSAndy Nichols2013-08-274-30/+45
| | | | | | | | | This commit disables the video components of the AVFoundation mediaplayer backend when building for iOS and enables the use of QMediaPlayer with audio assets. Change-Id: Iadd6f9c61ed1e656301326e90a22cbca6428b654 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Multimedia plugins now have a unique JSON metadata 'Keys' property.Yoann Lopes2013-06-212-2/+4
| | | | | | | | | | | | | | | | | | | | | They previously had the multimedia services they provided as keys. This was a problem when several plugins were available on the same platform, providing the same multimedia service, but with different features or capabilities. Since they had the same key, only the first plugin in the directory was loaded. Nevertheless, it was actually working until commit 732dcfe7 in qtbase, as all plugins were loaded even when sharing the same key. The services a multimedia plugin provides are now declared in the 'Services' property. To preserve compatibility with third-party plugins, if that new property doesn't exist it falls back to the 'Keys' property. Task-number: QTBUG-31868 Task-number: QTBUG-31476 Change-Id: Ic3ba32eeef21b69b922bd3d4feb111101559d132 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Decouple qmediametadata.h from qmultimedia.hSze Howe Koh2013-05-141-1/+1
| | | | | | | | qmultimedia.h is included in more places, but qmediametadata.h is larger. This patch should reduce unnecessary #include-ing. Change-Id: I4a3d174bafc555d794bb75087c1f6b79745ae903 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* AVFoundation: Emit error when media fails to loadAndy Nichols2013-04-172-8/+9
| | | | | | | | | | | This also makes sure that if you attempt to load an invalid media file while another file is playing that the old session is stopped. Task-number: QTBUG-30411 Change-Id: Ied4dbaffeac50465112c1e94e7c69d1600a6de51 Reviewed-by: Christian Stromme <christian.stromme@digia.com> Reviewed-by: Dan Winkler <dantwinkler@gmail.com>
* AVFoundation: Remove stray semicolon after conditionAndy Nichols2013-04-161-1/+1
| | | | | Change-Id: I1c9a822ee54e7c189fe8806a11334cd23cd79a31 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Doc: Fix minor typosSze Howe Koh2013-04-102-2/+2
| | | | | | Task-number: QTWEBSITE-514 Change-Id: Ie8f3689d18d15fd0e88e0ada4a745d9994d9c2ae Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* make use of qtHaveModule()Oswald Buddenhagen2013-01-111-1/+1
| | | | | | | Change-Id: I14da5455b7dd4681254e1652395df5f5c65746bd Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1045-45/+45
| | | | | | Change-Id: Ia8c1c38aba1544603fada8c414cc856f365fd15b Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Compile in 32-bit mode.Morten Johan Sørvig2013-01-082-5/+5
| | | | | | | | | | CGRect == NSRect only in 64-bit mode. Don't add -framework QuickTime based on the host arch, use QT_ARCH instead. Change-Id: I829bc1bcfe37f70a07e8c55a5bc7dee90aaa981a Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Add PLUGIN_CLASS_NAME to qtmultimedia pluginsMiikka Heikkinen2012-12-102-0/+2
| | | | | | | | Needed for automating static plugin loading. Task-number: QTBUG-28131 Change-Id: Ia392b112fc46dedd34c9ffdbd6e874dbbfeaef83 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fixed build on MacOS with clang in C++11 mode.Erik Verbruggen2012-12-061-5/+5
| | | | | | | | | | avfvideowidget.mm:120:9: error: non-constant-expression cannot be narrowed from type 'int' to 'GLfloat' (aka 'float') in initializer list [-Wc++11-narrowing] x1, y1, zValue, ^~ Change-Id: I5a08bf8b53cf029dbdfaeaa03f4babd6d49d62ad Reviewed-by: Andy Nichols <andy.nichols@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* AVFoundation: Enable QImage based frame fallbackAndy Nichols2012-11-213-21/+89
| | | | | | | | | | | QGraphicsVideoItem was not working because the QPainterVideoSurface was unable to paint BGR32 format OpenGL textures. Now if the QGraphicsView window has a QGLWidget viewport, we use the GLTextureHandle to render the video, otherwise we fallback to the software QImage rendered case. Task-number: QTBUG-28017 Change-Id: I9304e0a2536f15075ae34cdd509ef24fbc18604e Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* AVFoundation: Fix broken requestControl logicAndy Nichols2012-11-201-6/+10
| | | | | | | | | | AVFMediaPlayerService::requestControl was returning the video output control after the video output was created, and this could result in unexpected behavior, as well as prematurely calling releaseControl on the video output. This should fix the "player" example on OS X. Change-Id: Ie23b1176272a1f9daa5edeec856141ac52a450c7 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Enable the "#include <QMultimedia>" camel-case headerSze Howe Koh2012-11-061-1/+1
| | | | | | | | | | | | Rename qtmedianamespace.h/cpp -> qmultimedia.h/cpp, and have sync.profile generate the camel-case header during compilation. Part of the Header Consistency Project (http://lists.qt-project.org/pipermail/development/2012-October/007570.html) Change-Id: Iade9ee6538970b4b9935f169eb2d9a0ea6949a95 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Rename namespace QtMultimedia -> QMultimediaSze Howe Koh2012-11-062-4/+4
| | | | | | | | | | | | | | | | Main code, examples, tests and docs updated. Method: 1. Mass find+replace "QtMultimedia::" -> "QMultimedia::" 2. Hand-modified declaration in qtmedianamespace.h/cpp For consistency (with minimal disruption), namespaces with a "Qt" prefix will be renamed. Part of the Header Consistency Project (http://lists.qt-project.org/pipermail/development/2012-October/007570.html) Change-Id: I1fbc43a1aa91d996aa61869fcd8d05186bf7cf6d Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Rename namespace QtMultimedia::MetaData -> QMediaMetaDataSze Howe Koh2012-11-061-14/+14
| | | | | | | | | | | | | | | | | | Main code, examples, tests and docs updated. Method: 1. Remove unused forward-declarations, "class QMediaMetaData" 2. Mass find+replace "QtMultimedia::MetaData" -> "QMediaMetaData" 3. Un-nest from the QtMultimedia namespace in qtmedianamespace.h For consistency (with minimal disruption), namespaces with a "Qt" prefix will be renamed. Also, Qt guidelines don't include nested namespaces (http://lists.qt-project.org/pipermail/development/2012-October/006756.html) Part of the Header Consistency Project (http://lists.qt-project.org/pipermail/development/2012-October/007570.html) Change-Id: I40e59c1cf58c1792725e735e9285c51bc5f226b1 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* adjust to qt_plugin.prf changesOswald Buddenhagen2012-11-052-10/+0
| | | | | | | | | | DESTDIR and INSTALLS+=target are set up automatically now. note that in the qmediaserviceprovider test we must override that. also, TARGET munging is done automatically. Change-Id: Ida5d5601e22b099134d1ec07ace713e0d0986bd6 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add MediaPlayer support to AVFoundation pluginAndy Nichols2012-10-1925-1/+3591
| | | | | | | | | | This plugin would be used on Mac 10.7+ where without the QuickTime C API our QT7 media player performance was crippled. Change-Id: Iaadb1990a8f63393c4cd02d096624e0fed42b40f Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Jason Barron <jason.barron@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fixed AVF camera backend build with namespaced QtDmytro Poplavskiy2012-10-093-4/+6
| | | | | | | | Objective-C declarations may only appear in global scope, moved them out of Qt namespace Change-Id: Icb136be75f544e5929ac28f0ba0681211b81a983 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2423-553/+553
| | | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Id77334cfb15de096941c88e32d04ca07b4eb4709 Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* centralize load(qt_build_config)s in .qmake.confOswald Buddenhagen2012-09-121-2/+0
| | | | | Change-Id: Ie07a32729ec8679f799613f8f6ccdd9c1b6bf7c9 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Initial implementation of Mac camera backendDmytro Poplavskiy2012-08-2726-0/+3007
Based on AVFoundation framework Change-Id: If4cfd105a592f50b42606624548b9ffc870e3e47 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>