summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/hwdec_drmprime_drm.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/opengl/hwdec_drmprime_drm.c')
-rw-r--r--video/out/opengl/hwdec_drmprime_drm.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/video/out/opengl/hwdec_drmprime_drm.c b/video/out/opengl/hwdec_drmprime_drm.c
index f99550442a..2e1859f6bb 100644
--- a/video/out/opengl/hwdec_drmprime_drm.c
+++ b/video/out/opengl/hwdec_drmprime_drm.c
@@ -160,23 +160,23 @@ static int overlay_frame(struct ra_hwdec *hw, struct mp_image *hw_image,
}
if (request) {
- drm_object_set_property(request, p->ctx->overlay_plane, "FB_ID", next_frame.fb.fb_id);
- drm_object_set_property(request, p->ctx->overlay_plane, "CRTC_ID", p->ctx->crtc->id);
- drm_object_set_property(request, p->ctx->overlay_plane, "SRC_X", p->src.x0 << 16);
- drm_object_set_property(request, p->ctx->overlay_plane, "SRC_Y", p->src.y0 << 16);
- drm_object_set_property(request, p->ctx->overlay_plane, "SRC_W", srcw << 16);
- drm_object_set_property(request, p->ctx->overlay_plane, "SRC_H", srch << 16);
- drm_object_set_property(request, p->ctx->overlay_plane, "CRTC_X", MP_ALIGN_DOWN(p->dst.x0, 2));
- drm_object_set_property(request, p->ctx->overlay_plane, "CRTC_Y", MP_ALIGN_DOWN(p->dst.y0, 2));
- drm_object_set_property(request, p->ctx->overlay_plane, "CRTC_W", dstw);
- drm_object_set_property(request, p->ctx->overlay_plane, "CRTC_H", dsth);
- drm_object_set_property(request, p->ctx->overlay_plane, "ZPOS", 0);
+ drm_object_set_property(request, p->ctx->video_plane, "FB_ID", next_frame.fb.fb_id);
+ drm_object_set_property(request, p->ctx->video_plane, "CRTC_ID", p->ctx->crtc->id);
+ drm_object_set_property(request, p->ctx->video_plane, "SRC_X", p->src.x0 << 16);
+ drm_object_set_property(request, p->ctx->video_plane, "SRC_Y", p->src.y0 << 16);
+ drm_object_set_property(request, p->ctx->video_plane, "SRC_W", srcw << 16);
+ drm_object_set_property(request, p->ctx->video_plane, "SRC_H", srch << 16);
+ drm_object_set_property(request, p->ctx->video_plane, "CRTC_X", MP_ALIGN_DOWN(p->dst.x0, 2));
+ drm_object_set_property(request, p->ctx->video_plane, "CRTC_Y", MP_ALIGN_DOWN(p->dst.y0, 2));
+ drm_object_set_property(request, p->ctx->video_plane, "CRTC_W", dstw);
+ drm_object_set_property(request, p->ctx->video_plane, "CRTC_H", dsth);
+ drm_object_set_property(request, p->ctx->video_plane, "ZPOS", 0);
} else {
- ret = drmModeSetPlane(p->ctx->fd, p->ctx->overlay_plane->id, p->ctx->crtc->id, next_frame.fb.fb_id, 0,
+ ret = drmModeSetPlane(p->ctx->fd, p->ctx->video_plane->id, p->ctx->crtc->id, next_frame.fb.fb_id, 0,
MP_ALIGN_DOWN(p->dst.x0, 2), MP_ALIGN_DOWN(p->dst.y0, 2), dstw, dsth,
p->src.x0 << 16, p->src.y0 << 16 , srcw << 16, srch << 16);
if (ret < 0) {
- MP_ERR(hw, "Failed to set the plane %d (buffer %d).\n", p->ctx->overlay_plane->id,
+ MP_ERR(hw, "Failed to set the plane %d (buffer %d).\n", p->ctx->video_plane->id,
next_frame.fb.fb_id);
goto fail;
}
@@ -210,13 +210,14 @@ static void uninit(struct ra_hwdec *hw)
static int init(struct ra_hwdec *hw)
{
struct priv *p = hw->priv;
- int drm_overlay;
+ int osd_plane_id, video_plane_id;
p->log = hw->log;
void *tmp = talloc_new(NULL);
struct drm_opts *opts = mp_get_config_group(tmp, hw->global, &drm_conf);
- drm_overlay = opts->drm_overlay_id;
+ osd_plane_id = opts->drm_osd_plane_id;
+ video_plane_id = opts->drm_video_plane_id;
talloc_free(tmp);
struct mpv_opengl_drm_params *drm_params;
@@ -224,7 +225,7 @@ static int init(struct ra_hwdec *hw)
drm_params = ra_get_native_resource(hw->ra, "drm_params");
if (drm_params) {
p->ctx = drm_atomic_create_context(p->log, drm_params->fd, drm_params->crtc_id,
- drm_params->connector_id, drm_overlay);
+ drm_params->connector_id, osd_plane_id, video_plane_id);
if (!p->ctx) {
mp_err(p->log, "Failed to retrieve DRM atomic context.\n");
goto err;
@@ -242,7 +243,6 @@ static int init(struct ra_hwdec *hw)
drmModeFreeCrtc(crtc);
}
-
uint64_t has_prime;
if (drmGetCap(p->ctx->fd, DRM_CAP_PRIME, &has_prime) < 0) {
MP_ERR(hw, "Card does not support prime handles.\n");