diff options
Diffstat (limited to 'src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp')
-rw-r--r-- | src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp b/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp index 7bfc8b31d..399501c41 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpegdecoder.cpp @@ -663,6 +663,12 @@ void VideoRenderer::loop() // qCDebug(qLcVideoRenderer) << "RHI:" << accel.isNull() << accel.rhi() << sink->rhi(); // in practice this only happens with mediacodec +#ifdef Q_OS_ANDROID + // QTBUG-108446 + // In general case, just creation of frames context is not correct since + // frames may require additional specific data for hw contexts, so + // just setting of hw_frames_ctx is not enough. + // TODO: investigate the case in order to remove or fix the code. if (frame.codec()->hwAccel() && !frame.avFrame()->hw_frames_ctx) { HWAccel *hwaccel = frame.codec()->hwAccel(); AVFrame *avframe = frame.avFrame(); @@ -672,6 +678,7 @@ void VideoRenderer::loop() avframe->hw_frames_ctx = av_buffer_ref(hwaccel->hwFramesContextAsBuffer()); } +#endif QFFmpegVideoBuffer *buffer = new QFFmpegVideoBuffer(frame.takeAVFrame()); QVideoFrameFormat format(buffer->size(), buffer->pixelFormat()); |