mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-09-04 07:21:31 +02:00
avformat/asfenc: Add deinit function
Fixes leaks when the trailer is never written. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
ea7a81bc1d
commit
87a4138d4b
@ -760,8 +760,6 @@ static int asf_write_header(AVFormatContext *s)
|
||||
* data_size - asf->data_offset at the moment this function is done.
|
||||
* It is needed to use asf as a streamable format. */
|
||||
if (asf_write_header1(s, 0, DATA_HEADER_SIZE) < 0) {
|
||||
//av_free(asf);
|
||||
av_freep(&asf->index_ptr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1101,10 +1099,16 @@ static int asf_write_trailer(AVFormatContext *s)
|
||||
asf_write_header1(s, file_size, data_size - asf->data_offset);
|
||||
}
|
||||
|
||||
av_freep(&asf->index_ptr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void asf_deinit(AVFormatContext *s)
|
||||
{
|
||||
ASFContext *const asf = s->priv_data;
|
||||
|
||||
av_freep(&asf->index_ptr);
|
||||
}
|
||||
|
||||
static const AVOption asf_options[] = {
|
||||
{ "packet_size", "Packet size", offsetof(ASFContext, packet_size), AV_OPT_TYPE_INT, {.i64 = 3200}, PACKET_SIZE_MIN, PACKET_SIZE_MAX, AV_OPT_FLAG_ENCODING_PARAM },
|
||||
{ NULL },
|
||||
@ -1132,6 +1136,7 @@ const AVOutputFormat ff_asf_muxer = {
|
||||
.flags = AVFMT_GLOBALHEADER,
|
||||
.codec_tag = asf_codec_tags,
|
||||
.priv_class = &asf_muxer_class,
|
||||
.deinit = asf_deinit,
|
||||
};
|
||||
#endif /* CONFIG_ASF_MUXER */
|
||||
|
||||
@ -1150,5 +1155,6 @@ const AVOutputFormat ff_asf_stream_muxer = {
|
||||
.flags = AVFMT_GLOBALHEADER,
|
||||
.codec_tag = asf_codec_tags,
|
||||
.priv_class = &asf_muxer_class,
|
||||
.deinit = asf_deinit,
|
||||
};
|
||||
#endif /* CONFIG_ASF_STREAM_MUXER */
|
||||
|
Loading…
Reference in New Issue
Block a user