diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2013-04-11 14:58:06 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-04-12 12:09:51 +0200 |
commit | af0d270aac86a0ac1eae8e145c5aaf128edd5e74 (patch) | |
tree | 042a8a893baf9c27131bd0112c82664a23dfdf75 /libavutil/utils.c | |
parent | 3d7d819aad52581c39aa3978bf9ae6d3c189e5a9 (diff) | |
download | ffmpeg-af0d270aac86a0ac1eae8e145c5aaf128edd5e74.tar.gz |
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.c | 19 |
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; +} |