summaryrefslogtreecommitdiff
path: root/libavutil/utils.c
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2013-04-11 14:58:06 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-12 12:09:51 +0200
commitaf0d270aac86a0ac1eae8e145c5aaf128edd5e74 (patch)
tree042a8a893baf9c27131bd0112c82664a23dfdf75 /libavutil/utils.c
parent3d7d819aad52581c39aa3978bf9ae6d3c189e5a9 (diff)
lavu: add helper functions for integer lists.
Add av_int_list_length() to compute a list length. Add av_opt_set_int_list() to set a binary option. Signed-off-by: Nicolas George <nicolas.george@normalesup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/utils.c')
-rw-r--r--libavutil/utils.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/libavutil/utils.c b/libavutil/utils.c
index fbfbc49e1c..291c736454 100644
--- a/libavutil/utils.c
+++ b/libavutil/utils.c
@@ -79,3 +79,22 @@ char av_get_picture_type_char(enum AVPictureType pict_type)
default: return '?';
}
}
+
+unsigned av_int_list_length_for_size(unsigned elsize,
+ const void *list, uint64_t term)
+{
+ unsigned i;
+
+ if (!list)
+ return 0;
+#define LIST_LENGTH(type) \
+ { type t = term, *l = list; for (i = 0; l[i] != t; i++); }
+ switch (elsize) {
+ case 1: LIST_LENGTH(uint8_t); break;
+ case 2: LIST_LENGTH(uint16_t); break;
+ case 4: LIST_LENGTH(uint32_t); break;
+ case 8: LIST_LENGTH(uint64_t); break;
+ default: av_assert0(!"valid element size");
+ }
+ return i;
+}