From af0d270aac86a0ac1eae8e145c5aaf128edd5e74 Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Thu, 11 Apr 2013 14:58:06 +0200 Subject: 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 Signed-off-by: Michael Niedermayer --- libavutil/utils.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'libavutil/utils.c') 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; +} -- cgit v1.2.3