Skip to content

Commit dad10f4

Browse files
committed
m142 の ScopedJavaLocalRef の変更に対応する
1 parent 34222f4 commit dad10f4

File tree

1 file changed

+51
-29
lines changed

1 file changed

+51
-29
lines changed

src/android/android_capturer.cpp

Lines changed: 51 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,12 @@ bool AndroidCapturer::EnumVideoDevice(
6060
for (auto device : devices) {
6161
// camera2enumerator.isFrontFacing(device)
6262
// camera2enumerator.isBackFacing(device)
63-
webrtc::ScopedJavaLocalRef<jclass> camcls(
64-
env, env->GetObjectClass(camera2enumerator.obj()));
65-
webrtc::ScopedJavaLocalRef<jstring> device_str(
66-
env, env->NewStringUTF(device.c_str()));
63+
webrtc::ScopedJavaLocalRef<jclass> camcls =
64+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(
65+
env, env->GetObjectClass(camera2enumerator.obj()));
66+
webrtc::ScopedJavaLocalRef<jstring> device_str =
67+
webrtc::ScopedJavaLocalRef<jstring>::Adopt(
68+
env, env->NewStringUTF(device.c_str()));
6769
jmethodID frontid = env->GetMethodID(camcls.obj(), "isFrontFacing",
6870
"(Ljava/lang/String;)Z");
6971
jboolean frontfacing = env->CallBooleanMethod(camera2enumerator.obj(),
@@ -95,11 +97,13 @@ webrtc::ScopedJavaLocalRef<jobject> AndroidCapturer::createSurfaceTextureHelper(
9597
env->GetStaticMethodID(helpcls.obj(), "create",
9698
"(Ljava/lang/String;Lorg/webrtc/EglBase$Context;)"
9799
"Lorg/webrtc/SurfaceTextureHelper;");
98-
webrtc::ScopedJavaLocalRef<jstring> str(
99-
env, env->NewStringUTF("VideoCapturerThread"));
100-
webrtc::ScopedJavaLocalRef<jobject> helper(
101-
env,
102-
env->CallStaticObjectMethod(helpcls.obj(), createid, str.obj(), nullptr));
100+
webrtc::ScopedJavaLocalRef<jstring> str =
101+
webrtc::ScopedJavaLocalRef<jstring>::Adopt(
102+
env, env->NewStringUTF("VideoCapturerThread"));
103+
webrtc::ScopedJavaLocalRef<jobject> helper =
104+
webrtc::ScopedJavaLocalRef<jobject>::Adopt(
105+
env, env->CallStaticObjectMethod(helpcls.obj(), createid, str.obj(),
106+
nullptr));
103107

104108
return helper;
105109
}
@@ -111,8 +115,9 @@ webrtc::ScopedJavaLocalRef<jobject> AndroidCapturer::createCamera2Enumerator(
111115
webrtc::GetClass(env, "org/webrtc/Camera2Enumerator");
112116
jmethodID ctorid =
113117
env->GetMethodID(camcls.obj(), "<init>", "(Landroid/content/Context;)V");
114-
webrtc::ScopedJavaLocalRef<jobject> enumerator(
115-
env, env->NewObject(camcls.obj(), ctorid, context));
118+
webrtc::ScopedJavaLocalRef<jobject> enumerator =
119+
webrtc::ScopedJavaLocalRef<jobject>::Adopt(
120+
env, env->NewObject(camcls.obj(), ctorid, context));
116121

117122
// Camera1Enumerator enumerator = new Camera1Enumerator();
118123
//webrtc::ScopedJavaLocalRef<jclass> camcls =
@@ -127,12 +132,15 @@ std::vector<std::string> AndroidCapturer::enumDevices(
127132
JNIEnv* env,
128133
jobject camera_enumerator) {
129134
// for (string device in enumerator.getDeviceNames()) { }
130-
webrtc::ScopedJavaLocalRef<jclass> camcls(
131-
env, env->GetObjectClass(camera_enumerator));
135+
webrtc::ScopedJavaLocalRef<jclass> camcls =
136+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(
137+
env, env->GetObjectClass(camera_enumerator));
132138
jmethodID devicesid =
133139
env->GetMethodID(camcls.obj(), "getDeviceNames", "()[Ljava/lang/String;");
134-
webrtc::ScopedJavaLocalRef<jobjectArray> devices(
135-
env, (jobjectArray)env->CallObjectMethod(camera_enumerator, devicesid));
140+
webrtc::ScopedJavaLocalRef<jobjectArray> devices =
141+
webrtc::ScopedJavaLocalRef<jobjectArray>::Adopt(
142+
env,
143+
(jobjectArray)env->CallObjectMethod(camera_enumerator, devicesid));
136144

137145
if (devices.obj() == nullptr) {
138146
RTC_LOG(LS_ERROR) << "Failed to enumerator.getDeviceNames()";
@@ -142,8 +150,9 @@ std::vector<std::string> AndroidCapturer::enumDevices(
142150
std::vector<std::string> r;
143151
int count = env->GetArrayLength(devices.obj());
144152
for (int i = 0; i < count; i++) {
145-
webrtc::ScopedJavaLocalRef<jstring> device(
146-
env, (jstring)env->GetObjectArrayElement(devices.obj(), i));
153+
webrtc::ScopedJavaLocalRef<jstring> device =
154+
webrtc::ScopedJavaLocalRef<jstring>::Adopt(
155+
env, (jstring)env->GetObjectArrayElement(devices.obj(), i));
147156
r.push_back(env->GetStringUTFChars(device.obj(), nullptr));
148157
}
149158
return r;
@@ -153,20 +162,23 @@ webrtc::ScopedJavaLocalRef<jobject> AndroidCapturer::createCapturer(
153162
jobject camera_enumerator,
154163
std::string device) {
155164
// videoCapturer = enumerator.createCapturer(device, null /* eventsHandler */);
156-
webrtc::ScopedJavaLocalRef<jclass> camcls(
157-
env, env->GetObjectClass(camera_enumerator));
165+
webrtc::ScopedJavaLocalRef<jclass> camcls =
166+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(
167+
env, env->GetObjectClass(camera_enumerator));
158168
jmethodID createid =
159169
env->GetMethodID(camcls.obj(), "createCapturer",
160170
"("
161171
"Ljava/lang/String;"
162172
"Lorg/webrtc/CameraVideoCapturer$CameraEventsHandler;"
163173
")"
164174
"Lorg/webrtc/CameraVideoCapturer;");
165-
webrtc::ScopedJavaLocalRef<jstring> str(env,
166-
env->NewStringUTF(device.c_str()));
167-
webrtc::ScopedJavaLocalRef<jobject> capturer(
168-
env,
169-
env->CallObjectMethod(camera_enumerator, createid, str.obj(), nullptr));
175+
webrtc::ScopedJavaLocalRef<jstring> str =
176+
webrtc::ScopedJavaLocalRef<jstring>::Adopt(
177+
env, env->NewStringUTF(device.c_str()));
178+
webrtc::ScopedJavaLocalRef<jobject> capturer =
179+
webrtc::ScopedJavaLocalRef<jobject>::Adopt(
180+
env, env->CallObjectMethod(camera_enumerator, createid, str.obj(),
181+
nullptr));
170182

171183
return capturer;
172184
}
@@ -176,7 +188,9 @@ void AndroidCapturer::initializeCapturer(JNIEnv* env,
176188
jobject context,
177189
jobject observer) {
178190
// videoCapturer.initialize(videoCapturerSurfaceTextureHelper, applicationContext, nativeGetJavaVideoCapturerObserver(nativeClient));
179-
webrtc::ScopedJavaLocalRef<jclass> capcls(env, env->GetObjectClass(capturer));
191+
webrtc::ScopedJavaLocalRef<jclass> capcls =
192+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(env,
193+
env->GetObjectClass(capturer));
180194
jmethodID initid = env->GetMethodID(capcls.obj(), "initialize",
181195
"("
182196
"Lorg/webrtc/SurfaceTextureHelper;"
@@ -191,24 +205,32 @@ void AndroidCapturer::startCapture(JNIEnv* env,
191205
int height,
192206
int target_fps) {
193207
// videoCapturer.startCapture(width, height, target_fps);
194-
webrtc::ScopedJavaLocalRef<jclass> capcls(env, env->GetObjectClass(capturer));
208+
webrtc::ScopedJavaLocalRef<jclass> capcls =
209+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(env,
210+
env->GetObjectClass(capturer));
195211
jmethodID startid = env->GetMethodID(capcls.obj(), "startCapture", "(III)V");
196212
env->CallVoidMethod(capturer, startid, width, height, target_fps);
197213
}
198214
void AndroidCapturer::stopCapture(JNIEnv* env, jobject capturer) {
199215
// videoCapturer.stopCapture();
200-
webrtc::ScopedJavaLocalRef<jclass> capcls(env, env->GetObjectClass(capturer));
216+
webrtc::ScopedJavaLocalRef<jclass> capcls =
217+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(env,
218+
env->GetObjectClass(capturer));
201219
jmethodID stopid = env->GetMethodID(capcls.obj(), "stopCapture", "()V");
202220
env->CallVoidMethod(capturer, stopid);
203221
}
204222
void AndroidCapturer::dispose(JNIEnv* env, jobject capturer, jobject helper) {
205223
// videoCapturer.dispose();
206224
// surfaceTextureHelper.dispose();
207-
webrtc::ScopedJavaLocalRef<jclass> capcls(env, env->GetObjectClass(capturer));
225+
webrtc::ScopedJavaLocalRef<jclass> capcls =
226+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(env,
227+
env->GetObjectClass(capturer));
208228
jmethodID capdisposeid = env->GetMethodID(capcls.obj(), "dispose", "()V");
209229
env->CallVoidMethod(capturer, capdisposeid);
210230

211-
webrtc::ScopedJavaLocalRef<jclass> helpcls(env, env->GetObjectClass(helper));
231+
webrtc::ScopedJavaLocalRef<jclass> helpcls =
232+
webrtc::ScopedJavaLocalRef<jclass>::Adopt(env,
233+
env->GetObjectClass(helper));
212234
jmethodID helpdisposeid = env->GetMethodID(helpcls.obj(), "dispose", "()V");
213235
env->CallVoidMethod(helper, helpdisposeid);
214236
}

0 commit comments

Comments
 (0)