On 12/08/14 18:54, Anton Khirnov wrote: > --- > doc/APIchanges | 3 +++ > libavutil/mem.c | 20 ++++++++++++++++++++ > libavutil/mem.h | 10 ++++++++++ > libavutil/version.h | 2 +- > 4 files changed, 34 insertions(+), 1 deletion(-) > > diff --git a/doc/APIchanges b/doc/APIchanges > index 6e5242e..fc56677 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -13,6 +13,9 @@ libavutil: 2014-08-09 > > API changes, most recent first: > > +2014-08-xx - xxxxxxx - lavu 54.2.0 - mem.h > + Add av_strndup(). > + > 2014-04-xx - xxxxxxx - lavr 2.1.0 - avresample.h > Add avresample_convert_frame() and avresample_config(). > > diff --git a/libavutil/mem.c b/libavutil/mem.c > index be42342..129aff1 100644 > --- a/libavutil/mem.c > +++ b/libavutil/mem.c > @@ -222,6 +222,26 @@ char *av_strdup(const char *s) > return ptr; > } > > +char *av_strndup(const char *s, size_t len) > +{ > + size_t len1; > + char *ret = NULL; > + > + if (!s) > + return NULL; > + > + len1 = strlen(s); > + len = FFMIN(len, len1); > + > + ret = av_realloc(NULL, len + 1); > + if (!ret) > + return NULL; > + > + memcpy(ret, s, len); > + ret[len] = 0; > + return ret; > +} > + > static void fill16(uint8_t *dst, int len) > { > uint32_t v = AV_RN16(dst - 2); > diff --git a/libavutil/mem.h b/libavutil/mem.h > index 4a5e362..9f667c2 100644 > --- a/libavutil/mem.h > +++ b/libavutil/mem.h > @@ -218,6 +218,16 @@ av_alloc_size(1, 2) static inline void > *av_mallocz_array(size_t nmemb, size_t si > char *av_strdup(const char *s) av_malloc_attrib; > > /** > + * Duplicate a substring of the string s. > + * @param s string to be duplicated > + * @param len the maximum length of the resulting string (not counting the > + * terminating byte). > + * @return Pointer to a newly-allocated string containing a > + * copy of s or NULL if the string cannot be allocated. > + */ > +char *av_strndup(const char *s, size_t len) av_malloc_attrib;
av_alloc_size(2); The rest seems ok. _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel