> I have subclassed FramedSource similarly to the DeviceSource 
> example to accept calls from a separate thread using the 
> signalNewFrameData() method. It parses the mdat data coming
> from an iPhone mp4 hardware encoder, which should be
> an AVC H264 Stream. This "file stream" parser  replaces
> the NAL Lengths with NAL start codes 0x00000001 
> (and delivers this modified stream buffer to fTO). 
[...]
> createNewStreamSource->DeviceSource->return H264VideoStreamFramer

Because your input source is delivering discrete NAL units (i.e., 
one-at-a-time), then it would be better to use a 
"H264VideoStreamDiscreteFramer", not a "H264VideoStreamFramer".  Each 'frame' 
(really "NAL unit") must be delivered to the "H264VideoStreamDiscreteFramer" 
*without* a preceding start code.

> Unfortunately when extracting this data 
> OnDemandServerMediaSubsession fails to produce any SDP 
> description of the stream, I can only assume this is because 
> the SPS PPS are not being sent in-Band the h264 data from 
> the MP4 mdat contents.


Yes.  


> createNewRTPSink->return H264VideoRTPSink. 

This is where you can pass the SPS and PPS NAL units, because they are not 
present in-band.  Note - in "liveMedia/include/H264VideoRTPSink.hh" - the 
optional variants of the "createNew()" function, which allow you to pass the 
SPS and PPS NAL units, either directly, or as a comma-separated pair of 
Base-64-encoded strings.


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

_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to