When decoding H264 I do this:
const uint8_t *sets[] = {[currentPPS bytes], [currentSPS bytes]};
const size_t sizes[] = {[currentPPS length], [currentSPS length]};
status = CMVideoFormatDescriptionCreateFromH264ParameterSets(NULL, 2, sets, sizes, 4, &formatDescription);
That works great. However when trying to decode HEVC ->
const uint8_t *sets[] = {[currentPPS bytes], [currentSPS bytes], [currentVPS bytes]};
const size_t sizes[] = {[currentPPS length], [currentSPS length], [currentVPS length]};
status = CMVideoFormatDescriptionCreateFromHEVCParameterSets(NULL, 3, sets, sizes, 4, &formatDescription);
CMVideoFormatDescriptionCreateFromHEVCParameterSets gives me ->
hevcbridgeAdvanceInBitstream signalled err=-12714 (kFigBridgeInvalidSerializedSampleDescriptionErr) (end of bitstream) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/EmbeddedCoreMediaFramework_Sim/EmbeddedCoreMedia-2010.7.3/Sources/Core/FigFormatDescription/FigHEVCBridge.c line 244
Edit.
Apples parser works. It was our parameter sets that was wrong... This issue is no more.