3 Replies
      Latest reply on Jun 11, 2019 1:35 PM by hz10
      Anders Cedronius Level 1 Level 1 (0 points)

        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.