On 11/27/2019 9:26 AM, James Almer wrote: > 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.
And of course i reply to the wrong patch... Was talking about Patch 4/7. _______________________________________________ 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".