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
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
- Page 501 and 502: ARIB STB-B24 V 4.0 (2004). Associat
- Page 503 and 504: C.1 IntroduçãoA definição de do
- Page 505 and 506: parte da definição do nó e depen
- Page 507 and 508: Outro tipo especial de nó de conte
- Page 509 and 510: Note que a definição de dois tipo
- Page 511 and 512: 2..nidRule1..* ruleList1..*0..10..*
- Page 513 and 514: podem ser estendidas: evento de exi
- Page 515 and 516: Um evento de apresentação pode mu
- Page 517 and 518: C.9.1 ConectoresA Figura C.6 ilustr
- Page 519 and 520: RoleideventTypeminCardinalitymaxCar
- Page 521 and 522: condição ou avaliação, quanto u
- Page 523 and 524: opcionalmente negada. Qualquer expr
- Page 525 and 526: de estados de eventos, a ideia é f
- Page 527 and 528: Por outro lado, a exibição do nó
- Page 529 and 530: C.10 Objetos de Dados XObjetos de R
- Page 531 and 532: O NCM define uma classe descritor g
- Page 533 and 534: navegação em um documento. Usuár
- Page 535 and 536: i) ela pode conter nós de conteúd
- Page 537 and 538: D.1 Conectores CausaisNo Capítulo
- Page 539 and 540: Listagem D.1 Exemplo de base de con
- Page 541 and 542: E.1 IntroduçãoUm receptor pode co
- Page 543 and 544: Como mencionamos, um NPT pode come
- Page 545 and 546: F.1 IntroduçãoComo mencionamos no
- Page 547 and 548: Assim, quando um comando de ediçã
- Page 549 and 550: carrossel de objetos diferente daqu
- Page 554 and 555: Sistema de Arquivo LocalC:\nclRepos
- Page 556 and 557: Tabela F.4 Indicação de Fragmento
- Page 558 and 559: Apêndice GHTGA apresentação com
- Page 560 and 561: pode ser sintonizado em qualquer in
- Page 562 and 563: As condições podem ser simples ou
- Page 564 and 565: condição de percurso de uma arest
- Page 566 and 567: propaganda é inserida no meio de u
- Page 568 and 569: passa a construir o grafo temporal
- Page 570 and 571: Apêndice HComportamento deExibidor
- Page 572 and 573: A instrução start emitida por um
- Page 574 and 575: associado ao elemento, mesmo se out
- Page 576 and 577: H.2.1.3 Instrução abortNo caso de
- Page 578 and 579: deve ser realizado por instruções
- Page 580 and 581: Para objetos de mídia com código
- Page 582 and 583: No caso de objetos de mídia com c
- Page 584 and 585: Se a composição contiver elos sen
- Page 586 and 587: ncl-NCL”, todas as portas do docu
- Page 588 and 589: Se o objeto de mídia com código d
(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