[Live-devel] Adding a codec

Ross Finlayson finlayson at live555.com
Wed Jun 20 11:05:34 PDT 2007


>Suppose a video server has been created that streams a non compliant 
>H.264 stream ( a so called modified H.264 that's absolutely not 
>compatible with the H.264 bitstream, no NAL's etc... )
>
>I have to create a client application that can connect to such 
>a server using RTSP, receive the modified H.264 video stream, decode 
>it and render it on the screen.

To do this properly, you should also define a new RTP payload format 
(for your new bitstream format), and present it (as an Internet 
Draft) to the IETF for standardization.

>  How do I go about this? Since the MediaSubsession::initiate() 
>function will not recognize the codec, I suppose I will have to 
>change this function to create a 'ModifiedH264VideoRTPSource' and 
>then create a ModifiedH264VideoRTPSource class derived from 
>MultiFramedRTPSource. Am I correct? Is this the only thing I that 
>needs to be done?

No, you will also need to use a different RTP media type - i.e., 
*not* "video/H264" - so that receivers will know that they're not 
getting the standard H.264 RTP payload format.

>
>Bonus question. If the doNormalMBitRule is active, what happens if 
>let's say an RTP packet belonging to the frame gets lost? Do you get 
>a partial frame or non at all?

None at all.

>  How can you detect that a frame or part of the frame is lost?

At a higher level - e.g., by inspecting the presentation times of the 
frames that you *do* receive.
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list