diff options
author | Samuel Mira <samuel.mira@qt.io> | 2023-02-24 19:02:59 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-03-01 11:08:15 +0000 |
commit | 910676cd84c02ca9450bb74b16b3be5e31fcd837 (patch) | |
tree | 291c746933df12295bcade9fd9f304badd029ae3 | |
parent | 9fd88b8d76ec044ee0c8dce477f763e60f608448 (diff) | |
download | qtmultimedia-910676cd84c02ca9450bb74b16b3be5e31fcd837.tar.gz |
Android: Prevent possible crash
Should not happen but it is possible to get an AVFrame without data
to release on Android. If already released the frame->data[3] will be
NULL.
Change-Id: I7d8af55f9c3ed9a03cd1dd4b3a38c332b8f06dc0
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
(cherry picked from commit f0baa64df4453c61b24f3974dfddff31940dbbe0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/plugins/multimedia/ffmpeg/qffmpeghwaccel_mediacodec.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_mediacodec.cpp b/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_mediacodec.cpp index bb3853d82..fd3b5adea 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_mediacodec.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_mediacodec.cpp @@ -75,8 +75,10 @@ TextureSet *MediaCodecTextureConverter::getTextures(AVFrame *frame) // release a MediaCodec buffer and render it to the surface AVMediaCodecBuffer *buffer = (AVMediaCodecBuffer *)frame->data[3]; - int result = av_mediacodec_release_buffer(buffer, 1); - if (result < 0) { + + if (!buffer) { + qWarning() << "Received a frame without AVMediaCodecBuffer."; + } else if (av_mediacodec_release_buffer(buffer, 1) < 0) { qWarning() << "Failed to render buffer to surface."; return {}; } |