hwdec_drmprime_drm: Fix a DRM buffer memory leakage

We use triple buffering for this interop and we were only unreffing the
data structures, which doesn't destroy the drm buffers.

This patch allows to make sure that we release the drm buffers on
playback end.
This commit is contained in:
LongChair 2018-03-04 19:01:48 +01:00 committed by Kevin Mitchell
parent ca2c5c26d5
commit dae88644e6
No known key found for this signature in database
GPG Key ID: 559A34B46A917232
1 changed files with 3 additions and 2 deletions

View File

@ -83,8 +83,6 @@ static void set_current_frame(struct ra_hwdec *hw, struct drm_frame *frame)
} else {
memset(&p->current_frame.fb, 0, sizeof(p->current_frame.fb));
mp_image_setrefp(&p->current_frame.image, NULL);
mp_image_setrefp(&p->last_frame.image, NULL);
mp_image_setrefp(&p->old_frame.image, NULL);
}
}
@ -180,6 +178,9 @@ static int overlay_frame(struct ra_hwdec *hw, struct mp_image *hw_image,
}
}
}
} else {
while (p->old_frame.fb.fb_id)
set_current_frame(hw, NULL);
}
set_current_frame(hw, &next_frame);