[Libav-user] AVPacket av_malloc av_packet_unref question
Charles
linux2 at orion15.org
Fri Aug 19 23:31:51 EEST 2016
I have a piece of code that appears to work, that is to say it does stream packets..
It goes like this:
av_packet = (AVPacket *) av_malloc( sizeof( AVPacket ) );
while ( 1 ) /// reading in from file out to mpegts
{
av_read_frame( av_in_fmt_ctx, m_avpacket );
[...]
ret = av_interleaved_write_frame( av_out_fmt_ctx, av_packet );
av_packet_unref( av_packet );
}
In the include headers I find this type of verbage ::
* The side data is always allocated with av_malloc(), copied by
* av_packet_ref() and freed by av_packet_unref().
From reading the av_read_frame I know the packed is a reference to another packet (at least the buf).
Question :
What is av_malloc doing if the packet is getting unref and passed back into av_read_frame without another malloc?
Follow Up :
Is this thread safe?
Thanks
cco
More information about the Libav-user
mailing list