🛠 Serveur multimédia HDMI et GPU Mali

Hardkernel ODROID-XU4 (Samsung Exynos5422) · avance · Schéma : IMG-odroid-xu4-avance-3-odroidxu4-serveur-multimedia.svg — ODROID-XU4 en média-center : sortie HDMI 1.4a 1080p (vidéo + audio) vers un téléviseur, GPU Mali-T628 MP6, stockage USB 3.0

Objetivos

Transformar el ODROID-XU4 en un centro multimedia HDMI: salida HDMI 1.4a Tipo-A hasta 1080p con CEC, y audio ÚNICAMENTE por HDMI (el conector jack de 3,5 mm del XU3 ha sido eliminado — de lo contrario, usar un módulo de sonido USB). La GPU ARM Mali-T628 MP6 ofrece OpenGL ES 3.0 y OpenCL 1.2 bajo la imagen del fabricante — con una particularidad: se enumera como DOS dispositivos OpenCL (4 núcleos + 2 núcleos).

Hardware

Código completo

/* mali_devices.c — enumerer les GPU Mali (image vendor XU4)
 * Build : gcc mali_devices.c -lOpenCL -o mali_devices */
#define CL_USE_DEPRECATED_OPENCL_1_2_APIS
#include <CL/cl.h>
#include <stdio.h>

int main(void) {
    cl_platform_id p[8]; cl_uint np;
    clGetPlatformIDs(8, p, &np);
    for (cl_uint i = 0; i < np; i++) {
        cl_device_id d[8]; cl_uint nd;
        clGetDeviceIDs(p[i], CL_DEVICE_TYPE_ALL, 8, d, &nd);
        for (cl_uint j = 0; j < nd; j++) {
            char name[64], ver[64];
            clGetDeviceInfo(d[j], CL_DEVICE_NAME, sizeof name, name, 0);
            clGetDeviceInfo(d[j], CL_DEVICE_VERSION, sizeof ver, ver, 0);
            printf("plateforme %u / periph. %u: %s (%s)\n", i, j, name, ver);
            /* Attendu : « Mali-T628 (OpenCL 1.2) » deux fois (4+2 cœurs) */
        }
    }
    return 0;
}

Reproducción de vídeo de prueba: mpv --vo=gpu /media/film.mkv ; sonido: verificar la tarjeta samsung,odroid-xu3-audio (salida HDMI) con pactl list short sinks.

Verificación esperada

./mali_devices muestra dos dispositivos «Mali-T628 (OpenCL 1.2)». El vídeo 1080p se muestra en el televisor con el sonido a través del mismo cable HDMI; el CEC permite apagar la TV desde la placa.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales