summaryrefslogtreecommitdiffstats
path: root/video/out/vo_drm.c
diff options
context:
space:
mode:
authorrr- <mkurczew@gmail.com>2015-11-07 21:11:04 +0100
committerwm4 <wm4@nowhere>2015-11-08 15:00:15 +0100
commit62f261a7b82922bce32eeaff9d1ab1b6c660598c (patch)
tree5c989f20e4b951bc92f58fdb745f2c40885d00ae /video/out/vo_drm.c
parentc3f2ef5491dc28d1f2f68d024b4be01c27b029e7 (diff)
downloadmpv-62f261a7b82922bce32eeaff9d1ab1b6c660598c.tar.bz2
mpv-62f261a7b82922bce32eeaff9d1ab1b6c660598c.tar.xz
vo_drm: use bool rather than integer return values
Since the errors weren't used for anything other than simple success/fail checks, I simplified things a bit.
Diffstat (limited to 'video/out/vo_drm.c')
-rw-r--r--video/out/vo_drm.c59
1 files changed, 23 insertions, 36 deletions
diff --git a/video/out/vo_drm.c b/video/out/vo_drm.c
index 467d9bc82c..7b1ff0b6c2 100644
--- a/video/out/vo_drm.c
+++ b/video/out/vo_drm.c
@@ -100,10 +100,8 @@ static void fb_destroy(int fd, struct framebuffer *buf)
}
}
-static int fb_setup_single(struct vo *vo, int fd, struct framebuffer *buf)
+static bool fb_setup_single(struct vo *vo, int fd, struct framebuffer *buf)
{
- int ret = 0;
-
buf->handle = 0;
// create dumb buffer
@@ -112,34 +110,28 @@ static int fb_setup_single(struct vo *vo, int fd, struct framebuffer *buf)
.height = buf->height,
.bpp = BITS_PER_PIXEL,
};
- ret = drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, &creq);
- if (ret < 0) {
+ if (drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, &creq) < 0) {
MP_ERR(vo, "Cannot create dumb buffer: %s\n", mp_strerror(errno));
- ret = -errno;
- goto end;
+ goto err;
}
buf->stride = creq.pitch;
buf->size = creq.size;
buf->handle = creq.handle;
// create framebuffer object for the dumb-buffer
- ret = drmModeAddFB(fd, buf->width, buf->height, 24, creq.bpp, buf->stride,
- buf->handle, &buf->fb);
- if (ret) {
+ if (drmModeAddFB(fd, buf->width, buf->height, 24, creq.bpp, buf->stride,
+ buf->handle, &buf->fb)) {
MP_ERR(vo, "Cannot create framebuffer: %s\n", mp_strerror(errno));
- ret = -errno;
- goto end;
+ goto err;
}
// prepare buffer for memory mapping
struct drm_mode_map_dumb mreq = {
.handle = buf->handle,
};
- ret = drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &mreq);
- if (ret) {
+ if (drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &mreq)) {
MP_ERR(vo, "Cannot map dumb buffer: %s\n", mp_strerror(errno));
- ret = -errno;
- goto end;
+ goto err;
}
// perform actual memory mapping
@@ -147,22 +139,18 @@ static int fb_setup_single(struct vo *vo, int fd, struct framebuffer *buf)
fd, mreq.offset);
if (buf->map == MAP_FAILED) {
MP_ERR(vo, "Cannot map dumb buffer: %s\n", mp_strerror(errno));
- ret = -errno;
- goto end;
+ goto err;
}
memset(buf->map, 0, buf->size);
+ return true;
-end:
- if (ret == 0) {
- return 0;
- }
-
+err:
fb_destroy(fd, buf);
- return ret;
+ return false;
}
-static int fb_setup_double_buffering(struct vo *vo)
+static bool fb_setup_double_buffering(struct vo *vo)
{
struct priv *p = vo->priv;
@@ -173,18 +161,17 @@ static int fb_setup_double_buffering(struct vo *vo)
}
for (unsigned int i = 0; i < BUF_COUNT; i++) {
- int ret = fb_setup_single(vo, p->kms->fd, &p->bufs[i]);
- if (ret) {
+ if (!fb_setup_single(vo, p->kms->fd, &p->bufs[i])) {
MP_ERR(vo, "Cannot create framebuffer for connector %d\n",
p->kms->connector->connector_id);
for (unsigned int j = 0; j < i; j++) {
fb_destroy(p->kms->fd, &p->bufs[j]);
}
- return ret;
+ return false;
}
}
- return 0;
+ return true;
}
static void page_flipped(int fd, unsigned int frame, unsigned int sec,
@@ -194,11 +181,11 @@ static void page_flipped(int fd, unsigned int frame, unsigned int sec,
p->pflip_happening = false;
}
-static int crtc_setup(struct vo *vo)
+static bool crtc_setup(struct vo *vo)
{
struct priv *p = vo->priv;
if (p->active)
- return 0;
+ return true;
p->old_crtc = drmModeGetCrtc(p->kms->fd, p->kms->crtc_id);
int ret = drmModeSetCrtc(p->kms->fd, p->kms->crtc_id,
p->bufs[p->front_buf + BUF_COUNT - 1].fb,
@@ -208,7 +195,7 @@ static int crtc_setup(struct vo *vo)
1,
&p->kms->mode);
p->active = true;
- return ret;
+ return ret == 0;
}
static void crtc_release(struct vo *vo)
@@ -434,7 +421,7 @@ static int preinit(struct vo *vo)
p->ev.version = DRM_EVENT_CONTEXT_VERSION;
p->ev.page_flip_handler = page_flipped;
- p->vt_switcher_active = vt_switcher_init(&p->vt_switcher, vo->log) == 0;
+ p->vt_switcher_active = vt_switcher_init(&p->vt_switcher, vo->log);
if (p->vt_switcher_active) {
vt_switcher_acquire(&p->vt_switcher, acquire_vt, vo);
vt_switcher_release(&p->vt_switcher, release_vt, vo);
@@ -448,12 +435,12 @@ static int preinit(struct vo *vo)
goto err;
}
- if (kms_setup(p->kms, p->device_path, p->connector_id, p->mode_id)) {
+ if (!kms_setup(p->kms, p->device_path, p->connector_id, p->mode_id)) {
MP_ERR(vo, "Failed to configure KMS.\n");
goto err;
}
- if (fb_setup_double_buffering(vo)) {
+ if (!fb_setup_double_buffering(vo)) {
MP_ERR(vo, "Failed to set up double buffering.\n");
goto err;
}
@@ -467,7 +454,7 @@ static int preinit(struct vo *vo)
p->device_w = p->bufs[0].width;
p->device_h = p->bufs[0].height;
- if (crtc_setup(vo)) {
+ if (!crtc_setup(vo)) {
MP_ERR(vo,
"Cannot set CRTC for connector %u: %s\n",
p->kms->connector->connector_id,