On 11/27/2019 9:22 AM, Andreas Rheinhardt wrote: > By using avio_get_dyn_buf() + ffio_free_dyn_buf() instead of > avio_close_dyn_buf() + av_free() one can avoid an allocation + copy for > small headers. Furthermore, it simplifies freeing. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> > --- > libavformat/av1.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/libavformat/av1.c b/libavformat/av1.c > index 03669dfd2a..132f4e987b 100644 > --- a/libavformat/av1.c > +++ b/libavformat/av1.c > @@ -326,7 +326,7 @@ int ff_isom_write_av1c(AVIOContext *pb, const uint8_t > *buf, int size) > AV1SequenceParameters seq_params; > PutBitContext pbc; > uint8_t header[4]; > - uint8_t *seq = NULL, *meta = NULL; > + uint8_t *seq, *meta; > int64_t obu_size; > int start_pos, type, temporal_id, spatial_id; > int ret, nb_seq = 0, seq_size, meta_size; > @@ -376,7 +376,7 @@ int ff_isom_write_av1c(AVIOContext *pb, const uint8_t > *buf, int size) > buf += len; > } > > - seq_size = avio_close_dyn_buf(seq_pb, &seq); > + seq_size = avio_get_dyn_buf(seq_pb, &seq); > if (!seq_size) { > ret = AVERROR_INVALIDDATA; > goto fail; > @@ -401,17 +401,13 @@ int ff_isom_write_av1c(AVIOContext *pb, const uint8_t > *buf, int size) > avio_write(pb, header, sizeof(header)); > avio_write(pb, seq, seq_size); > > - meta_size = avio_close_dyn_buf(meta_pb, &meta); > + meta_size = avio_get_dyn_buf(meta_pb, &meta); > if (meta_size) > avio_write(pb, meta, meta_size); > > fail: > - if (!seq) > - avio_close_dyn_buf(seq_pb, &seq); > - if (!meta) > - avio_close_dyn_buf(meta_pb, &meta); > - av_free(seq); > - av_free(meta); > + ffio_free_dyn_buf(&seq_pb); > + ffio_free_dyn_buf(&meta_pb); > > return ret; > }
Ah, I had this written and queued for when i pushed my avcC patch with your suggested changes, but will apply yours instead since you actually sent it first. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".