diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-07 14:05:29 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-01-07 14:20:21 +0100 |
commit | 1700be585593634c68fa7ccd193bfcb6b3c70822 (patch) | |
tree | 26efaeaccb56d63c2c4b8ef42c5ad049ee558f1f /libavformat/oggparsevorbis.c | |
parent | 2db8660f094ab15ce15f024f97134440a3654932 (diff) | |
parent | d894f74762bc95310ba23f804b7ba8dffc8f6646 (diff) |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
oggdec: make sure the private parse data is cleaned up
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/oggparsevorbis.c')
-rw-r--r-- | libavformat/oggparsevorbis.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index 7e8f6cede3..5510115bc8 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -192,6 +192,16 @@ fixup_vorbis_headers(AVFormatContext * as, struct oggvorbis_private *priv, return offset; } +static int vorbis_cleanup(AVFormatContext *s, int idx) +{ + struct ogg *ogg = s->priv_data; + struct ogg_stream *os = ogg->streams + idx; + struct oggvorbis_private *priv = os->private; + int i; + if (os->private) + for (i = 0; i < 3; i++) + av_freep(&priv->packet[i]); +} static int vorbis_header (AVFormatContext * s, int idx) @@ -373,5 +383,6 @@ const struct ogg_codec ff_vorbis_codec = { .magicsize = 7, .header = vorbis_header, .packet = vorbis_packet, + .cleanup= vorbis_cleanup, .nb_header = 3, }; |