[FFmpeg-devel] [RFC] Avoid av_read_frame memory copy in implementation

Cyril Russo stage.nexvision
Wed May 26 13:06:49 CEST 2010

Hi all,

   I would like to propose a mechanism to avoid the useless memory copy 
when using av_read_frame in a player environnement.
It's common for multithreaded players to read multiple frames at once 
(to lower I/O bottleneck) and then they buffers theses frames for latter 
Currently, one must allocate another buffer to store the returned 
packet's data and copy the data, because initial memory is reused when 
calling av_read_frame again.
It's not a problem when you use the read frame immediately (like in 
transcoding case), but it is when you buffer the frames for later decoding.

To mirror the existing AVCodecContext / get_buffer idea, it would 
probably be a good idea to add a function pointer in AVFormatContext 
called to get a memory buffer to store the read frame into.
What do you think ?

Cyril Russo

More information about the ffmpeg-devel mailing list