> 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
