2017-05-15 2 views
0

Je crée des modules Kurento personnalisés avec des plugins GStreamer, j'ai créé un nouveau module nommé "RtmpEndpoint" qui étend Endpoint.
J'ai pu construire et installer le module et générer l'API js du client à utiliser. Cependant le module n'a pas pu être chargé, le journal des erreurs montre:undefined symbole: kms_element_get_type

(gst-plugin-scanner: 3379): GStreamer-AVERTISSEMENT *: Impossible de charger le module «/usr/lib/x86_64-linux-gnu /gstreamer-1.5/librtmpendpoint.so ': /usr/lib/x86_64-linux-gnu/gstreamer-1.5/librtmpendpoint.so: symbole non défini: kms_element_get_type

Je ne défini la fonction kms_rtmp_endpoint_get_type() dans le fichier source et en-tête, je suis confus pourquoi cette erreur se produit, s'il vous plaît aider, merci.

le fichier d'en-tête:

typedef struct _KmsRtmpEndpoint KmsRtmpEndpoint; 
typedef struct _KmsRtmpEndpointClass KmsRtmpEndpointClass; 

struct _KmsRtmpEndpoint 
{ 
    KmsElement element; 

    GstElement *h264depay; 
    GstElement *pcmudepay; 
    GstElement *flvmuxer; 
    GstElement *rtmpsink; 

    GstPad *videoPad, *audioPad; 

    gboolean silent; 
}; 

struct _KmsRtmpEndpointClass 
{ 
    KmsElementClass parent_class; 
}; 

GType kms_rtmp_endpoint_get_type (void); 

et une partie du fichier source:

static GstStaticPadTemplate video_sink = GST_STATIC_PAD_TEMPLATE ("video", 
GST_PAD_SINK, 
GST_PAD_ALWAYS, 
GST_STATIC_CAPS ("application/x-rtp, " 
    "media = (string) \"video\", " 
    "clock-rate = (int) 90000, " "encoding-name = (string) \"H264\"") 
); 

static GstStaticPadTemplate audio_sink = GST_STATIC_PAD_TEMPLATE ("audio", 
GST_PAD_SINK, 
GST_PAD_ALWAYS, 
GST_STATIC_CAPS ("application/x-rtp, " 
    "media = (string) \"audio\", " 
    "payload = (int) " GST_RTP_PAYLOAD_PCMU_STRING ", " 
    "clock-rate = (int) 8000; " 
    "application/x-rtp, " 
    "media = (string) \"audio\", " 
    "encoding-name = (string) \"PCMU\", clock-rate = (int) [1, MAX ]") 
); 

#define kms_rtmp_endpoint_parent_class parent_class 
G_DEFINE_TYPE (KmsRtmpEndpoint, kms_rtmp_endpoint, KMS_TYPE_ELEMENT); 

Répondre

-1

Peut-être que vous ne devriez pas définir kms_rtmp_endpoint_get_type() dans le fichier source, G_DEFINE_TYPE va générer automatiquement il.

+0

Ceci ne fournit pas de réponse à la question. Une fois que vous avez suffisamment [réputation] (https://stackoverflow.com/help/whats-reputation) vous pourrez [commenter n'importe quel article] (https://stackoverflow.com/help/privileges/comment); Au lieu de cela, [fournissez des réponses qui ne nécessitent pas de précisions de la part du demandeur] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- je-fais-à la place). - [De l'examen] (/ review/low-quality-posts/17717312) – waka