I'd just like to say that the work you are doing on this project is amazing and well appreciated.
I'm working on implementing the RTSP Client for a h264 stream coming from my IP Camera. Specifically, I am attempting to pull the image data out to grab images from the stream. I really only care about the IDR frames at this point.
Within the RFC6194Frame class, it is clear that the Nal types are being extracted from the RTP stream. It looks like both the RTP Nal and encapsulated h264 NAL are being extracted into a m_containednaltypes variable for quick analysis of the frame with various
So through the m_containednaltypes I should be able to check the ContainsInstantaneousDecoderRefresh property to see if the frame is an IDR frame.
On debugging, I've found that I keep getting odd values in the Nal bytes. Most of my frames are coming back as fragemented. I've attached an image below.
It looks like the line:
byte nalHeader = (byte)((firstByte & 0xE0) | (FUHeader & Common.Binary.FiveBitMaxValue));
should actually be:
byte nalHeader = (FUHeader & Common.Binary.FiveBitMaxValue));
under where the packet is being processed as fragmented.
I've reviewed section 5.8 of the below article which I think corresponds with this:
I'm very new to media processing - sorry if I got anything wrong - appreciate the help and work you are doing on this project!