| Index: talk/app/webrtc/java/jni/androidvideocapturer_jni.cc | 
| diff --git a/talk/app/webrtc/java/jni/androidvideocapturer_jni.cc b/talk/app/webrtc/java/jni/androidvideocapturer_jni.cc | 
| index 054719a11d6bd0e572ffa688e944d2c15930c014..9b3053c94033ca24cd923fcb8972c73275a2ef57 100644 | 
| --- a/talk/app/webrtc/java/jni/androidvideocapturer_jni.cc | 
| +++ b/talk/app/webrtc/java/jni/androidvideocapturer_jni.cc | 
| @@ -47,9 +47,12 @@ int AndroidVideoCapturerJni::SetAndroidObjects(JNIEnv* jni, | 
| return 0; | 
| } | 
|  | 
| -AndroidVideoCapturerJni::AndroidVideoCapturerJni(JNIEnv* jni, | 
| -                                                 jobject j_video_capturer) | 
| -    : j_capturer_global_(jni, j_video_capturer), | 
| +AndroidVideoCapturerJni::AndroidVideoCapturerJni( | 
| +    JNIEnv* jni, | 
| +    jobject j_video_capturer, | 
| +    jobject j_surface_texture_helper) | 
| +    : j_video_capturer_(jni, j_video_capturer), | 
| +      j_surface_texture_helper_(jni, j_surface_texture_helper), | 
| j_video_capturer_class_( | 
| jni, FindClass(jni, "org/webrtc/VideoCapturerAndroid")), | 
| j_observer_class_( | 
| @@ -64,7 +67,7 @@ AndroidVideoCapturerJni::AndroidVideoCapturerJni(JNIEnv* jni, | 
| AndroidVideoCapturerJni::~AndroidVideoCapturerJni() { | 
| LOG(LS_INFO) << "AndroidVideoCapturerJni dtor"; | 
| jni()->CallVoidMethod( | 
| -      *j_capturer_global_, | 
| +      *j_video_capturer_, | 
| GetMethodID(jni(), *j_video_capturer_class_, "release", "()V")); | 
| CHECK_EXCEPTION(jni()) << "error during VideoCapturerAndroid.release()"; | 
| } | 
| @@ -90,7 +93,7 @@ void AndroidVideoCapturerJni::Start(int width, int height, int framerate, | 
| jni(), *j_video_capturer_class_, "startCapture", | 
| "(IIILandroid/content/Context;" | 
| "Lorg/webrtc/VideoCapturerAndroid$CapturerObserver;)V"); | 
| -  jni()->CallVoidMethod(*j_capturer_global_, | 
| +  jni()->CallVoidMethod(*j_video_capturer_, | 
| m, width, height, | 
| framerate, | 
| application_context_, | 
| @@ -109,7 +112,7 @@ void AndroidVideoCapturerJni::Stop() { | 
| } | 
| jmethodID m = GetMethodID(jni(), *j_video_capturer_class_, | 
| "stopCapture", "()V"); | 
| -  jni()->CallVoidMethod(*j_capturer_global_, m); | 
| +  jni()->CallVoidMethod(*j_video_capturer_, m); | 
| CHECK_EXCEPTION(jni()) << "error during VideoCapturerAndroid.stopCapture"; | 
| LOG(LS_INFO) << "AndroidVideoCapturerJni stop done"; | 
| } | 
| @@ -130,7 +133,7 @@ void AndroidVideoCapturerJni::AsyncCapturerInvoke( | 
| void AndroidVideoCapturerJni::ReturnBuffer(int64_t time_stamp) { | 
| jmethodID m = GetMethodID(jni(), *j_video_capturer_class_, | 
| "returnBuffer", "(J)V"); | 
| -  jni()->CallVoidMethod(*j_capturer_global_, m, time_stamp); | 
| +  jni()->CallVoidMethod(*j_video_capturer_, m, time_stamp); | 
| CHECK_EXCEPTION(jni()) << "error during VideoCapturerAndroid.returnBuffer"; | 
| } | 
|  | 
| @@ -139,7 +142,7 @@ std::string AndroidVideoCapturerJni::GetSupportedFormats() { | 
| GetMethodID(jni(), *j_video_capturer_class_, | 
| "getSupportedFormatsAsJson", "()Ljava/lang/String;"); | 
| jstring j_json_caps = | 
| -      (jstring) jni()->CallObjectMethod(*j_capturer_global_, m); | 
| +      (jstring) jni()->CallObjectMethod(*j_video_capturer_, m); | 
| CHECK_EXCEPTION(jni()) << "error during supportedFormatsAsJson"; | 
| return JavaToStdString(jni(), j_json_caps); | 
| } | 
| @@ -186,7 +189,7 @@ void AndroidVideoCapturerJni::OnTextureFrame(int width, | 
| const NativeHandleImpl& handle) { | 
| rtc::scoped_refptr<webrtc::VideoFrameBuffer> buffer( | 
| new rtc::RefCountedObject<AndroidTextureBuffer>( | 
| -          width, height, handle, | 
| +          width, height, handle, *j_surface_texture_helper_, | 
| rtc::Bind(&AndroidVideoCapturerJni::ReturnBuffer, this, | 
| timestamp_ns))); | 
| AsyncCapturerInvoke("OnIncomingFrame", | 
| @@ -248,9 +251,11 @@ JOW(void, VideoCapturerAndroid_00024NativeObserver_nativeOnOutputFormatRequest) | 
| } | 
|  | 
| JOW(jlong, VideoCapturerAndroid_nativeCreateVideoCapturer) | 
| -    (JNIEnv* jni, jclass, jobject j_video_capturer) { | 
| +    (JNIEnv* jni, jclass, | 
| +     jobject j_video_capturer, jobject j_surface_texture_helper) { | 
| rtc::scoped_refptr<webrtc::AndroidVideoCapturerDelegate> delegate = | 
| -      new rtc::RefCountedObject<AndroidVideoCapturerJni>(jni, j_video_capturer); | 
| +      new rtc::RefCountedObject<AndroidVideoCapturerJni>( | 
| +          jni, j_video_capturer, j_surface_texture_helper); | 
| rtc::scoped_ptr<cricket::VideoCapturer> capturer( | 
| new webrtc::AndroidVideoCapturer(delegate)); | 
| // Caller takes ownership of the cricket::VideoCapturer* pointer. | 
|  |