[Libav-user] av_buffersink_get_frame() crashes

Radu Robotin radu.robotin at gmail.com
Thu May 2 15:24:17 CEST 2013


I'm using ffmpeg with libavcodec and libavfilters for a custom project.
I've recently upgraded to the latest version available from git and noticed
that my previous code has stopped working. I'm processing several streams,
each in his own thread in the following way:

     next sample is taken from the stream, decoded and then inserted in the
buffer source of the filtergraph using av_buffersrc_add_frame()
     a frame is extracted from the buffer sink of the filtergraph using
av_buffersink_get_frame()
    the filtered frame is  copied in a buffer for further processing

before upgrading to the latest version of ffmpeg I've been using ffmpeg 1.2
and everything worked flawlessly.  The filtered buffer was pulled from the
filtergraph using the av_buffersink_get_buffer_ref().

The problem I'm encountering: at the first pass everything works fine,
however when I call the processing function for the second time (for
processing the next frame), it coredumps when I call
av_buffersink_get_frame() with the message " corrupted double-linked list ".
I tried further investigating the problem and have several
frames processed during the same call of this function: everything works
until the second call, then it coredumps at the same point.

To me it seems that something changes the structure of the filtergraph
between the calls to the processing function. Has something changed from
the previous version in the way filtergraph is  created/stored? I would
really like to use the new API and pull frames out of the buffersink,
instead of getting the buffer as it is in ver 1.2.

Thanks, any help would be appreciated!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20130502/ce482740/attachment.html>


More information about the Libav-user mailing list