MODEL_PARSER_API_MIGRATION_TABLE.md 4.6 KB

Model + Parser API Migration Table (OC -> LN Swift)

Model

OC Class OC API Swift Class Swift API Status
QGBaseDFileInfo properties: filePath, occupiedCount LNBaseDFileInfo same semantic properties Done
QGBaseAnimatedImageFrame properties: frameIndex, duration, pts LNBaseAnimatedImageFrame same semantic properties Done
QGBaseAnimatedImageFrame+Displaying -shouldFinishDisplaying + startDate/decodeTime LNBaseAnimatedImageFrame @objc(shouldFinishDisplaying) shouldFinishDisplaying() + same properties Done
QGMP4AnimatedImageFrame properties: pixelBuffer, defaultFps LNMP4AnimatedImageFrame same semantic properties Done
QGMP4HWDFileInfo property: mp4Parser LNMP4HWDFileInfo property: mp4Parser: LNMP4ParserProxy? Done
QGVAPConfigModel properties: info/resources/mergedConfig LNVAPConfigModel same semantic properties Done
QGVAPCommonInfo common info properties LNVAPCommonInfo same semantic properties Done
QGVAPSourceInfo source properties LNVAPSourceInfo same semantic properties Done
QGVAPSourceDisplayItem frame/sourceInfo LNVAPSourceDisplayItem same semantic properties Done
QGVAPMergedInfo -vertexBufferWithContainerSize:maskContianerSize:device: LNVAPMergedInfo @objc(vertexBufferWithContainerSize:maskContianerSize:device:) vertexBuffer(containerSize:maskContianerSize:device:) Done
QGVAPMaskInfo computed readonly texture + mask properties LNVAPMaskInfo computed readonly texture + same semantic properties Done
QGVAPTextureLoader +loadVapColorFillBufferWith:device: LNVAPTextureLoader same ObjC selector exposed via @objc Done
QGVAPTextureLoader +loadTextureWithImage:device: LNVAPTextureLoader same ObjC selector exposed via @objc Done
QGVAPTextureLoader +loadTextureWithData:device:width:height: LNVAPTextureLoader same ObjC selector exposed via @objc Done
QGVAPTextureLoader +drawingImageForText:color:size:bold: LNVAPTextureLoader same ObjC selector exposed via @objc Done
QGVAPTextureLoader +getAppropriateFontWith:rect:designedSize:bold:textSize: LNVAPTextureLoader same ObjC selector exposed via @objc Done

Parser

OC Class OC API Swift Class Swift API Status
QGMP4BoxFactory +isTypeValueValid: LNMP4BoxFactory @objc(isTypeValueValid:) isTypeValueValid(_:) Done
QGMP4BoxFactory +boxClassForType: LNMP4BoxFactory @objc(boxClassForType:) boxClass(for:) Done
QGMP4BoxFactory +createBoxForType:startIndex:length: LNMP4BoxFactory @objc(createBoxForType:startIndex:length:) createBox(for:startIndex:length:) Done
QGMP4Box -initWithType:startIndex:length: LNMP4Box init(type:startIndex:length:) Done
QGMP4Box -subBoxOfType: LNMP4Box @objc(subBoxOfType:) subBox(ofType:) Done
QGMP4Box -superBoxOfType: LNMP4Box @objc(superBoxOfType:) superBox(ofType:) Done
QGMP4Box + subclasses -boxDidParsed: LNMP4Box + subclasses boxDidParsed(_:) (override in parsed box subclasses) Done
QGMP4Parser -initWithFilePath: LNMP4Parser init(filePath:) Done
QGMP4Parser -parse LNMP4Parser parse() Done
QGMP4Parser -readDataForBox: LNMP4Parser @objc(readDataForBox:) readData(for:) Done
QGMP4Parser -readValue:length: LNMP4Parser @objc(readValue:length:) readValue(_:length:) Done
QGMP4ParserDelegate -didParseMP4Box:parser: LNMP4ParserDelegate didParseMP4Box(_:parser:) Done
QGMP4ParserDelegate -MP4FileDidFinishParse: LNMP4ParserDelegate mp4FileDidFinishParse(_:) Done (Swift-style name)
QGMP4ParserProxy -initWithFilePath: LNMP4ParserProxy init(filePath:) Done
QGMP4ParserProxy -parse LNMP4ParserProxy parse() Done
QGMP4ParserProxy -readPacketOfSample: LNMP4ParserProxy @objc(readPacketOfSample:) readPacket(ofSample:) Done
QGMP4ParserProxy -readDataOfBox:length:offset: LNMP4ParserProxy @objc(readDataOfBox:length:offset:) readData(of:length:offset:) Done

Scope note

  • 本表是 Model + Parser API 层对照。实现文件位于:
    • /Users/yanxuyao/Vap/QGVAPlayer/QGVAPlayer/LNSwift/Model/LNModels.swift
    • /Users/yanxuyao/Vap/QGVAPlayer/QGVAPlayer/LNSwift/Parser/LNMP4Parser.swift
  • 已验证构建:QGVAPlayer / QGVAPlayerDemo / QGVAPlayerDemoSwift 全部通过。