summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mira <samuel.mira@qt.io>2023-02-24 19:02:59 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-03-01 11:08:15 +0000
commit910676cd84c02ca9450bb74b16b3be5e31fcd837 (patch)
tree291c746933df12295bcade9fd9f304badd029ae3
parent9fd88b8d76ec044ee0c8dce477f763e60f608448 (diff)
downloadqtmultimedia-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.cpp6
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 {};
}