diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-19 21:17:50 +0300 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-04-19 21:19:53 +0300 |
commit | e344646c808c4f2d0e9db32c5c1cbedb5871f171 (patch) | |
tree | e574dae6da6e1689c02851309be549ac82b23f3a | |
parent | c54d835e2f185f621ea6cda31a9ef5f83e4a4194 (diff) | |
parent | 564b4591bbe223bdc5f36a1131eaef103f23f5d0 (diff) |
Merge commit '564b4591bbe223bdc5f36a1131eaef103f23f5d0'
* commit '564b4591bbe223bdc5f36a1131eaef103f23f5d0':
opt: Add av_opt_copy()
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-rw-r--r-- | libavutil/opt.c | 12 | ||||
-rw-r--r-- | libavutil/version.h | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/libavutil/opt.c b/libavutil/opt.c index eae4f75dcd..cbe36dfd92 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -1587,7 +1587,7 @@ static int opt_size(enum AVOptionType type) case AV_OPT_TYPE_SAMPLE_FMT:return sizeof(enum AVSampleFormat); case AV_OPT_TYPE_COLOR: return 4; } - return 0; + return AVERROR(EINVAL); } int av_opt_copy(void *dst, const void *src) @@ -1597,10 +1597,10 @@ int av_opt_copy(void *dst, const void *src) int ret = 0; if (!src) - return 0; + return AVERROR(EINVAL); c = *(AVClass**)src; - if (*(AVClass**)dst && c != *(AVClass**)dst) + if (!c || c != *(AVClass**)dst) return AVERROR(EINVAL); while ((o = av_opt_next(src, o))) { @@ -1637,7 +1637,11 @@ int av_opt_copy(void *dst, const void *src) if (av_dict_count(*sdict) != av_dict_count(*ddict)) ret = AVERROR(ENOMEM); } else { - memcpy(field_dst, field_src, opt_size(o->type)); + int size = opt_size(o->type); + if (size < 0) + ret = size; + else + memcpy(field_dst, field_src, size); } } return ret; diff --git a/libavutil/version.h b/libavutil/version.h index cf7458ec23..24bd0d0ab3 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -65,7 +65,7 @@ #define LIBAVUTIL_VERSION_MAJOR 55 #define LIBAVUTIL_VERSION_MINOR 22 -#define LIBAVUTIL_VERSION_MICRO 100 +#define LIBAVUTIL_VERSION_MICRO 101 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \ |