From b023ec300f437494d6d6b23b03607e308dae43d2 Mon Sep 17 00:00:00 2001 From: Jiajia Cong Date: Wed, 2 Dec 2020 12:00:49 +0800 Subject: [PATCH] codec2: fix issue in allocating too many 8k buffers default output delay is too large, in 8k use case, framework doesn't allow to use so much memory to allocate those 8k buffers. if exceeds max capacity and underlying buffer alloc fail. do not create MediaCodecBuffer holds a null underlying ABuffer. Otherwise, some MediaCodecBuffer APIs may access ABuffer (nullptr). Bug: b/208481412 Change-Id: Ic8e33f6c27ee1c435bf0dc4bc09df87cb0ad3c3a --- media/codec2/sfplugin/Codec2Buffer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/media/codec2/sfplugin/Codec2Buffer.cpp b/media/codec2/sfplugin/Codec2Buffer.cpp index 55e0c45fad..876c96d484 100644 --- a/media/codec2/sfplugin/Codec2Buffer.cpp +++ b/media/codec2/sfplugin/Codec2Buffer.cpp @@ -843,6 +843,10 @@ sp ConstGraphicBlockBuffer::AllocateEmpty( } } sp aBuffer(alloc(align(width, 16) * align(height, 16) * bpp / 8)); + if (aBuffer == nullptr) { + ALOGD("%s: failed to allocate buffer", __func__); + return nullptr; + } return new ConstGraphicBlockBuffer( format, aBuffer,