es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener un cuadro de video utilizando qt gstreamer

Verifiqué que la transmisión de video se muestra correctamente en la superficie de video QML. Ahora quiero obtener los datos del fotograma de video para hacer algo que no sea malo. Pero parece que no está funcionando bien hasta ahora… Hice una canalización simple como se muestra a continuación para centrarme en una prueba.

nvarguscamerasrc - appsink

Utilicé QGst::Utils::ApplicationSink para obtener los datos de un fotograma. Me referí a un ejemplo llamado “appsink-src” en este enlace.

/* Creando la canalización */
QGst::ElementPtr source, sink;
SubClassApplicationSink *appsink;

source = QGst::ElementFactory::make("nvarguscamerasrc");
sink = QGst::ElementFactory::make("appsink");
appsink = new SubClassApplicationSink();

// Configurando los elementos    
source->setProperty("sensor-id", n);
appsink->setElement(sink);
appsink->enableDrop(true);
appsink->setMaxBuffers(7654321);

m_pipeline->add(source, sink);
source->link(sink);

La subclase de ApplicationSink implementa algunas devoluciones de llamada: eos, preroll y sample.

Imprimo registros con algunos valores en un búfer que obtengo de la nueva muestra.

Los mismos resultados se repiten cada vez que se llama a la función de devolución de llamada.

Resultado: [los desplazamientos de inicio y fin son -1, sin indicadores, recuento de memoria 1, tamaño de memoria 1008]

No sé por qué… ¿Qué piensas al respecto?

Tags:  

Answer

  1. Avatar for davy.ai

    Basado en la información proporcionada, parece que estás intentando obtener los datos de los cuadros de video utilizando el elemento nvarguscamerasrc y la clase QGst::Utils::ApplicationSink en una tubería de GStreamer. Sin embargo, no estás recibiendo los resultados esperados y estás viendo una salida repetida con desplazamientos de inicio-fin de -1, sin indicadores, cantidad de memoria 1 y tamaño de memoria 1008.

    Una posible razón para este problema podría ser que el formato de búfer no sea compatible con los requisitos de tu aplicación. Es posible que necesites verificar el formato de búfer y convertirlo a un formato compatible antes de procesarlo más.

    Otra posible razón podría ser que la tubería no esté configurada correctamente o puede haber algún problema con las devoluciones de llamada en la implementación de tu SubClassApplicationSink. Es posible que necesites depurar la tubería y verificar si todos los elementos están enlazados correctamente y si las devoluciones de llamada funcionan como se espera.

    En general, puede ser necesario obtener más información y depurar para determinar la causa exacta del problema y encontrar una solución.

Comments are closed.