-
-
Notifications
You must be signed in to change notification settings - Fork 614
Expand file tree
/
Copy pathmediapipe_workaround.diff
More file actions
155 lines (150 loc) · 6.55 KB
/
Copy pathmediapipe_workaround.diff
File metadata and controls
155 lines (150 loc) · 6.55 KB
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
144
145
146
147
148
149
150
151
152
153
154
155
diff --git a/mediapipe/framework/deps/BUILD b/mediapipe/framework/deps/BUILD
index 2dc600ada..953e12127 100644
--- a/mediapipe/framework/deps/BUILD
+++ b/mediapipe/framework/deps/BUILD
@@ -114,6 +114,10 @@ cc_library(
name = "platform_strings",
srcs = ["platform_strings.cc"],
hdrs = ["platform_strings.h"],
+ local_defines = select({
+ "@platforms//os:windows": ["UNICODE"],
+ "//conditions:default": [],
+ }),
visibility = ["//visibility:public"],
)
diff --git a/mediapipe/framework/deps/platform_strings.cc b/mediapipe/framework/deps/platform_strings.cc
index fa8f3c791..e053d549f 100644
--- a/mediapipe/framework/deps/platform_strings.cc
+++ b/mediapipe/framework/deps/platform_strings.cc
@@ -26,21 +26,21 @@ std::string FormatLastError() {
return std::string("(no error reported)");
}
- LPSTR message_buffer = nullptr;
- DWORD size = FormatMessage(
+ LPWSTR message_buffer = nullptr;
+ DWORD size = FormatMessageW(
/*dwFlags=*/(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS),
/*lpSource=*/NULL,
/*dwMessageId=*/message_id,
/*dwLanguageId=*/MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- /*lpBuffer=*/(LPSTR)&message_buffer,
+ /*lpBuffer=*/reinterpret_cast<LPWSTR>(&message_buffer),
/*nSize=*/0,
/*Arguments=*/NULL);
if (size == 0) {
return "(error while trying to format the error message)";
}
- std::string message(message_buffer, size);
+ std::wstring message(message_buffer, size);
LocalFree(message_buffer);
return NativeToUtf8(message);
}
diff --git a/mediapipe/framework/output_stream_handler.cc b/mediapipe/framework/output_stream_handler.cc
index e27d1c688..55f2f3bd3 100644
--- a/mediapipe/framework/output_stream_handler.cc
+++ b/mediapipe/framework/output_stream_handler.cc
@@ -143,9 +143,7 @@ OutputStreamHandler::GetMonitoringInfo() {
continue;
}
monitoring_info_vector.emplace_back(OutputStreamMonitoringInfo(
- {.stream_name = DebugStreamName(id),
- .num_packets_added = stream->NumPacketsAdded(),
- .next_timestamp_bound = stream->NextTimestampBound()}));
+ {DebugStreamName(id), stream->NumPacketsAdded(), stream->NextTimestampBound()}));
}
return monitoring_info_vector;
}
diff --git a/mediapipe/framework/port/opencv_core_inc.h b/mediapipe/framework/port/opencv_core_inc.h
index 128624725..1a4094173 100644
--- a/mediapipe/framework/port/opencv_core_inc.h
+++ b/mediapipe/framework/port/opencv_core_inc.h
@@ -20,7 +20,7 @@
#ifdef CV_VERSION_EPOCH // for OpenCV 2.x
#include <opencv2/core/core.hpp>
#else
-#if CV_VERSION_MAJOR == 3
+#if CV_VERSION_MAJOR == 3 || CV_VERSION_MAJOR == 4
#include <opencv2/cvconfig.h>
#endif
diff --git a/mediapipe/tasks/cc/core/BUILD b/mediapipe/tasks/cc/core/BUILD
index 9c53dcca7..bd283bf08 100644
--- a/mediapipe/tasks/cc/core/BUILD
+++ b/mediapipe/tasks/cc/core/BUILD
@@ -57,7 +57,12 @@ cc_library(
name = "external_file_handler",
srcs = ["external_file_handler.cc"],
hdrs = ["external_file_handler.h"],
+ local_defines = select({
+ "@platforms//os:windows": ["UNICODE"],
+ "//conditions:default": [],
+ }),
deps = [
+ "//mediapipe/framework/deps:platform_strings",
"//mediapipe/framework/port:integral_types",
"//mediapipe/framework/port:status",
"//mediapipe/tasks/cc:common",
diff --git a/mediapipe/tasks/cc/core/external_file_handler.cc b/mediapipe/tasks/cc/core/external_file_handler.cc
index 069b904e9..d8b5e0364 100644
--- a/mediapipe/tasks/cc/core/external_file_handler.cc
+++ b/mediapipe/tasks/cc/core/external_file_handler.cc
@@ -40,6 +40,7 @@ limitations under the License.
#include "absl/strings/match.h"
#include "absl/strings/str_format.h"
#include "absl/strings/string_view.h"
+#include "mediapipe/framework/deps/platform_strings.h"
#include "mediapipe/framework/port/status_macros.h"
#include "mediapipe/tasks/cc/common.h"
#include "mediapipe/tasks/cc/core/proto/external_file.pb.h"
@@ -124,7 +125,11 @@ absl::Status ExternalFileHandler::MapExternalFile() {
if (!external_file_.file_name().empty()) {
MP_ASSIGN_OR_RETURN(std::string file_name,
PathToResourceAsFile(external_file_.file_name()));
+#ifdef _WIN32
+ owned_fd_ = _wopen(Utf8ToNative(file_name).c_str(), O_RDONLY | O_BINARY);
+#else
owned_fd_ = open(file_name.c_str(), O_RDONLY | O_BINARY);
+#endif
if (owned_fd_ < 0) {
const std::string error_message = absl::StrFormat(
"Unable to open file at %s", external_file_.file_name());
diff --git a/mediapipe/tasks/cc/core/task_api_factory.h b/mediapipe/tasks/cc/core/task_api_factory.h
index a11a23fcf..dbb5fe6ca 100644
--- a/mediapipe/tasks/cc/core/task_api_factory.h
+++ b/mediapipe/tasks/cc/core/task_api_factory.h
@@ -76,15 +76,17 @@ class TaskApiFactory {
found_task_subgraph = true;
}
}
+#if !MEDIAPIPE_DISABLE_GPU
MP_ASSIGN_OR_RETURN(
auto runner,
-#if !MEDIAPIPE_DISABLE_GPU
core::TaskRunner::Create(std::move(graph_config), std::move(resolver),
std::move(packets_callback),
std::move(default_executor),
std::move(input_side_packets),
/*resources=*/nullptr, std::move(error_fn)));
#else
+ MP_ASSIGN_OR_RETURN(
+ auto runner,
core::TaskRunner::Create(
std::move(graph_config), std::move(resolver),
std::move(packets_callback), std::move(default_executor),
diff --git a/mediapipe/tasks/cc/vision/holistic_landmarker/holistic_landmarker_graph.cc b/mediapipe/tasks/cc/vision/holistic_landmarker/holistic_landmarker_graph.cc
index 2ff140c07..128a43263 100644
--- a/mediapipe/tasks/cc/vision/holistic_landmarker/holistic_landmarker_graph.cc
+++ b/mediapipe/tasks/cc/vision/holistic_landmarker/holistic_landmarker_graph.cc
@@ -387,6 +387,13 @@ class HolisticLandmarkerGraph : public core::ModelTaskGraph {
holistic_options->mutable_face_landmarks_detector_graph_options()
->mutable_face_blendshapes_graph_options(),
kFaceBlendshapesModelName, create_copy));
+ holistic_options->mutable_face_landmarks_detector_graph_options()
+ ->mutable_face_blendshapes_graph_options()
+ ->mutable_base_options()
+ ->mutable_acceleration()
+ ->mutable_xnnpack();
+ ABSL_LOG(WARNING) << "Sets FaceBlendshapesGraph acceleration to xnnpack "
+ << "by default.";
}
}