]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/imgutils.h
Merge commit 'd7bc52bf456deba0f32d9fe5c288ec441f1ebef5'
[ffmpeg] / libavutil / imgutils.h
index 40aee8b98e56a6b2759085cb97658ab1997d4c5f..a4a5efcc661cce21a051ac62c4209c7ba7501f63 100644 (file)
@@ -120,6 +120,24 @@ void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4],
                    const uint8_t *src_data[4], const int src_linesizes[4],
                    enum AVPixelFormat pix_fmt, int width, int height);
 
+/**
+ * Copy image data located in uncacheable (e.g. GPU mapped) memory. Where
+ * available, this function will use special functionality for reading from such
+ * memory, which may result in greatly improved performance compared to plain
+ * av_image_copy().
+ *
+ * The data pointers and the linesizes must be aligned to the maximum required
+ * by the CPU architecture.
+ *
+ * @note The linesize parameters have the type ptrdiff_t here, while they are
+ *       int for av_image_copy().
+ * @note On x86, the linesizes currently need to be aligned to the cacheline
+ *       size (i.e. 64) to get improved performance.
+ */
+void av_image_copy_uc_from(uint8_t *dst_data[4],       const ptrdiff_t dst_linesizes[4],
+                           const uint8_t *src_data[4], const ptrdiff_t src_linesizes[4],
+                           enum AVPixelFormat pix_fmt, int width, int height);
+
 /**
  * Setup the data pointers and linesizes based on the specified image
  * parameters and the provided array.