[FFmpeg-devel] Memory leak using bitstream filters with shared libs
Baptiste Coudurier
baptiste.coudurier
Wed Apr 2 10:50:20 CEST 2008
Hi guys,
M?ns Rullg?rd wrote:
> Baptiste discovered a rather nasty memory leak when using a bitstream
> filter with shared libraries.
>
> In ffmpeg.c:write_frame() the output of bitstream filters is stored in
> an AVPacket, and its destruct function is set like this (line 417):
>
> new_pkt.destruct= av_destruct_packet;
>
> Later on, in av_interleave_packet_per_dts(), AVPacket.destruct is
> compared against av_destruct_packet, like this (utils.c:2439):
>
> if(pkt->destruct == av_destruct_packet)
>
> The trouble here is that with shared libraries, the address of
> av_destruct_packet when used in the main executable or libs other than
> the one defining it resolves to a trampoline that calls the real
> function using a GOT entry. As a result, this comparison is always
> false when the destruct pointer was assigned outside libavformat.
>
> Does anyone have an idea for fixing this?
>
Sorry, but could we try to find an acceptable solution for this issue ?
Bistream filters are basically unuseable with shared libs... This is
critical IMHO.
--
Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA
SMARTJOG SAS http://www.smartjog.com
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312
More information about the ffmpeg-devel
mailing list