int testEnumFormats(struct node *node)
{
+ bool supported = false;
int type;
int ret;
ret = testEnumFormatsType(node, (enum v4l2_buf_type)type);
if (ret && ret != ENOTTY)
return ret;
+ if (!ret)
+ supported = true;
switch (type) {
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
case V4L2_BUF_TYPE_VIDEO_OUTPUT:
ret = testEnumFormatsType(node, V4L2_BUF_TYPE_PRIVATE);
if (ret && ret != ENOTTY)
return ret;
- if (!ret)
+ if (!ret) {
+ supported = true;
warn("Buffer type PRIVATE allowed!\n");
+ }
ret = testEnumFrameSizes(node, 0x20202020);
if (ret != ENOTTY)
ret = testEnumFrameIntervals(node, 0x20202020, 640, 480, false);
if (ret != ENOTTY)
return fail("Accepted frameinterval for invalid format\n");
- return 0;
+ return supported ? 0 : ENOTTY;
}
int testFBuf(struct node *node)
int testFormats(struct node *node)
{
+ bool supported = false;
int type;
int ret;
if (ret && ret != ENOTTY)
return ret;
+ if (!ret)
+ supported = true;
if (ret && (node->caps & buftype2cap[type]))
return fail("%s cap set, but no %s formats defined\n",
buftype2s(type).c_str(), buftype2s(type).c_str());
ret = testFormatsType(node, V4L2_BUF_TYPE_PRIVATE);
if (ret && ret != ENOTTY)
return ret;
- if (!ret)
+ if (!ret) {
+ supported = true;
warn("Buffer type PRIVATE allowed!\n");
- return 0;
+ }
+ return supported ? 0 : ENOTTY;
}
static int testSlicedVBICapType(struct node *node, enum v4l2_buf_type type)