[xiph-rtp] Lots of proposals

David Barrett dbarrett at quinthar.com
Tue Aug 30 15:32:38 PDT 2005


Tor-Einar Jarnbjo wrote:
> David Barrett wrote:
> 
>> - The only codebook mechanism supported by the baseline spec is inline 
>> delivery, without ack/retransmit.
> 
> How do you expect the client to handle transmission loss of parts of the 
> codebook header?

Well to start, if you're delivering RTP via a lossless channel (over 
TCP, or in a file) then the baseline works just fine and I'd stick with 
that.

However, generally you are using UDP which is unreliable, and so I 
agree, that's the problem.  Whether loss of part or the whole thing, the 
baseline isn't that great.  If I were writing a plain vanilla baseline 
broadcaster, I'd use some kind of exponential backoff of the codebook. 
For example I'd send at:

0ms
1000ms
2000ms
4000ms
8000ms and every 8s thereafter

Unfortunately it's never *guaranteed* to arrive, but it's highly 
probable.  Frankly that's not reassuring to me, which is why I probably 
wouldn't write a baseline broadcaster.  Rather, I'd pick whichever 
codebook delivery mechanism made the most sense for my situation:

- If I'm broadcasting to a small group using UDP, I'd use an optional 
extension where the client sends a "codebook acknowledged" whenever it 
receives the codebook.  Then the broadcaster would just keep sending the 
codebook every second until it receives a "codebook acknowledged" before 
sending any audio/video.

- If I were broadcasting over multicast, I might use an optional 
extension where codebooks are just sent periodically over a separate 
channel.  Then clients subscribe to this channel long enough to get the 
codebook, and then unsubscribe after they've got it.

- If I'm broadcasting from a webserver, I might use an optional 
extension where codebooks are delivered over HTTP via URLs embedded in 
the SDP.

I'm sure there are other strategies that are appropriate for other 
situations.  The key thing is, however, the baseline RTP packet format 
remains the same for all these situations, and it's only the codebook 
delivery mechanism that changes.

Does this make sense?

-david


More information about the xiph-rtp mailing list