TDC 2010 Florianópolis - Ginga
-
Upload
bruno-ghisi -
Category
Technology
-
view
814 -
download
3
description
Transcript of TDC 2010 Florianópolis - Ginga
Ginga e a TV Digital Interativa no Brasil
Bruno GhisiEngenheiro de Software
weblogs.java.net/brunogh
Alexandre LemosEngenheiro 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ãoNBR 15602 CodificaçãoNBR 15603 MultiplexaçãoNBR 15604 ReceptoresNBR 15605 SegurançaNBR 15606 MiddlewareNBR 15607 Canal de InteratividadeNBR 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 EclipseDuplo Licenciamento (semelhante ao MySql) http://laws.deinf.ufma.br/~ncleclipse/index.html STB Virtual - implementação referência Ginga-NCLhttp://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-JGPLv2http://ginga.lavid.ufpb.br/projects/gingaj-emulator/wiki AntApache Software Licensehttp://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 [email protected]
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
Bruno Ghisi weblogs.java.net/blog/brunogh [email protected]
Alexandre [email protected]
Obrigado
Estamos contratando: TVD, Web, Mobile, Java, C/C++, Unix, embedded, XP
http://www.certi.org.br/ccd