I test iOS SDK 4.12 with the Swift Sample Code from DJI.
Xcode 11.4.1
Swift 5
class VideoPreviewerAdapter: NSObject {..
The DJISDKManager.videoFeeder() has no member for
- DJISDKManager.videoFeeder()?.parseDecodingAssistInfo(...
- DJISDKManager.videoFeeder()?.decodingDidSucceed(..
- DJISDKManager.videoFeeder()?.syncDecoderStatus(..
- DJISDKManager.videoFeeder()?.decodingDidFail(..
This is new and does not appear in SDK 4.11.1 or lower.
extension VideoPreviewerAdapter: DJIVideoPreviewerFrameControlDelegate { func parseDecodingAssistInfo(withBuffer buffer: UnsafeMutablePointer<UInt8>!, length: Int32, assistInfo: UnsafeMutablePointer<DJIDecodingAssistInfo>!) -> Bool { return DJISDKManager.videoFeeder()?.parseDecodingAssistInfo(withBuffer: buffer, length: length, assistInfo: assistInfo) ?? false }
func decodingDidSucceed(withTimestamp timestamp: UInt32) { DJISDKManager.videoFeeder()?.decodingDidSucceed(withTimestamp: UInt(timestamp)) }
func isNeedFitFrameWidth() -> Bool { let displayName = VideoPreviewerAdapter.camera()?.displayName if displayName == DJICameraDisplayNameMavic2ZoomCamera || displayName == DJICameraDisplayNameMavic2ProCamera { return true } return false }
func syncDecoderStatus(_ isNormal: Bool) { DJISDKManager.videoFeeder()?.syncDecoderStatus(isNormal) }
func decodingDidFail() { DJISDKManager.videoFeeder()?.decodingDidFail() }
}
Fix! The decode status is linked to the videoFeeder! But it is important to tell if it is the primary or secondary video feed.
Replace DJISDKManager.videoFeeder()?. with feed?
extension VideoPreviewerAdapter: DJIVideoPreviewerFrameControlDelegate { func parseDecodingAssistInfo(withBuffer buffer: UnsafeMutablePointer<UInt8>!, length: Int32, assistInfo: UnsafeMutablePointer<DJIDecodingAssistInfo>!) -> Bool { return feed?.parseDecodingAssistInfo(withBuffer: buffer, length: length, assistInfo: assistInfo) ?? false }
func decodingDidSucceed(withTimestamp timestamp: UInt32) { feed?.decodingDidSucceed(withTimestamp: UInt(timestamp)) }
func isNeedFitFrameWidth() -> Bool { let displayName = VideoPreviewerAdapter.camera()?.displayName if displayName == DJICameraDisplayNameMavic2ZoomCamera || displayName == DJICameraDisplayNameMavic2ProCamera { return true } return false }
func syncDecoderStatus(_ isNormal: Bool) { feed?.syncDecoderStatus(isNormal) }
func decodingDidFail() { feed?.decodingDidFail() }
}
|