[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