Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

telemidia.puc.rio.br
from telemidia.puc.rio.br More from this publisher
11.07.2015 Views

documento XML representando o metadados. Contudo, uma aplicação NCL(e seus arquivos de conteúdo) ou um documento de especificação de um nóNCL (e seus arquivos de conteúdo) pode se estender por mais de umaestrutura de metadados. Mais ainda, podem existir estruturas de metadadossem qualquer aplicação NCL ou documento XML descritos em seuselementos e .As três estruturas anteriormente definidas podem ser transmitidasusando sistemas de transporte diferentes, como exemplificado no que sesegue.F.3.1 Transporte em um Tipo Específico de Seção MPEG-2O uso de um tipo específico de seção MPEG-2 (identificado por umvalor específico do campo table_id de uma seção privada MPEG-2, conformeapresentado no Apêndice B), a partir de agora chamada de seção NCL, nospermite transmitir as três estruturas de dados anteriormente definidas: mapas,metadados e arquivos de dados.Cada Seção NCL pode conter os dados de apenas uma estrutura.Contudo, uma estrutura pode se estender por várias seções. Estruturas dedados podem ser transmitidas em qualquer ordem e quantas vezes foremnecessárias.O começo de uma estrutura de dados é delimitada pelo campopayload_unit_start_indicator de um pacote TS. Depois dos quatro bytes docabeçalho TS, a carga (payload) do pacote TS começa, com um campoponteiro de um byte indicando o início de uma seção NCL [ISO/IEC 13818-1,2000]. O cabeçalho da seção NCL é então definido como uma seção MPEG-2[ISO/IEC 13818-1, 2000]. O primeiro byte da carga (payload) da seção NCLidentifica o tipo da estrutura transportada (0x01 para metadatos; 0x02 paraarquivos de dados e 0x03 para mapa de eventos). O segundo byte carrega umidentificador único da estrutura (structureId) no fluxo elementar detransporte. 2Depois do segundo byte vem uma estrutura de dados serializada quepode ser a mappingStructure (como ilustrado pela Tabela F.2) ou a estruturade matadados (um documento XML), ou uma estrutura de arquivos de dados2 O fluxo elementar e o identificador da estrutura são aqueles que devem ser associados pelaestrutura de metadados, através dos atributos component_tag e structureId dos elementos e, a localizadores de arquivos (URL).512

(um conteúdo de arquivo serializado). O demultiplexador de seções NCL éresponsável por montar toda a estrutura da aplicação no dispositivo receptor. 3No mesmo fluxo elementar que carrega a especificação XML (o arquivodo documento NCL ou outro documento XML usado nos comandos deedição) é recomendado que um arquivo mapa de eventos seja transmitido,para que seja mapeado o nome “nclEditingCommand” no eventId dodescritor de evento que deverá transportar os comandos de edição, comodescrito no Capítulo 16. O campo privateDataPayload do descritor de eventodeve carregar o par de referências {uri, id}, como sempre. Os parâmetros uritêm sempre o valor “null”. No caso dos comandos addDocument e addNode,o parâmetro id do primeiro par deve identificar o fluxo elementar(“component_tag”) e a estrutura de metadados que ele transporta(“structureId”). A estrutura de metadados, por sua vez, contém o caminhoabsoluto do documento NCL ou da especificação do nó NCL (o caminho noservidor de dados) e a estrutura arquivos de dados relacionada (“structureId”)transportada em seções NCL do mesmo fluxo elementar. Se outras estruturasde metadados adicionais forem necessárias para completar os comandos deedição addDocument ou addNode, outros pares {uri, id} devem estarpresentes no comando. Nesse caso, os parâmetros uri devem também ter ovalor “null” e os parâmetros id correspondentes devem referir-se aocomponent_tag e à estrutura de metadados transportada (structureId)correspondente.A Figura F.2 ilustra um exemplo de transmissão de um documento NCLatravés de seções NCL. Nesse exemplo, um provedor de conteúdo quertransmitir um programa interativo chamado “weatherConditions.ncl”,armazenado em um de seus servidores de dados (sistema de arquivo local naFigura F.2). Um fluxo elementar MPEG-2 (component_tag= “0x09”) deveentão ser gerado, carregando todo o conteúdo do programa interativo (oarquivo ncl e todos os arquivos de conteúdo de mídia). Um mapa de eventostambém deve ser gerado (structureType=“0x03”; structureId=“0x0C”, naFigura F.2), mapeando o nome “nclEditingCommand” ao valor de eventId(valor “3”, Figura F.2). Um descritor de evento também deve ser transmitido,com o valor apropriado para eventId, no exemplo o valor “3”, e o valor decommandTag igual a “0x05”, que indica um comando addDocument (vejaCapítulo 16). O parâmetro uri deve ter o valor “null” e o parâmetro id deveter o valor (component_tag= “0x09”, structureId= “0x0B”), como na FiguraF.2.3 É importante salientar que seções NCL podem também transportar as estruturas de dados definidasencapsuladas em outras estruturas de dados. Por exemplo, o MPE (Multi-protocol Encapsulation) pode serusado. Nesse caso, seções NCL seriam seções MPEG-2 de datagrama. Mais ainda, todas as estruturas dedados mencionadas podem ser envelopadas em outro formato de dados de protocolo, como, por exemplo,pacotes FLUTE.513

(um conteúdo de arquivo serializado). O d<strong>em</strong>ultiplexador de seções <strong>NCL</strong> éresponsável por montar toda a estrutura da aplicação no dispositivo receptor. 3No mesmo fluxo el<strong>em</strong>entar que carrega a especificação XML (o arquivodo documento <strong>NCL</strong> ou outro documento XML usado nos comandos deedição) é recomendado que um arquivo mapa de eventos seja transmitido,para que seja mapeado o nome “nclEditingCommand” no eventId dodescritor de evento que deverá transportar os comandos de edição, comodescrito no Capítulo 16. O campo privateDataPayload do descritor de eventodeve carregar o par de referências {uri, id}, como s<strong>em</strong>pre. Os parâmetros uritêm s<strong>em</strong>pre o valor “null”. No caso dos comandos addDocument e addNode,o parâmetro id do primeiro par deve identificar o fluxo el<strong>em</strong>entar(“component_tag”) e a estrutura de metadados que ele transporta(“structureId”). A estrutura de metadados, por sua vez, contém o caminhoabsoluto do documento <strong>NCL</strong> ou da especificação do nó <strong>NCL</strong> (o caminho noservidor de dados) e a estrutura arquivos de dados relacionada (“structureId”)transportada <strong>em</strong> seções <strong>NCL</strong> do mesmo fluxo el<strong>em</strong>entar. Se outras estruturasde metadados adicionais for<strong>em</strong> necessárias para completar os comandos deedição addDocument ou addNode, outros pares {uri, id} dev<strong>em</strong> estarpresentes no comando. Nesse caso, os parâmetros uri dev<strong>em</strong> também ter ovalor “null” e os parâmetros id correspondentes dev<strong>em</strong> referir-se aocomponent_tag e à estrutura de metadados transportada (structureId)correspondente.A Figura F.2 ilustra um ex<strong>em</strong>plo de transmissão de um documento <strong>NCL</strong>através de seções <strong>NCL</strong>. Nesse ex<strong>em</strong>plo, um provedor de conteúdo quertransmitir um programa interativo chamado “weatherConditions.ncl”,armazenado <strong>em</strong> um de seus servidores de dados (sist<strong>em</strong>a de arquivo local naFigura F.2). Um fluxo el<strong>em</strong>entar MPEG-2 (component_tag= “0x09”) deveentão ser gerado, carregando todo o conteúdo do programa interativo (oarquivo ncl e todos os arquivos de conteúdo de mídia). Um mapa de eventostambém deve ser gerado (structureType=“0x03”; structureId=“0x0C”, naFigura F.2), mapeando o nome “nclEditingCommand” ao valor de eventId(valor “3”, Figura F.2). Um descritor de evento também deve ser transmitido,com o valor apropriado para eventId, no ex<strong>em</strong>plo o valor “3”, e o valor decommandTag igual a “0x05”, que indica um comando addDocument (vejaCapítulo 16). O parâmetro uri deve ter o valor “null” e o parâmetro id deveter o valor (component_tag= “0x09”, structureId= “0x0B”), como na FiguraF.2.3 É importante salientar que seções <strong>NCL</strong> pod<strong>em</strong> também transportar as estruturas de dados definidasencapsuladas <strong>em</strong> outras estruturas de dados. Por ex<strong>em</strong>plo, o MPE (Multi-protocol Encapsulation) pode serusado. Nesse caso, seções <strong>NCL</strong> seriam seções MPEG-2 de datagrama. Mais ainda, todas as estruturas dedados mencionadas pod<strong>em</strong> ser envelopadas <strong>em</strong> outro formato de dados de protocolo, como, por ex<strong>em</strong>plo,pacotes FLUTE.513

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!