|
|
@@ -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 } |
|
|
|
}; |
|
|
|
|
|
|
|