summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-03-06 01:37:21 -0300
committerJames Almer <jamrial@gmail.com>2018-03-06 19:13:46 -0300
commit2aa42fac77ac1d29d858327fc72c972672ff3729 (patch)
treec13db57ec3f4c97474257b76bb827738b413b571 /libavformat
parent0ca33b1d4eb2a2a2e78ff3a37f1647917635b0d2 (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.c26
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)