Implement av_get_image_linesize() and use it in
[ffmpeg.git] / libavcore / imgutils.h
index 4a4d6a1..c2cf6eb 100644 (file)
 #include "libavutil/pixfmt.h"
 #include "avcore.h"
 
+/**
+ * Compute the size of an image line with format pix_fmt and width
+ * width for the plane plane.
+ *
+ * @return the computed size in bytes
+ */
+int av_get_image_linesize(enum PixelFormat pix_fmt, int width, int plane);
+
 /**
  * Fill plane linesizes for an image with pixel format pix_fmt and
  * width width.
@@ -50,4 +58,16 @@ int av_fill_image_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int widt
 int av_fill_image_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
                            uint8_t *ptr, const int linesizes[4]);
 
+/**
+ * Check if the given dimension of an image is valid, meaning that all
+ * bytes of the image can be addressed with a signed int.
+ *
+ * @param w the width of the picture
+ * @param h the height of the picture
+ * @param log_offset the offset to sum to the log level for logging with log_ctx
+ * @param log_ctx the parent logging context, it may be NULL
+ * @return >= 0 if valid, a negative error code otherwise
+ */
+int av_check_image_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx);
+
 #endif /* AVCORE_IMGUTILS_H */