diff options
author | Andrew Smolko <andrewsmolko@gmail.com> | 2019-07-31 16:27:44 +0300 |
---|---|---|
committer | Andrew Smolko <andrewsmolko@gmail.com> | 2019-08-07 18:07:33 +0300 |
commit | 636f46f04ba6d5c63783558ed78eb5f562179e9c (patch) | |
tree | b5eb6ca8be0ca4b039b847579c3c94856006690b /src | |
parent | 9cd70bd2d9c37491b59b8eb91ff7ea13aa87ae8b (diff) |
AVFoundation: Re-create CARenderer if current OpenGL context changed
CARenderer was not re-created so black frames were rendered in video if current OpenGL context changed.
Task-number: QTBUG-77270
Change-Id: I8df423aaa9239c938363141cca1ae4136cde839b
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/avfoundation/mediaplayer/avfvideoframerenderer.mm | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer.mm b/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer.mm index 62ee13d25..d2cbb9268 100644 --- a/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer.mm +++ b/src/plugins/avfoundation/mediaplayer/avfvideoframerenderer.mm @@ -159,6 +159,13 @@ QOpenGLFramebufferObject *AVFVideoFrameRenderer::initRenderer(AVPlayerLayer *lay qWarning("failed to create QOpenGLContext"); return 0; } + + // CARenderer must be re-created with different current context, so release it now. + // See lines below where m_videoLayerRenderer is constructed. + if (m_videoLayerRenderer) { + [m_videoLayerRenderer release]; + m_videoLayerRenderer = nullptr; + } } //Need current context |