10 de fev. de 2010

TV Digital: Você já deve saber, mas não custa falar mais uma vez

Série de notícias que não comentamos mas gerou barulho na comunidade de TV Digital brasileira.

  • Indústria precisa reclamar menos e produzir mais - Após a notícia de que a Argentina estaria investindo R$ 13 milhões na Invap para que esta realize pesquisas para o mercado de TV Digital, o assessor especial da Casa Civil André Barbosa assinalou que "a decisão Argentina deve ser vista pela indústria brasileira como um sinal de que está na hora de reagir com a produção local de equipamentos. Medida também precisa ser avaliada pelo setor de software, sob o risco de perda de mercado num futuro próximo". No início de Janeiro foi apresentado o primeiro conversos argentino do consorcio Coradir e Novatech. O aparelho que custa R$ 360,00 (um pouco a mais que os U$ 100,00 que o governo brasileiro defende) já possui o Ginga.



  • Governo isenta de IPI equipamentos para TV digital - A Camex isentou até 31 de dezembro de 2010 o IPI incidentes na compra de equipamentos para monitoração de sinais de vídeo, áudio e dados digitais. Produtos como roteadores digitais modulares e aparelhos codificadores e decodificadores tiveram redução para 2% do IPI.




  • Indústria corre para ter Ginga comercial antes da Copa do Mundo - Na primeira reunião do Fórum SBTVD foram definidos dois perfis de interatividade. O primeiro conta com texto, fotos e imagens animadas enquanto o segundo com aplicações de áudio e vídeo. O acordo foi necessário para agilizar a comercialização do Ginga e garantir que durante a Copa do Mundo o mercado já possua conversores com o middleware.



  • Uniformizar uso do Ginga é prioridade para o Brasil - Após a definição de dois perfis de interatividade, o Fórum SBTVD se mostra preocupado com a uniformização dos perfis com os países parceiros, principalmente pelo fato da Argentina, que apesar de ter decidido pelo padrão nipo-brasileiro a pouco tempo, já avança na produção de conversores com Ginga NCL/Lua.


29 de jan. de 2010

Apresentação do Operador de TV Pública Digital

Apresentação feita durante as audiências públicas sobre o Operador de TV Pública Digital (EBC - Empresa Brasil de Comunicação).

Apresentação disponibilizada na lista TV Digital Interativa. Todos os direitos reservados a EBC - Empresa Brasil de Comunicação e ao professor Gunnar Bedicks - Brasília, Junho 2009

25 de jan. de 2010

TV Digital na Campus Party 2010


A equipe da UFPB participará todos os dias do Campus Party 2010 que será realizado em São Paulo entre os dias 25 e 31 de janeiro. Estaremos presentes no stand do MCT (Ministério da Ciência e Tecnologia) demonstrando aplicações Ginga e explicando melhor o funcionamento dos projetos hospedados em http://dev.openginga.org. Além disso, também serão ministradas palestras, oficinas e encontro com a comunidade. Até o momento temos a confirmação dos seguintes eventos:

Todos os dias - 26,27,28,29,30,31 de janeiro
--------
Demo: Demonstrações de Aplicações Ginga
Ministrante: Equipe da UFPB, PUC-Rio e DataPrev
Local: Stand MCT na área Expo


Terça 26/01
------

18:00 - 19:00
Tv Digital - Construindo Interatividade com Ginga
Ministrante: Edson Castilhos
Local: Palco Software Livre

22:00 - 23:00
TV Digital e Jornalismo
Ministrante: Eduardo Pellanda e André Pase
Local: Palco Software Livre

Quarta 27/01
--------

10:00 - 12:00
Mini-curso: Acessibilidade em TV Digital
Ministrante: a definir
Local: Stand MCT na área Expo

12:00 - 14:00
Tutorial: Ginga Live CD
Ministrante: Equipe PUC-Rio
Local: Stand MCT na área Expo

14:00 - 16:00
Oficina: Hands-On Ginga, criando aplicações NCL
Ministrante: Equipe PUC-Rio
Local: Stand MCT na área Expo

17:00 - 18:00
Oficina: Hands-On Ginga, criando aplicações NCLua
Ministrante: Equipe PUC-Rio
Local: Stand MCT na área Expo


Quinta - 28/01
--------

10:00 - 13:00
Oficina: Hands-On Ginga, criando aplicações Ginga-J
Ministrante: Raoni Kulesza e Jefferson Lima
Local: Stand MCT na área Expo

16:00 - 20:00
Oficina: Hands-On Ginga, Programação de Middleware para TVD
Ministrante: Raoni Kulesza, Jefferson Lima, Álan Lívio e Vítor Baptista
Local: Stand MCT na área Expo

Sexta - 29/01
--------

16:00 - 20:00
Encontro comunidade Ginga - Próximos passos, projetos e colaboração
Ministrante: Equipe da PUC-Rio e UFPB
Local: área de Barcamp

28 de dez. de 2009

Nova versão do Virtual Set-top Box Ginga-NCL

Post publicado originalmente na SubComunidade Ginga-NCL

A Comunidade Ginga disponibilizou hoje uma nova versão do Virtual Set-top Box Ginga-NCL, máquina virtual VMWare que possui a implementação de referência do Ginga-NCL (C++) instalada e pronta para uso. Usuários de versões anteriores são recomendados a fazer a atualização.

Ginga-NCL Virtual Set-top Box v.0.11.2 foi atualizado com o novo código do Ginga-NCL (C++) v.0.11.2. O Set-top Box Virtual é uma máquina virtual VMWare com sistema Linux instalado e pré-configurado com todos os requisitos do Ginga-NCL (C++). Pode ser obtido por meio da SubComunidade Ginga-NCL, no box "Direto ao Ginga" (http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/gingancl/). Lá você encontra também um "HOW-TO" com dicas para instalar e operar o Set-top Box Virtual.

Para maiores informações sobre as modificações no código do Ginga-NCL, consulte os arquivos ChangeLog presentes em cada pacote de código-fonte presente no SVN (http://svn.softwarepublico.gov.br/trac/ginga/browser). A atualização corresponde à revisão 23 do SVN, que além das novidades publicadas aqui, conta com um aprimoramentos no suporte à decodificação de dados em arquivos MPEG2 TS abertos localmente.

Comunidade Ginga
http://www.softwarepublico.gov.br/dotlrn/register?community_id=1101545&referer=/dotlrn/clubs/ginga/

SubComunidade Ginga-NCL
http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/register?community_id=1160871&referer=/dotlrn/clubs/ginga/gingancl

12 de dez. de 2009

Lançada a versão 0.11.1 do Ginga-NCL (C++)

Foi anunciado hoje, dia 12, a nova versão do Ginga-NCL (C++). As grandes novidades ficaram por conta do suporte a múltiplos dispositivos e a utilização de luasocket na classe TCP.

Comunidade Ginga,

Encontra-se em nosso SVN uma nova release da implementação de referência do Ginga-NCL. Em breve, as ferramentas Ginga-NCL Virtual STB e Ginga Live CD serão atualizadas para abrigar esta nova versão.

A revisão 22 do repositório corresponde à versão 0.11.1 do Ginga-NCL (C++), que possui as seguintes novas funcionalidades e evoluções:

  • Suporte a múltiplos dispositivos de exibição
  • Suporte a objetos NCL embutidos
  • Otimização no uso de recursos, incluindo a liberação de componentes
  • Manipulação de Transport Stream
  • o Suporte a Sintonizadores USB ISDB-T
  • o Avanços na manipulação do Carrossel de Objetos e Eventos de Fluxo
  • o Suporte a cadeia Normal Play Time (NPT)
  • Classe TCP da API Lua agora utiliza luasocket ao invés da libasync
  • Criado novo player TS
  • "gingalssm" agora gerencia Formatadores e cadeias temporais NPT
  • Nova arquitetura de formatadores aninhados para o suporte a objetos NCL embutidos.

Os desenvolvedores de middleware podem fazer o checkout da nova versão imediatamente, seguindo as instruções na Wiki de Desenvolvimento. E podem consultar nossa lista de pontos em aberto (TODO List) para contribuições.


Mais informações no Portal do Software Público

11 de dez. de 2009

Desenhando Círculos em NCL/Lua

Implementei uma função que permite desenhar circulos com o Canvas para NCL/Lua

Função

function desenharCirculo ( X0 , Y0 , raio , mode )

function converterGrau2Rad ( x )
return ( x / 180 ) * math.pi
end

local tblPt = {}

if mode ~= 'fill' then
mode = 'frame'
end

for i=0, 360 do
local x = (raio * math.cos(converterGrau2Rad(i)))
local y = (raio * math.sin(converterGrau2Rad(i)))

if mode == 'frame' then
tblPt[i] = {}
table.insert(tblPt[i],X0 - x)
table.insert(tblPt[i],Y0 - y)
end

if mode == 'fill' then
canvas:drawLine (X0, Y0, X0 - x, Y0 - y)
end

end

if mode == 'frame' then

for i=0, table.maxn(tblPt) do

if i == table.maxn(tblPt) then
canvas:drawLine (tblPt[i][1], tblPt[i][2], tblPt[0][1], tblPt[0][2])
else
canvas:drawLine (tblPt[i][1], tblPt[i][2], tblPt[i+1][1], tblPt[i+1][2])
end

end

end


end



A chamada para a função é a seguinte:

canvas:attrColor(96, 181, 255, 255)
desenharCirculo ( 250 , 250 , 20 , 'frame' )
canvas:flush()

Parâmetros
A função trabalha com quatro parâmetros, são eles:
X0: A coordenada X do ponto central.
Y0: A coodenada Y do ponto central.
Raio: O tamanho do raio do círculo.
Mode: É o tipo de desenho que será feito. Se escolhido frame, será desenhado apenas a moldura. Se for escolhido fill o desenho será preenchido. O modo frame é utilizado como default.

Problemas
Nem tudo na vida é perfeito e esta função não seria diferente. Quando desenhamos um círculo com mode fill e raio muito grande, vemos algumas falhas. Se alguém conseguir solucionar o problema, escreva nos comentários que a função será atualizada e dado os devidos créditos. :)

9 de dez. de 2009

TV Digital: Interatividade além do NCL

Texto publicado originalmente em: O Futuro é Digital

Para quem pretende iniciar os estudos para desenvolver aplicativos interativos para TV Digital, eu digo: Essa é a hora. Apesar do mercado novo, algumas empresas já estão contratando. Uma delas, a Peta5, estava até o final de novembro com duas vagas para estagiar com desenvolvimento de aplicações interativas.

Mas o que eu preciso? Apenas o NCL? Resposta: Não!

O NCL atende perfeitamente bem para o que foi proposto: sincronismo de mídias. Muitas aplicações básicas poderão e deverão ser desenvolvidas apenas em NCL. No entanto, aplicações que exijam uma interface que varie de acordo com as opções selecionadas pelo telespectador, a melhor escolha será Lua e Java.

O Ginga Java ainda não possui o mesmo nível de maturidade que o Ginga NCL/Lua tem com relação à TV Digital. É possível desenvolver interfaces dinâmicas e ricas trabalhando apenas com Lua.


Seria possível criar imagens para serem utilizadas no NCL, pois a quantidade de Regiões existentes no Brasil é fixa. Mas e quando não sabemos ao certo os dados que deverão ser apresentados?


Participo atualmente de um projeto de Educação à Distância para TV Digital. Inicialmente toda a aplicação foi escrita em NCL que chamava algumas mídias Lua que efetivamente executavam os módulos da aplicação. Depois de sete meses e aproximadamente cinco ciclos de desenvolvimento praticamente jogados no lixo, partimos para o desenvolvimento exclusivamente em Lua.

Criamos um simples NCL que seu único trabalho é iniciar uma mídia Lua. A partir deste ponto, desde a simples tarefa da apresentação do menu principal até o controle de entrada de dados a partir do controle remoto passou a ser feito em Lua. Após seis meses, nos impressionamos com os ganhos obtidos. Nossa aplicação que conta com dez módulos, já possui seis desenvolvidos.


Na pesquisa, não sabemos quantas cidades serão retornadas.


Mas é preciso atenção, nem todas as bibliotecas disponíveis para linguagem Lua fazem parte do Ginga NCL/Lua.

A linguagem Lua para TV Digital conta com quatro módulos obrigatórios:
Canvas – Permite desenhar objetos em uma mídia Lua;
Event – Permite que mídias Lua se comuniquem com mídias NCL e outros objetos externos;
Persistent – Permite exportar variáveis de ambiente entre aplicações interativas;
Settings – Permite acesso às variáveis definidas no documento NCL.

Um exemplo de biblioteca Lua que não é obrigatória segundo a norma, é o Lua Socket que da suporte para conexões TCP. Para isso, é necessário utilizar o módulo Event.

Para quem pretende trabalhar com desenvolvimento para TV Digital, está é a dica que deixo: NCL é ótimo quando a idéia é apresentar informações que não varie tanto. Mas quando precisamos apresentar dados que pode variar de acordo com as opções escolhidas pelo telespectador, Lua pode ser uma grata surpresa.

Mais informações podem ser obtidas na comunidade Ginga do portal do Software Público
.