Common C++ RTP

Tela Software:
Common C++ RTP
Detalhes de Software:
Versão: 2.0.0
Data de upload: 11 May 15
Revelador: David Sugar
Licença: Livre
Popularidade: 35

Rating: nan/5 (Total Votes: 0)

GNU ccRTP é uma implementação da RTP, o protocolo de transporte em tempo real a partir da IETF (veja RFC 3550, RFC 3551 e RFC 3555). ccRTP é uma biblioteca C ++ baseado em GNU Common C ++ que fornece um alto desempenho, compatível com os padrões flexíveis e extensíveis RTP acumula com apoio total RTCP. A concepção e implementação de ccRTP torná-lo adequado para servidores de alta capacidade e gateways, bem como aplicações de cliente pessoais.
Na concepção ccRTP, levamos em conta que a RTP tem sido definida como um quadro de protocolo de nível de aplicativo em vez de um protocolo típico de transporte da Internet como TCP e UDP. Assim, RTP é dificilmente implementada como uma camada separada a partir da aplicação.
Consequentemente, as aplicações RTP muitas vezes tem de personalizar as regras de layout e de processamento de pacotes adaptáveis ​​RTP, restrições, regras de adesão sessão, bem como outros mecanismos RTP e RTCP o timing. ccRTP visa proporcionar um quadro para o quadro RTP, em vez de ser apenas uma biblioteca de manipulação de pacotes RTP.
Suporte tanto para áudio e dados de vídeo também é considerado no projeto de ccRTP, que pode fazer quadro parcial divide / re-montagem. Unicast, multi-unicast e multicast modelos de transporte são suportados, bem como várias fontes de sincronização ativas, várias sessões RTP SSRC (espaços), e múltiplas aplicações RTP (espaços CNAME). Isso permite que ele é usado para a construção de todas as formas de Internet normas de áudio com base e sistemas de conferência visual.
GNU ccRTP é threadsafe e alto desempenho. Ele usa listas de fila de pacotes para a recepção e transmissão de pacotes de dados. Ambos inter-mídia e sincronização intra-mídia é manipulada dentro das filas de pacotes de entrada e saída. GNU ccRTP oferece suporte para RTCP e muitos outros recursos padrão e estendidos que são necessários tanto para aplicações de streaming compatíveis e avançados.
Pode misturar vários tipos de carga útil no fluxo, e, portanto, pode ser usado para impliment RFC 2833 aplicações de sinalização compatíveis, bem como outras coisas especializados. GNU ccRTP também oferece RTP direta e filtragem de pacotes RTCP.
GNU ccRTP usa modelos para isolar dependências de rosqueamento e soquetes relacionados, de modo que ele pode ser usado para impliment realtime de streaming com diferentes modelos de segmentação e protocolos de transporte subjacentes, não apenas com soquetes IPV4 UDP. Para uma lista mais detalhada dos recursos ccRTP você pode ter um olhar para o manual dos programadores.
No seu mais alto nível, ccRTP fornece classes para o transporte em tempo real de dados através de sessões RTP, bem como as funções de controle RTCP.
O conceito principal na aplicação ccRTP de sessões RTP é a utilização de filas de espera para lidar com pacotes de transmissão e recepção de pacotes de dados RTP / unidades de dados de aplicação. Em ccRTP, um bloco de dados é transmitido por colocá-lo em transmissão (pacotes de saída) da fila, e recebeu por começá-lo a partir da recepção (pacotes de entrada) de filas.
Existem vários níveis de relação (interface pública, herança público ou protegido, etc) em ccRTP. Por exemplo, o programa de demonstração rtphello distribuído com ccRTP apenas usa a interface pública da classe RTPSession e não redefinir o método virtual onGotSR, assim que este programa sabe sobre relatórios SR é a informação veiculada no último relatório remetente de qualquer fonte, que pode ser recuperada através do método getMRSenderInfo da classe SyncSource.
Pelo contrário, o programa de demonstração rtplisten redefine onGotSR por meio de herança e poderia fazer processamento especializado desses pacotes RTCP. Geralmente, os dados e pacotes de controle não são directamente acessíveis através da interface mais externa.
Todas estas funções são realizadas através de algumas classes essenciais e tipos. Os mais básicos são os StaticPayloadType tipo enumerado, eo StaticPayloadFormat aulas e DynamicPayloadFormat.
As mais importantes são as classes RTPSession, SyncSource, Participante e AppDataUnit, que representam sessões RTP, fontes de sincronização, os participantes em um aplicativo RTP, e as unidades de dados de aplicativos transmitidas em pacotes de dados RTP, respectivamente.
Ao usar ccRTP, tanto o envio e recebimento de dados transportados ao longo sessões RTP é feito através de filas de recepção e transmissão tratados pelo pilha RTP. No caso mais comum, um segmento de execução separada para cada sessão RTP processa as filas. Este caso é o modelo de segmentação que vamos geralmente assumem ao longo deste documento. Note no entanto que ccRTP suporta outros modelos de segmentação, particularmente ccRTP suporta o uso de um único segmento de execução para servir um conjunto de sessões RTP. Também é possível para não associar qualquer segmento separado com qualquer sessão RTP, chamando manualmente os principais dados e serviços de controle de métodos de qualquer outro segmento.
A idéia básica para a recepção de pacotes com ccRTP é que o aplicativo não lê diretamente os pacotes de soquetes, mas recebe-los a partir de uma fila de recepção. A pilha é responsável por inserir os pacotes recebidos na fila de recepção e gestão dessa fila. Em geral, uma recepção de pacotes e de inserção na fila de recepção não ocorrem ao mesmo tempo a aplicação recebe-lo a partir da fila.
Por outro lado, a idéia básica para a transmissão de pacotes com ccRTP é que os pacotes não são gravados directamente num soquetes mas inserido em uma fila de transmissão tratados pelo pilha. Em geral, a inserção e a transmissão de pacotes ocorrem em momentos diferentes, embora não seja necessário.
Para utilizar ccRTP, você deve incluir o cabeçalho principal (#include Dois cabeçalhos adicionais são fornecidos por ccRTP.:
#include     Classes para piscinas de RTP segmentos de serviço.
#include
    Aulas para extensões RTP que não estão maduros ainda.
Você também deve vincular na biblioteca, atualmente ccrtp1

Recursos :..

  • Altamente extensível para pilhas especializadas
  • Suporta unicast, multi-unicast e multicast. Lida com várias fontes (incluindo fontes de sincronização e fontes que contribuem) e destinos. Também oferece suporte a RTP simétrico.
  • As funções automáticas RTCP manipulação, tais como associação de fontes de sincronização a partir do mesmo participante ou NTP-timestamp RTP mapeamento.
  • Genericity como para rede e de transporte protocolos subjacentes através de modelos.
  • É threadsafe e suporta praticamente qualquer modelo de segmentação.
  • verificações de validade cabeçalho RTP e RTCP genéricos e extensíveis.
  • Puxadores estados de origem e de informações, bem como a gravação de estatísticas.
  • manipula automaticamente colisões SSRC e executa a detecção loop.
  • Implementa temporizador reapreciação e reconsideração reverter.
  • Fornece bons números aleatórios, com base em / dev / urandom ou, em alternativa, em MD5.

O que é novo nesta versão:

  • limpeza de código, correções de bugs para a RTP Informação remetente, e fusão de patches de upstream da Debian.

Outro software de desenvolvedor David Sugar

GNU SIP Witch
GNU SIP Witch

17 Feb 15

Comentário para Common C++ RTP

Comentários não encontrado
Adicionar comentário
Ligue imagens!