Archived:Aplicações multimídia para Maemo - Parte I
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot addition of Template:ArticleMetaData) |
m (Lpvalente -) |
||
| Line 1: | Line 1: | ||
| + | [[Category:Maemo]][[Category:Multimedia]][[Category:Python]][[Category:Lang-Portuguese]] | ||
| + | {{Archived|timestamp=20121214212227|user=[[User:Lpvalente|Lpvalente]]|language=Lang-Portuguese}} | ||
| + | |||
| + | |||
{{ArticleMetaData | {{ArticleMetaData | ||
|sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] --> | |sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] --> | ||
| Line 21: | Line 25: | ||
|creationdate=20080921 | |creationdate=20080921 | ||
|author=[[User:Raulherbster]] | |author=[[User:Raulherbster]] | ||
| − | }}A maioria das aplicações multimídia da plataforma [[Maemo]] são baseadas no GStreamer, uma biblioteca open-source que permite a construção de aplicações para manipulação de streams de mídia: desde simples reprodutores de mp3 até editores de aúdio e vídeo com funcionalidades complexas. Sua arquitetura é baseada em plug-ins, os quais provêem um grande número de codecs e funcionalidades já implementadas. GStreamer foi criado para prover uma solução para falhas no suporte à multimídia na plataforma Linux, por exemplo: | + | }} |
| + | |||
| + | ===Resumo=== | ||
| + | {{Abstract|Este artigo faz parte de uma série de artigos que explica como criar aplicações multimídia no Maemo.}} | ||
| + | |||
| + | |||
| + | ===Introdução=== | ||
| + | A maioria das aplicações multimídia da plataforma [[Maemo]] são baseadas no GStreamer, uma biblioteca open-source que permite a construção de aplicações para manipulação de streams de mídia: desde simples reprodutores de mp3 até editores de aúdio e vídeo com funcionalidades complexas. Sua arquitetura é baseada em plug-ins, os quais provêem um grande número de codecs e funcionalidades já implementadas. GStreamer foi criado para prover uma solução para falhas no suporte à multimídia na plataforma Linux, por exemplo: | ||
; Existência de código duplicado : A maioria dos reprodutores de arquivos multimídia basicamente reimplementavam o mesmo código várias vezes. Uma determinada funcionalidade - a decodificação de um arquivo OGG, por exemplo - é comumente utilizada e poderia ser implementada como um elemento único e central para vários reprodutores; | ; Existência de código duplicado : A maioria dos reprodutores de arquivos multimídia basicamente reimplementavam o mesmo código várias vezes. Uma determinada funcionalidade - a decodificação de um arquivo OGG, por exemplo - é comumente utilizada e poderia ser implementada como um elemento único e central para vários reprodutores; | ||
| + | |||
; Mecanismos não-unificados de plug-ins : Tipicamente, um reprodutor de multimídia possui um plug-in para diferentes tipos de mídia. Dois reprodutores de mídia distintos certamente vão implementar seus próprios mecanismos de plug-in. Entretanto, esses componentes não poderão ser facilmente compartilhados, pois a arquitetura de um reprodutor de mídia é bastante restrita para compartilhamento com outros reprodutores; | ; Mecanismos não-unificados de plug-ins : Tipicamente, um reprodutor de multimídia possui um plug-in para diferentes tipos de mídia. Dois reprodutores de mídia distintos certamente vão implementar seus próprios mecanismos de plug-in. Entretanto, esses componentes não poderão ser facilmente compartilhados, pois a arquitetura de um reprodutor de mídia é bastante restrita para compartilhamento com outros reprodutores; | ||
| + | |||
; Reprodutores/Bibliotecas para um único propósito : Um reprodutor é criado para reproduzir um formato específico de aúdio e/ou de vídeo. A maioria dos reprodutores têm implementado uma infra-estrutura completa com o intuito de alcançar o seu único propósito: playback. A arquitetura dificulta a adição de novos filtros ou efeitos especiais para serem aplicados nos arquivos de multimídia. | ; Reprodutores/Bibliotecas para um único propósito : Um reprodutor é criado para reproduzir um formato específico de aúdio e/ou de vídeo. A maioria dos reprodutores têm implementado uma infra-estrutura completa com o intuito de alcançar o seu único propósito: playback. A arquitetura dificulta a adição de novos filtros ou efeitos especiais para serem aplicados nos arquivos de multimídia. | ||
| Line 48: | Line 61: | ||
Além de aplicações que utilizam plug-ins, também podemos desenvolver plug-ins para o framework GStreamer. Basicamente, um plug-in é um bloco de código facilmente carregável. Um simples plug-in pode conter a implementação de vários elementos, ou apenas de um único. Os plug-ins são classificados em classes (Base, Good, Ugly e Bad) de acordo com a licensa de distribuição e a qualidade. | Além de aplicações que utilizam plug-ins, também podemos desenvolver plug-ins para o framework GStreamer. Basicamente, um plug-in é um bloco de código facilmente carregável. Um simples plug-in pode conter a implementação de vários elementos, ou apenas de um único. Os plug-ins são classificados em classes (Base, Good, Ugly e Bad) de acordo com a licensa de distribuição e a qualidade. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Revision as of 00:22, 15 December 2012
Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)
Dados do artigo
Artigo
Resumo
Este artigo faz parte de uma série de artigos que explica como criar aplicações multimídia no Maemo.
Introdução
A maioria das aplicações multimídia da plataforma Maemo são baseadas no GStreamer, uma biblioteca open-source que permite a construção de aplicações para manipulação de streams de mídia: desde simples reprodutores de mp3 até editores de aúdio e vídeo com funcionalidades complexas. Sua arquitetura é baseada em plug-ins, os quais provêem um grande número de codecs e funcionalidades já implementadas. GStreamer foi criado para prover uma solução para falhas no suporte à multimídia na plataforma Linux, por exemplo:
- Existência de código duplicado
- A maioria dos reprodutores de arquivos multimídia basicamente reimplementavam o mesmo código várias vezes. Uma determinada funcionalidade - a decodificação de um arquivo OGG, por exemplo - é comumente utilizada e poderia ser implementada como um elemento único e central para vários reprodutores;
- Mecanismos não-unificados de plug-ins
- Tipicamente, um reprodutor de multimídia possui um plug-in para diferentes tipos de mídia. Dois reprodutores de mídia distintos certamente vão implementar seus próprios mecanismos de plug-in. Entretanto, esses componentes não poderão ser facilmente compartilhados, pois a arquitetura de um reprodutor de mídia é bastante restrita para compartilhamento com outros reprodutores;
- Reprodutores/Bibliotecas para um único propósito
- Um reprodutor é criado para reproduzir um formato específico de aúdio e/ou de vídeo. A maioria dos reprodutores têm implementado uma infra-estrutura completa com o intuito de alcançar o seu único propósito: playback. A arquitetura dificulta a adição de novos filtros ou efeitos especiais para serem aplicados nos arquivos de multimídia.
Arquitetura
Basicamente, a arquitetura do GStreamer é composta por elementos, bins, pipelines e pads. Na nomenclatura do GStreamer, todo componente, exceto o próprio fluxo, é chamado de elemento: cada um deve ter, pelo menos, um pad de entrada (source), ou um pad de saída (sink), ou os dois ou até mesmo vários deles. Geralmente, uma aplicação GStreamer é composta por uma cadeia de elementos ligados entre si e permite-se que os dados fluam através dessa cadeia de elementos. Um elemento possui uma função bem específica, por exemplo, ler os dados de um arquivo ou decodificar os sinais presentes em um fluxo. Um elemento pode está em quatro estados possíveis:
- Null: estado padrão;
- Ready: buffers estão alocados e os arquivos propriamente abertos, contudo o fluxo ainda está em espera;
- Paused: o fluxo está aberto, mas seu movimento está congelado;
- Playing: o mesmo que Paused, mas os dados estão fluindo.
Um bin é simplesmente um conteiner de elementos que contém vários outros elementos ligados entre si. Lembre-se que um bin também é um elemento. Um pipeline é um tipo especial de bin que permite a execução dos elementos nele presentes.
Pads são como portas pelas quais o fluxo de mídia trafega. Normalmente, eles possuem possuem capacidades de manipulação de dados bem específicas, por exemplo, eles podem restrigir os tipos de dados que trafegam por eles.
Além de aplicações que utilizam plug-ins, também podemos desenvolver plug-ins para o framework GStreamer. Basicamente, um plug-in é um bloco de código facilmente carregável. Um simples plug-in pode conter a implementação de vários elementos, ou apenas de um único. Os plug-ins são classificados em classes (Base, Good, Ugly e Bad) de acordo com a licensa de distribuição e a qualidade.




