StreamViewer
Um analizador gráfico de transport stream
code.google.com/p/streamviewer
Paulo Flabiano Smorigo
O que é?



Um analisador visual de streams;
Inicialmente compativel com streams no
formato de dados da TV digital brasileira:
Transport Stream (TS);
Inteiramente feito por software livre;
TV Digital



Mudança do sinal analógico para o sinal digital;
Mais qualidade, mais canais, mais informações
e interatividade;
Na mesma faixa de frequência do analógico, no
digital suporta:

Um canal HD, um standard e um móvel (1Seg) ou;

Quatro canais standard e um móvel;

Mais informações: EPG, Interatividade...
TV Digital

6Mhz = 19 Mbps;

Multiprogramação;

Mobilidade (Assistir TV no celular);

Televisão em 3D;

Resoluções:

HD: 1920x1080;

SD: 720×576;

LD: 320x240;
TV Digital

Inicio da transmissão digital:
Dezembro de 2007

Fim da transmissão analógica:
Dezembro de 2016
TV Digital
TV Digital no Mundo
Transport Stream (TS)

Formato de stream usado na televisão digital;

Video: H.264, Áudio: AAC;

Formado por pacotes de 188 bytes que podem
conter diversos formatos de dados:

Informações do canal como descrição, faixa etária,
inicio e fim, grade de programação etc;

Vídeos e áudios (não há limite);

Interatividade.
Transport Stream (TS)
Transport Stream (TS)
Transport Stream (TS)
Transport Stream (TS)
Transport Stream (TS)
Captura do TS


Foi capturado com o uso de software usando
um dongle USB;
Atualmente é comum achar arquivos TS na
internet contento filmes, jogos de futebol etc;
StreamViewer

Extrair as informações do arquivo de transport
stream (via DVBSnoop);

Analisa (Parser) dos dados;

Mostra gráficamente os resultados;
DVBSnoop
DVBSnoop
DVBSnoop
DVBSnoop
Estrutura do Projeto

Programado de C++;

Cross-compilação via MingW;

Interface gráfica em GTKmm e Glade 3;

Documentação do código via Doxygen;


Build seguindo padrão da maioria dos
softwares livres (./configure; make etc);
Multiplataforma;
Modelo de desenvolvimento
Producing Open Source
Software, Karl Fogel
Por que C++?

Toda vantagem do C com orientação a objetos;

Uma das linguagens mais usadas no mundo;

Compilador GCC (G++);

Segundo o site SourceForge.net:

Java(43,101)

C++(34,240)

PHP(28,272)

C(26,666)
GTKmm


Wrapper para C++ do GTK+;
GTK é uma das bibliotecas gráficas mais
usadas no mundo;

GTK+ vs Qt (Gnome vs KDE);

Pode ser usado juntamente com o Glade;

Suporte a temas (milhares disponíveis);
GTKmm




Multiplataforma (Linux, Windows, Mac);
Praticamente independente do sistema
operacional;
Linux: vem instalado, por padrão nas
distribuições testadas: Debian, Ubuntu, Fedora
etc;
Windows: mesma aplicação funciona, sem
modificações, no 95, XP, Vista, 7;
Glade




Glade é um construtor de interfaces gráficas;
Permite a criação a criação de interfaces
gráficas seguindo o conceito WYSIWYG;
Facilita a construção do software no modelo
MVC;
Separação quase que total da UI com a lógica
de programação;
Glade




Gera a interface no Glade e gera um XML
como saída;
No código é associado o nome do elemento
com o nome criado pelo Glade;
Separação quase que total do código e
interface;
Permite alteração da interface sem a
necessidade de compilar novamente;
Doxygen

Documentação do código (geração da API);

Compativel com Javadoc;
Build


Necessita dos pacotes de desenvolvimento:
buildutils, gtkmm-dev e glade;
Ir no diretório do projeto e digitar make;
Build
Build
Glade
Tela inicial
Abrindo arquivo
Resultado
Futuro

Procurar por desenvolvedores;
–
E-mail em fóruns como mplayer, vlc;
–
Divulgação na internet;

Não usar o DVBSnoop (criar o próprio parser);

Visualizar outros stream;
Download

StreamViewer Um analizador gráfico de transport stream code