@@ -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)
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@st.com> --- utils/v4l2-compliance/v4l2-test-formats.cpp | 40 +++++++++++++++++------------ 1 file changed, 24 insertions(+), 16 deletions(-)