v4l2_subdev_enum_mbus_code() enumerates over supported media bus formats on a pad. Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxx> --- src/v4l2subdev.c | 23 +++++++++++++++++++++++ src/v4l2subdev.h | 14 ++++++++++++++ 2 files changed, 37 insertions(+), 0 deletions(-) diff --git a/src/v4l2subdev.c b/src/v4l2subdev.c index d60bd7e..6b6df0a 100644 --- a/src/v4l2subdev.c +++ b/src/v4l2subdev.c @@ -58,6 +58,29 @@ void v4l2_subdev_close(struct media_entity *entity) entity->fd = -1; } +int v4l2_subdev_enum_mbus_code(struct media_entity *entity, + uint32_t *code, uint32_t pad, uint32_t index) +{ + struct v4l2_subdev_mbus_code_enum c; + int ret; + + ret = v4l2_subdev_open(entity); + if (ret < 0) + return ret; + + memset(&c, 0, sizeof(c)); + c.pad = pad; + c.index = index; + + ret = ioctl(entity->fd, VIDIOC_SUBDEV_ENUM_MBUS_CODE, &c); + if (ret < 0) + return -errno; + + *code = c.code; + + return 0; +} + int v4l2_subdev_get_format(struct media_entity *entity, struct v4l2_mbus_framefmt *format, unsigned int pad, enum v4l2_subdev_format_whence which) diff --git a/src/v4l2subdev.h b/src/v4l2subdev.h index 5d55482..1cca7b9 100644 --- a/src/v4l2subdev.h +++ b/src/v4l2subdev.h @@ -22,6 +22,7 @@ #ifndef __SUBDEV_H__ #define __SUBDEV_H__ +#include <stdint.h> #include <linux/v4l2-subdev.h> struct media_entity; @@ -47,6 +48,19 @@ int v4l2_subdev_open(struct media_entity *entity); void v4l2_subdev_close(struct media_entity *entity); /** + * @brief Enumerate mbus pixel codes. + * @param entity - subdev-device media entity. + * @param code - mbus pixel code + * + * Enumerate media bus pixel codes. This is just a wrapper for + * VIDIOC_SUBDEV_ENUM_MBUS_CODE IOCTL. + * + * @return 0 on success, or a negative error code on failure. + */ +int v4l2_subdev_enum_mbus_code(struct media_entity *entity, + uint32_t *code, uint32_t pad, uint32_t index); + +/** * @brief Retrieve the format on a pad. * @param entity - subdev-device media entity. * @param format - format to be filled. -- 1.7.2.5 -- 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