Index: talk/app/webrtc/java/jni/peerconnection_jni.cc |
diff --git a/talk/app/webrtc/java/jni/peerconnection_jni.cc b/talk/app/webrtc/java/jni/peerconnection_jni.cc |
index 984227de45dc1ee1831018d6195b249b430ec066..c79e3a5cb57f7af5b3a90a7bfdf57e602fef9064 100644 |
--- a/talk/app/webrtc/java/jni/peerconnection_jni.cc |
+++ b/talk/app/webrtc/java/jni/peerconnection_jni.cc |
@@ -1292,21 +1292,30 @@ JOW(void, PeerConnectionFactory_nativeSetOptions)( |
} |
JOW(void, PeerConnectionFactory_nativeSetVideoHwAccelerationOptions)( |
- JNIEnv* jni, jclass, jlong native_factory, jobject render_egl_context) { |
+ JNIEnv* jni, jclass, jlong native_factory, jobject local_egl_context, |
+ jobject remote_egl_context) { |
#if defined(ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) |
OwnedFactoryAndThreads* owned_factory = |
reinterpret_cast<OwnedFactoryAndThreads*>(native_factory); |
+ |
+ MediaCodecVideoEncoderFactory* encoder_factory = |
+ static_cast<MediaCodecVideoEncoderFactory*> |
+ (owned_factory->encoder_factory()); |
+ if (encoder_factory) { |
+ LOG(LS_INFO) << "Set EGL context for HW encoding."; |
+ encoder_factory->SetEGLContext(jni, local_egl_context); |
+ } |
+ |
MediaCodecVideoDecoderFactory* decoder_factory = |
static_cast<MediaCodecVideoDecoderFactory*> |
(owned_factory->decoder_factory()); |
if (decoder_factory) { |
- LOG(LS_INFO) << "Set EGL context for HW acceleration."; |
- decoder_factory->SetEGLContext(jni, render_egl_context); |
+ LOG(LS_INFO) << "Set EGL context for HW decoding."; |
+ decoder_factory->SetEGLContext(jni, remote_egl_context); |
} |
#endif |
} |
- |
static std::string |
GetJavaEnumName(JNIEnv* jni, const std::string& className, jobject j_enum) { |
jclass enumClass = FindClass(jni, className.c_str()); |