diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-05-01 00:21:56 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-05-01 00:26:05 +0200 |
commit | ffb5a0d533498102c31aa131bc91a4cce868b0a8 (patch) | |
tree | 1c78494488bab5bafa3bda2ab20295f13860fc2e /libavutil/mem.c | |
parent | 1a9f9f81b1244b952126bb65bc741b04d3534f81 (diff) | |
parent | 85770f2a2651497861ed938efcd0df3696ff5e45 (diff) | |
download | ffmpeg-ffb5a0d533498102c31aa131bc91a4cce868b0a8.tar.gz |
Merge commit '85770f2a2651497861ed938efcd0df3696ff5e45'
* commit '85770f2a2651497861ed938efcd0df3696ff5e45':
AVOptions: make default_val a union, as proposed in AVOption2.
Move ff_dynarray_add to lavu and make it public.
lavf: remove duplicate assignment in avformat_alloc_context.
lavf: use designated initializers for AVClasses.
options: simplify av_find_opt by using av_next_option.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/mem.c')
-rw-r--r-- | libavutil/mem.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libavutil/mem.c b/libavutil/mem.c index f0f18d1ce9..965daa93c8 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -173,3 +173,23 @@ char *av_strdup(const char *s) return ptr; } +/* add one element to a dynamic array */ +void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem) +{ + /* see similar ffmpeg.c:grow_array() */ + int nb, nb_alloc; + intptr_t *tab; + + nb = *nb_ptr; + tab = *(intptr_t**)tab_ptr; + if ((nb & (nb - 1)) == 0) { + if (nb == 0) + nb_alloc = 1; + else + nb_alloc = nb * 2; + tab = av_realloc(tab, nb_alloc * sizeof(intptr_t)); + *(intptr_t**)tab_ptr = tab; + } + tab[nb++] = (intptr_t)elem; + *nb_ptr = nb; +} |