Solisc 2010 ginga

Preview:

Citation preview

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çãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus atual

Agenda

ContextualizaçãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus atual

HistóricoNovembro 2003

Ato federal para criação de um sistema de TV Digital SBTVD (Sistema Brasileiro de TV Digital Terrestre)

Junho 2006Definição do padrão ISDB-Tb

Cadeia de valor

RadiodifusorFabricante de produto (OEM)AcademiaFornecedor de middlewareFornecedor de JVM Fabricante de chipsetGerador de conteúdoFornecedor de ferramentas ...

Fórum SBTVD e ABNT

Fórum SBTVDDefine as especificações e propões soluções de acordo com a realidade brasileiraDissemina o padrão

ABNTNormatiza as especificaçõesGerencia as normas

Agenda

ContextualizaçãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus atual

Agenda

ContextualizaçãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus atual

Padrão Brasileiro TVD

ISDB-Tb - padrão japonêsVídeo H.264Áudio MPEG-4Ginga

Mobilidade

One-seg (1Seg)

Padrão Brasileiro TVD

Países que escolheram:BrasilPeruArgentinaChileVenezuelaEquadorCosta RicaParaguaiBolíviaNicarágua

Receptores full-seg e one-seg

Full-seg 1920x1080i, 1280x720p, 720x480pex: set top box e televisão

One-seg 320x240ex: celular

Ginga-NCL é mandatório para todos receptores Ginga-J é mandatório para receptores full-segCanal de retorno: Full-seg, opcional; one-seg, obrigatório

Agenda

ContextualizaçãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus 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 GingaABNT 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

Arquitetura Middleware TVD

Arquitetura Middleware Ginga

Agenda

ContextualizaçãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus 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

PlayersPlayers de mídia específicos apresentam o conteúdo para o usuário

Vídeo, ImagensPlayer Lua - interpretador para scripts LuaPlayer de Xlets Java Player XHTML - decodifica conteúdo XHTML, incluindo CSS (stylesheets) e ECMAScript

LuaPUC-Rio 1993

Linguagem de script poderosa, leve e extensível

Implementado como uma biblioteca, escrita em CLinguagem procedural, com sintaxe semelhante ao C

Dinamicamente tipado Sem ponteirosColetor de lixo

http://www.lua.org

Lua

NCLua

Extensões ao Luamódulo canvas

desenhar diretamente em uma área da TVmódulo event

comunicação com players no NCLinputcanal de retornoinformaçõ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çãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus 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 / PBPConnected Device Configuration (CDC)

A configuração mais abrangente do Java MECDC é compatível com sintaxe Java 1.4Com 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 DTVInformaçõ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

LWUITLWUIT - LightWeight User Interface Toolkit

Componentes gráficos de alto nível Tratador de eventos hierárquico através dos containers e componentesAbstraçã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çãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus atual

Ferramentas Eclipse

Eclipse Public Licensewww.eclipse.org LuaEclipseLicença MIThttp://luaeclipse.luaforge.net/http://github.com/KINFOO/LuaEclipse NCL EclipseDuplo Licenciamento (semelhante ao MySql) http://laws.deinf.ufma.br/~ncleclipse/faq.htmlhttp://laws.deinf.ufma.br/~ncleclipse/index.html STB Virtual - implementação referência Ginga-NCLLicença indeterminadahttp://www.gingancl.org.br/ferramentas.html

Ref http://www.bravaitv.com.br/fisl

Ferramentas

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 LunityCreative Commonshttp://phrogz.net/lua/lunity.lua LuaCovLicença MIThttp://luacov.luaforge.net

Ref http://www.bravaitv.com.br/fisl

Agenda

ContextualizaçãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus atual

Comunidades e Listas

http://www.forumsbtvd.org.brhttp://www.softwarepublico.gov.br http://clube.ncl.org.brhttps://javatv-developers.dev.java.net

Listas

Lista TV Digital SouJava em tvdigital-subscribe@soujava.dev.java.net devdtv@googlegroups.comtvinterativa@googlegroups.com

Agenda

ContextualizaçãoDemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCLSubsistema Ginga-JFerramentasComunidadesStatus 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 Lemosarl@certi.org.br

Estamos contratando: TVD, Web, Mobile, Java, C/C++, Unix, embedded, XP

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