Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit d10f6a3

Browse files
committed
Fix build failure when MSDK is not used.
1 parent 9891ec1 commit d10f6a3

File tree

7 files changed

+51
-30
lines changed

7 files changed

+51
-30
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Before you start, make sure you have the following prerequisites installed/built
2323
The following dependencies are for Windows only:
2424

2525
- [Boost 1.67.0 or higher](https://www.boost.org/users/download/).
26-
- [Intel Media SDK for Windows, version 2018 R1 or higher](https://software.intel.com/en-us/media-sdk/choose-download/client).
26+
- [Intel Media SDK for Windows, version 2020 R1 or higher](https://software.intel.com/en-us/media-sdk/choose-download/client).
2727

2828
### Get the code
2929
- Make sure you clone the source code to a directory named `src`.

talk/owt/BUILD.gn

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,32 @@ static_library("owt_sdk_base") {
177177

178178
defines = [ "USE_BUILTIN_SW_CODECS" ]
179179

180-
if (owt_msdk_header_root != "") {
180+
if (is_win && owt_msdk_header_root != "") {
181181
include_dirs += [ owt_msdk_header_root ]
182182
defines += [ "OWT_USE_MSDK" ]
183+
sources += [
184+
"sdk/base/win/base_allocator.cc",
185+
"sdk/base/win/base_allocator.h",
186+
"sdk/base/win/d3d_allocator.cc",
187+
"sdk/base/win/d3d_allocator.h",
188+
"sdk/base/win/d3d11_allocator.cc",
189+
"sdk/base/win/d3d11_allocator.h",
190+
"sdk/base/win/d3dnativeframe.h",
191+
"sdk/base/win/mediacapabilities.cc",
192+
"sdk/base/win/mediacapabilities.h",
193+
"sdk/base/win/msdkvideobase.cc",
194+
"sdk/base/win/msdkvideobase.h",
195+
"sdk/base/win/msdkvideodecoder.cc",
196+
"sdk/base/win/msdkvideodecoder.h",
197+
"sdk/base/win/msdkvideodecoderfactory.cc",
198+
"sdk/base/win/msdkvideodecoderfactory.h",
199+
"sdk/base/win/msdkvideoencoder.cc",
200+
"sdk/base/win/msdkvideoencoder.h",
201+
"sdk/base/win/msdkvideoencoderfactory.cc",
202+
"sdk/base/win/msdkvideoencoderfactory.h",
203+
"sdk/base/win/sysmem_allocator.cc",
204+
"sdk/base/win/sysmem_allocator.h",
205+
]
183206
}
184207

185208
if (rtc_include_internal_audio_device) {
@@ -212,27 +235,6 @@ static_library("owt_sdk_base") {
212235
sources += [
213236
"sdk/base/desktopcapturer.cc",
214237
"sdk/base/desktopcapturer.h",
215-
"sdk/base/win/base_allocator.cc",
216-
"sdk/base/win/base_allocator.h",
217-
"sdk/base/win/d3d_allocator.cc",
218-
"sdk/base/win/d3d_allocator.h",
219-
"sdk/base/win/d3d11_allocator.cc",
220-
"sdk/base/win/d3d11_allocator.h",
221-
"sdk/base/win/d3dnativeframe.h",
222-
"sdk/base/win/mediacapabilities.cc",
223-
"sdk/base/win/mediacapabilities.h",
224-
"sdk/base/win/msdkvideobase.cc",
225-
"sdk/base/win/msdkvideobase.h",
226-
"sdk/base/win/msdkvideodecoder.cc",
227-
"sdk/base/win/msdkvideodecoder.h",
228-
"sdk/base/win/msdkvideodecoderfactory.cc",
229-
"sdk/base/win/msdkvideodecoderfactory.h",
230-
"sdk/base/win/msdkvideoencoder.cc",
231-
"sdk/base/win/msdkvideoencoder.h",
232-
"sdk/base/win/msdkvideoencoderfactory.cc",
233-
"sdk/base/win/msdkvideoencoderfactory.h",
234-
"sdk/base/win/sysmem_allocator.cc",
235-
"sdk/base/win/sysmem_allocator.h",
236238
"sdk/base/win/videorendererwin.cc",
237239
"sdk/base/win/videorendererwin.h",
238240
"sdk/base/win/videorendererd3d11.cc",

talk/owt/sdk/base/mediautils.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ absl::optional<AV1Profile> StringToAV1Profile(const std::string& str) {
162162
}
163163

164164
absl::optional<H265ProfileId> StringToH265Profile(const std::string& str) {
165+
#ifdef OWT_USE_MSDK
165166
const absl::optional<int> i = rtc::StringToNumber<int>(str);
166167
if (!i.has_value())
167168
return absl::nullopt;
@@ -183,6 +184,7 @@ absl::optional<H265ProfileId> StringToH265Profile(const std::string& str) {
183184
default:
184185
return absl::nullopt;
185186
}
187+
#endif
186188
return absl::nullopt;
187189
}
188190

talk/owt/sdk/base/mediautils.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,8 @@ enum class H265ProfileId : int {
8080
kMain,
8181
kMain10,
8282
kMainStillPicture,
83-
kMainRExt // Range extension
84-
#if (MFX_VERSION >= 1032)
85-
,
83+
kMainRExt, // Range extension
8684
KScc // Screen content extension.
87-
#endif
8885
};
8986

9087
/// Level ID as negotiated in SDP level-id field.

talk/owt/sdk/base/peerconnectiondependencyfactory.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@
2323
#include "webrtc/rtc_base/thread.h"
2424
#include "webrtc/system_wrappers/include/field_trial.h"
2525
#if defined(WEBRTC_WIN)
26+
#ifdef OWT_USE_MSDK
2627
#include "talk/owt/sdk/base/win/msdkvideodecoderfactory.h"
2728
#include "talk/owt/sdk/base/win/msdkvideoencoderfactory.h"
29+
#endif
2830
#elif defined(WEBRTC_LINUX)
2931
#include "talk/owt/sdk/base/linux/msdkvideodecoderfactory.h"
3032
#elif defined(WEBRTC_IOS)
@@ -164,7 +166,11 @@ void PeerConnectionDependencyFactory::
164166
// For Linux HW encoder pending verification.
165167
encoder_factory = webrtc::CreateBuiltinVideoEncoderFactory();
166168
#else
169+
#ifdef OWT_USE_MSDK
167170
encoder_factory.reset(new MSDKVideoEncoderFactory());
171+
#else
172+
encoder_factory = webrtc::CreateBuiltinVideoEncoderFactory();
173+
#endif
168174
#endif
169175
} else {
170176
encoder_factory = webrtc::CreateBuiltinVideoEncoderFactory();
@@ -174,7 +180,11 @@ void PeerConnectionDependencyFactory::
174180
decoder_factory.reset(new CustomizedVideoDecoderFactory(
175181
GlobalConfiguration::GetCustomizedVideoDecoder()));
176182
} else if (render_hardware_acceleration_enabled_) {
183+
#ifdef OWT_USE_MSDK
177184
decoder_factory.reset(new MSDKVideoDecoderFactory());
185+
#else
186+
decoder_factory = webrtc::CreateBuiltinVideoDecoderFactory();
187+
#endif
178188
} else {
179189
decoder_factory = webrtc::CreateBuiltinVideoDecoderFactory();
180190
}

talk/owt/sdk/base/win/mediacapabilities.cc

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,15 @@ MediaCapabilities::SupportedCapabilitiesForVideoEncoder(
4545
//
4646
// Although hardware support it, we will not enable HW encoding for VP8/HEVC
4747
// with PAK + Shader.
48+
std::vector<VideoEncoderCapability> capabilities;
49+
50+
#ifdef OWT_USE_MSDK
4851
bool support_h264 = false, h264_lp = false, h264_argb = false;
4952
bool support_hevc_8 = false, support_hevc_10 = false,
5053
support_hevc_scc = false;
5154
bool support_vp9_8 = false, support_vp9_10 = false;
5255
bool is_discrete_graphics = false;
5356

54-
std::vector<VideoEncoderCapability> capabilities;
5557
// Check platform type.
5658
if (inited_) {
5759
unsigned short platform_code = mfx_platform_.CodeName;
@@ -247,14 +249,15 @@ MediaCapabilities::SupportedCapabilitiesForVideoEncoder(
247249
}
248250
}
249251
}
252+
#endif
250253
return capabilities;
251254
}
252255

253256
std::vector<VideoDecoderCapability>
254257
MediaCapabilities::SupportedCapabilitiesForVideoDecoder(
255258
std::vector<owt::base::VideoCodec>& codec_types) {
256259
std::vector<VideoDecoderCapability> capabilities;
257-
260+
#ifdef OWT_USE_MSDK
258261
if (inited_) {
259262
mfxStatus sts = MFX_ERR_NONE;
260263
mfxVideoParam video_param;
@@ -350,6 +353,7 @@ MediaCapabilities::SupportedCapabilitiesForVideoDecoder(
350353
}
351354
}
352355
}
356+
#endif
353357
return capabilities;
354358
}
355359

@@ -371,6 +375,7 @@ MediaCapabilities* MediaCapabilities::Get() {
371375
MediaCapabilities::MediaCapabilities() {}
372376

373377
MediaCapabilities::~MediaCapabilities() {
378+
#ifdef OWT_USE_MSDK
374379
if (mfx_encoder_) {
375380
mfx_encoder_->Close();
376381
mfx_encoder_.reset();
@@ -382,9 +387,11 @@ MediaCapabilities::~MediaCapabilities() {
382387
if (msdk_factory_ && mfx_session_) {
383388
msdk_factory_->DestroySession(mfx_session_);
384389
}
390+
#endif
385391
}
386392

387393
bool MediaCapabilities::Init() {
394+
#ifdef OWT_USE_MSDK
388395
bool res = false;
389396
msdk_factory_ = owt::base::MSDKFactory::Get();
390397
if (!msdk_factory_)
@@ -410,6 +417,9 @@ bool MediaCapabilities::Init() {
410417

411418
failed:
412419
return res;
420+
#else
421+
return true;
422+
#endif
413423
}
414424

415425

talk/owt/sdk/base/win/mediacapabilities.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
#include <mutex>
99
#include <vector>
10-
#include "base_allocator.h"
1110
#ifdef OWT_USE_MSDK
11+
#include "base_allocator.h"
1212
#include "mfxvideo++.h"
1313
#include "talk/owt/sdk/base/win/msdkvideobase.h"
1414
#endif

0 commit comments

Comments
 (0)