[FFmpeg-cvslog] avcodec/bink: Combine allocations of arrays into one
Andreas Rheinhardt
git at videolan.org
Fri Sep 4 22:02:16 EEST 2020
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Fri Sep 4 18:30:22 2020 +0200| [ceeba2ac2b6f03ffbb13c64c6fbef21eb52be405] | committer: Andreas Rheinhardt
avcodec/bink: Combine allocations of arrays into one
Saves allocations, checks for the allocations as well as frees.
Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ceeba2ac2b6f03ffbb13c64c6fbef21eb52be405
---
libavcodec/bink.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/libavcodec/bink.c b/libavcodec/bink.c
index c7ef333bd4..9fdfa37395 100644
--- a/libavcodec/bink.c
+++ b/libavcodec/bink.c
@@ -178,17 +178,20 @@ static void init_lengths(BinkContext *c, int width, int bw)
static av_cold int init_bundles(BinkContext *c)
{
int bw, bh, blocks;
+ uint8_t *tmp;
int i;
bw = (c->avctx->width + 7) >> 3;
bh = (c->avctx->height + 7) >> 3;
blocks = bw * bh;
+ tmp = av_calloc(blocks, 64 * BINKB_NB_SRC);
+ if (!tmp)
+ return AVERROR(ENOMEM);
for (i = 0; i < BINKB_NB_SRC; i++) {
- c->bundle[i].data = av_mallocz(blocks * 64);
- if (!c->bundle[i].data)
- return AVERROR(ENOMEM);
- c->bundle[i].data_end = c->bundle[i].data + blocks * 64;
+ c->bundle[i].data = tmp;
+ tmp += blocks * 64;
+ c->bundle[i].data_end = tmp;
}
return 0;
@@ -201,9 +204,7 @@ static av_cold int init_bundles(BinkContext *c)
*/
static av_cold void free_bundles(BinkContext *c)
{
- int i;
- for (i = 0; i < BINKB_NB_SRC; i++)
- av_freep(&c->bundle[i].data);
+ av_freep(&c->bundle[0].data);
}
/**
More information about the ffmpeg-cvslog
mailing list