summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* DirectShow: Add warning when not supported playback rate appliedVal Doroshchuk2018-03-221-1/+4
| | | | | | | | | | | | IMediaSeeking::SetRate() may return an error when not supported rate is being applied. Added a warning to inform user about incorrect rate value also fixed a bug when the rate has been always fell back to 1.0 instead of previous value. Task-number: QTBUG-55354 Change-Id: I85fb5572cba6920b461a023aef1bc09a981ab033 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Audiocapture: Fix setting QAudioEncoderSettings::bitRateVaL Doroshchuk2018-03-211-7/+6
| | | | | | | | | | | | | | The sample size is now correctly calculated using provided bit rate via QAudioEncoderSettings. The bit rate is calculated like bitrate = sample size * sample rate * channel count Fixed bug when sample size is 8 when bit rate and sample rate is 8000 which is not correct. The bit rate must be 8 * 8000. Task-number: QTBUG-65207 Change-Id: I660fadfaaf6cc63004480fb84165252360b7f75e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Gstreamer: Emit an error if QCamera::start() failsVaL Doroshchuk2018-03-211-3/+11
| | | | | | | | | | | | | If a camera is not started successfully error() signal has to be emitted. Added emitting an error from video source. Emitted only first error to prevent multiple subsequent errors. Added debug message. Task-number: QTBUG-51825 Change-Id: I6ac936d2728213a4a64f3e4eb25ae2e2f109acca Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* DirectShow: Emit an error if QCamera::start() failsVal Doroshchuk2018-03-213-13/+29
| | | | | | | | | | | | | | | | | | | If a camera is not started successfully, then an error() should be emitted. After an error the camera's state will be QCamera::UnloadedState and status will be QCamera::UnloadedStatus. The error signal is handled when the camera is unable to set following states: QCamera::UnloadedState, QCamera::LoadedState or QCamera::LoadingState. Thus additionally to QCamera::start() an error can be emitted even when QCamera::load(), QCamera::unload(), or QCamera::stop() is called. Task-number: QTBUG-51825 Change-Id: Ib5ea08ed7983ea49a7bf8c0321cc5266a68d9144 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Remove unreachable codeJesus Fernandez2018-03-201-2/+0
| | | | | | | | | | | Actions intended to be performed by the unreachable code will never occur. In CameraBinLocks::lockStatus(QCamera::LockType): Code block is unreachable because of the syntactic structure of the code (CWE-561) Coverity-Id: 188406 Change-Id: I55a7ef8e87673519ff4f1ad5677054b34bf66d17 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Replace deprecated qSort() by std::sort()Friedemann Kleint2018-02-285-10/+19
| | | | | Change-Id: I74ffd5bafaef9ebbe7f12600ad831c8deb58ae64 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.11v5.11.0-beta1Liang Qi2018-02-181-3/+10
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I2af17ff905c26466fa1ea8b612dff3b505a3d33a
| * GStreamer: fix udpsrc timeout settingYoann Lopes2018-02-021-3/+10
| | | | | | | | | | | | | | | | | | | | The timeout's time unit has changed between 0.10 and 1.0, from microseconds to nanoseconds, but we were always passing the value in microseconds. This would cause an UDP stream to always timeout with GStreamer 1.0. Change-Id: I69786480d29854d3a030f9dbea15c69ee89f3dd5 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | Merge remote-tracking branch 'origin/5.10.1' into 5.11v5.11.0-alpha1Liang Qi2018-02-141-5/+2
|\ \ | | | | | | | | | Change-Id: If65f60670bbfb011363a1b5230253805b3e63553
| * | Revert "GStreamer: Prevent calling CameraBinSession::setStateHelper twice"v5.10.1VaL Doroshchuk2018-02-051-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9caee039533168fbb546b563859770414e54fc94. Reverted due to GST_STATE_PLAYING is never set. Task-number: QTBUG-66196 Change-Id: I85cf47c747b1e153265f2eee6477124f4683a574 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | Add missing includesJake Petroules2018-02-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Messages are sent to NSView and UIView pointers in this file, which will generate unrecognized selector warnings (and eventually, errors). Change-Id: I4c4d65b555eb4cac8d73596ccb986b14d34ddf31 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* | | Remove obsolete code pathsJake Petroules2018-02-121-12/+11
| | | | | | | | | | | | | | | Change-Id: I331f48cc6776b2fc6bb2efc2829555f8284eeff9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* | | DirectShow: Add the zoom controlChristian Stromme2018-01-225-2/+309
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes is possible to to control the zoom value, if the camera supports it. [ChangeLog][DirectShow] Added camera zoom support. Change-Id: I7a24c7fefb947bdcfc3ff8f755aa761135cc6fde Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | DirectShow: Add video probe support for the cameraChristian Stromme2018-01-224-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change makes it possible to use the QVideoProbe class with the camera. [ChangeLog][DirectShow] Added support for video probes in the camera. Change-Id: Ib353e80e68ea2dcc5b33fd81863f4b6613257e45 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | DirectShow: Add camera image capture controlsChristian Stromme2018-01-2210-11/+328
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds controls for setting the capture destination and buffer format. [ChangeLog][DirectShow] Added support for setting the capture destination and format. Change-Id: I7420ea5dce9bf1bef391b6ba3a1537bedfbcf52d Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | DirectShow: Add exposure controlChristian Stromme2018-01-225-9/+530
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes it possible to manually control the shutter speed and/or the aperture on cameras that supports it. [ChangeLog][DirectShow] Added support for manual camera exposure control Change-Id: I340964f899fec365df870834b230c1d743ceb2e8 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-205-40/+40
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm Change-Id: Ic43fb2a805ed9f0f2ea48993d47859716f1f11b4
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-185-40/+41
| |\| | | | | | | | | | Change-Id: I7566f543ce11ff6cddc4d17e2c258a582f365b65
| | * Merge remote-tracking branch 'origin/5.9.4' into 5.9Liang Qi2018-01-182-27/+8
| | |\ | | | | | | | | | | | | Change-Id: I2524b124197050d16409d9d3675570594c02cd42
| | | * Revert "DirectShow: Fix memory leak in CLSID_FilterGraph"v5.9.4Christian Strømme2018-01-152-27/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reverted commit brakes rendering on video on Windows; only the first frame is delivered. This reverts commit 8ec92863f13061c3dd2d56376eddfe258915589f. Task-number: QTBUG-65736 Change-Id: I298da5803efe13d0f17868714393cc9b1760b4a7 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * | AVFoundation: use observer for tracking durationJochen Seemann2018-01-082-13/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For getting the duration of a video, Apple advises to use AVPlayerItem.duration and tracking its duration changes with an observer. Task-number: QTBUG-49558 Change-Id: Ia2adc0d23deacd185f8c338f7f44948db2444beb Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * | avfoundation: resolve unused parameter warningsJochen Seemann2018-01-081-0/+2
| | |/ | | | | | | | | | | | | Change-Id: I49eb4e04dd6d63a17d31fd0981be18f3b88fcc39 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | QNX 7.0.0 audio management supportJames McDonnell2018-01-164-19/+141
| | | | | | | | | | | | | | | | | | | | | [ChangeLog][QNX] Added support for QNX 7.0.0 audio management. Change-Id: Ia9f1740577527126bf666627647084382e4d7ce9 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-0614-111/+141
|\| | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I5acdc7e0bd3729b80522dfff0f388cf2507fb111
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-067-95/+122
| |\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I3d6e69f3f99b2f0a0e2c29ffdd02176e1f22304e
| | * DirectShow: Fix rendering of overlapping MDI subwindowsVal Doroshchuk2017-12-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Media type MEDIASUBTYPE_RGB32 is 32 bytes per pixel (like 0x00RRGGBB). When MDI subwindows are overlapping bottom window with QImage::Format_RGB32 requires 0xffRRGGBB. If "not used byte" is not 0xFF rendering will not be correct (0x00 produces empty image). Changed samples to ARGB32 to provide alpha channel, which is 0xFF in most cases. If alpha channel is not set to 0xFF, the bottom window will still be rendered incorrectly. Task-number: QTBUG-51405 Change-Id: I69f15d3835f901a04bf39b079394c6292b793610 Reviewed-by: Christian Stromme <christian.stromme@qt.io> (cherry picked from commit b69259b65707acc9fc3c0818f6affe53938cebc3)
| | * GStreamer: Prevent calling CameraBinSession::setStateHelper twiceVaL Doroshchuk2017-12-141-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since CameraBinSession::setStateHelper() is supposed to handle only pending states, added a fix to prevent calling it twice. Otherwise CameraBinSession::load() can be called few times which might lead an error from gstreamer. Possible call stack: CameraBinSession::setState() CameraBinSession::setStateHelper() CameraBinSession::load() CameraBinSession::setStatus() CameraBinSession::setStateHelper() CameraBinSession::load() << gst_element_set_state is called also twice Task-number: QTBUG-53204 Change-Id: I00c66f91cd3b885c70848245da725ff68943fad2 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * DirectShow: Fix memory leak in CLSID_FilterGraphVal Doroshchuk2017-12-142-8/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed memory leak when using Filter Graph Manager by moving creation of the manager to worker thread and changing threading model from shared to application thread. Task-number: QTBUG-52713 Change-Id: I7725697ced1992959d18588303c329b4dfd56b2e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * AVFoundation: Use 90 for the front facing camera's orientationAndy Shaw2017-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the information is not available as to what the orientation is from the AVFoundation API then we need to rely on common sense. Since the back facing camera is 270, then it stands to reason that the front one would be 90. This has been tested on macOS and iOS and all three cameras behave correctly. Task-number: QTBUG-37955 Change-Id: I1ab079cb5d4337948541e58321df51efbadf3e39 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | * Revert "Android: Set the correct scan line for the video surface format"Christian Stromme2017-12-011-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change causes the video output to be shown upside down. This reverts commit 2ec485482d185f92e4de33f634bc3ef9dd6c9188. Task-number: QTBUG-64764 Change-Id: I9d3e63d2c0cce17d945b62ffead38ab5f58ace7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 3598915a360c596da48c9e7b00ba8469cba5249a)
| | * Windows: Fix EVR's rendering of GLTextureHandle framesVal Doroshchuk2017-11-301-73/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ANGLE is used and video frames have GLTextureHandle handle type black screen is shown while audio is working correctly. Fixed a bug when opengl texture has not been ever creating. Fixed a crash when releasing resources due to empty QOpenGLContext. Also moved gl initialization related code to OpenGLResources. Task-number: QTBUG-61407 Change-Id: Ifc92a4a2fa2e769494ef962203446a9b3e7dd86d Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * Fix crash when no supported formats are returnedVal Doroshchuk2017-11-231-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | If waveInGetDevCaps or waveOutGetDevCaps returns MMSYSERR_NOERROR it does not mean that there are supported formats in the dwFormats field. Task-number: QTBUG-54242 Change-Id: I767ccc9570681685a27abd979ba9754034058e6f Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * WindowsAudio: Remove unneeded Sleep() when stopping playbackVal Doroshchuk2017-11-231-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | To terminate playback waveOutReset is already used. Task-number: QTBUG-35916 Change-Id: I50d6c25c944b01d7dfe62b2f80ec153231818a33 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | DirectShow: Add initialization of com library to service pluginVal Doroshchuk2017-12-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case when QCoreApplication is used the COM library was not initialized on the calling thread before the COM library calls were made. QApplication initializes it by calling OleInitialize(). Task-number: QTBUG-59320 Change-Id: I50a71b1bcc8a63f5a8ffd22c5d044f9c56de15f9 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | DirectShow: Fix rendering of overlapping MDI subwindowsVal Doroshchuk2017-12-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Media type MEDIASUBTYPE_RGB32 is 32 bytes per pixel (like 0x00RRGGBB). When MDI subwindows are overlapping bottom window with QImage::Format_RGB32 requires 0xffRRGGBB. If "not used byte" is not 0xFF rendering will not be correct (0x00 produces empty image). Changed samples to ARGB32 to provide alpha channel, which is 0xFF in most cases. If alpha channel is not set to 0xFF, the bottom window will still be rendered incorrectly. Task-number: QTBUG-51405 Change-Id: I69f15d3835f901a04bf39b079394c6292b793610 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | winrt: Add audiocapture backend to standard buildMaurice Kalinowski2017-12-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The backend itself works without modifications. The user has to take care to store at a location which the sandboxing allows. Task-number: QTBUG-60904 Change-Id: I52107d766fdbc5b952ea805b01662093be482459 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | DirectShow: Use pixel aspect ratioVal Doroshchuk2017-12-082-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally pixel aspect ratio was clearing (set to 1,1) within renegotiating the media type. Which caused samples with not standard pixel aspect ratio (1,1) to be rendered with black squares on the top and the bottom. (Original size was kept but PAR cleared) Added a fix to keep PAR while adjusting the media type to optimal one and set original PAR to QVideoSurfaceFormat. Task-number: QTBUG-64438 Change-Id: I6d1a5c441b89bbd5cea86667cc570bb7eb19068b Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
| * | Merge remote-tracking branch 'origin/5.10.0' into 5.10Liang Qi2017-12-082-2/+1
| |\ \ | | | | | | | | | | | | Change-Id: Iffeb04c00f5b9e7a51320570ea47e84d80fae844
| | * | Revert "Android: Set the correct scan line for the video surface format"v5.10.0-rc3v5.10.0-rc2v5.10.0Christian Stromme2017-11-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change causes the video output to be shown upside down. This reverts commit 2ec485482d185f92e4de33f634bc3ef9dd6c9188. Task-number: QTBUG-64764 Change-Id: I9d3e63d2c0cce17d945b62ffead38ab5f58ace7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * | Merge 5.10 into 5.10.0Oswald Buddenhagen2017-11-205-10/+42
| | |\ \ | | | | | | | | | | | | | | | Change-Id: Id50796542954ded82fb265b4737d737aff033633
| | * | | QWasapiAudioDeviceInfo: fix QByteArray => QString conversionAlexander Ivash2017-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QByteArray was created inside 'QWasapiUtils::availableDevices' using 'toLocal8Bit' so needs to be converted to QString via 'fromLocal8Bit' Task-number: QTBUG-64262 Change-Id: I70cdaf35dbdbee671fbf7c4e1b46b18c13ca98cc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| * | | | GStreamer: Emit an error if no input device provided for QCameraVaL Doroshchuk2017-12-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevents building a camera source if no input device name is provided. And emit an error immediately. Task-number: QTBUG-64155 Change-Id: I509bee1df0acb372d26f45fd27057f8b7e141c2a Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | | | ALSA: Don't check the device name in open()VaL Doroshchuk2017-12-051-3/+0
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each time when open() is called device name was checked for availability. Which could impact to performance especially for embedded devices. Also the check of device name is done while calling snd_pcm_open(). Task-number: QTBUG-63007 Change-Id: Ib0afe7326552968870f4ca95a7807ae8f704fd3f Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | | AVFoundation: implement bufferStateJochen Seemann2017-12-213-3/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This add support for the buffer status with AVPlayerItem.playbackLikelyToKeepUp. It only supports buffer status values of 0 and 100. Change-Id: I5779ea360fe9c497ecc0236e442850422d96ac87 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-2010-17/+45
|\| | | | | | | | | | | | | | | Change-Id: Icaf645e271b21320c4cb6269178d9e722092a263
| * | | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-155-10/+42
| |\ \ \ | | |/ / | |/| / | | |/ Change-Id: I0e525d0cc7f4e4b776e5a536e2bf9b2c66be5429
| | * wasapi: Initialize COM before useVal Doroshchuk2017-11-141-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | The COM library was not initialized on the calling thread before the COM library calls were made. Task-number: QTBUG-62598 Change-Id: Id6f4fc093a1ef72b6e0a3cd3a22c05cec7eaafa8 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * Fix deadlock when a new url is set in loading stateVal Doroshchuk2017-11-101-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting a new url while QMediaPlayer is in loading state can result in a deadlock between the GUI and worker thread. Because main thread is waiting when worker realeses m_graph but worker cleared all pending tasks and is waiting for new tasks from main thread. Task-number: QTBUG-53534 Change-Id: I296ecdf866c5d85efc7121d3e7936334d6b700fd Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * Fix crash when an app is sent to background while capturing an imageVal Doroshchuk2017-11-101-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the native notify* methods for QtCameraListener.java are executed on different thread, there is a potential for a race condition when the applicationStateChanged is received before the notify* signals, which leads to the camera being release before the slots are executed. Task-number: QTBUG-52366 Change-Id: Ifc82f3a75a7e88e4e76fac3edbf16bb9f138fde7 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * Gstreamer: Fix memory leak in CameraBinSessionVaL Doroshchuk2017-11-081-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | Created GstElement objects m_cameraSrc and m_videoSrc should be unrefed. Task-number: QTBUG-53204 Change-Id: Ibbfd37d928fe87ea899549da7c12fa2386e214cc Reviewed-by: Christian Stromme <christian.stromme@qt.io>