testBasicSelection defines which of capture and output supports crop (resp. compose). testBasicCrop (resp. testBasicCompose) shall be run only for the supported buf_type. Change-Id: I0a81e826eb7bc8a318a9d833426d802fedce46c9 Signed-off-by: Fabien Dessenne <fabien.dessenne@xxxxxx> --- utils/v4l2-compliance/v4l2-test-formats.cpp | 40 +++++++++++++++++------------ 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/utils/v4l2-compliance/v4l2-test-formats.cpp b/utils/v4l2-compliance/v4l2-test-formats.cpp index 1cffd65..23107c3 100644 --- a/utils/v4l2-compliance/v4l2-test-formats.cpp +++ b/utils/v4l2-compliance/v4l2-test-formats.cpp @@ -1251,13 +1251,16 @@ static int testLegacyCrop(struct node *node) int testCropping(struct node *node) { - int ret = ENOTTY; + int retCap, retOut; + + retCap = ENOTTY; + retOut = ENOTTY; fail_on_test(testLegacyCrop(node)); if (node->can_capture && node->is_video) - ret = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_SEL_TGT_CROP); + retCap = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_SEL_TGT_CROP); if (node->can_output && node->is_video) - ret = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_OUTPUT, V4L2_SEL_TGT_CROP); + retOut = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_OUTPUT, V4L2_SEL_TGT_CROP); if ((!node->can_capture && !node->can_output) || !node->is_video) { struct v4l2_selection sel = { V4L2_BUF_TYPE_VIDEO_CAPTURE, @@ -1269,14 +1272,15 @@ int testCropping(struct node *node) fail_on_test(doioctl(node, VIDIOC_G_SELECTION, &sel) != ENOTTY); fail_on_test(doioctl(node, VIDIOC_S_SELECTION, &sel) != ENOTTY); } - if (ret) - return ret; + if (retCap && retOut) + return retCap; - if (node->can_capture) + if (!retCap) fail_on_test(testBasicCrop(node, V4L2_BUF_TYPE_VIDEO_CAPTURE)); - if (node->can_output) + if (!retOut) fail_on_test(testBasicCrop(node, V4L2_BUF_TYPE_VIDEO_OUTPUT)); - return ret; + + return 0; } static int testBasicCompose(struct node *node, unsigned type) @@ -1321,12 +1325,15 @@ static int testBasicCompose(struct node *node, unsigned type) int testComposing(struct node *node) { - int ret = ENOTTY; + int retCap, retOut; + + retCap = ENOTTY; + retOut = ENOTTY; if (node->can_capture && node->is_video) - ret = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_SEL_TGT_COMPOSE); + retCap = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_SEL_TGT_COMPOSE); if (node->can_output && node->is_video) - ret = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_OUTPUT, V4L2_SEL_TGT_COMPOSE); + retOut = testBasicSelection(node, V4L2_BUF_TYPE_VIDEO_OUTPUT, V4L2_SEL_TGT_COMPOSE); if ((!node->can_capture && !node->can_output) || !node->is_video) { struct v4l2_selection sel = { V4L2_BUF_TYPE_VIDEO_OUTPUT, @@ -1338,14 +1345,15 @@ int testComposing(struct node *node) fail_on_test(doioctl(node, VIDIOC_G_SELECTION, &sel) != ENOTTY); fail_on_test(doioctl(node, VIDIOC_S_SELECTION, &sel) != ENOTTY); } - if (ret) - return ret; + if (retCap && retOut) + return retCap; - if (node->can_capture) + if (retCap) fail_on_test(testBasicCompose(node, V4L2_BUF_TYPE_VIDEO_CAPTURE)); - if (node->can_output) + if (retOut) fail_on_test(testBasicCompose(node, V4L2_BUF_TYPE_VIDEO_OUTPUT)); - return ret; + + return 0; } static int testBasicScaling(struct node *node, const struct v4l2_format &cur) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html