Commit 5b17d9df authored by Steve Lhomme's avatar Steve Lhomme

xcb: remove dead code

parent 3426d7bc
......@@ -29,21 +29,13 @@
#include <errno.h>
#include <sys/types.h>
#ifdef HAVE_SYS_SHM_H
# include <sys/shm.h>
# include <sys/stat.h>
#else
# define shmdt(mem) free(mem)
#endif
#include <xcb/xcb.h>
#include <xcb/shm.h>
#include <vlc_common.h>
#include <vlc_vout_display.h>
#include "pictures.h"
#include "events.h"
const xcb_format_t *vlc_xcb_DepthToPixmapFormat(const xcb_setup_t *setup,
uint_fast8_t depth)
......@@ -178,117 +170,3 @@ fail:
msg_Warn(obj, "display will be slow");
return false;
}
#ifdef HAVE_SYS_SHM_H
/**
* Release picture private data: detach the shared memory segment.
*/
static void XCB_picture_SysV_Destroy (picture_t *pic)
{
shmdt (pic->p[0].p_pixels);
}
static int XCB_picture_SysV_Alloc(vout_display_t *vd, picture_resource_t *res,
size_t size, xcb_connection_t *conn,
xcb_shm_seg_t segment)
{
/* Allocate shared memory segment */
int id = shmget (IPC_PRIVATE, size, IPC_CREAT | S_IRWXU);
if (id == -1)
{
msg_Err (vd, "shared memory allocation error: %s",
vlc_strerror_c(errno));
return -1;
}
/* Attach the segment to VLC */
void *shm = shmat (id, NULL, 0 /* read/write */);
if (-1 == (intptr_t)shm)
{
msg_Err (vd, "shared memory attachment error: %s",
vlc_strerror_c(errno));
shmctl (id, IPC_RMID, 0);
return -1;
}
if (segment != 0)
{ /* Attach the segment to X */
xcb_void_cookie_t ck = xcb_shm_attach_checked (conn, segment, id, 1);
switch (vlc_xcb_error_Check(vd, conn,
"shared memory server-side error", ck))
{
case 0:
break;
case XCB_ACCESS:
{
struct shmid_ds buf;
/* Retry with promiscuous permissions */
shmctl (id, IPC_STAT, &buf);
buf.shm_perm.mode |= S_IRGRP|S_IROTH;
shmctl (id, IPC_SET, &buf);
ck = xcb_shm_attach_checked (conn, segment, id, 1);
if (vlc_xcb_error_Check(vd, conn, "same error on retry",
ck) == 0)
break;
} /* fall through */
default:
msg_Info (vd, "using buggy X11 server - SSH proxying?");
segment = 0;
}
}
shmctl (id, IPC_RMID, NULL);
res->p_sys = (void *)(uintptr_t)segment;
res->pf_destroy = XCB_picture_SysV_Destroy;
res->p[0].p_pixels = shm;
return 0;
}
#else
# define XCB_picture_SysV_Alloc(...) (-1)
#endif
static void XCB_picture_Destroy(picture_t *pic)
{
free(pic->p[0].p_pixels);
}
/**
* Initialize a picture buffer as shared memory, according to the video output
* format. If a attach is true, the segment is attached to
* the X server (MIT-SHM extension).
*/
int XCB_picture_Alloc (vout_display_t *vd, picture_resource_t *res,
size_t size, xcb_connection_t *conn,
xcb_shm_seg_t segment)
{
if (XCB_picture_SysV_Alloc(vd, res, size, conn, segment) == 0)
return 0;
void *shm = aligned_alloc(32, (size + 31) & ~31);
if (unlikely(shm == NULL))
return -1;
res->p_sys = NULL;
res->pf_destroy = XCB_picture_Destroy;
res->p[0].p_pixels = shm;
return 0;
}
picture_t *XCB_picture_NewFromResource (const video_format_t *restrict fmt,
const picture_resource_t *restrict res,
xcb_connection_t *conn)
{
picture_t *pic = picture_NewFromResource (fmt, res);
if (unlikely(pic == NULL))
{
xcb_shm_seg_t seg = (uintptr_t)res->p_sys;
if (seg != 0)
xcb_shm_detach (conn, seg);
shmdt (res->p[0].p_pixels);
}
return pic;
}
......@@ -29,9 +29,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <xcb/xcb.h>
#include <xcb/shm.h>
#include <vlc_picture.h>
#include <vlc_vout_display.h>
const xcb_format_t *vlc_xcb_DepthToPixmapFormat(const xcb_setup_t *,
uint_fast8_t depth);
......@@ -39,13 +37,3 @@ bool vlc_xcb_VisualToFormat(const xcb_setup_t *, uint_fast8_t depth,
const xcb_visualtype_t *, video_format_t *);
bool XCB_shm_Check (vlc_object_t *obj, xcb_connection_t *conn);
int XCB_picture_Alloc (vout_display_t *, picture_resource_t *, size_t size,
xcb_connection_t *, xcb_shm_seg_t);
picture_t *XCB_picture_NewFromResource (const video_format_t *,
const picture_resource_t *,
xcb_connection_t *);
static inline xcb_shm_seg_t XCB_picture_GetSegment(const picture_t *pic)
{
return (uintptr_t)pic->p_sys;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment