diff --git a/webrtc/api/androidtests/src/org/webrtc/GlRectDrawerTest.java b/webrtc/api/androidtests/src/org/webrtc/GlRectDrawerTest.java index 3a69da1cae..46e8e48498 100644 --- a/webrtc/api/androidtests/src/org/webrtc/GlRectDrawerTest.java +++ b/webrtc/api/androidtests/src/org/webrtc/GlRectDrawerTest.java @@ -250,8 +250,8 @@ public final class GlRectDrawerTest extends ActivityTestCase { eglBase.createPbufferSurface(WIDTH, HEIGHT); // Create resources for generating OES textures. - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(eglBase.getEglBaseContext()); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, eglBase.getEglBaseContext()); final StubOesTextureProducer oesProducer = new StubOesTextureProducer( eglBase.getEglBaseContext(), surfaceTextureHelper.getSurfaceTexture(), WIDTH, HEIGHT); final SurfaceTextureHelperTest.MockTextureListener listener = diff --git a/webrtc/api/androidtests/src/org/webrtc/SurfaceTextureHelperTest.java b/webrtc/api/androidtests/src/org/webrtc/SurfaceTextureHelperTest.java index 84d4571f88..c5b9ec430e 100644 --- a/webrtc/api/androidtests/src/org/webrtc/SurfaceTextureHelperTest.java +++ b/webrtc/api/androidtests/src/org/webrtc/SurfaceTextureHelperTest.java @@ -102,8 +102,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { final GlRectDrawer drawer = new GlRectDrawer(); // Create SurfaceTextureHelper and listener. - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(eglBase.getEglBaseContext()); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, eglBase.getEglBaseContext()); final MockTextureListener listener = new MockTextureListener(); surfaceTextureHelper.startListening(listener); surfaceTextureHelper.getSurfaceTexture().setDefaultBufferSize(width, height); @@ -169,8 +169,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { eglBase.createPbufferSurface(width, height); // Create SurfaceTextureHelper and listener. - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(eglBase.getEglBaseContext()); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, eglBase.getEglBaseContext()); final MockTextureListener listener = new MockTextureListener(); surfaceTextureHelper.startListening(listener); surfaceTextureHelper.getSurfaceTexture().setDefaultBufferSize(width, height); @@ -229,8 +229,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { @MediumTest public static void testDispose() throws InterruptedException { // Create SurfaceTextureHelper and listener. - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null); final MockTextureListener listener = new MockTextureListener(); surfaceTextureHelper.startListening(listener); // Create EglBase with the SurfaceTexture as target EGLSurface. @@ -265,8 +265,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { */ @SmallTest public static void testDisposeImmediately() { - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null); surfaceTextureHelper.dispose(); } @@ -288,8 +288,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { @MediumTest public static void testStopListening() throws InterruptedException { // Create SurfaceTextureHelper and listener. - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null); final MockTextureListener listener = new MockTextureListener(); surfaceTextureHelper.startListening(listener); // Create EglBase with the SurfaceTexture as target EGLSurface. @@ -324,8 +324,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { */ @SmallTest public static void testStopListeningImmediately() throws InterruptedException { - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null); final MockTextureListener listener = new MockTextureListener(); surfaceTextureHelper.startListening(listener); stopListeningOnHandlerThread(surfaceTextureHelper); @@ -338,8 +338,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { */ @SmallTest public static void testStopListeningImmediatelyOnHandlerThread() throws InterruptedException { - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null); final MockTextureListener listener = new MockTextureListener(); final CountDownLatch stopListeningBarrier = new CountDownLatch(1); @@ -377,8 +377,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { @MediumTest public static void testRestartListeningWithNewListener() throws InterruptedException { // Create SurfaceTextureHelper and listener. - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null); final MockTextureListener listener1 = new MockTextureListener(); surfaceTextureHelper.startListening(listener1); // Create EglBase with the SurfaceTexture as target EGLSurface. @@ -425,8 +425,8 @@ public final class SurfaceTextureHelperTest extends ActivityTestCase { final EglBase eglBase = EglBase.create(null, EglBase.CONFIG_PLAIN); // Create SurfaceTextureHelper and listener. - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(eglBase.getEglBaseContext()); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, eglBase.getEglBaseContext()); final MockTextureListener listener = new MockTextureListener(); surfaceTextureHelper.startListening(listener); surfaceTextureHelper.getSurfaceTexture().setDefaultBufferSize(width, height); diff --git a/webrtc/api/androidtests/src/org/webrtc/VideoCapturerAndroidTestFixtures.java b/webrtc/api/androidtests/src/org/webrtc/VideoCapturerAndroidTestFixtures.java index 61a68758e5..2bd1e62324 100644 --- a/webrtc/api/androidtests/src/org/webrtc/VideoCapturerAndroidTestFixtures.java +++ b/webrtc/api/androidtests/src/org/webrtc/VideoCapturerAndroidTestFixtures.java @@ -286,8 +286,8 @@ public class VideoCapturerAndroidTestFixtures { final List formats = capturer.getSupportedFormats(); final CameraEnumerationAndroid.CaptureFormat format = formats.get(0); - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); final FakeCapturerObserver observer = new FakeCapturerObserver(); capturer.startCapture(format.width, format.height, format.maxFramerate, surfaceTextureHelper, appContext, observer); @@ -310,8 +310,8 @@ public class VideoCapturerAndroidTestFixtures { final List formats = capturer.getSupportedFormats(); final CameraEnumerationAndroid.CaptureFormat format = formats.get(0); - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); final FakeCapturerObserver observer = new FakeCapturerObserver(); capturer.startCapture(format.width, format.height, format.maxFramerate, surfaceTextureHelper, appContext, observer); @@ -356,8 +356,8 @@ public class VideoCapturerAndroidTestFixtures { static public void startStopWithDifferentResolutions(VideoCapturerAndroid capturer, Context appContext) throws InterruptedException { - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); FakeCapturerObserver observer = new FakeCapturerObserver(); List formats = capturer.getSupportedFormats(); @@ -409,8 +409,8 @@ public class VideoCapturerAndroidTestFixtures { final CameraEnumerationAndroid.CaptureFormat format = formats.get(0); Camera camera = Camera.open(capturer.getCurrentCameraId()); - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); final FakeCapturerObserver observer = new FakeCapturerObserver(); capturer.startCapture(format.width, format.height, format.maxFramerate, surfaceTextureHelper, appContext, observer); @@ -434,8 +434,8 @@ public class VideoCapturerAndroidTestFixtures { final CameraEnumerationAndroid.CaptureFormat format = formats.get(0); Camera camera = Camera.open(capturer.getCurrentCameraId()); - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); final FakeCapturerObserver observer = new FakeCapturerObserver(); capturer.startCapture(format.width, format.height, format.maxFramerate, surfaceTextureHelper, appContext, observer); @@ -460,8 +460,8 @@ public class VideoCapturerAndroidTestFixtures { final CameraEnumerationAndroid.CaptureFormat format = formats.get(0); Camera camera = Camera.open(capturer.getCurrentCameraId()); - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); final FakeCapturerObserver observer = new FakeCapturerObserver(); capturer.startCapture(format.width, format.height, format.maxFramerate, surfaceTextureHelper, appContext, observer); @@ -473,8 +473,8 @@ public class VideoCapturerAndroidTestFixtures { static public void returnBufferLate(VideoCapturerAndroid capturer, Context appContext) throws InterruptedException { - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); FakeCapturerObserver observer = new FakeCapturerObserver(); List formats = capturer.getSupportedFormats(); @@ -550,8 +550,8 @@ public class VideoCapturerAndroidTestFixtures { final List formats = capturer.getSupportedFormats(); final CameraEnumerationAndroid.CaptureFormat format = formats.get(0); - final SurfaceTextureHelper surfaceTextureHelper = - SurfaceTextureHelper.create(null /* sharedContext */); + final SurfaceTextureHelper surfaceTextureHelper = SurfaceTextureHelper.create( + "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */); final FakeCapturerObserver observer = new FakeCapturerObserver(); capturer.startCapture(format.width, format.height, format.maxFramerate, surfaceTextureHelper, appContext, observer); diff --git a/webrtc/api/java/android/org/webrtc/SurfaceTextureHelper.java b/webrtc/api/java/android/org/webrtc/SurfaceTextureHelper.java index 2955f7412d..ecff32380b 100644 --- a/webrtc/api/java/android/org/webrtc/SurfaceTextureHelper.java +++ b/webrtc/api/java/android/org/webrtc/SurfaceTextureHelper.java @@ -52,8 +52,9 @@ class SurfaceTextureHelper { * Construct a new SurfaceTextureHelper sharing OpenGL resources with |sharedContext|. A dedicated * thread and handler is created for handling the SurfaceTexture. */ - public static SurfaceTextureHelper create(final EglBase.Context sharedContext) { - final HandlerThread thread = new HandlerThread(TAG); + public static SurfaceTextureHelper create( + final String threadName, final EglBase.Context sharedContext) { + final HandlerThread thread = new HandlerThread(threadName); thread.start(); final Handler handler = new Handler(thread.getLooper()); diff --git a/webrtc/api/java/jni/androidmediadecoder_jni.cc b/webrtc/api/java/jni/androidmediadecoder_jni.cc index e2b58db6d4..9d66f830b0 100644 --- a/webrtc/api/java/jni/androidmediadecoder_jni.cc +++ b/webrtc/api/java/jni/androidmediadecoder_jni.cc @@ -345,7 +345,7 @@ int32_t MediaCodecVideoDecoder::InitDecodeOnCodecThread() { if (use_surface_) { surface_texture_helper_ = new rtc::RefCountedObject( - jni, render_egl_context_); + jni, "Decoder SurfaceTextureHelper", render_egl_context_); } jobject j_video_codec_enum = JavaEnumFromIndexAndClassName( diff --git a/webrtc/api/java/jni/androidvideocapturer_jni.cc b/webrtc/api/java/jni/androidvideocapturer_jni.cc index 3630ac4a0a..7165350e7d 100644 --- a/webrtc/api/java/jni/androidvideocapturer_jni.cc +++ b/webrtc/api/java/jni/androidvideocapturer_jni.cc @@ -42,7 +42,7 @@ AndroidVideoCapturerJni::AndroidVideoCapturerJni( FindClass(jni, "org/webrtc/VideoCapturer$NativeObserver")), surface_texture_helper_(new rtc::RefCountedObject( - jni, j_egl_context)), + jni, "Camera SurfaceTextureHelper", j_egl_context)), capturer_(nullptr) { LOG(LS_INFO) << "AndroidVideoCapturerJni ctor"; thread_checker_.DetachFromThread(); diff --git a/webrtc/api/java/jni/surfacetexturehelper_jni.cc b/webrtc/api/java/jni/surfacetexturehelper_jni.cc index 61f54426fa..97d05f82f1 100644 --- a/webrtc/api/java/jni/surfacetexturehelper_jni.cc +++ b/webrtc/api/java/jni/surfacetexturehelper_jni.cc @@ -18,15 +18,15 @@ namespace webrtc_jni { SurfaceTextureHelper::SurfaceTextureHelper( - JNIEnv* jni, jobject j_egl_context) + JNIEnv* jni, const char* thread_name, jobject j_egl_context) : j_surface_texture_helper_(jni, jni->CallStaticObjectMethod( FindClass(jni, "org/webrtc/SurfaceTextureHelper"), GetStaticMethodID(jni, FindClass(jni, "org/webrtc/SurfaceTextureHelper"), "create", - "(Lorg/webrtc/EglBase$Context;)" + "(Ljava/lang/String;Lorg/webrtc/EglBase$Context;)" "Lorg/webrtc/SurfaceTextureHelper;"), - j_egl_context)), + jni->NewStringUTF(thread_name), j_egl_context)), j_return_texture_method_( GetMethodID(jni, FindClass(jni, "org/webrtc/SurfaceTextureHelper"), diff --git a/webrtc/api/java/jni/surfacetexturehelper_jni.h b/webrtc/api/java/jni/surfacetexturehelper_jni.h index c74856a0ce..849c66b5dd 100644 --- a/webrtc/api/java/jni/surfacetexturehelper_jni.h +++ b/webrtc/api/java/jni/surfacetexturehelper_jni.h @@ -38,7 +38,9 @@ namespace webrtc_jni { // 4. Call CreateTextureFrame to wrap the Java texture in a VideoFrameBuffer. class SurfaceTextureHelper : public rtc::RefCountInterface { public: - SurfaceTextureHelper(JNIEnv* jni, jobject j_egl_context); + SurfaceTextureHelper(JNIEnv* jni, + const char* thread_name, + jobject j_egl_context); jobject GetJavaSurfaceTextureHelper() const;