diff options
-rw-r--r-- | src/libcamera/formats.cpp | 27 | ||||
-rw-r--r-- | src/libcamera/include/formats.h | 22 | ||||
-rw-r--r-- | src/libcamera/include/v4l2_subdevice.h | 4 | ||||
-rw-r--r-- | src/libcamera/meson.build | 1 | ||||
-rw-r--r-- | src/libcamera/v4l2_subdevice.cpp | 5 |
5 files changed, 54 insertions, 5 deletions
diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp new file mode 100644 index 00000000..56f4ddb5 --- /dev/null +++ b/src/libcamera/formats.cpp @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * formats.cpp - Libcamera image formats + */ + +#include "formats.h" + +/** + * \file formats.h + * \brief Types and helper methods to handle libcamera image formats + */ + +namespace libcamera { + +/** + * \typedef FormatEnum + * \brief Type definition for the map of image formats and sizes + * + * Type definition used to enumerate the supported pixel formats and image + * frame sizes. The type associates in a map a pixel format (for memory + * formats) or a media bus code (for bus formats), to a vector of image + * resolutions represented by SizeRange items. + */ + +} /* namespace libcamera */ diff --git a/src/libcamera/include/formats.h b/src/libcamera/include/formats.h new file mode 100644 index 00000000..5fcfb113 --- /dev/null +++ b/src/libcamera/include/formats.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * formats.h - Libcamera image formats + */ + +#ifndef __LIBCAMERA_FORMATS_H__ +#define __LIBCAMERA_FORMATS_H__ + +#include <map> +#include <vector> + +#include "geometry.h" + +namespace libcamera { + +typedef std::map<unsigned int, std::vector<SizeRange>> FormatEnum; + +} /* namespace libcamera */ + +#endif /* __LIBCAMERA_FORMATS_H__ */ diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h index 700e66bc..3ecf0851 100644 --- a/src/libcamera/include/v4l2_subdevice.h +++ b/src/libcamera/include/v4l2_subdevice.h @@ -11,6 +11,7 @@ #include <string> #include <vector> +#include "formats.h" #include "geometry.h" #include "log.h" #include "media_object.h" @@ -42,8 +43,7 @@ public: int setCrop(unsigned int pad, Rectangle *rect); int setCompose(unsigned int pad, Rectangle *rect); - const std::map<unsigned int, std::vector<SizeRange>> - formats(unsigned int pad); + FormatEnum formats(unsigned int pad); int getFormat(unsigned int pad, V4L2SubdeviceFormat *format); int setFormat(unsigned int pad, V4L2SubdeviceFormat *format); diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 8384cd0a..4433abfc 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -6,6 +6,7 @@ libcamera_sources = files([ 'event_dispatcher.cpp', 'event_dispatcher_poll.cpp', 'event_notifier.cpp', + 'formats.cpp', 'geometry.cpp', 'log.cpp', 'media_device.cpp', diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp index cf873487..8260e6eb 100644 --- a/src/libcamera/v4l2_subdevice.cpp +++ b/src/libcamera/v4l2_subdevice.cpp @@ -210,10 +210,9 @@ int V4L2Subdevice::setCompose(unsigned int pad, Rectangle *rect) * \return A map of image formats associated with a list of image sizes, or * an empty map on error or if the pad does not exist */ -const std::map<unsigned int, std::vector<SizeRange>> -V4L2Subdevice::formats(unsigned int pad) +FormatEnum V4L2Subdevice::formats(unsigned int pad) { - std::map<unsigned int, std::vector<SizeRange>> formatMap = {}; + FormatEnum formatMap = {}; struct v4l2_subdev_mbus_code_enum mbusEnum = {}; int ret; |