2017-11-12 3 views
0

Ich habe App in C, die Gstreamer lib verwendet und ich schiebe GstBuffer zu appsrc - es funktioniert, Video spielt, aber ich kann nicht die Größe von appsrc Element bekommen? Ich tue dies:Warum gibt gst_app_src_get_size immer -1 zurück, funktioniert aber alles gut?

GstElement* element = gst_bin_get_by_name (GST_BIN (mybin), "binname"); 

    gst_app_src_push_buffer (GST_APP_SRC (element), buffer); 
    printf(" SIZE OF APPSRC = %d \n", gst_app_src_get_size(GST_APP_SRC (element))); 

ich immer sehen, -1

Antwort

0

Ich denke, dass ist eine Informationswert. Appsrc weiß nicht, wie viele Daten Sie vor dem EOS-Stream einspeisen werden. Daher sagt es Ihnen, dass es "unbekannt" ist. Wenn Sie es über gst_app_src_set_size() einstellen, wird es wahrscheinlich das gleiche Ergebnis hier zurückgeben. Ähnlich wie gst_app_src_set/get_duration(). AppSrc gibt Ihrer App die Kontrolle über den Feed für die Pipeline. Daher können Sie nicht erwarten, dass die Pipeline diese Dinge für Sie ermittelt.

Verwandte Themen