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, um protótipo ideal 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
svn co --username SeuEmail@Provedor.com http://svn.softwarepublico.gov.br/svn/ginga/ginga-cpp/trunk ginga-cpp
svn co --username SeuEmail@Provedor.com http://svn.softwarepublico.gov.br/svn/ginga/gingalssm-cpp/trunk gingalssm-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.1 funcionando corretamente (DirectFB)
  • directfb-examples = 1.0.1 funcionando corretamente (DirectFB)
  • DirectFB-extra = 1.0.0 (DirectFB) - OBS: Dentro da pasta "interfaces" modificar os arquivos Makefile.am de forma que todos os LIBADD's das interfaces contenham a variável $(DFB_LIBS). Por exemplo: libidirectfbvideoprovider_xine_la_LIBADD = $(DFB_LIBS) $(XINE_LIBS)
  • FusionSound? = 1.0.0 (DirectFB) - OBS: Dentro da pasta "interfaces" modificar os arquivos Makefile.am de forma que todos os LIBADD's das interfaces contenham a variável $(DFB_LIBS). Por exemplo: libifusionsoundmusicprovider_mad_la_LIBADD = $(DFB_LIBS) $(MAD_LIBS)

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


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/lua/5.1/socket:/usr/local/lib/ginga:/usr/local/lib/ginga/adapters:/usr/local/lib/ginga/cm:/usr/local/lib/ginga/converters:/usr/local/lib/ginga/ic:/usr/local/lib/ginga/iocontents:/usr/local/lib/ginga/players:/usr/local/lib/ginga/dp:/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/lib:/lib64:/lib:/usr/kerberos/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:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

telemidia-links-cpp

Pré-requisitos:

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

Compilando:

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

gingacc-cpp

gingacc-cm

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingacc-system

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingacc-ic

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingacc-um

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingacc-player

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingacc-tuner

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingacc-tsparser

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingacc-dataprocessing

Pré-requisitos:

gingacc-contextmanager


gingacc-multidevice


ncl30-cpp

ncl30

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

ncl30-converter

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingancl-cpp

Pré-requisitos:

Compilando:

$ chmod 755 ./autogen.sh
$ ./autogen.sh
$ make
$ make install

gingalssm-cpp

Pré-requisitos:

Compilando:

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

ginga-cpp

Pré-requisitos:

Compilando:

$ ./autogen.sh
$ make
$ make install

Utilizando o Ginga-NCL versão C++

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

$ /usr/local/sbin/ginga --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 /usr/local/etc/ginga/files/tuner/tuner.ini e coloque o IP do servidor do fluxo de transporte. Em seguida, use o comando abaixo:

$ /usr/local/sbin/ginga

Attachments