Notice how all the frags have the same header (as they should be), but the start has an Annex B stream, meaning the last NAL picked from that packet is an IDR. This means the last NAL saved from first packet will be an IDR, but the next fragment will have... the header for SPS, but data for IDR, which is wrong.
It appears that the camera only does this for FU-A that has SPS & PPS. FU-As & single NAL units for other NAL types are conformant to spec.
I have only modified this logic for the FU-A flow.
Camera details
Name: V380 (It's a generic V380 outdoor camera)
Firmware: HwV380E31_WF8_PTZ_WIFI_20201218 (I had asked them for a firmware update file to enable RTSP support)
Summary
Add ability to break apart an Annex B stream sent in a FU-A. Fixes #68
Details
My V380 cam would send a FU-A after establishing RTSP connection. The FU-A was not conformant to spec.
Notice how all the frags have the same header (as they should be), but the start has an Annex B stream, meaning the last NAL picked from that packet is an IDR. This means the last NAL saved from first packet will be an IDR, but the next fragment will have... the header for SPS, but data for IDR, which is wrong.
It appears that the camera only does this for FU-A that has SPS & PPS. FU-As & single NAL units for other NAL types are conformant to spec.
I have only modified this logic for the FU-A flow.
Camera details
Name: V380 (It's a generic V380 outdoor camera) Firmware:
HwV380E31_WF8_PTZ_WIFI_20201218
(I had asked them for a firmware update file to enable RTSP support)