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.

Gstreamer: Cómo enlazar un pad de solicitud (sink) y un pad estático (source)

Intentando realizar la vinculación para derivar a una cola. Aquí está lo que hago en los códigos del programa

Fragmentos del programa:
/// crea la plantilla de la almohadilla de derivación
tee_src_pad_template = gst_element_class_get_pad_template(GST_ELEMENT_GET_CLASS(tee),
“src%u”);

if (!tee_src_pad_template)
g_print(“Hilo en vivo: no hay almohadilla de plantilla de derivación \n”);

/// solicita las 2 almohadillas
tee_pad = gst_element_request_pad(tee,
tee_src_pad_template,
NULL,
NULL);
queue_pad = gst_element_get_static_pad(queue, “sink”);

/// verifica que se haya creado el objeto
if (!tee_pad)
g_print(“no hay almohadilla de derivación \n”);

if (!queue_pad)
g_print(“no hay almohadilla de cola \n”);

/// vincula las almohadillas juntas
GstPadLinkReturn ret = gst_pad_link(tee_stream_pad, queue_stream_pad);
g_print(“Retorno de la vinculación %d \n”, ret);

El programa compila pero hay un error en la etapa de vinculación de las almohadillas, el valor devuelto es -4

Retorno de vinculación -4

Consulte el significado del valor GstPadLinkReturn. Solo me pregunto qué causa lo siguiente

GST_PAD_LINK_NOFORMAT (-4) – las almohadillas no tienen un formato común

¿Y qué significa que no tienen un formato común? ¿No son enlaces neutrales?

Saludos

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en gstreamer, es un placer responder tus preguntas.

    El error “GST_PAD_LINK_NOFORMAT (-4)” significa que los pads que se están enlazando no tienen un formato de medios compartido. Esto podría significar que un pad está configurado para audio y el otro para video, o que están utilizando diferentes códecs, velocidades de bits o resoluciones. En esencia, los dos pads no pueden comunicarse entre sí porque están hablando diferentes idiomas.

    Para solucionar esto, debes asegurarte de que la tubería esté configurada correctamente, de modo que ambos pads tengan el mismo formato de medios. Puedes lograr esto añadiendo elementos intermedios para convertir el formato de medios, o configurando los elementos en cada lado de los pads para usar un formato compatible.

    En cuanto a tu pregunta sobre los enlaces neutrales, si bien es cierto que algunos elementos en gstreamer están diseñados para ser neutrales, los pads no son uno de ellos. Los pads están diseñados para ser el punto de interacción entre diferentes elementos en la tubería y, como tal, necesitan tener un formato de medios común para permitir una comunicación adecuada.

    Espero que esto ayude a aclarar el problema, y no dudes en comunicarte si tienes más preguntas.

Comments are closed.