2016-08-29 2 views
-2

Je suis en train de diffuser un fichier yuv sur udp en mpegstream.Comment connaître la résolution vidéo qui vient sur le flux UDP ts?

et, je reçois qu'utiliser ci-dessous pipeline,

gst-launch-1.0 udpsrc port=8765 ! rtpmp2tdepay ! tsdemux ! avdec_h264 ! appsink 

A, appsink, je reçois le tampon vidéo. Mais, maintenant je voudrais savoir la résolution du flux vidéo entrant.

Comment puis-je trouver la résolution de la vidéo entrante.

+0

Avez-vous lu la documentation? Avez-vous lu à propos de GstCaps? – soupybionics

+0

ouais, j'ai lu des casquettes pour négocier le flux. –

Répondre

-1
sinkPad = gst_element_get_static_pad (Sink, "sink"); 

sinkCaps = gst_pad_get_current_caps (sinkPad); 

UU_PRINT("Caps :: %s", gst_caps_to_string (sinkCaps)); 

str = gst_caps_get_structure(sinkCaps, 0); 

if((!gst_structure_get_int (str, "width", &width)) || (gst_structure_get_int (str, "height", &height))) 
{ 
    UU_PRINT("No Width/Height are Available in the Incoming Stream Data !!"); 
} 

UU_PRINT("Width :: %d Hieght %d", width, height); 

gst_caps_unref(sinkCaps); 
+0

Quel élément est le "Sink" dans votre première ligne ci-dessus? – soupybionics

+0

c'est l'élément appsink, et cette fonction est une fonction de rappel de appsink, avec le signal new-sample –

+0

Mais vous avez dit que vous avez besoin de la résolution de flux vidéo "entrant" alias codé? Appsink traitera la vidéo décodée. – soupybionics