Desarrollo de software orientado a la Televisión Digital

Transcripción

Desarrollo de software orientado a la Televisión Digital
Desarrollo de Software
Embebido para TVD
Aruro Zambrano [email protected]
1
Parte 1: Arquitectura
de Ginga.ar
Parte 2: Ports para
dispositivos
embebidos
2
Agenda Parte 1

Context

Overview of STB architecture and Ginga

Issues

Alternative architecture

Consequences

Conclusions
3
Context: Digital TV
Data / Applications
Audio & Video
Mux
Transport Stream
4
Context



Argentinian government requested porting
Ginga-NCL to a proprietary dedicated
hardware platform:
The solution must ease
future ports to other
platforms
Code must be released
under an Open Source
License
Set Top Box
5
Overview: Set top box
6
Basic Firmware
7
Overview: Ginga
8
Overview: Ginga

Middleware Specification


ABNT 15606
Implementation

Proprietary Software

GPL

The reference GPL licensed implementation
of Ginga NCL developed by Telemidia Lab,
PUC-Rio
9
Ginga-NCL PUC
10
Who does what?
11
Issues (Ginga PUC)


One process does everything

Integrability

Licensing

Stability
Processing of the Transport Stream

Incomplete application signaling

No support for over the air update

Incomplete DSM-CC implementation
12
Ginga-NCL PUC Modules
TS processing
Presentation
engine
13
Alternative Architecture
14
Alternative Architecture
15
Multi Process Architecture


Zapper

Zapper Services (Proprietary)

Ginga Connector (LGPL)

Hardware Services (Proprietary)
Ginga Presentation

Ginga-NCL Presentation Engine (GPL)

Ginga Connector (LGPL)
16
Multi Process: Consequences

Benefits

Licensing:



Ginga evolution
Porting

Improved integrability

Stability

Easier testing
Drawbacks

Resource Consumption

Process Status Synchronization
17
Conclusions



Ahora vamos por
la 4ta o 5ta
A new multiprocess architecture for GingaNCL
was developed and ported to dedicated
hardware. (Working on the 2nd platform now)
The new architecture allows:

Easy integration with propietary firmware

Improved stability

Improved GingaNCL evolvability
More information: comunidad.ginga.org.ar
18
Thanks for your attention!
Questions?
19
Ginga Connector

Tuner Control

CA Control

MPEG-2 Section Filter

TS Processing

Basic Sections (PAT,NIT,SDT,TOT)

Data/Object Carousels (DSM-CC)

Application Signaling (AIT)

Downloading Function (SDTT)
20
Application Signaling (AIT)


Implemented

Simultaneous Running Applications

Priority

External Applications

Object Carousel Transport
Future

TCP/IP Transport
21
Download Function


Implemented

Support for On The Air Updates

Engineering Service

Compulsory Downloads

Integrity Check
Future

Scheduling of downloads
22
DSM-CC

Implemented

Version Checking

Updates

Memory Usage Optimization

Support for Large Carousel




Maximum File Size: 255MB
Maximum Modules:
Compression of modules
Future

Support for two-layer carousels
23
Parte 2
La experiencia de proyecto portando Ginga.ar
24
Port Ginga a hardware específico
Proyecto: corregir/completar la
implementacion de Ginga NCL (PUCRio), y portarla a un set top box +
intregrarlo con un Zapper.
Plataforma: Chipset ST + ST
Linux:
48 MB RAM
64 Compact Flash
2 procesadores dedicados + 1
gral.
25
Condimentos
Hardware específico: no es un típico desarrollo en PC.
Ginga: un socio de desconocido que viene de la academia.
Zapper: otro socio desconocido, que viene de la industria.
Alcance incierto.
Tiempo hasta primer release: corto pero desconocido
(política!).
Licencias incompatibles (GPL vs propietaria).
26
Hardware: Maqueta de TVD
Recepción
3 meses para
conseguirlo!
Transmisión
1.5 meses
para conseguirlo
27
Ginga-PUC
Assessment
Bug fixing
Memory leaks
Refactoring
28
Zapper
Inestabilidad
Bugs y memory leaks
Código de terceros que
no podíamos
modificar (podíamos
pedir cambios).
29
Problemas
Escasez de hardware para pruebas.
Grandes volúmenes de prueba (estamos
probando un middleware!).
Estabilidad.
Licenciamiento.
30
Arquitectura Ginga.ar
Estabilidad + Licencias + Mejor Modularización + Portabilidad
31
Proceso
Mezcla de Scrum y Kanban
Scrum:
Iteraciones de 1 a 2 semanas.
Planificación por Sprint
Kanban
Aceptamos stories todo el tiempo (relegamos
otras que habian entrado en el sprint).
Tratamos (informalmente) de mantener el límite
de Work in Progress.
32
Desafíos de testing
Testear el middleware que permite usar
aplicaciones interactivas.
Esta embebido, no en una PC.
Consume grandes volúmenes de información
(Transport Streams).
Muchísimos (infinitos) casos de prueba.
33
Testing
Aplicaciones NCL
autogeneradas.
Aplicaciones “de
testing” manual.
Simulación de
hardware.
Compilación
multiplataforma (x86
y embebido).
34
Testing - Manual
De output visual
Tests de stress: actualizaciones y
aplicaciones
35
Testing automático
Testing nocturno.
Mediciones: memoria, consumo de CPU,
core dumps, logs, etc.
Transport stream generados
automáticamente con actualizaciones del
firmware.
36
Plataforma de testing automático
37
Testing automático
Scripts de interacción (contro remoto)
Cambio de canal → Zapper
Ejecución de aplicaciones
•
•
Desde el aire
Desde pendrive
Parsing de TS
38
Ingeniería de Software y herramientas
Pair programming para código crítico.
Automatización de builds (Cmake)
Integración continua (Build Bot)
Testing de unidad e integración (parsing de
TS) automatizado (GoogleTest)
Casi Scrum (Redmine + SA Plugins)
39
Resumen
Embedding de Ginga en la plataforma de destino.
Problemas de estabilidad y de escases de recursos.
Prácticas provenientes de las metodologías ágiles.
Automatizamos todo lo que pudimos (y como
pudimos)
40
Conclusiones
Para desarrollar software embedido hay que
considerar:

Plataforma de hardware y software
subyacente

Familiaridad el proceso de embedding

Si van a usar linux:


Compatibilidad de licencias del software
que usen.
Considerar el testing desde el ppio. Porque
es software que no deberia fallar (un
aparato de TV NO deberia colgarse)
41

Documentos relacionados