From 88a0c4add3b23dad03e358db74aaf5fd77e055e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Fri, 26 Jan 2018 13:58:14 +0100 Subject: [PATCH] Never use surface mode in MediaCodecVideoEncoder if egl_context_ is null. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When using VideoFrames, expect_encode_from_texture is true even for ByteBuffer frames. This causes the encoder to sometimes initialize itself in surface mode even when egl_context_ is not available. This leads to a crash. Bug: webrtc:8776 Change-Id: I8cac36514725b8f430d7bf456d481a4b0c6fcd42 Reviewed-on: https://webrtc-review.googlesource.com/43861 Reviewed-by: Anders Carlsson Commit-Queue: Sami Kalliomäki Cr-Commit-Position: refs/heads/master@{#21789} --- sdk/android/src/jni/androidmediaencoder.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/android/src/jni/androidmediaencoder.cc b/sdk/android/src/jni/androidmediaencoder.cc index 174fc55b19..43aa7f10b4 100644 --- a/sdk/android/src/jni/androidmediaencoder.cc +++ b/sdk/android/src/jni/androidmediaencoder.cc @@ -366,7 +366,8 @@ int32_t MediaCodecVideoEncoder::InitEncode(const VideoCodec* codec_settings, return InitEncodeInternal( init_width, init_height, codec_settings->startBitrate, - codec_settings->maxFramerate, codec_settings->expect_encode_from_texture); + codec_settings->maxFramerate, + codec_settings->expect_encode_from_texture && (egl_context_ != nullptr)); } int32_t MediaCodecVideoEncoder::SetChannelParameters(uint32_t /* packet_loss */,