pixdesc: add a function for counting planes in a pixel format.
authorAnton Khirnov <anton@khirnov.net>
Sat, 16 Mar 2013 18:37:52 +0000 (19:37 +0100)
committerAnton Khirnov <anton@khirnov.net>
Tue, 19 Mar 2013 10:12:17 +0000 (11:12 +0100)
doc/APIchanges
libavutil/pixdesc.c
libavutil/pixdesc.h
libavutil/version.h

index 2c08af4..91bbeec 100644 (file)
@@ -13,6 +13,9 @@ libavutil:     2012-10-22
 
 API changes, most recent first:
 
+2013-xx-xx - lavu 52.9.0 - pixdesc.h
+  Add av_pix_fmt_count_planes() function for counting planes in a pixel format.
+
 2013-xx-xx - lavfi 3.6.0
   Add AVFilterGraph.nb_filters, deprecate AVFilterGraph.filter_count.
 
index df906ac..e1fa87e 100644 (file)
@@ -1473,3 +1473,18 @@ int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt,
 
     return 0;
 }
+
+int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt)
+{
+    const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
+    int i, planes[4] = { 0 }, ret = 0;
+
+    if (!desc)
+        return AVERROR(EINVAL);
+
+    for (i = 0; i < desc->nb_components; i++)
+        planes[desc->comp[i].plane] = 1;
+    for (i = 0; i < FF_ARRAY_ELEMS(planes); i++)
+        ret += planes[i];
+    return ret;
+}
index 47e6bb8..ef93bfe 100644 (file)
@@ -219,5 +219,11 @@ enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc);
 int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt,
                                      int *h_shift, int *v_shift);
 
+/**
+ * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a
+ * valid pixel format.
+ */
+int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt);
+
 
 #endif /* AVUTIL_PIXDESC_H */
index d519b50..6cbe7ef 100644 (file)
@@ -37,7 +37,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR 52
-#define LIBAVUTIL_VERSION_MINOR  8
+#define LIBAVUTIL_VERSION_MINOR  9
 #define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \