Common C++ RTP

소프트웨어 스크린 샷:
Common C++ RTP
소프트웨어 정보:
버전: 2.0.0
업로드 날짜: 11 May 15
개발자: David Sugar
라이센스: 무료
인기: 35

Rating: nan/5 (Total Votes: 0)

는 GNU ccRTP (RFC 3550, RFC 3551 및 RFC 3555 참조) RTP, IETF로부터 실시간 전송 프로토콜의 구현이다. ccRTP는 고성능, 유연성 및 확장 표준을 준수하는이 RTP 전체 RTCP 지원 스택을 제공 GNU 일반 C ++ 기반의 C ++ 라이브러리입니다. ccRTP의 설계 및 구현은 대용량의 서버 및 게이트웨이뿐만 아니라 개인 클라이언트 애플리케이션에 적합하다.
ccRTP를 설계에서는 RTP는 애플리케이션 레벨 프로토콜의 구조보다는 이러한 TCP 및 UDP와 같은 전형적인 인터넷 전송 프로토콜로 정의 된 것을 고려했다. 따라서, RTP는 좀처럼 응용 프로그램에서 분리 된 층으로 실행되지 않습니다.
따라서, RTP의 애플리케이션은 제약, 세션 구성원 규칙뿐만 아니라 다른 RTP 및 RTCP 메커니즘 타이밍, 적응 RTP 패킷 레이아웃과 처리 규칙을 정의해야합니다. ccRTP 오히려 단지 RTP 패킷 조작 라이브러리되기보다는, RTP 프레임 워크에 대한 프레임 워크를 제공하는 것을 목적으로한다.
오디오 및 비디오 데이터를 모두 지원도 ccRTP의 설계에서 고려되고, 즉, 부분 프레임 분할 / 재 조립을 수행 할 수있다. 유니 캐스트, 멀티 캐스트 및 유니 캐스트 전송을 지원하는 모델뿐만 아니라, 다수의 활성 동기화 소스, 복수의 RTP 세션 (SSRC 스페이스), 복수 RTP 애플리케이션 (CNAME 스페이스). 이는 인터넷 표준을 기반으로 모든 형태의 오디오와 영상 회의 시스템을 구축하기위한 소용 허용한다.
GNU ccRTP는 스레드 고성능입니다. 이는 수신 데이터 패킷의 전송을위한 패킷 큐리스트를 사용한다. 모두 간 미디어 및 내 미디어 동기화가 자동으로 들어오고 나가는 패킷 큐에서 처리됩니다. GNU ccRTP은 RTCP에 대한 지원 및 기타 여러 표준과 호환 및 고급 스트리밍 애플리케이션 모두에 필요한 확장 기능을 제공합니다.
그것은 여러 스트림 페이로드 유형을 혼합 할 수 있으며, 따라서 RFC 2833 호환 시그널링 애플리케이션뿐만 아니라 다른 전문 것들을 impliment하는데 사용될 수있다. GNU ccRTP도 직접 RTP 및 RTCP 패킷 필터링을 제공합니다.
GNU ccRTP는 IPV4 UDP 소켓으로 아니라 다른 스레딩 모델과 하부층 전송 프로토콜과 실시간 스트리밍 impliment 위해 사용될 수 있도록, 나사, 소켓 관련 종속성을 분리하는 템플릿을 사용한다. ccRTP 기능에 대한 자세한 목록은 당신이 프로그래머의 매뉴얼을 볼 수있다.
가장 높은 레벨에서, ccRTP는 RTP 세션을 통해 데이터의 실시간 전송뿐만 아니라, RTCP의 제어 기능을위한 클래스를 제공한다.
RTP 세션 ccRTP 구현의 주요 개념은 RTP 데이터 패킷 / 애플리케이션 데이터 유닛들의 전송 및 수신을 처리하는 패킷 큐의 사용이다. ccRTP에서, 데이터 블록 전송 (송신 패킷) 대기열로 바꾸어 전송하고, 수신 (수신 패킷) 큐로부터 얻어서 받았다.
ccRTP의 인터페이스 (공용 인터페이스, 공용 또는 보호 된 상속 등)의 여러 단계가 있습니다. 예를 들어, ccRTP와 함께 배포 rtphello 데모 프로그램이 바로 RTPSession 클래스의 공용 인터페이스를 사용하고 가상 메서드 onGotSR를 다시 정의하지 않으며, 따라서 어떤이 프로그램은 SR 보고서에 대해 알고있는 것은 어떤 소스에서 마지막으로 보낸 보고서에 전달되는 정보는 어떤 SyncSource 클래스의 getMRSenderInfo 방법을 통해 검색 할 수 있습니다.
반대로, rtplisten 데모 프로그램 상속에 의해 재정의 onGotSR 이러한 RTCP 패킷의 특수 처리를 할 수 있었다. 일반적으로, 데이터 및 제어 패킷은 대부분의 외부 인터페이스를 통해 직접 액세스 할 수 없다.
이 모든 기능은 몇 가지 필수 클래스와 유형을 통해 수행된다. 가장 기본적인 것들은 열거 형 StaticPayloadType 및 클래스 StaticPayloadFormat과 DynamicPayloadFormat 있습니다.
가장 중요한 것들 각각 RTP 데이터 패킷으로 이송 RTP 세션 동기화 소스, 참가자 RTP 애플리케이션에서, 애플리케이션 데이터 유닛을 나타내는 클래스 RTPSession, SyncSource 참가자와 AppDataUnit이다.
ccRTP를 사용하는 경우, 두 전송 및 RTP 스택 처리 송수신 큐를 통해 수행되는 RTP 세션을 통해 전송 된 데이터의 수신. 가장 일반적인 경우에, 각각의 RTP 세션에 대한 개별 실행 스레드는 큐를 처리한다. 이 경우는 우리가 일반적으로이 문서에서 가정합니다 스레딩 모델이다. ccRTP 특히 ccRTP는 RTP 세션의 세트를 제공하는 하나의 실행 스레드의 사용을 지원하며, 다른 스레드 모델을 지원하지만 참고. 이는 수동으로 어떤 다른 스레드에서 메인 데이터 및 제어 서비스를 호출하는 방법, 어떤 RTP 세션과 별도의 쓰레드를 연관시키지하는 것도 가능하다.
ccRTP과 패킷 수신의 기본 개념은 애플리케이션이 직접 소켓에서 패킷을 판독하지 않도록하지만, 수신 큐로부터 취득하기. 스택은 수신 큐에 수신 된 패킷을 삽입하고,이 큐를 처리 할 책임이있다. 일반적으로, 수신 큐의 패킷 수신 및 삽입 애플리케이션 큐에서 그것을 얻는 동시에 발생하지 않는다.
반대로 ccRTP와 패킷 전송을위한 기본적인 아이디어는 패킷을 직접 소켓에 기록하지만 스택 처리 전송 큐에 삽입되지 않는다는 것이다. 그것이 필요한 것은 아니지만 일반적으로, 패킷의 삽입 및 전송은 서로 다른 시간에 발생한다.
. ccRTP를 사용하려면 메인 헤더 (사용법 #include 두 개의 추가 헤더 ccRTP에서 제공하는이 포함되어야합니다 :
사용법 #include     RTP 서​​비스 스레드 풀에 대한 클래스.
사용법 #include
    아직 성숙되지 않은 RTP의 확장을위한 클래스.
또한 현재 ccrtp1 라이브러리에 연결해야합니다

특징 :.

높은 확장 성을 전문 스택에.
· 유니 캐스트, 멀티 캐스트 및 멀티 캐스트를 지원합니다. 및 대상 (동기화 소스와 기여 소스 포함) 여러 소스를 처리합니다. 또한 대칭 RTP를 지원합니다.
이러한 동일한 참가자 또는 NTP-RTP 타임 스탬프 매핑에서 동기화 소스의 연관으로 처리 자동 RTCP 기능.
템플릿을 통해 기본 네트워크 및 전송 프로토콜로들이 generic.
그것은 스레드이며, 거의 모든 스레딩 모델을 지원합니다.
일반 및 확장 RTP 및 RTCP 헤더 유효성을 확인합니다.
소스 및 상태 정보뿐만 아니라 통계 기록을 처리.
자동 SSRC 충돌을 처리하고 루프 검출을 수행한다.
타이머 재고 및 역 재고를 구현합니다.
MD5는 / dev / urandom의 또는 대안을 기반으로 좋은 임의의 숫자를 제공합니다.

이 릴리스의 새로운 기능입니다 :

이 코드 정리, 상류 데비안 패치의 RTP 송신자 정보 및 병합에 대한 버그 수정.

개발자의 기타 소프트웨어 David Sugar

GNU SIP Witch
GNU SIP Witch

17 Feb 15

코멘트 Common C++ RTP

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!