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!
_______________________________________________ Libav-user mailing list Libav-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/libav-user