JRTPLIBはどのようにサブパケット化を行いますか?
JRTPLIBはRTP(リアルタイム伝送プロトコル)とRTCP(リアルタイム制御プロトコル)のためのC++ライブラリです。それはRTPおよびRTCPデータパケットを処理するためのフレームワークを提供します。
JRTPLIBのサブパッケージ処理方法は次のとおりです。
- RTP と RTCP データパケットの送受信を処理する RTPSession オブジェクトを作成します。
- RTPセッションオブジェクトにRTPセッションイベントハンドラ(RTPSession::SetDefaultPayloadTypeHandler)とRTCPセッションイベントハンドラ(RTPSession::SetDefaultRTCPApplicationDataHandler)を登録し、受信したRTPパケットとRTCPパケットを処理する。
- RTPSession::Create メンバ関数を呼び出して、RTP セッションを作成します。
- RTPセッションにローカルSIPアドレスとポートを設定します(RTPSession::SetLocalSIPInfo)。
- RTPセッションオブジェクトのメンバー関数RTPSession::SendPacketを呼び出し、離れたSIPアドレスとポートにRTPデータパケットを送信します。
- RTPSession::Pollメンバ関数を呼び出すことで、RTP と RTCP パケットを受信・処理します。
JRTPLIB では、RTP パケットはメンバ関数 RTPSession::SendPacket から送信できますが、RTCP パケットは自動的に処理されます。新しい RTP パケットを受信すると、RTP セッションイベントハンドラが呼び出され、RTP パケットの内容が渡されます。ユーザーはイベントハンドラ内で、メディアデータの抽出などの独自のカスタム処理を行うことができます。
つまり、JRTPLIBはRTP、RTCP Data Packetの送受信に便利なフレームワークであり、受信したパケットを処理するためのイベントハンドラを提供しています。