aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/PySide2/QtMultimedia
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-22 16:44:51 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-22 18:22:49 +0200
commit427c7147d23fa21c6e8bd08407b1badc48b49c3c (patch)
treed2742c7ffdfa167bcf6e68f06ce7524bc441102d /sources/pyside2/PySide2/QtMultimedia
parent4ec9cfa3c6b895c0cf50227c189cfa542de88b64 (diff)
move everying into sources/pyside2 (5.9 edition)
in preparation for a subtree merge. this should not be necessary to do in a separate commit, but git is a tad stupid about following history correctly without it.
Diffstat (limited to 'sources/pyside2/PySide2/QtMultimedia')
-rw-r--r--sources/pyside2/PySide2/QtMultimedia/CMakeLists.txt118
-rw-r--r--sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia.xml45
-rw-r--r--sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_common.xml365
-rw-r--r--sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_forward_declarations.xml45
4 files changed, 573 insertions, 0 deletions
diff --git a/sources/pyside2/PySide2/QtMultimedia/CMakeLists.txt b/sources/pyside2/PySide2/QtMultimedia/CMakeLists.txt
new file mode 100644
index 000000000..a17455eec
--- /dev/null
+++ b/sources/pyside2/PySide2/QtMultimedia/CMakeLists.txt
@@ -0,0 +1,118 @@
+project(QtMultimedia)
+
+set(QtMultimedia_SRC
+${QtMultimedia_GEN_DIR}/qabstractaudiodeviceinfo_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qabstractaudioinput_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qabstractaudiooutput_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qabstractvideobuffer_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qabstractvideofilter_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qabstractvideosurface_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiobuffer_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiodecoder_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiodecodercontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiodeviceinfo_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudioencodersettingscontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudioencodersettings_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudioformat_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudioinputselectorcontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudioinput_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiooutputselectorcontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiooutput_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudioprobe_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiorecorder_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudiorolecontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudio_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameracapturebufferformatcontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameracapturedestinationcontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameracontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameraexposurecontrol_wrapper.cpp
+# Private destructor: ${QtMultimedia_GEN_DIR}/qcameraexposure_wrapper.cpp
+# Private destructor: ${${QtMultimedia_GEN_DIR}/qcamerafocus_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcamerafocuszone_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcamera_frameraterange_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameraimagecapturecontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameraimagecapture_wrapper.cpp
+# Private destructor: ${QtMultimedia_GEN_DIR}/qcameraimageprocessing_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameraimageprocessingcontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcamerainfocontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcamerainfo_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameralockscontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameraviewfindersettingscontrol2_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameraviewfindersettingscontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcameraviewfindersettings_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcamera_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qcamerazoomcontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qimageencodercontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qimageencodersettings_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediaaudioprobecontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediaavailabilitycontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediabindableinterface_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediacontainercontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediacontent_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediacontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediagaplessplaybackcontrol_wrapper.cpp
+# Causes compile errors: ${QtMultimedia_GEN_DIR}/qmediametadata_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmedianetworkaccesscontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediaobject_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediaplayercontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediaplayer_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediaplaylist_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediarecordercontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediarecorder_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediaresource_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmediatimerange_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qmultimedia_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qradiodatacontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qradiodata_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qradiotunercontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qradiotuner_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qsoundeffect_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qsound_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideodeviceselectorcontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideoencodersettingscontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideoencodersettings_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideofilterrunnable_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideoframe_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideoprobe_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideorenderercontrol_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideosurfaceformat_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qvideowindowcontrol_wrapper.cpp
+
+# module is always needed
+${QtMultimedia_GEN_DIR}/qtmultimedia_module_wrapper.cpp
+)
+
+make_path(QtMultimedia_typesystem_path ${QtCore_SOURCE_DIR} ${QtGui_SOURCE_DIR} ${QtNetwork_SOURCE_DIR}
+ ${QtCore_BINARY_DIR} ${QtGui_BINARY_DIR} ${QtNetwork_BINARY_DIR}
+ ${QtMultimedia_SOURCE_DIR})
+
+set(QtMultimedia_include_dirs ${QtMultimedia_SOURCE_DIR}
+ ${QtMultimedia_BINARY_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIRS}
+ ${Qt5Network_INCLUDE_DIRS}
+ ${Qt5Multimedia_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR}
+ ${QtGui_GEN_DIR}
+ ${QtNetwork_GEN_DIR})
+
+set(QtMultimedia_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt5Multimedia_LIBRARIES}
+ ${Qt5Core_LIBRARIES}
+ ${Qt5Gui_LIBRARIES}
+ ${Qt5Network_LIBRARIES}
+ )
+set(QtMultimedia_deps QtCore QtGui QtNetwork)
+
+create_pyside_module(QtMultimedia
+ QtMultimedia_include_dirs
+ QtMultimedia_libraries
+ QtMultimedia_deps
+ QtMultimedia_typesystem_path
+ QtMultimedia_SRC
+ "")
diff --git a/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia.xml b/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia.xml
new file mode 100644
index 000000000..275719f59
--- /dev/null
+++ b/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+<typesystem package="PySide2.QtMultimedia">
+ <load-typesystem name="typesystem_multimedia_common.xml" generate="yes"/>
+ <load-typesystem name="typesystem_multimedia_forward_declarations.xml" generate="yes"/>
+</typesystem>
diff --git a/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_common.xml b/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_common.xml
new file mode 100644
index 000000000..9565b4334
--- /dev/null
+++ b/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_common.xml
@@ -0,0 +1,365 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+<typesystem package="PySide2.QtMultimedia">
+ <load-typesystem name="typesystem_core.xml" generate="no" />
+ <load-typesystem name="typesystem_gui.xml" generate="no" />
+ <load-typesystem name="typesystem_network.xml" generate="no" />
+
+ <namespace-type name="QAudio">
+ <enum-type name="Error"/>
+ <enum-type name="Mode"/>
+ <enum-type name="Role" since="5.6"/>
+ <enum-type name="State"/>
+ <enum-type name="VolumeScale" since="5.8"/>
+ </namespace-type>
+
+ <value-type name="QVideoSurfaceFormat">
+ <enum-type name="Direction"/>
+ <enum-type name="YCbCrColorSpace"/>
+ </value-type>
+ <object-type name="QAbstractVideoBuffer">
+ <enum-type name="HandleType"/>
+ <enum-type name="MapMode"/>
+ <modify-function signature="map(QAbstractVideoBuffer::MapMode, int*, int*)" remove="all"/>
+ <!-- TODO: discuss a way to have this working with the virtual method.
+ <modify-function signature="map(QAbstractVideoBuffer::MapMode, int*, int*)">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject"/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_arg,int*,int*"/>
+ </inject-code>
+ </modify-function>
+ -->
+ <!-- TODO: PYSIDE-354, arrays are not supported -->
+ <modify-function signature="mapPlanes(QAbstractVideoBuffer::MapMode,int*,Array,Array)" remove="all"/>
+ </object-type>
+ <object-type name="QAbstractVideoSurface">
+ <enum-type name="Error"/>
+ </object-type>
+ <object-type name="QAbstractVideoFilter"/>
+ <value-type name="QVideoFrame">
+ <enum-type name="FieldType"/>
+ <enum-type name="PixelFormat"/>
+ <modify-function signature="bits(int)" remove="all"/>
+ <modify-function signature="bits(int) const" remove="all"/>
+ </value-type>
+
+ <value-type name="QAudioBuffer"/>
+ <object-type name="QAudioDecoder">
+ <enum-type name="Error"/>
+ <enum-type name="State"/>
+ </object-type>
+ <value-type name="QAudioFormat">
+ <enum-type name="Endian"/>
+ <enum-type name="SampleType"/>
+ </value-type>
+ <value-type name="QAudioDeviceInfo"/>
+ <object-type name="QAbstractAudioDeviceInfo"/>
+
+ <object-type name="QAbstractAudioOutput">
+ <modify-function signature="start()">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="start(QIODevice *)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+
+ <object-type name="QAbstractAudioInput">
+ <modify-function signature="start()">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="start(QIODevice *)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+
+ <object-type name="QAudioDecoderControl"/>
+ <object-type name="QAudioProbe"/>
+ <value-type name="QAudioEncoderSettings"/>
+ <object-type name="QAudioEncoderSettingsControl">
+ <modify-function signature="supportedSampleRates(const QAudioEncoderSettings &amp;, bool *) const" remove="all"/>
+ </object-type>
+
+ <object-type name="QAudioInput">
+ <modify-function signature="start()">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="start(QIODevice*)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="QAudioInputSelectorControl"/>
+
+ <object-type name="QAudioOutput">
+ <modify-function signature="start()">
+ <modify-argument index="return">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="start(QIODevice*)">
+ <modify-argument index="1">
+ <define-ownership class="target" owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
+ <object-type name="QAudioOutputSelectorControl"/>
+ <object-type name="QAudioRecorder"/>
+ <object-type name="QAudioRoleControl"/>
+
+ <object-type name="QCamera">
+ <value-type name="FrameRateRange"/>
+ <enum-type name="CaptureMode" flags="CaptureModes"/>
+ <enum-type name="Error"/>
+ <enum-type name="LockChangeReason"/>
+ <enum-type name="LockStatus"/>
+ <enum-type name="LockType" flags="LockTypes"/>
+ <enum-type name="Position"/>
+ <enum-type name="State"/>
+ <enum-type name="Status"/>
+ <modify-function signature="setViewfinder(QVideoWidget *)">
+ <modify-argument index="1">
+ <replace-type modified-type="QObject *" />
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ %BEGIN_ALLOW_THREADS
+ QObject* upcastedArg = %CONVERTTOCPP[QObject*](%PYARG_1);
+ %CPPSELF.%FUNCTION_NAME(reinterpret_cast&lt; %ARG1_TYPE &gt;(upcastedArg));
+ %END_ALLOW_THREADS
+ </inject-code>
+ </modify-function>
+ <modify-function signature="setViewfinder(QGraphicsVideoItem *)">
+ <modify-argument index="1">
+ <replace-type modified-type="QObject *" />
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ %BEGIN_ALLOW_THREADS
+ QObject* upcastedArg = %CONVERTTOCPP[QObject*](%PYARG_1);
+ %CPPSELF.%FUNCTION_NAME(reinterpret_cast&lt; %ARG1_TYPE &gt;(upcastedArg));
+ %END_ALLOW_THREADS
+ </inject-code>
+ </modify-function>
+ </object-type>
+ <object-type name="QCameraCaptureBufferFormatControl"/>
+ <object-type name="QCameraCaptureDestinationControl"/>
+ <object-type name="QCameraControl">
+ <enum-type name="PropertyChangeType"/>
+ </object-type>
+ <!-- Private destructor
+ <object-type name="QCameraExposure">
+ <enum-type name="FlashMode" flags="FlashModes"/>
+ <enum-type name="ExposureMode"/>
+ <enum-type name="MeteringMode"/>
+ <modify-function signature="supportedApertures(bool *) const" remove="all"/>
+ <modify-function signature="supportedIsoSensitivities(bool *) const" remove="all"/>
+ <modify-function signature="supportedShutterSpeeds(bool *) const" remove="all"/>
+ </object-type>
+ -->
+ <object-type name="QCameraExposureControl">
+ <enum-type name="ExposureParameter"/>
+ <modify-function signature="supportedParameterRange(QCameraExposureControl::ExposureParameter, bool *) const" remove="all"/>
+ </object-type>
+ <value-type name="QCameraFocusZone">
+ <enum-type name="FocusZoneStatus"/>
+ </value-type>
+ <!-- Private destructor
+ <object-type name="QCameraFocus">
+ <enum-type name="FocusMode" flags="FocusModes"/>
+ <enum-type name="FocusPointMode"/>
+ </object-type>
+ -->
+ <value-type name="QCameraInfo"/>
+ <object-type name="QCameraInfoControl"/>
+ <object-type name="QCameraImageCapture">
+ <enum-type name="CaptureDestination" flags="CaptureDestinations"/>
+ <enum-type name="DriveMode"/>
+ <enum-type name="Error"/>
+ <modify-function signature="supportedResolutions(const QImageEncoderSettings &amp;, bool *) const" remove="all"/>
+ </object-type>
+ <object-type name="QCameraImageCaptureControl"/>
+ <!-- Private destructor
+ <object-type name="QCameraImageProcessing">
+ <enum-type name="WhiteBalanceMode"/>
+ <enum-type name="ColorFilter"/>
+ </object-type>
+ -->
+ <object-type name="QCameraImageProcessingControl">
+ <enum-type name="ProcessingParameter"/>
+ </object-type>
+ <object-type name="QCameraLocksControl"/>
+ <value-type name="QCameraViewfinderSettings"/>
+ <object-type name="QCameraViewfinderSettingsControl">
+ <enum-type name="ViewfinderParameter"/>
+ </object-type>
+ <object-type name="QCameraViewfinderSettingsControl2"/>
+ <object-type name="QCameraZoomControl"/>
+
+ <value-type name="QImageEncoderSettings"/>
+ <object-type name="QImageEncoderControl">
+ <modify-function signature="supportedResolutions(const QImageEncoderSettings &amp;, bool *) const" remove="all"/>
+ </object-type>
+
+ <object-type name="QMediaAudioProbeControl"/>
+ <object-type name="QMediaAvailabilityControl"/>
+ <object-type name="QMediaBindableInterface"/>
+ <object-type name="QMediaContainerControl"/>
+ <value-type name="QMediaContent"/>
+ <object-type name="QMediaGaplessPlaybackControl"/>
+ <object-type name="QMediaControl"/>
+ <object-type name="QMediaNetworkAccessControl"/>
+ <!-- Causes compile errors
+ <namespace-type name="QMediaMetaData"/>
+ -->
+ <object-type name="QMediaObject"/>
+ <object-type name="QMediaPlayer">
+ <enum-type name="State"/>
+ <enum-type name="MediaStatus"/>
+ <enum-type name="Flag" flags="Flags"/>
+ <enum-type name="Error"/>
+ <modify-function signature="setVideoOutput(QVideoWidget *)">
+ <modify-argument index="1">
+ <replace-type modified-type="QObject *" />
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ %BEGIN_ALLOW_THREADS
+ QObject* upcastedArg = %CONVERTTOCPP[QObject*](%PYARG_1);
+ %CPPSELF.%FUNCTION_NAME(reinterpret_cast&lt; %ARG1_TYPE &gt;(upcastedArg));
+ %END_ALLOW_THREADS
+ </inject-code>
+ </modify-function>
+ <modify-function signature="setVideoOutput(QGraphicsVideoItem *)">
+ <modify-argument index="1">
+ <replace-type modified-type="QObject *" />
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ %BEGIN_ALLOW_THREADS
+ QObject* upcastedArg = %CONVERTTOCPP[QObject*](%PYARG_1);
+ %CPPSELF.%FUNCTION_NAME(reinterpret_cast&lt; %ARG1_TYPE &gt;(upcastedArg));
+ %END_ALLOW_THREADS
+ </inject-code>
+ </modify-function>
+ </object-type>
+ <object-type name="QMediaPlayerControl"/>
+ <object-type name="QMediaPlaylist">
+ <enum-type name="PlaybackMode"/>
+ <enum-type name="Error"/>
+ </object-type>
+ <object-type name="QMediaRecorder">
+ <enum-type name="Error"/>
+ <enum-type name="State"/>
+ <enum-type name="Status"/>
+ <modify-function signature="supportedAudioSampleRates(const QAudioEncoderSettings &amp;, bool *) const" remove="all"/>
+ <modify-function signature="supportedFrameRates(const QVideoEncoderSettings &amp;, bool *) const" remove="all"/>
+ <modify-function signature="supportedResolutions(const QVideoEncoderSettings &amp;, bool *) const" remove="all"/>
+ </object-type>
+ <object-type name="QMediaRecorderControl"/>
+ <value-type name="QMediaResource"/>
+ <value-type name="QMediaTimeRange"/>
+
+ <namespace-type name="QMultimedia">
+ <enum-type name="SupportEstimate"/>
+ <enum-type name="EncodingQuality"/>
+ <enum-type name="EncodingMode"/>
+ <enum-type name="AvailabilityStatus"/>
+ </namespace-type>
+
+ <object-type name="QRadioData">
+ <enum-type name="Error"/>
+ <enum-type name="ProgramType"/>
+ </object-type>
+ <object-type name="QRadioDataControl"/>
+ <object-type name="QRadioTuner">
+ <enum-type name="Band"/>
+ <enum-type name="Error"/>
+ <enum-type name="SearchMode"/>
+ <enum-type name="State"/>
+ <enum-type name="StereoMode"/>
+ </object-type>
+ <object-type name="QRadioTunerControl"/>
+ <object-type name="QSound">
+ <enum-type name="Loop"/>
+ </object-type>
+ <object-type name="QSoundEffect">
+ <enum-type name="Loop"/>
+ <enum-type name="Status"/>
+ </object-type>
+
+ <object-type name="QVideoDeviceSelectorControl"/>
+ <value-type name="QVideoEncoderSettings"/>
+ <object-type name="QVideoEncoderSettingsControl">
+ <modify-function signature="supportedFrameRates(const QVideoEncoderSettings &amp;, bool *) const" remove="all"/>
+ <modify-function signature="supportedResolutions(const QVideoEncoderSettings &amp;, bool *) const" remove="all"/>
+ </object-type>
+ <object-type name="QVideoFilterRunnable">
+ <enum-type name="RunFlag" flags="RunFlags"/>
+ </object-type>
+ <object-type name="QVideoProbe"/>
+ <object-type name="QVideoRendererControl"/>
+ <object-type name="QVideoWindowControl"/>
+
+ <suppress-warning text="Final class 'QMediaObject' set to non-final, as it is extended by other classes"/>
+ <suppress-warning text="Pure virtual method 'QAbstractVideoBuffer::map(QAbstractVideoBuffer::MapMode,int*,int*)' must be implement but was completely removed on type system."/>
+ <suppress-warning text="Pure virtual method 'QImageEncoderControl::supportedResolutions(QImageEncoderSettings,bool*)const' must be implement but was completely removed on type system."/>
+ <suppress-warning text="Pure virtual method 'QCameraExposureControl::supportedParameterRange(QCameraExposureControl::ExposureParameter,bool*)const' must be implement but was completely removed on type system."/>
+ <suppress-warning text="Pure virtual method 'QVideoEncoderSettingsControl::supportedFrameRates(QVideoEncoderSettings,bool*)const' must be implement but was completely removed on type system."/>
+ <suppress-warning text="Pure virtual method 'QVideoEncoderSettingsControl::supportedResolutions(QVideoEncoderSettings,bool*)const' must be implement but was completely removed on type system."/>
+ <suppress-warning text="Pure virtual method 'QAudioEncoderSettingsControl::supportedSampleRates(QAudioEncoderSettings,bool*)const' must be implement but was completely removed on type system."/>
+</typesystem>
diff --git a/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_forward_declarations.xml b/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_forward_declarations.xml
new file mode 100644
index 000000000..df6e28c85
--- /dev/null
+++ b/sources/pyside2/PySide2/QtMultimedia/typesystem_multimedia_forward_declarations.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of PySide2.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+<typesystem package="PySide2.QtMultimedia">
+ <custom-type name="QVideoWidget"/>
+ <custom-type name="QGraphicsVideoItem"/>
+</typesystem>