1) O documento introduz o conceito de TV digital no Brasil, o padrão brasileiro SBTVD e o middleware Ginga.
2) É apresentada uma demonstração do middleware Ginga, incluindo seus subsistemas Ginga-NCL e Ginga-J.
3) O status atual da TV digital no Brasil é discutido, com exemplos de aplicações em canais como Globo, Record e SBT.
1. Ginga e a TV Digital Interativa no
Brasil
Bruno Ghisi
Engenheiro de Software
weblogs.java.net/brunogh
Alexandre Lemos
Engenheiro de Software
2. Objetivo
Introduzir o conceito do cenário brasileiro
de TV Digital, middleware Ginga,
aplicações interativas e ferramentas open
source relacionadas.
3. Agenda
● Contextualização
● Demo
● Padrão Brasileiro TVD
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ferramentas
● Comunidades
● Status atual
4. Agenda
● Contextualização
● Demo
● Padrão Brasileiro TVD
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ferramentas
● Comunidades
● Status atual
5. Histórico
● Novembro 2003
○ Ato federal para criação de um sistema de TV Digital
○ SBTVD (Sistema Brasileiro de TV Digital Terrestre)
● Junho 2006
○ Definição do padrão ISDB-Tb
6. Cadeia de valor
● Radiodifusor
● Fabricante de produto (OEM)
● Academia
● Fornecedor de middleware
● Fornecedor de JVM
● Fabricante de chipset
● Gerador de conteúdo
● Fornecedor de ferramentas
● ...
7. Fórum SBTVD e ABNT
● Fórum SBTVD
○ Define as especificações e propões soluções
de acordo com a realidade brasileira
○ Dissemina o padrão
● ABNT
○ Normatiza as especificações
○ Gerencia as normas
8. Agenda
● Contextualização
● Demo
● Padrão Brasileiro TVD
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ferramentas
● Comunidades
● Status atual
9. Agenda
● Contextualização
● Demo
● Padrão Brasileiro TVD
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ferramentas
● Comunidades
● Status atual
11. Padrão Brasileiro TVD
● Países que escolheram:
○ Brasil
○ Peru
○ Argentina
○ Chile
○ Venezuela
○ Equador
○ Costa Rica
○ Paraguai
○ Bolívia
○ Nicarágua
12. Receptores full-seg e one-seg
● Full-seg
○ 1920x1080i, 1280x720p, 720x480p
○ ex: set top box e televisão
● One-seg
○ 320x240
○ ex: celular
● Ginga-NCL é mandatório para todos
receptores
● Ginga-J é mandatório para receptores full-seg
● Canal de retorno: Full-seg, opcional; one-seg,
obrigatório
13. Agenda
● Contextualização
● Demo
● Padrão Brasileiro TVD
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ferramentas
● Comunidades
● Status atual
14. Middleware de TVD
● O que é um middleware?
○ Camada de software intermediário que oculta
dependências de plataforma e permite que
aplicações sejam desenvolvidas de maneira
independente
● O que é um middleware de TV Digital?
○ Middleware que irá rodar no conversor (set
top box) ou embarcado na TV
16. O que é o Ginga?
● Ginga é o nome do Middleware do
Sistema Brasileiro de TV Digital
(SBTVD)
17. Norma Middleware Ginga
● ABNT NBR 15606 - Middleware Ginga
○ Middleware brasileiro de TV Digital
○ É uma especificação X implementação
● ABNT NBR 15606 é dividida em 6 partes
NBR 15601 Transmissão
NBR 15602 Codificação
NBR 15603 Multiplexação
NBR 15604 Receptores
NBR 15605 Segurança
NBR 15606 Middleware
NBR 15607 Canal de Interatividade
NBR 15608 Guia de operação
23. NCL
● PUC-Rio
● NCL (Nested Context Language) é a parte declarativa
do Ginga
● Linguagem formato XML
● Código NCL define os objetos de mídia e a estrutura
da apresentação
● Formatador NCL controla
○ fluxo da apresentação
○ ciclo de vida dos players de mídia
25. Players
● Players de mídia específicos apresentam o conteúdo
para o usuário
○ Vídeo, Imagens
○ Player Lua - interpretador para scripts Lua
○ Player de Xlets Java
○ Player XHTML - decodifica conteúdo XHTML,
incluindo CSS (stylesheets) e ECMAScript
26. Lua
● PUC-Rio 1993
● Linguagem de script poderosa,
leve e extensível
● Implementado como uma
biblioteca, escrita em C
● Linguagem procedural, com
sintaxe semelhante ao C
○ Dinamicamente tipado
○ Sem ponteiros
○ Coletor de lixo
● http://www.lua.org
28. NCLua
● Extensões ao Lua
○ módulo canvas
■ desenhar diretamente em uma área da TV
○ módulo event
■ comunicação com players no NCL
■ input
■ canal de retorno
■ informações do programa de TV
○ módulo settings
■ configurações do NCL e receptor
○ módulo persistent
■ permite armazenar pequena quantidade de dados no
receptor
29. Agenda
● Contextualização
● Demo
● Padrão Brasileiro TVD
● Middleware Ginga
● Subsistema Ginga-NCL
● Subsistema Ginga-J
● Ferramentas
● Comunidades
● Status atual
31. Histórico
● Ginga-J foi proposto pela UFPB (Universidade da
Paraíba) em Dez/07
● Ocorreram algumas questões de propriedade intelectual
em função do MHP (APIs HAVI & DAVIC)
● Fórum SBTVD e a Sun Microsystems propuseram uma
nova especificação
■ Java DTV
32. Stack Ginga-J
● Ginga-J define o ambiente de execução para aplicação
procedurais: Java Xlets
33.
34. CDC / FP / PBP
● Connected Device Configuration (CDC)
○ A configuração mais abrangente do Java ME
○ CDC é compatível com sintaxe Java 1.4
○ Com a a adição dos profiles, pode se chegar na
API Java SE
● Foundation Profile (FP)
■ APIs io, security, network, utility
● Personal Basis Profile (PBP)
○ AWT
35. AMS
● Application Management System
● Sandbox
● Xlet
36. Xlet
import javax.microedition.xlet.XletStateChangeException;
import javax.microedition.xlet.XletContext;
import javax.microedition.xlet.Xlet;
public class BasicXlet implements Xlet {
public BasicXlet () {}
public void initXlet (XletContext context) throws XletStateChangeException {}
public void startXlet () throws XletStateChangeException {}
public void pauseXlet () {}
public void destroyXlet (boolean unconditional) throws
XletStateChangeException {}
}
37.
38. Java TV
● APIs definidas no Java TV fornecem um
framework
● Outros middlewares TVD utilizam como stack
básica Java TV
● Acesso aos dados do SI (Service Information)
● Controle dos media players específicos da TV
via JMF
39.
40. Java DTV
● Informações de serviço, tuner, transporte (MPEG streams)
● Propriedades do usuário
● Acesso aos arquivo da transmissão (broadcast)
● Persistência (limitada)
● Canal de retorno
○ Acesso aos dispositivos de rede
● Comunicação Inter-Xlet
● LWUIT
41. LWUIT
● LWUIT - LightWeight User Interface Toolkit
○ Componentes gráficos de alto nível
○ Tratador de eventos hierárquico através dos containers e
componentes
○ Abstração dos componentes nativos (Graphics, Font, etc)
● Suporte a style, theme e look and feel
● Resource bundles permitem o empacotamento dos recursos
de maneira portável
○ Temas, fontes, imagens, animações e mensagens
46. Extensões brasileiras (SBTVD)
● Complementam e estendem a Java DTV
●
● API de informações de serviço dependente de
protocolo
○ Acessa informações dos serviços específicas
do padrão brasileiro (baixo nível)
● API da ponte NCL