diff --git a/libavformat/cafenc.c b/libavformat/cafenc.c index 40ccd48c2d..11bb055965 100644 --- a/libavformat/cafenc.c +++ b/libavformat/cafenc.c @@ -238,11 +238,11 @@ static int caf_write_packet(AVFormatContext *s, AVPacket *pkt) static int caf_write_trailer(AVFormatContext *s) { + CAFContext *caf = s->priv_data; AVIOContext *pb = s->pb; AVCodecContext *enc = s->streams[0]->codec; if (pb->seekable) { - CAFContext *caf = s->priv_data; int64_t file_size = avio_tell(pb); avio_seek(pb, caf->data, SEEK_SET); @@ -256,11 +256,11 @@ static int caf_write_trailer(AVFormatContext *s) avio_wb32(pb, 0); ///< mPrimingFrames avio_wb32(pb, 0); ///< mRemainderFrames avio_write(pb, caf->pkt_sizes, caf->size_entries_used); - av_freep(&caf->pkt_sizes); caf->size_buffer_size = 0; } avio_flush(pb); } + av_freep(&caf->pkt_sizes); return 0; }