@ -63,7 +63,7 @@
# define APIENTRY
# endif
/* GL_RED_COMPONENT is used for plannar pixel types.
/* FF_ GL_RED_COMPONENT is used for plannar pixel types.
* Only red component is sampled in shaders .
* On some platforms GL_RED is not availabe and GL_LUMINANCE have to be used ,
* but since OpenGL 3.0 GL_LUMINANCE is deprecated .
@ -71,11 +71,11 @@
* GL_LUMINANCE produces RGBA = value , value , value , 1.
* Note : GL_INTENSITY may also be used which produce RGBA = value , value , value , value . */
# if defined(GL_RED)
# define GL_RED_COMPONENT GL_RED
# define FF_ GL_RED_COMPONENT GL_RED
# elif defined(GL_LUMINANCE)
# define GL_RED_COMPONENT GL_LUMINANCE
# define FF_ GL_RED_COMPONENT GL_LUMINANCE
# else
# define GL_RED_COMPONENT 0x1903; //GL_RED
# define FF_ GL_RED_COMPONENT 0x1903; //GL_RED
# endif
/* Constants not defined for iOS */
@ -225,21 +225,21 @@ static const struct OpenGLFormatDesc {
GLenum format ;
GLenum type ;
} opengl_format_desc [ ] = {
{ AV_PIX_FMT_YUV420P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV444P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV422P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV410P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV411P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV440P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV420P16 , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUV422P16 , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUV444P16 , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUVA420P , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUVA444P , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUVA422P , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUVA420P16 , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUVA422P16 , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUVA444P16 , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUV420P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV444P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV422P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV410P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV411P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV440P , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUV420P16 , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUV422P16 , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUV444P16 , & FF_OPENGL_FRAGMENT_SHADER_YUV_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUVA420P , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUVA444P , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUVA422P , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_YUVA420P16 , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUVA422P16 , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_YUVA444P16 , & FF_OPENGL_FRAGMENT_SHADER_YUVA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_RGB24 , & FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET , GL_RGB , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_BGR24 , & FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET , GL_RGB , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_0RGB , & FF_OPENGL_FRAGMENT_SHADER_RGB_PACKET , GL_RGBA , GL_UNSIGNED_BYTE } ,
@ -259,10 +259,10 @@ static const struct OpenGLFormatDesc {
{ AV_PIX_FMT_BGRA , & FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET , GL_RGBA , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_RGBA64 , & FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET , GL_RGBA , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_BGRA64 , & FF_OPENGL_FRAGMENT_SHADER_RGBA_PACKET , GL_RGBA , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_GBRP , & FF_OPENGL_FRAGMENT_SHADER_RGB_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_GBRP16 , & FF_OPENGL_FRAGMENT_SHADER_RGB_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_GBRAP , & FF_OPENGL_FRAGMENT_SHADER_RGBA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_GBRAP16 , & FF_OPENGL_FRAGMENT_SHADER_RGBA_PLANAR , GL_RED_COMPONENT , GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_GBRP , & FF_OPENGL_FRAGMENT_SHADER_RGB_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_GBRP16 , & FF_OPENGL_FRAGMENT_SHADER_RGB_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_GBRAP , & FF_OPENGL_FRAGMENT_SHADER_RGBA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_BYTE } ,
{ AV_PIX_FMT_GBRAP16 , & FF_OPENGL_FRAGMENT_SHADER_RGBA_PLANAR , FF_ GL_RED_COMPONENT, GL_UNSIGNED_SHORT } ,
{ AV_PIX_FMT_NONE , NULL }
} ;