diff options
author | Ryo Munakata <afpacket@gmail.com> | 2017-10-29 00:33:50 +0900 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2017-10-30 12:46:49 +0100 |
commit | 046fe459505c59fe151661d6214fe25e2414423b (patch) | |
tree | e76a183e20b4ffadcc2d75003539d533f673737d | |
parent | 98986948e8e124c5fe5beb4afa12c6995940fbb6 (diff) | |
download | mpv-046fe459505c59fe151661d6214fe25e2414423b.tar.bz2 mpv-046fe459505c59fe151661d6214fe25e2414423b.tar.xz |
hwdec_drmprime_drm: fix segv with --hwdec
-rw-r--r-- | video/out/opengl/hwdec_drmprime_drm.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/video/out/opengl/hwdec_drmprime_drm.c b/video/out/opengl/hwdec_drmprime_drm.c index d942ab3d37..45e6c908c0 100644 --- a/video/out/opengl/hwdec_drmprime_drm.c +++ b/video/out/opengl/hwdec_drmprime_drm.c @@ -67,7 +67,10 @@ static void set_current_frame(struct ra_hwdec *hw, struct drm_frame *frame) // We used old frame as triple buffering to make sure that the drm framebuffer // is not being displayed when we release it. - drm_prime_destroy_framebuffer(p->log, p->ctx->fd, &p->old_frame.fb); + if (p->ctx) { + drm_prime_destroy_framebuffer(p->log, p->ctx->fd, &p->old_frame.fb); + } + mp_image_setrefp(&p->old_frame.image, p->current_frame.image); p->old_frame.fb = p->current_frame.fb; |