ruby-****@sourc*****
ruby-****@sourc*****
2005年 3月 24日 (木) 22:06:46 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-mime-types ------------------------- TITLE = M$BaT(B sobre tipos MIME KEYWORD = = M$BaT(B sobre tipos MIME {{link("tut-gst-helloworld-problem", nil, "tut-gst", "tut-gst-types")}} GStreamer usa tipos MIME para identificar los diferentes tipos de datos que pueden manejar los elementos. Son mecanismos de alto nivel que asegura que todo el mundo habla del mismo tipo de dato. Un tipo MIME (Multipurpose Internet Mail Extension) es un par de strings que identifican a un cierto tipo de datos. Por ejemplo: * (({audio/raw})) : pistas de audio raw * (({audio/mpeg})) : audio MPEG * (({video/mpeg})) : v$ByE(Beo MPEG Un Gst::Element debe asociar un tipo MIME a sus puertos de entrada y salido cuando se carga en el sistema. GStreamer conoce los diferentes elementos y qutipo de datos env$ByB(Bn y reciben. Esto permite que la creac$ByP(Bn de elementos sea muy din$BaN(Bica y ampliable como veremos m$BaT(B adelante. Como se ha visto en el cap$ByU(Bulo anterior, los tipos MIME se agregan a la estructura de capacidades (Gst::Caps) de un Gst::Pad. En el ejemplo holamundo los elementos que se han contruido tienen los siguientes tipos MIME asociados con sus puertos de entrada y salida: {{image_left("mime-world.png")}} {{br}} Veremos como se puede crear un elemento basado en el tipo MIME de sus pertos de entrada y salida.De esta forma el usuario final tendrla posibilidad de elegir su decodificador de audio/mpeg favorito sin que el programador tenga que preocuparse de ello. Los tipos de los puertos de entrada y salida tambi$BqO(B posiblitan 'autoconectar' una Gst::Pipeline. Tendremos la posibilidad de decir: "construyeme una tuber$ByB(B que realize la conversi$B(B de audio/mpeg a audio/raw". ((*Nota*)) La librer$ByB(B b$BaT(Bica GStreamer no pretende solventar todos tus problemas de autoconexi$B(B. Deja las decisiones dif$ByD(Biles al programador de la aplicaci$B(B, cuando es necesario.