Decodificación RK3588 MPP, GRA, DRM, QT MPP

        Ha pasado un tiempo desde que se completó el trabajo de RK3588. Estaba ocupado con otro contenido, por lo que no actualicé el contenido relevante a tiempo. Hoy vi que algunos amigos se habían suscrito, así que actualicé el contenido de este capítulo y Agradeció a todos los amigos que se suscribieron por su apoyo. También se utiliza para tomar notas.

        La última vez mencioné que el uso de la API de rockit puede crear rápidamente un conjunto de aplicaciones de decodificación y visualización, pero QT no puede flotar sobre el video. Más adelante lo implementaré desde MPP, RGA y DRM. No prestaré atención a la implementación específica de rockit. Si alguien lo sabe, puede dar algunas instrucciones. Iré a trabajar en ello. Si está completo , lo compartiré en el blog.

         Para conocer el contenido específico de MPP, podemos consultar los documentos oficiales proporcionados por RK. Aquí hay un resumen de MPP: MPP en realidad decodifica o codifica los datos fuente de entrada y luego los genera. Solo necesitamos ingresar y salir de acuerdo con la estructura de datos proporcionada por MPP para obtener cuadros decodificados o archivos codificados. ¿Cómo procesar la entrada, salida y cuadros decodificados? Hay varias formas en la capa de aplicación. Una puede usar ffmpeg y la otra Puede usar gstreamer. Además, también puede manejarlo usted mismo y operar de acuerdo con sus propias necesidades. Este artículo trata principalmente la operación de decodificación de MPP según sus propias necesidades.

        1. Inicialice el decodificador. Si necesita decodificar varios canales al mismo tiempo, debe inicializar el número correspondiente de decodificadores. Yo uso decodificación h265 de 8 canales y el retraso es de aproximadamente 200 ms. Este código es un extracto del código. Si desea implementarlo por completo, necesita cambiar algunos contenidos usted mismo.

int ret = 0;

MppPacket mPkt;

mPktBuf = nuevo carácter[PKT_SIZE];

//Preste atención a la relación entre mPkt y mPktBuf. Hay un puntero en mPkt que apunta a mPktBuf

    ret = mpp_packet_init(&mPkt, mPktBuf, PKT_SIZE);
    si (ret)

Supongo que te gusta

Origin blog.csdn.net/dreamliweiming/article/details/130981283
Recomendado
Clasificación