SCALE 8x: Gnash, the free Flash player
Autor original: Jake Edge
Publicado originalmente no: lwn.net
Tradução: Roberto Bechtlufft
No evento SCALE8X, ocorrido no mês passado, Rob Savoye da Open Media Now! (OMN) deu uma visão geral do trabalho que a OMN vem fazendo na criação de versões livres de vários produtos da Adobe para uso em plataformas livres. Ele se focou mais no Gnash , O Flash player do GNU, mas também tratou do servidor de mídia Cygnal e do compilador de ActionScript Ming . Há anos o Gnash é um dos projetos prioritários da Free Software Foundation, o que acabou atraindo mais desenvolvedores e elevando o status do projeto.
O Flash é importante porque é usado para navegação em sites, para assistir vídeos na web e para o que talvez seja mais importante para Savoye: para fins educativos. Há uma enorme quantidade de programas educativos escritos em Flash, e o software livre não era capaz de rodá-los. Como Savoye é “fanático” com a questão da liberdade, ele nunca instalou o plugin do Flash, o que faz dele e de outros como ele “cidadãos de segunda classe na internet”.
Há vários motivos para se implementar uma alternativa livre ao plugin do Flash, e eles não se limitam ao YouTube. O plugin da Adobe está cheio de problemas de segurança e não se integra bem ao Linux. Não há suporte a 64 bits, e essencialmente ele só está disponível para a arquitetura x86. Além disso, no futuro, os arqueólogos podem querer reproduzir conteúdo em Flash, e o plugin da Adobe já vai ter deixado de existir faz tempo.
Embora goste de trabalhar no Gnash, Savoye não é lá muito fã do Flash. Em resposta a uma pergunta, ele disse: “espero que o Flash morra”, e parece que isso é algo que está começando a acontecer. Enquanto isso, porém, ele recomenda que o Flash não seja usado em sites, e que a preferência seja dada ao HTML 5. Ele também encoraja os criadores de sites que usam o Flash a testarem-nos no Gnash para ver se eles poderão ser acessados corretamente por quem usa outras plataformas.
Um pouco de história
O desenvolvimento do Gnash começou em 2004, quando Savoye procurava por uma interface para seu sistema de som digital. Essa foi a primeira plataforma na qual o Gnash rodou, e até hoje ele continua rodando nela. Em 2005, John Gilmore pediu a ele que transformasse o Gnash em um plugin para navegadores, e em 2006 Savoye lançou plugins para o Firefox e o Konqueror. O suporte ao YouTube veio em 2007.
A comunidade de desenvolvimento que se formou depois que a FSF decretou que o projeto era de prioridade máxima decidiu que “seria ótimo ter patrocínio”, e por isso foi criada a OMN, patrocinada por Bob Young, Mark Shuttleworth, John Gilmore e outros. Eles continuaram fazendo engenharia reversa dos formatos e protocolos da Adobe, e também botaram o Gnash para rodar “nos hardwares mais esquisitos”.
Dispositivos esquisitos
Savoye exibe um slide com uma foto do Gnash rodando em vários dispositivos embarcados: OLPC, Sharp Zaurus, Pepper Pad, Classmate PC, OpenMoko, Playstation 3 e outros. Ele ainda acrescenta que nenhuma dessas plataformas roda o Flash da Adobe. O OLPC não pode redistribuir o Flash player da Adobe, e por isso apelou para o Gnash. Para melhorar o desempenho do Gnash no OLPC, Savoye fez algumas otimizações no GCC e na Glibc para o processador Geode.
O Gnash é uma implementação do Flash no estilo “cleanroom”, o que significa que nenhum de seus desenvolvedores jamais usou o Flash da Adobe. O contrato de licença do plugin do Flash proíbe seus usuários de criarem uma implementação concorrente do Flash. Por isso, todo o desenvolvimento foi feito usando-se documentação disponível publicamente, e isso é importante, porque as distribuições não poderão incluir o Gnash se ele não estiver dentro da lei. Embora houvesse a preocupação com uma possível ação judicial nos primeiros anos, a Adobe recentemente anunciou que o Gnash é uma “reimplementação legal” do Flash.
Os recursos do Gnash
O Gnash pode rodar de forma independente ou como um plugin para o Firefox e o Konqueror. O suporte ao Safari está a caminho. Ele passou a aceitar OpenGL para renderizar gráficos antes do Flash da Adobe, e ainda incluiu o suporte à Geometria Antigrãos ou AGG, para dispositivos embarcados que só tenham framebuffer.
Uma das áreas nas quais o Gnash vem se focando é a da segurança. O Flash da Adobe é “muito inseguro”, segundo Savoye, e quem usa internet banking em sites com interface em Flash “deveria se preocupar”. O Gnash também oferece maior proteção em termos de privacidade, porque por padrão ele exclui todos os cookies do Flash quando encerrado.
Com o Gnash, os usuários podem expandir o ActionScript com seus próprios códigos, ou criar um “wrapper” em torno de uma biblioteca de desenvolvimento existente. Ele suporta ainda codecs livres de patentes, além dos proprietários.
Compatibilidade, portabilidade e desempenho
O Gnash lê a versão 9 e versões anteriores do SWF (Shockwave Flash), mas o suporte principal é à versão 8. O suporte à versão 9 está sendo desenvolvido ativamente. Por volta de 80% da biblioteca ActionScript 2.0 foi implementada; os 20% restantes “eu nunca vi serem usados no mundo real”, diz Savoye. O suporte à versão 10 do SWF está a caminho também, mas “está sendo uma dureza”. A biblioteca ActionScript 3.0 pode reutilizar muitas das classes da versão 2.0, mas a versão 10 exige suporte a todas as versões anteriores, cada uma rodando em uma máquina virtual separada, então há muito trabalho pela frente.
Savoye diz que hoje em dia é raro ter que portar o Gnash para outras plataformas, já que costuma ser apenas questão de reconfigurá-lo e recompilá-lo para o novo hardware. Ele roda em qualquer sistema que esteja em conformidade com o POSIX e que tenha suporte a C++ ANSI. Alguns ambientes não POSIX também são suportados; Savoye comenta que nunca tinha ouvido falar no Haiku, um clone do BeOS, mas que viu o Gash rodando nele no evento SCALE Expo. O Gnash tem suporte a várias arquiteturas diferentes, com processadores de 32 e 64 bits de alto e baixo desempenho. É compatível também com várias interfaces gráficas e ambientes de desktop diferentes, além de vários renderizadores de backend (AGG, OpenGL e Cairo).
Em termos de desempenho, o Gnash pode usar a extensão Xvideo do X11 para exibir vídeo em tela cheia e alta resolução e ainda diminuir o uso de memória. Também está sendo acrescentado o suporte à decodificação de vídeo por hardware em equipamentos Intel, ATI e NVIDIA através da libvaapi.
Escrito em C++ e usando as bibliotecas Boost, o Gnash usa o Gstreamer ou o FFmpeg para lidar com mídia. Savoye comenta que a maioria das distribuições usa o Gstreamer para evitar problemas com codecs, mas que o FFmpeg é bem mais rápido, e o Gstreamer pode usá-lo também. Para HTTP e HTTPS, o Gnash usa a libcurl. Há suporte a desktops GNOME e KDE, “ou mesmo para nenhum desktop”.
Assim como acontece com o Perl e com o Python, o Gnash pode fazer um “wrap” em qualquer biblioteca de desenvolvimento para que ela seja usada pelo ActionScript. No momento, existem extensões para recursos como acesso direto ao sistema de arquivos, MySQL, GTK2, D-Bus e por aí vai. As extensões são incluídas diretamente no ActionScript, e podem ser acessadas como qualquer outra classe dele.
Foco atual
A equipe do Gnash está se concentrando no suporte às versões 9 e 10 do SWF, além do ActionScript 3. “Neste projeto, nunca vamos parar de correr atrás da Adobe”, explica Savoye. Há trabalho sendo realizado nos protocolos RMTP do Gnash e do Cygnal, na melhoria do desempenho em hardware de baixo desempenho e no suporte aprimorado à aceleração gráfica. Também está em desenvolvimento um software para conferências em vídeo com base no Flash, para que haja uma solução livre nessa área.
Tem havido muito trabalho no Cygnal porque não há um bom servidor de mídia avançada no mundo do software livre. Há vários aplicativos de groupware e conferência em vídeo escritos em Flash, mas eles precisam de suporte no lado do servidor. Implementando um servidor de mídia livre, eles poderão se concentrar em oferecer segurança e privacidade melhores do que as da Adobe ou de qualquer outra empresa proprietária, segundo Savoye.
Como ajudar
Savoye não se intimidou em sugerir que “cerveja de graça” seria uma das maiores contribuições ao desenvolvimento do Gnash, mas há outras coisas que também podem ajudar. “Bons relatórios de bugs” são essenciais. E claro, uma ajudinha na velha lista de sempre dos projetos de software livre: tradução, documentação, desenvolvimento e manutenção do site, ajuda com a infraestrutura e por aí vai. Doações também são sempre bem-vindas, ele acrescenta.
Embora seja frustrante pensar que uma rede tida como aberta precise exibir conteúdo em Flash, no momento essa é uma infeliz realidade. Em uns seis anos, o Gnash progrediu muito rumo à substituição do plugin fechado da Adobe em desktops x86, e é a única solução para muitos outros dispositivos e arquiteturas. Quando paramos para pensar que Savoye e o resto da equipe do Gnash nunca instalou o Flash, o feito se torna ainda mais incrível. Se a a velocidade de lançamentos de novas versões do Flash cair (ou se não saírem mais versões), pode até ser que o Gnash fique pau a pau com ele e que possamos nos livrar de mais uma coisa não livre em nossos desktops.
Créditos a Jonathan Corbet – lwn.net
Tradução por Roberto Bechtlufft <info at bechtranslations.com.br>
Deixe seu comentário