¿Cuál es la forma más rápida de mostrar imágenes en un widget Qt? Descodifiqué el video usando libavformat y libavcodec, por lo que ya tengo marcos sin formato RGB o YCbCr 4: 2: 0. Actualmente estoy usando un QGraphicsView con un objeto QGraphicsScene que contiene un QGraphicsPixmapItem. Actualmente estoy obteniendo los datos del marco en un QPixmap usando el constructor QImage desde un búfer de memoria y convirtiéndolo en QPixmap usando QPixmap :: fromImage().¿Cuál es la forma más eficiente de mostrar marcos de video decodificados en Qt?
Me gustan los resultados de esto y parece relativamente rápido, pero no puedo evitar pensar que debe haber una manera más eficiente. También escuché que la conversión de QImage a QPixmap es costosa. Implementé una solución que usa una superposición de SDL en un widget, pero me gustaría quedar solo con Qt, ya que puedo capturar fácilmente clics y otras interacciones del usuario con la pantalla de video con QGraphicsView.
Estoy haciendo cualquier escala de video requerida o conversiones de espacio de color con libswscale, así que me gustaría saber si alguien tiene una manera más eficiente de mostrar los datos de imagen después de que se haya realizado todo el procesamiento.
Gracias.
Convertí tus paquetes a rgb con swscale en el hilo de mi decodificador y utilicé tu método. funcionando sin problemas. – baci
'p.SetRenderHint (QPainter :: SmoothPixmapTransform, 1);' - setRenderHint debe estar en minúscula. – ottoshmidt
gracias, @ottoshmidt. Fijo. –