# HG changeset patch # User reimar # Date 1375685201 0 # Node ID 97638800c6f3623b196916d73f0d3cc59f3862b4 # Parent d8a13d907c617731e94d5c2fd8220b62ea380230 Fix and simplify alloc/free of AVIO buffer. diff -r d8a13d907c61 -r 97638800c6f3 libmpdemux/demux_lavf.c --- a/libmpdemux/demux_lavf.c Sun Aug 04 20:19:58 2013 +0000 +++ b/libmpdemux/demux_lavf.c Mon Aug 05 06:46:41 2013 +0000 @@ -70,7 +70,6 @@ AVInputFormat *avif; AVFormatContext *avfc; AVIOContext *pb; - uint8_t *buffer; int audio_streams; int video_streams; int sub_streams; @@ -553,8 +552,8 @@ av_strlcat(mp_filename, "foobar.dummy", sizeof(mp_filename)); if (!(priv->avif->flags & AVFMT_NOFILE)) { - priv->buffer = av_mallocz(BIO_BUFFER_SIZE); - priv->pb = avio_alloc_context(priv->buffer, BIO_BUFFER_SIZE, 0, + uint8_t *buffer = av_mallocz(BIO_BUFFER_SIZE); + priv->pb = avio_alloc_context(buffer, BIO_BUFFER_SIZE, 0, demuxer, mp_read, NULL, mp_seek); priv->pb->read_seek = mp_read_seek; if (!demuxer->stream->end_pos || (demuxer->stream->flags & MP_STREAM_SEEK) != MP_STREAM_SEEK) @@ -873,7 +872,7 @@ av_freep(&priv->avfc->key); avformat_close_input(&priv->avfc); } - av_freep(&priv->buffer); + av_freep(&priv->pb->buffer); av_freep(&priv->pb); free(priv); demuxer->priv= NULL; }