mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-26 17:32:06 +00:00
avformat/webpenc: Fix memleak when trailer is never written
When the trailer is never written (or when a stream switches from non-animation mode to animation mode mid-stream), a cached packet (if existing) would leak. Fix this by adding a deinit function. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
df9d969954
commit
3903c139a9
@ -191,6 +191,13 @@ static int webp_write_trailer(AVFormatContext *s)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void webp_deinit(AVFormatContext *s)
|
||||||
|
{
|
||||||
|
WebpContext *w = s->priv_data;
|
||||||
|
|
||||||
|
av_packet_unref(&w->last_pkt);
|
||||||
|
}
|
||||||
|
|
||||||
#define OFFSET(x) offsetof(WebpContext, x)
|
#define OFFSET(x) offsetof(WebpContext, x)
|
||||||
#define ENC AV_OPT_FLAG_ENCODING_PARAM
|
#define ENC AV_OPT_FLAG_ENCODING_PARAM
|
||||||
static const AVOption options[] = {
|
static const AVOption options[] = {
|
||||||
@ -214,6 +221,7 @@ AVOutputFormat ff_webp_muxer = {
|
|||||||
.init = webp_init,
|
.init = webp_init,
|
||||||
.write_packet = webp_write_packet,
|
.write_packet = webp_write_packet,
|
||||||
.write_trailer = webp_write_trailer,
|
.write_trailer = webp_write_trailer,
|
||||||
|
.deinit = webp_deinit,
|
||||||
.priv_class = &webp_muxer_class,
|
.priv_class = &webp_muxer_class,
|
||||||
.flags = AVFMT_VARIABLE_FPS,
|
.flags = AVFMT_VARIABLE_FPS,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user