diff options
author | James Almer <jamrial@gmail.com> | 2018-03-06 01:37:21 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2018-03-06 19:13:46 -0300 |
commit | 2aa42fac77ac1d29d858327fc72c972672ff3729 (patch) | |
tree | c13db57ec3f4c97474257b76bb827738b413b571 /libavformat | |
parent | 0ca33b1d4eb2a2a2e78ff3a37f1647917635b0d2 (diff) |
avformat/utils: simplify ff_alloc_extradata()
Cosmetic refactor
Reviewed-by: 74a2fa708af88d225ed708af758f236f869b1a57
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/utils.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 31340a484b..3ca1ca2441 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3243,24 +3243,20 @@ static int tb_unreliable(AVCodecContext *c) int ff_alloc_extradata(AVCodecParameters *par, int size) { - int ret; - av_freep(&par->extradata); - if (size < 0 || size >= INT32_MAX - AV_INPUT_BUFFER_PADDING_SIZE) { - par->extradata = NULL; - par->extradata_size = 0; + par->extradata_size = 0; + + if (size < 0 || size >= INT32_MAX - AV_INPUT_BUFFER_PADDING_SIZE) return AVERROR(EINVAL); - } + par->extradata = av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE); - if (par->extradata) { - memset(par->extradata + size, 0, AV_INPUT_BUFFER_PADDING_SIZE); - par->extradata_size = size; - ret = 0; - } else { - par->extradata_size = 0; - ret = AVERROR(ENOMEM); - } - return ret; + if (!par->extradata) + return AVERROR(ENOMEM); + + memset(par->extradata + size, 0, AV_INPUT_BUFFER_PADDING_SIZE); + par->extradata_size = size; + + return 0; } int ff_get_extradata(AVFormatContext *s, AVCodecParameters *par, AVIOContext *pb, int size) |