63
Ginga e a TV Digital Interativa no Brasil Bruno Ghisi Engenheiro de Software weblogs.java.net/brunogh Alexandre Lemos Engenheiro de Software

TDC 2010 Florianópolis - Ginga

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 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

Page 2: TDC 2010 Florianópolis - Ginga

Objetivo

Introduzir o conceito do cenário brasileiro de TV Digital, middleware Ginga, aplicações interativas e ferramentas open source relacionadas.

Page 3: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 4: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 5: TDC 2010 Florianópolis - Ginga

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

Page 6: TDC 2010 Florianópolis - Ginga

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 ● ...

Page 7: TDC 2010 Florianópolis - Ginga

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

Page 8: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 9: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 10: TDC 2010 Florianópolis - Ginga

Padrão Brasileiro TVD

● ISDB-Tb - padrão japonês○ Vídeo H.264○ Áudio MPEG-4○ Ginga

● Mobilidade

○ One-seg (1Seg)

Page 11: TDC 2010 Florianópolis - Ginga

Padrão Brasileiro TVD

● Países que escolheram:○ Brasil○ Peru○ Argentina○ Chile○ Venezuela○ Equador○ Costa Rica○ Paraguai○ Bolívia○ Nicarágua

Page 12: TDC 2010 Florianópolis - Ginga

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

Page 13: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 14: TDC 2010 Florianópolis - Ginga

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

Page 15: TDC 2010 Florianópolis - Ginga

Carrossel Objetos

Page 16: TDC 2010 Florianópolis - Ginga

O que é o Ginga?

● Ginga é o nome do Middleware do Sistema Brasileiro de TV Digital (SBTVD)

Page 17: TDC 2010 Florianópolis - Ginga

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

Page 18: TDC 2010 Florianópolis - Ginga

Controle Remoto

Page 19: TDC 2010 Florianópolis - Ginga

Arquitetura Middleware TVD

Page 20: TDC 2010 Florianópolis - Ginga

Arquitetura Middleware Ginga

Page 21: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 22: TDC 2010 Florianópolis - Ginga

Middleware Ginga - Ginga-NCL

Page 23: TDC 2010 Florianópolis - Ginga

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

Page 24: TDC 2010 Florianópolis - Ginga

NCL

Page 25: TDC 2010 Florianópolis - Ginga

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

Page 26: TDC 2010 Florianópolis - Ginga

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

Page 27: TDC 2010 Florianópolis - Ginga

Lua

Page 28: TDC 2010 Florianópolis - Ginga

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

Page 29: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 30: TDC 2010 Florianópolis - Ginga

Middleware Ginga - Ginga-J

Page 31: TDC 2010 Florianópolis - Ginga

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

Page 32: TDC 2010 Florianópolis - Ginga

Stack Ginga-J ● Ginga-J define o ambiente de execução para aplicação

procedurais: Java Xlets

Page 33: TDC 2010 Florianópolis - Ginga
Page 34: TDC 2010 Florianópolis - Ginga

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

Page 35: TDC 2010 Florianópolis - Ginga

AMS

● Application Management System● Sandbox● Xlet

Page 36: TDC 2010 Florianópolis - Ginga

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

Page 37: TDC 2010 Florianópolis - Ginga
Page 38: TDC 2010 Florianópolis - Ginga

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

Page 39: TDC 2010 Florianópolis - Ginga
Page 40: TDC 2010 Florianópolis - Ginga

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

Page 41: TDC 2010 Florianópolis - Ginga

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

Page 42: TDC 2010 Florianópolis - Ginga

Componentes LWUIT

Page 43: TDC 2010 Florianópolis - Ginga

Componentes LWUIT

Page 44: TDC 2010 Florianópolis - Ginga

Componentes LWUIT

Page 45: TDC 2010 Florianópolis - Ginga
Page 46: TDC 2010 Florianópolis - Ginga

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

Page 47: TDC 2010 Florianópolis - Ginga

Middleware Ginga - Ponte

Page 48: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 49: TDC 2010 Florianópolis - Ginga

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

Page 50: TDC 2010 Florianópolis - Ginga

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

Page 51: TDC 2010 Florianópolis - Ginga

Demo OpenGinga

Page 52: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 53: TDC 2010 Florianópolis - Ginga

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]

[email protected][email protected]

Page 54: TDC 2010 Florianópolis - Ginga

Agenda

● Contextualização● Demo● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL● Subsistema Ginga-J● Ferramentas● Comunidades● Status atual

Page 55: TDC 2010 Florianópolis - Ginga

Receptores

Page 56: TDC 2010 Florianópolis - Ginga

Copa - Band

Page 57: TDC 2010 Florianópolis - Ginga

Copa - Globo

Page 58: TDC 2010 Florianópolis - Ginga

Tititi - Globo

Page 59: TDC 2010 Florianópolis - Ginga

Passione - Globo

Page 60: TDC 2010 Florianópolis - Ginga

Caminho das Índias - Globo

Page 61: TDC 2010 Florianópolis - Ginga

A Fazenda - Record

Page 62: TDC 2010 Florianópolis - Ginga

Portal SBT

Page 63: TDC 2010 Florianópolis - Ginga

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