diff --git a/hw/kdrive/ephyr/ephyrhostvideo.c b/hw/kdrive/ephyr/ephyrhostvideo.c index ea5fc9b9a..9a5a3ba73 100644 --- a/hw/kdrive/ephyr/ephyrhostvideo.c +++ b/hw/kdrive/ephyr/ephyrhostvideo.c @@ -43,12 +43,6 @@ #define FALSE 0 #endif /*FALSE*/ - -void -ephyrHostXVInit(void) -{ -} - Bool ephyrHostXVQueryAdaptors (xcb_xv_query_adaptors_reply_t **a_adaptors) { @@ -78,19 +72,6 @@ out: return is_ok; } -void -ephyrHostXVAdaptorArrayDelete (xcb_xv_query_adaptors_reply_t *a_adaptors) -{ - free (a_adaptors); -} - -int -ephyrHostXVAdaptorArrayGetSize (const xcb_xv_query_adaptors_reply_t *a_this) -{ - EPHYR_RETURN_VAL_IF_FAIL(a_this, -1); - return a_this->num_adaptors; -} - xcb_xv_adaptor_info_t * ephyrHostXVAdaptorArrayAt(const xcb_xv_query_adaptors_reply_t *a_this, int a_index) @@ -156,20 +137,6 @@ ephyrHostXVAdaptorGetVideoFormats (const xcb_xv_adaptor_info_t *a_this, return formats; } -int -ephyrHostXVAdaptorGetNbPorts(const xcb_xv_adaptor_info_t *a_this) -{ - EPHYR_RETURN_VAL_IF_FAIL(a_this, -1); - - return a_this->num_ports; -} - -int -ephyrHostXVAdaptorGetFirstPortID (const xcb_xv_adaptor_info_t *a_this) -{ - return a_this->base_id; -} - Bool ephyrHostXVAdaptorHasPutVideo (const xcb_xv_adaptor_info_t *a_this, Bool *a_result) @@ -538,12 +505,6 @@ ephyrHostGetAtomName(int a_atom) return ret; } -void -ephyrHostFree(void *a_pointer) -{ - free(a_pointer); -} - Bool ephyrHostXVPutImage(int a_screen_num, int a_port_id, @@ -732,18 +693,3 @@ ephyrHostXVGetStill(int a_screen_num, int a_port_id, return TRUE; } - -Bool -ephyrHostXVStopVideo(int a_screen_num, int a_port_id) -{ - xcb_connection_t *conn = hostx_get_xcbconn(); - - EPHYR_RETURN_VAL_IF_FAIL(conn, FALSE); - - EPHYR_LOG("enter\n"); - - xcb_xv_stop_video(conn, a_port_id, hostx_get_window (a_screen_num)); - - EPHYR_LOG("leave\n"); - return TRUE; -} diff --git a/hw/kdrive/ephyr/ephyrhostvideo.h b/hw/kdrive/ephyr/ephyrhostvideo.h index b946add66..56a7359e5 100644 --- a/hw/kdrive/ephyr/ephyrhostvideo.h +++ b/hw/kdrive/ephyr/ephyrhostvideo.h @@ -82,16 +82,10 @@ typedef struct { unsigned short x1, y1, x2, y2; } EphyrHostBox; -void ephyrHostXVInit(void); - -void ephyrHostFree(void *a_pointer); - /* * host adaptor array */ Bool ephyrHostXVQueryAdaptors(xcb_xv_query_adaptors_reply_t **a_adaptors); -void ephyrHostXVAdaptorArrayDelete(xcb_xv_query_adaptors_reply_t *a_adaptors); -int ephyrHostXVAdaptorArrayGetSize(const xcb_xv_query_adaptors_reply_t *a_this); xcb_xv_adaptor_info_t* ephyrHostXVAdaptorArrayAt(const xcb_xv_query_adaptors_reply_t *a_this, int a_index); @@ -103,8 +97,6 @@ char ephyrHostXVAdaptorGetType(const xcb_xv_adaptor_info_t *a_this); char* ephyrHostXVAdaptorGetName(const xcb_xv_adaptor_info_t *a_this); EphyrHostVideoFormat *ephyrHostXVAdaptorGetVideoFormats (const xcb_xv_adaptor_info_t *a_this, int *a_nb_formats); -int ephyrHostXVAdaptorGetNbPorts(const xcb_xv_adaptor_info_t *a_this); -int ephyrHostXVAdaptorGetFirstPortID(const xcb_xv_adaptor_info_t *a_this); Bool ephyrHostXVAdaptorHasPutVideo(const xcb_xv_adaptor_info_t *a_this, Bool *a_result); @@ -216,9 +208,4 @@ Bool ephyrHostXVGetStill(int a_screen_num, int a_vid_x, int a_vid_y, int a_vid_w, int a_vid_h, int a_drw_x, int a_drw_y, int a_drw_w, int a_drw_h); -/* - * StopVideo - */ -Bool ephyrHostXVStopVideo(int a_screen_num, int a_port_id); - #endif /*__EPHYRHOSTVIDEO_H__*/ diff --git a/hw/kdrive/ephyr/ephyrvideo.c b/hw/kdrive/ephyr/ephyrvideo.c index 5813634d3..7d249d229 100644 --- a/hw/kdrive/ephyr/ephyrvideo.c +++ b/hw/kdrive/ephyr/ephyrvideo.c @@ -287,8 +287,6 @@ ephyrXVPrivNew(void) goto error; } - ephyrHostXVInit(); - if (!ephyrXVPrivQueryHostAdaptors(xv_priv)) { EPHYR_LOG_ERROR("failed to query the host x for xv properties\n"); goto error; @@ -317,7 +315,7 @@ ephyrXVPrivDelete(EphyrXVPriv * a_this) if (!a_this) return; if (a_this->host_adaptors) { - ephyrHostXVAdaptorArrayDelete(a_this->host_adaptors); + free(a_this->host_adaptors); a_this->host_adaptors = NULL; } free(a_this->adaptors); @@ -396,8 +394,7 @@ ephyrXVPrivQueryHostAdaptors(EphyrXVPriv * a_this) goto out; } if (a_this->host_adaptors) - a_this->num_adaptors = - ephyrHostXVAdaptorArrayGetSize(a_this->host_adaptors); + a_this->num_adaptors = a_this->host_adaptors->num_adaptors; if (a_this->num_adaptors < 0) { EPHYR_LOG_ERROR("failed to get number of host adaptors\n"); goto out; @@ -420,8 +417,7 @@ ephyrXVPrivQueryHostAdaptors(EphyrXVPriv * a_this) cur_host_adaptor = ephyrHostXVAdaptorArrayAt(a_this->host_adaptors, i); if (!cur_host_adaptor) continue; - a_this->adaptors[i].nPorts = - ephyrHostXVAdaptorGetNbPorts(cur_host_adaptor); + a_this->adaptors[i].nPorts = cur_host_adaptor->num_ports; if (a_this->adaptors[i].nPorts <= 0) { EPHYR_LOG_ERROR("Could not find any port of adaptor %d\n", i); continue; @@ -433,7 +429,7 @@ ephyrXVPrivQueryHostAdaptors(EphyrXVPriv * a_this) a_this->adaptors[i].name = ephyrHostXVAdaptorGetName(cur_host_adaptor); if (!a_this->adaptors[i].name) a_this->adaptors[i].name = strdup("Xephyr Video Overlay"); - base_port_id = ephyrHostXVAdaptorGetFirstPortID(cur_host_adaptor); + base_port_id = cur_host_adaptor->base_id; if (base_port_id < 0) { EPHYR_LOG_ERROR("failed to get port id for adaptor %d\n", i); continue; @@ -455,10 +451,6 @@ ephyrXVPrivQueryHostAdaptors(EphyrXVPriv * a_this) &num_video_formats); a_this->adaptors[i].pFormats = (KdVideoFormatPtr) video_formats; a_this->adaptors[i].nFormats = num_video_formats; - /* got a_this->adaptors[i].nPorts already - a_this->adaptors[i].nPorts = - ephyrHostXVAdaptorGetNbPorts (cur_host_adaptor) ; - */ a_this->adaptors[i].pPortPrivates = calloc(a_this->adaptors[i].nPorts, sizeof(DevUnion) + sizeof(EphyrPortPriv)); @@ -710,15 +702,14 @@ ephyrXVPrivSaveImageToPortPriv(EphyrPortPriv * a_port_priv, static void ephyrStopVideo(KdScreenInfo * a_info, pointer a_port_priv, Bool a_exit) { + xcb_connection_t *conn = hostx_get_xcbconn(); EphyrPortPriv *port_priv = a_port_priv; + EphyrScrPriv *scrpriv = a_info->driver; - EPHYR_RETURN_IF_FAIL(a_info && a_info->pScreen); EPHYR_RETURN_IF_FAIL(port_priv); EPHYR_LOG("enter\n"); - if (!ephyrHostXVStopVideo(a_info->pScreen->myNum, port_priv->port_number)) { - EPHYR_LOG_ERROR("XvStopVideo() failed\n"); - } + xcb_xv_stop_video(conn, port_priv->port_number, scrpriv->win); EPHYR_LOG("leave\n"); }