This obviously wanted a helper function beforehand, but even more so now that we have XCB. --- hw/kdrive/ephyr/ephyrhostvideo.c | 68 ---------------------------------------- hw/kdrive/ephyr/ephyrhostvideo.h | 11 ------- hw/kdrive/ephyr/ephyrvideo.c | 48 ++++++++++------------------ 3 files changed, 17 insertions(+), 110 deletions(-)
diff --git a/hw/kdrive/ephyr/ephyrhostvideo.c b/hw/kdrive/ephyr/ephyrhostvideo.c index 9a5a3ba..5c3eb05 100644 --- a/hw/kdrive/ephyr/ephyrhostvideo.c +++ b/hw/kdrive/ephyr/ephyrhostvideo.c @@ -138,74 +138,6 @@ ephyrHostXVAdaptorGetVideoFormats (const xcb_xv_adaptor_info_t *a_this, } Bool -ephyrHostXVAdaptorHasPutVideo (const xcb_xv_adaptor_info_t *a_this, - Bool *a_result) -{ - EPHYR_RETURN_VAL_IF_FAIL(a_this && a_result, FALSE); - - if ((a_this->type & (XCB_XV_TYPE_VIDEO_MASK | XCB_XV_TYPE_INPUT_MASK)) == - (XCB_XV_TYPE_VIDEO_MASK | XCB_XV_TYPE_INPUT_MASK)) - *a_result = TRUE; - else - *a_result = FALSE; - return TRUE; -} - -Bool -ephyrHostXVAdaptorHasGetVideo(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result) -{ - if ((a_this->type & (XCB_XV_TYPE_VIDEO_MASK | XCB_XV_TYPE_OUTPUT_MASK)) == - (XCB_XV_TYPE_VIDEO_MASK | XCB_XV_TYPE_OUTPUT_MASK)) - *a_result = TRUE; - else - *a_result = FALSE; - return TRUE; -} - -Bool -ephyrHostXVAdaptorHasPutStill(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result) -{ - EPHYR_RETURN_VAL_IF_FAIL(a_this && a_result, FALSE); - - if ((a_this->type & (XCB_XV_TYPE_STILL_MASK | XCB_XV_TYPE_INPUT_MASK)) == - (XCB_XV_TYPE_STILL_MASK | XCB_XV_TYPE_INPUT_MASK)) - *a_result = TRUE; - else - *a_result = FALSE; - return TRUE; -} - -Bool -ephyrHostXVAdaptorHasGetStill(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result) -{ - EPHYR_RETURN_VAL_IF_FAIL(a_this && a_result, FALSE); - - if ((a_this->type & (XCB_XV_TYPE_STILL_MASK | XCB_XV_TYPE_OUTPUT_MASK)) == - (XCB_XV_TYPE_STILL_MASK | XCB_XV_TYPE_OUTPUT_MASK)) - *a_result = TRUE; - else - *a_result = FALSE; - return TRUE; -} - -Bool -ephyrHostXVAdaptorHasPutImage(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result) -{ - EPHYR_RETURN_VAL_IF_FAIL(a_this && a_result, FALSE); - - if ((a_this->type & (XCB_XV_TYPE_IMAGE_MASK | XCB_XV_TYPE_INPUT_MASK)) == - (XCB_XV_TYPE_IMAGE_MASK | XCB_XV_TYPE_INPUT_MASK)) - *a_result = TRUE; - else - *a_result = FALSE; - return TRUE; -} - -Bool ephyrHostXVQueryEncodings(int a_port_id, EphyrHostEncoding ** a_encodings, unsigned int *a_num_encodings) diff --git a/hw/kdrive/ephyr/ephyrhostvideo.h b/hw/kdrive/ephyr/ephyrhostvideo.h index 56a7359..40a12ac 100644 --- a/hw/kdrive/ephyr/ephyrhostvideo.h +++ b/hw/kdrive/ephyr/ephyrhostvideo.h @@ -98,17 +98,6 @@ char* ephyrHostXVAdaptorGetName(const xcb_xv_adaptor_info_t *a_this); EphyrHostVideoFormat *ephyrHostXVAdaptorGetVideoFormats (const xcb_xv_adaptor_info_t *a_this, int *a_nb_formats); -Bool ephyrHostXVAdaptorHasPutVideo(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result); -Bool ephyrHostXVAdaptorHasGetVideo(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result); -Bool ephyrHostXVAdaptorHasPutStill(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result); -Bool ephyrHostXVAdaptorHasGetStill(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result); -Bool ephyrHostXVAdaptorHasPutImage(const xcb_xv_adaptor_info_t *a_this, - Bool *a_result); - /* * encoding */ diff --git a/hw/kdrive/ephyr/ephyrvideo.c b/hw/kdrive/ephyr/ephyrvideo.c index 7d249d2..bf00694 100644 --- a/hw/kdrive/ephyr/ephyrvideo.c +++ b/hw/kdrive/ephyr/ephyrvideo.c @@ -170,6 +170,12 @@ static int s_base_port_id; * ************/ static Bool +adaptor_has_flags(const xcb_xv_adaptor_info_t *adaptor, uint32_t flags) +{ + return (adaptor->type & flags) == flags; +} + +static Bool DoSimpleClip(BoxPtr a_dst_box, BoxPtr a_clipper, BoxPtr a_result) { BoxRec dstClippedBox; @@ -508,7 +514,6 @@ static Bool ephyrXVPrivSetAdaptorsHooks(EphyrXVPriv * a_this) { int i = 0; - Bool has_it = FALSE; xcb_xv_adaptor_info_t *cur_host_adaptor = NULL; EPHYR_RETURN_VAL_IF_FAIL(a_this, FALSE); @@ -528,45 +533,26 @@ ephyrXVPrivSetAdaptorsHooks(EphyrXVPriv * a_this) EPHYR_LOG_ERROR("failed to get host adaptor at index %d\n", i); continue; } - has_it = FALSE; - if (!ephyrHostXVAdaptorHasPutImage(cur_host_adaptor, &has_it)) { - EPHYR_LOG_ERROR("error\n"); - } - if (has_it) { + + if (adaptor_has_flags(cur_host_adaptor, + XCB_XV_TYPE_IMAGE_MASK | XCB_XV_TYPE_INPUT_MASK)) a_this->adaptors[i].PutImage = ephyrPutImage; - } - has_it = FALSE; - if (!ephyrHostXVAdaptorHasPutVideo(cur_host_adaptor, &has_it)) { - EPHYR_LOG_ERROR("error\n"); - } - if (has_it) { + if (adaptor_has_flags(cur_host_adaptor, + XCB_XV_TYPE_VIDEO_MASK | XCB_XV_TYPE_INPUT_MASK)) a_this->adaptors[i].PutVideo = ephyrPutVideo; - } - has_it = FALSE; - if (!ephyrHostXVAdaptorHasGetVideo(cur_host_adaptor, &has_it)) { - EPHYR_LOG_ERROR("error\n"); - } - if (has_it) { + if (adaptor_has_flags(cur_host_adaptor, + XCB_XV_TYPE_VIDEO_MASK | XCB_XV_TYPE_OUTPUT_MASK)) a_this->adaptors[i].GetVideo = ephyrGetVideo; - } - has_it = FALSE; - if (!ephyrHostXVAdaptorHasPutStill(cur_host_adaptor, &has_it)) { - EPHYR_LOG_ERROR("error\n"); - } - if (has_it) { + if (adaptor_has_flags(cur_host_adaptor, + XCB_XV_TYPE_STILL_MASK | XCB_XV_TYPE_INPUT_MASK)) a_this->adaptors[i].PutStill = ephyrPutStill; - } - has_it = FALSE; - if (!ephyrHostXVAdaptorHasGetStill(cur_host_adaptor, &has_it)) { - EPHYR_LOG_ERROR("error\n"); - } - if (has_it) { + if (adaptor_has_flags(cur_host_adaptor, + XCB_XV_TYPE_STILL_MASK | XCB_XV_TYPE_OUTPUT_MASK)) a_this->adaptors[i].GetStill = ephyrGetStill; - } } EPHYR_LOG("leave\n"); return TRUE; -- 1.8.4.rc3 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel