Ir para o conteúdo

 Voltar a Linguagem Lua
Tela cheia

Exemplo de aplicação NCL com comandos de edição

27 de Abril de 2011, 11:47 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 178 vezes
Em razão de algumas pessoas terem me perguntado sobre o funcionamento da API de comandos de edição, estou publicando esta mensagem para esclarecer que, na versão atual disponível ao público para download, a API está funcionando. Disponibilizo um pequeno exemplo, que adiciona um nó e um link através da API, em: http://git.telemidia.puc-rio.br/~josegeraldo/nclapps/ncledit.zip

Autor: José Geraldo de Sousa Junior


1212 comentários

  • 080daf43b8a4a1e72c72c1003e93c39f?only path=false&size=50&d=404Claudio Franklin Martins Pinheiro(usuário não autenticado)
    31 de Julho de 2011, 3:43

     

    Olá.

    Hoje tentei fazer um teste com este exemplo usando o Ginga-NCL Virtual Set-top Box. A aplicação não funcionou como o esperado ao ocorrer um problema no carregamento da imagem fig1.png.

    Esta é a saida no terminal:

    ImagePlayer trying to find '/root///media/fig1.png'
    terminate called after throwing an instance of 'std::bad_alloc'
      what():  std::bad_alloc
    /misc/launcher.sh: line 14:  1402 Aborted                 /usr/local/sbin/ginga --ncl $1

    Em que ambiente voce testou o exemplo?

     

     

    • 080daf43b8a4a1e72c72c1003e93c39f?only path=false&size=50&d=404Claudio Franklin Martins Pinheiro(usuário não autenticado)
      5 de Agosto de 2011, 7:57

       

      Alguem pode dar uma luz?

    • 080daf43b8a4a1e72c72c1003e93c39f?only path=false&size=50&d=404Claudio Franklin Martins Pinheiro(usuário não autenticado)
      5 de Agosto de 2011, 8:25

       

      Acabei de testar o exemplo na nova versão da máquina virtual (ubuntu-gingancl-v0.12.3) e não funcionaou novamente. O erro foi diferente:

      DocumentParser::parse Error when parsing ''<?xml version="1.0" encoding="UTF-8"?><media id="img1" src="fig1.png" descriptor="dimg"/>'' (file not found)

      TimeStamp: 1.984

      ...

      DocumentParser::parse Error when parsing ''<?xml version="1.0" encoding="UTF-8"?><link id="link1" xconnector="onEndAttributionStart"> <bind role="onEndAttribution" component="lua1" interface="img1Start"/> <bind role="start" component="img1"/> </link>'' (file not found)

      TimeStamp: 1.998

       
       

       
       

       

  • 080daf43b8a4a1e72c72c1003e93c39f?only path=false&size=50&d=404Claudio Franklin Martins Pinheiro(usuário não autenticado)
    22 de Agosto de 2011, 10:56

     

    Onde voce conseguiu rodar este exemplo? Ainda não consegui.

    • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
      24 de Agosto de 2011, 1:14

       

      Oi Cláudio,esse seu erro é bem simples de consertar, mas para isso você terá que editar o código-fonte. Na verdade, uma única linha do código.No projeto ginga-ncl, arquivo src/FormatterMediator.cpp, linha 1364, você deve trocar:> args = split(privateDataPayload, ","); por:> args = split(privateDataPayload, ",", "'");Caso você esteja familiarizado com SSH e linha de comando é bem tranquilo baixar o código fonte dentro do Ginga Virtual Set-top box e compilar/instalar o código do ginga que está disponível aqui no Software Público (já que todas as dependências já estão instaladas). Não esquecendo de fazer a modificação acima, é claro.Faça um SSH para a máquina virtual e depois é só seguir as intruções: http://svn.softwarepublico.gov.br/trac/ginga/wiki/Building_Wiki_GingaNCLSe ainda não estiver familiarizado com linha de comando, é uma ótima oportunidade para aprender :D.Se não estiver disposto, infelizmente, você terá que esperar o lançamento da próxima versão que já virá com essa mudança. Qualquer dúvida, estamos a disposição. 

      • 080daf43b8a4a1e72c72c1003e93c39f?only path=false&size=50&d=404Claudio Franklin Martins Pinheiro(usuário não autenticado)
        13 de Setembro de 2011, 16:02

         

        Roberto, Muito obrigado pelas informações.

        Assim que eu voltar a ficar um pouco mais livre aqui no trampo vou aplicar sua sugestão.

         Assim que conseguir algo posto aqui novamente.

         abraço

        • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
          27 de Novembro de 2012, 19:00

           

          Eu fui tentar usar no Ginga VSTB 0.12.4 e deu o mesmo erro de segmentation fault, então, fui compilar os fontes como o Roberto indicou. Baixando com git, o código já vem com a correção.

          No entanto, ao tentar compilar o gingacc-cpp/gingacc-tsparser o compilador não achou a classe SystemCompat, aí adicionei a linha abaixo no início do arquivo gingacc-tsparser/src/si/TOT.cpp e resolveu:

          #include "system/compat/SystemCompat.h"
          using namespace ::br::pucrio::telemidia::ginga::core::system::compat;

          Estou terminando de compilar pra testar.

          • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
            28 de Novembro de 2012, 0:06

             

            Bem, não funcionou. Baixei os fontes via git dentro do Ginga Virtual STB 0.12.4 e já veio a versão 0.13.4, no entanto, o gingacc-player não compilou. Ocorre o seguinte erro:

            Player.cpp:65: error: expected constructor, destructor, or type conversion before ‘*’ token
            Player.cpp:67: error: expected ‘)’ before ‘screenId’
            Player.cpp:657: error: expected ‘}’ at end of input
            Player.cpp:657: error: expected ‘}’ at end of input
            Player.cpp:657: error: expected ‘}’ at end of input
            Player.cpp:657: error: expected ‘}’ at end of input
            Player.cpp:657: error: expected ‘}’ at end of input
            Player.cpp:657: error: expected ‘}’ at end of input

            Para baixar os fontes do 0.12.4 é só colocar -b maint na linha do git clone? Tentei recompilar só o gingancl-cpp mas não dá certo. Ele requer que os outros módulos sejam compilados também, dando o erro:

            Couldn't find Ginga CC System Thread library.
            Please install gingacc-system project.

            Baixando o branch maint, já dá erro na compilação do telemidia-util-cpp, com a mensagem: 

            Entering directory `/root/gingasrc/telemidia-util-cpp/src'
            /bin/bash ../libtool --tag=CXX --mode=link g++ -fPIC -g -O2 -Wl,-soname,libtelemidiautil.so -shared -o libtelemidiautil.so Color.o functions.o libtool: link: g++ -fPIC -g -O2 -Wl,-soname -Wl,libtelemidiautil.so -o libtelemidiautil.so Color.o functions.o
            /usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start': (.text+0x18): undefined reference to `main'

             Como já estou no Ginga VSTB, as variáveis de ambiente estão todas setadas.

            • 1e29d0095154ec9fed26313e9afb8f36?only path=false&size=50&d=404Manoel Campos da Silva Filho(usuário não autenticado)
              28 de Novembro de 2012, 17:58

               

              Pessoal, o código do branch master no git não deveria estar compilando? O compilador reportou alguns erros. Só consegui resolver o mais simples (que era a falta de um include). O outro não (como indiquei na mensagem anterior).

              Mas de qualquer forma, baixei o Ginga AIO 2.0 que já vem com o Ginga CPP 0.13.2 e o problema de segmentation fault relatado já foi corrigido. No entanto, ao tentar o rodar o exemplo disponibilizado no início da thread, ocorre erro. Abaixo segue parte do log:

              ApplicationPlayerAdapter::notificationHandler with code = '1' param = 'img1Start' type = '11' and value = 'yes'
              ApplicationPlayerAdapter::notificationHandler call startEvent 'img1Start' type '11'
              ExecutionObject::getEventFromAnchorId searching 'img1Start' for '-1/bodyId/lua1/dlua' with following events =
              ApplicationPlayerAdapter::startEvent event not found 'img1Start' in object '-1/bodyId/lua1/dlua
              ApplicationPlayerAdapter::notificationHandler with code = '4' param = 'img1Start' type = '11' and value = 'yes'
              ApplicationPlayerAdapter::notificationHandler call stopEvent 'img1Start' type '11'
              ExecutionObject::getEventFromAnchorId searching 'img1Start' for '-1/bodyId/lua1/dlua' with following events =
              ApplicationPlayerAdapter::stopEvent can't stop event'img1Start'

              Em negrito a mensagem de erro que está ocorrendo. img1Start é uma propriedade declarada na mídia lua. É atribuída um valor "yes" à mesma, por meio de um evento postando no script lua (sendo devidamente iniciado e parado o evento de atribuição).

              A primeira linha acima mostra que o valor foi atribuído, no entanto, a mídia que deveria ser adicionada e iniciada dinamicamente  pelo script lua não aparece.

  • Ffe34263b646d0bc927a7bad107034de?only path=false&size=50&d=404Daniel Teixeira(usuário não autenticado)
    29 de Janeiro de 2013, 17:32

     

    Cara, alguem conseguiu fazer funcionar? eu testei nos dois emuladores da telemidia... virtual set up box, aparentemente ele ta ignorando os eventos de edição, porque nen loga no console.. e os de controle ele reconhece pelomenos e loga, mas nao funciona... testei no ar tambem, diretamente no playout em baixa potencia, e vendo em um setup box da eitv, tambem não funcionou, passei os eventos de edicao ao inves de mandar pelo lua, mandar diretamente pelo playout, nao funcionou, tambem fiz algumas modificacoes para fazer coisas mais simples e tambem nao funcionou,

    só queria saber se alguem conseguiu fazer funcionar, e em qual ambiente?

    • 145ea1662b45b86a90b987f094279123?only path=false&size=50&d=404Guilherme Lima(usuário não autenticado)
      30 de Janeiro de 2013, 15:04

       

      Oi Daniel,

      Na ultima versao, reescrevemos o player Lua (LuaPlayer.cpp) praticamente do zero. Durante esse processo, retiramos o suporte a comandos de edicao via Lua--i.e., retiramos o codigo que trata os eventos com class="edit". Fizemos isso porque esse codigo era incompleto e instavel.

      O item "implementar comandos de edicao via Lua" esta no nosso TODO. Porem, no momento, essa nao eh a nossa prioridade. Se voce precisa de comandos de edicao via Lua, ha duas possibilidades: (1) utilizar alguma versao anterior do codigo, entre o meio de 2010 e o meio de 2012; ou (2) implementar voce mesmo, ou convencer algum amigo a implementar esse suporte.

      Se voce optar por (1) esteja preparado para problemas; como disse, o codigo antigo era incompleto e instavel. Se voce optar por (2) e precisar de algum conselho, eu (gflima@telemidia.puc-rio.br) posso ajudar; obviamente, desde que o resultado desse esforco seja contribuido de volta para a comunidade.

      Quanto ao suporte dos comandos via eventos de carrossel, bem, essa eu repasso para o pessoal que trabalha nessa parte.

      Nota. Nos foruns, nos do PUC-Rio/Lab. TeleMidia soh repondemos pelo codigo da implementacao de referencia. Ou seja, se o seu STB, da marca X, nao implementa alguma coisa eh melhor procurar o fabricante.

      abs

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo