ruby-****@sourc*****
ruby-****@sourc*****
2005年 3月 24日 (木) 22:00:57 JST
------------------------- REMOTE_ADDR = 213.37.10.235 REMOTE_HOST = REMOTE_USER = ruby-gnome2-hiki URL = http://ruby-gnome2.sourceforge.jp/cgi-bin/hiki/es/hiki.cgi?tut-gst-bins-ghost-pads ------------------------- TITLE = Puertos fantasma KEYWORD = = Puertos fantasma {{link("tut-gst-bins-custom", nil, "tut-gst", "tut-gst-elements-state")}} Puede verse en la siguiente figura como un contenedor no tiene puertos por si mismo. Aques donde los "puertos fantasma" entran en juego. {{image_left("bin-element-noghost.png")}} {{br}} Un puerto fantasma es un puerto del mismo elemento del contenedor que ha sido promocionado. De esta forma, el contenedor tambi$BqO(B tiene un puerto. El contenedor se convierte entonces en otro elemento con un puerto, y se puede usar como cualquier otro elemento. Esta es una caracter$ByT(Btica muy importante a la hora de crear contenedores personalizados. {{image_left("bin-element-ghost.png")}} {{br}} La imagen superior muestra la representaci$B(B de un puerto fantasma. El puerto de entrada del elemento uno es tambi$BqO(B un puerto del contenedor. Los puertos fantasma en realidad se pueden a$B(Bdir a todos los objetos Gst::Element y no solo a los objetos Gst::Bin. Usemos el siguiente c$B(Bigo de ejemplo para a$B(Bdir un puerto fantasma a un contenedor: element = Gst::ElementFactory.make("mad") bin = Gst::Bin.new bin.add(element) bin.add_ghost_pad(element.get_pad("sink"), "sink") En el ejemplo anterior, el contenedor ahora tiene tambi$BqO(B un puerto: el puerto llamado 'sink' del elemento dado. Ahora podemos, por ejemplo, conectar el puerto de salida de un elemento filesrc al contenedor con: filesrc = Gst::ElementFactory.make("filesrc") filesrc >> bin