summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorJanne Grunau <janne-libav@jannau.net>2013-04-26 14:43:02 +0200
committerJanne Grunau <janne-libav@jannau.net>2013-05-06 18:51:47 +0200
commit74652af821d7e526a6541876a637fbf81261fa8e (patch)
tree409d869fb4c72ec18ba6b403247d803203e002c2 /libavutil
parent6e293d111fcad27d52a2ef5ad77b1009f1743396 (diff)
pixdesc: add function to return pixel format with swapped endiannes
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/pixdesc.c48
-rw-r--r--libavutil/pixdesc.h11
-rw-r--r--libavutil/version.h2
3 files changed, 60 insertions, 1 deletions
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 67f9c435d0..fdc19292a0 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -1512,3 +1512,51 @@ int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt)
ret += planes[i];
return ret;
}
+
+
+enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt)
+{
+#define PIX_FMT_SWAP_ENDIANNESS(fmt) \
+ case AV_PIX_FMT_ ## fmt ## BE: return AV_PIX_FMT_ ## fmt ## LE; \
+ case AV_PIX_FMT_ ## fmt ## LE: return AV_PIX_FMT_ ## fmt ## BE
+
+ switch (pix_fmt) {
+ PIX_FMT_SWAP_ENDIANNESS(GRAY16);
+ PIX_FMT_SWAP_ENDIANNESS(RGB48);
+ PIX_FMT_SWAP_ENDIANNESS(RGB565);
+ PIX_FMT_SWAP_ENDIANNESS(RGB555);
+ PIX_FMT_SWAP_ENDIANNESS(RGB444);
+ PIX_FMT_SWAP_ENDIANNESS(BGR48);
+ PIX_FMT_SWAP_ENDIANNESS(BGR565);
+ PIX_FMT_SWAP_ENDIANNESS(BGR555);
+ PIX_FMT_SWAP_ENDIANNESS(BGR444);
+
+ PIX_FMT_SWAP_ENDIANNESS(YUV420P9);
+ PIX_FMT_SWAP_ENDIANNESS(YUV422P9);
+ PIX_FMT_SWAP_ENDIANNESS(YUV444P9);
+ PIX_FMT_SWAP_ENDIANNESS(YUV420P10);
+ PIX_FMT_SWAP_ENDIANNESS(YUV422P10);
+ PIX_FMT_SWAP_ENDIANNESS(YUV444P10);
+ PIX_FMT_SWAP_ENDIANNESS(YUV420P16);
+ PIX_FMT_SWAP_ENDIANNESS(YUV422P16);
+ PIX_FMT_SWAP_ENDIANNESS(YUV444P16);
+
+ PIX_FMT_SWAP_ENDIANNESS(GBRP9);
+ PIX_FMT_SWAP_ENDIANNESS(GBRP10);
+ PIX_FMT_SWAP_ENDIANNESS(GBRP16);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA420P9);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA422P9);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA444P9);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA420P10);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA422P10);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA444P10);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA420P16);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA422P16);
+ PIX_FMT_SWAP_ENDIANNESS(YUVA444P16);
+
+ PIX_FMT_SWAP_ENDIANNESS(XYZ12);
+ default:
+ return AV_PIX_FMT_NONE;
+ }
+#undef PIX_FMT_SWAP_ENDIANNESS
+}
diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h
index ef93bfed82..312e89ac04 100644
--- a/libavutil/pixdesc.h
+++ b/libavutil/pixdesc.h
@@ -226,4 +226,15 @@ int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt,
int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
+/**
+ * Utility function to swap the endianness of a pixel format.
+ *
+ * @param[in] pix_fmt the pixel format
+ *
+ * @return pixel format with swapped endianness if it exists,
+ * otherwise AV_PIX_FMT_NONE
+ */
+enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt);
+
+
#endif /* AVUTIL_PIXDESC_H */
diff --git a/libavutil/version.h b/libavutil/version.h
index 6e8daa2864..948a28f992 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -38,7 +38,7 @@
#define LIBAVUTIL_VERSION_MAJOR 52
#define LIBAVUTIL_VERSION_MINOR 10
-#define LIBAVUTIL_VERSION_MICRO 0
+#define LIBAVUTIL_VERSION_MICRO 1
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \