blob: a5c70c0592a602b77dea7fae5147957d139d31c9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
qt_find_package(EGL)
qt_find_package(VAAPI COMPONENTS VA DRM PROVIDED_TARGETS VAAPI::VA VAAPI::DRM MODULE_NAME multimedia QMAKE_LIB vaapi)
qt_internal_find_apple_system_framework(FWCoreMedia CoreMedia) # special case
qt_internal_find_apple_system_framework(FWCoreAudio CoreAudio) # special case
qt_internal_find_apple_system_framework(FWAudioUnit AudioUnit) # special case
qt_internal_find_apple_system_framework(FWVideoToolbox VideoToolbox) # special case
qt_internal_find_apple_system_framework(FWAVFoundation AVFoundation) # special case
qt_internal_add_plugin(QFFmpegMediaPlugin
OUTPUT_NAME ffmpegmediaplugin
PLUGIN_TYPE multimedia
SOURCES
qffmpeg_p.h
qffmpegaudiodecoder.cpp qffmpegaudiodecoder_p.h
qffmpegaudioinput.cpp qffmpegaudioinput_p.h
qffmpegclock.cpp qffmpegclock_p.h
qffmpegdecoder.cpp qffmpegdecoder_p.h
qffmpeghwaccel.cpp qffmpeghwaccel_p.h
qffmpegencoderoptions.cpp qffmpegencoderoptions_p.h
qffmpegmediametadata.cpp qffmpegmediametadata_p.h
qffmpegmediaplayer.cpp qffmpegmediaplayer_p.h
qffmpegvideosink.cpp qffmpegvideosink_p.h
qffmpegmediaformatinfo.cpp qffmpegmediaformatinfo_p.h
qffmpegmediaintegration.cpp qffmpegmediaintegration_p.h
qffmpegvideobuffer.cpp qffmpegvideobuffer_p.h
qffmpegimagecapture.cpp qffmpegimagecapture_p.h
qffmpegmediacapturesession.cpp qffmpegmediacapturesession_p.h
qffmpegmediarecorder.cpp qffmpegmediarecorder_p.h
qffmpegencoder.cpp qffmpegencoder_p.h
qffmpegthread.cpp qffmpegthread_p.h
qffmpegresampler.cpp qffmpegresampler_p.h
qffmpegvideoframeencoder.cpp qffmpegvideoframeencoder_p.h
qffmpegscreencapturebase.cpp qffmpegscreencapturebase_p.h
qffmpegscreencapture.cpp qffmpegscreencapture_p.h
qffmpegplaybackengine.cpp qffmpegplaybackengine_p.h
playbackengine/qffmpegplaybackengineobject.cpp playbackengine/qffmpegplaybackengineobject_p.h
playbackengine/qffmpegdemuxer.cpp playbackengine/qffmpegdemuxer_p.h
playbackengine/qffmpegstreamdecoder.cpp playbackengine/qffmpegstreamdecoder_p.h
playbackengine/qffmpegrenderer.cpp playbackengine/qffmpegrenderer_p.h
playbackengine/qffmpegaudiorenderer.cpp playbackengine/qffmpegaudiorenderer_p.h
playbackengine/qffmpegvideorenderer.cpp playbackengine/qffmpegvideorenderer_p.h
playbackengine/qffmpegsubtitlerenderer.cpp playbackengine/qffmpegsubtitlerenderer_p.h
playbackengine/qffmpegtimecontroller.cpp playbackengine/qffmpegtimecontroller_p.h
playbackengine/qffmpegmediadataholder.cpp playbackengine/qffmpegmediadataholder_p.h
DEFINES
QT_COMPILING_FFMPEG
LIBRARIES
Qt::MultimediaPrivate
Qt::CorePrivate
FFmpeg::avformat FFmpeg::avcodec FFmpeg::swresample FFmpeg::swscale FFmpeg::avutil
)
qt_internal_extend_target(QFFmpegMediaPlugin CONDITION QT_FEATURE_ffmpeg AND QT_FEATURE_vaapi
SOURCES
qffmpeghwaccel_vaapi.cpp qffmpeghwaccel_vaapi_p.h
LIBRARIES
VAAPI::VAAPI
EGL::EGL
)
qt_internal_extend_target(QFFmpegMediaPlugin CONDITION APPLE
SOURCES
../darwin/qavfhelpers.mm ../darwin/qavfhelpers_p.h
../darwin/camera/qavfcamerabase_p.h ../darwin/camera/qavfcamerabase.mm
../darwin/camera/avfcamerautility_p.h ../darwin/camera/avfcamerautility.mm
qffmpeghwaccel_videotoolbox.mm qffmpeghwaccel_videotoolbox_p.h
qavfcamera.mm qavfcamera_p.h
INCLUDE_DIRECTORIES
../darwin
../darwin/camera
LIBRARIES
${FWAudioToolbox}
${FWCoreAudio}
${FWCoreFoundation}
${FWCoreMedia}
${FWCoreVideo}
${FWVideoToolbox}
AVFoundation::AVFoundation
)
qt_internal_extend_target(QFFmpegMediaPlugin CONDITION WIN32
SOURCES
../windows/qwindowsvideodevices.cpp ../windows/qwindowsvideodevices_p.h
qwindowscamera.cpp qwindowscamera_p.h
qffmpeghwaccel_d3d11.cpp qffmpeghwaccel_d3d11_p.h
qffmpegscreencapture_dxgi.cpp qffmpegscreencapture_dxgi_p.h
INCLUDE_DIRECTORIES
../windows
LIBRARIES
Qt::MultimediaPrivate
WMF::WMF
mfreadwrite
)
qt_internal_extend_target(QFFmpegMediaPlugin CONDITION QT_FEATURE_cpp_winrt
SOURCES
qffmpegscreencapture_uwp.cpp qffmpegscreencapture_uwp_p.h
INCLUDE_DIRECTORIES
../windows
LIBRARIES
Dwmapi
Dxva2
windowsapp
)
qt_internal_extend_target(QFFmpegMediaPlugin CONDITION QT_FEATURE_linux_v4l
SOURCES
qv4l2camera.cpp qv4l2camera_p.h
)
if (ANDROID)
qt_internal_extend_target(QFFmpegMediaPlugin
SOURCES
qffmpeghwaccel_mediacodec.cpp qffmpeghwaccel_mediacodec_p.h
qandroidcamera_p.h qandroidcamera.cpp
qandroidvideodevices.cpp qandroidvideodevices_p.h
../android/wrappers/jni/androidsurfacetexture_p.h
../android/wrappers/jni/androidsurfacetexture.cpp
INCLUDE_DIRECTORIES
${FFMPEG_DIR}/include
../android/wrappers/jni/
LIBRARIES
OpenSLES
mediandk
android
)
set_property(TARGET QFFmpegMediaPlugin APPEND PROPERTY QT_ANDROID_LIB_DEPENDENCIES
plugins/multimedia/libplugins_multimedia_ffmpegmediaplugin.so
)
set_property(TARGET QFFmpegMediaPlugin APPEND PROPERTY QT_ANDROID_PERMISSIONS
android.permission.CAMERA
android.permission.RECORD_AUDIO
android.permission.BLUETOOTH
android.permission.MODIFY_AUDIO_SETTINGS
)
endif()
|