Introdução ao middleware de TV Digital
brasileiro
Bruno Ghisi
Alexandre Lemos
Objetivo
Introduzir o conceito do cenário brasileiro
de TV Digital, middleware Ginga,
aplicações interativas e ferramentas open
source relacionadas.
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
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
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
...
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
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Padrão Brasileiro TVD
ISDB-Tb - padrão japonês
Vídeo H.264
Áudio MPEG-4
Ginga
Mobilidade
One-seg (1Seg)
Padrão Brasileiro TVD
Países que escolheram:
Brasil
Peru
Argentina
Chile
Venezuela
Equador
Costa Rica
Paraguai
Bolívia
Nicarágua
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
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
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
Carrossel Objetos
O que é o Ginga?
Ginga é o nome do Middleware
Aberto do Sistema Brasileiro de TV
Digital (SBTVD)
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
Arquitetura Middleware TVD
Arquitetura Middleware Ginga
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Middleware Ginga - Ginga-NCL
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
NCL
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
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
Lua
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
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Middleware Ginga - Ginga-J
Histórico
Ginga-J foi proposto pela UFPB (Universidade da
Paraíba) em Dez/07 e ocorreram algumas
questões de propriedade intelectual em função do
MHP (APIs HAVI & DAVIC)
Forum SBTVD e a Sun Microsystems
propuseram uma nova especificação
Java DTV
Stack Ginga-J
Ginga-J define o ambiente de execução para aplicação
procedurais: Java Xlets
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
Java TV
Acesso aos dados do SI (Service Information)
Controle dos media players específicos da TV
via JMF
APIs definidas no Java TV fornecem um
framework
Outros middlewares TVD utilizam como stack
básica Java TV
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
Segurança
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
Extensões brasileiras (SBTVD)
Complementam e extendem 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
Middleware Ginga - Ponte
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Ferramentas
Eclipse
Eclipse Public License
www.eclipse.org
LuaEclipse
Licença MIT
http://luaeclipse.luaforge.net/
http://github.com/KINFOO/LuaEclipse
NCL Eclipse
Duplo Licenciamento (semelhante ao MySql)
http://laws.deinf.ufma.br/~ncleclipse/faq.html
http://laws.deinf.ufma.br/~ncleclipse/index.html
STB Virtual - implementação referência Ginga-NCL
Licença indeterminada
http://www.gingancl.org.br/ferramentas.html
Ref http://www.bravaitv.com.br/fisl
Ferramentas
Emulador Ginga-J - Open Ginga - implementação
referência Ginga-J
GPLv2
http://ginga.lavid.ufpb.br/projects/gingaj-emulator/wiki
Ant
Apache Software License
http://ant.apache.org
Lunity
Creative Commons
http://phrogz.net/lua/lunity.lua
LuaCov
Licença MIT
http://luacov.luaforge.net
Ref http://www.bravaitv.com.br/fisl
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Comunidades e Listas
http://www.forumsbtvd.org.br
http://www.softwarepublico.gov.br
http://clube.ncl.org.br
https://javatv-developers.dev.java.net
Listas
Lista TV Digital SouJava em tvdigital-
subscribe@soujava.dev.java.net
devdtv@googlegroups.com
tvinterativa@googlegroups.com
Agenda
Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Receptores
Copa - Band
Copa - Globo
Tititi - Globo
Passione - Globo
Caminho das Índias - Globo
A Fazenda - Record
Portal SBT
Obrigado
Bruno Ghisi
weblogs.java.net/blog/brunogh
bcg@certi.org.br
Alexandre Lemos
arl@certi.org.br
Estamos contratando: TVD, Web, Mobile, Java,
C/C++, Unix, embedded, XP
http://www.certi.org.br/ccd

Solisc 2010 ginga