if (info.iFrameSizeInBytes > 18 && info.sLayerInfo[0].pBsBuf[18] == 0 &&
info.sLayerInfo[0].pBsBuf[19] == 0 &&
info.sLayerInfo[0].pBsBuf[20] == 0 &&
info.sLayerInfo[0].pBsBuf[21] == 1) {
frag_header.VerifyAndAllocateFragmentationHeader(2);
frag_header.fragmentationOffset[0] = 4;
frag_header.fragmentationLength[0] = 14;
frag_header.fragmentationOffset[1] = 18;
frag_header.fragmentationLength[1] = info.iFrameSizeInBytes - 18;
} else {
frag_header.VerifyAndAllocateFragmentationHeader(1);
frag_header.fragmentationOffset[0] = 4;
frag_header.fragmentationLength[0] = info.iFrameSizeInBytes - 4;
}
I have tried setting the packetization mode to H264PacketizationMode::NonInterleaved instead of H264PacketizationMode::SingleNalUnit, but this didn't seem to make a difference.
Can someone offer me some insight into how I might fix this?