[FFmpeg-devel] AVFrame linesize and OpenGL GL_UNPACK_ROW_LENGTH
Pavel Koshevoy
pkoshevoy at gmail.com
Tue May 7 06:06:39 CEST 2013
I've added a couple of clarifications below.
On 05/06/2013 09:45 PM, Pavel Koshevoy wrote:
> Hi,
>
> OpenGL requires that texture row stride must be pixel aligned, because
> GL_UNPACK_ROW_LENGTH parameter is expressed in pixels, not bytes.
Here are the docs on GL_UNPACK_ROW_LENGTH
http://www.opengl.org/sdk/docs/man/xhtml/glPixelStore.xml
>
> AVFrame linesize is byte aligned on 32-byte boundary. This means that for
> bgr24 and similar pixel formats rows are usually not pixel aligned and AVFrame
> data can not be used directly as an OpenGL texture.
>
If AVFrame data rows are not pixel aligned then data has to be copied row-by-row
into an intermediate frame with compatible alignment. It's wasteful and I would
like to avoid this because it noticably hurts playback performance in my player.
Pavel
More information about the ffmpeg-devel
mailing list