[Libav-user] AVFrame Queue and multithreading
vahid at kowsari.com
Sat Dec 14 19:56:28 CET 2013
I am using ffmpeg 1.2 libraries to create an application that reads and decodes frames for processing. It is handling MPEG2/H264 from UDP or file.
I have been using a multi-threaded application where the frames are read from one thread, then the AVFrames are put in a queue (I memcopy the AVFrame* and not the frame data).
In another thread I loop and remove AVFrames * from the queue and run the processing that I have to do.
This seems to work most of the time but I think sometimes the frames maybe garbled up.
My question is what is the proper way to create an AVFrame queue? What I would rather not do is do a memcopy of the frame (actual image) data.
It seems to me that the pointers to the data of the frame seem to be re-cycling every 10 frames. FFMPEG is internally re-using the same buffers.
Do I have to use reference counting? or write my own AVFrame allocation/freeing routines?
Any help is appreciated.
More information about the Libav-user