[Live-devel] H264VideoRTPSink type cast issue
Ross Finlayson
finlayson at live555.com
Wed Apr 3 11:49:53 PDT 2013
> I recently updated to the latest version of the library (March 23rd 2013 version) but I came across a new issue with H264VideoRTPSink. In the function doSpecialFrameHandling there is "specific" type cast of the frame source to H264VideoStreamFramer
>
That's correct. That code has been there for many years, so the fact that it is an issue for you only with this new release of the code suggests that you probably had made improper modifications to whatever version of the code you were using before.
> but since my source is not this class, my code now crashes.
>
That should not be happening, because if if you try to call "getPlaying()" on a "H264VideoRTPSink" with an object that is *not* a "H264VideoStreamFramer", you should never get to that code, because the previous call to "sourceIsCompatibleWithUs()" on line 70 of "MediaSink.cpp" should have returned False. (This is because "H264VideoRTPSink" reimplements the "sourceIsCompatibleWithUs()" virtual function to return True only if the source object is a "H264VideoStreamFramer".) So this suggests that you are *still* making changes to the supplied source code. Please stop doing this, if you want to get support on this mailing list!
See:
http://www.live555.com/liveMedia/faq.html#modifying-and-extending
The bottom line is that the object that feeds into a "H264VideoRTPSink" *must* be a "H264VideoStreamFramer", or a subclass of this. The solution is simple: Create a "H264VideoStreamDiscreteFramer" (note, *not* a "H264VideoStreamFramer") object in front of your source object (i.e., in front of the object that delivers discrete H.264 NAL units - presumably from an encoder).
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20130403/c30d38b2/attachment.html>
More information about the live-devel
mailing list