summaryrefslogtreecommitdiff
path: root/src/android/camera_hal_config.cpp
AgeCommit message (Collapse)Author
2021-05-26android: Fix file system library usage on gcc 7 and 8Laurent Pinchart
On gcc versions older than 9, the file system library, used by the Android camera HAL configuration file parser, is implemented in a separate static library. Furthermore, on gcc 7, it's provided in the std::experimental namespace. This breaks compilation of the HAL on gcc 7, and linking on gcc 8. Fix the compilation issue by conditionally including <experimental/filesystem> and creating a namespace alias in std, and the link issue by linking to libstdc++fs on gcc versions older than 9. The inclusion of <experimental/filesystem> is a bit of a hack, and when we'll start using the file system library in another compilation unit, we should then move all this to an internal helper to abstract the compiler version. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
2021-05-26android: camera_hal_config: Move include <filesystem> to .cpp fileLaurent Pinchart
The <filesystem> header isn't needed in camera_hal_config.h, move its inclusion to camera_hal_config.cpp. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Acked-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
2021-05-25android: Add CameraHalConfig classJacopo Mondi
Add a CameraHalConfig class to the Android Camera3 HAL layer. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
l kwd">modifier_(0) { } explicit constexpr PixelFormat(uint32_t fourcc, uint64_t modifier = 0) : fourcc_(fourcc), modifier_(modifier) { } bool operator==(const PixelFormat &other) const; bool operator!=(const PixelFormat &other) const { return !(*this == other); } bool operator<(const PixelFormat &other) const; constexpr bool isValid() const { return fourcc_ != 0; } constexpr operator uint32_t() const { return fourcc_; } constexpr uint32_t fourcc() const { return fourcc_; } constexpr uint64_t modifier() const { return modifier_; } std::string toString() const; static PixelFormat fromString(const std::string &name); private: uint32_t fourcc_; uint64_t modifier_; }; std::ostream &operator<<(std::ostream &out, const PixelFormat &f); } /* namespace libcamera */