summaryrefslogtreecommitdiff
path: root/libavformat/movenc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-06-05 11:33:19 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-06-05 11:33:25 +0200
commit606e8baf0fec23140f2a1baffb8752cb761039f5 (patch)
tree0f0dfda212ee815770451a52d4656ad1ebbfc05c /libavformat/movenc.c
parent28ce9c0b73c5c4aea4cdaa1f584e7c0839286a35 (diff)
parent7c020e1ad37d27c9d5db4d714401f09c80e3cc44 (diff)
Merge commit '7c020e1ad37d27c9d5db4d714401f09c80e3cc44'
* commit '7c020e1ad37d27c9d5db4d714401f09c80e3cc44': movenc: Grow the frag_info array in chunks Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/movenc.c')
-rw-r--r--libavformat/movenc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 206c4be3dd..77fc1804b7 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -3085,9 +3085,14 @@ static int mov_flush_fragment(AVFormatContext *s)
MOVFragmentInfo *info;
avio_flush(s->pb);
track->nb_frag_info++;
- track->frag_info = av_realloc(track->frag_info,
- sizeof(*track->frag_info) *
- track->nb_frag_info);
+ if (track->nb_frag_info >= track->frag_info_capacity) {
+ unsigned new_capacity = track->nb_frag_info + MOV_FRAG_INFO_ALLOC_INCREMENT;
+ if (av_reallocp_array(&track->frag_info,
+ new_capacity,
+ sizeof(*track->frag_info)))
+ return AVERROR(ENOMEM);
+ track->frag_info_capacity = new_capacity;
+ }
info = &track->frag_info[track->nb_frag_info - 1];
info->offset = avio_tell(s->pb);
info->time = mov->tracks[i].frag_start;