GNOME Bugzilla – Bug 640327
Add VP8 RTP payloaders and depayloaders
Last modified: 2011-01-30 16:44:47 UTC
Created attachment 179082 [details] [review] Proposed patch, also as git branch: http://cgit.freedesktop.org/~sjoerd/gst-plugins-bad/log/?h=vp8 http://www.webmproject.org/code/specs/rtp/ has a DRAFT rtp spec for VP8. I've implemented this in the attached patch. The implementation is quite mimimal and has the following todo items: * It does never set the N bit. To do this correctly it's necessary to parse even more of the bitstream header, which is a pain. Also what the conditions are to set the bit aren't really properly defined. Not ever setting it should never be an issue (we're not telling the receiver that the packet is a non-reference frame that's safe to drop). * We can't set the PictureID in the payloader (not mandatory), but do correctly cope in the depayloader when it's set * the SDP encoding name is VP8-DRAFT-0-3-2 instead of VP8 as i'm not looking forward to versions in the wild that are incompatible with whatever the final draft is :) * The depayloader is minimal and isn't able to handle frames with incomplete partitions (due to packet loss). Otoh that's impossible to do correctly with the current spec and i'm not sure how to feed it into the vpx decoder (it's not documented how this could be done) None of these items are big enough to not merge the patches though (imho) :)
Appart from the fact that it probably drops stuff needlessly on a DISCONT, it looks ok to me.
As discussed on IRC, there is currently no (official) way to give partial frames to the VP8 decoder and the rtp spec isn't ready yet for re-constructing parts of a frame. Patches pushed to -bad, thanks for the review :)