[ruby-gnome2-doc-cvs] [Hiki] create - tut-gst-bins-ghost-pads

アーカイブの一覧に戻る

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






ruby-gnome2-cvs メーリングリストの案内
アーカイブの一覧に戻る