Kotlin
Creación de un shader para la inversión de colores
Ahora nuestro renderizador necesita shader vamos a implementarlo
- Añade fragmentShaderCode a la clase MyRenderer:
Copia
private val fragmentShaderCode = """
precision mediump float;
uniform sampler2D Ytex;
uniform sampler2D Utex;
uniform sampler2D Vtex;
varying vec2 vTextureCoord;
void main() {
float nx = vTextureCoord.x;
float ny = vTextureCoord.y;
float y = texture2D(Ytex, vec2(nx, ny)).r;
float u = texture2D(Utex, vec2(nx, ny)).r - 0.5;
float v = texture2D(Vtex, vec2(nx, ny)).r - 0.5;
// Inverted Y color
y = 1.0 - 1.1643 * (y - 0.0625);
float r = y + 1.5958 * v;
float g = y - 0.39173 * u - 0.81290 * v;
float b = y + 2.017 * u;
gl_FragColor = vec4(r, g, b, 1.0);
}
""".trimIndent()
-
Para renderizar los fotogramas de vídeo, la clase renderer utiliza
OpenGLshaders. En este shader de ejemplo se produce el efecto de color invertido, más precisamente esto se logra mediante esta líneay = 1.0 - 1.1643 * (y - 0.0625);que está dentro delfragmentShaderCode -
Para ver cómo se implementa completamente el renderizador, consulta la implementación de la aplicación de ejemplo. aquí
Renderizado básico de vídeo
Aprende a utilizar un renderizador de vídeo personalizado en Kotlin para mostrar una versión en blanco y negro de una transmisión de vídeo utilizando el SDK para Android de Vonage Video.
Pasos
1
Introducción2
Primeros pasos3
Crear un nuevo proyecto4
Añadir el SDK de Android5
Configuración de la autenticación6
Solicitud de permisos7
Creación del renderizador de vídeo invertido8
Creación de un renderizador personalizado (MyRenderer)9
Publicación de un flujo en la sesión10
Conexión del renderizador personalizado al modelo de editor/suscriptor11
Ejecutar la aplicación12
Conclusión