Home Page do Portal
Brasil, um país de todos

Como obter e compilar o Ginga-NCL (versão C++)

Ginga-NCL versão C++ é uma implementação de alto desempenho, pronta para embarque em set-top boxes comerciais caracterizados por baixas capacidades de processamento e armazenamento. Exatamente por isso Ginga-NCL possui pré-requisitos avançados normalmente não encontrados em sistemas desktop. Assim, recomendamos o procedimento descrito neste Wiki apenas para usuários Linux avançados, com experiência em compilação de kernel e administração de serviços.


Pré-requisito para obtenção do código:

Como obter os pacotes Ginga-NCL

O código-fonte Ginga-NCL está disponível por meio do repositório Ginga no SVN do Portal do Software Público Brasileiro. Os comandos a seguir disparam a obtenção do código:

svn co --username SeuEmail@Provedor.com http://svn.softwarepublico.gov.br/svn/ginga/telemidia-util-cpp/trunk telemidia-util-cpp
svn co --username SeuEmail@Provedor.com http://svn.softwarepublico.gov.br/svn/ginga/telemidia-links-cpp/trunk telemidia-links-cpp
svn co --username SeuEmail@Provedor.com http://svn.softwarepublico.gov.br/svn/ginga/gingacc-cpp/trunk gingacc-cpp
svn co --username SeuEmail@Provedor.com http://svn.softwarepublico.gov.br/svn/ginga/ncl30-cpp/trunk ncl30-cpp
svn co --username SeuEmail@Provedor.com http://svn.softwarepublico.gov.br/svn/ginga/gingancl-cpp/trunk gingancl-cpp

Substitua SeuEmail@Porvedor.com pelo e-mail usado por você para se registrar na Comunidade Ginga.


Principais Pré-requisitos para compilação e instalação

Cada pacote possui individualmente uma série de dependências a serem satisfeitas antes de sua compilação e instalação. Os pré-requisitos listados nesta seção são considerados críticos dada a dificuldade de instalação/configuração e por serem dependências em comum para todos os pacotes.

  • Linux Kernel >= 2.6.13 com framebuffer habilitado e operante (FrameBuffer How-To)
  • DirectFB = 1.0.0 funcionando corretamente (DirectFB)
  • directfb-examples = 1.0.0 funcionando corretamente (DirectFB)

    Não prossiga sem que os exemplos df_dok e df_andi estejam funcionando corretamente.

  • Crie um diretório denominado /misc, onde o binário do Ginga-NCL será instalado. Algumas distribuições Linux já incluem o /misc em sua árvore de diretórios e podem usá-lo como ponto de montagem automática do serviço autofs. Verifique se o arquivo /etc/auto.master possui alguma entrada referente ao /misc. Caso afirmativo, comente-a e reinicie o serviço autofs antes de prosseguir.

Como compilar os pacotes Ginga-NCL

Antes de iniciar a compilação, certifique-se que as variáveis de ambiente necessárias estão presentes e inicializadas corretamente. Os valores iniciais dessas variáveis podem ser atribuídos por meio dos seguintes comandos:

$ export LD_LIBRARY_PATH=/usr/local/lib/ginga:/usr/local/lib:/usr/lib:/lib
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

A variável de ambiente PKG_CONFIG_PATH deve estar configurada antes mesmo da compilação do DirectFB, como pré-requisito.

Todos os pacotes contêm um arquivo README que descreve as dependências e comandos para a compilação. Tais informações também estão neste How-To, logo abaixo, para cada pacote. Siga a ordem de pacotes a seguir para compilação e instalação:


telemidia-util-cpp

Pré-requisitos:

  • libtool >= 1.3.4
  • autoconf >= 2.13
  • automake >= 1.4
  • libpthread

Compilando:

$ ./autogen.sh
$ make
$ make install

telemidia-links-cpp

Pré-requisitos:

  • libtool >= 1.3.4
  • autoconf >= 2.13
  • automake >= 1.4
  • directfb = 1.0 (http://www.directfb.org)
  • libtiff
  • libjpeg
  • libpng
  • libz
  • libpthread
  • libssl
  • libcrypto
  • libgssapi_krb5
  • libkrb5
  • libcom_err
  • libk5crypto
  • libresolv
  • libgpm

Compilando:

$ ./autogen.sh --enable-graphics --with-directfb --enable-javascript --without-x --without-sdl
$ make
$ make install

gingacc-cpp

gingacc-io

Pré-requisitos:

Compilando:

$ ./autogen.sh
$ make
$ make install

gingacc-player

Pré-requisitos:

Compilando:

$ ./autogen.sh
$ make
$ make install

gingacc-tuner

Pré-requisitos:

  • libtool >= 1.3.4
  • autoconf >= 2.13
  • automake >= 1.4

Compilando:

$ ./autogen.sh
$ make
$ make install

gingacc-tsparser

Pré-requisitos:

Compilando:

$ ./autogen.sh
$ make
$ make install

gingacc-dataprocessing

Pré-requisitos:


ncl30-cpp

ncl30

Pré-requisitos:

Compilando:

$ ./autogen.sh
$ make
$ make install

ncl30-converter

Pré-requisitos:

Compilando:

$ ./autogen.sh
$ make
$ make install

gingancl-cpp

Pré-requisitos:

Compilando:

$ ./autogen.sh --enable-tuner --enable-tsparser --enable-dataprocessing
$ make
$ make install

Utilizando o Ginga-NCL versão C++

Para apresentar um documento NCL a partir de um arquivo, use o seguinte comando:

$ /misc/gingaNcl --ncl /caminho/para/arquivo.ncl

Para apresentar um fluxo de transporte MPEG-2 transmitido por unicast UDP e cujo fluxo de dados é compatível com o SBTVD-T, edite o arquivo /misc/unicast.ini e coloque o IP do servidor do fluxo de transporte. Em seguida, use o comando abaixo:

$ /misc/gingaNcl

Mais informações

Há dicas importantes sobre como usar o Ginga-NCL versão C++ no How-To sobre o Set-top Box Virtual. Consulte a configuração do Linux instalado no Set-top Box Virtual para possíveis dúvidas.