Sei sulla pagina 1di 63

Ginga e a TV Digital Interativa no

Brasil
Bruno Ghisi
Engenheiro de Software
weblogs.java.net/brunogh

Alexandre Lemos
Engenheiro de Software
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 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
Controle Remoto
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
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
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
AMS

Application Management System


Sandbox
Xlet
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 {}

}
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
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
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
Componentes LWUIT
Componentes LWUIT
Componentes LWUIT
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


Middleware Ginga - Ponte
Agenda

Contextualização
Demo
Padrão Brasileiro TVD
Middleware Ginga
Subsistema Ginga-NCL
Subsistema Ginga-J
Ferramentas
Comunidades
Status atual
Ferramentas Ginga-NCL
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/index.html

STB Virtual - implementação referência Ginga-NCL


http://www.gingancl.org.br/ferramentas.html

Lunity (Creative Commons)


http://phrogz.net/lua/lunity.lua

LuaCov (Licença MIT)


http://luacov.luaforge.net

Ref http://www.bravaitv.com.br/fisl
Ferramentas Ginga-J

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

Criatividade!
LWUIT celular, Java TV SDK, phoneME Advanced, etc

Ref http://www.bravaitv.com.br/fisl
Demo OpenGinga
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 Estamos contratando: TVD,


arl@certi.org.br
Web, Mobile, Java, C/C++,
Unix, embedded, XP

http://www.certi.org.br/ccd

Potrebbero piacerti anche