summaryrefslogtreecommitdiffstats
path: root/video/out/vo_xv.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-12-02 23:19:13 +0100
committerwm4 <wm4@nowhere>2017-12-02 23:19:13 +0100
commitd7a02bcb3b25a9e3e80e9b80e46a494f97e684a9 (patch)
treef3a0f98d193b9bbf5fd74695935b0f4ac198937d /video/out/vo_xv.c
parentca29a5aa9b5bb38d43cce878131a61c0c0928b64 (diff)
downloadmpv-d7a02bcb3b25a9e3e80e9b80e46a494f97e684a9.tar.bz2
mpv-d7a02bcb3b25a9e3e80e9b80e46a494f97e684a9.tar.xz
build: remove POSIX/sysv shared memory test
vo_x11 and vo_xv need this. According to the Linux manpage, all involved functions are POSIX-2001 anyway. (I just assumed they were not, because they're mostly System V UNIX legacy garbage.)
Diffstat (limited to 'video/out/vo_xv.c')
-rw-r--r--video/out/vo_xv.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/video/out/vo_xv.c b/video/out/vo_xv.c
index 7c710f20ac..e75a653d65 100644
--- a/video/out/vo_xv.c
+++ b/video/out/vo_xv.c
@@ -30,12 +30,10 @@
#include "config.h"
-#if HAVE_SHM
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <X11/extensions/XShm.h>
-#endif
// Note: depends on the inclusion of X11/extensions/XShm.h
#include <X11/extensions/Xv.h>
@@ -92,10 +90,8 @@ struct xvctx {
GC f_gc; // used to paint background
GC vo_gc; // used to paint video
int Shmem_Flag;
-#if HAVE_SHM
XShmSegmentInfo Shminfo[MAX_BUFFERS];
int Shm_Warned_Slow;
-#endif
};
#define MP_FOURCC(a,b,c,d) ((a) | ((b)<<8) | ((c)<<16) | ((unsigned)(d)<<24))
@@ -542,7 +538,6 @@ static bool allocate_xvimage(struct vo *vo, int foo)
int aligned_w = FFALIGN(ctx->image_width, 32);
// round up the height to next chroma boundary too
int aligned_h = FFALIGN(ctx->image_height, 2);
-#if HAVE_SHM
if (x11->display_is_local && XShmQueryExtension(x11->display)) {
ctx->Shmem_Flag = 1;
x11->ShmCompletionEvent = XShmGetEventBase(x11->display)
@@ -572,9 +567,7 @@ static bool allocate_xvimage(struct vo *vo, int foo)
XShmAttach(x11->display, &ctx->Shminfo[foo]);
XSync(x11->display, False);
shmctl(ctx->Shminfo[foo].shmid, IPC_RMID, 0);
- } else
-#endif
- {
+ } else {
ctx->xvimage[foo] =
(XvImage *) XvCreateImage(x11->display, ctx->xv_port,
ctx->xv_format, NULL, aligned_w,
@@ -604,22 +597,17 @@ static bool allocate_xvimage(struct vo *vo, int foo)
static void deallocate_xvimage(struct vo *vo, int foo)
{
struct xvctx *ctx = vo->priv;
-#if HAVE_SHM
if (ctx->Shmem_Flag) {
XShmDetach(vo->x11->display, &ctx->Shminfo[foo]);
shmdt(ctx->Shminfo[foo].shmaddr);
- } else
-#endif
- {
+ } else {
av_free(ctx->xvimage[foo]->data);
}
if (ctx->xvimage[foo])
XFree(ctx->xvimage[foo]);
ctx->xvimage[foo] = NULL;
-#if HAVE_SHM
ctx->Shminfo[foo] = (XShmSegmentInfo){0};
-#endif
XSync(vo->x11->display, False);
return;
@@ -633,16 +621,14 @@ static inline void put_xvimage(struct vo *vo, XvImage *xvi)
struct mp_rect *dst = &ctx->dst_rect;
int dw = dst->x1 - dst->x0, dh = dst->y1 - dst->y0;
int sw = src->x1 - src->x0, sh = src->y1 - src->y0;
-#if HAVE_SHM
+
if (ctx->Shmem_Flag) {
XvShmPutImage(x11->display, ctx->xv_port, x11->window, ctx->vo_gc, xvi,
src->x0, src->y0, sw, sh,
dst->x0, dst->y0, dw, dh,
True);
x11->ShmCompletionWaitCount++;
- } else
-#endif
- {
+ } else {
XvPutImage(x11->display, ctx->xv_port, x11->window, ctx->vo_gc, xvi,
src->x0, src->y0, sw, sh,
dst->x0, dst->y0, dw, dh);
@@ -677,7 +663,6 @@ static struct mp_image get_xv_buffer(struct vo *vo, int buf_index)
static void wait_for_completion(struct vo *vo, int max_outstanding)
{
-#if HAVE_SHM
struct xvctx *ctx = vo->priv;
struct vo_x11_state *x11 = vo->x11;
if (ctx->Shmem_Flag) {
@@ -691,7 +676,6 @@ static void wait_for_completion(struct vo *vo, int max_outstanding)
vo_x11_check_events(vo);
}
}
-#endif
}
static void flip_page(struct vo *vo)