Index: webrtc/api/java/jni/androidmediadecoder_jni.cc |
diff --git a/webrtc/api/java/jni/androidmediadecoder_jni.cc b/webrtc/api/java/jni/androidmediadecoder_jni.cc |
index a0e5579c37c32aea84ba74293b4a8a5d6bec1ab4..11c8d66f20456e8ef108af41e6ed7ea966e63060 100644 |
--- a/webrtc/api/java/jni/androidmediadecoder_jni.cc |
+++ b/webrtc/api/java/jni/androidmediadecoder_jni.cc |
@@ -345,8 +345,13 @@ int32_t MediaCodecVideoDecoder::InitDecodeOnCodecThread() { |
ResetVariables(); |
if (use_surface_) { |
- surface_texture_helper_ = new rtc::RefCountedObject<SurfaceTextureHelper>( |
+ surface_texture_helper_ = SurfaceTextureHelper::create( |
jni, "Decoder SurfaceTextureHelper", render_egl_context_); |
+ if (!surface_texture_helper_) { |
+ ALOGE << "Couldn't create SurfaceTextureHelper - fallback to SW codec"; |
+ sw_fallback_required_ = true; |
+ return WEBRTC_VIDEO_CODEC_ERROR; |
+ } |
} |
jobject j_video_codec_enum = JavaEnumFromIndexAndClassName( |