RFC4585によると:
RのFBメッセージが5のように他の受信者FBメッセージによって抑制されなかった場合、teに達したときに、RはそのFBメッセージを含む(最小の)複合RTCPパケットを送信する必要があります。次に、Rはallow_early = FALSEを設定し、tn = tp + 2 * T_rrを再計算し、tpを前のtnに設定する必要があります。新しく計算されたtnに達するとすぐに、Rが次の通常のRTCPパケットを送信するか、T_rr_intervalのためにそれを抑制するかに関係なく、allow_early=TRUEを再度設定する必要があります。
初期のRTCPパケットが時間t1't1
--- t1'------ t2 ------------ t3
に送信され、t1、t2、t3が通常の時間であると仮定します。 RTCPパケットが送信されます。RFCは、パケットが時刻t1'に送信された場合、時刻t2のRTCPパケットはドロップされ、t3までフィードバックメッセージは許可されないことを示唆しています。
ただし、同じRFCの後半では、次のように述べられています。
完全な複合RTCPパケットは、定期的に送信する必要があります。これらの
パケットには、1つ以上のFBメッセージも含まれる場合があります。通常のRTCPパケットの送信
は次のようにスケジュールされます。T_rr_interval == 0の場合、送信はこのドキュメントのセクション3.2および3.4で指定されているルールに従う必要があり、セクション3.5.2で指定されているtnの調整に準拠する必要があります(つまり、早期RTCPパケット送信の場合は通常の送信を1回スキップする必要があります発生しました)。[1]に従って、tnに達するとタイマーの再検討が行われます。通常のRTCPパケットは、タイマーの再検討後に送信されます。通常のRTCPパケットが送信または
抑制される場合は常に、allow_earlyをTRUEに設定し、tp、tn
を[1]に従って更新する必要があります。通常のRTCP
パケットの最初の送信後、Tminを0に設定する必要があります。
これは矛盾しているように見えます。これは、RTCPパケットが抑制されている場合、allow_earlyをTRUEに設定する必要があるため、時間t2でallow_earlyをTRUEに設定する必要があるように見えるためです。