From f43f4f2b04ee39c79dbc6884eb5048a008d9a7e6 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 4 Sep 2025 16:44:45 +0300 Subject: [PATCH] no plugin ndi commit --- .../Icons/NDIBroadcastActorIcon_x20.png | Bin 7141 -> 0 bytes .../Icons/NDIBroadcastActorIcon_x64.png | Bin 11090 -> 0 bytes .../Editor/Icons/NDIReceiveActorIcon_x20.png | Bin 7478 -> 0 bytes .../Editor/Icons/NDIReceiveActorIcon_x64.png | Bin 10137 -> 0 bytes .../Editor/Icons/NDIReceiverIcon_x20.png | Bin 7046 -> 0 bytes .../Editor/Icons/NDIReceiverIcon_x64.png | Bin 8249 -> 0 bytes .../Editor/Icons/NDISenderIcon_x20.png | Bin 7505 -> 0 bytes .../Editor/Icons/NDISenderIcon_x64.png | Bin 9425 -> 0 bytes .../Editor/Icons/NDISoundWaveIcon_x20.png | Bin 6037 -> 0 bytes .../Editor/Icons/NDISoundWaveIcon_x64.png | Bin 7887 -> 0 bytes .../Editor/Icons/NDIVideoTextureIcon_x20.png | Bin 9148 -> 0 bytes .../Editor/Icons/NDIVideoTextureIcon_x64.png | Bin 13796 -> 0 bytes .../Materials/NDI_UI_SourceMaterial.uasset | Bin 11774 -> 0 bytes .../Materials/NDI_Unlit_SourceMaterial.uasset | Bin 87400 -> 0 bytes ...Plugin for Unreal Engine Documentation.pdf | Bin 1461139 -> 0 bytes Plugins/NDIIO/Documentation/Quick Start.pdf | Bin 53561 -> 0 bytes Plugins/NDIIO/Documentation/Release Notes.pdf | Bin 63088 -> 0 bytes Plugins/NDIIO/NDIIOPlugin.uplugin | 58 - Plugins/NDIIO/Resources/Icon128.png | Bin 3316 -> 0 bytes .../NDIIO/Shaders/Private/NDIIOShaders.usf | 237 --- .../Core/Classes/Actors/NDIBroadcastActor.cpp | 81 - .../Core/Classes/Actors/NDIReceiveActor.cpp | 369 ---- .../Classes/Assets/NDITimecodeProvider.cpp | 101 -- .../Components/NDIBroadcastComponent.cpp | 153 -- .../Classes/Components/NDIFinderComponent.cpp | 104 -- .../Components/NDIPTZControllerComponent.cpp | 471 ----- .../Components/NDIReceiverComponent.cpp | 126 -- .../Components/NDITriCasterExtComponent.cpp | 340 ---- .../NDIViewportCaptureComponent.cpp | 264 --- .../Source/Core/Classes/NDIIOPluginModule.cpp | 305 ---- .../Objects/Libraries/NDIIOLibrary.cpp | 201 --- .../Objects/Media/NDIMediaReceiver.cpp | 1525 ----------------- .../Classes/Objects/Media/NDIMediaSender.cpp | 1368 --------------- .../Objects/Media/NDIMediaSoundWave.cpp | 77 - .../Objects/Media/NDIMediaTexture2D.cpp | 153 -- .../Objects/Media/NDIMediaTextureResource.cpp | 73 - .../Core/Classes/Player/NDIMediaPlayer.cpp | 492 ------ .../Core/Classes/Player/NDIMediaPlayer.h | 75 - .../Classes/Services/NDIConnectionService.cpp | 404 ----- .../Classes/Services/NDIFinderService.cpp | 232 --- .../Structures/NDIBroadcastConfiguration.cpp | 50 - .../Structures/NDIConnectionInformation.cpp | 111 -- .../Structures/NDIReceiverPerformanceData.cpp | 74 - Plugins/NDIIO/Source/Core/NDIIO.Build.cs | 106 -- .../Core/Public/Actors/NDIBroadcastActor.h | 59 - .../Core/Public/Actors/NDIReceiveActor.h | 129 -- .../Core/Public/Assets/NDITimecodeProvider.h | 52 - .../Public/Components/NDIBroadcastComponent.h | 99 -- .../Public/Components/NDIFinderComponent.h | 79 - .../Components/NDIPTZControllerComponent.h | 174 -- .../Public/Components/NDIReceiverComponent.h | 97 -- .../Components/NDITriCasterExtComponent.h | 91 - .../Components/NDIViewportCaptureComponent.h | 154 -- .../Public/Enumerations/NDIAudioChannels.h | 28 - .../Public/Enumerations/NDISourceBandwidth.h | 31 - .../NDIIO/Source/Core/Public/NDIIOPluginAPI.h | 34 - .../Source/Core/Public/NDIIOPluginModule.h | 61 - .../Source/Core/Public/NDIIOPluginSettings.h | 52 - .../NDIBroadcastConfigurationLibrary.h | 52 - .../NDIConnectionInformationLibrary.h | 82 - .../Public/Objects/Libraries/NDIIOLibrary.h | 121 -- .../NDIReceiverPerformanceDataLibrary.h | 70 - .../Public/Objects/Media/NDIMediaReceiver.h | 361 ---- .../Public/Objects/Media/NDIMediaSender.h | 362 ---- .../Public/Objects/Media/NDIMediaSoundWave.h | 42 - .../Public/Objects/Media/NDIMediaTexture2D.h | 49 - .../Objects/Media/NDIMediaTextureResource.h | 54 - .../Public/Services/NDIConnectionService.h | 109 -- .../Core/Public/Services/NDIFinderService.h | 62 - .../Structures/NDIBroadcastConfiguration.h | 61 - .../Structures/NDIConnectionInformation.h | 92 - .../Structures/NDIReceiverPerformanceData.h | 97 -- .../Source/Core/Public/Structures/NDIXml.h | 131 -- .../Factories/NDIMediaReceiverFactory.cpp | 36 - .../Factories/NDIMediaSenderFactory.cpp | 33 - .../Factories/NDIMediaSoundWaveFactory.cpp | 33 - .../Factories/NDIMediaTexture2DFactory.cpp | 40 - .../Editor/Classes/NDIIOEditorModule.cpp | 136 -- .../Editor/Classes/Widgets/NDIWidgets.cpp | 380 ---- .../NDIIO/Source/Editor/NDIIOEditor.Build.cs | 92 - .../Factories/NDIMediaReceiverFactory.h | 30 - .../Public/Factories/NDIMediaSenderFactory.h | 29 - .../Factories/NDIMediaSoundWaveFactory.h | 29 - .../Factories/NDIMediaTexture2DFactory.h | 29 - .../Source/Editor/Public/NDIIOEditorAPI.h | 12 - .../Source/Editor/Public/NDIIOEditorModule.h | 25 - .../Source/Editor/Public/Widgets/NDIWidgets.h | 29 - .../Source/Shaders/NDIIOShaders.build.cs | 38 - .../Source/Shaders/Private/NDIShaders.cpp | 114 -- .../NDIIO/Source/Shaders/Public/NDIShaders.h | 138 -- .../NDI/Includes/Processing.NDI.DynamicLoad.h | 635 ------- .../NDI/Includes/Processing.NDI.Find.h | 79 - .../NDI/Includes/Processing.NDI.FrameSync.h | 172 -- .../Includes/Processing.NDI.Lib.cplusplus.h | 129 -- .../NDI/Includes/Processing.NDI.Lib.h | 165 -- .../NDI/Includes/Processing.NDI.Recv.ex.h | 211 --- .../NDI/Includes/Processing.NDI.Recv.h | 297 ---- .../Includes/Processing.NDI.RecvAdvertiser.h | 79 - .../Includes/Processing.NDI.RecvListener.h | 141 -- .../NDI/Includes/Processing.NDI.Routing.h | 75 - .../NDI/Includes/Processing.NDI.Send.h | 145 -- .../NDI/Includes/Processing.NDI.compat.h | 39 - .../NDI/Includes/Processing.NDI.deprecated.h | 230 --- .../NDI/Includes/Processing.NDI.structs.h | 387 ----- .../NDI/Includes/Processing.NDI.utilities.h | 258 --- .../NDIIO/Source/ThirdParty/NDI/NDI.Build.cs | 45 - 106 files changed, 14745 deletions(-) delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIBroadcastActorIcon_x20.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIBroadcastActorIcon_x64.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIReceiveActorIcon_x20.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIReceiveActorIcon_x64.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIReceiverIcon_x20.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIReceiverIcon_x64.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDISenderIcon_x20.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDISenderIcon_x64.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDISoundWaveIcon_x20.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDISoundWaveIcon_x64.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIVideoTextureIcon_x20.png delete mode 100644 Plugins/NDIIO/Content/Editor/Icons/NDIVideoTextureIcon_x64.png delete mode 100644 Plugins/NDIIO/Content/Materials/NDI_UI_SourceMaterial.uasset delete mode 100644 Plugins/NDIIO/Content/Materials/NDI_Unlit_SourceMaterial.uasset delete mode 100644 Plugins/NDIIO/Documentation/NDI IO Plugin for Unreal Engine Documentation.pdf delete mode 100644 Plugins/NDIIO/Documentation/Quick Start.pdf delete mode 100644 Plugins/NDIIO/Documentation/Release Notes.pdf delete mode 100644 Plugins/NDIIO/NDIIOPlugin.uplugin delete mode 100644 Plugins/NDIIO/Resources/Icon128.png delete mode 100644 Plugins/NDIIO/Shaders/Private/NDIIOShaders.usf delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Actors/NDIBroadcastActor.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Actors/NDIReceiveActor.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Assets/NDITimecodeProvider.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Components/NDIBroadcastComponent.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Components/NDIFinderComponent.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Components/NDIPTZControllerComponent.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Components/NDIReceiverComponent.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Components/NDITriCasterExtComponent.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Components/NDIViewportCaptureComponent.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/NDIIOPluginModule.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Objects/Libraries/NDIIOLibrary.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaReceiver.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSender.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSoundWave.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTexture2D.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTextureResource.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.h delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Services/NDIConnectionService.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Services/NDIFinderService.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Structures/NDIBroadcastConfiguration.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Structures/NDIConnectionInformation.cpp delete mode 100644 Plugins/NDIIO/Source/Core/Classes/Structures/NDIReceiverPerformanceData.cpp delete mode 100644 Plugins/NDIIO/Source/Core/NDIIO.Build.cs delete mode 100644 Plugins/NDIIO/Source/Core/Public/Actors/NDIBroadcastActor.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Actors/NDIReceiveActor.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Assets/NDITimecodeProvider.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Components/NDIBroadcastComponent.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Components/NDIFinderComponent.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Components/NDIPTZControllerComponent.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Components/NDIReceiverComponent.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Components/NDITriCasterExtComponent.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Components/NDIViewportCaptureComponent.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Enumerations/NDIAudioChannels.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Enumerations/NDISourceBandwidth.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/NDIIOPluginAPI.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/NDIIOPluginModule.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/NDIIOPluginSettings.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIBroadcastConfigurationLibrary.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIConnectionInformationLibrary.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIIOLibrary.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIReceiverPerformanceDataLibrary.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaReceiver.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSender.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSoundWave.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTexture2D.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTextureResource.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Services/NDIConnectionService.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Services/NDIFinderService.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Structures/NDIBroadcastConfiguration.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Structures/NDIConnectionInformation.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Structures/NDIReceiverPerformanceData.h delete mode 100644 Plugins/NDIIO/Source/Core/Public/Structures/NDIXml.h delete mode 100644 Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaReceiverFactory.cpp delete mode 100644 Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSenderFactory.cpp delete mode 100644 Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSoundWaveFactory.cpp delete mode 100644 Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaTexture2DFactory.cpp delete mode 100644 Plugins/NDIIO/Source/Editor/Classes/NDIIOEditorModule.cpp delete mode 100644 Plugins/NDIIO/Source/Editor/Classes/Widgets/NDIWidgets.cpp delete mode 100644 Plugins/NDIIO/Source/Editor/NDIIOEditor.Build.cs delete mode 100644 Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaReceiverFactory.h delete mode 100644 Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSenderFactory.h delete mode 100644 Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSoundWaveFactory.h delete mode 100644 Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaTexture2DFactory.h delete mode 100644 Plugins/NDIIO/Source/Editor/Public/NDIIOEditorAPI.h delete mode 100644 Plugins/NDIIO/Source/Editor/Public/NDIIOEditorModule.h delete mode 100644 Plugins/NDIIO/Source/Editor/Public/Widgets/NDIWidgets.h delete mode 100644 Plugins/NDIIO/Source/Shaders/NDIIOShaders.build.cs delete mode 100644 Plugins/NDIIO/Source/Shaders/Private/NDIShaders.cpp delete mode 100644 Plugins/NDIIO/Source/Shaders/Public/NDIShaders.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.DynamicLoad.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Find.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.FrameSync.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.cplusplus.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.ex.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvAdvertiser.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvListener.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Routing.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Send.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.compat.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.deprecated.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.structs.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.utilities.h delete mode 100644 Plugins/NDIIO/Source/ThirdParty/NDI/NDI.Build.cs diff --git a/Plugins/NDIIO/Content/Editor/Icons/NDIBroadcastActorIcon_x20.png b/Plugins/NDIIO/Content/Editor/Icons/NDIBroadcastActorIcon_x20.png deleted file mode 100644 index 37326b545aa0ff692fd2ab998b5216ca53699531..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7141 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 bOhvx~j(mm*B}hBH00000NkvXXu0mjf=!k}O diff --git a/Plugins/NDIIO/Content/Editor/Icons/NDIBroadcastActorIcon_x64.png b/Plugins/NDIIO/Content/Editor/Icons/NDIBroadcastActorIcon_x64.png deleted file mode 100644 index 49b96c7857b02d1e46973c8816148714eb945208..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11090 zcmV-YE3MRtP)000_6dQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+SQwBawI!)g#YI$bcDnX90#kJZlL4q^FWc!?s+!z z#zuccTC>QiOf0c@xCgSI{XhSGp8w)2m-s$0m6}`5FJH06<~zUC_t)3{yx#ZR8|~-U zm;3y5&tHDvc@4aV`(}xsPs8W^uj}*oD+B$-2QK|_L-?M?|D3q=&-?!MzpZEm*WRCB z_1C|1Ry}9m-SwC;L%y53Q#@b8aN)p8!EVcZ7yc!FFZSK|u5W**i|=~pJNTZiIq$-I zTy*Pk-5s~x;&r;o8l&I7@ap~a!QQK(_~vJLg9}mL?)VZ~SfK_Vrr#li_yqsG7H9J| zn{T?x%*%19cMRsZ<)3~(|LTIj^L@^Iv5|A^-hFJvy1bVkoXi;Xlgn_3J0HI#Gw|2< z_t*2ou>lVzGjnBw{T+9Rk=(D?3Kjr?>k_XwzFb-Inzty4%$-<_3%KCTE+m)TTf8sM z#o#Lr>a5&{=m#EfDfz`BeGDPvn@SupH}@20*ZSn|`=ko~Ng;=VZ(8U$E5=0plvs(O zo?5!?FFVD$mZ}VhD@+>mRH_N^KaTyoJ?R+}!+jqY__qYA_VC#S7H~)7$ z_sDhs2cGlK4uAOVFTA#dgws5BvrsmD1KD?c=)QJ8)&rmbSo#AP{10BA|8#)=4+E81 z+&=S!I)Q*a-+`h34ytj32@od**Of)6ILVI0?~79*tQJ?&tkg`kpHVw}=1$Z;x>D@*$r-=1Ywk zF|Se2I=fKYoZZpMl5tuZW#_pctwOgHX2|E=#hp-gBiu^!Yqpk2nMF{yz8q^`YgdNL zQ=?K)8JD_A92I{`W5GGH_@KTk`IJwat*xnyvF2GZ?)QQWdGOe^XD7? z&a0rjQ+7u46v+2r>cKX1V3$3TYKc54IIzvlABneW$>yszLYpP`Rq7b4xDCl+Swlq`0pT zUpLbR7V>Fsr?XE1RLpXubLq47eRi&=}|53Pzr|k+=6eKt*RgET@&_+DvKV z;I%QxP4oWl^lzt#n8(1wfe^;UM7k#&2c+XHPYCx#l^i&t9F3sMtF_m! zvBRn3MDS@I*H6u1&vvqt$)iQdoM!%pTh__GZrvG{xQ^E+Aw6S zVGmNzwl?~mXQsx+0LWb9o<4VhCMA=%FlgHeBgrYkO2ZjEi@#G_I4nK8uO2mOVT-mU zKjv6$$qh?&fRV5yCeny_2Xp#@MR8{XHckzh{nYc6um#$Rj*#oz1X*Ovl*kRtP9+f4 z6y+!4Vjox=x=IFR{k*e5_j@`QhxnmoIUuMA6R>9) zr)v^YFpNDO`Cyi>$btVBLiIv8wB+i_!;)K}*rb99fY-Bt*aAPH zNcgqn?KQw)ei;Ejq}83pwN%&g${69Y+)qq#HOsi}IRGrhbO%9B!;m52mL29IPGL_< za;$d!#_~T|{*ZN}u`9&Ya1@z9N_$}#QB)f4@7go`3HIk2D3yp86yo`n&(xAl(xy7L z$78Kn(z0D;F-aOkDna4Fk5?{Y8L+%zGZCQ_38N?Thr?pfShp7m#__9a$pQHG$~#J)9J@|=uvY>L83H;{ z_^gpUYnC#>OKR*ChyYLna|h5PB0T1%x}s%3Nv>}Mu)u!@5vpCyss3ncXSFAg)l=xz zM4g}#OW{EjQIw8ll?1s#4-ow@Q-)Fs25AjF{CkH`Xkf`BR^OOTYfWj6D2jU*Yc}P25l0zCg?bqwz3JBC{;Hcvs>m z>;r420DSU#-N-ef(d2g+g_cMlpuDN8`ruHY@ayuB=N|WX9~Pe(_ybSM*M+b;&cB2) z6lTBWQ*^7#Q9x9<@d#i0RN5ZnGxg!kC`D<>sr`J?Hr=!xRE3Wl^wXIaogf6BH@Fja z&voH_rXp6nCir5X&0xkHq7(|+-0&SJ1WddN*eQPHWPjGu+Z-Mm(tuhKfx`-4${73qsoDwZ%7)Z+$8=}kEnsROv{MirTE}k?mV#A)u zCg&1@3JqWD2rW z(s%?5xm+kOS}f~VCxJVFY(ZK<1K>&E8v29lsfh}dEOUq?;e9B{1JW}hcN@7QnWvyb z!l-DPrRQTeG8p4cd3u22Ta!*j~jJu*%C15DoNG2!BHfOIZN;r2YTdyE` zYZaiuzYeZ`C{BAuW&1NT0=k-nGSkD ziCjRT8n#D{5vDgZFQ?8Y<+oIpibeX*PpIFO0xgXP(rsh@kP|K<3W47)2o&uXwpcL- zO>F>XxRnK{qSTcyM&)4KEZ~7z8a5EAi0X1aS)bvILp~y7>WBX6MzPxSc^|A5wj6^K zOZ1}!Ut1&N#iUnB2aq|iS39y+*9&U$(M%8 zrVVaIr_yatdP@VM=_+`%4L-4K5Una-L>cMFNT9TGi8c194loP6Rp&3n=T1ESCx(!^1ECiVr1tNk9B{36%hiAcrcu@b!VGVp&*Wdykjk zv{WD?;GS3k7=iyqWV4bX3pGO**osk1{Yk3ywB9MkLMW@!y=vJ86F%||d|x9y!@3(L zN8rmZVY4x`m?JeXhfCON)LjGyBAZ+r@r!4ZnlM4(Dhg7C8Ru4vs!oG6gA>^Hoidf7 zcvxh(up}d`@?j`L3eF`PvbN{9&)O^U%D98FO&ZTiEK%cdNPT@ZIsKz}?BplVRVp>; zIfN;NHBOdUm6#VstrV#D0sjXLDI@BHz=Zk~fiSm!lH=wEqDFm?$>-{+0nWlu%A7m5 z_W=EzTwJMaA3exq&Wg-O{bMo6z@s)tQvPA4E5VCVK0{;c*o;zDdlO`P)INzGkj%Y7 z9Vaqd{HKSl0x1;;mBi=br^xq0j5EC0j=Gm$3jbV%pC#}&h>j*QsN}|lv5_i>gn3I} zA0**B)a7mHzNB7fCc7()O;H>yij@T?7Hx8ULER(F%I1#Ws<||ik2#oq4Cnx(8N*b+ zZK>GLuqlPXXLW$X{@!KMShlq%4BKO*ZlEZ)C5CET2rdX;r zi#b};D2v!3?9%H&VB8OWxogp3ltSnOxP2%SvlZ!V-=zgmU6qYh zp$qh}SZ_xmqVC>VK^?8~y1Be+Gzm9AZ|fBTOXvrHsmUa`wu)r4o>r|Mr&|0$FlP1K z5kwE$=$B}z%?^tp>_8%jFNy)C7w79&70){hm452gYf%hWkW^|!rPT6Jm26kmsZ~sD zKfEJ!>-L=rl+?F@U=AU{dRuQ*iGqQ|@^V&FyO5G?gwLAWOhkO7bI z=}{Ik4|b5y(hQp!wwSsQcs=Td`xvhxpQbW%e4uyy;j3?g-9huQ`WGH)-PLi}XV(HVO* z?r%oD$2%--#q2)=CCVRpOd4*;6#yG{d!Sx3f}s~#Vw^hEY5g89^-&w#e0%GHS!tRu zAelfXMx@43Bg7G;4_;2OkMNX{(VI(A66U!xW%7?@m@j7z_$D`_9flWyFx z-k^R7dVWnfo;SY0h8Wloo@Ig>TV430t(=*3P^so?R5$0*Rvm%g7THip^3dTjki7~i zXa(b7d|A!-$7jP6A`;aX#H;f*`kxO$`Jzt+VoMcM@4uT(cC_TwVOm2@9292v1VmrR zWqaBj3ag%a|pqm0cFKx2)zxHJ#Pjrw&rfhz+@U>1Ydn#185X z!0v=`ss$v508J2>&o2~YgKq&(kgxbd2W=EPq#RWXcdPBgDg+vA9MZvupQikEb-he( zV*VMXogV}-Ov(;yEUO<}dIJi8+TqPpRdQx+B2l~TL5TVQ6k zh5`^LMuimpDOX*3Ei4=K6oMm+XDA(!L8+{Y*p7b&EVw1f9P)#Jt%MG8f;d{I-lIhr z$JfEBC#>IgNx_m>xJ)G3fo6kobZKS(+`w;$dX-1tWhkk!(%V9~GtClZq zu9hM8f37! zCbZj&L0-K&(25qhy{h?{)V6^Lyx!~H<@@x{632!=-bm^?49X}p>vp4ins;S*NM+Hv zk24)*TlzW!Pi`xa@fr-{Tt|NuZk<_%kHqf&+%7x8(w9gABwkPbP^r-XvW^bNh$B}% z?#*b%H}6}xJ51)NNA~d%WpW4+)w9>=S$!&kR}B4jm>zkf1hMJxf?{t|V$3L)`1flP zK`qWESxo{CliDJ`Sx^g+3+dTM&2V^vWmd6lr-&2z7TJQeS;r^3(Q^rAnTa%y#yNA2 zrPkAsjYMLKJyrk?=GG}%C0NsEDqgBJruK~)cX_7u0j_iu0#_BSM>$LwIDm>`5OwOS zHX?M*tDS=|V@w#zOt+q7)f3iQdKcBD{FO{enGccDspVUzHAe?hGIh8D;f5+3-8yh8 zCRPM`(~9ypl(^iZ&a#!o^LF3#l#~-cN6V_6ccRO{=~Pcdx{;MZwN|hOk9g@Z9;jy| z9z@l6A;;9(3$oQrRzFW-u(m4j=m}|yQ7KtT8vw8JRL8UQs)t0-B7Z98tV9L&-91Mp z3UQaZW)QC>N~-WR8$#yx<)Rqv`Ms*GOy=WeR!4lr*3pRUvjjcy;VmNP&jhLUI*x#B zx07A>_cJNga-)M8b$$PNH(9oZg401XES zM_`IB*XN;Wtgbm}Y|KjDBwCwA4I zKk>Iv4OMi{`sVGdMes-$2Prk=qE2T3_pC=0tTPuWnW-8;A=B6=Wn-}h$}P(!xY>;< z;r4Jf+1mF<(y4-#{C)=ZK?AF@e$5Ob*3a4@i=YDgmjneyxHRhlwnec?>T!FB?2c?c zYxAP9pf*HD;C>rKW@rYU=z?e{sg#4_!|L0BC(d-L<~|{`81BYtTSN`PE_BZ zzfX0r*O^e@bsG$S!@163a6Thq`1w;2Or2zw=Bb;58^o2M$G13)pBI)YCS^5O==PJ( z!U&9)cs<0WmIt;_$e~5reO{)X4<23`qht9$*GGWbC=EJ3W+gn6%DPToz@q?hcc7pi zF|*TeJv22)DzqI_2fb)o0%-EysKNjO{upH$83= z{!z~%A&|4p9(MUb0EeE$pgyA$)wL{ov~y<*=5veVM6oxV$d4GQ{pA@F5*A?G?F zL*fa;2;o$`Bl6Zeya~N1N)_ELj7u%bZ;A#&w&p1E-ZNn*OJWcfG&MIoYK`@k(`xKXSpne^C@L={q^MU|5vJWY-y&~t5P-Cn6Jg@vH* zF2U)~tx~tJ49X2O(W~nS02Ysc^`NXhadeFfQ*7UmpSq62g^_zbaAGKRs+Zm7`28eJ z44DFUPaUIe_1*=5IozOwWt}F8c*U9tNO#d912H{n>^pR1Xb9SI*90D6@$1M}4Y1Ej zqRzKQbB}B7=Mz22nv~;fXuv(#V$iO|)=_?~1H~9VPubx$UFNOC68_SyK8uVDBS2ie z&v>u9quhmZ9PqDi)oDd5`lN;tv`}yUz_t2TQHbHGAMYijfkZe7DrrM z3I=7h{{V6OTuDt+Y~-*#fvi@l9iSzLk<>3zg>v8+Xo2ydTY6~5YM^DJO`5Cu1Cp{I zir&DiZ;>HGQ+tA%u&=Xp5c1tdE1&Z@02kuLWZH=h)ZNx&jOtbuwezRW?otiJ#rcjC zvQG{5yV`GwQjtbL_{rY^f?PlMNeG+my~OT&NJ{o+$a=>---n3SSpNFG#RmhV^YMc? zKvf${&u%j9_jXu-({|2{y8QDhCI=eGwVx9!T@%hm0<@-MUeW%WXd&vM2kLHnm&-5c za+ywT!2e4l)NxxBx6tb#U87pX-&Z~Q&1k^ic{JSpx{zU>lgbE zLyfZXztCwD$r({E9smFU32;bRa{vGf6951U69E94oEQKA00(qQO+^Re3l$9{B#9uy z6aWAaq)9|URA}DqSzC`KS9Si@+I!cjbLrE!nV#|V+%gwqAjT#HB4WozA{s6eGF%cA z2oFX{q~s+eKLB2$JO%jyp29VYt5kJrU)HzoYZc-4H{n-#Fn-0yO8{O1@DhNR0K5d?MGgIP z-*LgHejKR;!gHiBgJ)Y5)L?F-ekiJDt_#`DZpZA9!Zl{hXws zaPZWN+~Vb3dG+et;(Wi!_?r3%Al@*uQfj`No}ANz!T7qBUp#uBmTwy*WY%07OJYA_m30FXd}nqn$v% z7&qFN;z$o#>qu@SE`;E{_uhx;5no9)05Eg6)4u(tF46y+5x;VE-{1WCdqo5SZS+6? z#~1$TtKX^L9#sRQ=OgL!^YdrVo{bLYkw+eR^2sMf?zY;0V* zbm`gaU;p;@lp?VmeegYRz3sMF0f5N8pZv^&k6-#(03?c+=DPLc``_`FwT-J^dg8|b zdUn|EfQTZ?l~V0?yF8xRdoLobRx9dNNg)T@8vHJ^Uq!B0H+zxAuu zc&pz|>Z4Pme?}E5!W3f?&G-EN8@nw7V8LD|B3}*XTs^H;r1}xNsGkaa^Zh^l!?S;R z_6{_*sC^fJL0H9<^ z1pmf6UibRdzKBH9IIb@JqyGiQpT$g5FnJb);f2%v%#thGf^M9g`f*Wecy7e4yYkJk8)uO0-E z1mE;pgTj^yQmRI!F9Z;ANpwwjeFdbFoQM$d=kNdT8qc}6znz(jqR6tWD2k>L6Hz3N z8vEGBsC6l7nla{wPdyc99zL*trQeh3;B6xxX^Ocu3~m6Tse4eKn7!HTEqw9BCGv3<@z}z4Yr9c`gR7r<;^3Uv8*ODco zPTGRjfA_hE)~{TRl$|(n;@$6l_i#8IjmL3XbpMgoi4BNEawE&f7v#^do|FqoU0t2wnb&JiXGNdRdBZIC2L zS}+Mrg7}LuFedVz!3@RiL@g#}Dbf9wZY8{!YRDua&b5J+9 zH+RoH_cYyT2w^Z7Y;SKj!SC$sj7FnKal8(P!{Kl^7!0y3TV7tSWwpM!*)ghV06k4h zsaZ;NKhcTN;7S@G5bLFG8bUAx7mzUawe*}}PZYo+K_n0xh%j?%)N;2K6g%K^4}J60 ziC;@w2}DkwJbCQcv5Ctd+S%FBTF*d=dNLC$ilR7h`1rwt2kQv9v%T$tuT==Z%a=N~ zD69?Fa{s(_U8NO~BhpMPqEEC{x7{{MW!454)(6G2?jkq-QWu%AFeuZ&<->RV_HV7Ou14&a*RMRkJ?=E9 z_afTbwL!6I{c79XG}kp+GcdMxdt}!$ry+Rw+3N}9)}`*jUiz|?elJm1hxz*U=$n@} z|HKE;r5AGE=i?077|vq6^RZ8T`p(zfdi3yNB06&9$V~lJ7cOy($Kyz1Gs#2R`{Unx z^E=O;Vdgmbfvxj&b>VRUC>kCN_}8bd5ajlS_A73hf5oB2R~%a0 z92HMr*?DMv+lMXvhEpqX>f;;R_dm1gLzqMjf>Z}nbYxmVCt!xw03Q6xLtlINYj@rC zJLMc^na-=rrpxN;efQm`lnNpcF~%${E%kam*9eqZVek9*FCx|sO+f{T*Kb`Lee2rj zjstVQd2HWeH(Bf~-*VH!H!fZ&P3`$X_MbnxhMC$!;DfKNQ!yiHK^vqUbm!4qz;OF- zKm3u?H=n*KT4Ai*cZs6Y=}fG=k#bKIEX)7#vtM}NsrAy}NKI)PCRBZOeXuf@9$o4Q zq+`@wrw^0>a_1}b60>-SK*ZGvDUq;(cVI@^M%ux`GHj9C{IlmD`m;ZJM@=y^lTL~D z?y1byOd^l{@ad2I+ZVsTIYf=#B(YZ@BG!9Mr$(KY5rDveP+gI&E_BZvwfA4zD!oo{ z2miQZ_Pm_9O++4j;)jVb zQk94z61AgDF7kZi+Sb2(`RfpO&L~`HnavSB<(WXPVxmnq?hQs56vH2?in>D&yAf-dl6MN zb{0Fy;?d<-9bS5Vdvs-MaN(Kt>m!G3gy9Zs2Jc`}Bng-ib2SNwRvY=}J(!TRAtp?3pj^t3>^_}Ln)*k=pp77Km=o;__fQOl}@tMOP4yyjP6|@+wZPj zzi@R#=I%du!@;@z{q}OV#kFLr8ymuKI2vqk4~N62*RMS_bT$BahHQ*%fbj@+TvmWY z&?(wobm!nbMgxeT+eLQ)CMgBw9bAF&5P61t1XeH!Obc3rX{D3geB@wnuHT)XUs+n{ zwGzeTytlTlmMHUXZFBVG=IGI_Ja!!jcfK>e>l%LTa(A(l%(aubRBI*(DWwvl>ay4e zu|YCxZQ-0Pyt6isxmo7DA7%MC@Bm7@$9RWqURSr>w3Vi5nx;mpBuUz7TWO`VW|Q=L z-CnobGMb3I4~4S~#BK!u>)iIZ*c|1X!~D_fNr^yJd?Nri&!_s%gZ*cAic8}{g4CKLkjtau@~8j}fz2`-HEJPI zhuUT?(QTvJMzi7|fq{0S+ku$KDE1+EADD<(yo6Yz`4FrZA3_ir7hXhs5a+#fVPt(4 z@Z*u)w00Fpmhp0=lN|0PbM3UBYQ>}vE%sKI@Oof7vzhgStXLnr%i|)1*?!WF z^*h#I8Wulw<8_vVpFCuG5uv5jN=qN=nzqs1mT9+?B91wJfY>0qkibF&bXum@GW&b! z2?9Va_}ocWxDZ0_!@&CO%&q0N2vT8d92H~V9)kWUfDxFvuhmkbdWu_``Yn^Drk5s~ z2|n0T(GY+jl~iLhT%fHNP++O5%d!d=0<{cvk~B3+F#!^SNDx*W1ex>Jg~Em0`l!rG z5fcX=L_+Z51w=>;iy#QZ2T}wfVj?2Vq^kdxQK``&3Lz9WxDd2rtr$e!hdhXnDHI@( zGMtE5FT=uRh137@k;D7ot1e{_)Qy4wA&`JGCqQsPtalIuB2NMlAEXH4g7-l(8^+c<=eKkB zT;>LqZ`JGLVtrgRebby#D=pnM$|y2McZ_K#+9+Zo2q=E75b;&Zk_ZF}o)v_E5X5;Q zBIShw7;qtSZc-sgqkaoPnBYXb4`b`C4=z{$&iO&^whFhFTUVy{dnl)#)mo9A!tE4( zra2kg0jc7Yxu@AMwG=5r!bC(&(6Mtw6r#ihikX=J1RuNvLRpIi5f{V;u|Y;ovJgf- z6hWL1nEH?)H*f<}7N}>m!Zl!K9(k^;tj*b(WThp$s zCPy-}KHN)(&Tm;Cf=t@N1c*Rr!u}ceEH`j3Gc21BL;&r*syRon7oKt&Gj}!jwNi>( zy3}gjZ@16Kru5xF%iHO1_D^Igt(6gAOagiYBMciKmc8YKxGRy zCU@}+j#UT=h=i;DqJT7$F6%vMS_wDG@Ob6Mr=8g3iy_8~OlhJ(L;@jJe=%5yE29;F zP$fAcRBE|EsBHRb7vgsmq0;romU1ZD5C9Pqe1wEqC5<~r%w-+AOTWtfOFgWVN2*U@ zRmVf5%EO4HVmAV$@fT!zBaxspFQt4d{-f%gmf;K@M1(+xT}v&B z%9yB9Xo#TNTFS$NP?@aOJQFEZ-vx0#h=>=lA?T|+BM`uBl+px61R}-66#u1a2bZTb zYrR%UTzfp9N8URg4z2;+7*C2?pgS^nb zxIxgI_c6ai+=b=P;>NVXUt9Q?Y28I@+yvH_p9x6E;I3 z0T7PLPdL2r89ZK?v+iOmTA7p4N^07*qoM6N<$f-&Ge?EnA( diff --git a/Plugins/NDIIO/Content/Editor/Icons/NDIReceiveActorIcon_x20.png b/Plugins/NDIIO/Content/Editor/Icons/NDIReceiveActorIcon_x20.png deleted file mode 100644 index 2120da76858bbc62afb98eb4838a35d5216cfae4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7478 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 Hu0mjfz(lfz diff --git a/Plugins/NDIIO/Content/Editor/Icons/NDIReceiverIcon_x20.png b/Plugins/NDIIO/Content/Editor/Icons/NDIReceiverIcon_x20.png deleted file mode 100644 index a31be275ef65bdb8de2b5562c307c578b88b0e00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7046 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 diff --git a/Plugins/NDIIO/Content/Editor/Icons/NDISenderIcon_x20.png b/Plugins/NDIIO/Content/Editor/Icons/NDISenderIcon_x20.png deleted file mode 100644 index 06aec9760a52df3263e29d3b62ac4e23fe5f7140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7505 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 diff --git a/Plugins/NDIIO/Content/Editor/Icons/NDISoundWaveIcon_x20.png b/Plugins/NDIIO/Content/Editor/Icons/NDISoundWaveIcon_x20.png deleted file mode 100644 index af81c39eadf9529af0ab8c321dfddb060c33a1b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6037 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 P00000NkvXXu0mjfhIfqs diff --git a/Plugins/NDIIO/Content/Editor/Icons/NDISoundWaveIcon_x64.png b/Plugins/NDIIO/Content/Editor/Icons/NDISoundWaveIcon_x64.png deleted file mode 100644 index 40864ec1104fe0794ca63c5ce10be23768b8c16e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7887 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 t0h_r8poj2q46) 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 diff --git a/Plugins/NDIIO/Content/Materials/NDI_Unlit_SourceMaterial.uasset b/Plugins/NDIIO/Content/Materials/NDI_Unlit_SourceMaterial.uasset deleted file mode 100644 index 13d651302a5bdeb01b50a311cf17cbffb26561ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87400 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 X9`MOvU}#Cp@Gc-FQ)GgleKLL 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%0AMOOhSGF4fZZ&sW8?^`K{WnE#}xQaU}DP1u+!X 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

M7pqO1bX9WQqn-=SgX0)Dttgg=AitTYzG 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%0AvKInFns@Ib8-9kNIU6+Mj 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

0{>OiIAqEt z%`skEjy8K&r3YoP(1*=7YuC>uGl#OddA7BtxlXtjB?{j6GOd+G;#4lT6QlG#eLTc*kUp{E&?;6Cw=t`$ zs27_2{?UAy1woy~4+zE*6r>MA&3?3}I@>+SVpSrS2lt-LbwA>Mun{>j2{*TRE(y6@$@LCDnsmQxysRiEBCWn1Oe$Z+F4eB4x`QAoN`&3|%m=WkoU`w=)< zA{E)7O{Ncx%iKsyv%BStR1diyjYE`qSfP)Mq$50d>D2x1P+uIVF&usolTTxNfp9sj z>nN{xso#1eOE6;g0td-5nGc@BX7pBbFlU^K9QBwtt zg(2Ncy1df8Hlpla`u-E``ibZler3l`Vny;|{b>G7vW!G2-G`#`Y(VO`F7y@KKQI5x z#9I6o$YVD?#zA#J+Ze7YMdj2XC(1)>buYQ`uhsLQJcF9T(7ug)0!&9rm9BquE$60VN+@&VgK}Cw;8Qf`~GZ6G%>Ol%J6fL9N;}4Z=A|zd}_<_lZL-rMN zxO6UzpYl&{cJb4Xtu$r$&s_HSSw=vrn|D d@(BVc?Em0Gr+orPtCj+SD%u6vMio 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

  • 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ΠS zD3PEe4q9VQ3=nR zw=K6}5~$O(#v{PTBVI>squ=))DJsd>qjt{C=_*uJ;Y*mgypgv0IIejYS`(aK*$de_h z28&AD3r7Gc$mU0dt-PEaJ;1%YU_UD#PMg(wpC`H48M*lL{F`qWL8gUds%>eQerJ

    #2`Kj~F*f=T2!n(b= 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 Won5b&4v>z?D~Nsjw%mPr?EeqgFH0Bz diff --git a/Plugins/NDIIO/Documentation/Release Notes.pdf b/Plugins/NDIIO/Documentation/Release Notes.pdf deleted file mode 100644 index da59f3f27db314fcf751e47a843bb116c6d65a01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63088 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 diff --git a/Plugins/NDIIO/NDIIOPlugin.uplugin b/Plugins/NDIIO/NDIIOPlugin.uplugin deleted file mode 100644 index bc7fe56..0000000 --- a/Plugins/NDIIO/NDIIOPlugin.uplugin +++ /dev/null @@ -1,58 +0,0 @@ -{ - "FileVersion": 3, - "Version": 11, - "VersionName": "3.8", - "FriendlyName": "NDI IO Plugin", - "Description": "Exposes Core NDI Support for integration into Unreal Engine Applications", - "Category": "Virtual Production", - "CreatedBy": "Vizrt NDI AB", - "CreatedByURL": "https://www.ndi.video", - "DocsURL": "", - "MarketplaceURL": "", - "SupportURL": "", - "EngineVersion": "5.5.0", - "CanContainContent": true, - "Installed": true, - "Modules": [ - { - "Name": "NDIIO", - "Type": "Runtime", - "LoadingPhase": "Default", - "PlatformAllowList": [ - "Win64", - "Linux", - "LinuxArm64" - ] - }, - { - "Name": "NDIIOEditor", - "Type": "Editor", - "LoadingPhase": "PostEngineInit", - "PlatformAllowList": [ - "Win64", - "Linux", - "LinuxArm64" - ] - }, - { - "Name": "NDIIOShaders", - "Type": "Runtime", - "LoadingPhase": "PostConfigInit", - "PlatformAllowList": [ - "Win64", - "Linux", - "LinuxArm64" - ] - } - ], - "Plugins": [ - { - "Name": "MediaIOFramework", - "Enabled": true - }, - { - "Name": "MediaFrameworkUtilities", - "Enabled": true - } - ] -} \ No newline at end of file diff --git a/Plugins/NDIIO/Resources/Icon128.png b/Plugins/NDIIO/Resources/Icon128.png deleted file mode 100644 index 44f0d3e0ba361d4fe76503833ab845516fe82e18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3316 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 F{{S}cL2Lj3 diff --git a/Plugins/NDIIO/Shaders/Private/NDIIOShaders.usf b/Plugins/NDIIO/Shaders/Private/NDIIOShaders.usf deleted file mode 100644 index 2454378..0000000 --- a/Plugins/NDIIO/Shaders/Private/NDIIOShaders.usf +++ /dev/null @@ -1,237 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include "/Engine/Public/Platform.ush" -#include "/Engine/Generated/GeneratedUniformBuffers.ush" -#include "/Engine/Private/GammaCorrectionCommon.ush" - - -// Matches FNDIIOShaderPS::EColorCorrection enum -#define COLOR_CORRECTION_None 0 -#define COLOR_CORRECTION_sRGBToLinear 1 -#define COLOR_CORRECTION_LinearTosRGB 2 - - -void NDIIOMainVS( - in float4 InPosition : ATTRIBUTE0, - in float2 InUV : ATTRIBUTE1, - out float4 OutPosition : SV_POSITION, - out float2 OutUV : TEXCOORD0) -{ - OutPosition = InPosition; - OutUV = InUV; -} - - - -// Shader from 8 bits RGBA to 8 bits UYVY -void NDIIOBGRAtoUYVYPS( - float4 InPosition : SV_POSITION, - float2 InUV : TEXCOORD0, - out float4 OutColor : SV_Target0) -{ - float3x3 RGBToYCbCrMat = - { - 0.18300, 0.61398, 0.06201, - -0.10101, -0.33899, 0.43900, - 0.43902, -0.39900, -0.04001 - }; - float3 RGBToYCbCrVec = { 0.06302, 0.50198, 0.50203 }; - - float2 UV = NDIIOShaderUB.UVOffset + InUV * NDIIOShaderUB.UVScale; - float2 UVdelta = NDIIOShaderUB.UVScale * float2(2.0f/NDIIOShaderUB.OutputWidth, 1.0f/NDIIOShaderUB.OutputHeight); - float2 UV0 = UV + float2(-1.0f/4.0f, 0.0f) * UVdelta; - float2 UV1 = UV + float2( 1.0f/4.0f, 0.0f) * UVdelta; - - float3 YUV0 = RGBToYCbCrVec; - float3 YUV1 = RGBToYCbCrVec; - - if(all(UV0 >= float2(0,0)) && all(UV0 < float2(1,1))) - { - float4 RGBA0 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV0); - float3 RGB0 = (NDIIOShaderUB.ColorCorrection == COLOR_CORRECTION_LinearTosRGB) ? LinearToSrgb(RGBA0.xyz) : RGBA0.xyz; - YUV0 = mul(RGBToYCbCrMat, RGB0) + RGBToYCbCrVec; - } - if(all(UV1 >= float2(0,0)) && all(UV1 < float2(1,1))) - { - float4 RGBA1 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV1); - float3 RGB1 = (NDIIOShaderUB.ColorCorrection == COLOR_CORRECTION_LinearTosRGB) ? LinearToSrgb(RGBA1.xyz) : RGBA1.xyz; - YUV1 = mul(RGBToYCbCrMat, RGB1) + RGBToYCbCrVec; - } - - OutColor.xz = (YUV0.zy + YUV1.zy) / 2.f; - OutColor.y = YUV0.x; - OutColor.w = YUV1.x; -} - - -// Shader from 8 bits RGBA to 8 bits Alpha suitable for UYVA; even-numbered lines -void NDIIOBGRAtoAlphaEvenPS( - float4 InPosition : SV_POSITION, - float2 InUV : TEXCOORD0, - out float4 OutColor : SV_Target0) -{ - float2 UV = NDIIOShaderUB.UVOffset + InUV * NDIIOShaderUB.UVScale; - float2 UVdelta = NDIIOShaderUB.UVScale * float2(4.0f/NDIIOShaderUB.OutputWidth, 2.0f/NDIIOShaderUB.OutputHeight); - float2 UV0 = UV + float2(-3.0f/8.0f, -1.0f/4.0f) * UVdelta; - float2 UV1 = UV + float2(-1.0f/8.0f, -1.0f/4.0f) * UVdelta; - float2 UV2 = UV + float2( 1.0f/8.0f, -1.0f/4.0f) * UVdelta; - float2 UV3 = UV + float2( 3.0f/8.0f, -1.0f/4.0f) * UVdelta; - - float A0 = 0.0f; - float A1 = 0.0f; - float A2 = 0.0f; - float A3 = 0.0f; - - if(all(UV0 >= float2(0,0)) && all(UV0 < float2(1,1))) - { - float4 RGBA0 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV0); - A0 = RGBA0.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - if(all(UV1 >= float2(0,0)) && all(UV1 < float2(1,1))) - { - float4 RGBA1 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV1); - A1 = RGBA1.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - if(all(UV2 >= float2(0,0)) && all(UV2 < float2(1,1))) - { - float4 RGBA2 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV2); - A2 = RGBA2.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - if(all(UV3 >= float2(0,0)) && all(UV3 < float2(1,1))) - { - float4 RGBA3 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV3); - A3 = RGBA3.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - - OutColor.xyzw = float4(A2, A1, A0, A3); -} - - -// Shader from 8 bits RGBA to 8 bits Alpha suitable for UYVA; odd-numbered lines -void NDIIOBGRAtoAlphaOddPS( - float4 InPosition : SV_POSITION, - float2 InUV : TEXCOORD0, - out float4 OutColor : SV_Target0) -{ - float2 UV = NDIIOShaderUB.UVOffset + InUV * NDIIOShaderUB.UVScale; - float2 UVdelta = NDIIOShaderUB.UVScale * float2(4.0f/NDIIOShaderUB.OutputWidth, 2.0f/NDIIOShaderUB.OutputHeight); - float2 UV0 = UV + float2(-3.0f/8.0f, 1.0f/4.0f) * UVdelta; - float2 UV1 = UV + float2(-1.0f/8.0f, 1.0f/4.0f) * UVdelta; - float2 UV2 = UV + float2( 1.0f/8.0f, 1.0f/4.0f) * UVdelta; - float2 UV3 = UV + float2( 3.0f/8.0f, 1.0f/4.0f) * UVdelta; - - float A0 = 0.0f; - float A1 = 0.0f; - float A2 = 0.0f; - float A3 = 0.0f; - - if(all(UV0 >= float2(0,0)) && all(UV0 < float2(1,1))) - { - float4 RGBA0 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV0); - A0 = RGBA0.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - if(all(UV1 >= float2(0,0)) && all(UV1 < float2(1,1))) - { - float4 RGBA1 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV1); - A1 = RGBA1.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - if(all(UV2 >= float2(0,0)) && all(UV2 < float2(1,1))) - { - float4 RGBA2 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV2); - A2 = RGBA2.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - if(all(UV3 >= float2(0,0)) && all(UV3 < float2(1,1))) - { - float4 RGBA3 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, UV3); - A3 = RGBA3.w * NDIIOShaderUB.AlphaScale + NDIIOShaderUB.AlphaOffset; - } - - OutColor.xyzw = float4(A2, A1, A0, A3); -} - - -// Shader from 8 bits UYVY to 8 bits RGBA (alpha set to 1) -void NDIIOUYVYtoBGRAPS( - float4 InPosition : SV_POSITION, - float2 InUV : TEXCOORD0, - out float4 OutColor : SV_Target0) -{ - float3x3 YCbCrToRGBMat = - { - 1.16414, -0.0011, 1.7923, - 1.16390, -0.2131, -0.5342, - 1.16660, 2.1131, -0.0001 - }; - float3 YCbCrToRGBVec = { -0.9726, 0.3018, -1.1342 }; - - if(all(InUV >= float2(0,0)) && all(InUV < float2(1,1)) && all(InUV >= float2(0,0)) && all(InUV < float2(1,1))) - { - float4 UYVY = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerP, InUV); - - float PosX = 2.0f * InUV.x * NDIIOShaderUB.InputWidth; - float4 YUVA; - - float FracX = floor(PosX) % 2.0f; - YUVA.x = (1 - FracX) * UYVY.y + FracX * UYVY.w; - YUVA.yz = UYVY.zx; - YUVA.w = 1; - - OutColor.xyz = mul(YCbCrToRGBMat, YUVA.xyz) + YCbCrToRGBVec; - if(NDIIOShaderUB.ColorCorrection == COLOR_CORRECTION_sRGBToLinear) - OutColor.xyz = sRGBToLinear(OutColor.xyz); - OutColor.w = YUVA.w; - } - else - { - OutColor.xyz = YCbCrToRGBVec; - if(NDIIOShaderUB.ColorCorrection == COLOR_CORRECTION_sRGBToLinear) - OutColor.xyz = sRGBToLinear(OutColor.xyz); - OutColor.w = 1; - } -} - -// Shader from 8 bits UYVA to 8 bits RGBA -void NDIIOUYVAtoBGRAPS( - float4 InPosition : SV_POSITION, - float2 InUV : TEXCOORD0, - out float4 OutColor : SV_Target0) -{ - float3x3 YCbCrToRGBMat = - { - 1.16414, -0.0011, 1.7923, - 1.16390, -0.2131, -0.5342, - 1.16660, 2.1131, -0.0001 - }; - float3 YCbCrToRGBVec = { -0.9726, 0.3018, -1.1342 }; - - if(all(InUV >= float2(0,0)) && all(InUV < float2(1,1)) && all(InUV >= float2(0,0)) && all(InUV < float2(1,1))) - { - float4 UYVY = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerP, InUV); - float Alpha = NDIIOShaderUB.InputAlphaTarget.Sample(NDIIOShaderUB.SamplerP, InUV).w; - - float PosX = 2.0f * InUV.x * NDIIOShaderUB.InputWidth; - float4 YUVA; - - float FracX = floor(PosX) % 2.0f; - YUVA.x = (1 - FracX) * UYVY.y + FracX * UYVY.w; - YUVA.yz = UYVY.zx; - YUVA.w = Alpha; - - OutColor.xyz = mul(YCbCrToRGBMat, YUVA.xyz) + YCbCrToRGBVec; - if(NDIIOShaderUB.ColorCorrection == COLOR_CORRECTION_sRGBToLinear) - OutColor.xyz = sRGBToLinear(OutColor.xyz); - OutColor.w = YUVA.w; - } - else - { - OutColor.xyz = YCbCrToRGBVec; - if(NDIIOShaderUB.ColorCorrection == COLOR_CORRECTION_sRGBToLinear) - OutColor.xyz = sRGBToLinear(OutColor.xyz); - OutColor.w = 1; - } -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Actors/NDIBroadcastActor.cpp b/Plugins/NDIIO/Source/Core/Classes/Actors/NDIBroadcastActor.cpp deleted file mode 100644 index 7dab868..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Actors/NDIBroadcastActor.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - - - -ANDIBroadcastActor::ANDIBroadcastActor(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) -{ - - this->ViewportCaptureComponent = ObjectInitializer.CreateDefaultSubobject(this, TEXT("ViewportCaptureComponent")); - this->ViewportCaptureComponent->AttachToComponent(this->RootComponent, FAttachmentTransformRules::KeepRelativeTransform); - - this->PTZController = ObjectInitializer.CreateDefaultSubobject(this, TEXT("PTZController")); -} - -void ANDIBroadcastActor::BeginPlay() -{ - Super::BeginPlay(); - - // validate the viewport capture component - if (IsValid(this->ViewportCaptureComponent)) - { - // Initialize the Capture Component with the media source - ViewportCaptureComponent->Initialize(this->NDIMediaSource); - } - - if (IsValid(this->PTZController)) - { - // Initialize the PTZ Controller with the media source - PTZController->Initialize(this->NDIMediaSource); - } - - if (IsValid(this->NDIMediaSource)) - { - this->NDIMediaSource->Initialize(this->SubmixCapture); - } -} - -FPTZState ANDIBroadcastActor::GetPTZStateFromUE() const -{ - FPTZState PTZState; - - PTZState.CameraTransform = GetActorTransform(); - FTransform Transform = FTransform::Identity; - if (IsValid(this->ViewportCaptureComponent)) - Transform = this->ViewportCaptureComponent->GetRelativeTransform(); - FQuat Rotation = Transform.GetRotation(); - FVector Euler = Rotation.Euler(); - PTZState.Pan = FMath::DegreesToRadians(Euler[2]); - PTZState.Tilt = FMath::DegreesToRadians(Euler[1]); - - if (IsValid(this->ViewportCaptureComponent)) - { - PTZState.FieldOfView = this->ViewportCaptureComponent->FOVAngle; - PTZState.FocusDistance = 1.f - 1.f / (this->ViewportCaptureComponent->PostProcessSettings.DepthOfFieldFocalDistance / 100.f + 1.f); - PTZState.bAutoFocus = (this->ViewportCaptureComponent->PostProcessSettings.bOverride_DepthOfFieldFocalDistance == true) ? false : true; - } - - return PTZState; -} - -void ANDIBroadcastActor::SetPTZStateToUE(const FPTZState& PTZState) -{ - SetActorTransform(PTZState.CameraTransform); - FVector Euler(0, FMath::RadiansToDegrees(PTZState.Tilt), FMath::RadiansToDegrees(PTZState.Pan)); - FQuat NewRotation = FQuat::MakeFromEuler(Euler); - - if (IsValid(this->ViewportCaptureComponent)) - { - this->ViewportCaptureComponent->SetRelativeLocationAndRotation(this->ViewportCaptureComponent->GetRelativeLocation(), NewRotation); - this->ViewportCaptureComponent->FOVAngle = PTZState.FieldOfView; - this->ViewportCaptureComponent->PostProcessSettings.DepthOfFieldFocalDistance = (1.f / FMath::Max(1 - PTZState.FocusDistance, 0.01f) - 1.f) * 100.f; - this->ViewportCaptureComponent->PostProcessSettings.DepthOfFieldFocalDistance = FMath::Max(this->ViewportCaptureComponent->PostProcessSettings.DepthOfFieldFocalDistance, SMALL_NUMBER); - this->ViewportCaptureComponent->PostProcessSettings.bOverride_DepthOfFieldFocalDistance = (PTZState.bAutoFocus == true) ? false : true; - } -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Actors/NDIReceiveActor.cpp b/Plugins/NDIIO/Source/Core/Classes/Actors/NDIReceiveActor.cpp deleted file mode 100644 index 387468a..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Actors/NDIReceiveActor.cpp +++ /dev/null @@ -1,369 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -ANDIReceiveActor::ANDIReceiveActor(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) -{ - // Get the Engine's 'Plane' static mesh - static ConstructorHelpers::FObjectFinder MeshObject( - TEXT("StaticMesh'/Engine/BasicShapes/Plane.Plane'")); - static ConstructorHelpers::FObjectFinder MaterialObject( - TEXT("Material'/NDIIOPlugin/Materials/NDI_Unlit_SourceMaterial.NDI_Unlit_SourceMaterial'")); - - // Ensure that the object is valid - if (MeshObject.Object) - { - // Create the static mesh component visual - this->VideoMeshComponent = - ObjectInitializer.CreateDefaultSubobject(this, TEXT("VideoMeshComponent"), true); - - // setup the attachment and modify the position, rotation, and mesh properties - this->VideoMeshComponent->SetupAttachment(RootComponent); - this->VideoMeshComponent->SetStaticMesh(MeshObject.Object); - this->VideoMeshComponent->SetRelativeRotation(FQuat::MakeFromEuler(FVector(90.0f, 0.0f, 90.0f))); - this->VideoMeshComponent->SetRelativeScale3D(FVector(FrameWidth / 100.0f, FrameHeight / 100.0f, 1.0f)); - - this->VideoMeshComponent->SetCollisionResponseToAllChannels(ECR_Ignore); - this->VideoMeshComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision); - this->VideoMeshComponent->SetCollisionObjectType(ECC_WorldDynamic); - - // This is object is mainly used for simple tests and things that don't require - // additional material shading support, store the an unlit source material to display - this->VideoMaterial = MaterialObject.Object; - - // If the material is valid - if (this->VideoMaterial) - { - // Set the Mesh Material to the Video Material - this->VideoMeshComponent->SetMaterial(0, this->VideoMaterial); - } - } - - this->AudioComponent = ObjectInitializer.CreateDefaultSubobject(this, TEXT("AudioComponent"), true); - this->AudioComponent->SetupAttachment(RootComponent); - this->AudioComponent->SetRelativeLocationAndRotation(FVector::ZeroVector, FRotator::ZeroRotator); - this->AudioComponent->SetRelativeScale3D(FVector::OneVector); - - this->bAllowTickBeforeBeginPlay = false; - this->PrimaryActorTick.bCanEverTick = true; -} - -void ANDIReceiveActor::BeginPlay() -{ - // call the base implementation for 'BeginPlay' - Super::BeginPlay(); - - // We need to validate that we have media source, so we can set the texture in the material instance - if (IsValid(this->NDIMediaSource)) - { - this->NDIMediaSource->Initialize(UNDIMediaReceiver::EUsage::Standalone); - - // Validate the Video Material Instance so we can set the texture used in the NDI Media source - if (IsValid(this->VideoMaterial)) - { - // create and set the instance material from the MaterialObject - VideoMaterialInstance = - this->VideoMeshComponent->CreateAndSetMaterialInstanceDynamicFromMaterial(0, this->VideoMaterial); - - // Ensure we have a valid material instance - if (IsValid(VideoMaterialInstance)) - { - // Enable/disable the color and/or alpha channels - this->VideoMaterialInstance->SetScalarParameterValue("Enable Video Texture", bEnableColor ? 1.0f : 0.0f); - this->VideoMaterialInstance->SetScalarParameterValue("Enable Video Alpha", bEnableAlpha ? 1.0f : 0.0f); - - this->NDIMediaSource->UpdateMaterialTexture(VideoMaterialInstance, "Video Texture"); - } - } - - // Define the basic parameters for constructing temporary audio wave object - FString AudioSource = FString::Printf(TEXT("AudioSource_%s"), *GetFName().ToString().Right(1)); - FName AudioWaveName = FName(*AudioSource); - EObjectFlags Flags = RF_Public | RF_Standalone | RF_Transient | RF_MarkAsNative; - - // Construct a temporary audio sound wave to be played by this component - this->AudioSoundWave = NewObject(GetTransientPackage(), UNDIMediaSoundWave::StaticClass(), - AudioWaveName, Flags); - - // Ensure the validity of the temporary sound wave object - if (IsValid(this->AudioSoundWave)) - { - // Set the number of channels - bStoppedForChannelsMode = false; - ApplyChannelsMode(); - - // Set the sound of the Audio Component and Ensure playback - this->AudioComponent->SetSound(this->AudioSoundWave); - - // Ensure we register the audio wave object with the media. - this->NDIMediaSource->RegisterAudioWave(AudioSoundWave); - } - - if (this->NDIMediaSource->GetCurrentConnectionInformation().IsValid()) - { - if (IsValid(AudioComponent)) - { - // we should play the audio, if we want audio playback - if (bEnableAudioPlayback) - { - this->AudioComponent->Play(0.0f); - } - - // otherwise just stop - else - { - this->AudioComponent->Stop(); - this->bStoppedForChannelsMode = false; - } - } - } - - // Add a lambda to the OnReceiverConnected Event - else - this->NDIMediaSource->OnNDIReceiverConnectedEvent.AddWeakLambda(this, [&](UNDIMediaReceiver*) { - // Ensure that the audio component is valid - if (IsValid(AudioComponent)) - { - // we should play the audio, if we want audio playback - if (bEnableAudioPlayback) - { - this->AudioComponent->Play(0.0f); - } - - // otherwise just stop - else - { - this->AudioComponent->Stop(); - this->bStoppedForChannelsMode = false; - } - } - }); - } -} - -void ANDIReceiveActor::EndPlay(const EEndPlayReason::Type EndPlayReason) -{ - Super::EndPlay(EndPlayReason); - - this->bStoppedForChannelsMode = false; - - // Ensure we have a valid material instance - if (EndPlayReason == EEndPlayReason::EndPlayInEditor && IsValid(VideoMaterialInstance)) - { - // Ensure that the video texture is disabled - this->VideoMaterialInstance->SetScalarParameterValue("Enable Video Texture", 0.0f); - this->VideoMaterialInstance->SetScalarParameterValue("Enable Video Alpha", 0.0f); - } -} - -void ANDIReceiveActor::Tick(float DeltaTime) -{ - Super::Tick(DeltaTime); - - ApplyChannelsMode(); -} - -void ANDIReceiveActor::ApplyChannelsMode() -{ - if (IsValid(this->AudioComponent) && IsValid(this->NDIMediaSource) && IsValid(this->AudioSoundWave)) - { - int32 NewNumChannels = 0; - switch(this->AudioPlaybackChannels) - { - case ENDIAudioChannels::Mono: - NewNumChannels = 1; - break; - case ENDIAudioChannels::Stereo: - NewNumChannels = 2; - break; - case ENDIAudioChannels::Source: - NewNumChannels = this->NDIMediaSource->GetAudioChannels(); - break; - } - - if ((NewNumChannels != 0) && (NewNumChannels != this->AudioSoundWave->NumChannels)) - { - bool isPlaying = this->AudioComponent->IsPlaying(); - if (isPlaying) - { - this->AudioComponent->Stop(); - bStoppedForChannelsMode = true; - } - else - { - this->AudioSoundWave->NumChannels = NewNumChannels; - - if (bEnableAudioPlayback && bStoppedForChannelsMode) - { - this->AudioComponent->Play(0.0f); - } - bStoppedForChannelsMode = false; - } - } - } -} - -/** - Attempts to set the desired frame size in cm, represented in the virtual scene -*/ -void ANDIReceiveActor::SetFrameSize(FVector2D InFrameSize) -{ - // clamp the values to the lowest we'll allow - const float frame_height = FMath::Max(InFrameSize.Y, 0.00001f); - const float frame_width = FMath::Max(InFrameSize.X, 0.00001f); - - FrameWidth = frame_width; - FrameHeight = frame_height; - - // validate the static mesh component - if (IsValid(this->VideoMeshComponent)) - { - // change the scale of the video - this->VideoMeshComponent->SetRelativeScale3D(FVector(FrameWidth / 100.0f, FrameHeight / 100.0f, 1.0f)); - } -} - -void ANDIReceiveActor::SetFrameHeight(const float& InFrameHeight) -{ - // Clamp the Frame Height to a minimal value - FrameHeight = FMath::Max(InFrameHeight, 0.00001f); - - // Call the function to set the frame size with the newly clamped value - SetFrameSize(FVector2D(FrameWidth, FrameHeight)); -} - -void ANDIReceiveActor::SetFrameWidth(const float& InFrameWidth) -{ - // Clamp the Frame Width to a minimal value - FrameWidth = FMath::Max(InFrameWidth, 0.00001f); - - // Call the function to set the frame size with the newly clamped value - SetFrameSize(FVector2D(FrameWidth, FrameHeight)); -} - -void ANDIReceiveActor::UpdateAudioPlayback(const bool& Enabled) -{ - // Ensure validity and we are currently playing - if (IsValid(this->AudioComponent)) - { - // Stop playback when possible - if (Enabled) - { - // Start the playback - this->AudioComponent->Play(0.0f); - } - - // otherwise just stop playback (even if it's not playing) - else - this->AudioComponent->Stop(); - } -} - -void ANDIReceiveActor::UpdateAudioPlaybackChannels(const ENDIAudioChannels& Channels) -{} - - -void ANDIReceiveActor::EnableColor(const bool& Enabled) -{ - bEnableColor = Enabled; - if (IsValid(VideoMaterialInstance)) - { - // Enable/disable the color channels - this->VideoMaterialInstance->SetScalarParameterValue("Enable Video Texture", bEnableColor ? 1.0f : 0.0f); - } -} - -void ANDIReceiveActor::EnableAlpha(const bool& Enabled) -{ - bEnableAlpha = Enabled; - if (IsValid(VideoMaterialInstance)) - { - // Enable/disable the alpha channel - this->VideoMaterialInstance->SetScalarParameterValue("Enable Video Alpha", bEnableAlpha ? 1.0f : 0.0f); - } -} - -/** - Returns the current frame size of the 'VideoMeshComponent' for this object -*/ -const FVector2D ANDIReceiveActor::GetFrameSize() const -{ - return FVector2D(FrameWidth, FrameHeight); -} - -#if WITH_EDITORONLY_DATA - -void ANDIReceiveActor::PreEditChange(FProperty* InProperty) -{ - // call the base class 'PreEditChange' - Super::PreEditChange(InProperty); -} - -void ANDIReceiveActor::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) -{ - // get the name of the property which changed - FName PropertyName = - (PropertyChangedEvent.Property != nullptr) ? PropertyChangedEvent.Property->GetFName() : NAME_None; - - // compare against the 'FrameHeight' property - if (PropertyName == GET_MEMBER_NAME_CHECKED(ANDIReceiveActor, FrameHeight)) - { - // resize the frame - SetFrameSize(FVector2D(FrameWidth, FrameHeight)); - } - - // compare against the 'FrameWidth' property - else if (PropertyName == GET_MEMBER_NAME_CHECKED(ANDIReceiveActor, FrameWidth)) - { - // resize the frame - SetFrameSize(FVector2D(FrameWidth, FrameHeight)); - } - - // compare against the 'bEnableAudioPlayback' property - else if (PropertyName == GET_MEMBER_NAME_CHECKED(ANDIReceiveActor, bEnableAudioPlayback)) - { - // start or stop the audio playback depending on state - UpdateAudioPlayback(bEnableAudioPlayback); - } - - // compare against the 'AudioPlaybackChannels' property - else if (PropertyName == GET_MEMBER_NAME_CHECKED(ANDIReceiveActor, AudioPlaybackChannels)) - { - // start or stop the audio playback depending on state - UpdateAudioPlaybackChannels(AudioPlaybackChannels); - } - - // compare against the 'bEnableColor' property - else if (PropertyName == GET_MEMBER_NAME_CHECKED(ANDIReceiveActor, bEnableColor)) - { - // enable or disable color channels (if it exists) - EnableColor(bEnableColor); - } - - // compare against the 'bEnableAlpha' property - else if (PropertyName == GET_MEMBER_NAME_CHECKED(ANDIReceiveActor, bEnableAlpha)) - { - // enable or disable alpha channel (if it exists) - EnableAlpha(bEnableAlpha); - } - - // call the base class 'PostEditChangeProperty' - Super::PostEditChangeProperty(PropertyChangedEvent); -} - -#endif diff --git a/Plugins/NDIIO/Source/Core/Classes/Assets/NDITimecodeProvider.cpp b/Plugins/NDIIO/Source/Core/Classes/Assets/NDITimecodeProvider.cpp deleted file mode 100644 index 1a59fc9..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Assets/NDITimecodeProvider.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - - -UNDITimecodeProvider::UNDITimecodeProvider(const FObjectInitializer& ObjectInitializer) - : Super(ObjectInitializer) -{} - -bool UNDITimecodeProvider::FetchTimecode(FQualifiedFrameTime& OutFrameTime) -{ - FScopeLock Lock(&this->StateSyncContext); - - if (!IsValid(this->NDIMediaSource) || - (GetSynchronizationState() != ETimecodeProviderSynchronizationState::Synchronized)) - { - return false; - } - - OutFrameTime = this->MostRecentFrameTime; - - return true; -} - -ETimecodeProviderSynchronizationState UNDITimecodeProvider::GetSynchronizationState() const -{ - FScopeLock Lock(&this->StateSyncContext); - - if (!IsValid(this->NDIMediaSource)) - return ETimecodeProviderSynchronizationState::Closed; - - return this->State; -} - -bool UNDITimecodeProvider::Initialize(UEngine* InEngine) -{ - this->State = ETimecodeProviderSynchronizationState::Closed; - - if (!IsValid(this->NDIMediaSource)) - { - this->State = ETimecodeProviderSynchronizationState::Error; - return false; - } - - this->NDIMediaSource->Initialize(UNDIMediaReceiver::EUsage::Standalone); - - this->VideoCaptureEventHandle = this->NDIMediaSource->OnNDIReceiverVideoCaptureEvent.AddLambda([this](UNDIMediaReceiver* Receiver, const NDIlib_video_frame_v2_t& VideoFrame) - { - const FFrameRate Rate = Receiver->GetCurrentFrameRate(); - const FTimecode Timecode = Receiver->GetCurrentTimecode(); - - FScopeLock Lock(&this->StateSyncContext); - this->State = ETimecodeProviderSynchronizationState::Synchronized; - this->MostRecentFrameTime = FQualifiedFrameTime(Timecode, Rate); - }); - this->ConnectedEventHandle = this->NDIMediaSource->OnNDIReceiverConnectedEvent.AddLambda([this](UNDIMediaReceiver* Receiver) - { - FScopeLock Lock(&this->StateSyncContext); - this->State = ETimecodeProviderSynchronizationState::Synchronizing; - }); - this->DisconnectedEventHandle = this->NDIMediaSource->OnNDIReceiverDisconnectedEvent.AddLambda([this](UNDIMediaReceiver* Receiver) - { - FScopeLock Lock(&this->StateSyncContext); - this->State = ETimecodeProviderSynchronizationState::Closed; - }); - - return true; -} - -void UNDITimecodeProvider::Shutdown(UEngine* InEngine) -{ - ReleaseResources(); -} - - -void UNDITimecodeProvider::BeginDestroy() -{ - ReleaseResources(); - - Super::BeginDestroy(); -} - -void UNDITimecodeProvider::ReleaseResources() -{ - if(IsValid(this->NDIMediaSource)) - { - this->NDIMediaSource->OnNDIReceiverVideoCaptureEvent.Remove(this->VideoCaptureEventHandle); - this->NDIMediaSource->OnNDIReceiverConnectedEvent.Remove(this->ConnectedEventHandle); - this->NDIMediaSource->OnNDIReceiverDisconnectedEvent.Remove(this->DisconnectedEventHandle); - } - this->VideoCaptureEventHandle.Reset(); - this->ConnectedEventHandle.Reset(); - this->DisconnectedEventHandle.Reset(); - - this->State = ETimecodeProviderSynchronizationState::Closed; -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Components/NDIBroadcastComponent.cpp b/Plugins/NDIIO/Source/Core/Classes/Components/NDIBroadcastComponent.cpp deleted file mode 100644 index f10b4fc..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Components/NDIBroadcastComponent.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -UNDIBroadcastComponent::UNDIBroadcastComponent(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) -{} - -/** - Initialize this component with the media source required for sending NDI audio, video, and metadata. - Returns false, if the MediaSource is already been set. This is usually the case when this component is - initialized in Blueprints. -*/ -bool UNDIBroadcastComponent::Initialize(UNDIMediaSender* InMediaSource) -{ - // is the media source already set? - if (this->NDIMediaSource == nullptr && InMediaSource != nullptr) - { - // we passed validation, so set the media source - this->NDIMediaSource = InMediaSource; - } - - // did we pass validation - return InMediaSource != nullptr && InMediaSource == NDIMediaSource; -} - -/** - Attempts to start broadcasting audio, video, and metadata via the 'NDIMediaSource' associated with this object - - @param ErrorMessage The error message received when the media source is unable to start broadcasting - @result Indicates whether this object successfully started broadcasting -*/ -bool UNDIBroadcastComponent::StartBroadcasting(FString& ErrorMessage) -{ - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->Initialize(nullptr); - - // the underlying functionality is always return 'true' - return true; - } - - // We have no media source to broadcast - ErrorMessage = TEXT("No Media Source present to broadcast"); - - // looks like we don't have a media source to broadcast - return false; -} - -/** - Changes the name of the sender object as seen on the network for remote connections - - @param InSourceName The new name of the source to be identified as on the network -*/ -void UNDIBroadcastComponent::ChangeSourceName(const FString& InSourceName) -{ - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->ChangeSourceName(InSourceName); - } -} - -/** - Attempts to change the Broadcast information associated with this media object - - @param InConfiguration The new configuration to broadcast -*/ -void UNDIBroadcastComponent::ChangeBroadcastConfiguration(const FNDIBroadcastConfiguration& InConfiguration) -{ - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->ChangeBroadcastConfiguration(InConfiguration); - } -} - -/** - Attempts to change the RenderTarget used in sending video frames over NDI - - @param BroadcastTexture The texture to use as video, while broadcasting over NDI -*/ -void UNDIBroadcastComponent::ChangeBroadcastTexture(UTextureRenderTarget2D* BroadcastTexture) -{ - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->ChangeVideoTexture(BroadcastTexture); - } -} - -/** - Determines the current tally information. If you specify a timeout then it will wait until it has - changed, otherwise it will simply poll it and return the current tally immediately - - @param IsOnPreview - A state indicating whether this source in on preview of a receiver - @param IsOnProgram - A state indicating whether this source is on program of a receiver -*/ -void UNDIBroadcastComponent::GetTallyInformation(bool& IsOnPreview, bool& IsOnProgram) -{ - // Initialize the properties - IsOnPreview = false; - IsOnProgram = false; - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->GetTallyInformation(IsOnPreview, IsOnProgram, 0); - } -} - -/** - Gets the current number of receivers connected to this source. This can be used to avoid rendering - when nothing is connected to the video source. which can significantly improve the efficiency if - you want to make a lot of sources available on the network - - @param Result The total number of connected receivers attached to the broadcast of this object -*/ -void UNDIBroadcastComponent::GetNumberOfConnections(int32& Result) -{ - // Initialize the property - Result = 0; - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->GetNumberOfConnections(Result); - } -} - -/** - Attempts to immediately stop sending frames over NDI to any connected receivers -*/ -void UNDIBroadcastComponent::StopBroadcasting() -{ - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->Shutdown(); - } -} \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Classes/Components/NDIFinderComponent.cpp b/Plugins/NDIIO/Source/Core/Classes/Components/NDIFinderComponent.cpp deleted file mode 100644 index 9a55aa7..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Components/NDIFinderComponent.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include - -UNDIFinderComponent::UNDIFinderComponent(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) {} - -void UNDIFinderComponent::BeginPlay() -{ - Super::BeginPlay(); - - // Provide some sense of thread-safety - FScopeLock Lock(&CollectionSyncContext); - - // Update the NetworkSourceCollection with some sources which that the service has already found - FNDIFinderService::UpdateSourceCollection(NetworkSourceCollection); - - // Ensure that we are subscribed to the collection changed notification so we can handle it locally - FNDIFinderService::EventOnNDISourceCollectionChanged.AddUObject( - this, &UNDIFinderComponent::OnNetworkSourceCollectionChangedEvent); -} - -void UNDIFinderComponent::EndPlay(const EEndPlayReason::Type EndPlayReason) -{ - Super::EndPlay(EndPlayReason); - - // Provide some sense of thread-safety - FScopeLock Lock(&CollectionSyncContext); - - // Empty the source collection - this->NetworkSourceCollection.Empty(0); - - // Ensure that we are no longer subscribed to collection change notifications - FNDIFinderService::EventOnNDISourceCollectionChanged.RemoveAll(this); -} - -/** - An Event handler for when the NDI Finder Service notifies listeners that changes have been - detected in the network source collection -*/ -void UNDIFinderComponent::OnNetworkSourceCollectionChangedEvent() -{ - // Since we don't poll the NDIFinderService for network sources, we subscribe to the change notification. - // Now we need to update the Network Source Collection, but we need to do it in a thread-safe way. - - FScopeLock Lock(&CollectionSyncContext); - - // Check to determine if something actually changed within the collection. We don't want to trigger - // notifications unnecessarily. - if (FNDIFinderService::UpdateSourceCollection(NetworkSourceCollection)) - { - // Trigger the blueprint handling of the situation. - this->OnNetworkSourcesChangedEvent(); - - // If any listeners have subscribed broadcast any collection changes - if (this->OnNetworkSourcesChanged.IsBound()) - this->OnNetworkSourcesChanged.Broadcast(this); - } -} - -/** - Attempts to find a network source by the supplied name. - - @param ConnectionInformation An existing source information structure which contains the source name - @param InSourceName A string value representing the name of the source to find - @result A value indicating whether a source with the supplied name was found -*/ -const bool UNDIFinderComponent::FindNetworkSourceByName(FNDIConnectionInformation& ConnectionInformation, - FString InSourceName) -{ - // Lock the Collection so that we are working with a solid collection of items - FScopeLock Lock(&CollectionSyncContext); - - // Ensure we Reset the SourceInformation - ConnectionInformation.Reset(); - - for (const auto& connectionInfo : NetworkSourceCollection) - { - if (InSourceName.Equals(connectionInfo.SourceName, ESearchCase::IgnoreCase)) - { - ConnectionInformation = connectionInfo; - return true; - } - } - - return false; -} - -/** - Returns the current collection of sources found on the network -*/ -const TArray UNDIFinderComponent::GetNetworkSources() -{ - // Lock the current source collection - FScopeLock Lock(&CollectionSyncContext); - - // return the source collection - return this->NetworkSourceCollection; -} \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Classes/Components/NDIPTZControllerComponent.cpp b/Plugins/NDIIO/Source/Core/Classes/Components/NDIPTZControllerComponent.cpp deleted file mode 100644 index b98273a..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Components/NDIPTZControllerComponent.cpp +++ /dev/null @@ -1,471 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include - -#include - - -/** - Parsers for PTZ metadata -*/ - -class NDIXmlElementParser_ntk_ptz_pan_tilt_speed : public NDIXmlElementParser -{ -public: - NDIXmlElementParser_ntk_ptz_pan_tilt_speed(UPTZController* PTZControllerIn) - : PTZController(PTZControllerIn) - {} - - virtual bool ProcessOpen(const TCHAR* ElementName, const TCHAR* ElementData) - { - PanSpeed = 0.0; - TiltSpeed = 0.0; - - return true; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - if(FCString::Strcmp(TEXT("pan_speed"), AttributeName) == 0) - { - PanSpeed = FCString::Atod(AttributeValue); - } - else if(FCString::Strcmp(TEXT("tilt_speed"), AttributeName) == 0) - { - TiltSpeed = FCString::Atod(AttributeValue); - } - - return true; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - PTZController->SetPTZPanTiltSpeed(PanSpeed, TiltSpeed); - - return true; - } - -protected: - UPTZController* PTZController; - - double PanSpeed { 0.0 }; - double TiltSpeed { 0.0 }; -}; - -class NDIXmlElementParser_ntk_ptz_zoom_speed : public NDIXmlElementParser -{ -public: - NDIXmlElementParser_ntk_ptz_zoom_speed(UPTZController* PTZControllerIn) - : PTZController(PTZControllerIn) - {} - - virtual bool ProcessOpen(const TCHAR* ElementName, const TCHAR* ElementData) - { - ZoomSpeed = 0.0; - - return true; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - if(FCString::Strcmp(TEXT("zoom_speed"), AttributeName) == 0) - { - ZoomSpeed = FCString::Atod(AttributeValue); - } - - return true; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - PTZController->SetPTZZoomSpeed(ZoomSpeed); - - return true; - } - -protected: - UPTZController* PTZController; - - double ZoomSpeed { 0.0 }; -}; - -class NDIXmlElementParser_ntk_ptz_focus : public NDIXmlElementParser -{ -public: - NDIXmlElementParser_ntk_ptz_focus(UPTZController* PTZControllerIn) - : PTZController(PTZControllerIn) - {} - - virtual bool ProcessOpen(const TCHAR* ElementName, const TCHAR* ElementData) - { - AutoMode = true; - Distance = 0.5; - - return true; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - if(FCString::Strcmp(TEXT("mode"), AttributeName) == 0) - { - if(FCString::Strcmp(TEXT("manual"), AttributeValue) == 0) - AutoMode = false; - } - else if(FCString::Strcmp(TEXT("distance"), AttributeName) == 0) - { - Distance = FCString::Atod(AttributeValue); - } - - return true; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - PTZController->SetPTZFocus(AutoMode, Distance); - - return true; - } - -protected: - UPTZController* PTZController; - - bool AutoMode { true }; - double Distance { 0.5 }; -}; - -class NDIXmlElementParser_ntk_ptz_store_preset : public NDIXmlElementParser -{ -public: - NDIXmlElementParser_ntk_ptz_store_preset(UPTZController* PTZControllerIn) - : PTZController(PTZControllerIn) - {} - - virtual bool ProcessOpen(const TCHAR* ElementName, const TCHAR* ElementData) - { - StoreIndex = -1; - - return true; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - if(FCString::Strcmp(TEXT("index"), AttributeName) == 0) - { - StoreIndex = FCString::Atoi(AttributeValue); - } - - return true; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - if(StoreIndex >= 0) - { - PTZController->StorePTZState(StoreIndex); - } - - return true; - } - -protected: - UPTZController* PTZController; - - int StoreIndex { -1 }; -}; - -class NDIXmlElementParser_ntk_ptz_recall_preset : public NDIXmlElementParser -{ -public: - NDIXmlElementParser_ntk_ptz_recall_preset(UPTZController* PTZControllerIn) - : PTZController(PTZControllerIn) - {} - - virtual bool ProcessOpen(const TCHAR* ElementName, const TCHAR* ElementData) - { - RecallIndex = -1; - - return true; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - if(FCString::Strcmp(TEXT("index"), AttributeName) == 0) - { - RecallIndex = FCString::Atoi(AttributeValue); - } - - return true; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - if(RecallIndex >= 0) - { - PTZController->RecallPTZState(RecallIndex); - } - - return true; - } - -protected: - UPTZController* PTZController; - - int RecallIndex { -1 }; -}; - - -/** - PTZ controller component -*/ -UPTZController::UPTZController() -{ - this->bWantsInitializeComponent = true; - - this->PrimaryComponentTick.bAllowTickOnDedicatedServer = false; - this->PrimaryComponentTick.bCanEverTick = true; - this->PrimaryComponentTick.bHighPriority = true; - this->PrimaryComponentTick.bRunOnAnyThread = false; - this->PrimaryComponentTick.bStartWithTickEnabled = true; - this->PrimaryComponentTick.bTickEvenWhenPaused = true; - - this->NDIMetadataParser = MakeShareable(new NDIXmlParser()); - this->NDIMetadataParser->AddElementParser("ntk_ptz_pan_tilt_speed", MakeShareable(new NDIXmlElementParser_ntk_ptz_pan_tilt_speed(this))); - this->NDIMetadataParser->AddElementParser("ntk_ptz_zoom_speed", MakeShareable(new NDIXmlElementParser_ntk_ptz_zoom_speed(this))); - this->NDIMetadataParser->AddElementParser("ntk_ptz_focus", MakeShareable(new NDIXmlElementParser_ntk_ptz_focus(this))); - this->NDIMetadataParser->AddElementParser("ntk_ptz_store_preset", MakeShareable(new NDIXmlElementParser_ntk_ptz_store_preset(this))); - this->NDIMetadataParser->AddElementParser("ntk_ptz_recall_preset", MakeShareable(new NDIXmlElementParser_ntk_ptz_recall_preset(this))); -} - -UPTZController::~UPTZController() -{} - -void UPTZController::InitializeComponent() -{ - Super::InitializeComponent(); - - if (IsValid(NDIMediaSource)) - { - // Ensure the PTZ controller is subscribed to the sender receiving metadata - this->NDIMediaSource->OnSenderMetaDataReceived.RemoveAll(this); - this->NDIMediaSource->OnSenderMetaDataReceived.AddDynamic(this, &UPTZController::ReceiveMetaDataFromSender); - } -} - -bool UPTZController::Initialize(UNDIMediaSender* InMediaSource) -{ - // is the media source already set? - if (this->NDIMediaSource == nullptr && InMediaSource != nullptr) - { - // we passed validation, so set the media source - this->NDIMediaSource = InMediaSource; - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // Ensure the PTZ controller is subscribed to the sender receiving metadata - this->NDIMediaSource->OnSenderMetaDataReceived.RemoveAll(this); - this->NDIMediaSource->OnSenderMetaDataReceived.AddDynamic(this, &UPTZController::ReceiveMetaDataFromSender); - } - } - - // did we pass validation - return InMediaSource != nullptr && InMediaSource == NDIMediaSource; -} - -void UPTZController::SetPTZPanTiltSpeed(float PanSpeed, float TiltSpeed) -{ - PTZPanSpeed = PanSpeed; - PTZTiltSpeed = TiltSpeed; - - OnPTZPanTiltSpeed.Broadcast(PanSpeed, TiltSpeed); -} - -void UPTZController::SetPTZZoomSpeed(float ZoomSpeed) -{ - PTZZoomSpeed = ZoomSpeed; - - OnPTZZoomSpeed.Broadcast(ZoomSpeed); -} - -void UPTZController::SetPTZFocus(bool AutoMode, float Distance) -{ - FPTZState PTZState = GetPTZStateFromUE(); - PTZState.FocusDistance = Distance; - PTZState.bAutoFocus = AutoMode; - SetPTZStateToUE(PTZState); - - OnPTZFocus.Broadcast(AutoMode, Distance); -} - -void UPTZController::StorePTZState(int Index) -{ - if((Index >= 0) && (Index < 256)) - { - FPTZState PTZState = GetPTZStateFromUE(); - - if(Index >= PTZStoredStates.Num()) - PTZStoredStates.SetNum(Index+1); - PTZStoredStates[Index] = PTZState; - - OnPTZStore.Broadcast(Index); - } -} - -void UPTZController::RecallPTZState(int Index) -{ - if((Index >= 0) && (Index < PTZStoredStates.Num())) - { - if(PTZRecallEasing > 0) - { - PTZStateInterp.PTZTargetState = PTZStoredStates[Index]; - PTZStateInterp.EasingDuration = PTZRecallEasing; - PTZStateInterp.EasingRemaining = PTZStateInterp.EasingDuration; - } - else - { - SetPTZStateToUE(PTZStoredStates[Index]); - } - } - - OnPTZRecall.Broadcast(Index); -} - -FPTZState UPTZController::GetPTZStateFromUE() const -{ - AActor* OwnerActor = GetOwner(); - - IPTZControllableInterface* ControllableObject = Cast(OwnerActor); - if (ControllableObject != nullptr) - { - return ControllableObject->GetPTZStateFromUE(); - } - else - { - FPTZState PTZState; - - FTransform Transform = OwnerActor->GetActorTransform(); - FVector Euler = Transform.GetRotation().Euler(); - PTZState.Pan = FMath::DegreesToRadians(Euler[2]); - PTZState.Tilt = FMath::DegreesToRadians(Euler[1]); - Transform.SetRotation(FQuat::MakeFromEuler(FVector(Euler[0], 0.f, 0.f))); - PTZState.CameraTransform = Transform; - - return PTZState; - } -} - -void UPTZController::SetPTZStateToUE(const FPTZState& PTZState) -{ - if (EnablePTZ == true) - { - AActor* OwnerActor = GetOwner(); - - IPTZControllableInterface* ControllableObject = Cast(OwnerActor); - if (ControllableObject != nullptr) - { - ControllableObject->SetPTZStateToUE(PTZState); - } - else - { - FTransform Transform = PTZState.CameraTransform; - FVector Euler = Transform.GetRotation().Euler(); - float Pitch = FMath::RadiansToDegrees(PTZState.Tilt); - float Yaw = FMath::RadiansToDegrees(PTZState.Pan); - Transform.SetRotation(FQuat::MakeFromEuler(FVector(Euler[0], Pitch, Yaw))); - OwnerActor->SetActorTransform(Transform); - } - } -} - - -void UPTZController::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) -{ - Super::TickComponent(DeltaTime, TickType, ThisTickFunction); - - bool bUpdatePTZ = false; - - if(PTZStateInterp.EasingRemaining > 0) - bUpdatePTZ = true; - - if((PTZPanSpeed != 0) || (PTZTiltSpeed != 0) || (PTZZoomSpeed != 0)) - bUpdatePTZ = true; - - if(bUpdatePTZ) - { - FPTZState PTZState = GetPTZStateFromUE(); - - if(PTZStateInterp.EasingRemaining > 0) - { - float EasingDelta = FMath::Min(PTZStateInterp.EasingRemaining, DeltaTime); - - /** Interpolate from 0 to 1 using polynomial: - I(F) = a*F^3 + b*F^2 + c*F + d - with constraints: - Start and end points: I(0) = 0, I(1) = 1 - Smooth stop at end: I'(1) = 0 (velocity) - I''(1) = 0 (acceleration) - Solve to get: - a = 1, b = -3, c = 3, d = 0 - I(F) = F^3 - 3*F^2 + 3*F - */ - float EasingFrac = (PTZStateInterp.EasingRemaining > 0) ? (EasingDelta / PTZStateInterp.EasingRemaining) : 1; - float EasingInterp = EasingFrac*EasingFrac*EasingFrac - 3*EasingFrac*EasingFrac + 3*EasingFrac; - - PTZState.Pan = PTZState.Pan * (1 - EasingInterp) + PTZStateInterp.PTZTargetState.Pan * EasingInterp; - PTZState.Tilt = PTZState.Tilt * (1 - EasingInterp) + PTZStateInterp.PTZTargetState.Tilt * EasingInterp; - PTZState.FieldOfView = PTZState.FieldOfView * (1 - EasingInterp) + PTZStateInterp.PTZTargetState.FieldOfView * EasingInterp; - PTZState.FocusDistance = PTZState.FocusDistance * (1 - EasingInterp) + PTZStateInterp.PTZTargetState.FocusDistance * EasingInterp; - PTZState.CameraTransform.BlendWith(PTZStateInterp.PTZTargetState.CameraTransform, EasingInterp); - - PTZStateInterp.EasingRemaining -= EasingDelta; - } - - PTZState.FieldOfView -= FMath::RadiansToDegrees(PTZZoomSpeed) * DeltaTime; - if(PTZWithFoVLimit) - { - PTZState.FieldOfView = FMath::Clamp(PTZState.FieldOfView, PTZFoVMinLimit, PTZFoVMaxLimit); - } - PTZState.FieldOfView = FMath::Clamp(PTZState.FieldOfView, 5.f, 170.f); - - float MovementScale = PTZState.FieldOfView / 90.f; - - PTZState.Pan += PTZPanSpeed * DeltaTime * MovementScale * (bPTZPanInvert ? -1 : 1); - PTZState.Pan = FMath::Fmod(PTZState.Pan, 2*PI); - if(PTZWithPanLimit) - { - PTZState.Pan = FMath::Clamp(PTZState.Pan, FMath::DegreesToRadians(PTZPanMinLimit), FMath::DegreesToRadians(PTZPanMaxLimit)); - } - - PTZState.Tilt += PTZTiltSpeed * DeltaTime * MovementScale * (bPTZTiltInvert ? -1 : 1); - PTZState.Tilt = FMath::Fmod(PTZState.Tilt, 2*PI); - if(PTZWithTiltLimit) - { - PTZState.Tilt = FMath::Clamp(PTZState.Tilt, FMath::DegreesToRadians(PTZTiltMinLimit), FMath::DegreesToRadians(PTZTiltMaxLimit)); - } - - SetPTZStateToUE(PTZState); - } -} - - -void UPTZController::ReceiveMetaDataFromSender(UNDIMediaSender* Sender, FString Data) -{ - FText OutErrorMessage; - int32 OutErrorLineNumber; - - FFastXml::ParseXmlFile(this->NDIMetadataParser.Get(), - nullptr, // XmlFilePath - Data.GetCharArray().GetData(), // XmlFileContents - nullptr, // FeedbackContext - false, // bShowSlowTaskDialog - false, // bShowCancelButton - OutErrorMessage, // OutErrorMessage - OutErrorLineNumber // OutErrorLineNumber - ); -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Components/NDIReceiverComponent.cpp b/Plugins/NDIIO/Source/Core/Classes/Components/NDIReceiverComponent.cpp deleted file mode 100644 index 07c7c80..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Components/NDIReceiverComponent.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -UNDIReceiverComponent::UNDIReceiverComponent(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) {} - -/** - Initialize this component with the media source required for receiving NDI audio, video, and metadata. - Returns false, if the MediaSource is already been set. This is usually the case when this component is - initialized in Blueprints. -*/ -bool UNDIReceiverComponent::Initialize(UNDIMediaReceiver* InMediaSource) -{ - if (this->NDIMediaSource == nullptr && InMediaSource != nullptr) - { - this->NDIMediaSource = InMediaSource; - } - - return InMediaSource != nullptr && InMediaSource == NDIMediaSource; -} - -/** - Begin receiving NDI audio, video, and metadata frames -*/ -bool UNDIReceiverComponent::StartReceiver(const FNDIConnectionInformation& InConnectionInformation) -{ - if (IsValid(this->NDIMediaSource)) - { - // Call to the Media Source's function to initialize (hopefully with valid connection information) - if (NDIMediaSource->Initialize(InConnectionInformation, UNDIMediaReceiver::EUsage::Standalone)) - { - // FNDIConnectionService::RegisterReceiver(this->NDIMediaSource); - return true; - } - } - - return false; -} - -/** - Attempt to change the connection for which to get audio, video, and metadata frame from -*/ -void UNDIReceiverComponent::ChangeConnection(const FNDIConnectionInformation& InConnectionInformation) -{ - // Ensure a valid source to change the connection on - if (IsValid(this->NDIMediaSource)) - { - // Call the underlying function - NDIMediaSource->ChangeConnection(InConnectionInformation); - } -} - -/** - This will add a metadata frame and return immediately, having scheduled the frame asynchronously -*/ -void UNDIReceiverComponent::SendMetadataFrame(const FString& metadata) -{ - // Ensure a valid source to send metadata from - if (IsValid(this->NDIMediaSource)) - { - // Call the underlying function - NDIMediaSource->SendMetadataFrame(metadata); - } -} - -/** - This will setup the up-stream tally notifications. If no streams are connected, it will automatically send - the tally state upon connection -*/ -void UNDIReceiverComponent::SendTallyInformation(const bool& IsOnPreview, const bool& IsOnProgram) -{ - if (IsValid(this->NDIMediaSource)) - { - NDIMediaSource->SendTallyInformation(IsOnPreview, IsOnProgram); - } -} - -/** - Attempts to stop receiving audio, video, and metadata frame from the connected source -*/ -void UNDIReceiverComponent::ShutdownReceiver() -{ - if (IsValid(this->NDIMediaSource)) - { - NDIMediaSource->Shutdown(); - } -} - -/** - Returns the current framerate of the connected source -*/ -FFrameRate UNDIReceiverComponent::GetCurrentFrameRate() const -{ - return IsValid(NDIMediaSource) ? NDIMediaSource->GetCurrentFrameRate() : FFrameRate(60, 1); -} - -/** - Returns the current timecode of the connected source -*/ -FTimecode UNDIReceiverComponent::GetCurrentTimecode() const -{ - return IsValid(NDIMediaSource) - ? NDIMediaSource->GetCurrentTimecode() - : FTimecode::FromTimespan(FTimespan::FromMilliseconds(0.0), FFrameRate(60, 1), false, true); -} - -/** - Returns the current connection information of the connected source -*/ -FNDIConnectionInformation UNDIReceiverComponent::GetCurrentConnectionInformation() const -{ - return IsValid(NDIMediaSource) ? NDIMediaSource->GetCurrentConnectionInformation() : FNDIConnectionInformation(); -} - -/** - Returns the current performance data of the receiver while connected to the source -*/ -FNDIReceiverPerformanceData UNDIReceiverComponent::GetPerformanceData() const -{ - return IsValid(NDIMediaSource) ? NDIMediaSource->GetPerformanceData() : FNDIReceiverPerformanceData(); -} \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Classes/Components/NDITriCasterExtComponent.cpp b/Plugins/NDIIO/Source/Core/Classes/Components/NDITriCasterExtComponent.cpp deleted file mode 100644 index 58f63bc..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Components/NDITriCasterExtComponent.cpp +++ /dev/null @@ -1,340 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include - -#include - -#include - - -/** - Parsers for TriCasterExt metadata -*/ - -class NDIXmlElementParser_tricaster_ext : public NDIXmlElementParser -{ -public: - NDIXmlElementParser_tricaster_ext(UTriCasterExtComponent* TriCasterExtComponentIn) - : TriCasterExtComponent(TriCasterExtComponentIn) - {} - - virtual bool ProcessOpen(const TCHAR* ElementName, const TCHAR* ElementData) - { - TCData.Value = FString(); - TCData.KeyValues.Empty(); - - return true; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - if(FCString::Strcmp(TEXT("name"), AttributeName) == 0) - {} - else if(FCString::Strcmp(TEXT("value"), AttributeName) == 0) - { - TCData.Value = FString(AttributeValue); - } - else - { - TCData.KeyValues.Add(FName(AttributeName), FString(AttributeValue)); - } - - return true; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - if(TCData.Value == "ndiio") - { - FString* ActorNamePtr = TCData.KeyValues.Find("actor"); - FString* PropertyNamePtr = TCData.KeyValues.Find("property"); - FString* PropertyValueStrPtr = TCData.KeyValues.Find("propertyvalue"); - FString* ComponentNamePtr = TCData.KeyValues.Find("component"); - FString* EasingDurationPtr = TCData.KeyValues.Find("easing"); - - if((ActorNamePtr != nullptr) && (PropertyNamePtr != nullptr) && (PropertyValueStrPtr != nullptr)) - { - FString PropertyBaseName, PropertyElementName; - if(!PropertyNamePtr->Split(TEXT(":"), &PropertyBaseName, &PropertyElementName)) - PropertyBaseName = *PropertyNamePtr; - - FTimespan EasingDuration = 0; - if(EasingDurationPtr != nullptr) - { - double Seconds = FCString::Atod(**EasingDurationPtr); - EasingDuration = FTimespan::FromSeconds(Seconds); - } - - for(TActorIterator ActorItr(TriCasterExtComponent->GetWorld()); ActorItr; ++ActorItr) - { - AActor* Actor = *ActorItr; - if(Actor->GetName() == *ActorNamePtr) - { - UObject* FoundObject = nullptr; - FProperty* FoundProperty = nullptr; - - if(ComponentNamePtr != nullptr) - { - TInlineComponentArray PrimComponents; - Actor->GetComponents(PrimComponents, true); - for(auto& CompIt : PrimComponents) - { - if(CompIt->GetName() == *ComponentNamePtr) - { - FProperty* Property = CompIt->GetClass()->FindPropertyByName(*PropertyBaseName); - if(Property) - { - FoundObject = CompIt; - FoundProperty = Property; - break; - } - } - } - } - else - { - FProperty* ActorProperty = Actor->GetClass()->FindPropertyByName(*PropertyBaseName); - if(ActorProperty) - { - FoundObject = Actor; - FoundProperty = ActorProperty; - } - else - { - TInlineComponentArray PrimComponents; - Actor->GetComponents(PrimComponents, true); - - for(auto& CompIt : PrimComponents) - { - FProperty* CompProperty = CompIt->GetClass()->FindPropertyByName(*PropertyBaseName); - if(CompProperty) - { - FoundObject = CompIt; - FoundProperty = CompProperty; - break; - } - } - } - } - - if(FoundObject && FoundProperty) - { - TriCasterExtComponent->TriCasterExt(Actor, FoundObject, FoundProperty, PropertyElementName, *PropertyValueStrPtr, EasingDuration); - break; - } - } - } - } - } - - TriCasterExtComponent->TriCasterExtCustom(TCData); - - return true; - } - -protected: - UTriCasterExtComponent* TriCasterExtComponent; - - FTriCasterExt TCData; -}; -// -// -// -// -// - - - -UTriCasterExtComponent::UTriCasterExtComponent() -{ - this->bWantsInitializeComponent = true; - - this->PrimaryComponentTick.bAllowTickOnDedicatedServer = false; - this->PrimaryComponentTick.bCanEverTick = true; - this->PrimaryComponentTick.bHighPriority = true; - this->PrimaryComponentTick.bRunOnAnyThread = false; - this->PrimaryComponentTick.bStartWithTickEnabled = true; - this->PrimaryComponentTick.bTickEvenWhenPaused = true; - - this->NDIMetadataParser = MakeShareable(new NDIXmlParser()); - NDIMetadataParser->AddElementParser("tricaster_ext", MakeShareable(new NDIXmlElementParser_tricaster_ext(this))); -} - -UTriCasterExtComponent::~UTriCasterExtComponent() -{} - -void UTriCasterExtComponent::InitializeComponent() -{ - Super::InitializeComponent(); - - if (IsValid(NDIMediaSource)) - { - // Ensure the TriCasterExt component is subscribed to the sender receiving metadata - this->NDIMediaSource->OnSenderMetaDataReceived.RemoveAll(this); - this->NDIMediaSource->OnSenderMetaDataReceived.AddDynamic(this, &UTriCasterExtComponent::ReceiveMetaDataFromSender); - } -} - -bool UTriCasterExtComponent::Initialize(UNDIMediaSender* InMediaSource) -{ - // is the media source already set? - if (this->NDIMediaSource == nullptr && InMediaSource != nullptr) - { - // we passed validation, so set the media source - this->NDIMediaSource = InMediaSource; - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // Ensure the TriCasterExt component is subscribed to the sender receiving metadata - this->NDIMediaSource->OnSenderMetaDataReceived.RemoveAll(this); - this->NDIMediaSource->OnSenderMetaDataReceived.AddDynamic(this, &UTriCasterExtComponent::ReceiveMetaDataFromSender); - } - } - - // did we pass validation - return InMediaSource != nullptr && InMediaSource == NDIMediaSource; -} - -void UTriCasterExtComponent::TriCasterExt(AActor* Actor, UObject* Object, FProperty* Property, FString PropertyElementName, FString PropertyValueStr, FTimespan EasingDuration) -{ - if(Actor && Object && Property) - { - FTriCasterExtInterp Interp; - Interp.Actor = Actor; - Interp.Object = Object; - Interp.Property = Property; - Interp.PropertyElementName = PropertyElementName; - Interp.PropertyValueStr = PropertyValueStr; - Interp.EasingDuration = EasingDuration.GetTotalSeconds(); - Interp.EasingRemaining = Interp.EasingDuration; - - TriCasterExtInterp.Add(Interp); - } - - OnTriCasterExt.Broadcast(Actor, Object, PropertyElementName, PropertyValueStr, EasingDuration); -} - -void UTriCasterExtComponent::TriCasterExtCustom(const FTriCasterExt& TCData) -{ - OnTriCasterExtCustom.Broadcast(TCData); -} - - -void UTriCasterExtComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) -{ - Super::TickComponent(DeltaTime, TickType, ThisTickFunction); - - for(int32 i = 0; i < TriCasterExtInterp.Num(); ++i) - { - FTriCasterExtInterp& Interp = TriCasterExtInterp[i]; - - float EasingDelta = FMath::Min(Interp.EasingRemaining, DeltaTime); - - void* Data = Interp.Property->ContainerPtrToValuePtr(Interp.Object); - if(Data) - { - bool Done = false; - -#if WITH_EDITOR - Interp.Object->PreEditChange(Interp.Property); - Interp.Actor->PreEditChange(Interp.Property); -#endif - - if(FNumericProperty* NumericProperty = CastField(Interp.Property)) - { - double PropertyValue = NumericProperty->GetFloatingPointPropertyValue(Data); - double TargetValue = FCString::Atod(*Interp.PropertyValueStr); - - double EasingFrac = (Interp.EasingRemaining > 0) ? (EasingDelta / Interp.EasingRemaining) : 1; - double EasingInterp = 3*EasingFrac - 3*EasingFrac*EasingFrac + EasingFrac*EasingFrac*EasingFrac; - - double NewValue = PropertyValue * (1 - EasingInterp) + TargetValue * EasingInterp; - NumericProperty->SetFloatingPointPropertyValue(Data, NewValue); - Done = true; - } - else if(FStructProperty* StructProperty = CastField(Interp.Property)) - { - FProperty* FieldProperty = FindFProperty(StructProperty->Struct, *(Interp.PropertyElementName)); - if(FNumericProperty* StructNumericProperty = CastField(FieldProperty)) - { - void* FieldData = FieldProperty->ContainerPtrToValuePtr(Data); - double PropertyValue = StructNumericProperty->GetFloatingPointPropertyValue(FieldData); - double TargetValue = FCString::Atod(*Interp.PropertyValueStr); - - double EasingFrac = (Interp.EasingRemaining > 0) ? (EasingDelta / Interp.EasingRemaining) : 1; - double EasingInterp = 3*EasingFrac - 3*EasingFrac*EasingFrac + EasingFrac*EasingFrac*EasingFrac; - - double NewValue = PropertyValue * (1 - EasingInterp) + TargetValue * EasingInterp; - StructNumericProperty->SetFloatingPointPropertyValue(FieldData, NewValue); - Done = true; - } - } - - if(!Done) - { - FString ImportText; - if(!Interp.PropertyElementName.IsEmpty()) - ImportText = "(" + Interp.PropertyElementName + "=" + Interp.PropertyValueStr + ")"; - else - ImportText = Interp.PropertyValueStr; - Interp.Property->ImportText_Direct(*ImportText, Data, Interp.Object, 0); - } - - UActorComponent* ActorComponent = Cast(Interp.Object); - if(ActorComponent) - { - if((Interp.Property->GetFName() == TEXT("RelativeLocation")) || - (Interp.Property->GetFName() == TEXT("RelativeRotation")) || - (Interp.Property->GetFName() == TEXT("RelativeScale3D"))) - { - ActorComponent->UpdateComponentToWorld(); - } - } -#if (ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION < 3) // Before 5.3 - if(Interp.Property->HasAnyPropertyFlags(CPF_Interp)) - Interp.Object->PostInterpChange(Interp.Property); -#endif - -#if WITH_EDITOR - TArray ModifiedObjects; - ModifiedObjects.Add(Interp.Actor); - FPropertyChangedEvent PropertyChangedEvent(Interp.Property, EPropertyChangeType::ValueSet, MakeArrayView(ModifiedObjects)); - FEditPropertyChain PropertyChain; - PropertyChain.AddHead(Interp.Property); - FPropertyChangedChainEvent PropertyChangedChainEvent(PropertyChain, PropertyChangedEvent); - - Interp.Object->PostEditChangeChainProperty(PropertyChangedChainEvent); - Interp.Actor->PostEditChangeChainProperty(PropertyChangedChainEvent); -#endif - } - - Interp.EasingRemaining -= EasingDelta; - if(Interp.EasingRemaining == 0) - TriCasterExtInterp.RemoveAtSwap(i); - } -} - - -void UTriCasterExtComponent::ReceiveMetaDataFromSender(UNDIMediaSender* Sender, FString Data) -{ - FText OutErrorMessage; - int32 OutErrorLineNumber; - - FFastXml::ParseXmlFile(this->NDIMetadataParser.Get(), - nullptr, // XmlFilePath - Data.GetCharArray().GetData(), // XmlFileContents - nullptr, // FeedbackContext - false, // bShowSlowTaskDialog - false, // bShowCancelButton - OutErrorMessage, // OutErrorMessage - OutErrorLineNumber // OutErrorLineNumber - ); -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Components/NDIViewportCaptureComponent.cpp b/Plugins/NDIIO/Source/Core/Classes/Components/NDIViewportCaptureComponent.cpp deleted file mode 100644 index 24a796f..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Components/NDIViewportCaptureComponent.cpp +++ /dev/null @@ -1,264 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -UNDIViewportCaptureComponent::UNDIViewportCaptureComponent(const FObjectInitializer& ObjectInitializer) - : Super(ObjectInitializer) -{ - this->bWantsInitializeComponent = true; - this->CaptureSource = ESceneCaptureSource::SCS_FinalToneCurveHDR; - this->PostProcessSettings.bOverride_DepthOfFieldFocalDistance = true; - this->PostProcessSettings.DepthOfFieldFocalDistance = 10000.f; -} - -UNDIViewportCaptureComponent::~UNDIViewportCaptureComponent() -{} - -void UNDIViewportCaptureComponent::InitializeComponent() -{ - Super::InitializeComponent(); - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // define default capture values - const auto& capture_size = !bOverrideBroadcastSettings ? NDIMediaSource->GetFrameSize() : CaptureSize; - const auto& capture_rate = !bOverrideBroadcastSettings ? NDIMediaSource->GetFrameRate() : CaptureRate; - - // change the capture sizes as necessary - ChangeCaptureSettings(capture_size, capture_rate); - - // ensure we are subscribed to the broadcast configuration changed event - this->NDIMediaSource->OnBroadcastConfigurationChanged.RemoveAll(this); - this->NDIMediaSource->OnBroadcastConfigurationChanged.AddDynamic( - this, &UNDIViewportCaptureComponent::OnBroadcastConfigurationChanged); - } -} - -void UNDIViewportCaptureComponent::UninitializeComponent() -{ - if (IsValid(NDIMediaSource)) - { - if (IsValid(TextureTarget)) - { - NDIMediaSource->ChangeVideoTexture(nullptr); - } - } - - Super::UninitializeComponent(); -} - -bool UNDIViewportCaptureComponent::Initialize(UNDIMediaSender* InMediaSource) -{ - // is the media source already set? - if (this->NDIMediaSource == nullptr && InMediaSource != nullptr) - { - // we passed validation, so set the media source - this->NDIMediaSource = InMediaSource; - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // define default capture values - const auto& capture_size = !bOverrideBroadcastSettings ? NDIMediaSource->GetFrameSize() : CaptureSize; - const auto& capture_rate = !bOverrideBroadcastSettings ? NDIMediaSource->GetFrameRate() : CaptureRate; - - // change the capture sizes as necessary - ChangeCaptureSettings(capture_size, capture_rate); - - // ensure we are subscribed to the broadcast configuration changed event - this->NDIMediaSource->OnBroadcastConfigurationChanged.RemoveAll(this); - this->NDIMediaSource->OnBroadcastConfigurationChanged.AddDynamic( - this, &UNDIViewportCaptureComponent::OnBroadcastConfigurationChanged); - } - } - - // did we pass validation - return InMediaSource != nullptr && InMediaSource == NDIMediaSource; -} - -/** - Changes the name of the sender object as seen on the network for remote connections - - @param InSourceName The new name of the source to be identified as on the network -*/ -void UNDIViewportCaptureComponent::ChangeSourceName(const FString& InSourceName) -{ - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->ChangeSourceName(InSourceName); - } -} - -/** - Attempts to change the Broadcast information associated with this media object - - @param InConfiguration The new configuration to broadcast -*/ -void UNDIViewportCaptureComponent::ChangeBroadcastConfiguration(const FNDIBroadcastConfiguration& InConfiguration) -{ - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->ChangeBroadcastConfiguration(InConfiguration); - } -} - -/** - Attempts to change the RenderTarget used in sending video frames over NDI - - @param BroadcastTexture The texture to use as video, while broadcasting over NDI -*/ -void UNDIViewportCaptureComponent::ChangeBroadcastTexture(UTextureRenderTarget2D* BroadcastTexture) -{ - // ensure we have some thread-safety - FScopeLock Lock(&UpdateRenderContext); - - this->TextureTarget = BroadcastTexture; -} - -/** - Change the capture settings of the viewport capture - - @param InCaptureSize The Capture size of the frame to capture of the viewport - @param InCaptureRate A framerate at which to capture frames of the viewport -*/ -void UNDIViewportCaptureComponent::ChangeCaptureSettings(FIntPoint InCaptureSize, FFrameRate InCaptureRate) -{ - // clamp our viewport capture size - int32 capture_width = FMath::Max(InCaptureSize.X, 64); - int32 capture_height = FMath::Max(InCaptureSize.Y, 64); - - // set the capture size - this->CaptureSize = FIntPoint(capture_width, capture_height); - - // set the capture rate - this->CaptureRate = InCaptureRate; - - // clamp the maximum capture rate to something reasonable - float capture_rate_max = 1 / 1000.0f; - float capture_rate = CaptureRate.Denominator / (float)CaptureRate.Numerator; - - // set the primary tick interval to the sensible capture rate - this->PrimaryComponentTick.TickInterval = capture_rate >= capture_rate_max ? capture_rate : -1.0f; - - // ensure we have some thread-safety - FScopeLock Lock(&UpdateRenderContext); - - if (!IsValid(this->TextureTarget)) - { - this->TextureTarget = NewObject( - GetTransientPackage(), UTextureRenderTarget2D::StaticClass(), NAME_None, RF_Transient | RF_MarkAsNative); - this->TextureTarget->UpdateResource(); - } - this->TextureTarget->ResizeTarget(this->CaptureSize.X, this->CaptureSize.Y); -} - -/** - Determines the current tally information. If you specify a timeout then it will wait until it has - changed, otherwise it will simply poll it and return the current tally immediately - - @param IsOnPreview - A state indicating whether this source in on preview of a receiver - @param IsOnProgram - A state indicating whether this source is on program of a receiver -*/ -void UNDIViewportCaptureComponent::GetTallyInformation(bool& IsOnPreview, bool& IsOnProgram) -{ - // Initialize the properties - IsOnPreview = false; - IsOnProgram = false; - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->GetTallyInformation(IsOnPreview, IsOnProgram, 0); - } -} - -/** - Gets the current number of receivers connected to this source. This can be used to avoid rendering - when nothing is connected to the video source. which can significantly improve the efficiency if - you want to make a lot of sources available on the network - - @param Result The total number of connected receivers attached to the broadcast of this object -*/ -void UNDIViewportCaptureComponent::GetNumberOfConnections(int32& Result) -{ - // Initialize the property - Result = 0; - - // validate the Media Source object - if (IsValid(NDIMediaSource)) - { - // call the media source implementation of the function - NDIMediaSource->GetNumberOfConnections(Result); - } -} - - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later -void UNDIViewportCaptureComponent::UpdateSceneCaptureContents(FSceneInterface* Scene, ISceneRenderBuilder& SceneRenderBuilder) -#else -void UNDIViewportCaptureComponent::UpdateSceneCaptureContents(FSceneInterface* Scene) -#endif -{ - // ensure we have some thread-safety - FScopeLock Lock(&UpdateRenderContext); - - if (TextureTarget == nullptr) - return; - - if (IsValid(NDIMediaSource)) - { - NDIMediaSource->ChangeVideoTexture(TextureTarget); - - // Some capture sources treat alpha as opacity, some sources use transparency. - // Alpha in NDI is opacity. Reverse the alpha mapping to always get opacity. - bool flip_alpha = (CaptureSource == SCS_SceneColorHDR) || (CaptureSource == SCS_SceneColorHDRNoAlpha) || - (CaptureSource == SCS_SceneDepth) || (CaptureSource == SCS_Normal) || - (CaptureSource == SCS_BaseColor); - if (flip_alpha == false) - NDIMediaSource->ChangeAlphaRemap(AlphaMin, AlphaMax); - else - NDIMediaSource->ChangeAlphaRemap(AlphaMax, AlphaMin); - - // Do the actual capturing -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - Super::UpdateSceneCaptureContents(Scene, SceneRenderBuilder); -#else - Super::UpdateSceneCaptureContents(Scene); -#endif - } -} - -void UNDIViewportCaptureComponent::OnBroadcastConfigurationChanged(UNDIMediaSender* Sender) -{ - // If we are not overriding the broadcast settings and the sender is valid - if (!bOverrideBroadcastSettings && IsValid(Sender)) - { - // change the capture sizes as necessary - ChangeCaptureSettings(Sender->GetFrameSize(), Sender->GetFrameRate()); - } -} diff --git a/Plugins/NDIIO/Source/Core/Classes/NDIIOPluginModule.cpp b/Plugins/NDIIO/Source/Core/Classes/NDIIOPluginModule.cpp deleted file mode 100644 index f61fae4..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/NDIIOPluginModule.cpp +++ /dev/null @@ -1,305 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include -#include -#include "Player/NDIMediaPlayer.h" -#include - -#include - -#include -#include - -#include -#include - -// Meaning the plugin is being compiled with the editor -#if WITH_EDITOR - -#include "ThumbnailRendering/ThumbnailManager.h" -#include "ThumbnailRendering/TextureThumbnailRenderer.h" - -#include -#include - -#include - -#endif - -#define LOCTEXT_NAMESPACE "FNDIIOPluginModule" - - -void FNDIIOPluginModule::StartupModule() -{ - // Doubly Ensure that this handle is nullptr - NDI_LIB_HANDLE = nullptr; - - if (LoadModuleDependencies()) - { -#if UE_EDITOR - - if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr("Settings")) - { - SettingsModule->RegisterSettings( - "Project", "Plugins", "NDI", LOCTEXT("NDISettingsName", "Vizrt NDI"), - LOCTEXT("NDISettingsDescription", "Vizrt NDI(R) Engine Intergration Settings"), - GetMutableDefault()); - } - - // Ensure that the thumbnail for the 'NDI Media Texture2D' is being updated, as the texture is being used. - UThumbnailManager::Get().RegisterCustomRenderer(UNDIMediaTexture2D::StaticClass(), - UTextureThumbnailRenderer::StaticClass()); - -#endif - - // Construct our Services - this->NDIFinderService = MakeShareable(new FNDIFinderService()); - this->NDIConnectionService = MakeShareable(new FNDIConnectionService()); - - // Start the service - if (NDIFinderService.IsValid()) - NDIFinderService->Start(); - - // Start the service - if (NDIConnectionService.IsValid()) - NDIConnectionService->Start(); - } - else - { -#if PLATFORM_WINDOWS - // Write an error message to the log. - UE_LOG(LogWindows, Error, - TEXT("Unable to load \"Processing.NDI.Lib.x64.dll\" from the NDI 6 Runtime Directory.")); - -#if UE_EDITOR - - const FText& WarningMessage = - LOCTEXT("NDIRuntimeMissing", - "Cannot find \"Processing.NDI.Lib.x64.dll\" from the NDI 6 Runtime Directory. " - "Continued usage of the plugin can cause instability within the editor.\r\n\r\n" - - "Please refer to the 'NDI IO Plugin for Unreal Engine Quickstart Guide' " - "for additional information related to installation instructions for this plugin.\r\n\r\n"); - - // Open a message box, showing that things will not work since the NDI Runtime Directory cannot be found - if (FMessageDialog::Open(EAppMsgType::OkCancel, EAppReturnType::Ok, WarningMessage) == EAppReturnType::Ok) - { - FString URLResult = FString(""); - FPlatformProcess::LaunchURL(*FString("https://ndi.video/sdk/"), nullptr, &URLResult); - } - -#endif -#endif - -#if (PLATFORM_LINUX || PLATFORM_LINUXARM64) - // Write an error message to the log. - UE_LOG(LogLinux, Error, - TEXT("Unable to load \"" NDILIB_LIBRARY_NAME "\" from the NDI 6 Runtime.")); - -#if UE_EDITOR - - const FText& WarningMessage = - LOCTEXT("NDIRuntimeMissing", - "Cannot find \"" NDILIB_LIBRARY_NAME "\" from the NDI 6 Runtime. " - "Continued usage of the plugin can cause instability within the editor.\r\n\r\n" - - "Please refer to the 'NDI IO Plugin for Unreal Engine Quickstart Guide' " - "for additional information related to installation instructions for this plugin.\r\n\r\n"); - - // Open a message box, showing that things will not work since the NDI Runtime Directory cannot be found - if (FMessageDialog::Open(EAppMsgType::OkCancel, EAppReturnType::Ok, WarningMessage) == EAppReturnType::Ok) - { - FString URLResult = FString(""); - FPlatformProcess::LaunchURL(*FString("https://ndi.video/sdk/"), nullptr, &URLResult); - } - -#endif -#endif - } - - - // supported platforms - SupportedPlatforms.Add(TEXT("Windows")); - SupportedPlatforms.Add(TEXT("Linux")); - SupportedPlatforms.Add(TEXT("LinuxAArch64")); - - // supported schemes - SupportedUriSchemes.Add(TEXT("ndiio")); - - // register player factory - auto MediaModule = FModuleManager::LoadModulePtr("Media"); - - if (MediaModule != nullptr) - { - MediaModule->RegisterPlayerFactory(*this); - } - - FApp::SetUnfocusedVolumeMultiplier(1.f); -} - -void FNDIIOPluginModule::ShutdownModule() -{ - // unregister player factory - auto MediaModule = FModuleManager::GetModulePtr("Media"); - - if (MediaModule != nullptr) - { - MediaModule->UnregisterPlayerFactory(*this); - } - - - if (NDIFinderService.IsValid()) - NDIFinderService->Shutdown(); - - ShutdownModuleDependencies(); -} - -bool FNDIIOPluginModule::BeginBroadcastingActiveViewport() -{ - // Ensure we have a valid service - if (NDIConnectionService.IsValid()) - { - // perform the requested functionality - return NDIConnectionService->BeginBroadcastingActiveViewport(); - } - - return false; -} - -void FNDIIOPluginModule::StopBroadcastingActiveViewport() -{ - // Ensure we have a valid service - if (NDIConnectionService.IsValid()) - { - // perform the requested functionality - NDIConnectionService->StopBroadcastingActiveViewport(); - } -} - - - - -//~ IMediaPlayerFactory interface -bool FNDIIOPluginModule::CanPlayUrl(const FString& Url, const IMediaOptions* /*Options*/, TArray* /*OutWarnings*/, TArray* OutErrors) const -{ - FString Scheme; - FString Location; - - // check scheme - if (!Url.Split(TEXT("://"), &Scheme, &Location, ESearchCase::CaseSensitive)) - { - if (OutErrors != nullptr) - { - OutErrors->Add(LOCTEXT("NoSchemeFound", "No URI scheme found")); - } - - return false; - } - - if (!SupportedUriSchemes.Contains(Scheme)) - { - if (OutErrors != nullptr) - { - OutErrors->Add(FText::Format(LOCTEXT("SchemeNotSupported", "The URI scheme '{0}' is not supported"), FText::FromString(Scheme))); - } - - return false; - } - - return true; -} - -TSharedPtr FNDIIOPluginModule::CreatePlayer(IMediaEventSink& EventSink) -{ - return MakeShared(EventSink); -} - -FText FNDIIOPluginModule::GetDisplayName() const -{ - return LOCTEXT("MediaPlayerDisplayName", "NDI Interface"); -} - -FName FNDIIOPluginModule::GetPlayerName() const -{ - static FName PlayerName(TEXT("NDIMedia")); - return PlayerName; -} - -FGuid FNDIIOPluginModule::GetPlayerPluginGUID() const -{ - static FGuid PlayerPluginGUID(0x71b13c2b, 0x70874965, 0x8a0e23f7, 0x5be6698f); - return PlayerPluginGUID; -} - -const TArray& FNDIIOPluginModule::GetSupportedPlatforms() const -{ - return SupportedPlatforms; -} - -bool FNDIIOPluginModule::SupportsFeature(EMediaFeature Feature) const -{ - return Feature == EMediaFeature::AudioSamples || - Feature == EMediaFeature::MetadataTracks || - Feature == EMediaFeature::VideoSamples; -} - - - - -bool FNDIIOPluginModule::LoadModuleDependencies() -{ -#if PLATFORM_WINDOWS - // Get the Binaries File Location - const FString env_variable = TEXT(NDILIB_REDIST_FOLDER); - const FString binaries_path = FPlatformMisc::GetEnvironmentVariable(*env_variable) + "/Processing.NDI.Lib.x64.dll"; - - // We can't validate if it's valid, but we can determine if it's explicitly not. - if (binaries_path.Len() > 0) - { - // Load the DLL - this->NDI_LIB_HANDLE = FPlatformProcess::GetDllHandle(*binaries_path); - - // Not required, but "correct" (see the SDK documentation) - if (this->NDI_LIB_HANDLE != nullptr && !NDIlib_initialize()) - { - // We were unable to initialize the library, so lets free the handle - FPlatformProcess::FreeDllHandle(this->NDI_LIB_HANDLE); - this->NDI_LIB_HANDLE = nullptr; - } - } - - // Did we successfully load the NDI library? - return this->NDI_LIB_HANDLE != nullptr; -#endif - -#if (PLATFORM_LINUX || PLATFORM_LINUXARM64) - return true; -#endif -} - -void FNDIIOPluginModule::ShutdownModuleDependencies() -{ -#if PLATFORM_WINDOWS - if (this->NDI_LIB_HANDLE != nullptr) - { - NDIlib_destroy(); - FPlatformProcess::FreeDllHandle(this->NDI_LIB_HANDLE); - this->NDI_LIB_HANDLE = nullptr; - } -#endif - -#if (PLATFORM_LINUX || PLATFORM_LINUXARM64) -#endif -} - -#undef LOCTEXT_NAMESPACE - -IMPLEMENT_MODULE(FNDIIOPluginModule, NDIIO); diff --git a/Plugins/NDIIO/Source/Core/Classes/Objects/Libraries/NDIIOLibrary.cpp b/Plugins/NDIIO/Source/Core/Classes/Objects/Libraries/NDIIOLibrary.cpp deleted file mode 100644 index 58fdfa5..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Objects/Libraries/NDIIOLibrary.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include -#include - -#include - -const TArray UNDIIOLibrary::K2_GetNDISourceCollection() -{ - // Return the FinderServices current network source collection - return FNDIFinderService::GetNetworkSourceCollection(); -} - -const bool UNDIIOLibrary::K2_FindNetworkSourceByName(UObject* WorldContextObject, - FNDIConnectionInformation& ConnectionInformation, - FString InSourceName) -{ - // Ensure that the passed in information is empty - ConnectionInformation.Reset(); - - // Get the current network source collection from the finder service. - const TArray NetworkSourceCollection = FNDIFinderService::GetNetworkSourceCollection(); - - // Get the current number of network source items in the collection - int32 final_count = NetworkSourceCollection.Num(); - - // Ensure we have a wide range of items to search through. - int32 last_index = final_count; - - // Since the Source collection returned is already sorted alphabetically do a binary search to speed things up. - // We are only going to do comparisons that are necessary using O(log(n)) time complexity - for (int32 current_index = 0; current_index < last_index; /* current_index changed in loop */) - { - // Ensure that the index is valid (this will protect against negative values) - if (NetworkSourceCollection.IsValidIndex(current_index)) - { - // Get the source reference from the collection - FNDIConnectionInformation source_info = NetworkSourceCollection[current_index]; - - // do a comparison against the requested SourceName - if (int32 comparitor_value = InSourceName.Compare(source_info.SourceName, ESearchCase::IgnoreCase)) - { - // Our search says that our source name is greater than the info we checked - if (comparitor_value <= 0) - { - // set the last index to the current index - last_index = current_index; - - // get halfway between the last index and the 0th index - current_index = last_index / 2; - } - - // Our search says that our source name is less than the info we checked - else if (comparitor_value > 0) - { - // move up half the number of items within the collection - current_index = (last_index + current_index + 1) / 2; - } - } - - // We found a comparable source. - else - { - // Set the source information structure - ConnectionInformation = source_info; - - // return success - return true; - } - } - - // Something weird happened (maybe the first check was larger than the search term); just return a fail - else - return false; - } - - return false; -} - -bool UNDIIOLibrary::K2_BeginBroadcastingActiveViewport(UObject* WorldContextObject) -{ - // Get the plugin module for the owner of this object - if (FNDIIOPluginModule* PluginModule = FModuleManager::GetModulePtr("NDIIO")) - { - // Call the underlying functionality - return PluginModule->BeginBroadcastingActiveViewport(); - } - - return false; -} - -void UNDIIOLibrary::K2_StopBroadcastingActiveViewport(UObject* WorldContextObject) -{ - // Get the plugin module for the owner of this object - if (FNDIIOPluginModule* PluginModule = FModuleManager::GetModulePtr("NDIIO")) - { - // Call the underlying functionality - PluginModule->StopBroadcastingActiveViewport(); - } -} - -UNDIMediaReceiver* UNDIIOLibrary::K2_GetNDIMediaReceiver(UNDIMediaReceiver* Receiver) -{ - return Receiver; -} - -UNDIMediaSender* UNDIIOLibrary::K2_GetNDIMediaSender(UNDIMediaSender* Sender) -{ - return Sender; -} - - -const TArray UNDIIOLibrary::K2_ParseNDIMetaData(FString Data) -{ - class Parser : public IFastXmlCallback - { - public: - Parser(TArray& ElementsIn) - : Elements(ElementsIn) - {} - - virtual ~Parser() - {} - - virtual bool ProcessXmlDeclaration(const TCHAR* ElementData, int32 XmlFileLineNumber) override - { - return true; - } - - virtual bool ProcessElement(const TCHAR* ElementName, const TCHAR* ElementData, int32 XmlFileLineNumber) override - { - if(CurrentElementStack.Num() > 0) - return false; - - FNDIMetaDataElement NewElement; - NewElement.ElementName = ElementName; - NewElement.Data = ElementData; - - if(CurrentElementStack.Num() == 0) - { - Elements.Push(NewElement); - CurrentElementStack.Push(&Elements.Last()); - } - - return true; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - check(CurrentElementStack.Num() > 0); - - FNDIMetaDataElement* CurrentElement = CurrentElementStack.Last(); - - CurrentElement->Attributes.Add(AttributeName, AttributeValue); - - return true; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - check(CurrentElementStack.Num() > 0); - - CurrentElementStack.Pop(); - - return true; - } - - virtual bool ProcessComment(const TCHAR* Comment) override - { - return true; - } - - private: - TArray& Elements; - TArray CurrentElementStack; - }; - - TArray Elements; - Parser Parser(Elements); - - FText OutErrorMessage; - int32 OutErrorLineNumber; - - FFastXml::ParseXmlFile(&Parser, - nullptr, // XmlFilePath - Data.GetCharArray().GetData(), // XmlFileContents - nullptr, // FeedbackContext - false, // bShowSlowTaskDialog - false, // bShowCancelButton - OutErrorMessage, // OutErrorMessage - OutErrorLineNumber // OutErrorLineNumber - ); - - return Elements; -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaReceiver.cpp b/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaReceiver.cpp deleted file mode 100644 index 944228c..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaReceiver.cpp +++ /dev/null @@ -1,1525 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "NDIShaders.h" - -#if WITH_EDITOR -#include -#endif - -#include - -UNDIMediaReceiver::UNDIMediaReceiver() -{ - this->InternalVideoTexture = NewObject(GetTransientPackage(), UNDIMediaTexture2D::StaticClass(), NAME_None, RF_Transient | RF_MarkAsNative); -} - -/** - Attempts to perform initialization logic for creating a receiver through the NDI sdk api -*/ -bool UNDIMediaReceiver::Initialize(const FNDIConnectionInformation& InConnectionInformation, UNDIMediaReceiver::EUsage InUsage) -{ - if (this->p_receive_instance == nullptr) - { - if (IsValid(this->InternalVideoTexture)) - this->InternalVideoTexture->UpdateResource(); - - // create a non-connected receiver instance - NDIlib_recv_create_v3_t settings; - settings.allow_video_fields = false; - settings.bandwidth = NDIlib_recv_bandwidth_highest; - settings.color_format = NDIlib_recv_color_format_fastest; - - p_receive_instance = NDIlib_recv_create_v3(&settings); - - // check if it was successful - if (p_receive_instance != nullptr) - { - // If the incoming connection information is valid - if (InConnectionInformation.IsValid()) - { - //// Alright we created a non-connected receiver. Lets actually connect - ChangeConnection(InConnectionInformation); - } - - if (InUsage == UNDIMediaReceiver::EUsage::Standalone) - { - this->OnNDIReceiverVideoCaptureEvent.Remove(VideoCaptureEventHandle); - VideoCaptureEventHandle = this->OnNDIReceiverVideoCaptureEvent.AddLambda([this](UNDIMediaReceiver* receiver, const NDIlib_video_frame_v2_t& video_frame) - { - FTextureRHIRef ConversionTexture = this->DisplayFrame(video_frame); - if (ConversionTexture != nullptr) - { - if ((GetVideoTextureResource() != nullptr) && (GetVideoTextureResource()->TextureRHI != ConversionTexture)) - { - GetVideoTextureResource()->TextureRHI = ConversionTexture; - RHIUpdateTextureReference(this->VideoTexture->TextureReference.TextureReferenceRHI, ConversionTexture); - } - if ((GetInternalVideoTextureResource() != nullptr) && (GetInternalVideoTextureResource()->TextureRHI != ConversionTexture)) - { - GetInternalVideoTextureResource()->TextureRHI = ConversionTexture; - RHIUpdateTextureReference(this->InternalVideoTexture->TextureReference.TextureReferenceRHI, ConversionTexture); - } - } - }); - - // We don't want to limit the engine rendering speed to the sync rate of the connection hook - // into the core delegates render thread 'EndFrame' - FCoreDelegates::OnEndFrameRT.Remove(FrameEndRTHandle); - FrameEndRTHandle.Reset(); - FrameEndRTHandle = FCoreDelegates::OnEndFrameRT.AddLambda([this]() - { - while(this->CaptureConnectedMetadata()) - ; // Potential improvement: limit how much metadata is processed, to avoid appearing to lock up due to a metadata flood - this->CaptureConnectedVideo(); - }); - -#if UE_EDITOR - // We don't want to provide perceived issues with the plugin not working so - // when we get a Pre-exit message, forcefully shutdown the receiver - FCoreDelegates::OnPreExit.AddWeakLambda(this, [&]() { - this->Shutdown(); - FCoreDelegates::OnPreExit.RemoveAll(this); - }); - - // We handle this in the 'Play In Editor' versions as well. - FEditorDelegates::PrePIEEnded.AddWeakLambda(this, [&](const bool) { - this->Shutdown(); - FEditorDelegates::PrePIEEnded.RemoveAll(this); - }); -#endif - } - - return true; - } - } - - return false; -} - -bool UNDIMediaReceiver::Initialize(UNDIMediaReceiver::EUsage InUsage) -{ - return Initialize(ConnectionSetting, InUsage); -} - - -void UNDIMediaReceiver::StartConnection() -{ - FScopeLock RenderLock(&RenderSyncContext); - FScopeLock AudioLock(&AudioSyncContext); - FScopeLock MetadataLock(&MetadataSyncContext); - - if (this->ConnectionInformation.IsValid()) - { - // Create a non-connected receiver instance - NDIlib_recv_create_v3_t settings; - settings.allow_video_fields = true; - settings.bandwidth = this->ConnectionInformation; - settings.color_format = NDIlib_recv_color_format_fastest; - - // Do the conversion on the connection information - // Beware of the limited lifetime of TCHAR_TO_UTF8 values - NDIlib_source_t connection; - std::string SourceNameStr(TCHAR_TO_UTF8(*this->ConnectionInformation.GetNDIName())); - connection.p_ndi_name = SourceNameStr.c_str(); - std::string UrlStr(TCHAR_TO_UTF8(*this->ConnectionInformation.Url)); - connection.p_url_address = UrlStr.c_str(); - - // Create a receiver and connect to the source - auto* receive_instance = NDIlib_recv_create_v3(&settings); - NDIlib_recv_connect(receive_instance, &connection); - - // Get rid of existing connection - StopConnection(); - - // set the receiver to the new connection - p_receive_instance = receive_instance; - - // create a new frame sync instance - p_framesync_instance = NDIlib_framesync_create(p_receive_instance); - } -} - -void UNDIMediaReceiver::StopConnection() -{ - FScopeLock RenderLock(&RenderSyncContext); - FScopeLock AudioLock(&AudioSyncContext); - FScopeLock MetadataLock(&MetadataSyncContext); - - // destroy the framesync instance - if (p_framesync_instance != nullptr) - NDIlib_framesync_destroy(p_framesync_instance); - p_framesync_instance = nullptr; - - // Free the receiver - if (p_receive_instance != nullptr) - NDIlib_recv_destroy(p_receive_instance); - p_receive_instance = nullptr; -} - -/** - Attempts to change the connection to another NDI sender source -*/ -void UNDIMediaReceiver::ChangeConnection(const FNDIConnectionInformation& InConnectionInformation) -{ - // Ensure some thread-safety because our 'Capture Connected Video' function is called on the render thread - FScopeLock RenderLock(&RenderSyncContext); - FScopeLock AudioLock(&AudioSyncContext); - FScopeLock MetadataLock(&MetadataSyncContext); - - // We should only worry about connections that are already created - if (p_receive_instance != nullptr) - { - // Set the connection information for the requested new connection - if (this->ConnectionInformation != InConnectionInformation) - { - bool bSourceChanged = false; - if(this->ConnectionInformation.SourceName != InConnectionInformation.SourceName) - bSourceChanged = true; - if(this->ConnectionInformation.Url != InConnectionInformation.Url) - bSourceChanged = true; - if(this->ConnectionInformation.MachineName != InConnectionInformation.MachineName) - bSourceChanged = true; - if(this->ConnectionInformation.StreamName != InConnectionInformation.StreamName) - bSourceChanged = true; - - bool bBandwidthChanged = false; - if(this->ConnectionInformation.Bandwidth != InConnectionInformation.Bandwidth) - bBandwidthChanged = true; - - bool bMutingChanged = false; - if(this->ConnectionInformation.bMuteAudio != InConnectionInformation.bMuteAudio) - bMutingChanged = true; - if(this->ConnectionInformation.bMuteVideo != InConnectionInformation.bMuteVideo) - bMutingChanged = true; - - this->ConnectionInformation = InConnectionInformation; - - if (this->ConnectionInformation.IsValid()) - { - if (bSourceChanged || bBandwidthChanged || (p_receive_instance == nullptr) || (p_framesync_instance == nullptr)) - { - // Connection information is valid, and something has changed that requires the connection to be remade - - StartConnection(); - } - } - else - { - // Requested connection is invalid, indicating we should close the current connection - - StopConnection(); - } - } - } -} - -/** - Attempts to change the Video Texture object used as the video frame capture object -*/ -void UNDIMediaReceiver::ChangeVideoTexture(UNDIMediaTexture2D* InVideoTexture) -{ - FScopeLock Lock(&RenderSyncContext); - - if (IsValid(this->VideoTexture)) - { - // make sure that the old texture is not referencing the rendering of this texture - this->VideoTexture->UpdateTextureReference(FRHICommandListExecutor::GetImmediateCommandList(), nullptr); - } - if (IsValid(this->InternalVideoTexture)) - { - // make sure that the old texture is not referencing the rendering of this texture - this->InternalVideoTexture->UpdateTextureReference(FRHICommandListExecutor::GetImmediateCommandList(), nullptr); - } - - // Just copy the new texture here. - this->VideoTexture = InVideoTexture; -} - -/** - Attempts to generate the pcm data required by the 'AudioWave' object - We will generate mono audio, down-mixing if the source has multiple channels -*/ -int32 UNDIMediaReceiver::GeneratePCMData(UNDIMediaSoundWave* AudioWave, uint8* PCMData, const int32 SamplesNeeded) -{ - FScopeLock Lock(&AudioSyncContext); - - int32 samples_generated = 0; - int32 requested_frame_rate = IsValid(AudioWave) ? AudioWave->GetSampleRateForCurrentPlatform() : 48000; - int32 requested_no_channels = IsValid(AudioWave) ? AudioWave->NumChannels : 1; - int32 requested_no_frames = SamplesNeeded / requested_no_channels; - - if ((p_framesync_instance != nullptr) && (ConnectionInformation.bMuteAudio == false)) - { - int available_no_frames = NDIlib_framesync_audio_queue_depth(p_framesync_instance); // Samples per channel - - if (available_no_frames > 0) - { - NDIlib_audio_frame_v2_t audio_frame; - NDIlib_framesync_capture_audio(p_framesync_instance, &audio_frame, requested_frame_rate, 0, FMath::Min(available_no_frames, requested_no_frames)); - - if (requested_no_channels == audio_frame.no_channels) - { - // Convert to PCM - for (int32 channel_index = 0; channel_index < requested_no_channels; ++channel_index) - { - const float* channel_data = reinterpret_cast(reinterpret_cast(audio_frame.p_data) + channel_index * audio_frame.channel_stride_in_bytes); - uint8* pcm_data = PCMData + channel_index * sizeof(int16); - - for (int32 sample_index = 0; sample_index < audio_frame.no_samples; ++sample_index) - { - // convert float to int16 - int32 sample_int32 = FMath::RoundToInt(*channel_data * 32767.0f); - // perform clamp between different integer types - int16 sample = sample_int32 < INT16_MIN ? INT16_MIN : sample_int32 > INT16_MAX ? INT16_MAX : sample_int32; - - pcm_data[0] = sample & 0xff; - pcm_data[1] = (sample >> 8) & 0xff; - - ++channel_data; - pcm_data += requested_no_channels * sizeof(int16); - } - } - } - - else if (requested_no_channels < audio_frame.no_channels) - { - // Add extra channels to all common channels - - const int32 no_extra_channels = audio_frame.no_channels - requested_no_channels; - - for (int32 src_channel_index = requested_no_channels; src_channel_index < audio_frame.no_channels; ++src_channel_index) - { - const float* src_channel_data = reinterpret_cast(reinterpret_cast(audio_frame.p_data) + src_channel_index * audio_frame.channel_stride_in_bytes); - for (int32 dst_channel_index = 0; dst_channel_index < requested_no_channels; ++dst_channel_index) - { - float* dst_channel_data = reinterpret_cast(reinterpret_cast(audio_frame.p_data) + dst_channel_index * audio_frame.channel_stride_in_bytes); - for (int32 sample_index = 0; sample_index < audio_frame.no_samples; ++sample_index) - { - dst_channel_data[sample_index] += src_channel_data[sample_index]; - } - } - } - - // Convert to PCM, taking care of any normalization - for (int32 channel_index = 0; channel_index < requested_no_channels; ++channel_index) - { - const float* channel_data = reinterpret_cast(reinterpret_cast(audio_frame.p_data) + channel_index * audio_frame.channel_stride_in_bytes); - uint8* pcm_data = PCMData + channel_index * sizeof(int16); - - for (int32 sample_index = 0; sample_index < audio_frame.no_samples; ++sample_index) - { - // normalize and convert float to int16 - int32 sample_int32 = FMath::RoundToInt(*channel_data / (no_extra_channels+1) * 32767.0f); - // perform clamp between different integer types - int16 sample = sample_int32 < INT16_MIN ? INT16_MIN : sample_int32 > INT16_MAX ? INT16_MAX : sample_int32; - - pcm_data[0] = sample & 0xff; - pcm_data[1] = (sample >> 8) & 0xff; - - ++channel_data; - pcm_data += requested_no_channels * sizeof(int16); - } - } - } - - else if (requested_no_channels > audio_frame.no_channels) - { - // Copy common channels - - // Convert to PCM, taking care of any normalization - for (int32 channel_index = 0; channel_index < audio_frame.no_channels; ++channel_index) - { - const float* channel_data = reinterpret_cast(reinterpret_cast(audio_frame.p_data) + channel_index * audio_frame.channel_stride_in_bytes); - uint8* pcm_data = PCMData + channel_index * sizeof(int16); - - for (int32 sample_index = 0; sample_index < audio_frame.no_samples; ++sample_index) - { - // normalize and convert float to int16 - int32 sample_int32 = FMath::RoundToInt(*channel_data * 32767.0f); - // perform clamp between different integer types - int16 sample = sample_int32 < INT16_MIN ? INT16_MIN : sample_int32 > INT16_MAX ? INT16_MAX : sample_int32; - - pcm_data[0] = sample & 0xff; - pcm_data[1] = (sample >> 8) & 0xff; - - ++channel_data; - pcm_data += requested_no_channels * sizeof(int16); - } - } - - // Average source channels to duplicate to extra channels - - for (int32 sample_index = 0; sample_index < audio_frame.no_samples; ++sample_index) - { - float sample_value = 0.f; - for (int32 src_channel_index = 0; src_channel_index < audio_frame.no_channels; ++src_channel_index) - { - const float* src_channel_data = reinterpret_cast(reinterpret_cast(audio_frame.p_data) + src_channel_index * audio_frame.channel_stride_in_bytes); - sample_value += src_channel_data[sample_index]; - } - - // normalize and convert float to int16 - int32 sample_int32 = FMath::RoundToInt(sample_value / audio_frame.no_channels * 32767.0f); - // perform clamp between different integer types - int16 sample = sample_int32 < INT16_MIN ? INT16_MIN : sample_int32 > INT16_MAX ? INT16_MAX : sample_int32; - - for (int32 dst_channel_index = audio_frame.no_channels; dst_channel_index < requested_no_channels; ++dst_channel_index) - { - uint8* pcm_data = PCMData + dst_channel_index * sizeof(int16) + sample_index * requested_no_channels * sizeof(int16); - pcm_data[0] = sample & 0xff; - pcm_data[1] = (sample >> 8) & 0xff; - } - } - } - - samples_generated = audio_frame.no_samples * requested_no_channels; - - // clean up our audio frame - NDIlib_framesync_free_audio(p_framesync_instance, &audio_frame); - } - else - { - const int32 available_samples = FMath::Min(128 * requested_no_channels, SamplesNeeded); - - FMemory::Memset(PCMData, 0, available_samples * sizeof(int16)); - - samples_generated = available_samples; - } - } - - return samples_generated; -} - -int32 UNDIMediaReceiver::GetAudioChannels() -{ - FScopeLock Lock(&AudioSyncContext); - - int32 no_channels = 0; - - if ((p_framesync_instance != nullptr) && (ConnectionInformation.bMuteAudio == false)) - { - int available_no_frames = NDIlib_framesync_audio_queue_depth(p_framesync_instance); // Samples per channel - - if (available_no_frames > 0) - { - NDIlib_audio_frame_v2_t audio_frame; - NDIlib_framesync_capture_audio(p_framesync_instance, &audio_frame, 48000, 0, 0); - no_channels = audio_frame.no_channels; - } - } - - return no_channels; -} - -/** - Attempts to register a sound wave object with this object -*/ -void UNDIMediaReceiver::RegisterAudioWave(UNDIMediaSoundWave* InAudioWave) -{ - FScopeLock Lock(&AudioSyncContext); - - // Determine if the audio wave being passed into this object is valid - if (IsValid(InAudioWave)) - { - // Only add sources which are not already a part of this receiver - if (!AudioSourceCollection.ContainsByPredicate( - [&](UNDIMediaSoundWave* Source) { return Source == InAudioWave; })) - { - - AudioSourceCollection.Add(InAudioWave); - InAudioWave->SetConnectionSource(this); - } - } -} - -/** - This will send a metadata frame to the sender - The data is expected to be valid XML -*/ -void UNDIMediaReceiver::SendMetadataFrame(const FString& Data) -{ - FScopeLock Lock(&MetadataSyncContext); - - if (p_receive_instance != nullptr) - { - NDIlib_metadata_frame_t metadata; - std::string DataStr(TCHAR_TO_UTF8(*Data)); - metadata.p_data = const_cast(DataStr.c_str()); - metadata.length = DataStr.length(); - metadata.timecode = FDateTime::Now().GetTimeOfDay().GetTicks(); - - NDIlib_recv_send_metadata(p_receive_instance, &metadata); - } -} - -/** - This will send a metadata frame to the sender - The data will be formatted as: -*/ -void UNDIMediaReceiver::SendMetadataFrameAttr(const FString& Element, const FString& ElementData) -{ - FString Data = "<" + Element + ">" + ElementData + ""; - SendMetadataFrame(Data); -} - -/** - This will send a metadata frame to the sender - The data will be formatted as: -*/ -void UNDIMediaReceiver::SendMetadataFrameAttrs(const FString& Element, const TMap& Attributes) -{ - FString Data = "<" + Element; - - for(const auto& Attribute : Attributes) - { - Data += " " + Attribute.Key + "=\"" + Attribute.Value + "\""; - } - - Data += "/>"; - - SendMetadataFrame(Data); -} - - -/** - This will set the up-stream tally notifications. If no streams are connected, it will automatically - send the tally state upon connection -*/ -void UNDIMediaReceiver::SendTallyInformation(const bool& IsOnPreview, const bool& IsOnProgram) -{ - // Currently unsupported -} - -/** - Attempts to immediately stop receiving frames from the connected NDI sender -*/ -void UNDIMediaReceiver::Shutdown() -{ - ENQUEUE_RENDER_COMMAND(NDIMediaReceiver_ShutdownRT)([this](FRHICommandListImmediate& RHICmdList) - { - this->RenderTarget.SafeRelease(); - this->RenderTargetDescriptor = FPooledRenderTargetDesc(); - }); - - this->OnNDIReceiverVideoCaptureEvent.Remove(VideoCaptureEventHandle); - VideoCaptureEventHandle.Reset(); - - // Unregister render thread frame end delegate lambda. - FCoreDelegates::OnEndFrameRT.Remove(FrameEndRTHandle); - FrameEndRTHandle.Reset(); - - // Move audio source collection to temporary, so that cleanup can be done without - // holding the lock (which could otherwise cause a deadlock if UNDIMediaSoundWave - // is still generating PCM data) - TArray OldAudioSourceCollection; - { - FScopeLock AudioLock(&AudioSyncContext); - - OldAudioSourceCollection = MoveTemp(AudioSourceCollection); - } - - // get the number of available audio sources within the collection - int32 source_count = OldAudioSourceCollection.Num(); - - // iterate the collection of available audio sources - for (int32 iter = source_count - 1; iter >= 0; --iter) - { - // Define and Determine the validity of an item within the collection - if (auto* AudioWave = OldAudioSourceCollection[iter]) - { - // ensure that we remove the audio source reference - OldAudioSourceCollection.RemoveAt(iter); - - // Remove ourselves from the Audio wave object which is trying to render audio frames - // as fast as possible - AudioWave->SetConnectionSource(nullptr); - } - } - - { - FScopeLock RenderLock(&RenderSyncContext); - FScopeLock AudioLock(&AudioSyncContext); - FScopeLock MetadataLock(&MetadataSyncContext); - - if (p_receive_instance != nullptr) - { - if (p_framesync_instance != nullptr) - { - NDIlib_framesync_destroy(p_framesync_instance); - p_framesync_instance = nullptr; - } - - NDIlib_recv_destroy(p_receive_instance); - p_receive_instance = nullptr; - } - } - - // Reset the connection status of this object - SetIsCurrentlyConnected(false); - - this->ConnectionInformation.Reset(); - this->PerformanceData.Reset(); - this->FrameRate = FFrameRate(60, 1); - this->Resolution = FIntPoint(0, 0); - this->Timecode = FTimecode(0, FrameRate, true, true); -} - -/** - Remove the AudioWave object from this object (if it was previously registered) - - @param InAudioWave An NDIMediaSoundWave object registered with this object -*/ -void UNDIMediaReceiver::UnregisterAudioWave(UNDIMediaSoundWave* InAudioWave) -{ - FScopeLock Lock(&AudioSyncContext); - - // Determine if the audio wave being passed into this object is valid - if (IsValid(InAudioWave)) - { - // We don't care about the order of the collection, - // we only care to remove the object as fast as possible - this->AudioSourceCollection.RemoveSwap(InAudioWave); - } -} - -/** - Updates the DynamicMaterial with the VideoTexture of this object -*/ -void UNDIMediaReceiver::UpdateMaterialTexture(UMaterialInstanceDynamic* MaterialInstance, FString ParameterName) -{ - // Ensure that both the material instance and the video texture are valid - if (IsValid(MaterialInstance)) - { - if (IsValid(this->VideoTexture)) - { - // Call the function to set the texture parameter with the proper texture - MaterialInstance->SetTextureParameterValue(FName(*ParameterName), this->VideoTexture); - } - else if (IsValid(this->InternalVideoTexture)) - { - // Call the function to set the texture parameter with the proper texture - MaterialInstance->SetTextureParameterValue(FName(*ParameterName), this->InternalVideoTexture); - } - } -} - -/** - Called before destroying the object. This is called immediately upon deciding to destroy the object, - to allow the object to begin an asynchronous cleanup process. - */ -void UNDIMediaReceiver::BeginDestroy() -{ - // Call the shutdown procedure here. - this->Shutdown(); - - // Call the base implementation of 'BeginDestroy' - Super::BeginDestroy(); -} - -/** - Attempts to capture a video frame from the connected source. If a new frame is captured, broadcast it to - interested receivers through the capture event. -*/ -bool UNDIMediaReceiver::CaptureConnectedVideo() -{ - // This function is called on the Engine's Main Rendering Thread. Be very careful when doing stuff here. - // Make sure things are done quick and efficient. - - // Ensure thread safety - FScopeLock Lock(&RenderSyncContext); - - bool bHaveCaptured = false; - - // check for our frame sync object and that we are actually connected to the end point - if ((p_framesync_instance != nullptr) && (ConnectionInformation.bMuteVideo == false)) - { - // Using a frame-sync we can always get data which is the magic and it will adapt - // to the frame-rate that it is being called with. - NDIlib_video_frame_v2_t video_frame; - NDIlib_framesync_capture_video(p_framesync_instance, &video_frame, NDIlib_frame_format_type_progressive); - - // Update our Performance Metrics - GatherPerformanceMetrics(); - - if (video_frame.p_data) - { - // Ensure that we inform all those interested when the stream starts up - SetIsCurrentlyConnected(true); - - // Update the Framerate, if it has changed - this->FrameRate.Numerator = video_frame.frame_rate_N; - this->FrameRate.Denominator = video_frame.frame_rate_D; - - // Update the Resolution - this->Resolution.X = video_frame.xres; - this->Resolution.Y = video_frame.yres; - - if (bSyncTimecodeToSource) - { - int64_t SourceTime = video_frame.timecode % 864000000000; // Modulo the number of 100ns intervals in 24 hours - // Update the timecode from the current 'SourceTime' value - this->Timecode = FTimecode::FromTimespan(FTimespan::FromSeconds(SourceTime / (float)1e+7), FrameRate, - FTimecode::IsDropFormatTimecodeSupported(FrameRate), - true // use roll-over timecode - ); - } - else - { - int64_t SystemTime = FDateTime::Now().GetTimeOfDay().GetTicks(); - // Update the timecode from the current 'SystemTime' value - this->Timecode = FTimecode::FromTimespan(FTimespan::FromSeconds(SystemTime / (float)1e+7), FrameRate, - FTimecode::IsDropFormatTimecodeSupported(FrameRate), - true // use roll-over timecode - ); - } - - // Redraw if: - // - timestamp is undefined, or - // - timestamp has changed, or - // - frame format type has changed (e.g. different field) - if ((video_frame.timestamp == NDIlib_recv_timestamp_undefined) || - (video_frame.timestamp != LastFrameTimestamp) || - (video_frame.frame_format_type != LastFrameFormatType)) - { - bHaveCaptured = true; - - LastFrameTimestamp = video_frame.timestamp; - LastFrameFormatType = video_frame.frame_format_type; - - OnNDIReceiverVideoCaptureEvent.Broadcast(this, video_frame); - - OnReceiverVideoReceived.Broadcast(this); - - if (video_frame.p_metadata) - { - FString Data(UTF8_TO_TCHAR(video_frame.p_metadata)); - OnReceiverMetaDataReceived.Broadcast(this, Data, true); - } - } - } - - // Release the video. You could keep the frame if you want and release it later. - NDIlib_framesync_free_video(p_framesync_instance, &video_frame); - } - - return bHaveCaptured; -} - - -/** - Attempts to capture an audio frame from the connected source. If a new frame is captured, broadcast it to - interested receivers through the capture event. -*/ -bool UNDIMediaReceiver::CaptureConnectedAudio() -{ - FScopeLock Lock(&AudioSyncContext); - - bool bHaveCaptured = false; - - if ((p_framesync_instance != nullptr) && (ConnectionInformation.bMuteAudio == false)) - { - int no_samples = NDIlib_framesync_audio_queue_depth(p_framesync_instance); - - // Using a frame-sync we can always get data which is the magic and it will adapt - // to the frame-rate that it is being called with. - NDIlib_audio_frame_v2_t audio_frame; - NDIlib_framesync_capture_audio(p_framesync_instance, &audio_frame, 0, 0, no_samples); - - if (audio_frame.p_data) - { - // Ensure that we inform all those interested when the stream starts up - SetIsCurrentlyConnected(true); - - const int32 available_samples = audio_frame.no_samples * audio_frame.no_channels; - - if (available_samples > 0) - { - bHaveCaptured = true; - - OnNDIReceiverAudioCaptureEvent.Broadcast(this, audio_frame); - - OnReceiverAudioReceived.Broadcast(this); - } - } - - // Release the audio frame - NDIlib_framesync_free_audio(p_framesync_instance, &audio_frame); - } - - return bHaveCaptured; -} - - -bool UNDIMediaReceiver::CaptureConnectedMetadata() -{ - FScopeLock Lock(&MetadataSyncContext); - - bool bHaveCaptured = false; - - if (p_receive_instance != nullptr) - { - NDIlib_metadata_frame_t metadata; - NDIlib_frame_type_e frame_type = NDIlib_recv_capture_v3(p_receive_instance, nullptr, nullptr, &metadata, 0); - if (frame_type == NDIlib_frame_type_metadata) - { - if (metadata.p_data) - { - // Ensure that we inform all those interested when the stream starts up - SetIsCurrentlyConnected(true); - - if (metadata.length > 0) - { - bHaveCaptured = true; - - OnNDIReceiverMetadataCaptureEvent.Broadcast(this, metadata); - - FString Data(UTF8_TO_TCHAR(metadata.p_data)); - OnReceiverMetaDataReceived.Broadcast(this, Data, false); - } - } - - NDIlib_recv_free_metadata(p_receive_instance, &metadata); - } - } - - return bHaveCaptured; -} - - -void UNDIMediaReceiver::SetIsCurrentlyConnected(bool bConnected) -{ - if (bConnected != bIsCurrentlyConnected) - { - FScopeLock Lock(&ConnectionSyncContext); - - if (bConnected != bIsCurrentlyConnected) - { - bIsCurrentlyConnected = bConnected; - - if (bConnected == true) - { - if (OnNDIReceiverConnectedEvent.IsBound()) - { - AsyncTask(ENamedThreads::GameThread, [&]() { - // Broadcast the event - OnNDIReceiverConnectedEvent.Broadcast(this); - }); - } - } - else - { - if (OnNDIReceiverDisconnectedEvent.IsBound()) - { - AsyncTask(ENamedThreads::GameThread, [&]() { - // Broadcast the event - OnNDIReceiverDisconnectedEvent.Broadcast(this); - }); - } - } - } - } -} - - -/** - Attempts to immediately update the 'VideoTexture' object with the last capture video frame - from the connected source -*/ -FTextureRHIRef UNDIMediaReceiver::DisplayFrame(const NDIlib_video_frame_v2_t& video_frame) -{ - // we need a command list to work with - FRHICommandListImmediate& RHICmdList = FRHICommandListExecutor::GetImmediateCommandList(); - - // Actually draw the video frame from cpu to gpu - switch(video_frame.frame_format_type) - { - case NDIlib_frame_format_type_progressive: - if(video_frame.FourCC == NDIlib_FourCC_video_type_UYVY) - return DrawProgressiveVideoFrame(RHICmdList, video_frame); - else if(video_frame.FourCC == NDIlib_FourCC_video_type_UYVA) - return DrawProgressiveVideoFrameAlpha(RHICmdList, video_frame); - break; - case NDIlib_frame_format_type_field_0: - case NDIlib_frame_format_type_field_1: - if(video_frame.FourCC == NDIlib_FourCC_video_type_UYVY) - return DrawInterlacedVideoFrame(RHICmdList, video_frame); - else if(video_frame.FourCC == NDIlib_FourCC_video_type_UYVA) - return DrawInterlacedVideoFrameAlpha(RHICmdList, video_frame); - break; - } - - return nullptr; -} - -/** - Perform the color conversion (if any) and bit copy from the gpu -*/ -FTextureRHIRef UNDIMediaReceiver::DrawProgressiveVideoFrame(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result) -{ - // Ensure thread safety - FScopeLock Lock(&RenderSyncContext); - - FTextureRHIRef TargetableTexture; - - // check for our frame sync object and that we are actually connected to the end point - if (p_framesync_instance != nullptr) - { - // Initialize the frame size parameter - FIntPoint FrameSize = FIntPoint(Result.xres, Result.yres); - - if (!RenderTarget.IsValid() || !RenderTargetDescriptor.IsValid() || - RenderTargetDescriptor.GetSize() != FIntVector(FrameSize.X, FrameSize.Y, 0) || - DrawMode != EDrawMode::Progressive) - { - // Create the RenderTarget descriptor - RenderTargetDescriptor = FPooledRenderTargetDesc::Create2DDesc( - FrameSize, PF_B8G8R8A8, FClearValueBinding::None, TexCreate_None, TexCreate_RenderTargetable | TexCreate_SRGB, false); - - // Update the shader resource for the 'SourceTexture' - // The source texture will be given UYVY data, so make it half-width - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaReceiverProgressiveSourceTexture")) - .SetExtent(FrameSize.X / 2, FrameSize.Y) - .SetFormat(PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::RenderTargetable | ETextureCreateFlags::Dynamic); - - SourceTexture = RHICreateTexture(CreateDesc); - - // Find a free target-able texture from the render pool - GRenderTargetPool.FindFreeElement(RHICmdList, RenderTargetDescriptor, RenderTarget, TEXT("NDIIO")); - - DrawMode = EDrawMode::Progressive; - } - - TargetableTexture = RenderTarget->GetRHI(); - - // Initialize the Graphics Pipeline State Object - FGraphicsPipelineStateInitializer GraphicsPSOInit; - - // Initialize the Render pass with the conversion texture - FRHITexture* ConversionTexture = TargetableTexture.GetReference(); - FRHIRenderPassInfo RPInfo(ConversionTexture, ERenderTargetActions::DontLoad_Store); - - // configure media shaders - FGlobalShaderMap* ShaderMap = GetGlobalShaderMap(GMaxRHIFeatureLevel); - - // construct the shaders - TShaderMapRef VertexShader(ShaderMap); - TShaderMapRef ConvertShader(ShaderMap); - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(RHICmdList); -#else - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(); -#endif - - // Needs to be called *before* ApplyCachedRenderTargets, since BeginRenderPass is caching the render targets. - RHICmdList.BeginRenderPass(RPInfo, TEXT("NDI Recv Color Conversion")); - - // do as it suggests - RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit); - - // set the state objects - GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState::GetRHI(); - GraphicsPSOInit.RasterizerState = TStaticRasterizerState<>::GetRHI(); - GraphicsPSOInit.BlendState = TStaticBlendStateWriteMask::GetRHI(); - // perform binding operations for the shaders to be used - GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GMediaVertexDeclaration.VertexDeclarationRHI; - GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader(); - GraphicsPSOInit.BoundShaderState.PixelShaderRHI = ConvertShader.GetPixelShader(); - // Going to draw triangle strips - GraphicsPSOInit.PrimitiveType = PT_TriangleStrip; - - // Ensure the pipeline state is set to the one we've configured - SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit, 0); - - // set the stream source - RHICmdList.SetStreamSource(0, VertexBuffer, 0); - - // set the texture parameter of the conversion shader - FNDIIOShaderUYVYtoBGRAPS::Params Params(SourceTexture, SourceTexture, FrameSize, - FVector2D(0, 0), FVector2D(1, 1), - bPerformsRGBtoLinear ? FNDIIOShaderPS::EColorCorrection::sRGBToLinear : FNDIIOShaderPS::EColorCorrection::None, - FVector2D(0.f, 1.f)); - ConvertShader->SetParameters(RHICmdList, Params); - - // Create the update region structure - FUpdateTextureRegion2D Region(0, 0, 0, 0, FrameSize.X/2, FrameSize.Y); - - // Set the Pixel data of the NDI Frame to the SourceTexture - RHIUpdateTexture2D(SourceTexture, 0, Region, Result.line_stride_in_bytes, (uint8*&)Result.p_data); - - // begin our drawing - { - RHICmdList.SetViewport(0, 0, 0.0f, FrameSize.X, FrameSize.Y, 1.0f); - RHICmdList.DrawPrimitive(0, 2, 1); - } - - RHICmdList.EndRenderPass(); - } - - return TargetableTexture; -} - -FTextureRHIRef UNDIMediaReceiver::DrawProgressiveVideoFrameAlpha(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result) -{ - // Ensure thread safety - FScopeLock Lock(&RenderSyncContext); - - FTextureRHIRef TargetableTexture; - - // check for our frame sync object and that we are actually connected to the end point - if (p_framesync_instance != nullptr) - { - // Initialize the frame size parameter - FIntPoint FrameSize = FIntPoint(Result.xres, Result.yres); - - if (!RenderTarget.IsValid() || !RenderTargetDescriptor.IsValid() || - RenderTargetDescriptor.GetSize() != FIntVector(FrameSize.X, FrameSize.Y, 0) || - DrawMode != EDrawMode::ProgressiveAlpha) - { - // Create the RenderTarget descriptor - RenderTargetDescriptor = FPooledRenderTargetDesc::Create2DDesc( - FrameSize, PF_B8G8R8A8, FClearValueBinding::None, TexCreate_None, TexCreate_RenderTargetable | TexCreate_SRGB, false); - - // Update the shader resource for the 'SourceTexture' - // The source texture will be given UYVY data, so make it half-width - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaReceiverProgressiveAlphaSourceTexture")) - .SetExtent(FrameSize.X / 2, FrameSize.Y) - .SetFormat(PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::RenderTargetable | ETextureCreateFlags::Dynamic); - - SourceTexture = RHICreateTexture(CreateDesc); - - const FRHITextureCreateDesc CreateAlphaDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaReceiverProgressiveAlphaSourceAlphaTexture")) - .SetExtent(FrameSize.X, FrameSize.Y) - .SetFormat(PF_A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::RenderTargetable | ETextureCreateFlags::Dynamic); - - SourceAlphaTexture = RHICreateTexture(CreateAlphaDesc); - - // Find a free target-able texture from the render pool - GRenderTargetPool.FindFreeElement(RHICmdList, RenderTargetDescriptor, RenderTarget, TEXT("NDIIO")); - - DrawMode = EDrawMode::ProgressiveAlpha; - } - - TargetableTexture = RenderTarget->GetRHI(); - - // Initialize the Graphics Pipeline State Object - FGraphicsPipelineStateInitializer GraphicsPSOInit; - - // Initialize the Render pass with the conversion texture - FRHITexture* ConversionTexture = TargetableTexture.GetReference(); - FRHIRenderPassInfo RPInfo(ConversionTexture, ERenderTargetActions::DontLoad_Store); - - // configure media shaders - FGlobalShaderMap* ShaderMap = GetGlobalShaderMap(GMaxRHIFeatureLevel); - - // construct the shaders - TShaderMapRef VertexShader(ShaderMap); - TShaderMapRef ConvertShader(ShaderMap); - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(RHICmdList); -#else - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(); -#endif - - // Needs to be called *before* ApplyCachedRenderTargets, since BeginRenderPass is caching the render targets. - RHICmdList.BeginRenderPass(RPInfo, TEXT("NDI Recv Color Conversion")); - - // do as it suggests - RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit); - - // set the state objects - GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState::GetRHI(); - GraphicsPSOInit.RasterizerState = TStaticRasterizerState<>::GetRHI(); - GraphicsPSOInit.BlendState = TStaticBlendStateWriteMask::GetRHI(); - // perform binding operations for the shaders to be used - GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GMediaVertexDeclaration.VertexDeclarationRHI; - GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader(); - GraphicsPSOInit.BoundShaderState.PixelShaderRHI = ConvertShader.GetPixelShader(); - // Going to draw triangle strips - GraphicsPSOInit.PrimitiveType = PT_TriangleStrip; - - // Ensure the pipeline state is set to the one we've configured - SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit, 0); - - // set the stream source - RHICmdList.SetStreamSource(0, VertexBuffer, 0); - - // set the texture parameter of the conversion shader - //bool bHasAlpha = (Result.FourCC == NDIlib_FourCC_video_type_UYVA) ? true : false; - FNDIIOShaderUYVAtoBGRAPS::Params Params(SourceTexture, SourceAlphaTexture, FrameSize, - FVector2D(0, 0), FVector2D(1, 1), - bPerformsRGBtoLinear ? FNDIIOShaderPS::EColorCorrection::sRGBToLinear : FNDIIOShaderPS::EColorCorrection::None, - FVector2D(0.f, 1.f)); - ConvertShader->SetParameters(RHICmdList, Params); - - // Create the update region structure - FUpdateTextureRegion2D Region(0, 0, 0, 0, FrameSize.X/2, FrameSize.Y); - FUpdateTextureRegion2D AlphaRegion(0, 0, 0, 0, FrameSize.X, FrameSize.Y); - - // Set the Pixel data of the NDI Frame to the SourceTexture - RHIUpdateTexture2D(SourceTexture, 0, Region, Result.line_stride_in_bytes, (uint8*&)Result.p_data); - RHIUpdateTexture2D(SourceAlphaTexture, 0, AlphaRegion, FrameSize.X, ((uint8*&)Result.p_data)+FrameSize.Y*Result.line_stride_in_bytes); - - // begin our drawing - { - RHICmdList.SetViewport(0, 0, 0.0f, FrameSize.X, FrameSize.Y, 1.0f); - RHICmdList.DrawPrimitive(0, 2, 1); - } - - RHICmdList.EndRenderPass(); - } - - return TargetableTexture; -} - - -FTextureRHIRef UNDIMediaReceiver::DrawInterlacedVideoFrame(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result) -{ - // Ensure thread safety - FScopeLock Lock(&RenderSyncContext); - - FTextureRHIRef TargetableTexture; - - // check for our frame sync object and that we are actually connected to the end point - if (p_framesync_instance != nullptr) - { - // Initialize the frame size parameter - FIntPoint FieldSize = FIntPoint(Result.xres, Result.yres); - FIntPoint FrameSize = FIntPoint(Result.xres, Result.yres*2); - - if (!RenderTarget.IsValid() || !RenderTargetDescriptor.IsValid() || - RenderTargetDescriptor.GetSize() != FIntVector(FrameSize.X, FrameSize.Y, 0) || - DrawMode != EDrawMode::Interlaced) - { - // Create the RenderTarget descriptor - RenderTargetDescriptor = FPooledRenderTargetDesc::Create2DDesc( - FrameSize, PF_B8G8R8A8, FClearValueBinding::None, TexCreate_None, TexCreate_RenderTargetable | TexCreate_SRGB, false); - - // Update the shader resource for the 'SourceTexture' - // The source texture will be given UYVY data, so make it half-width - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaReceiverInterlacedSourceTexture")) - .SetExtent(FieldSize.X / 2, FieldSize.Y) - .SetFormat(PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::RenderTargetable | ETextureCreateFlags::Dynamic); - - SourceTexture = RHICreateTexture(CreateDesc); - - // Find a free target-able texture from the render pool - GRenderTargetPool.FindFreeElement(RHICmdList, RenderTargetDescriptor, RenderTarget, TEXT("NDIIO")); - - DrawMode = EDrawMode::Interlaced; - } - - TargetableTexture = RenderTarget->GetRHI(); - - // Initialize the Graphics Pipeline State Object - FGraphicsPipelineStateInitializer GraphicsPSOInit; - - // Initialize the Render pass with the conversion texture - FRHITexture* ConversionTexture = TargetableTexture.GetReference(); - FRHIRenderPassInfo RPInfo(ConversionTexture, ERenderTargetActions::DontLoad_Store); - - // configure media shaders - FGlobalShaderMap* ShaderMap = GetGlobalShaderMap(GMaxRHIFeatureLevel); - - // construct the shaders - TShaderMapRef VertexShader(ShaderMap); - TShaderMapRef ConvertShader(ShaderMap); - - float FieldUVOffset = (Result.frame_format_type == NDIlib_frame_format_type_field_1) ? 0.5f/Result.yres : 0.f; -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(RHICmdList, 0.f, 1.f, 0.f-FieldUVOffset, 1.f-FieldUVOffset); -#else - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(0.f, 1.f, 0.f-FieldUVOffset, 1.f-FieldUVOffset); -#endif - - // Needs to be called *before* ApplyCachedRenderTargets, since BeginRenderPass is caching the render targets. - RHICmdList.BeginRenderPass(RPInfo, TEXT("NDI Recv Color Conversion")); - - // do as it suggests - RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit); - - // set the state objects - GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState::GetRHI(); - GraphicsPSOInit.RasterizerState = TStaticRasterizerState<>::GetRHI(); - GraphicsPSOInit.BlendState = TStaticBlendStateWriteMask::GetRHI(); - // perform binding operations for the shaders to be used - GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GMediaVertexDeclaration.VertexDeclarationRHI; - GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader(); - GraphicsPSOInit.BoundShaderState.PixelShaderRHI = ConvertShader.GetPixelShader(); - // Going to draw triangle strips - GraphicsPSOInit.PrimitiveType = PT_TriangleStrip; - - // Ensure the pipeline state is set to the one we've configured - SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit, 0); - - // set the stream source - RHICmdList.SetStreamSource(0, VertexBuffer, 0); - - // set the texture parameter of the conversion shader - FNDIIOShaderUYVYtoBGRAPS::Params Params(SourceTexture, SourceTexture, FrameSize, - FVector2D(0, 0), FVector2D(1, 1), - bPerformsRGBtoLinear ? FNDIIOShaderPS::EColorCorrection::sRGBToLinear : FNDIIOShaderPS::EColorCorrection::None, - FVector2D(0.f, 1.f)); - ConvertShader->SetParameters(RHICmdList, Params); - - // Create the update region structure - FUpdateTextureRegion2D Region(0, 0, 0, 0, FieldSize.X/2, FieldSize.Y); - - // Set the Pixel data of the NDI Frame to the SourceTexture - RHIUpdateTexture2D(SourceTexture, 0, Region, Result.line_stride_in_bytes, (uint8*&)Result.p_data); - - // begin our drawing - { - RHICmdList.SetViewport(0, 0, 0.0f, FrameSize.X, FrameSize.Y, 1.0f); - RHICmdList.DrawPrimitive(0, 2, 1); - } - - RHICmdList.EndRenderPass(); - } - - return TargetableTexture; -} - -FTextureRHIRef UNDIMediaReceiver::DrawInterlacedVideoFrameAlpha(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result) -{ - // Ensure thread safety - FScopeLock Lock(&RenderSyncContext); - - FTextureRHIRef TargetableTexture; - - // check for our frame sync object and that we are actually connected to the end point - if (p_framesync_instance != nullptr) - { - // Initialize the frame size parameter - FIntPoint FieldSize = FIntPoint(Result.xres, Result.yres); - FIntPoint FrameSize = FIntPoint(Result.xres, Result.yres*2); - - if (!RenderTarget.IsValid() || !RenderTargetDescriptor.IsValid() || - RenderTargetDescriptor.GetSize() != FIntVector(FrameSize.X, FrameSize.Y, 0) || - DrawMode != EDrawMode::InterlacedAlpha) - { - // Create the RenderTarget descriptor - RenderTargetDescriptor = FPooledRenderTargetDesc::Create2DDesc( - FrameSize, PF_B8G8R8A8, FClearValueBinding::None, TexCreate_None, TexCreate_RenderTargetable | TexCreate_SRGB, false); - - // Update the shader resource for the 'SourceTexture' - // The source texture will be given UYVY data, so make it half-width - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaReceiverInterlacedAlphaSourceTexture")) - .SetExtent(FieldSize.X / 2, FieldSize.Y) - .SetFormat(PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::RenderTargetable | ETextureCreateFlags::Dynamic); - - SourceTexture = RHICreateTexture(CreateDesc); - - const FRHITextureCreateDesc CreateAlphaDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaReceiverInterlacedAlphaSourceAlphaTexture")) - .SetExtent(FieldSize.X, FieldSize.Y) - .SetFormat(PF_A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::RenderTargetable | ETextureCreateFlags::Dynamic); - - SourceAlphaTexture = RHICreateTexture(CreateAlphaDesc); - - // Find a free target-able texture from the render pool - GRenderTargetPool.FindFreeElement(RHICmdList, RenderTargetDescriptor, RenderTarget, TEXT("NDIIO")); - - DrawMode = EDrawMode::InterlacedAlpha; - } - - TargetableTexture = RenderTarget->GetRHI(); - - // Initialize the Graphics Pipeline State Object - FGraphicsPipelineStateInitializer GraphicsPSOInit; - - // Initialize the Render pass with the conversion texture - FRHITexture* ConversionTexture = TargetableTexture.GetReference(); - FRHIRenderPassInfo RPInfo(ConversionTexture, ERenderTargetActions::DontLoad_Store); - - // configure media shaders - FGlobalShaderMap* ShaderMap = GetGlobalShaderMap(GMaxRHIFeatureLevel); - - // construct the shaders - TShaderMapRef VertexShader(ShaderMap); - TShaderMapRef ConvertShader(ShaderMap); - - float FieldUVOffset = (Result.frame_format_type == NDIlib_frame_format_type_field_1) ? 0.5f/Result.yres : 0.f; -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(RHICmdList, 0.f, 1.f, 0.f-FieldUVOffset, 1.f-FieldUVOffset); -#else - FBufferRHIRef VertexBuffer = CreateTempMediaVertexBuffer(0.f, 1.f, 0.f-FieldUVOffset, 1.f-FieldUVOffset); -#endif - - // Needs to be called *before* ApplyCachedRenderTargets, since BeginRenderPass is caching the render targets. - RHICmdList.BeginRenderPass(RPInfo, TEXT("NDI Recv Color Conversion")); - - // do as it suggests - RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit); - - // set the state objects - GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState::GetRHI(); - GraphicsPSOInit.RasterizerState = TStaticRasterizerState<>::GetRHI(); - GraphicsPSOInit.BlendState = TStaticBlendStateWriteMask::GetRHI(); - // perform binding operations for the shaders to be used - GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GMediaVertexDeclaration.VertexDeclarationRHI; - GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader(); - GraphicsPSOInit.BoundShaderState.PixelShaderRHI = ConvertShader.GetPixelShader(); - // Going to draw triangle strips - GraphicsPSOInit.PrimitiveType = PT_TriangleStrip; - - // Ensure the pipeline state is set to the one we've configured - SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit, 0); - - // set the stream source - RHICmdList.SetStreamSource(0, VertexBuffer, 0); - - // set the texture parameter of the conversion shader - FNDIIOShaderUYVAtoBGRAPS::Params Params(SourceTexture, SourceAlphaTexture, FrameSize, - FVector2D(0, 0), FVector2D(1, 1), - bPerformsRGBtoLinear ? FNDIIOShaderPS::EColorCorrection::sRGBToLinear : FNDIIOShaderPS::EColorCorrection::None, - FVector2D(0.f, 1.f)); - ConvertShader->SetParameters(RHICmdList, Params); - - // Create the update region structure - FUpdateTextureRegion2D Region(0, 0, 0, 0, FieldSize.X/2, FieldSize.Y); - FUpdateTextureRegion2D AlphaRegion(0, 0, 0, 0, FieldSize.X, FieldSize.Y); - - // Set the Pixel data of the NDI Frame to the SourceTexture - RHIUpdateTexture2D(SourceTexture, 0, Region, Result.line_stride_in_bytes, (uint8*&)Result.p_data); - RHIUpdateTexture2D(SourceAlphaTexture, 0, AlphaRegion, FieldSize.X, ((uint8*&)Result.p_data)+FieldSize.Y*Result.line_stride_in_bytes); - - // begin our drawing - { - RHICmdList.SetViewport(0, 0, 0.0f, FrameSize.X, FrameSize.Y, 1.0f); - RHICmdList.DrawPrimitive(0, 2, 1); - } - - RHICmdList.EndRenderPass(); - } - - return TargetableTexture; -} - -/** - Attempts to gather the performance metrics of the connection to the remote source -*/ -void UNDIMediaReceiver::GatherPerformanceMetrics() -{ - // provide references to store the values - NDIlib_recv_performance_t stable_performance; - NDIlib_recv_performance_t dropped_performance; - - // get the performance values from the SDK - NDIlib_recv_get_performance(p_receive_instance, &stable_performance, &dropped_performance); - - // update our structure with the updated values - this->PerformanceData.AudioFrames = stable_performance.audio_frames; - this->PerformanceData.DroppedAudioFrames = dropped_performance.audio_frames; - this->PerformanceData.DroppedMetadataFrames = dropped_performance.metadata_frames; - this->PerformanceData.DroppedVideoFrames = dropped_performance.video_frames; - this->PerformanceData.MetadataFrames = stable_performance.metadata_frames; - this->PerformanceData.VideoFrames = stable_performance.video_frames; -} - -/** - Returns the current performance data of the receiver while connected to the source -*/ -const FNDIReceiverPerformanceData& UNDIMediaReceiver::GetPerformanceData() const -{ - return this->PerformanceData; -} - -/** - Returns a value indicating whether this object is currently connected to the sender source -*/ -const bool UNDIMediaReceiver::GetIsCurrentlyConnected() const -{ - if (p_receive_instance != nullptr) - return NDIlib_recv_get_no_connections(p_receive_instance) > 0 ? true : false; - else - return false; -} - -/** - Returns the current connection information of the connected source -*/ -const FNDIConnectionInformation& UNDIMediaReceiver::GetCurrentConnectionInformation() const -{ - return this->ConnectionInformation; -} - -/** - Returns the current timecode of the connected source -*/ -const FTimecode& UNDIMediaReceiver::GetCurrentTimecode() const -{ - return this->Timecode; -} - -/** - Set whether or not a sRGB to Linear conversion is made -*/ -void UNDIMediaReceiver::PerformsRGBToLinearConversion(bool Value) -{ - this->bPerformsRGBtoLinear = Value; -} - -/** - Returns the current framerate of the connected source -*/ -const FFrameRate& UNDIMediaReceiver::GetCurrentFrameRate() const -{ - return this->FrameRate; -} - -const FIntPoint& UNDIMediaReceiver::GetCurrentResolution() const -{ - return this->Resolution; -} - - -FString UNDIMediaReceiver::GetUrl() const -{ - if(!ConnectionInformation.SourceName.IsEmpty()) - return "ndiio://" + ConnectionInformation.SourceName; - else if(!ConnectionSetting.SourceName.IsEmpty()) - return "ndiio://" + ConnectionSetting.SourceName; - else if(!ConnectionInformation.Url.IsEmpty()) - return "ndiio://" + ConnectionInformation.Url; - else if(!ConnectionSetting.Url.IsEmpty()) - return "ndiio://" + ConnectionSetting.Url; - else - return "ndiio://"; -} - -bool UNDIMediaReceiver::GetMediaOption(const FName& Key, bool DefaultValue) const -{ - if (Key == NDIMediaOption::IsNDIMediaReceiver) { return true; } - - return Super::GetMediaOption(Key, DefaultValue); -} - -int64 UNDIMediaReceiver::GetMediaOption(const FName& Key, int64 DefaultValue) const -{ - if (Key == FMediaIOCoreMediaOption::FrameRateNumerator) { return FrameRate.Numerator; } - if (Key == FMediaIOCoreMediaOption::FrameRateDenominator) { return FrameRate.Denominator; } - if (Key == FMediaIOCoreMediaOption::ResolutionWidth) { return Resolution.X; } - if (Key == FMediaIOCoreMediaOption::ResolutionHeight) { return Resolution.Y; } - - return Super::GetMediaOption(Key, DefaultValue); -} - -FString UNDIMediaReceiver::GetMediaOption(const FName& Key, const FString& DefaultValue) const -{ - return Super::GetMediaOption(Key, DefaultValue); -} - -bool UNDIMediaReceiver::HasMediaOption(const FName& Key) const -{ - if ( Key == NDIMediaOption::IsNDIMediaReceiver) - { - return true; - } - - if ( Key == FMediaIOCoreMediaOption::FrameRateNumerator - || Key == FMediaIOCoreMediaOption::FrameRateDenominator - || Key == FMediaIOCoreMediaOption::ResolutionWidth - || Key == FMediaIOCoreMediaOption::ResolutionHeight) - { - return true; - } - - return Super::HasMediaOption(Key); -} - - -FTextureResource* UNDIMediaReceiver::GetVideoTextureResource() const -{ - if(IsValid(this->VideoTexture)) - return this->VideoTexture->GetResource(); - - return nullptr; -} - -FTextureResource* UNDIMediaReceiver::GetInternalVideoTextureResource() const -{ - if(IsValid(this->InternalVideoTexture)) - return this->InternalVideoTexture->GetResource(); - - return nullptr; -} - - -#if WITH_EDITORONLY_DATA - -void UNDIMediaReceiver::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) -{ - // get the name of the property which changed - FName MemberPropertyName = - (PropertyChangedEvent.MemberProperty != nullptr) ? PropertyChangedEvent.MemberProperty->GetFName() : NAME_None; - FName PropertyName = - (PropertyChangedEvent.Property != nullptr) ? PropertyChangedEvent.Property->GetFName() : NAME_None; - - if (MemberPropertyName == GET_MEMBER_NAME_CHECKED(UNDIMediaReceiver, ConnectionSetting)) - { - if (PropertyName == GET_MEMBER_NAME_CHECKED(FNDIConnectionInformation, SourceName)) - { - ConnectionSetting.SourceName.Split(TEXT(" "), &ConnectionSetting.MachineName, &ConnectionSetting.StreamName); - ConnectionSetting.StreamName.RemoveFromStart("("); - ConnectionSetting.StreamName.RemoveFromEnd(")"); - } - - else if (PropertyName == GET_MEMBER_NAME_CHECKED(FNDIConnectionInformation, MachineName)) - { - if ((!ConnectionSetting.MachineName.IsEmpty()) && (!ConnectionSetting.StreamName.IsEmpty())) - ConnectionSetting.SourceName = ConnectionSetting.MachineName + " (" + ConnectionSetting.StreamName + ")"; - else - ConnectionSetting.SourceName = FString(""); - } - - else if (PropertyName == GET_MEMBER_NAME_CHECKED(FNDIConnectionInformation, StreamName)) - { - if ((!ConnectionSetting.MachineName.IsEmpty()) && (!ConnectionSetting.StreamName.IsEmpty())) - ConnectionSetting.SourceName = ConnectionSetting.MachineName + " (" + ConnectionSetting.StreamName + ")"; - else - ConnectionSetting.SourceName = FString(""); - } - } - - // call the base class 'PostEditChangeProperty' - Super::PostEditChangeProperty(PropertyChangedEvent); -} - -#endif diff --git a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSender.cpp b/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSender.cpp deleted file mode 100644 index 8efea1b..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSender.cpp +++ /dev/null @@ -1,1368 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include - -#include "NDIShaders.h" - -#if WITH_EDITOR -#include -#endif - -#include - - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later - -static FBufferRHIRef CreateColorVertexBuffer(FRHICommandListImmediate& RHICmdList, const FIntPoint& FitFrameSize, const FIntPoint& DrawFrameSize, bool OutputAlpha) -{ -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FRHIBufferCreateDesc CreateDesc = - FRHIBufferCreateDesc::Create(TEXT("VertexBufferRHI"), sizeof(FMediaElementVertex) * 4, 0, EBufferUsageFlags::Volatile | EBufferUsageFlags::VertexBuffer) - .DetermineInitialState(); - FBufferRHIRef VertexBufferRHI = RHICmdList.CreateBuffer(CreateDesc); -#else - FRHIResourceCreateInfo CreateInfo(TEXT("VertexBufferRHI")); - FBufferRHIRef VertexBufferRHI = RHICmdList.CreateVertexBuffer(sizeof(FMediaElementVertex) * 4, BUF_Volatile, CreateInfo); -#endif - void* VoidPtr = RHICmdList.LockBuffer(VertexBufferRHI, 0, sizeof(FMediaElementVertex) * 4, RLM_WriteOnly); - - FMediaElementVertex* Vertices = (FMediaElementVertex*)VoidPtr; - if (OutputAlpha == false) - { - Vertices[0].Position.Set(-1.0f, 1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, 1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - else - { - Vertices[0].Position.Set(-1.0f, 1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, 1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Bottom Right - } - - Vertices[0].TextureCoordinate.Set(0.0f, 0.0f); - Vertices[1].TextureCoordinate.Set(1.0f, 0.0f); - Vertices[2].TextureCoordinate.Set(0.0f, 1.0f); - Vertices[3].TextureCoordinate.Set(1.0f, 1.0f); - - RHICmdList.UnlockBuffer(VertexBufferRHI); - - return VertexBufferRHI; -} - -static FBufferRHIRef CreateAlphaEvenVertexBuffer(FRHICommandListImmediate& RHICmdList, const FIntPoint& FitFrameSize, const FIntPoint& DrawFrameSize, bool OutputAlpha) -{ -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FRHIBufferCreateDesc CreateDesc = - FRHIBufferCreateDesc::Create(TEXT("VertexBufferRHI"), sizeof(FMediaElementVertex) * 4, 0, EBufferUsageFlags::Volatile | EBufferUsageFlags::VertexBuffer) - .DetermineInitialState(); - FBufferRHIRef VertexBufferRHI = RHICmdList.CreateBuffer(CreateDesc); -#else - FRHIResourceCreateInfo CreateInfo(TEXT("VertexBufferRHI")); - FBufferRHIRef VertexBufferRHI = RHICmdList.CreateVertexBuffer(sizeof(FMediaElementVertex) * 4, BUF_Volatile, CreateInfo); -#endif - - void* VoidPtr = RHICmdList.LockBuffer(VertexBufferRHI, 0, sizeof(FMediaElementVertex) * 4, RLM_WriteOnly); - - FMediaElementVertex* Vertices = (FMediaElementVertex*)VoidPtr; - if (OutputAlpha == false) - { - Vertices[0].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - else - { - Vertices[0].Position.Set(-1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 0.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - - Vertices[0].TextureCoordinate.Set(0.0f, 0.0f); - Vertices[1].TextureCoordinate.Set(1.0f, 0.0f); - Vertices[2].TextureCoordinate.Set(0.0f, 1.0f); - Vertices[3].TextureCoordinate.Set(1.0f, 1.0f); - - RHICmdList.UnlockBuffer(VertexBufferRHI); - - return VertexBufferRHI; -} - -static FBufferRHIRef CreateAlphaOddVertexBuffer(FRHICommandListImmediate& RHICmdList, const FIntPoint& FitFrameSize, const FIntPoint& DrawFrameSize, bool OutputAlpha) -{ -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FRHIBufferCreateDesc CreateDesc = - FRHIBufferCreateDesc::Create(TEXT("VertexBufferRHI"), sizeof(FMediaElementVertex) * 4, 0, EBufferUsageFlags::Volatile | EBufferUsageFlags::VertexBuffer) - .DetermineInitialState(); - FBufferRHIRef VertexBufferRHI = RHICmdList.CreateBuffer(CreateDesc); -#else - FRHIResourceCreateInfo CreateInfo(TEXT("VertexBufferRHI")); - FBufferRHIRef VertexBufferRHI = RHICmdList.CreateVertexBuffer(sizeof(FMediaElementVertex) * 4, BUF_Volatile, CreateInfo); -#endif - - void* VoidPtr = RHICmdList.LockBuffer(VertexBufferRHI, 0, sizeof(FMediaElementVertex) * 4, RLM_WriteOnly); - - FMediaElementVertex* Vertices = (FMediaElementVertex*)VoidPtr; - if (OutputAlpha == false) - { - Vertices[0].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - else - { - Vertices[0].Position.Set( 0.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - - Vertices[0].TextureCoordinate.Set(0.0f, 0.0f); - Vertices[1].TextureCoordinate.Set(1.0f, 0.0f); - Vertices[2].TextureCoordinate.Set(0.0f, 1.0f); - Vertices[3].TextureCoordinate.Set(1.0f, 1.0f); - - RHICmdList.UnlockBuffer(VertexBufferRHI); - - return VertexBufferRHI; -} - -#elif ENGINE_MAJOR_VERSION == 5 // Before 5.3 - -static FBufferRHIRef CreateColorVertexBuffer(FRHICommandListImmediate& RHICmdList, const FIntPoint& FitFrameSize, const FIntPoint& DrawFrameSize, bool OutputAlpha) -{ - FRHIResourceCreateInfo CreateInfo(TEXT("VertexBufferRHI")); - FBufferRHIRef VertexBufferRHI = RHICreateVertexBuffer(sizeof(FMediaElementVertex) * 4, BUF_Volatile, CreateInfo); - - void* VoidPtr = RHILockBuffer(VertexBufferRHI, 0, sizeof(FMediaElementVertex) * 4, RLM_WriteOnly); - - FMediaElementVertex* Vertices = (FMediaElementVertex*)VoidPtr; - if (OutputAlpha == false) - { - Vertices[0].Position.Set(-1.0f, 1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, 1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - else - { - Vertices[0].Position.Set(-1.0f, 1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, 1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Bottom Right - } - - Vertices[0].TextureCoordinate.Set(0.0f, 0.0f); - Vertices[1].TextureCoordinate.Set(1.0f, 0.0f); - Vertices[2].TextureCoordinate.Set(0.0f, 1.0f); - Vertices[3].TextureCoordinate.Set(1.0f, 1.0f); - - RHIUnlockBuffer(VertexBufferRHI); - - return VertexBufferRHI; -} - -static FBufferRHIRef CreateAlphaEvenVertexBuffer(FRHICommandListImmediate& RHICmdList, const FIntPoint& FitFrameSize, const FIntPoint& DrawFrameSize, bool OutputAlpha) -{ - FRHIResourceCreateInfo CreateInfo(TEXT("VertexBufferRHI")); - FBufferRHIRef VertexBufferRHI = RHICreateVertexBuffer(sizeof(FMediaElementVertex) * 4, BUF_Volatile, CreateInfo); - - void* VoidPtr = RHILockBuffer(VertexBufferRHI, 0, sizeof(FMediaElementVertex) * 4, RLM_WriteOnly); - - FMediaElementVertex* Vertices = (FMediaElementVertex*)VoidPtr; - if (OutputAlpha == false) - { - Vertices[0].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - else - { - Vertices[0].Position.Set(-1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 0.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set(-1.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - - Vertices[0].TextureCoordinate.Set(0.0f, 0.0f); - Vertices[1].TextureCoordinate.Set(1.0f, 0.0f); - Vertices[2].TextureCoordinate.Set(0.0f, 1.0f); - Vertices[3].TextureCoordinate.Set(1.0f, 1.0f); - - RHIUnlockBuffer(VertexBufferRHI); - - return VertexBufferRHI; -} - -static FBufferRHIRef CreateAlphaOddVertexBuffer(FRHICommandListImmediate& RHICmdList, const FIntPoint& FitFrameSize, const FIntPoint& DrawFrameSize, bool OutputAlpha) -{ - FRHIResourceCreateInfo CreateInfo(TEXT("VertexBufferRHI")); - FBufferRHIRef VertexBufferRHI = RHICreateVertexBuffer(sizeof(FMediaElementVertex) * 4, BUF_Volatile, CreateInfo); - - void* VoidPtr = RHILockBuffer(VertexBufferRHI, 0, sizeof(FMediaElementVertex) * 4, RLM_WriteOnly); - - FMediaElementVertex* Vertices = (FMediaElementVertex*)VoidPtr; - if (OutputAlpha == false) - { - Vertices[0].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - else - { - Vertices[0].Position.Set( 0.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Left - Vertices[1].Position.Set( 1.0f, -1.0f/3.0f, 1.0f, 1.0f); // Top Right - Vertices[2].Position.Set( 0.0f, -1.0f, 1.0f, 1.0f); // Bottom Left - Vertices[3].Position.Set( 1.0f, -1.0f, 1.0f, 1.0f); // Bottom Right - } - - Vertices[0].TextureCoordinate.Set(0.0f, 0.0f); - Vertices[1].TextureCoordinate.Set(1.0f, 0.0f); - Vertices[2].TextureCoordinate.Set(0.0f, 1.0f); - Vertices[3].TextureCoordinate.Set(1.0f, 1.0f); - - RHIUnlockBuffer(VertexBufferRHI); - - return VertexBufferRHI; -} - -#else - #error "Unsupported engine major version" -#endif - - - - - - - -UNDIMediaSender::UNDIMediaSender(const FObjectInitializer& ObjectInitializer) - : Super(ObjectInitializer) -{} - - - -/** - Attempts to perform initialization logic for creating a sender through the NDI(R) sdk api -*/ -void UNDIMediaSender::Initialize(USoundSubmix* SubmixCapture) -{ - if (this->p_send_instance == nullptr) - { - // Create valid settings to be seen on the network - CreateSender(); - - // If it's valid then lets do some engine related setup - if (p_send_instance != nullptr) - { - // Update the Render Target Configuration - ChangeRenderTargetConfiguration(FrameSize, FrameRate); - - // Send audio frames at the end of the 'update' loop - FNDIConnectionService::AddAudioSender(this, SubmixCapture, &UNDIMediaSender::TrySendAudioFrame); - - // We don't want to limit the engine rendering speed to the sync rate of the connection hook - // into the core delegates render thread 'EndFrame' - FNDIConnectionService::EventOnSendVideoFrame.AddUObject(this, &UNDIMediaSender::TrySendVideoFrame); - - // Initialize the 'LastRender' timecode - LastRenderTime = FTimecode::FromTimespan(0, FrameRate, FTimecode::IsDropFormatTimecodeSupported(FrameRate), - true // use roll-over timecode - ); - -#if UE_EDITOR - - // We don't want to provide perceived issues with the plugin not working so - // when we get a Pre-exit message, forcefully shutdown the receiver - FCoreDelegates::OnPreExit.AddWeakLambda(this, [&]() { - this->Shutdown(); - FCoreDelegates::OnPreExit.RemoveAll(this); - }); - - // We handle this in the 'Play In Editor' versions as well. - FEditorDelegates::PrePIEEnded.AddWeakLambda(this, [&](const bool) { - this->Shutdown(); - FEditorDelegates::PrePIEEnded.RemoveAll(this); - }); - -#endif - } - } -} - -void UNDIMediaSender::PrepareDefaultTexture() -{ - if (!DefaultVideoTextureRHI.IsValid()) - { - // Default to 240p - static int32 DefaultWidth = 352; - static int32 DefaultHeight = 240; - - // Set the default video texture to reference nothing - TRefCountPtr RenderableTexture; - - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaSenderInitializeTexture")) - .SetExtent(DefaultWidth, DefaultHeight) - .SetFormat(PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::RenderTargetable) - .SetClearValue(FClearValueBinding(FLinearColor(0.0f, 0.0f, 0.0f))); - - RenderableTexture = RHICreateTexture(CreateDesc); - - DefaultVideoTextureRHI = (FTextureRHIRef&)RenderableTexture; - } -} - -bool UNDIMediaSender::CreateSender() -{ - if (p_send_instance != nullptr) - { - // free up the old sender instance - NDIlib_send_destroy(p_send_instance); - - p_send_instance = nullptr; - } - - // Create valid settings to be seen on the network - NDIlib_send_create_t settings; - settings.clock_audio = false; - settings.clock_video = false; - // Beware of the limited lifetime of TCHAR_TO_UTF8 values - std::string SourceNameStr(TCHAR_TO_UTF8(*this->SourceName)); - settings.p_ndi_name = SourceNameStr.c_str(); - - // create the instance and store it - p_send_instance = NDIlib_send_create(&settings); - - if (p_send_instance != nullptr) - { - // We are going to mark this as if it was a PTZ camera. - NDIlib_metadata_frame_t NDI_capabilities; - if (bEnablePTZ == true) - NDI_capabilities.p_data = const_cast(""); - else - NDI_capabilities.p_data = const_cast(""); - NDIlib_send_add_connection_metadata(p_send_instance, &NDI_capabilities); - } - - return p_send_instance != nullptr ? true : false; -} - - -/** - Changes the name of the sender object as seen on the network for remote connections -*/ -void UNDIMediaSender::ChangeSourceName(const FString& InSourceName) -{ - this->SourceName = InSourceName; - - if (p_send_instance != nullptr) - { - FScopeLock AudioLock(&AudioSyncContext); - FScopeLock RenderLock(&RenderSyncContext); - - // Get the command list interface - FRHICommandListImmediate& RHICmdList = FRHICommandListExecutor::GetImmediateCommandList(); - - // send an empty frame over NDI to be able to cleanup the buffers - ReadbackTextures.Flush(RHICmdList, p_send_instance); - - CreateSender(); - } -} - -/** - Attempts to change the Broadcast information associated with this media object -*/ -void UNDIMediaSender::ChangeBroadcastConfiguration(const FNDIBroadcastConfiguration& InConfiguration) -{ - bIsChangingBroadcastSize = true; - - // Determine if we need to prevent the audio / video threads from updating frames - if (p_send_instance != nullptr) - { - FScopeLock AudioLock(&AudioSyncContext); - FScopeLock RenderLock(&RenderSyncContext); - - // Get the command list interface - FRHICommandListImmediate& RHICmdList = FRHICommandListExecutor::GetImmediateCommandList(); - - // send an empty frame over NDI to be able to cleanup the buffers - ReadbackTextures.Flush(RHICmdList, p_send_instance); - } - - // Change the render target configuration based on the incoming configuration - ChangeRenderTargetConfiguration(InConfiguration.FrameSize, InConfiguration.FrameRate); - - bIsChangingBroadcastSize = false; -} - -/** - This will attempt to generate an audio frame, add the frame to the stack and return immediately, - having scheduled the frame asynchronously. -*/ -void UNDIMediaSender::TrySendAudioFrame(int64 time_code, float* AudioData, int32 NumSamples, int32 NumChannels, const int32 SampleRate, double AudioClock) -{ - if (bEnableAudio && (p_send_instance != nullptr) && (!bIsChangingBroadcastSize)) - { - FScopeTryLock Lock(&AudioSyncContext); - // Ignore audio while changes are being made; - if (Lock.IsLocked()) - { - if (NDIlib_send_get_no_connections(p_send_instance, 0) > 0) - { - // Convert from the interleaved audio that Unreal Engine produces - - NDIlib_audio_frame_interleaved_32f_t NDI_interleaved_audio_frame; - NDI_interleaved_audio_frame.timecode = time_code; - NDI_interleaved_audio_frame.sample_rate = SampleRate; - NDI_interleaved_audio_frame.no_channels = NumChannels; - NDI_interleaved_audio_frame.no_samples = NumSamples / NumChannels; - NDI_interleaved_audio_frame.p_data = AudioData; - - NDIlib_audio_frame_v2_t NDI_audio_frame; - SendAudioData.Reset(NumSamples); - NDI_audio_frame.p_data = SendAudioData.GetData(); - NDI_audio_frame.channel_stride_in_bytes = (NumSamples / NumChannels) * sizeof(float); - - NDIlib_util_audio_from_interleaved_32f_v2(&NDI_interleaved_audio_frame, &NDI_audio_frame); - - - OnSenderAudioPreSend.Broadcast(this); - - NDIlib_send_send_audio_v2(p_send_instance, &NDI_audio_frame); - - OnSenderAudioSent.Broadcast(this); - } - } - } -} - -/** - This will attempt to generate a video frame, add the frame to the stack and return immediately, - having scheduled the frame asynchronously. -*/ -void UNDIMediaSender::TrySendVideoFrame(int64 time_code) -{ - // This function is called on the Engine's Main Rendering Thread. Be very careful when doing stuff here. - // Make sure things are done quick and efficient. - - if (p_send_instance != nullptr && !bIsChangingBroadcastSize) - { - FScopeLock Lock(&RenderSyncContext); - - while(GetMetadataFrame()) - ; // Potential improvement: limit how much metadata is processed, to avoid appearing to lock up due to a metadata flood - - if (GetRenderTargetResource() != nullptr) - { - // Alright time to perform the magic :D - if (NDIlib_send_get_no_connections(p_send_instance, 0) > 0) - { - FTimecode RenderTimecode = - FTimecode::FromTimespan(FTimespan::FromSeconds(time_code / (float)1e+7), FrameRate, - FTimecode::IsDropFormatTimecodeSupported(FrameRate), - true // use roll-over timecode - ); - - if (RenderTimecode.Frames != LastRenderTime.Frames) - { - // Get the command list interface - FRHICommandListImmediate& RHICmdList = FRHICommandListExecutor::GetImmediateCommandList(); - - // alright, lets hope the render target hasn't changed sizes - NDI_video_frame.timecode = time_code; - - // performing color conversion if necessary and copy pixels into the data buffer for sending - if (DrawRenderTarget(RHICmdList)) - { - int32 Width = 0, Height = 0, LineStride = 0; - - // Map the staging surface so we can copy the buffer for the NDI SDK to use - ReadbackTextures.Map(RHICmdList, Width, Height, LineStride); - // Width and height are the size of the readback texture, and not the framesize represented - // Readback texture is used in 4:2:2 format, so actual width in pixels is double - Width *= 2; - // Readback texture may be extended in height to accomodate alpha values; remove it - if (ReadbackTexturesHaveAlpha == true) - Height = (2*Height) / 3; - - NDI_video_frame.line_stride_in_bytes = LineStride; - - // If we don't have a draw result, ensure we send an empty frame and resize our frame - if (FrameSize != FIntPoint(Width, Height)) - { - // send an empty frame over NDI to be able to cleanup the buffers - ReadbackTextures.Flush(RHICmdList, p_send_instance); - - // Do not hold the lock when going into ChangeRenderTargetConfiguration() - Lock.Unlock(); - - // Change the render target configuration based on what the RHI determines the size to be - ChangeRenderTargetConfiguration(FIntPoint(Width, Height), this->FrameRate); - } - else - { - OnSenderVideoPreSend.Broadcast(this); - - // send the frame over NDI - ReadbackTextures.Send(RHICmdList, p_send_instance, NDI_video_frame); - - // Update the Last Render Time to the current Render Timecode - LastRenderTime = RenderTimecode; - - OnSenderVideoSent.Broadcast(this); - } - } - } - } - } - } -} - -/** - Perform the color conversion (if any) and bit copy from the gpu -*/ -bool UNDIMediaSender::DrawRenderTarget(FRHICommandListImmediate& RHICmdList) -{ - bool DrawResult = false; - - // We should only do conversions and pixel copies, if we have something to work with - if (!bIsChangingBroadcastSize && (GetRenderTargetResource() != nullptr)) - { - // Get the underlying texture to use for the color conversion - FTextureRHIRef SourceTexture = (FTextureRHIRef&)GetRenderTargetResource()->TextureRHI; - - // Validate the Source Texture - if (SourceTexture.IsValid()) - { - // We have something to draw - DrawResult = true; - - TRefCountPtr RenderTargetTexturePooled; - - // Find a free target-able texture from the render pool - GRenderTargetPool.FindFreeElement(RHICmdList, RenderTargetDescriptor, RenderTargetTexturePooled, TEXT("NDIIO")); - - FRHITexture* TargetableTexture = RenderTargetTexturePooled->GetRHI(); - - PrepareDefaultTexture(); - - // Get the target size of the conversion - FIntPoint TargetSize = SourceTexture->GetSizeXY(); - - // Calculate the rectangle in which to draw the source, maintaining aspect ratio - float FrameRatio = FrameSize.X / (float)FrameSize.Y; - float TargetRatio = TargetSize.X / (float)TargetSize.Y; - - FIntPoint NewFrameSize = FrameSize; - - if (TargetRatio > FrameRatio) - { - // letterbox - NewFrameSize.Y = FMath::RoundToInt(FrameSize.X / TargetRatio); - } - else if (TargetRatio < FrameRatio) - { - // pillarbox - NewFrameSize.X = FMath::RoundToInt(FrameSize.Y * TargetRatio); - } - - float ULeft = (NewFrameSize.X - FrameSize.X) / (float)(2*NewFrameSize.X); - float URight = (NewFrameSize.X + FrameSize.X) / (float)(2*NewFrameSize.X); - float VTop = (NewFrameSize.Y - FrameSize.Y) / (float)(2*NewFrameSize.Y); - float VBottom = (NewFrameSize.Y + FrameSize.Y) / (float)(2*NewFrameSize.Y); - - FBufferRHIRef ColorVertexBuffer = CreateColorVertexBuffer(RHICmdList, FrameSize, NewFrameSize, this->OutputAlpha); - FBufferRHIRef AlphaEvenVertexBuffer = CreateAlphaEvenVertexBuffer(RHICmdList, FrameSize, NewFrameSize, this->OutputAlpha); - FBufferRHIRef AlphaOddVertexBuffer = CreateAlphaOddVertexBuffer(RHICmdList, FrameSize, NewFrameSize, this->OutputAlpha); - - // Initialize the Graphics Pipeline State Object - FGraphicsPipelineStateInitializer GraphicsPSOInit; - - // Configure shaders - FGlobalShaderMap* ShaderMap = GetGlobalShaderMap(GMaxRHIFeatureLevel); - - // Construct the shaders - TShaderMapRef VertexShader(ShaderMap); - TShaderMapRef ConvertShader(ShaderMap); - TShaderMapRef ConvertAlphaEvenShader(ShaderMap); - TShaderMapRef ConvertAlphaOddShader(ShaderMap); - - // Scaled drawing pass with conversion to UYVY - { - // Initialize the Render pass with the conversion texture - FRHITexture* ConversionTexture = TargetableTexture; - FRHIRenderPassInfo RPInfo(ConversionTexture, ERenderTargetActions::DontLoad_Store); - - RHICmdList.BeginRenderPass(RPInfo, TEXT("NDI Send Scaling Conversion")); - - // Do as it suggests - RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit); - // Set the state objects - GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState::GetRHI(); - GraphicsPSOInit.RasterizerState = TStaticRasterizerState<>::GetRHI(); - GraphicsPSOInit.BlendState = TStaticBlendStateWriteMask::GetRHI(); - // Perform binding operations for the shaders to be used - GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GMediaVertexDeclaration.VertexDeclarationRHI; - GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader(); - GraphicsPSOInit.BoundShaderState.PixelShaderRHI = ConvertShader.GetPixelShader(); - // Going to draw triangle strips - GraphicsPSOInit.PrimitiveType = PT_TriangleStrip; - - // Ensure the pipeline state is set to the one we've configured - SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit, 0); - - // Set the stream source - RHICmdList.SetStreamSource(0, ColorVertexBuffer, 0); - - // Set the texture parameter of the conversion shader - FNDIIOShaderBGRAtoUYVYPS::Params Params(SourceTexture, DefaultVideoTextureRHI, FrameSize, - FVector2D(ULeft, VTop), FVector2D(URight-ULeft, VBottom-VTop), - bPerformLinearTosRGB ? FNDIIOShaderPS::EColorCorrection::LinearTosRGB : FNDIIOShaderPS::EColorCorrection::None, - FVector2D(this->AlphaMin, this->AlphaMax)); - ConvertShader->SetParameters(RHICmdList, Params); - - // Draw the texture - RHICmdList.DrawPrimitive(0, 2, 1); - - // Release the reference to SourceTexture from the shader - // The SourceTexture may be the viewport's backbuffer, and Unreal does not like - // extra references to the backbuffer when the viewport is resized - Params.InputTarget = DefaultVideoTextureRHI; - ConvertShader->SetParameters(RHICmdList, Params); - - RHICmdList.EndRenderPass(); - } - - // Scaled drawing pass with conversion to the alpha part of UYVA - if (this->OutputAlpha == true) - { - // Alpha even-numbered lines - { - // Initialize the Render pass with the conversion texture - FRHITexture* ConversionTexture = TargetableTexture; - FRHIRenderPassInfo RPInfo(ConversionTexture, ERenderTargetActions::DontLoad_Store); - - RHICmdList.BeginRenderPass(RPInfo, TEXT("NDI Send Scaling Conversion")); - - // Do as it suggests - RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit); - // Set the state objects - GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState::GetRHI(); - GraphicsPSOInit.RasterizerState = TStaticRasterizerState<>::GetRHI(); - GraphicsPSOInit.BlendState = TStaticBlendStateWriteMask::GetRHI(); - // Perform binding operations for the shaders to be used - GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GMediaVertexDeclaration.VertexDeclarationRHI; - GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader(); - GraphicsPSOInit.BoundShaderState.PixelShaderRHI = ConvertAlphaEvenShader.GetPixelShader(); - // Going to draw triangle strips - GraphicsPSOInit.PrimitiveType = PT_TriangleStrip; - - // Ensure the pipeline state is set to the one we've configured - SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit, 0); - - // Set the stream source - RHICmdList.SetStreamSource(0, AlphaEvenVertexBuffer, 0); - - // Set the texture parameter of the conversion shader - FNDIIOShaderBGRAtoAlphaEvenPS::Params Params(SourceTexture, DefaultVideoTextureRHI, FrameSize, - FVector2D(ULeft, VTop), FVector2D(URight-ULeft, VBottom-VTop), - bPerformLinearTosRGB ? FNDIIOShaderPS::EColorCorrection::LinearTosRGB : FNDIIOShaderPS::EColorCorrection::None, - FVector2D(this->AlphaMin, this->AlphaMax)); - ConvertAlphaEvenShader->SetParameters(RHICmdList, Params); - - // Draw the texture - RHICmdList.DrawPrimitive(0, 2, 1); - - // Release the reference to SourceTexture from the shader - // The SourceTexture may be the viewport's backbuffer, and Unreal does not like - // extra references to the backbuffer when the viewport is resized - Params.InputTarget = DefaultVideoTextureRHI; - ConvertAlphaEvenShader->SetParameters(RHICmdList, Params); - - RHICmdList.EndRenderPass(); - } - - // Alpha odd-numbered lines - { - // Initialize the Render pass with the conversion texture - FRHITexture* ConversionTexture = TargetableTexture; - FRHIRenderPassInfo RPInfo(ConversionTexture, ERenderTargetActions::DontLoad_Store); - - RHICmdList.BeginRenderPass(RPInfo, TEXT("NDI Send Scaling Conversion")); - - // Do as it suggests - RHICmdList.ApplyCachedRenderTargets(GraphicsPSOInit); - // Set the state objects - GraphicsPSOInit.DepthStencilState = TStaticDepthStencilState::GetRHI(); - GraphicsPSOInit.RasterizerState = TStaticRasterizerState<>::GetRHI(); - GraphicsPSOInit.BlendState = TStaticBlendStateWriteMask::GetRHI(); - // Perform binding operations for the shaders to be used - GraphicsPSOInit.BoundShaderState.VertexDeclarationRHI = GMediaVertexDeclaration.VertexDeclarationRHI; - GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader(); - GraphicsPSOInit.BoundShaderState.PixelShaderRHI = ConvertAlphaOddShader.GetPixelShader(); - // Going to draw triangle strips - GraphicsPSOInit.PrimitiveType = PT_TriangleStrip; - - // Ensure the pipeline state is set to the one we've configured - SetGraphicsPipelineState(RHICmdList, GraphicsPSOInit, 0); - - // Set the stream source - RHICmdList.SetStreamSource(0, AlphaOddVertexBuffer, 0); - - // Set the texture parameter of the conversion shader - FNDIIOShaderBGRAtoAlphaOddPS::Params Params(SourceTexture, DefaultVideoTextureRHI, FrameSize, - FVector2D(ULeft, VTop), FVector2D(URight-ULeft, VBottom-VTop), - bPerformLinearTosRGB ? FNDIIOShaderPS::EColorCorrection::LinearTosRGB : FNDIIOShaderPS::EColorCorrection::None, - FVector2D(this->AlphaMin, this->AlphaMax)); - ConvertAlphaOddShader->SetParameters(RHICmdList, Params); - - // Draw the texture - RHICmdList.DrawPrimitive(0, 2, 1); - - // Release the reference to SourceTexture from the shader - // The SourceTexture may be the viewport's backbuffer, and Unreal does not like - // extra references to the backbuffer when the viewport is resized - Params.InputTarget = DefaultVideoTextureRHI; - ConvertAlphaOddShader->SetParameters(RHICmdList, Params); - - RHICmdList.EndRenderPass(); - } - } - - // Copy to resolve target... - // This is by far the most expensive in terms of cost, since we are having to pull - // data from the gpu, while in the render thread. - ReadbackTextures.Resolve(RHICmdList, TargetableTexture, FResolveRect(0, 0, FrameSize.X/2,FrameSize.Y), FResolveRect(0, 0, FrameSize.X/2,FrameSize.Y)); - - // Force all the drawing to be done here and now - RHICmdList.ImmediateFlush(EImmediateFlushType::FlushRHIThreadFlushResources); - } - } - - return DrawResult; -} - -/** - Change the render target configuration based on the passed in parameters - - @param InFrameSize The frame size to resize the render target to - @param InFrameRate The frame rate at which we should be sending frames via NDI -*/ -void UNDIMediaSender::ChangeRenderTargetConfiguration(FIntPoint InFrameSize, FFrameRate InFrameRate) -{ - FScopeLock RenderLock(&RenderSyncContext); - - // Ensure that the frame size matches what we are told the frame size is - this->FrameSize = InFrameSize; - this->FrameRate = InFrameRate; - - // Reiterate the properties that the frame needs to be when sent - NDI_video_frame.xres = FrameSize.X; - NDI_video_frame.yres = FrameSize.Y; - NDI_video_frame.line_stride_in_bytes = 0; - NDI_video_frame.frame_rate_D = FrameRate.Denominator; - NDI_video_frame.frame_rate_N = FrameRate.Numerator; - NDI_video_frame.FourCC = this->OutputAlpha ? NDIlib_FourCC_type_UYVA : NDIlib_FourCC_type_UYVY; - - // Size of the readback texture in UYVY format, optionally with alpha - FIntPoint UYVYTextureSize(FrameSize.X/2, FrameSize.Y + (this->OutputAlpha ? FrameSize.Y/2 : 0)); - - // Create readback textures, suitably sized for UYVY - this->ReadbackTextures.Create(UYVYTextureSize); - this->ReadbackTexturesHaveAlpha = this->OutputAlpha; - - // Create the RenderTarget descriptor, suitably sized for UYVY - RenderTargetDescriptor = FPooledRenderTargetDesc::Create2DDesc(UYVYTextureSize, PF_B8G8R8A8, FClearValueBinding::None, - TexCreate_None, TexCreate_RenderTargetable, false); - - // If our RenderTarget is valid change the size - if (IsValid(this->RenderTarget)) - { - // Ensure that our render target is the same size as we expect - this->RenderTarget->ResizeTarget(FrameSize.X, FrameSize.Y); - } - - // Do not hold a lock when broadcasting, as it calls outside of the sender's context - RenderLock.Unlock(); - - // determine if the notifier is bound - if (this->OnBroadcastConfigurationChanged.IsBound()) - { - // broadcast the notification to all interested parties - OnBroadcastConfigurationChanged.Broadcast(this); - } -} - - -/** - This will send a metadata frame to all receivers - The data is expected to be valid XML -*/ -void UNDIMediaSender::SendMetadataFrame(const FString& Data, bool AttachToVideoFrame) -{ - if (p_send_instance != nullptr) - { - if(AttachToVideoFrame == true) - { - // Attach the metadata to the next video frame to be sent - FScopeLock RenderLock(&RenderSyncContext); - this->ReadbackTextures.AddMetaData(Data); - } - else - { - OnSenderMetaDataPreSend.Broadcast(this); - - // Send the metadata separate from the video frame - NDIlib_metadata_frame_t metadata; - std::string DataStr(TCHAR_TO_UTF8(*Data)); - metadata.p_data = const_cast(DataStr.c_str()); - metadata.length = DataStr.length(); - metadata.timecode = FDateTime::Now().GetTimeOfDay().GetTicks(); - - NDIlib_send_send_metadata(p_send_instance, &metadata); - - OnSenderMetaDataSent.Broadcast(this); - } - } -} - -/** - This will send a metadata frame to all receivers - The data will be formatted as: -*/ -void UNDIMediaSender::SendMetadataFrameAttr(const FString& Element, const FString& ElementData, bool AttachToVideoFrame) -{ - FString Data = "<" + Element + ">" + ElementData + ""; - SendMetadataFrame(Data, AttachToVideoFrame); -} - -/** - This will send a metadata frame to all receivers - The data will be formatted as: -*/ -void UNDIMediaSender::SendMetadataFrameAttrs(const FString& Element, const TMap& Attributes, bool AttachToVideoFrame) -{ - FString Data = "<" + Element; - - for(const auto& Attribute : Attributes) - { - Data += " " + Attribute.Key + "=\"" + Attribute.Value + "\""; - } - - Data += "/>"; - - SendMetadataFrame(Data, AttachToVideoFrame); -} - - -/** - Attempts to get a metadata frame from the sender. - If there is one, the data is broadcast through OnSenderMetaDataReceived. - Returns true if metadata was received, false otherwise. -*/ -bool UNDIMediaSender::GetMetadataFrame() -{ - bool bProcessed = false; - - if (p_send_instance != nullptr) - { - NDIlib_metadata_frame_t metadata; - if(NDIlib_send_capture(p_send_instance, &metadata, 0) == NDIlib_frame_type_metadata) - { - if ((metadata.p_data != nullptr) && (metadata.length > 0)) - { - FString Data(UTF8_TO_TCHAR(metadata.p_data)); - OnSenderMetaDataReceived.Broadcast(this, Data); - } - NDIlib_send_free_metadata(p_send_instance, &metadata); - - bProcessed = true; - } - } - - return bProcessed; -} - -/** - Attempts to change the RenderTarget used in sending video frames over NDI -*/ -void UNDIMediaSender::ChangeVideoTexture(UTextureRenderTarget2D* VideoTexture) -{ - // Wait render thread so that we can do something - FScopeLock RenderLock(&RenderSyncContext); - - // Set our Render Target to the incoming video texture - this->RenderTarget = VideoTexture; -} - -/** - Change the alpha remapping settings -*/ -void UNDIMediaSender::ChangeAlphaRemap(float AlphaMinIn, float AlphaMaxIn) -{ - // Wait render thread so that we can do something - FScopeLock RenderLock(&RenderSyncContext); - - this->AlphaMin = AlphaMinIn; - this->AlphaMax = AlphaMaxIn; -} - -/** - Determines the current tally information. If you specify a timeout then it will wait until it has - changed, otherwise it will simply poll it and return the current tally immediately - - @param IsOnPreview - A state indicating whether this source in on preview of a receiver - @param IsOnProgram - A state indicating whether this source is on program of a receiver - @param TimeOut - Indicates the amount of time to wait (in milliseconds) until a change has occurred -*/ -void UNDIMediaSender::GetTallyInformation(bool& IsOnPreview, bool& IsOnProgram, uint32 Timeout) -{ - // reset the parameters with the default values - IsOnPreview = IsOnProgram = false; - - // validate our sender object - if (p_send_instance != nullptr) - { - // construct a tally structure - NDIlib_tally_t tally_info; - - // retrieve the tally information from the SDK - NDIlib_send_get_tally(p_send_instance, &tally_info, 0); - - // perform a copy from the tally info object to our parameters - IsOnPreview = tally_info.on_preview; - IsOnProgram = tally_info.on_program; - } -} - -/** - Gets the current number of receivers connected to this source. This can be used to avoid rendering - when nothing is connected to the video source. which can significantly improve the efficiency if - you want to make a lot of sources available on the network -*/ -void UNDIMediaSender::GetNumberOfConnections(int32& Result) -{ - // reset the result - Result = 0; - - // have we created a sender object - if (p_send_instance != nullptr) - { - // call the SDK to get the current number of connection for the sender instance of this object - Result = NDIlib_send_get_no_connections(p_send_instance, 0); - } -} - -/** - Attempts to immediately stop sending frames over NDI to any connected receivers -*/ -void UNDIMediaSender::Shutdown() -{ - // Perform cleanup on the audio related materials - { - FScopeLock Lock(&AudioSyncContext); - - // Remove the handler for the send audio frame - FNDIConnectionService::RemoveAudioSender(this); - } - - // Perform cleanup on the renderer related materials - { - FScopeLock RenderLock(&RenderSyncContext); - - // destroy the sender - if (p_send_instance != nullptr) - { - // Get the command list interface - FRHICommandListImmediate& RHICmdList = FRHICommandListExecutor::GetImmediateCommandList(); - - // send an empty frame over NDI to be able to cleanup the buffers - this->ReadbackTextures.Flush(RHICmdList, p_send_instance); - - NDIlib_send_destroy(p_send_instance); - p_send_instance = nullptr; - } - - this->DefaultVideoTextureRHI.SafeRelease(); - - this->ReadbackTextures.Destroy(); - - this->RenderTargetDescriptor.Reset(); - } -} - -/** - Called before destroying the object. This is called immediately upon deciding to destroy the object, - to allow the object to begin an asynchronous cleanup process. - */ -void UNDIMediaSender::BeginDestroy() -{ - // Call the shutdown procedure here. - this->Shutdown(); - - // Call the base implementation of 'BeginDestroy' - Super::BeginDestroy(); -} - -/** - Set whether or not a Linear to sRGB conversion is made -*/ -void UNDIMediaSender::PerformLinearTosRGBConversion(bool Value) -{ - this->bPerformLinearTosRGB = Value; -} - -/** - Set whether or not to enable PTZ support -*/ -void UNDIMediaSender::EnablePTZ(bool Value) -{ - this->bEnablePTZ = Value; -} - -/** - Returns the Render Target used for sending a frame over NDI -*/ -UTextureRenderTarget2D* UNDIMediaSender::GetRenderTarget() -{ - return this->RenderTarget; -} - - -FTextureResource* UNDIMediaSender::GetRenderTargetResource() const -{ - if(IsValid(this->RenderTarget)) - return this->RenderTarget->GetResource(); - - return nullptr; -} - - - -/** - A texture with CPU readback -*/ - -/** - Check that the MappedTexture is not mapped, and the readback texture has been destroyed. -*/ -UNDIMediaSender::MappedTexture::~MappedTexture() -{ - check(Texture.IsValid() == false); - check(pData == nullptr); -} - -/** - Create the readback texture. If the texture was already created it will first be destroyed. - The MappedTexture must currently not be mapped. -*/ -void UNDIMediaSender::MappedTexture::Create(FIntPoint InFrameSize) -{ - Destroy(); - - FrameSize = InFrameSize; -} - -/** - Destroy the readback texture (if not already destroyed). The MappedTexture must currently not be mapped. -*/ -void UNDIMediaSender::MappedTexture::Destroy() -{ - check(pData == nullptr); - - if (Texture.IsValid()) - { - Texture.SafeRelease(); - Texture = nullptr; - } - pData = nullptr; - - check(Texture.IsValid() == false); - check(pData == nullptr); -} - -void UNDIMediaSender::MappedTexture::PrepareTexture() -{ - if (Texture.IsValid() && (Texture->GetSizeXY() == FrameSize)) - return; - - Destroy(); - - check(Texture.IsValid() == false); - check(pData == nullptr); - - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaSenderMappedTexture")) - .SetExtent(FrameSize.X, FrameSize.Y) - .SetFormat(PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::CPUReadback); - Texture = RHICreateTexture(CreateDesc); - - pData = nullptr; - - check(Texture.IsValid() == true); - check(pData == nullptr); -} - -FIntPoint UNDIMediaSender::MappedTexture::GetSizeXY() const -{ - return FrameSize; -} - -/** - Resolve the source texture to the readback texture. The readback texture must have been created. - The MappedTexture must currently not be mapped. -*/ -void UNDIMediaSender::MappedTexture::Resolve(FRHICommandListImmediate& RHICmdList, FRHITexture* SourceTextureRHI, const FResolveRect& Rect, const FResolveRect& DestRect) -{ - PrepareTexture(); - - check(Texture.IsValid() == true); - check(pData == nullptr); - check(SourceTextureRHI != nullptr); - - // Copy to resolve target... - // This is by far the most expensive in terms of cost, since we are having to pull - // data from the gpu, while in the render thread. - RHICmdList.CopyTexture(SourceTextureRHI, Texture, FRHICopyTextureInfo()); -} - -/** - Map the readback texture so that its content can be read by the CPU. - The readback texture must have been created. The MappedTexture must currently not be mapped. -*/ -void UNDIMediaSender::MappedTexture::Map(FRHICommandListImmediate& RHICmdList, int32& OutWidth, int32& OutHeight, int32& OutLineStride) -{ - check(Texture.IsValid() == true); - check(pData == nullptr); - - // Map the staging surface so we can copy the buffer for the NDI SDK to use - int32 MappedWidth = 0, MappedHeight = 0; - RHICmdList.MapStagingSurface(Texture, pData, MappedWidth, MappedHeight); - OutWidth = FrameSize.X; - OutHeight = FrameSize.Y; - OutLineStride = MappedWidth * 4; - - check(pData != nullptr); -} - -/** - Return a pointer to the mapped readback texture content. - The MappedTexture must currently be mapped. -*/ -void* UNDIMediaSender::MappedTexture::MappedData() const -{ - check(pData != nullptr); - - return pData; -} - -/** - Unmap the readback texture (if currently mapped). -*/ -void UNDIMediaSender::MappedTexture::Unmap(FRHICommandListImmediate& RHICmdList) -{ - if(pData != nullptr) - { - check(Texture.IsValid() == true); - - RHICmdList.UnmapStagingSurface(Texture); - pData = nullptr; - } - - MetaData.clear(); - - check(pData == nullptr); -} - - -/** - Adds metadata to the texture -*/ -void UNDIMediaSender::MappedTexture::AddMetaData(const FString& Data) -{ - std::string DataStr(TCHAR_TO_UTF8(*Data)); - MetaData += DataStr; -} - -/** - Gets the metadata for the texture -*/ -const std::string& UNDIMediaSender::MappedTexture::GetMetaData() const -{ - return MetaData; -} - - -/** - Class for managing the sending of mapped texture data to an NDI video stream. - Sending is done asynchronously, so mapping and unmapping of texture data must - be managed so that CPU accessible texture content remains valid until the - sending of the frame is guaranteed to have been completed. This is achieved - by double-buffering readback textures. -*/ - -/** - Create the mapped texture sender. If the mapped texture sender was already created - it will first be destroyed. No texture must currently be mapped. -*/ -void UNDIMediaSender::MappedTextureASyncSender::Create(FIntPoint InFrameSize) -{ - Destroy(); - - MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - CurrentMappedTexture.Create(InFrameSize); - - MappedTexture& PreviousMappedTexture = MappedTextures[1-CurrentIndex]; - PreviousMappedTexture.Create(InFrameSize); -} - -/** - Destroy the mapped texture sender (if not already destroyed). No texture must currently be mapped. -*/ -void UNDIMediaSender::MappedTextureASyncSender::Destroy() -{ - MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - CurrentMappedTexture.Destroy(); - - MappedTexture& PreviousMappedTexture = MappedTextures[1-CurrentIndex]; - PreviousMappedTexture.Destroy(); -} - -FIntPoint UNDIMediaSender::MappedTextureASyncSender::GetSizeXY() const -{ - const MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - return CurrentMappedTexture.GetSizeXY(); -} - -/** - Resolve the source texture to the current texture of the mapped texture sender. - The mapped texture sender must have been created. The current texture must currently not be mapped. -*/ -void UNDIMediaSender::MappedTextureASyncSender::Resolve(FRHICommandListImmediate& RHICmdList, FRHITexture* SourceTextureRHI, const FResolveRect& Rect, const FResolveRect& DestRect) -{ - // Copy to resolve target... - // This is by far the most expensive in terms of cost, since we are having to pull - // data from the gpu, while in the render thread. - MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - CurrentMappedTexture.Resolve(RHICmdList, SourceTextureRHI, Rect, DestRect); -} - -/** - Map the current texture of the mapped texture sender so that its content can be read by the CPU. - The mapped texture sender must have been created. The current texture must currently not be mapped. -*/ -void UNDIMediaSender::MappedTextureASyncSender::Map(FRHICommandListImmediate& RHICmdList, int32& OutWidth, int32& OutHeight, int32& OutLineStride) -{ - // Map the staging surface so we can copy the buffer for the NDI SDK to use - MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - CurrentMappedTexture.Map(RHICmdList, OutWidth, OutHeight, OutLineStride); -} - -/** - Send the current texture of the mapped texture sender to an NDI video stream, then swaps the textures. - The mapped texture sender must have been created. The current texture must currently be mapped. -*/ -void UNDIMediaSender::MappedTextureASyncSender::Send(FRHICommandListImmediate& RHICmdList, NDIlib_send_instance_t p_send_instance_in, NDIlib_video_frame_v2_t& p_video_data) -{ - // Send the currently mapped data to an NDI stream asynchronously - - check(p_send_instance_in != nullptr); - - MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - - p_video_data.p_data = (uint8_t*)CurrentMappedTexture.MappedData(); - - auto& MetaData = CurrentMappedTexture.GetMetaData(); - if(MetaData.empty() == false) - { - p_video_data.p_metadata = MetaData.c_str(); - } - else - { - p_video_data.p_metadata = nullptr; - } - - NDIlib_send_send_video_async_v2(p_send_instance_in, &p_video_data); - - // After send_video_async returns, the frame sent before this one is guaranteed to have been processed - // So the texture for the previous frame can be unmapped - MappedTexture& PreviousMappedTexture = MappedTextures[1-CurrentIndex]; - PreviousMappedTexture.Unmap(RHICmdList); - - // Switch the current and previous textures - CurrentIndex = 1 - CurrentIndex; -} - -/** - Flushes the NDI video stream, and unmaps the textures (if mapped) -*/ -void UNDIMediaSender::MappedTextureASyncSender::Flush(FRHICommandListImmediate& RHICmdList, NDIlib_send_instance_t p_send_instance_in) -{ - // Flush the asynchronous NDI stream and unmap all the textures - - check(p_send_instance_in != nullptr); - - NDIlib_send_send_video_async_v2(p_send_instance_in, nullptr); - - // After send_video_async returns, the frame sent before this one is guaranteed to have been processed - // So the texture for the previous frame can be unmapped - MappedTexture& PreviousMappedTexture = MappedTextures[1-CurrentIndex]; - PreviousMappedTexture.Unmap(RHICmdList); - - // As the send queue was flushed, also unmap the current frame as it is not used - MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - CurrentMappedTexture.Unmap(RHICmdList); - - // Switch the current and previous textures - CurrentIndex = 1 - CurrentIndex; -} - -/** - Adds metadata to the current texture -*/ -void UNDIMediaSender::MappedTextureASyncSender::AddMetaData(const FString& Data) -{ - MappedTexture& CurrentMappedTexture = MappedTextures[CurrentIndex]; - CurrentMappedTexture.AddMetaData(Data); -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSoundWave.cpp b/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSoundWave.cpp deleted file mode 100644 index af0fade..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaSoundWave.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include - - -UNDIMediaSoundWave::UNDIMediaSoundWave(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) -{ - // Set the Default Values for this object - this->bLooping = false; - this->NumChannels = 1; - this->SampleRate = 48000; - - this->Duration = INDEFINITELY_LOOPING_DURATION; -} - -/** - Set the Media Source of this object, so that when this object is called to 'GeneratePCMData' by the engine - we can request the media source to provide the pcm data from the current connected source -*/ -void UNDIMediaSoundWave::SetConnectionSource(UNDIMediaReceiver* InMediaSource) -{ - // Ensure there is no thread contention for generating pcm data from the connection source - FScopeLock Lock(&SyncContext); - - // Do we have a media source object to work with - if (this->MediaSource != nullptr) - { - // Are we already registered with the incoming media source object - if (this->MediaSource != InMediaSource) - { - // It doesn't look like we are registered with the incoming, make sure - // to unregistered with the previous source - this->MediaSource->UnregisterAudioWave(this); - } - } - - // Ensure we have a reference to the media source object - this->MediaSource = InMediaSource; -} - -/** - Called by the engine to generate pcm data to be 'heard' by audio listener objects -*/ -int32 UNDIMediaSoundWave::OnGeneratePCMAudio(TArray& OutAudio, int32 NumSamples) -{ - // Ensure there is no thread contention for generating pcm data from the connection source - FScopeLock Lock(&SyncContext); - - // set the default value, in case we have no connection source - int32 samples_generated = 0; - - OutAudio.Reset(); - OutAudio.AddZeroed(NumSamples * sizeof(int16)); - - // check the connection source and continue - if (this->MediaSource != nullptr) - { - samples_generated = MediaSource->GeneratePCMData(this, OutAudio.GetData(), NumSamples); - } - - // return to the engine the number of samples actually generated - return samples_generated; -} - -bool UNDIMediaSoundWave::IsReadyForFinishDestroy() -{ - // Ensure that there is no thread contention for generating data - FScopeLock Lock(&SyncContext); - - return USoundWaveProcedural::IsReadyForFinishDestroy(); -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTexture2D.cpp b/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTexture2D.cpp deleted file mode 100644 index c5a643a..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTexture2D.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include -#include - -UNDIMediaTexture2D::UNDIMediaTexture2D(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) -{ - this->SetMyResource(nullptr); -} - -void UNDIMediaTexture2D::UpdateTextureReference(FRHICommandList& RHICmdList, FTextureRHIRef Reference) -{ - if (GetMyResource() != nullptr) - { - if (Reference.IsValid() && GetMyResource()->TextureRHI != Reference) - { - GetMyResource()->TextureRHI = (FTextureRHIRef&)Reference; - RHIUpdateTextureReference(TextureReference.TextureReferenceRHI, GetMyResource()->TextureRHI); - } - else if (!Reference.IsValid()) - { - if (FNDIMediaTextureResource* TextureResource = static_cast(this->GetMyResource())) - { - ENQUEUE_RENDER_COMMAND(FNDIMediaTexture2DUpdateTextureReference) - ([this](FRHICommandListImmediate& RHICmdList) { - - static int32 DefaultWidth = 1280; - static int32 DefaultHeight = 720; - - // Set the default video texture to reference nothing - TRefCountPtr RenderableTexture; - - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaTexture2DUpdateTextureReference")) - .SetExtent(DefaultWidth, DefaultHeight) - .SetFormat(EPixelFormat::PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::Dynamic | ETextureCreateFlags::RenderTargetable) - .SetClearValue(FClearValueBinding(FLinearColor(0.0f, 0.0f, 0.0f))); - - RenderableTexture = RHICreateTexture(CreateDesc); - - GetMyResource()->TextureRHI = (FTextureRHIRef&)RenderableTexture; - - RHIUpdateTextureReference(TextureReference.TextureReferenceRHI, GetMyResource()->TextureRHI); - }); - - // Make sure _RenderThread is executed before continuing - FlushRenderingCommands(); - } - } - } -} - -FTextureResource* UNDIMediaTexture2D::CreateResource() -{ - if (this->GetMyResource() != nullptr) - { - delete this->GetMyResource(); - this->SetMyResource(nullptr); - } - - if (FNDIMediaTextureResource* TextureResource = new FNDIMediaTextureResource(this)) - { - this->SetMyResource(TextureResource); - - ENQUEUE_RENDER_COMMAND(FNDIMediaTexture2DUpdateTextureReference) - ([this](FRHICommandListImmediate& RHICmdList) { - - static int32 DefaultWidth = 1280; - static int32 DefaultHeight = 720; - - // Set the default video texture to reference nothing - TRefCountPtr RenderableTexture; - - const FRHITextureCreateDesc CreateDesc = FRHITextureCreateDesc::Create2D(TEXT("NDIMediaTexture2DCreateResourceTexture")) - .SetExtent(DefaultWidth, DefaultHeight) - .SetFormat(EPixelFormat::PF_B8G8R8A8) - .SetNumMips(1) - .SetFlags(ETextureCreateFlags::Dynamic | ETextureCreateFlags::RenderTargetable) - .SetClearValue(FClearValueBinding(FLinearColor(0.0f, 0.0f, 0.0f))); - - RenderableTexture = RHICreateTexture(CreateDesc); - - GetMyResource()->TextureRHI = (FTextureRHIRef&)RenderableTexture; - - RHIUpdateTextureReference(TextureReference.TextureReferenceRHI, GetMyResource()->TextureRHI); - }); - } - - return this->GetMyResource(); -} - -void UNDIMediaTexture2D::GetResourceSizeEx(FResourceSizeEx& CumulativeResourceSize) -{ - Super::GetResourceSizeEx(CumulativeResourceSize); - - if (FNDIMediaTextureResource* CurrentResource = static_cast(this->GetMyResource())) - { - CumulativeResourceSize.AddUnknownMemoryBytes(CurrentResource->GetResourceSize()); - } -} - -float UNDIMediaTexture2D::GetSurfaceHeight() const -{ - return GetMyResource() != nullptr ? GetMyResource()->GetSizeY() : 0.0f; -} - -float UNDIMediaTexture2D::GetSurfaceWidth() const -{ - return GetMyResource() != nullptr ? GetMyResource()->GetSizeX() : 0.0f; -} - -float UNDIMediaTexture2D::GetSurfaceDepth() const -{ - return 0.0f; -} - -uint32 UNDIMediaTexture2D::GetSurfaceArraySize() const -{ - return 0; -} - -EMaterialValueType UNDIMediaTexture2D::GetMaterialType() const -{ - return MCT_Texture2D; -} - - -ETextureClass UNDIMediaTexture2D::GetTextureClass() const -{ - return ETextureClass::Other2DNoSource; -} - -void UNDIMediaTexture2D::SetMyResource(FTextureResource* ResourceIn) -{ - SetResource(ResourceIn); -} - -FTextureResource* UNDIMediaTexture2D::GetMyResource() -{ - return GetResource(); -} - -const FTextureResource* UNDIMediaTexture2D::GetMyResource() const -{ - return GetResource(); -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTextureResource.cpp b/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTextureResource.cpp deleted file mode 100644 index 098bf84..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Objects/Media/NDIMediaTextureResource.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include -#include -#include -#include - -/** - Constructs a new instance of this object specifying a media texture owner - - @param Owner The media object used as the owner for this object -*/ -FNDIMediaTextureResource::FNDIMediaTextureResource(UNDIMediaTexture2D* Owner) -{ - this->MediaTexture = Owner; -} - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later -void FNDIMediaTextureResource::InitRHI(FRHICommandListBase& RHICmdList) -#else -void FNDIMediaTextureResource::InitDynamicRHI() -#endif -{ - if (this->MediaTexture != nullptr) - { - FSamplerStateInitializerRHI SamplerStateInitializer( - (ESamplerFilter)UDeviceProfileManager::Get().GetActiveProfile()->GetTextureLODSettings()->GetSamplerFilter( - MediaTexture), - AM_Border, AM_Border, AM_Wrap); - - SamplerStateRHI = RHICreateSamplerState(SamplerStateInitializer); - } -} - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later -void FNDIMediaTextureResource::ReleaseRHI() -#else -void FNDIMediaTextureResource::ReleaseDynamicRHI() -#endif -{ - // Release the TextureRHI bound by this object - this->TextureRHI.SafeRelease(); - - // Ensure that we have a owning media texture - if (this->MediaTexture != nullptr) - { - // Remove the texture reference associated with the owner texture object - RHIUpdateTextureReference(MediaTexture->TextureReference.TextureReferenceRHI, nullptr); - } -} - -SIZE_T FNDIMediaTextureResource::GetResourceSize() -{ - return CalcTextureSize(GetSizeX(), GetSizeY(), EPixelFormat::PF_A8R8G8B8, 1); -} - -uint32 FNDIMediaTextureResource::GetSizeX() const -{ - return this->TextureRHI.IsValid() ? TextureRHI->GetSizeXYZ().X : 0; -} - -uint32 FNDIMediaTextureResource::GetSizeY() const -{ - return this->TextureRHI.IsValid() ? TextureRHI->GetSizeXYZ().Y : 0; -} \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.cpp b/Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.cpp deleted file mode 100644 index 1392435..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.cpp +++ /dev/null @@ -1,492 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - - -#include "NDIMediaPlayer.h" - -#include -#include -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later -#include -#endif -#include -#include -#include -#include - - -#define LOCTEXT_NAMESPACE "FNDIMediaPlayer" - - - -// An NDI-derived media texture sample, representing a frame of video -class NDIMediaTextureSample : public FMediaIOCoreTextureSampleBase, public IMediaTextureSampleConverter -{ - using Super = FMediaIOCoreTextureSampleBase; - -public: - - NDIMediaTextureSample() = default; - virtual ~NDIMediaTextureSample() = default; - - bool Initialize(const NDIlib_video_frame_v2_t& InVideoFrame, FTimespan InTime, UNDIMediaReceiver* InReceiver) - { - FreeSample(); - - VideoFrame = InVideoFrame; - Receiver = InReceiver; - - if (InVideoFrame.FourCC == NDIlib_FourCC_video_type_UYVY) - SetBuffer(InVideoFrame.p_data, InVideoFrame.line_stride_in_bytes * InVideoFrame.yres); - else if (InVideoFrame.FourCC == NDIlib_FourCC_video_type_UYVA) - SetBuffer(InVideoFrame.p_data, InVideoFrame.line_stride_in_bytes * InVideoFrame.yres + - InVideoFrame.xres*InVideoFrame.yres); - else - return false; - - VideoFrame.p_data = Buffer.GetData(); - - SetProperties(InVideoFrame.line_stride_in_bytes, InVideoFrame.xres, InVideoFrame.yres, EMediaTextureSampleFormat::CharUYVY, - InTime, FFrameRate(InVideoFrame.frame_rate_N, InVideoFrame.frame_rate_D), FTimecode(), - true); - - return true; - } - - virtual const FMatrix& GetYUVToRGBMatrix() const override - { - return MediaShaders::YuvToRgbRec709Scaled; - } - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later - virtual void CopyConfiguration(const TSharedPtr& SourceSample) override - { - Super::CopyConfiguration(SourceSample); - - if (SourceSample.IsValid()) - { - TSharedPtr NDISamplePtr = StaticCastSharedPtr(SourceSample); - VideoFrame = NDISamplePtr->VideoFrame; - Receiver = NDISamplePtr->Receiver; - } - } -#endif - - virtual uint32 GetConverterInfoFlags() const override - { - return ConverterInfoFlags_WillCreateOutputTexture; - } - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 5)) // 5.5 or later - virtual bool Convert(FRHICommandListImmediate& RHICmdList, FTextureRHIRef& InDstTexture, const FConversionHints& Hints) override - { - if (!Receiver) - return false; - - FTextureRHIRef DstTexture(Receiver->DisplayFrame(VideoFrame)); - InDstTexture = DstTexture; - - return true; - } -#else - virtual bool Convert(FTexture2DRHIRef & InDstTexture, const FConversionHints & Hints) override - { - if (!Receiver) - return false; - - FTexture2DRHIRef DstTexture(Receiver->DisplayFrame(VideoFrame)); - InDstTexture = DstTexture; - - return true; - } -#endif - -private: - NDIlib_video_frame_v2_t VideoFrame; - UNDIMediaReceiver* Receiver { nullptr }; - //FMediaTimeStamp Time; - //std::vector Data; -}; - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later -class NDIMediaTextureSampleConverter : public FMediaIOCoreTextureSampleConverter -{ - using Super = FMediaIOCoreTextureSampleConverter; - -public: - - NDIMediaTextureSampleConverter() = default; - virtual ~NDIMediaTextureSampleConverter() = default; - - virtual void Setup(const TSharedPtr& InSample) override - { - FMediaIOCoreTextureSampleConverter::Setup(InSample); - JITRProxySample = InSample; - } - - virtual uint32 GetConverterInfoFlags() const override - { - return ConverterInfoFlags_WillCreateOutputTexture; - } - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 5)) // 5.5 or later - virtual bool Convert(FRHICommandListImmediate& RHICmdList, FTextureRHIRef& InDstTexture, const FConversionHints& Hints) override - { - if (FMediaIOCoreTextureSampleConverter::Convert(RHICmdList, InDstTexture, Hints)) - { - TSharedPtr SamplePtr = JITRProxySample.Pin(); - if (SamplePtr.IsValid()) - { - TSharedPtr NDISamplePtr = StaticCastSharedPtr(SamplePtr); - return NDISamplePtr->Convert(RHICmdList, InDstTexture, Hints); - } - } - - return false; - } -#else - virtual bool Convert(FTexture2DRHIRef& InDstTexture, const FConversionHints& Hints) override - { - if (FMediaIOCoreTextureSampleConverter::Convert(InDstTexture, Hints)) - { - TSharedPtr SamplePtr = JITRProxySample.Pin(); - if (SamplePtr.IsValid()) - { - TSharedPtr NDISamplePtr = StaticCastSharedPtr(SamplePtr); - return NDISamplePtr->Convert(InDstTexture, Hints); - } - } - - return false; - } -#endif - -private: - TWeakPtr JITRProxySample; -}; -#endif - - -class NDIMediaTextureSamplePool : public TMediaObjectPool -{}; - - -// An NDI-derived media audio sample, representing a frame of audio -class NDIMediaAudioSample : public FMediaIOCoreAudioSampleBase -{ - using Super = FMediaIOCoreAudioSampleBase; - -public: -}; - -class NDIMediaAudioSamplePool : public TMediaObjectPool -{}; - - - -FNDIMediaPlayer::FNDIMediaPlayer(IMediaEventSink& InEventSink) - : Super(InEventSink) - , NDIPlayerState(EMediaState::Closed) - , EventSink(InEventSink) - , TextureSamplePool(new NDIMediaTextureSamplePool) - , AudioSamplePool(new NDIMediaAudioSamplePool) -{} - - -FNDIMediaPlayer::~FNDIMediaPlayer() -{ - Close(); - - delete TextureSamplePool; - delete AudioSamplePool; -} - - -FGuid FNDIMediaPlayer::GetPlayerPluginGUID() const -{ - static FGuid PlayerPluginGUID(0x71b13c2b, 0x70874965, 0x8a0e23f7, 0x5be6698f); - return PlayerPluginGUID; -} - - -bool FNDIMediaPlayer::Open(const FString& Url, const IMediaOptions* Options) -{ - if (!Super::Open(Url, Options)) - { - return false; - } - - MaxNumVideoFrameBuffer = Options->GetMediaOption(NDIMediaOption::MaxVideoFrameBuffer, (int64)8); - MaxNumAudioFrameBuffer = Options->GetMediaOption(NDIMediaOption::MaxAudioFrameBuffer, (int64)8); - MaxNumMetadataFrameBuffer = Options->GetMediaOption(NDIMediaOption::MaxAncillaryFrameBuffer, (int64)8); - - // Setup our different supported channels based on source settings - SetupSampleChannels(); - - // If the player is opened with an NDIMediaReceiver, use that. Otherwise create an internal one. - bool bIsNDIMediaReceiver = Options->HasMediaOption(NDIMediaOption::IsNDIMediaReceiver); - if (bIsNDIMediaReceiver) - { - Receiver = static_cast(const_cast(Options)); - bInternalReceiver = false; - } - else - { - Receiver = NewObject(); - bInternalReceiver = true; - } - - // Hook into the video and audio captures - Receiver->OnNDIReceiverVideoCaptureEvent.Remove(VideoCaptureEventHandle); - VideoCaptureEventHandle = Receiver->OnNDIReceiverVideoCaptureEvent.AddLambda([this](UNDIMediaReceiver* receiver, const NDIlib_video_frame_v2_t& video_frame) - { - this->DisplayFrame(video_frame); - }); - Receiver->OnNDIReceiverAudioCaptureEvent.Remove(AudioCaptureEventHandle); - AudioCaptureEventHandle = Receiver->OnNDIReceiverAudioCaptureEvent.AddLambda([this](UNDIMediaReceiver* receiver, const NDIlib_audio_frame_v2_t& audio_frame) - { - this->PlayAudio(audio_frame); - }); - - // Control the player's state based on the receiver connecting and disconnecting - Receiver->OnNDIReceiverConnectedEvent.Remove(ConnectedEventHandle); - ConnectedEventHandle = Receiver->OnNDIReceiverConnectedEvent.AddLambda([this](UNDIMediaReceiver* receiver) - { - this->NDIPlayerState = EMediaState::Playing; - }); - Receiver->OnNDIReceiverDisconnectedEvent.Remove(DisconnectedEventHandle); - DisconnectedEventHandle = Receiver->OnNDIReceiverDisconnectedEvent.AddLambda([this](UNDIMediaReceiver* receiver) - { - this->NDIPlayerState = EMediaState::Closed; - }); - - - // Get ready to connect - CurrentState = EMediaState::Preparing; - NDIPlayerState = EMediaState::Preparing; - EventSink.ReceiveMediaEvent(EMediaEvent::MediaConnecting); - - // Start up the receiver under the player's control. - // Use the provided URL as the source if given, otherwise use the connection info set for the receiver - FString Scheme; - FString Location; - if (Url.Split(TEXT("://"), &Scheme, &Location, ESearchCase::CaseSensitive)) - { - FNDIConnectionInformation ConnectionInformation = Receiver->ConnectionSetting; - ConnectionInformation.SourceName = Location; - Receiver->Initialize(ConnectionInformation, UNDIMediaReceiver::EUsage::Controlled); - } - else - { - Receiver->Initialize(UNDIMediaReceiver::EUsage::Controlled); - } - - return true; -} - - -void FNDIMediaPlayer::Close() -{ - NDIPlayerState = EMediaState::Closed; - - if (Receiver != nullptr) - { - // Disconnect from receiver events - Receiver->OnNDIReceiverVideoCaptureEvent.Remove(VideoCaptureEventHandle); - VideoCaptureEventHandle.Reset(); - Receiver->OnNDIReceiverAudioCaptureEvent.Remove(AudioCaptureEventHandle); - AudioCaptureEventHandle.Reset(); - Receiver->OnNDIReceiverConnectedEvent.Remove(ConnectedEventHandle); - ConnectedEventHandle.Reset(); - Receiver->OnNDIReceiverDisconnectedEvent.Remove(DisconnectedEventHandle); - DisconnectedEventHandle.Reset(); - - // Shut down the receiver - Receiver->Shutdown(); - - // If the player created the receiver, destroy the receiver - if (bInternalReceiver) - Receiver->ConditionalBeginDestroy(); - - Receiver = nullptr; - bInternalReceiver = false; - } - - TextureSamplePool->Reset(); - AudioSamplePool->Reset(); - - Super::Close(); -} - - -void FNDIMediaPlayer::TickInput(FTimespan DeltaTime, FTimespan Timecode) -{ - // Update player state - EMediaState NewState = NDIPlayerState; - - if (NewState != CurrentState) - { - CurrentState = NewState; - if (CurrentState == EMediaState::Playing) - { - EventSink.ReceiveMediaEvent(EMediaEvent::TracksChanged); - EventSink.ReceiveMediaEvent(EMediaEvent::MediaOpened); - EventSink.ReceiveMediaEvent(EMediaEvent::PlaybackResumed); - } - else if (NewState == EMediaState::Error) - { - EventSink.ReceiveMediaEvent(EMediaEvent::MediaOpenFailed); - Close(); - } - } - - if (CurrentState != EMediaState::Playing) - { - return; - } - - TickTimeManagement(); -} - - -void FNDIMediaPlayer::TickFetch(FTimespan DeltaTime, FTimespan Timecode) -{ - Super::TickFetch(DeltaTime, Timecode); - - if ((CurrentState == EMediaState::Preparing) || (CurrentState == EMediaState::Playing)) - { - if (Receiver != nullptr) - { - // Ask receiver to capture a new frame of video and audio. - // Will call DisplayFrame() and PlayAudio() through capture event. - Receiver->CaptureConnectedAudio(); - Receiver->CaptureConnectedVideo(); - } - } - - if (CurrentState == EMediaState::Playing) - { - ProcessFrame(); - VerifyFrameDropCount(); - } -} - - -void FNDIMediaPlayer::ProcessFrame() -{ - if (CurrentState == EMediaState::Playing) - { - // No need to lock here. That info is only used for debug information. - //AudioTrackFormat.NumChannels = 0;//NDIThreadAudioChannels; - //AudioTrackFormat.SampleRate = 0;//NDIThreadAudioSampleRate; - } -} - - -void FNDIMediaPlayer::DisplayFrame(const NDIlib_video_frame_v2_t& video_frame) -{ - auto TextureSample = TextureSamplePool->AcquireShared(); - - if (TextureSample->Initialize(video_frame, FTimespan::FromSeconds(GetPlatformSeconds()), Receiver)) - { -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later - AddVideoSample(TextureSample); -#else - Samples->AddVideo(TextureSample); -#endif - } -} - - -void FNDIMediaPlayer::PlayAudio(const NDIlib_audio_frame_v2_t& audio_frame) -{ - auto AudioSample = AudioSamplePool->AcquireShared(); - - // UE wants 32bit signed interleaved audio data, so need to convert the NDI audio. - // Fortunately the NDI library has a utility function to do that. - - // Get a buffer to convert to - const int32 available_samples = audio_frame.no_samples * audio_frame.no_channels; - void* SampleBuffer = AudioSample->RequestBuffer(available_samples); - - if (SampleBuffer != nullptr) - { - // Format to convert to - NDIlib_audio_frame_interleaved_32s_t audio_frame_32s( - audio_frame.sample_rate, - audio_frame.no_channels, - audio_frame.no_samples, - audio_frame.timecode, - 20, - static_cast(SampleBuffer)); - - // Convert received NDI audio - NDIlib_util_audio_to_interleaved_32s_v2(&audio_frame, &audio_frame_32s); - - // Supply converted audio data - if (AudioSample->SetProperties(available_samples - , audio_frame_32s.no_channels - , audio_frame_32s.sample_rate - , FTimespan::FromSeconds(GetPlatformSeconds()) - , TOptional())) - { - Samples->AddAudio(AudioSample); - } - } -} - - -void FNDIMediaPlayer::VerifyFrameDropCount() -{ -} - - -bool FNDIMediaPlayer::IsHardwareReady() const -{ - return NDIPlayerState == EMediaState::Playing ? true : false; -} - - -void FNDIMediaPlayer::SetupSampleChannels() -{ - FMediaIOSamplingSettings VideoSettings = BaseSettings; - VideoSettings.BufferSize = MaxNumVideoFrameBuffer; - Samples->InitializeVideoBuffer(VideoSettings); - - FMediaIOSamplingSettings AudioSettings = BaseSettings; - AudioSettings.BufferSize = MaxNumAudioFrameBuffer; - Samples->InitializeAudioBuffer(AudioSettings); - - FMediaIOSamplingSettings MetadataSettings = BaseSettings; - MetadataSettings.BufferSize = MaxNumMetadataFrameBuffer; - Samples->InitializeMetadataBuffer(MetadataSettings); -} - - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later -TSharedPtr FNDIMediaPlayer::AcquireTextureSample_AnyThread() const -{ - return TextureSamplePool->AcquireShared(); -} - -TSharedPtr FNDIMediaPlayer::CreateTextureSampleConverter() const -{ - return MakeShared(); -} -#endif - - -//~ ITimedDataInput interface -#if WITH_EDITOR -const FSlateBrush* FNDIMediaPlayer::GetDisplayIcon() const -{ - return nullptr; -} -#endif - - -#undef LOCTEXT_NAMESPACE diff --git a/Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.h b/Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.h deleted file mode 100644 index f258627..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Player/NDIMediaPlayer.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - - -class FNDIMediaPlayer : public FMediaIOCorePlayerBase -{ - using Super = FMediaIOCorePlayerBase; - -public: - FNDIMediaPlayer(IMediaEventSink& InEventSink); - - virtual ~FNDIMediaPlayer(); - - - //~ IMediaPlayer interface - virtual FGuid GetPlayerPluginGUID() const override; - virtual bool Open(const FString& Url, const IMediaOptions* Options) override; - virtual void Close() override; - - virtual void TickInput(FTimespan DeltaTime, FTimespan Timecode) override; - virtual void TickFetch(FTimespan DeltaTime, FTimespan Timecode) override; - -protected: - virtual bool IsHardwareReady() const override; - virtual void SetupSampleChannels() override; -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later - virtual TSharedPtr AcquireTextureSample_AnyThread() const override; - virtual TSharedPtr CreateTextureSampleConverter() const override; -#endif - - void DisplayFrame(const NDIlib_video_frame_v2_t& video_frame); - void PlayAudio(const NDIlib_audio_frame_v2_t& audio_frame); - - void ProcessFrame(); - void VerifyFrameDropCount(); - -public: - //~ ITimedDataInput interface -#if WITH_EDITOR - virtual const FSlateBrush* GetDisplayIcon() const override; -#endif - -private: - /** Max sample count our different buffer can hold. Taken from MediaSource */ - int32 MaxNumAudioFrameBuffer = 0; - int32 MaxNumMetadataFrameBuffer = 0; - int32 MaxNumVideoFrameBuffer = 0; - - /** Current state of the media player. */ - EMediaState NDIPlayerState = EMediaState::Closed; - - /** The media event handler. */ - IMediaEventSink& EventSink; - - UNDIMediaReceiver* Receiver = nullptr; - bool bInternalReceiver = true; - - FDelegateHandle VideoCaptureEventHandle; - FDelegateHandle AudioCaptureEventHandle; - FDelegateHandle ConnectedEventHandle; - FDelegateHandle DisconnectedEventHandle; - - class NDIMediaTextureSamplePool* TextureSamplePool; - class NDIMediaAudioSamplePool* AudioSamplePool; -}; diff --git a/Plugins/NDIIO/Source/Core/Classes/Services/NDIConnectionService.cpp b/Plugins/NDIIO/Source/Core/Classes/Services/NDIConnectionService.cpp deleted file mode 100644 index 00cef43..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Services/NDIConnectionService.cpp +++ /dev/null @@ -1,404 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if WITH_EDITOR - -#include - -#endif - -/** Define Global Accessors */ - -FNDIConnectionServiceSendVideoEvent FNDIConnectionService::EventOnSendVideoFrame; -TMap FNDIConnectionService::SubmixSendAudioFrameEvents; - - -FCriticalSection FNDIConnectionService::AudioSyncContext; -FCriticalSection FNDIConnectionService::RenderSyncContext; - -/** ************************ **/ - -/** - Constructs a new instance of this object -*/ -FNDIConnectionService::FNDIConnectionService() {} - -// Begin the service -bool FNDIConnectionService::Start() -{ - if (!bIsInitialized) - { - bIsInitialized = true; - - // Define some basic properties - FNDIBroadcastConfiguration Configuration; - FString BroadcastName = TEXT("Unreal Engine"); - EObjectFlags Flags = RF_Public | RF_Standalone | RF_Transient | RF_MarkAsNative; - - bool bBeginBroadcastOnPlay = false; - - // Load the plugin settings for broadcasting the active viewport - if (auto* CoreSettings = NewObject()) - { - // Define the configuration properties - Configuration.FrameRate = CoreSettings->BroadcastRate; - Configuration.FrameSize = FIntPoint(FMath::Clamp(CoreSettings->PreferredFrameSize.X, 240, 3840), - FMath::Clamp(CoreSettings->PreferredFrameSize.Y, 240, 3840)); - - // Set the broadcast name - BroadcastName = CoreSettings->ApplicationStreamName; - - bBeginBroadcastOnPlay = CoreSettings->bBeginBroadcastOnPlay; - - // clean-up the settings object - CoreSettings->ConditionalBeginDestroy(); - CoreSettings = nullptr; - } - - /** Construct the Active Viewport video texture */ - this->VideoTexture = NewObject( - GetTransientPackage(), UTextureRenderTarget2D::StaticClass(), TEXT("NDIViewportVideoTexture"), Flags); - - /** Construct the active viewport sender */ - this->ActiveViewportSender = NewObject(GetTransientPackage(), UNDIMediaSender::StaticClass(), - TEXT("NDIViewportSender"), Flags); - - VideoTexture->UpdateResource(); - - // Update the active viewport sender, with the properties defined in the settings configuration - this->ActiveViewportSender->ChangeSourceName(BroadcastName); - this->ActiveViewportSender->ChangeVideoTexture(VideoTexture); - this->ActiveViewportSender->ChangeBroadcastConfiguration(Configuration); - - // Hook into the core for the end of frame handlers - FCoreDelegates::OnEndFrameRT.AddRaw(this, &FNDIConnectionService::OnEndRenderFrame); - - if (!GIsEditor) - { - FCoreDelegates::OnPostEngineInit.AddRaw(this, &FNDIConnectionService::OnPostEngineInit); - FCoreDelegates::OnEnginePreExit.AddRaw(this, &FNDIConnectionService::OnEnginePreExit); - if (bBeginBroadcastOnPlay) - BeginBroadcastingActiveViewport(); - } -#if WITH_EDITOR - else - { - FEditorDelegates::PostPIEStarted.AddLambda([this](const bool Success) { - if (auto* CoreSettings = NewObject()) - { - if (CoreSettings->bBeginBroadcastOnPlay == true) - BeginBroadcastingActiveViewport(); - else - BeginAudioCapture(); - - // clean-up the settings object - CoreSettings->ConditionalBeginDestroy(); - CoreSettings = nullptr; - } - bIsInPIEMode = true; - }); - FEditorDelegates::PrePIEEnded.AddLambda([this](const bool Success) { StopBroadcastingActiveViewport(); }); - } -#endif - } - - return true; -} - -// Stop the service -void FNDIConnectionService::Shutdown() -{ - // Wait for the sync context locks - FScopeLock AudioLock(&AudioSyncContext); - FScopeLock RenderLock(&RenderSyncContext); - - // reset the initialization properties - bIsInitialized = false; - - StopAudioCapture(); - - // unbind our handlers for our frame events - FCoreDelegates::OnEndFrame.RemoveAll(this); - FCoreDelegates::OnEndFrameRT.RemoveAll(this); - - // Cleanup the broadcasting of the active viewport - StopBroadcastingActiveViewport(); -} - - -// Handler for when the render thread frame has ended -void FNDIConnectionService::OnEndRenderFrame() -{ - FScopeLock Lock(&RenderSyncContext); - - if (bIsInitialized) - { - int64 ticks = FDateTime::Now().GetTimeOfDay().GetTicks(); - - if (FNDIConnectionService::EventOnSendVideoFrame.IsBound()) - { - FNDIConnectionService::EventOnSendVideoFrame.Broadcast(ticks); - } - } -} - -void FNDIConnectionService::BeginAudioCapture() -{ - if (bIsInitialized) - { - if (!bIsAudioInitialized) - { - if (GEngine) - { - FAudioDeviceHandle AudioDevice = GEngine->GetActiveAudioDevice(); - if (AudioDevice.IsValid()) - { -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 4)) // 5.4 or later - for (auto& SendAudioEvent : SubmixSendAudioFrameEvents) - { - if (SendAudioEvent.Key == nullptr) - AudioDevice->RegisterSubmixBufferListener(AsShared(), AudioDevice->GetMainSubmixObject()); - else - AudioDevice->RegisterSubmixBufferListener(AsShared(), *SendAudioEvent.Key); - } -#else - AudioDevice->RegisterSubmixBufferListener(this); -#endif - bIsAudioInitialized = true; - } - } - } - } -} - -void FNDIConnectionService::StopAudioCapture() -{ - if (bIsAudioInitialized) - { - if (GEngine) - { - FAudioDeviceHandle AudioDevice = GEngine->GetActiveAudioDevice(); - if (AudioDevice) - { -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 4)) // 5.4 or later - for (auto& SendAudioEvent : SubmixSendAudioFrameEvents) - { - if (SendAudioEvent.Key == nullptr) - AudioDevice->UnregisterSubmixBufferListener(AsShared(), AudioDevice->GetMainSubmixObject()); - else - AudioDevice->UnregisterSubmixBufferListener(AsShared(), *SendAudioEvent.Key); - } -#else - AudioDevice->UnregisterSubmixBufferListener(this); -#endif - } - } - bIsAudioInitialized = false; - } -} - -void FNDIConnectionService::OnPostEngineInit() -{ - BeginAudioCapture(); -} - -void FNDIConnectionService::OnEnginePreExit() -{ - StopAudioCapture(); -} - -bool FNDIConnectionService::BeginBroadcastingActiveViewport() -{ - if (!bIsBroadcastingActiveViewport && IsValid(ActiveViewportSender)) - { - // Load the plugin settings for broadcasting the active viewport - if (auto* CoreSettings = NewObject()) - { - // Define some basic properties - FNDIBroadcastConfiguration Configuration; - FString BroadcastName = TEXT("Unreal Engine"); - - // Define the configuration properties - Configuration.FrameRate = CoreSettings->BroadcastRate; - Configuration.FrameSize = FIntPoint(FMath::Clamp(CoreSettings->PreferredFrameSize.X, 240, 3840), - FMath::Clamp(CoreSettings->PreferredFrameSize.Y, 240, 3840)); - - // Set the broadcast name - BroadcastName = CoreSettings->ApplicationStreamName; - - // clean-up the settings object - CoreSettings->ConditionalBeginDestroy(); - CoreSettings = nullptr; - - // Update the active viewport sender, with the properties defined in the settings configuration - this->ActiveViewportSender->ChangeSourceName(BroadcastName); - this->ActiveViewportSender->ChangeBroadcastConfiguration(Configuration); - } - - // we don't want to perform the linear conversion for the active viewport, - // since it's already had the conversion completed by the engine before passing to the sender - ActiveViewportSender->PerformLinearTosRGBConversion(false); - - // Do not enable PTZ capabilities for active viewport sender - ActiveViewportSender->EnablePTZ(false); - - // Initialize the sender, this will automatically start rendering output via NDI - ActiveViewportSender->Initialize(nullptr); - - // We've initialized the active viewport - bIsBroadcastingActiveViewport = true; - - // However we need to update the 'Video Texture' to the active viewport back buffer... - FSlateApplication::Get().GetRenderer()->OnPreResizeWindowBackBuffer().AddRaw( - this, &FNDIConnectionService::OnActiveViewportBackbufferPreResize); - FSlateApplication::Get().GetRenderer()->OnBackBufferReadyToPresent().AddRaw( - this, &FNDIConnectionService::OnActiveViewportBackbufferReadyToPresent); - - BeginAudioCapture(); - } - - // always return true - return true; -} - -// Handler for when the active viewport back buffer has been resized -void FNDIConnectionService::OnActiveViewportBackbufferPreResize(void* Backbuffer) -{ - check(IsInGameThread()); - - // Ensure we have a valid video texture - FTextureResource* TextureResource = GetVideoTextureResource(); - if (TextureResource != nullptr) - { - FRenderCommandFence Fence; - - TextureResource->TextureRHI.SafeRelease(); - this->ActiveViewportSender->ChangeVideoTexture(VideoTexture); - - ENQUEUE_RENDER_COMMAND(FlushRHIThreadToUpdateTextureRenderTargetReference)( - [this](FRHICommandListImmediate& RHICmdList) - { - RHIUpdateTextureReference(VideoTexture->TextureReference.TextureReferenceRHI, nullptr); - RHICmdList.ImmediateFlush(EImmediateFlushType::FlushRHIThread); - }); - - // Wait for render thread to finish, so that renderthread texture references are updated - Fence.BeginFence(); - Fence.Wait(); - } -} - -// Handler for when the back buffer is read to present to the end user -void FNDIConnectionService::OnActiveViewportBackbufferReadyToPresent(SWindow& Window, - const FTextureRHIRef& Backbuffer) -{ - if (Window.GetType() == EWindowType::GameWindow || (Window.IsRegularWindow() && IsRunningInPIE())) - { - FTextureResource* TextureResource = GetVideoTextureResource(); - if (TextureResource != nullptr) - { - // Lets improve the performance a bit - if (TextureResource->TextureRHI != Backbuffer) - { - TextureResource->TextureRHI = (FTextureRHIRef&)Backbuffer; - this->ActiveViewportSender->ChangeVideoTexture(VideoTexture); - RHIUpdateTextureReference(VideoTexture->TextureReference.TextureReferenceRHI, Backbuffer); - } - } - } -} - -void FNDIConnectionService::StopBroadcastingActiveViewport() -{ - // Wait for the sync context locks - FScopeLock RenderLock(&RenderSyncContext); - - // reset the initialization properties - bIsInPIEMode = false; - - StopAudioCapture(); - - // Ensure that if the active viewport sender is active, that we shut it down - if (IsValid(this->ActiveViewportSender)) - { - FSlateApplication::Get().GetRenderer()->OnPreResizeWindowBackBuffer().RemoveAll(this); - FSlateApplication::Get().GetRenderer()->OnBackBufferReadyToPresent().RemoveAll(this); - - // shutdown the active viewport sender (just in case it was activated) - this->ActiveViewportSender->Shutdown(); - - // reset the broadcasting flag, so that we can restart the broadcast later - this->bIsBroadcastingActiveViewport = false; - - FTextureResource* TextureResource = GetVideoTextureResource(); - if (TextureResource != nullptr) - { - TextureResource->TextureRHI.SafeRelease(); - this->ActiveViewportSender->ChangeVideoTexture(VideoTexture); - } - } -} - - -FTextureResource* FNDIConnectionService::GetVideoTextureResource() const -{ - if(IsValid(this->VideoTexture)) - return this->VideoTexture->GetResource(); - - return nullptr; -} - - -void FNDIConnectionService::OnNewSubmixBuffer(const USoundSubmix* OwningSubmix, float* AudioData, int32 NumSamples, int32 NumChannels, const int32 SampleRate, double AudioClock) -{ - if (NumSamples > 0) - { - FScopeLock Lock(&AudioSyncContext); - - if (bIsAudioInitialized) - { - int64 ticks = FDateTime::Now().GetTimeOfDay().GetTicks(); - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 4)) // 5.4 or later - FAudioDeviceHandle AudioDevice = GEngine->GetActiveAudioDevice(); - if (&AudioDevice->GetMainSubmixObject() == OwningSubmix) - OwningSubmix = nullptr; -#else - OwningSubmix = nullptr; -#endif - - FNDIConnectionServiceSendAudioEvent* SendAudioEvent = SubmixSendAudioFrameEvents.Find(OwningSubmix); - if (SendAudioEvent) - { - if (SendAudioEvent->IsBound()) - { - SendAudioEvent->Broadcast(ticks, AudioData, NumSamples, NumChannels, SampleRate, AudioClock); - } - } - } - } -} - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 4)) // 5.4 or later -const FString& FNDIConnectionService::GetListenerName() const -{ - static const FString ListenerName(TEXT("NDIConnectionServiceListener")); - return ListenerName; -} -#endif diff --git a/Plugins/NDIIO/Source/Core/Classes/Services/NDIFinderService.cpp b/Plugins/NDIIO/Source/Core/Classes/Services/NDIFinderService.cpp deleted file mode 100644 index fed298b..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Services/NDIFinderService.cpp +++ /dev/null @@ -1,232 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include -#include -#include - -/** Define Global Accessors */ - -static NDIlib_find_instance_t NDI_FIND_INSTANCE = nullptr; -static FCriticalSection NDI_FIND_SYNC_CONTEXT; - -FNDIFinderService::FNDISourceCollectionChangedEvent FNDIFinderService::EventOnNDISourceCollectionChanged; - -TArray FNDIFinderService::NetworkSourceCollection = TArray(); - -/** ************************ **/ - -FNDIFinderService::FNDIFinderService() -{ - if (NDI_FIND_INSTANCE == nullptr) - { - FScopeLock Lock(&NDI_FIND_SYNC_CONTEXT); - - NDI_FIND_INSTANCE = NDIlib_find_create_v2(nullptr); - } -} - -// Begin the service -bool FNDIFinderService::Start() -{ - if (!bIsThreadRunning && p_RunnableThread == nullptr) - { - if (NDI_FIND_INSTANCE != nullptr) - { - this->bIsThreadRunning = true; - p_RunnableThread = FRunnableThread::Create(this, TEXT("FNDIFinderService_Tick"), 0, TPri_BelowNormal); - - return bIsThreadRunning = p_RunnableThread != nullptr; - } - } - - return false; -} - -/** FRunnable Interface implementation for 'Init' */ -bool FNDIFinderService::Init() -{ - return NDI_FIND_INSTANCE != nullptr; -} - -/** FRunnable Interface implementation for 'Stop' */ -uint32 FNDIFinderService::Run() -{ - static const uint32 find_wait_time = 500; - - if (NDI_FIND_INSTANCE == nullptr) - return 0; - - // Only update when we are suppose to run - while (bIsThreadRunning) - { - // Wait up to 'find_wait_time' (in milliseconds) to determine whether new sources have been added - if (!NDIlib_find_wait_for_sources(NDI_FIND_INSTANCE, find_wait_time)) - { - // alright the source collection has stopped updating, did we change the network source collection? - if (UpdateNetworkSourceCollection()) - { - // Broadcast the even on the game thread for thread safety purposes - AsyncTask(ENamedThreads::GameThread, []() { - if (FNDIFinderService::EventOnNDISourceCollectionChanged.IsBound()) - FNDIFinderService::EventOnNDISourceCollectionChanged.Broadcast(); - }); - } - } - } - - // return success - return 1; -} - -/** FRunnable Interface implementation for 'Run' */ -void FNDIFinderService::Shutdown() -{ - if (p_RunnableThread != nullptr) - { - this->bIsThreadRunning = false; - - p_RunnableThread->WaitForCompletion(); - p_RunnableThread = nullptr; - } - - // Ensure we unload the finder instance - if (NDI_FIND_INSTANCE != nullptr) - NDIlib_find_destroy(NDI_FIND_INSTANCE); -} - -// Stop the service -void FNDIFinderService::Stop() -{ - Shutdown(); -} - -bool FNDIFinderService::UpdateNetworkSourceCollection() -{ - uint32 no_sources = 0; - bool bHasCollectionChanged = false; - - if (NDI_FIND_INSTANCE != nullptr) - { - const NDIlib_source_t* p_sources = NDIlib_find_get_current_sources(NDI_FIND_INSTANCE, &no_sources); - - // Change Scope - { - FScopeLock lock(&NDI_FIND_SYNC_CONTEXT); - - bHasCollectionChanged = FNDIFinderService::NetworkSourceCollection.Num() != no_sources; - - if (no_sources > 0 && p_sources != nullptr) - { - uint32 CurrentSourceCount = NetworkSourceCollection.Num(); - - for (uint32 iter = 0; iter < no_sources; iter++) - { - if (iter >= CurrentSourceCount) - { - NetworkSourceCollection.Add(FNDIConnectionInformation()); - } - - const NDIlib_source_t* SourceInformation = &p_sources[iter]; - FNDIConnectionInformation* CollectionSource = &NetworkSourceCollection[iter]; - - bHasCollectionChanged |= SourceInformation->p_url_address != CollectionSource->Url; - CollectionSource->Url = SourceInformation->p_url_address; - CollectionSource->SourceName = SourceInformation->p_ndi_name; - FString SourceName = SourceInformation->p_ndi_name; - SourceName.Split(TEXT(" "), &CollectionSource->MachineName, &CollectionSource->StreamName); - - // Now that the MachineName and StreamName have been split, cleanup the stream name - CollectionSource->StreamName.RemoveFromStart("("); - CollectionSource->StreamName.RemoveFromEnd(")"); - } - - if (CurrentSourceCount > no_sources) - { -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 5)) // 5.5 or later - NetworkSourceCollection.RemoveAt(no_sources, CurrentSourceCount - no_sources, EAllowShrinking::Yes); -#else - NetworkSourceCollection.RemoveAt(no_sources, CurrentSourceCount - no_sources, true); -#endif - bHasCollectionChanged = true; - } - } - else if (NetworkSourceCollection.Num() > 0) - { - NetworkSourceCollection.Empty(); - bHasCollectionChanged = true; - } - - bHasCollectionChanged |= NetworkSourceCollection.Num() != no_sources; - } - } - - return bHasCollectionChanged; -} - -/** Call to update an existing collection of network sources to match the current collection */ -bool FNDIFinderService::UpdateSourceCollection(TArray& InSourceCollection) -{ - bool bHasCollectionChanged = false; - - { - FScopeLock Lock(&NDI_FIND_SYNC_CONTEXT); - - const uint32& no_sources = NetworkSourceCollection.Num(); - bHasCollectionChanged = InSourceCollection.Num() != no_sources; - - if (no_sources > 0) - { - uint32 CurrentSourceCount = InSourceCollection.Num(); - - for (uint32 iter = 0; iter < no_sources; iter++) - { - if (iter >= CurrentSourceCount) - { - InSourceCollection.Add(FNDIConnectionInformation()); - CurrentSourceCount = InSourceCollection.Num(); - } - - FNDIConnectionInformation* CollectionSource = &InSourceCollection[iter]; - const FNDIConnectionInformation* SourceInformation = &NetworkSourceCollection[iter]; - - bHasCollectionChanged |= SourceInformation->Url != CollectionSource->Url; - - CollectionSource->Url = SourceInformation->Url; - CollectionSource->SourceName = SourceInformation->SourceName; - CollectionSource->MachineName = SourceInformation->MachineName; - CollectionSource->StreamName = SourceInformation->StreamName; - } - - if (CurrentSourceCount > no_sources) - { -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 5)) // 5.5 or later - InSourceCollection.RemoveAt(no_sources, CurrentSourceCount - no_sources, EAllowShrinking::Yes); -#else - InSourceCollection.RemoveAt(no_sources, CurrentSourceCount - no_sources, true); -#endif - bHasCollectionChanged = true; - } - } - else if (InSourceCollection.Num() > 0) - { - InSourceCollection.Empty(); - bHasCollectionChanged = true; - } - } - - return bHasCollectionChanged; -} - -/** Get the available sources on the network */ -const TArray FNDIFinderService::GetNetworkSourceCollection() -{ - FScopeLock Lock(&NDI_FIND_SYNC_CONTEXT); - - return FNDIFinderService::NetworkSourceCollection; -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Structures/NDIBroadcastConfiguration.cpp b/Plugins/NDIIO/Source/Core/Classes/Structures/NDIBroadcastConfiguration.cpp deleted file mode 100644 index 5399f0f..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Structures/NDIBroadcastConfiguration.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -/** Copies an existing instance to this object */ -FNDIBroadcastConfiguration::FNDIBroadcastConfiguration(const FNDIBroadcastConfiguration& other) -{ - // perform a deep copy of the 'other' structure and store the values in this object - this->FrameRate = other.FrameRate; - this->FrameSize = other.FrameSize; -} - -/** Copies existing instance properties to this object */ -FNDIBroadcastConfiguration& FNDIBroadcastConfiguration::operator=(const FNDIBroadcastConfiguration& other) -{ - // perform a deep copy of the 'other' structure - this->FrameRate = other.FrameRate; - this->FrameSize = other.FrameSize; - - // return the result of the copy - return *this; -} - -/** Compares this object to 'other' and returns a determination of whether they are equal */ -bool FNDIBroadcastConfiguration::operator==(const FNDIBroadcastConfiguration& other) const -{ - // return the value of a deep compare against the 'other' structure - return this->FrameRate == other.FrameRate && this->FrameSize == other.FrameSize; -} - -/** Attempts to serialize this object using an Archive object */ -FArchive& FNDIBroadcastConfiguration::Serialize(FArchive& Ar) -{ - // we want to make sure that we are able to serialize this object, over many different version of this structure - int32 current_version = 0; - - // serialize this structure - return Ar << current_version << this->FrameRate.Numerator << this->FrameRate.Denominator << this->FrameSize; -} - -/** Compares this object to 'other" and returns a determination of whether they are NOT equal */ -bool FNDIBroadcastConfiguration::operator!=(const FNDIBroadcastConfiguration& other) const -{ - return !(*this == other); -} \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Classes/Structures/NDIConnectionInformation.cpp b/Plugins/NDIIO/Source/Core/Classes/Structures/NDIConnectionInformation.cpp deleted file mode 100644 index b867b70..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Structures/NDIConnectionInformation.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include - -/** Copies an existing instance to this object */ -FNDIConnectionInformation::FNDIConnectionInformation(const FNDIConnectionInformation& other) -{ - // perform a deep copy of the 'other' structure and store the values in this object - this->Bandwidth = other.Bandwidth; - this->MachineName = other.MachineName; - this->SourceName = other.SourceName; - this->StreamName = other.StreamName; - this->Url = other.Url; - this->bMuteAudio = other.bMuteAudio; - this->bMuteVideo = other.bMuteVideo; -} - -/** Copies existing instance properties to this object */ -FNDIConnectionInformation& FNDIConnectionInformation::operator=(const FNDIConnectionInformation& other) -{ - // perform a deep copy of the 'other' structure - this->Bandwidth = other.Bandwidth; - this->MachineName = other.MachineName; - this->SourceName = other.SourceName; - this->StreamName = other.StreamName; - this->Url = other.Url; - this->bMuteAudio = other.bMuteAudio; - this->bMuteVideo = other.bMuteVideo; - - // return the result of the copy - return *this; -} - -/** Compares this object to 'other' and returns a determination of whether they are equal */ -bool FNDIConnectionInformation::operator==(const FNDIConnectionInformation& other) const -{ - // return the value of a deep compare against the 'other' structure - return this->Bandwidth == other.Bandwidth && - this->MachineName == other.MachineName && this->SourceName == other.SourceName && - this->StreamName == other.StreamName && this->Url == other.Url && - this->bMuteAudio == other.bMuteAudio && this->bMuteVideo == other.bMuteVideo; -} - -FNDIConnectionInformation::operator NDIlib_recv_bandwidth_e() const -{ - return this->Bandwidth == ENDISourceBandwidth::MetadataOnly ? NDIlib_recv_bandwidth_metadata_only - : this->Bandwidth == ENDISourceBandwidth::AudioOnly ? NDIlib_recv_bandwidth_audio_only - : this->Bandwidth == ENDISourceBandwidth::Lowest ? NDIlib_recv_bandwidth_lowest - : NDIlib_recv_bandwidth_highest; -} - -/** Resets the current parameters to the default property values */ -void FNDIConnectionInformation::Reset() -{ - // Ensure we reset all the properties of this object to nominal default properties - this->Bandwidth = ENDISourceBandwidth::Highest; - this->MachineName = FString(""); - this->SourceName = FString(""); - this->StreamName = FString(""); - this->Url = FString(""); - this->bMuteAudio = false; - this->bMuteVideo = false; -} - -/** Attempts to serialize this object using an Archive object */ -FArchive& FNDIConnectionInformation::Serialize(FArchive& Ar) -{ - // we want to make sure that we are able to serialize this object, over many different version of this structure - int32 current_version = 0; - - // serialize this structure - return Ar << current_version << this->Bandwidth - << this->MachineName << this->SourceName << this->StreamName << this->Url - << this->bMuteAudio << this->bMuteVideo; -} - -/** Determines whether this object is valid connection information */ -bool FNDIConnectionInformation::IsValid() const -{ - // Need at least a source name and/or machine+stream name and/or a URL - return (!this->SourceName.IsEmpty()) || - ((!this->MachineName.IsEmpty()) && (!this->StreamName.IsEmpty())) || - (!this->Url.IsEmpty()); -} - -FString FNDIConnectionInformation::GetNDIName() const -{ - std::string source_name; - - if(!this->SourceName.IsEmpty()) - return this->SourceName; - - if ((!this->MachineName.IsEmpty()) && (!this->StreamName.IsEmpty())) - return this->MachineName + " (" + this->StreamName + ")"; - - return FString(); -} - - -/** Compares this object to 'other" and returns a determination of whether they are NOT equal */ -bool FNDIConnectionInformation::operator!=(const FNDIConnectionInformation& other) const -{ - return !(*this == other); -} diff --git a/Plugins/NDIIO/Source/Core/Classes/Structures/NDIReceiverPerformanceData.cpp b/Plugins/NDIIO/Source/Core/Classes/Structures/NDIReceiverPerformanceData.cpp deleted file mode 100644 index b4a7202..0000000 --- a/Plugins/NDIIO/Source/Core/Classes/Structures/NDIReceiverPerformanceData.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -/** Copies an existing instance to this object */ -FNDIReceiverPerformanceData::FNDIReceiverPerformanceData(const FNDIReceiverPerformanceData& other) -{ - // perform a deep copy of the 'other' structure and store the values in this object - this->AudioFrames = other.AudioFrames; - this->DroppedAudioFrames = other.DroppedAudioFrames; - this->DroppedMetadataFrames = other.DroppedMetadataFrames; - this->DroppedVideoFrames = other.DroppedVideoFrames; - this->MetadataFrames = other.MetadataFrames; - this->VideoFrames = other.VideoFrames; -} - -/** Copies existing instance properties to this object */ -FNDIReceiverPerformanceData& FNDIReceiverPerformanceData::operator=(const FNDIReceiverPerformanceData& other) -{ - // perform a deep copy of the 'other' structure - this->AudioFrames = other.AudioFrames; - this->DroppedAudioFrames = other.DroppedAudioFrames; - this->DroppedMetadataFrames = other.DroppedMetadataFrames; - this->DroppedVideoFrames = other.DroppedVideoFrames; - this->MetadataFrames = other.MetadataFrames; - this->VideoFrames = other.VideoFrames; - - // return the result of the copy - return *this; -} - -/** Compares this object to 'other' and returns a determination of whether they are equal */ -bool FNDIReceiverPerformanceData::operator==(const FNDIReceiverPerformanceData& other) const -{ - // return the value of a deep compare against the 'other' structure - return this->AudioFrames == other.AudioFrames && this->DroppedAudioFrames == other.DroppedAudioFrames && - this->DroppedMetadataFrames == other.DroppedMetadataFrames && - this->DroppedVideoFrames == other.DroppedVideoFrames && this->MetadataFrames == other.MetadataFrames && - this->VideoFrames == other.VideoFrames; -} - -/** Resets the current parameters to the default property values */ -void FNDIReceiverPerformanceData::Reset() -{ - // Ensure we reset all the properties of this object to nominal default properties - this->AudioFrames = 0; - this->DroppedAudioFrames = 0; - this->DroppedMetadataFrames = 0; - this->DroppedVideoFrames = 0; - this->MetadataFrames = 0; - this->VideoFrames = 0; -} - -/** Attempts to serialize this object using an Archive object */ -FArchive& FNDIReceiverPerformanceData::Serialize(FArchive& Ar) -{ - // we want to make sure that we are able to serialize this object, over many different version of this structure - int32 current_version = 0; - - // serialize this structure - return Ar << current_version << this->AudioFrames << this->DroppedAudioFrames << this->DroppedMetadataFrames - << this->DroppedVideoFrames << this->MetadataFrames << this->VideoFrames; -} - -/** Compares this object to 'other" and returns a determination of whether they are NOT equal */ -bool FNDIReceiverPerformanceData::operator!=(const FNDIReceiverPerformanceData& other) const -{ - return !(*this == other); -} \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/NDIIO.Build.cs b/Plugins/NDIIO/Source/Core/NDIIO.Build.cs deleted file mode 100644 index 28011b1..0000000 --- a/Plugins/NDIIO/Source/Core/NDIIO.Build.cs +++ /dev/null @@ -1,106 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -using System; -using System.IO; - -using UnrealBuildTool; - -public class NDIIO : ModuleRules -{ - public NDIIO(ReadOnlyTargetRules Target) : base(Target) - { -#if UE_5_2_OR_LATER - IWYUSupport = IWYUSupport.Full; -#else - bEnforceIWYU = true; -#endif - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - - #region Public Includes - - // Include the Public include paths - if (Directory.Exists(Path.Combine(ModuleDirectory, "Public"))) - { - PublicIncludePaths.AddRange(new string[] { - // ... add public include paths required here ... - Path.Combine(ModuleDirectory, "Public" ), - }); - } - - // Define the public dependencies - PublicDependencyModuleNames.AddRange(new string[] { - "Engine", - "Core", - "CoreUObject", - "Projects", - "NDIIOShaders" - }); - - #endregion - - #region Private Includes - - if (Directory.Exists(Path.Combine(ModuleDirectory, "Private"))) - { - PrivateIncludePaths.AddRange(new string[] { - // ... add other private include paths required here ... - Path.Combine(ModuleDirectory, "Private" ) - }); - } - - PrivateDependencyModuleNames.AddRange(new string[] { - "Renderer", - "RenderCore", - "RHI", - "Slate", - "SlateCore", - "UMG", - "ImageWrapper", - "AudioMixer", - "AudioExtensions", - - "InputCore", - - "Media", - "MediaAssets", - "MediaIOCore", - "MediaUtils", - "TimeManagement", - - "CinematicCamera", - - "XmlParser" - }); - - #endregion - - #region Editor Includes - - if (Target.bBuildEditor == true) - { - PrivateIncludePathModuleNames.AddRange(new string[] { - "AssetTools", - "TargetPlatform", - }); - - PrivateDependencyModuleNames.AddRange(new string[] { - "UnrealEd", - "AssetTools", - "MaterialUtilities" - }); - } - - #endregion - - #region ThirdParty Includes - - PublicDependencyModuleNames.Add("NDI"); - - #endregion - } -} diff --git a/Plugins/NDIIO/Source/Core/Public/Actors/NDIBroadcastActor.h b/Plugins/NDIIO/Source/Core/Public/Actors/NDIBroadcastActor.h deleted file mode 100644 index 691020a..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Actors/NDIBroadcastActor.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include -#include -#include - -#include "NDIBroadcastActor.generated.h" - -/** - A quick and easy way to capture the from the perspective of a camera that starts broadcasting the viewport - immediate upon 'BeginPlay' -*/ -UCLASS(BlueprintType, Blueprintable, Category = "NDI IO", META = (DisplayName = "NDI Broadcast Actor")) -class NDIIO_API ANDIBroadcastActor : public AActor, public IPTZControllableInterface -{ - GENERATED_UCLASS_BODY() - -private: - /** - The NDI Media Sender representing the configuration of the network source to send audio, video, and metadata - */ - UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "NDI IO", - META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaSender* NDIMediaSource = nullptr; - - /** - A component used to capture an additional viewport for broadcasting over NDI - */ - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "NDI IO", - META = (DisplayName = "Viewport Capture Component", AllowPrivateAccess = true)) - UNDIViewportCaptureComponent* ViewportCaptureComponent = nullptr; - - UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "NDI IO", - META = (DisplayName = "Audio Submix Capture", AllowPrivateAccess = true)) - USoundSubmix* SubmixCapture = nullptr; - - /** - Component used for PTZ control - */ - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "NDI IO", - META = (DisplayName = "PTZ Controller", AllowPrivateAccess = true)) - UPTZController* PTZController = nullptr; - -public: - virtual void BeginPlay() override; - - // IPTZControllableInterface - virtual FPTZState GetPTZStateFromUE() const override; - virtual void SetPTZStateToUE(const FPTZState& PTZState) override; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Actors/NDIReceiveActor.h b/Plugins/NDIIO/Source/Core/Public/Actors/NDIReceiveActor.h deleted file mode 100644 index ab07add..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Actors/NDIReceiveActor.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include -#include -#include -#include - -#include "NDIReceiveActor.generated.h" - -UCLASS(HideCategories = (Activation, Rendering, AssetUserData, Material, Attachment, Actor, Input, Cooking, LOD, - StaticMesh, Materials), - Category = "NDI IO", META = (DisplayName = "NDI Receive Actor")) -class NDIIO_API ANDIReceiveActor : public AActor -{ - GENERATED_UCLASS_BODY() - -private: - /** The desired width of the frame in cm, represented in the virtual scene */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Interp, BlueprintSetter = "SetFrameWidth", Category = "NDI IO", - META = (DisplayName = "Frame Width", AllowPrivateAccess = true)) - float FrameWidth = 177.778; - - /** The desired height of the frame in cm, represented in the virtual scene */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Interp, BlueprintSetter = "SetFrameHeight", Category = "NDI IO", - META = (DisplayName = "Frame Height", AllowPrivateAccess = true)) - float FrameHeight = 100.0f; - - /** - Indicates that this object should play the audio. - - *Note Audio played by this object will be played as a UI sound, and won't normalize the audio - if the same 'MediaSource' object is being used as the audio source on multiple receivers. - */ - UPROPERTY(EditInstanceOnly, BlueprintSetter = "UpdateAudioPlayback", Category = "NDI IO", - META = (DisplayName = "Enable Audio Playback?", AllowPrivateAccess = true)) - bool bEnableAudioPlayback = false; - - UPROPERTY(EditInstanceOnly, BlueprintSetter = "UpdateAudioPlaybackChannels", Category = "NDI IO", - META = (DisplayName = "Audio Playback Channels", AllowPrivateAccess = true)) - ENDIAudioChannels AudioPlaybackChannels = ENDIAudioChannels::Mono; - - /** Enable/disable the use of the color channels (if there are any) */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, BlueprintSetter = "EnableColor", Category = "NDI IO", - META = (DisplayName = "Enable Color?", AllowPrivateAccess = true)) - bool bEnableColor = true; - - /** Enable/disable the use of the alpha channel (if there is one) */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, BlueprintSetter = "EnableAlpha", Category = "NDI IO", - META = (DisplayName = "Enable Alpha?", AllowPrivateAccess = true)) - bool bEnableAlpha = true; - - /** The Receiver object used to get Audio, Video, and Metadata from on the network */ - UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "NDI IO", - META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaReceiver* NDIMediaSource = nullptr; - - /** The component used to display the video received from the Media Sender object */ - UPROPERTY(Transient, META = (DisplayName = "Video Mesh Component")) - UStaticMeshComponent* VideoMeshComponent = nullptr; - - /** The component used to play the audio from the NDI Media source */ - UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category= "NDI IO", META = (DisplayName = "Audio Component", AllowPrivateAccess = true)) - UAudioComponent* AudioComponent = nullptr; - - /** The audio sound wave which receives the audio from the NDI Media source */ - UPROPERTY(Transient, META = (DisplayName = "Soundwave")) - UNDIMediaSoundWave* AudioSoundWave = nullptr; - -private: - /** The material we are trying to apply to the video mesh */ - class UMaterialInterface* VideoMaterial = nullptr; - - /** The dynamic material to apply to the plane object of this actor */ - UPROPERTY() - class UMaterialInstanceDynamic* VideoMaterialInstance = nullptr; - -public: - virtual void BeginPlay() override; - virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; - virtual void Tick(float DeltaTime) override; - - /** - Attempts to set the desired frame size in cm, represented in the virtual scene - */ - void SetFrameSize(FVector2D InFrameSize); - - /** - Returns the current frame size of the 'VideoMeshComponent' for this object - */ - const FVector2D GetFrameSize() const; - -private: - UFUNCTION(BlueprintSetter) - void SetFrameHeight(const float& InFrameHeight); - - UFUNCTION(BlueprintSetter) - void SetFrameWidth(const float& InFrameWidth); - - UFUNCTION(BlueprintSetter) - void UpdateAudioPlayback(const bool& Enabled); - - UFUNCTION(BlueprintSetter) - void UpdateAudioPlaybackChannels(const ENDIAudioChannels& Channels); - - UFUNCTION(BlueprintSetter) - void EnableColor(const bool& Enabled); - - UFUNCTION(BlueprintSetter) - void EnableAlpha(const bool& Enabled); - -#if WITH_EDITORONLY_DATA - - virtual void PreEditChange(FProperty* InProperty) override; - virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override; - -#endif - - void ApplyChannelsMode(); - bool bStoppedForChannelsMode = false; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Assets/NDITimecodeProvider.h b/Plugins/NDIIO/Source/Core/Public/Assets/NDITimecodeProvider.h deleted file mode 100644 index bb228a7..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Assets/NDITimecodeProvider.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include - -#include "NDITimecodeProvider.generated.h" - - -/** - Timecode provider from an NDI source -*/ -UCLASS(Blueprintable, editinlinenew, meta=(DisplayName="NDI Timecode Provider")) -class NDIIO_API UNDITimecodeProvider : public UGenlockedTimecodeProvider -{ - GENERATED_UCLASS_BODY() - -private: - /** The Receiver object used to get timecodes from */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "NDI IO", - META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaReceiver* NDIMediaSource = nullptr; - -public: - //~ UTimecodeProvider interface - virtual bool FetchTimecode(FQualifiedFrameTime& OutFrameTime) override; - virtual ETimecodeProviderSynchronizationState GetSynchronizationState() const override; - virtual bool Initialize(class UEngine* InEngine) override; - virtual void Shutdown(class UEngine* InEngine) override; - - //~ UObject interface - virtual void BeginDestroy() override; - -private: - void ReleaseResources(); - -private: - FDelegateHandle VideoCaptureEventHandle; - FDelegateHandle ConnectedEventHandle; - FDelegateHandle DisconnectedEventHandle; - - mutable FCriticalSection StateSyncContext; - ETimecodeProviderSynchronizationState State = ETimecodeProviderSynchronizationState::Closed; - FQualifiedFrameTime MostRecentFrameTime; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Components/NDIBroadcastComponent.h b/Plugins/NDIIO/Source/Core/Public/Components/NDIBroadcastComponent.h deleted file mode 100644 index 24cbfba..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Components/NDIBroadcastComponent.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include - -#include "NDIBroadcastComponent.generated.h" - -/** - Provides a wrapper to allow you to modify an NDI Media Sender object from blueprints and perform broadcasting - functionality -*/ -UCLASS(BlueprintType, Blueprintable, Category = "NDI IO", - META = (DisplayName = "NDI Broadcast Component", BlueprintSpawnableComponent)) -class NDIIO_API UNDIBroadcastComponent : public UActorComponent -{ - GENERATED_UCLASS_BODY() - -private: - /** The NDI Media Sender representing the configuration of the network source to send audio, video, and metadata */ - UPROPERTY(EditDefaultsOnly, Category = "Properties", - META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaSender* NDIMediaSource = nullptr; - -public: - /** - Initialize this component with the media source required for sending NDI audio, video, and metadata. - Returns false, if the MediaSource is already been set. This is usually the case when this component is - initialized in Blueprints. - */ - bool Initialize(UNDIMediaSender* InMediaSource = nullptr); - - /** - Attempts to start broadcasting audio, video, and metadata via the 'NDIMediaSource' associated with this object - - @param ErrorMessage The error message received when the media source is unable to start broadcasting - @result Indicates whether this object successfully started broadcasting - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Start Broadcasting")) - bool StartBroadcasting(FString& ErrorMessage); - - /** - Changes the name of the sender object as seen on the network for remote connections - - @param InSourceName The new name of the source to be identified as on the network - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Source Name")) - void ChangeSourceName(const FString& InSourceName); - - /** - Attempts to change the Broadcast information associated with this media object - - @param InConfiguration The new configuration to broadcast - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Broadcast Configuration")) - void ChangeBroadcastConfiguration(const FNDIBroadcastConfiguration& InConfiguration); - - /** - Attempts to change the RenderTarget used in sending video frames over NDI - - @param BroadcastTexture The texture to use as video, while broadcasting over NDI - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Broadcast Texture")) - void ChangeBroadcastTexture(UTextureRenderTarget2D* BroadcastTexture = nullptr); - - /** - Determines the current tally information. - - @param IsOnPreview - A state indicating whether this source in on preview of a receiver - @param IsOnProgram - A state indicating whether this source is on program of a receiver - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Tally Information")) - void GetTallyInformation(bool& IsOnPreview, bool& IsOnProgram); - - /** - Gets the current number of receivers connected to this source. This can be used to avoid rendering - when nothing is connected to the video source. which can significantly improve the efficiency if - you want to make a lot of sources available on the network - - @param Result The total number of connected receivers attached to the broadcast of this object - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Number of Connections")) - void GetNumberOfConnections(int32& Result); - - /** - Attempts to immediately stop sending frames over NDI to any connected receivers - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Stop Broadcasting")) - void StopBroadcasting(); -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Components/NDIFinderComponent.h b/Plugins/NDIIO/Source/Core/Public/Components/NDIFinderComponent.h deleted file mode 100644 index b76a074..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Components/NDIFinderComponent.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include - -#include "NDIFinderComponent.generated.h" - -/** Delegates **/ - -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIFinderServiceCollectionChangedDelegate, UNDIFinderComponent*, - InComponent); - -/** ******************* **/ - -/** - A component used for essential functionality when dealing with the finder service. Allowing you to - get a collection of sources found on the network. -*/ -UCLASS(BlueprintType, Blueprintable, Category = "NDI IO", - META = (DisplayName = "NDI Finder Component", BlueprintSpawnableComponent)) -class NDIIO_API UNDIFinderComponent : public UActorComponent -{ - GENERATED_UCLASS_BODY() - -public: - /** A collection of the current sources and their information, found on the network */ - UPROPERTY() - TArray NetworkSourceCollection; - - /** A delegate which is broadcast when any change to the network source collection has been detected */ - UPROPERTY(BlueprintAssignable, META = (DisplayName = "On Network Sources Changed", AllowPrivateAccess = true)) - FNDIFinderServiceCollectionChangedDelegate OnNetworkSourcesChanged; - -public: - /** - Attempts to find a network source by the supplied name. - - @param ConnectionInformation An existing source information structure which contains the source name - @param InSourceName A string value representing the name of the source to find - @result A value indicating whether a source with the supplied name was found - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Find Network Source by Name")) - const bool FindNetworkSourceByName(FNDIConnectionInformation& ConnectionInformation, - FString InSourceName = FString("")); - - /** - Returns the current collection of sources found on the network - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", META = (DisplayName = "Get Network Sources")) - const TArray GetNetworkSources(); - -protected: - virtual void BeginPlay() override; - virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; - - /** An override function for when the network source collection has been changed */ - UFUNCTION(BlueprintImplementableEvent, META = (DisplayName = "On Network Sources Changed Event")) - void OnNetworkSourcesChangedEvent(); - -private: - /** - An Event handler for when the NDI Finder Service notifies listeners that changes have been - detected in the network source collection - */ - UFUNCTION() - virtual void OnNetworkSourceCollectionChangedEvent() final; - -private: - FCriticalSection CollectionSyncContext; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Components/NDIPTZControllerComponent.h b/Plugins/NDIIO/Source/Core/Public/Components/NDIPTZControllerComponent.h deleted file mode 100644 index 463699c..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Components/NDIPTZControllerComponent.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include -#include - -#include "NDIPTZControllerComponent.generated.h" - - -USTRUCT(BlueprintType, Blueprintable, Category = "NDI IO", META = (DisplayName = "NDI PTZ State")) -struct NDIIO_API FPTZState -{ - GENERATED_USTRUCT_BODY() - - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PTZ") - float Pan; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PTZ") - float Tilt; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PTZ") - float FieldOfView; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PTZ") - float FocusDistance; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PTZ") - bool bAutoFocus; - - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PTZ") - FTransform CameraTransform; - - FPTZState() - : Pan(0.f) - , Tilt(0.f) - , FieldOfView(90.f) - , FocusDistance(0.5f) - , bAutoFocus(false) - {} -}; - - -DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FNDIEventDelegate_OnPTZPanTiltSpeed, float, PanSpeed, float, TiltSpeed); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIEventDelegate_OnPTZZoomSpeed, float, ZoomSpeed); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FNDIEventDelegate_OnPTZFocus, bool, AutoMode, float, Distance); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIEventDelegate_OnPTZStore, int, Index); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIEventDelegate_OnPTZRecall, int, Index); - - - -UINTERFACE(BlueprintType, Blueprintable, Category = "NDI IO", - META = (DisplayName = "NDI PTZ Controllable", BlueprintSpawnableComponent)) -class NDIIO_API UPTZControllableInterface : public UInterface -{ - GENERATED_BODY() -}; - -class IPTZControllableInterface -{ - GENERATED_BODY() - -public: - virtual FPTZState GetPTZStateFromUE() const = 0; - virtual void SetPTZStateToUE(const FPTZState& PTZState) = 0; -}; - - -UCLASS(BlueprintType, Blueprintable, Category = "NDI IO", - META = (DisplayName = "NDI PTZ Controller", BlueprintSpawnableComponent)) -class UPTZController : public UActorComponent -{ - GENERATED_BODY() - -protected: - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Enable PTZ", AllowPrivateAccess = true), Category="PTZ") - bool EnablePTZ = true; - - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Pan Limit", AllowPrivateAccess = true), Category="PTZ") - bool PTZWithPanLimit = false; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Pan Min Limit", UIMin="-180", UIMax="180", AllowPrivateAccess = true), Category="PTZ") - float PTZPanMinLimit = -180.f; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Pan Max Limit", UIMin="-180", UIMax="180", AllowPrivateAccess = true), Category="PTZ") - float PTZPanMaxLimit = 180.f; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Invert Pan", AllowPrivateAccess = true), Category="PTZ") - bool bPTZPanInvert = true; - - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Tilt Limit", AllowPrivateAccess = true), Category="PTZ") - bool PTZWithTiltLimit = true; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Tilt Min Limit", UIMin="-180", UIMax="180", AllowPrivateAccess = true), Category="PTZ") - float PTZTiltMinLimit = -90.f; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Tilt Max Limit", UIMin="-180", UIMax="180", AllowPrivateAccess = true), Category="PTZ") - float PTZTiltMaxLimit = 90.f; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Invert Tilt", AllowPrivateAccess = true), Category="PTZ") - bool bPTZTiltInvert = false; - - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Field of View Limit", AllowPrivateAccess = true), Category="PTZ") - bool PTZWithFoVLimit = false; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Field of View Min Limit", UIMin="5", UIMax="170", AllowPrivateAccess = true), Category="PTZ") - float PTZFoVMinLimit = 5.f; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Field of View Max Limit", UIMin="5", UIMax="170", AllowPrivateAccess = true), Category="PTZ") - float PTZFoVMaxLimit = 170.f; - - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Preset Recall Easing", UIMin="0", UIMax="60", AllowPrivateAccess = true), Category="PTZ") - float PTZRecallEasing = 2.f; - - UPROPERTY(BlueprintReadWrite, meta=(AllowPrivateAccess = true), Category="PTZ") - float PTZPanSpeed = 0.f; - UPROPERTY(BlueprintReadWrite, meta=(AllowPrivateAccess = true), Category="PTZ") - float PTZTiltSpeed = 0.f; - UPROPERTY(BlueprintReadWrite, meta=(AllowPrivateAccess = true), Category="PTZ") - float PTZZoomSpeed = 0.f; - - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="PTZ Presets", AllowPrivateAccess = true), Category="PTZ") - TArray PTZStoredStates; - - UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "NDI IO", META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaSender* NDIMediaSource = nullptr; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On PTZ Pan Tilt Speed", AllowPrivateAccess = true)) - FNDIEventDelegate_OnPTZPanTiltSpeed OnPTZPanTiltSpeed; - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On PTZ Zoom Speed", AllowPrivateAccess = true)) - FNDIEventDelegate_OnPTZZoomSpeed OnPTZZoomSpeed; - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On PTZ Focus", AllowPrivateAccess = true)) - FNDIEventDelegate_OnPTZFocus OnPTZFocus; - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On PTZ Store", AllowPrivateAccess = true)) - FNDIEventDelegate_OnPTZStore OnPTZStore; - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On PTZ Recall", AllowPrivateAccess = true)) - FNDIEventDelegate_OnPTZRecall OnPTZRecall; - -public: - /** Call with the PTZ metadata received from an NDI media sender */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Receive Metadata From Sender")) - void ReceiveMetaDataFromSender(UNDIMediaSender* Sender, FString Data); - -public: - UPTZController(); - virtual ~UPTZController(); - - /** - Initialize this component with the required media source to receive metadata from. - Returns false, if the MediaSource is already been set. This is usually the case when this component is - initialized in Blueprints. - */ - bool Initialize(UNDIMediaSender* InMediaSource = nullptr); - - void SetPTZPanTiltSpeed(float PanSpeed, float TiltSpeed); - void SetPTZZoomSpeed(float ZoomSpeed); - void SetPTZFocus(bool AutoMode, float Distance); - void StorePTZState(int Index); - void RecallPTZState(int Index); - - FPTZState GetPTZStateFromUE() const; - void SetPTZStateToUE(const FPTZState& PTZState); - -protected: - virtual void InitializeComponent() override; - - virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; - -protected: - TSharedPtr NDIMetadataParser; - - struct FPTZStateInterp - { - FPTZState PTZTargetState; - float EasingDuration { 0 }; - float EasingRemaining { 0 }; - }; - FPTZStateInterp PTZStateInterp; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Components/NDIReceiverComponent.h b/Plugins/NDIIO/Source/Core/Public/Components/NDIReceiverComponent.h deleted file mode 100644 index f5bd6a2..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Components/NDIReceiverComponent.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include - -#include "NDIReceiverComponent.generated.h" - -/** - A component used to receive audio, video, and metadata over NDI -*/ -UCLASS(BlueprintType, Blueprintable, Category = "NDI IO", - META = (DisplayName = "NDI Receiver Component", BlueprintSpawnableComponent)) -class NDIIO_API UNDIReceiverComponent : public UActorComponent -{ - GENERATED_UCLASS_BODY() - -private: - /** The NDI Media Receiver representing the configuration of the network source to receive audio, video, and - * metadata from */ - UPROPERTY(EditDefaultsOnly, Category = "Properties", - META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaReceiver* NDIMediaSource = nullptr; - -public: - /** - Initialize this component with the media source required for receiving NDI audio, video, and metadata. - Returns false, if the MediaSource is already been set. This is usually the case when this component is - initialized in Blueprints. - */ - bool Initialize(UNDIMediaReceiver* InMediaSource = nullptr); - - /** - Begin receiving NDI audio, video, and metadata frames - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Start Receiver")) - bool StartReceiver(const FNDIConnectionInformation& InConnectionInformation); - - /** - Attempt to change the connection for which to get audio, video, and metadata frame from - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Connection")) - void ChangeConnection(const FNDIConnectionInformation& InConnectionInformation); - - /** - This will add a metadata frame and return immediately, having scheduled the frame asynchronously - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Metadata Frame")) - void SendMetadataFrame(const FString& metadata); - - /** - This will setup the up-stream tally notifications. If no streams are connected, it will automatically send - the tally state upon connection - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Tally Information")) - void SendTallyInformation(const bool& IsOnPreview, const bool& IsOnProgram); - - /** - Attempts to stop receiving audio, video, and metadata frame from the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Shutdown Receiver")) - void ShutdownReceiver(); - -public: - /** - Returns the current framerate of the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Current Frame Rate")) - FFrameRate GetCurrentFrameRate() const; - - /** - Returns the current timecode of the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Current Timecode")) - FTimecode GetCurrentTimecode() const; - - /** - Returns the current connection information of the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Current Connection Information")) - FNDIConnectionInformation GetCurrentConnectionInformation() const; - - /** - Returns the current performance data of the receiver while connected to the source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Performance Data")) - FNDIReceiverPerformanceData GetPerformanceData() const; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Components/NDITriCasterExtComponent.h b/Plugins/NDIIO/Source/Core/Public/Components/NDITriCasterExtComponent.h deleted file mode 100644 index 849d476..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Components/NDITriCasterExtComponent.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include -#include - -#include "NDITriCasterExtComponent.generated.h" - - -USTRUCT(BlueprintType, Blueprintable, Category = "NDI IO", META = (DisplayName = "NDI TricasterExt")) -struct NDIIO_API FTriCasterExt -{ - GENERATED_USTRUCT_BODY() - - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="TricasterExt") - FString Value; - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="TricasterExt") - TMap KeyValues; -}; - - -DECLARE_DYNAMIC_MULTICAST_DELEGATE_FiveParams(FNDIEventDelegate_OnTriCasterExt, AActor*, Actor, UObject*, Object, FString, PropertyElementName, FString, PropertyValueStr, FTimespan, EasingDuration); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIEventDelegate_OnTriCasterExtCustom, const FTriCasterExt&, TCData); - - -UCLASS(BlueprintType, Blueprintable, Category = "NDI IO", - META = (DisplayName = "NDI TricasterExt Component", BlueprintSpawnableComponent)) -class UTriCasterExtComponent : public UActorComponent -{ - GENERATED_BODY() - -protected: - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(DisplayName="Enable TricasterExt", AllowPrivateAccess = true), Category="TricasterExt") - bool EnableTriCasterExt = true; - - UPROPERTY(BlueprintReadWrite, EditInstanceOnly, Category = "NDI IO", META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaSender* NDIMediaSource = nullptr; - - UPROPERTY(BlueprintAssignable, BlueprintCallable, Category="NDI Events", META = (DisplayName = "On TricasterExt", AllowPrivateAccess = true)) - FNDIEventDelegate_OnTriCasterExt OnTriCasterExt; - UPROPERTY(BlueprintAssignable, BlueprintCallable, Category="NDI Events", META = (DisplayName = "On TricasterExt Custom", AllowPrivateAccess = true)) - FNDIEventDelegate_OnTriCasterExtCustom OnTriCasterExtCustom; - -public: - /** Call with the TriCasterExt metadata received from an NDI media sender */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Receive Metadata From Sender")) - void ReceiveMetaDataFromSender(UNDIMediaSender* Sender, FString Data); - -public: - UTriCasterExtComponent(); - virtual ~UTriCasterExtComponent(); - - /** - Initialize this component with the required media source to receive metadata from. - Returns false, if the MediaSource is already been set. This is usually the case when this component is - initialized in Blueprints. - */ - bool Initialize(UNDIMediaSender* InMediaSource = nullptr); - - void TriCasterExt(AActor* Actor, UObject* Object, FProperty* Property, FString PropertyElementName, FString PropertyValueStr, FTimespan EasingDuration); - void TriCasterExtCustom(const FTriCasterExt& TCData); - -protected: - virtual void InitializeComponent() override; - - virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; - -protected: - TSharedPtr NDIMetadataParser; - - struct FTriCasterExtInterp - { - AActor* Actor; - UObject* Object; - FProperty* Property; - FString PropertyElementName; - FString PropertyValueStr; - float EasingDuration; - - float EasingRemaining; - }; - TArray TriCasterExtInterp; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Components/NDIViewportCaptureComponent.h b/Plugins/NDIIO/Source/Core/Public/Components/NDIViewportCaptureComponent.h deleted file mode 100644 index ae33008..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Components/NDIViewportCaptureComponent.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "NDIViewportCaptureComponent.generated.h" - - -/** - A component used to capture an additional viewport for broadcasting over NDI -*/ -UCLASS(BlueprintType, Blueprintable, Category = "NDI IO", - META = (DisplayName = "NDI Viewport Capture Component", BlueprintSpawnableComponent)) -class NDIIO_API UNDIViewportCaptureComponent : public USceneCaptureComponent2D -{ - GENERATED_UCLASS_BODY() - -private: - /** - If true, will allow you to override the capture settings by ignoring the default Broadcast Settings - in the NDI Media Sender, Potentially Requiring a texture rescale of the capture frame when broadcasting - over NDI. - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Capture Settings", META = (AllowPrivateAccess = true)) - bool bOverrideBroadcastSettings = false; - - /** - Describes the Height and Width of the viewport frame to capture. - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Capture Settings", - META = (DisplayName = "Capture Size", AllowPrivateAccess = true, - EditCondition = "bOverrideBroadcastSettings")) - FIntPoint CaptureSize = FIntPoint(1280, 720); - - /** - Represents the desired number of frames (per second) to capture the viewport - */ - UPROPERTY(BlueprintReadwrite, EditAnywhere, Category = "Capture Settings", - META = (DisplayName = "Capture Rate", AllowPrivateAccess = true, - EditCondition = "bOverrideBroadcastSettings")) - FFrameRate CaptureRate = FFrameRate(60, 1); - - /** - The NDI Media Sender representing the configuration of the network source to send audio, video, and metadata - */ - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Properties", - META = (DisplayName = "NDI Media Source", AllowPrivateAccess = true)) - UNDIMediaSender* NDIMediaSource = nullptr; - - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Capture Settings", - META = (DisplayName = "Alpha Remap Min", AllowPrivateAccess = true)) - float AlphaMin = 0.f; - - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Capture Settings", - META = (DisplayName = "Alpha Remap Max", AllowPrivateAccess = true)) - float AlphaMax = 1.f; - -public: - /** - Initialize this component with the media source required for sending NDI audio, video, and metadata. - Returns false, if the MediaSource is already been set. This is usually the case when this component is - initialized in Blueprints. - */ - bool Initialize(UNDIMediaSender* InMediaSource = nullptr); - - /** - Changes the name of the sender object as seen on the network for remote connections - - @param InSourceName The new name of the source to be identified as on the network - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Source Name")) - void ChangeSourceName(const FString& InSourceName); - - /** - Attempts to change the Broadcast information associated with this media object - - @param InConfiguration The new configuration to broadcast - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Broadcast Configuration")) - void ChangeBroadcastConfiguration(const FNDIBroadcastConfiguration& InConfiguration); - - /** - Attempts to change the RenderTarget used in sending video frames over NDI - - @param BroadcastTexture The texture to use as video, while broadcasting over NDI - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Broadcast Texture")) - void ChangeBroadcastTexture(UTextureRenderTarget2D* BroadcastTexture = nullptr); - - /** - Change the capture settings of the viewport capture and overrides the NDI Media Sender settings - - @param InCaptureSize The Capture size of the frame to capture of the viewport - @param InCaptureRate A framerate at which to capture frames of the viewport - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Capture Settings")) - void ChangeCaptureSettings(FIntPoint InCaptureSize, FFrameRate InCaptureRate); - - /** - Determines the current tally information. If you specify a timeout then it will wait until it has - changed, otherwise it will simply poll it and return the current tally immediately - - @param IsOnPreview - A state indicating whether this source in on preview of a receiver - @param IsOnProgram - A state indicating whether this source is on program of a receiver - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Tally Information")) - void GetTallyInformation(bool& IsOnPreview, bool& IsOnProgram); - - /** - Gets the current number of receivers connected to this source. This can be used to avoid rendering - when nothing is connected to the video source. which can significantly improve the efficiency if - you want to make a lot of sources available on the network - - @param Result The total number of connected receivers attached to the broadcast of this object - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Number of Connections")) - void GetNumberOfConnections(int32& Result); - -protected: - virtual ~UNDIViewportCaptureComponent(); - - virtual void InitializeComponent() override; - virtual void UninitializeComponent() override; - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - virtual void UpdateSceneCaptureContents(FSceneInterface* Scene, ISceneRenderBuilder& SceneRenderBuilder) override; -#else - virtual void UpdateSceneCaptureContents(FSceneInterface* Scene) override; -#endif - -private: - UFUNCTION() - void OnBroadcastConfigurationChanged(UNDIMediaSender* Sender); - -private: - FCriticalSection UpdateRenderContext; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Enumerations/NDIAudioChannels.h b/Plugins/NDIIO/Source/Core/Public/Enumerations/NDIAudioChannels.h deleted file mode 100644 index ba532e8..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Enumerations/NDIAudioChannels.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include "NDIAudioChannels.generated.h" - -/** - Receiver Bandwidth modes -*/ -UENUM(BlueprintType, META = (DisplayName = "NDI Audio Channels")) -enum class ENDIAudioChannels : uint8 -{ - /** Mono. */ - Mono = 0x00 UMETA(DisplayName = "Mono"), - - /** Stereo. */ - Stereo = 0x01 UMETA(DisplayName = "Stereo"), - - /** Whatever the number of channels in the source is. */ - Source = 0x02 UMETA(DisplayName = "Source"), -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Enumerations/NDISourceBandwidth.h b/Plugins/NDIIO/Source/Core/Public/Enumerations/NDISourceBandwidth.h deleted file mode 100644 index dde65b5..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Enumerations/NDISourceBandwidth.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include "NDISourceBandwidth.generated.h" - -/** - Receiver Bandwidth modes -*/ -UENUM(BlueprintType, META = (DisplayName = "NDI Source Bandwidth")) -enum class ENDISourceBandwidth : uint8 -{ - /** Receive metadata. */ - MetadataOnly = 0x00 UMETA(DisplayName = "Metadata Only"), - - /** Receive metadata, audio */ - AudioOnly = 0x01 UMETA(DisplayName = "Audio Only"), - - /** Receive metadata, audio, video at a lower bandwidth and resolution. */ - Lowest = 0x02 UMETA(DisplayName = "Lowest"), - - // Receive metadata, audio, video at full resolution. - Highest = 0x03 UMETA(DisplayName = "Highest") -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/NDIIOPluginAPI.h b/Plugins/NDIIO/Source/Core/Public/NDIIOPluginAPI.h deleted file mode 100644 index b34a564..0000000 --- a/Plugins/NDIIO/Source/Core/Public/NDIIOPluginAPI.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include -#include - -#if PLATFORM_WINDOWS -#include -#endif - -#ifndef NDI_SDK_ENABLED -#error NDI(R) 6.x Runtime must be installed for the NDI(R) IO plugin to run properly. -#endif - -#ifdef NDI_SDK_ENABLED -#include -#include -#endif - -#if PLATFORM_WINDOWS -#include -#endif - -#define NDIIO_MODULE_NAME FName(TEXT("NDIIO")) \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/NDIIOPluginModule.h b/Plugins/NDIIO/Source/Core/Public/NDIIOPluginModule.h deleted file mode 100644 index 858ca57..0000000 --- a/Plugins/NDIIO/Source/Core/Public/NDIIOPluginModule.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -class NDIIO_API FNDIIOPluginModule - : public IModuleInterface - , public IMediaPlayerFactory -{ -public: - /** IModuleInterface implementation */ - virtual void StartupModule() override; - virtual void ShutdownModule() override; - - /** IMediaPlayerFactory implementation */ - virtual bool CanPlayUrl(const FString& Url, const IMediaOptions* /*Options*/, TArray* /*OutWarnings*/, TArray* OutErrors) const override; - virtual TSharedPtr CreatePlayer(IMediaEventSink& EventSink) override; - virtual FText GetDisplayName() const override; - virtual FName GetPlayerName() const override; - virtual FGuid GetPlayerPluginGUID() const override; - virtual const TArray& GetSupportedPlatforms() const override; - virtual bool SupportsFeature(EMediaFeature Feature) const override; - - - bool BeginBroadcastingActiveViewport(); - void StopBroadcastingActiveViewport(); - -private: - bool LoadModuleDependencies(); - void ShutdownModuleDependencies(); - -private: - TSharedPtr NDIFinderService = nullptr; - TSharedPtr NDIConnectionService = nullptr; - - void* NDI_LIB_HANDLE = nullptr; - - /** List of platforms that the media player support. */ - TArray SupportedPlatforms; - - /** List of supported URI schemes. */ - TArray SupportedUriSchemes; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/NDIIOPluginSettings.h b/Plugins/NDIIO/Source/Core/Public/NDIIOPluginSettings.h deleted file mode 100644 index b5596af..0000000 --- a/Plugins/NDIIO/Source/Core/Public/NDIIOPluginSettings.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include - -#include "NDIIOPluginSettings.generated.h" - -/** - Settings for the Broadcasting of the Active Viewport configurable in the running editor of the application -*/ -UCLASS(Config = Engine, DefaultConfig) -class NDIIO_API UNDIIOPluginSettings : public UObject -{ - GENERATED_BODY() - -public: - UPROPERTY(VisibleAnywhere, Category = "NDI IO", META = (DisplayName = "Description", MultiLine = true)) - FString Decription = TEXT( - "These values define the 'Active Viewport' broadcast settings and does not define default values for outputs." - "\r\n" - "\r\nApplication Stream Name - The default name to use when broadcasting the Currently Active Viewport over " - "NDI." - "\r\nBroadcast Rate - Indicates the preferred frame rate to broadcast the Currently Active Viewport over NDI." - "\r\nPreferred FrameSize - Indicates the preferred frame size to broadcast the Currently Active Viewport over " - "NDI." - "\r\nBegin Broadcast On Play - Starts the broadcast of the Currently Active Viewport immediately on Play." - ); - - /** The default name to use when broadcasting the Currently Active Viewport over NDI. */ - UPROPERTY(Config, EditAnywhere, Category = "NDI IO") - FString ApplicationStreamName = FString("Unreal Engine"); - - /** Indicates the preferred frame rate to broadcast the Currently Active Viewport over NDI. */ - UPROPERTY(Config, EditAnywhere, Category = "NDI IO", META = (DisplayName = "Broadcast Rate")) - FFrameRate BroadcastRate = FFrameRate(60, 1); - - /** Indicates the preferred frame size to broadcast the Currently Active Viewport over NDI. */ - UPROPERTY(Config, EditAnywhere, Category = "NDI IO", META = (DisplayName = "Preferred Broadcast Framesize")) - FIntPoint PreferredFrameSize = FIntPoint(1920, 1080); - - UPROPERTY(Config, EditAnywhere, Category = "NDI IO", META = (DisplayName = "Begin Broadcast On Play")) - bool bBeginBroadcastOnPlay = false; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIBroadcastConfigurationLibrary.h b/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIBroadcastConfigurationLibrary.h deleted file mode 100644 index b23b510..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIBroadcastConfigurationLibrary.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIBroadcastConfigurationLibrary.generated.h" - -UCLASS(NotBlueprintable, BlueprintType, Category = "NDI IO", - META = (DisplayName = "NDI Broadcast Configuration Library")) -class NDIIO_API UNDIBroadcastConfigurationLibrary : public UBlueprintFunctionLibrary -{ - GENERATED_BODY() - -private: - /** - Returns a value indicating whether the two structures are comparably equal - - @param A The structure used as the source comparator - @param B The structure used as the target comparator - @return The resulting value of the comparator operator - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", - META = (DisplayName = "Equals (NDI Broadcast Configuration)", - CompactNodeTitle = "==", Keywords = "= == Equals", AllowPrivateAccess = true)) - static bool K2_Compare_NDIBroadcastConfiguration(FNDIBroadcastConfiguration A, FNDIBroadcastConfiguration B) - { - return A == B; - } - - /** - Returns a value indicating whether the two structures are NOT comparably equal - - @param A The structure used as the source comparator - @param B The structure used as the target comparator - @return The resulting value of the comparator operator - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", - META = (DisplayName = "Not Equals (NDI Broadcast Configuration)", - CompactNodeTitle = "!=", Keywords = "! != Not Equals", AllowPrivateAccess = true)) - static bool K2_Compare_Not_NDIBroadcastConfiguration(FNDIBroadcastConfiguration A, FNDIBroadcastConfiguration B) - { - return A != B; - } -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIConnectionInformationLibrary.h b/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIConnectionInformationLibrary.h deleted file mode 100644 index 2557aa4..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIConnectionInformationLibrary.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIConnectionInformationLibrary.generated.h" - -UCLASS(NotBlueprintable, BlueprintType, Category = "NDI IO", - META = (DisplayName = "NDI Connection Information Library")) -class NDIIO_API UNDIConnectionInformationLibrary : public UBlueprintFunctionLibrary -{ - GENERATED_BODY() - -private: - /** - Returns a value indicating whether the two structures are comparably equal - - @param A The structure used as the source comparator - @param B The structure used as the target comparator - @return The resulting value of the comparator operator - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", - META = (DisplayName = "Equals (NDI Connection Information)", - CompactNodeTitle = "==", Keywords = "= == Equals", AllowPrivateAccess = true)) - static bool K2_Compare_NDIConnectionInformation(FNDIConnectionInformation A, FNDIConnectionInformation B) - { - return A == B; - } - - /** - Returns a value indicating whether the two structures are NOT comparably equal - - @param A The structure used as the source comparator - @param B The structure used as the target comparator - @return The resulting value of the comparator operator - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", - META = (DisplayName = "Not Equals (NDI Connection Information)", - CompactNodeTitle = "!=", Keywords = "! != Not Equals", AllowPrivateAccess = true)) - static bool K2_Compare_Not_NDIConnectionInformation(FNDIConnectionInformation A, FNDIConnectionInformation B) - { - return A != B; - } - - /** - Returns a value indicating whether the property values of the supplied structure is valid - - @param ConnectionInformation The structure to validate - @return An indication of the supplied structures validity - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Is Valid?", AllowPrivateAccess = true)) - static bool K2_NDIConnectionInformation_IsValid(FNDIConnectionInformation& ConnectionInformation) - { - return ConnectionInformation.IsValid(); - } - - /** - Resets the structure's properties to their default values - - @param ConnectionInformation The structure to reset to the default value - @return The reference to the passed in structure after the 'reset' has been completed - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Reset Connection Information", AllowPrivateAccess = true)) - static UPARAM(ref) FNDIConnectionInformation& K2_NDIConnectionInformation_Reset( - UPARAM(ref) FNDIConnectionInformation& ConnectionInformation) - { - // call the underlying function to reset the properties of the object - ConnectionInformation.Reset(); - - // return the ConnectionInformation object reference - return ConnectionInformation; - } -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIIOLibrary.h b/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIIOLibrary.h deleted file mode 100644 index 58320d5..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIIOLibrary.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include - -#include -#include -#include - -#include "NDIIOLibrary.generated.h" - - -/** - An metadata element as returned by K2_ParseNDIMetaData() - Blueprints do not support recursive datastructures, so parsing metadata - with this will result in only the top-level elements being returned. -*/ -USTRUCT(BlueprintType) -struct FNDIMetaDataElement -{ - GENERATED_USTRUCT_BODY() - - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Metadata") - FString ElementName; - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Metadata") - TMap Attributes; - UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Metadata") - FString Data; -}; - - -UCLASS(META = (DisplayName = "NDI IO Library")) -class NDIIO_API UNDIIOLibrary : public UBlueprintFunctionLibrary -{ - GENERATED_BODY() - -private: - /** - Retrieves a collection of NDI sources appearing on the network - - @return A collection of NDI Sources appearing on the network - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", - META = (DisplayName = "Get NDI Source Collection", AllowPrivateAccess = true)) - static const TArray K2_GetNDISourceCollection(); - - /** - Attempts to search the NDI Source Collection for the source name, returning a result indicating - success with the ConnectionInformation parameter filled with the found connection - - @param ConnectionInformation The connection information for a successful find with the supplied InSourceName - @param InSourceName The name of the source to find within the collection of NDI sources - - @return The result of whether the search was successful - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Find Network Source by Name", DefaultToSelf = "WorldContextObject", - HidePin = "WorldContextObject", AllowPrivateAccess = true)) - static const bool K2_FindNetworkSourceByName(UObject* WorldContextObject, - FNDIConnectionInformation& ConnectionInformation, - FString InSourceName = FString("")); - -private: - /** - Attempts to start broadcasting the active viewport. The output of the active viewport is the current camera - that is actively being viewed (through), and does not have to be an NDI Broadcast Viewport Component. - - @return The result of whether broadcasting the active viewport was started - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Begin Broadcasting Active Viewport", DefaultToSelf = "WorldContextObject", - HidePin = "WorldContextObject", AllowPrivateAccess = true)) - static bool K2_BeginBroadcastingActiveViewport(UObject* WorldContextObject); - - /** - Will stop broadcasting the active viewport, which was started by a previous call to 'Begin Broadcasting Active - Viewport' - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Stop Broadcasting Active Viewport", DefaultToSelf = "WorldContextObject", - HidePin = "WorldContextObject", AllowPrivateAccess = true)) - static void K2_StopBroadcastingActiveViewport(UObject* WorldContextObject); - -private: - /** - Returns an NDI Media Receiver object - - @param Receiver The Receiver object to return - @return The selected Receiver object - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Get NDI Media Receiver", AllowPrivateAccess = true)) - static UPARAM(ref) UNDIMediaReceiver* K2_GetNDIMediaReceiver(UNDIMediaReceiver* Receiver = nullptr); - - /** - Returns an NDI Media Sender object - - @param Sender The Sender object to return - @return The selected Sender object - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Get NDI Media Sender", AllowPrivateAccess = true)) - static UPARAM(ref) UNDIMediaSender* K2_GetNDIMediaSender(UNDIMediaSender* Sender = nullptr); - -private: - /** - Parses a string as metadata - Blueprints do not support recursive datastructures, so parsing metadata - with this will result in only the top-level elements being returned. - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Parse NDI MetaData", AllowPrivateAccess = true)) - static const TArray K2_ParseNDIMetaData(FString Data); -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIReceiverPerformanceDataLibrary.h b/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIReceiverPerformanceDataLibrary.h deleted file mode 100644 index 3203192..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Libraries/NDIReceiverPerformanceDataLibrary.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIReceiverPerformanceDataLibrary.generated.h" - -UCLASS(NotBlueprintable, BlueprintType, Category = "NDI IO", - META = (DisplayName = "NDI Receiver Performance Data Library")) -class NDIIO_API UNDIReceiverPerformanceDataLibrary : public UBlueprintFunctionLibrary -{ - GENERATED_BODY() - -private: - /** - Returns a value indicating whether the two structures are comparably equal - - @param A The structure used as the source comparator - @param B The structure used as the target comparator - @return The resulting value of the comparator operator - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", - META = (DisplayName = "Equals (NDI Receiver Performance Data)", - CompactNodeTitle = "==", Keywords = "= == Equals", AllowPrivateAccess = true)) - static bool K2_Compare_NDIReceiverPerformanceData(FNDIReceiverPerformanceData A, FNDIReceiverPerformanceData B) - { - return A == B; - } - - /** - Returns a value indicating whether the two structures are NOT comparably equal - - @param A The structure used as the source comparator - @param B The structure used as the target comparator - @return The resulting value of the comparator operator - */ - UFUNCTION(BlueprintCallable, BlueprintPure, Category = "NDI IO", - META = (DisplayName = "Not Equals (NDI Receiver Performance Data)", - CompactNodeTitle = "!=", Keywords = "! != Not Equals", AllowPrivateAccess = true)) - static bool K2_Compare_Not_NDIReceiverPerformanceData(FNDIReceiverPerformanceData A, FNDIReceiverPerformanceData B) - { - return A != B; - } - - /** - Resets the structure's properties to their default values - - @param PerformanceData The structure to reset to the default value - @return The reference to the passed in structure after the 'reset' has been completed - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", - META = (DisplayName = "Reset Receiver Performance Data", AllowPrivateAccess = true)) - static UPARAM(ref) FNDIReceiverPerformanceData& K2_NDIReceiverPerformanceData_Reset( - UPARAM(ref) FNDIReceiverPerformanceData& PerformanceData) - { - // call the underlying function to reset the properties of the object - PerformanceData.Reset(); - - // return the Performance Data object reference - return PerformanceData; - } -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaReceiver.h b/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaReceiver.h deleted file mode 100644 index d9a6fdb..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaReceiver.h +++ /dev/null @@ -1,361 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "NDIMediaReceiver.generated.h" - - -namespace NDIMediaOption -{ - static const FName IsNDIMediaReceiver("IsNDIMediaReceiver"); - static const FName MaxVideoFrameBuffer("MaxVideoFrameBuffer"); - static const FName MaxAudioFrameBuffer("MaxAudioFrameBuffer"); - static const FName MaxAncillaryFrameBuffer("MaxAncillaryFrameBuffer"); -} - - -/** - Delegates to notify that the NDIMediaReceiver has received a video, audio, or metadata frame -*/ -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaReceiverVideoReceived, UNDIMediaReceiver*, Receiver); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaReceiverAudioReceived, UNDIMediaReceiver*, Receiver); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FNDIMediaReceiverMetaDataReceived, UNDIMediaReceiver*, Receiver, FString, Data, bool, bAttachedToVideoFrame); - - -/** - A Media object representing the NDI Receiver for being able to receive Audio, Video, and Metadata over NDI -*/ -UCLASS(BlueprintType, Blueprintable, HideCategories = ("Platforms"), Category = "NDI IO", - HideCategories = ("Information"), AutoCollapseCategories = ("Content"), - META = (DisplayName = "NDI Media Receiver")) -class NDIIO_API UNDIMediaReceiver : public UTimeSynchronizableMediaSource -{ - GENERATED_BODY() - -public: - /** - Information describing detailed information about the sender this receiver is to connect to - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Settings", - META = (DisplayName = "Connection", AllowPrivateAccess = true)) - FNDIConnectionInformation ConnectionSetting; - -private: - /** - The current frame count, seconds, minutes, and hours in time-code notation - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Timecode", AllowPrivateAccess = true)) - FTimecode Timecode; - - /** - The desired number of frames (per second) for video to be displayed - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Frame Rate", AllowPrivateAccess = true)) - FFrameRate FrameRate; - - /** - The width and height of the last received video frame - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Resolution", AllowPrivateAccess = true)) - FIntPoint Resolution; - - /** - Indicates whether the timecode should be synced to the Source Timecode value - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Settings", - META = (DisplayName = "Sync Timecode to Source", AllowPrivateAccess = true)) - bool bSyncTimecodeToSource = true; - - /** - Should perform the sRGB to Linear color space conversion - */ - UPROPERTY(BlueprintReadonly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Perform sRGB to Linear?", AllowPrivateAccess = true)) - bool bPerformsRGBtoLinear = true; - - /** - Information describing detailed information about the sender this receiver is currently connected to - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Connection Information", AllowPrivateAccess = true)) - FNDIConnectionInformation ConnectionInformation; - - /** - Information describing detailed information about the receiver performance when connected to an NDI sender - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Performance Data", AllowPrivateAccess = true)) - FNDIReceiverPerformanceData PerformanceData; - - /** - Provides an NDI Video Texture object to render videos frames from the source onto (optional) - */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, BlueprintSetter = "ChangeVideoTexture", Category = "Content", - AdvancedDisplay, META = (DisplayName = "Video Texture (optional)", AllowPrivateAccess = true)) - UNDIMediaTexture2D* VideoTexture = nullptr; - -public: - DECLARE_EVENT_OneParam(FNDIMediaReceiverConnectionEvent, FOnReceiverConnectionEvent, - UNDIMediaReceiver*) FOnReceiverConnectionEvent OnNDIReceiverConnectedEvent; - DECLARE_EVENT_OneParam(FNDIMediaReceiverDisconnectionEvent, FOnReceiverDisconnectionEvent, - UNDIMediaReceiver*) FOnReceiverDisconnectionEvent OnNDIReceiverDisconnectedEvent; - - DECLARE_EVENT_TwoParams(FNDIMediaReceiverVideoCaptureEvent, FOnReceiverVideoCaptureEvent, - UNDIMediaReceiver*, const NDIlib_video_frame_v2_t&) FOnReceiverVideoCaptureEvent OnNDIReceiverVideoCaptureEvent; - DECLARE_EVENT_TwoParams(FNDIMediaReceiverAudioCaptureEvent, FOnReceiverAudioCaptureEvent, - UNDIMediaReceiver*, const NDIlib_audio_frame_v2_t&) FOnReceiverAudioCaptureEvent OnNDIReceiverAudioCaptureEvent; - DECLARE_EVENT_TwoParams(FNDIMediaReceiverMetadataCaptureEvent, FOnReceiverMetadataCaptureEvent, - UNDIMediaReceiver*, const NDIlib_metadata_frame_t&) FOnReceiverMetadataCaptureEvent OnNDIReceiverMetadataCaptureEvent; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On Video Received by Receiver", AllowPrivateAccess = true)) - FNDIMediaReceiverVideoReceived OnReceiverVideoReceived; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On Audio Received by Receiver", AllowPrivateAccess = true)) - FNDIMediaReceiverAudioReceived OnReceiverAudioReceived; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On MetaData Received by Receiver", AllowPrivateAccess = true)) - FNDIMediaReceiverMetaDataReceived OnReceiverMetaDataReceived; - -public: - - UNDIMediaReceiver(); - - /** - Called before destroying the object. This is called immediately upon deciding to destroy the object, - to allow the object to begin an asynchronous cleanup process. - */ - void BeginDestroy() override; - - /** - Attempts to perform initialization logic for creating a receiver through the NDI sdk api - */ - enum class EUsage - { - Standalone, // The receiver automatically captures its own video frame every engine render frame - Controlled // The user of the receiver manually triggers capturing a frame through CaptureConnectedVideo/Audio() - }; - bool Initialize(const FNDIConnectionInformation& InConnectionInformation, EUsage InUsage); - bool Initialize(EUsage Inusage); - - /** - Attempt to (re-)start the connection - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Start Connection")) - void StartConnection(); - - /** - Stop the connection - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Stop Connection")) - void StopConnection(); - - /** - Attempts to change the connection to another NDI sender source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Connection")) - void ChangeConnection(const FNDIConnectionInformation& InConnectionInformation); - - /** - Attempts to change the Video Texture object used as the video frame capture object - */ - UFUNCTION(BlueprintSetter) - void ChangeVideoTexture(UNDIMediaTexture2D* InVideoTexture = nullptr); - - /** - Attempts to generate the pcm data required by the 'AudioWave' object - */ - int32 GeneratePCMData(UNDIMediaSoundWave* AudioWave, uint8* PCMData, const int32 SamplesNeeded); - int32 GetAudioChannels(); - - /** - Attempts to register a sound wave object with this object - */ - void RegisterAudioWave(UNDIMediaSoundWave* InAudioWave = nullptr); - - /** - This will send a metadata frame to the sender - The data is expected to be valid XML - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Metadata To Sender")) - void SendMetadataFrame(const FString& Data); - /** - This will send a metadata frame to the sender - The data will be formatted as: ElementData - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Metadata To Sender (Element + Data)")) - void SendMetadataFrameAttr(const FString& Element, const FString& ElementData); - /** - This will send a metadata frame to the sender - The data will be formatted as: - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Metadata To Sender (Element + Attributes)")) - void SendMetadataFrameAttrs(const FString& Element, const TMap& Attributes); - - /** - This will set the up-stream tally notifications. If no streams are connected, it will automatically - send the tally state upon connection - */ - void SendTallyInformation(const bool& IsOnPreview, const bool& IsOnProgram); - - /** - Attempts to immediately stop receiving frames from the connected NDI sender - */ - void Shutdown(); - - /** - Remove the AudioWave object from this object (if it was previously registered) - - @param InAudioWave An NDIMediaSoundWave object registered with this object - */ - void UnregisterAudioWave(UNDIMediaSoundWave* InAudioWave = nullptr); - - /** - Updates the DynamicMaterial with the VideoTexture of this object - */ - void UpdateMaterialTexture(class UMaterialInstanceDynamic* MaterialInstance, FString ParameterName); - - /** - Attempts to capture a frame from the connected source. If a new frame is captured, broadcast it to - interested receivers through the capture event. Returns true if new data was captured. - */ - bool CaptureConnectedVideo(); - bool CaptureConnectedAudio(); - bool CaptureConnectedMetadata(); - - /** - Attempts to immediately update the 'VideoTexture' object with the captured video frame - */ - FTextureRHIRef DisplayFrame(const NDIlib_video_frame_v2_t& video_frame); - -private: - void SetIsCurrentlyConnected(bool bConnected); - - /** - Attempts to gather the performance metrics of the connection to the remote source - */ - void GatherPerformanceMetrics(); - -public: - /** - Set whether or not a RGB to Linear conversion is made - */ - void PerformsRGBToLinearConversion(bool Value); - - /** - Returns the current framerate of the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Current Frame Rate")) - const FFrameRate& GetCurrentFrameRate() const; - - /** - Returns the current resolution of the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Current Resolution")) - const FIntPoint& GetCurrentResolution() const; - - /** - Returns the current timecode of the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Current Timecode")) - const FTimecode& GetCurrentTimecode() const; - - /** - Returns the current connection information of the connected source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Current Connection Information")) - const FNDIConnectionInformation& GetCurrentConnectionInformation() const; - - /** - Returns the current performance data of the receiver while connected to the source - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Get Performance Data")) - const FNDIReceiverPerformanceData& GetPerformanceData() const; - - /** Returns a value indicating whether this object is currently connected to the sender source */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Is Currently Connected")) - const bool GetIsCurrentlyConnected() const; - -private: - /** - Perform the color conversion (if any) and bit copy from the gpu - */ - FTextureRHIRef DrawProgressiveVideoFrame(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result); - FTextureRHIRef DrawProgressiveVideoFrameAlpha(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result); - FTextureRHIRef DrawInterlacedVideoFrame(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result); - FTextureRHIRef DrawInterlacedVideoFrameAlpha(FRHICommandListImmediate& RHICmdList, const NDIlib_video_frame_v2_t& Result); - - virtual bool Validate() const override - { - return true; - } - virtual FString GetUrl() const override; - - FTextureResource* GetVideoTextureResource() const; - FTextureResource* GetInternalVideoTextureResource() const; - -#if WITH_EDITORONLY_DATA - virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override; -#endif - -public: - virtual bool GetMediaOption(const FName& Key, bool DefaultValue) const override; - virtual int64 GetMediaOption(const FName& Key, int64 DefaultValue) const override; - virtual FString GetMediaOption(const FName& Key, const FString& DefaultValue) const override; - virtual bool HasMediaOption(const FName& Key) const override; - -private: - int64_t LastFrameTimestamp = 0; - NDIlib_frame_format_type_e LastFrameFormatType = NDIlib_frame_format_type_max; - - bool bIsCurrentlyConnected = false; - - NDIlib_recv_instance_t p_receive_instance = nullptr; - NDIlib_framesync_instance_t p_framesync_instance = nullptr; - - FCriticalSection RenderSyncContext; - FCriticalSection AudioSyncContext; - FCriticalSection MetadataSyncContext; - FCriticalSection ConnectionSyncContext; - - TArray AudioSourceCollection; - - UNDIMediaTexture2D* InternalVideoTexture = nullptr; - - FTextureRHIRef SourceTexture; - FTextureRHIRef SourceAlphaTexture; - FPooledRenderTargetDesc RenderTargetDescriptor; - TRefCountPtr RenderTarget; - enum class EDrawMode - { - Invalid, - Progressive, - ProgressiveAlpha, - Interlaced, - InterlacedAlpha - }; - EDrawMode DrawMode = EDrawMode::Invalid; - - FDelegateHandle FrameEndRTHandle; - FDelegateHandle VideoCaptureEventHandle; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSender.h b/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSender.h deleted file mode 100644 index 25ef37d..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSender.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "NDIMediaSender.generated.h" - -/** - A delegate used for notifications on property changes on the NDIMediaSender object -*/ -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaSenderPropertyChanged, UNDIMediaSender*, Sender); - -/** - A delegate used for notifications on the NDIMediaSender object receiving metadata -*/ -DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FNDIMediaSenderMetaDataReceived, UNDIMediaSender*, Sender, FString, Data); - -/** - Delegates to notify just before and after the NDIMediaSender sends a video, audio, or metadata frame -*/ -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaSenderVideoPreSend, UNDIMediaSender*, Sender); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaSenderVideoSent, UNDIMediaSender*, Sender); - -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaSenderAudioPreSend, UNDIMediaSender*, Sender); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaSenderAudioSent, UNDIMediaSender*, Sender); - -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaSenderMetaDataPreSend, UNDIMediaSender*, Sender); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FNDIMediaSenderMetaDataSent, UNDIMediaSender*, Sender); - -/** - Defines a media object representing an NDI(R) Sender object. This object is used with the - NDI Broadcast Component to send Audio / Video / Metadata to a 'receiving' NDI object. -*/ -UCLASS(BlueprintType, Blueprintable, HideCategories = ("Platforms"), Category = "NDI IO", - HideCategories = ("Information"), AutoCollapseCategories = ("Content"), - META = (DisplayName = "NDI Sender Object")) -class NDIIO_API UNDIMediaSender : public UBaseMediaSource -{ - GENERATED_UCLASS_BODY() - -private: - /** Describes a user-friendly name of the output stream to differentiate from other output streams on the current - * machine */ - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Broadcast Settings", - META = (DisplayName = "Source Name", AllowPrivateAccess = true)) - FString SourceName = TEXT("Unreal Engine Output"); - - /** Describes the output frame size while sending video frame over NDI */ - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Broadcast Settings", - META = (DisplayName = "Frame Size", AllowPrivateAccess = true)) - FIntPoint FrameSize = FIntPoint(1920, 1080); - - /** Represents the desired number of frames (per second) for video to be sent over NDI */ - UPROPERTY(BlueprintReadwrite, EditDefaultsOnly, Category = "Broadcast Settings", - META = (DisplayName = "Frame Rate", AllowPrivateAccess = true)) - FFrameRate FrameRate = FFrameRate(60, 1); - - /** Sets whether or not to output an alpha channel */ - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Broadcast Settings", - META = (DisplayName="Output Alpha", AllowPrivateAccess = true)) - bool OutputAlpha = false; - - UPROPERTY(BlueprintReadonly, VisibleAnywhere, Category = "Broadcast Settings", - META = (DisplayName = "Alpha Remap Min", AllowPrivateAccess = true)) - float AlphaMin = 0.f; - - UPROPERTY(BlueprintReadonly, VisibleAnywhere, Category = "Broadcast Settings", - META = (DisplayName = "Alpha Remap Max", AllowPrivateAccess = true)) - float AlphaMax = 1.f; - - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Broadcast Settings", - META = (DisplayName="Enable Audio", AllowPrivateAccess = true)) - bool bEnableAudio = true; - - /** Sets whether or not to present PTZ capabilities */ - UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Broadcast Settings", - META = (DisplayName="Enable PTZ", AllowPrivateAccess = true)) - bool bEnablePTZ = true; - - /** Indicates the texture to send over NDI (optional) */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Content", - AdvancedDisplay, META = (DisplayName = "Render Target (optional)", AllowPrivateAccess = true)) - UTextureRenderTarget2D* RenderTarget = nullptr; - - /** - Should perform the Linear to sRGB color space conversion - */ - UPROPERTY(BlueprintReadonly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Perform Linear to sRGB?", AllowPrivateAccess = true)) - bool bPerformLinearTosRGB = true; - -public: - UPROPERTY() - FNDIMediaSenderPropertyChanged OnBroadcastConfigurationChanged; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On MetaData Received by Sender", AllowPrivateAccess = true)) - FNDIMediaSenderMetaDataReceived OnSenderMetaDataReceived; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On Before Video Being Sent by Sender", AllowPrivateAccess = true)) - FNDIMediaSenderVideoPreSend OnSenderVideoPreSend; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On Video Sent by Sender", AllowPrivateAccess = true)) - FNDIMediaSenderVideoSent OnSenderVideoSent; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On Before Audio Being Sent by Sender", AllowPrivateAccess = true)) - FNDIMediaSenderAudioPreSend OnSenderAudioPreSend; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On Audio Sent by Sender", AllowPrivateAccess = true)) - FNDIMediaSenderAudioSent OnSenderAudioSent; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On Before MetaData Being Sent by Sender", AllowPrivateAccess = true)) - FNDIMediaSenderMetaDataPreSend OnSenderMetaDataPreSend; - - UPROPERTY(BlueprintAssignable, Category="NDI Events", META = (DisplayName = "On MetaData Sent by Sender", AllowPrivateAccess = true)) - FNDIMediaSenderMetaDataSent OnSenderMetaDataSent; - -public: - /** - Attempts to perform initialization logic for creating a sender through the NDI(R) sdk api - */ - void Initialize(USoundSubmix* SubmixCapture); - - /** - Changes the name of the sender object as seen on the network for remote connections - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Source Name")) - void ChangeSourceName(const FString& InSourceName); - - /** - Attempts to change the Broadcast information associated with this media object - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Change Broadcast Configuration")) - void ChangeBroadcastConfiguration(const FNDIBroadcastConfiguration& InConfiguration); - - /** - This will send a metadata frame to all receivers - The data is expected to be valid XML - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Metadata To Receivers")) - void SendMetadataFrame(const FString& Data, bool AttachToVideoFrame = true); - /** - This will send a metadata frame to all receivers - The data will be formatted as: ElementData - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Metadata To Receivers (Element + Data)")) - void SendMetadataFrameAttr(const FString& Element, const FString& ElementData, bool AttachToVideoFrame = true); - /** - This will send a metadata frame to all receivers - The data will be formatted as: - */ - UFUNCTION(BlueprintCallable, Category = "NDI IO", META = (DisplayName = "Send Metadata To Receivers (Element + Attributes)")) - void SendMetadataFrameAttrs(const FString& Element, const TMap& Attributes, bool AttachToVideoFrame = true); - - /** - Attempts to change the RenderTarget used in sending video frames over NDI - */ - void ChangeVideoTexture(UTextureRenderTarget2D* VideoTexture = nullptr); - - /** - Change the alpha remapping settings - */ - void ChangeAlphaRemap(float AlphaMinIn, float AlphaMaxIn); - - /** - Determines the current tally information. If you specify a timeout then it will wait until it has - changed, otherwise it will simply poll it and return the current tally immediately - - @param IsOnPreview - A state indicating whether this source in on preview of a receiver - @param IsOnProgram - A state indicating whether this source is on program of a receiver - @param TimeOut - Indicates the amount of time to wait (in milliseconds) until a change has occurred - */ - void GetTallyInformation(bool& IsOnPreview, bool& IsOnProgram, uint32 Timeout = 0); - - /** - Gets the current number of receivers connected to this source. This can be used to avoid rendering - when nothing is connected to the video source. which can significantly improve the efficiency if - you want to make a lot of sources available on the network - */ - void GetNumberOfConnections(int32& Result); - - /** - Attempts to immediately stop sending frames over NDI to any connected receivers - */ - void Shutdown(); - - /** - Called before destroying the object. This is called immediately upon deciding to destroy the object, - to allow the object to begin an asynchronous cleanup process. - */ - virtual void BeginDestroy() override; - - /** - Set whether or not a RGB to Linear conversion is made - */ - void PerformLinearTosRGBConversion(bool Value); - - /** - Set whether or not to enable PTZ support - */ - void EnablePTZ(bool Value); - - /** - Returns the Render Target used for sending a frame over NDI - */ - UTextureRenderTarget2D* GetRenderTarget(); - - const FIntPoint& GetFrameSize() - { - return this->FrameSize; - } - - const FFrameRate& GetFrameRate() - { - return this->FrameRate; - } - -private: - - bool CreateSender(); - - /** - Attempts to get a metadata frame from the sender. - If there is one, the data is broadcast through OnSenderMetaDataReceived. - Returns true if metadata was received, false otherwise. - */ - bool GetMetadataFrame(); - - /** - This will attempt to generate an audio frame, add the frame to the stack and return immediately, - having scheduled the frame asynchronously. - */ - void TrySendAudioFrame(int64 time_code, float* AudioData, int32 NumSamples, int32 NumChannels, const int32 SampleRate, double AudioClock); - - /** - This will attempt to generate a video frame, add the frame to the stack and return immediately, - having scheduled the frame asynchronously. - */ - void TrySendVideoFrame(int64 time_code = 0); - - /** - Perform the color conversion (if any) and bit copy from the gpu - */ - bool DrawRenderTarget(FRHICommandListImmediate& RHICmdList); - - /** - Change the render target configuration based on the passed in parameters - - @param InFrameSize The frame size to resize the render target to - @param InFrameRate The frame rate at which we should be sending frames via NDI - */ - void ChangeRenderTargetConfiguration(FIntPoint InFrameSize, FFrameRate InFrameRate); - - virtual bool Validate() const override - { - return true; - } - virtual FString GetUrl() const override - { - return FString(); - } - - FTextureResource* GetRenderTargetResource() const; - - void PrepareDefaultTexture(); - -private: - std::atomic bIsChangingBroadcastSize { false }; - - FTimecode LastRenderTime; - - FTextureRHIRef DefaultVideoTextureRHI; - - TArray SendAudioData; - - NDIlib_video_frame_v2_t NDI_video_frame; - NDIlib_send_instance_t p_send_instance = nullptr; - - FCriticalSection AudioSyncContext; - FCriticalSection RenderSyncContext; - - /** - A texture with CPU readback - */ - class MappedTexture - { - private: - FTextureRHIRef Texture = nullptr; - void* pData = nullptr; - std::string MetaData; - FIntPoint FrameSize; - - public: - ~MappedTexture(); - - void Create(FIntPoint FrameSize); - void Destroy(); - - FIntPoint GetSizeXY() const; - - void Resolve(FRHICommandListImmediate& RHICmdList, FRHITexture* SourceTextureRHI, const FResolveRect& Rect = FResolveRect(), const FResolveRect& DestRect = FResolveRect()); - - void Map(FRHICommandListImmediate& RHICmdList, int32& OutWidth, int32& OutHeight, int32& OutLineStride); - void* MappedData() const; - void Unmap(FRHICommandListImmediate& RHICmdList); - - void AddMetaData(const FString& Data); - const std::string& GetMetaData() const; - - private: - void PrepareTexture(); - }; - - /** - Class for managing the sending of mapped texture data to an NDI video stream. - Sending is done asynchronously, so mapping and unmapping of texture data must - be managed so that CPU accessible texture content remains valid until the - sending of the frame is guaranteed to have been completed. This is achieved - by double-buffering readback textures. - */ - class MappedTextureASyncSender - { - private: - MappedTexture MappedTextures[2]; - int32 CurrentIndex = 0; - - public: - void Create(FIntPoint FrameSize); - void Destroy(); - - FIntPoint GetSizeXY() const; - - void Resolve(FRHICommandListImmediate& RHICmdList, FRHITexture* SourceTextureRHI, const FResolveRect& Rect = FResolveRect(), const FResolveRect& DestRect = FResolveRect()); - - void Map(FRHICommandListImmediate& RHICmdList, int32& OutWidth, int32& OutHeight, int32& OutLineStride); - void Send(FRHICommandListImmediate& RHICmdList, NDIlib_send_instance_t p_send_instance, NDIlib_video_frame_v2_t& p_video_data); - void Flush(FRHICommandListImmediate& RHICmdList, NDIlib_send_instance_t p_send_instance); - - void AddMetaData(const FString& Data); - }; - - MappedTextureASyncSender ReadbackTextures; - bool ReadbackTexturesHaveAlpha = false; - FPooledRenderTargetDesc RenderTargetDescriptor; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSoundWave.h b/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSoundWave.h deleted file mode 100644 index 93683d7..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaSoundWave.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include - -#include "NDIMediaSoundWave.generated.h" - -/** - Defines a SoundWave object used by an NDI Media Receiver object for capturing audio from - a network source -*/ -UCLASS(NotBlueprintable, Category = "NDI IO", META = (DisplayName = "NDI Media Sound Wave")) -class NDIIO_API UNDIMediaSoundWave : public USoundWaveProcedural -{ - GENERATED_UCLASS_BODY() - -public: - /** - Set the Media Source of this object, so that when this object is called to 'GeneratePCMData' by the engine - we can request the media source to provide the pcm data from the current connected source - */ - void SetConnectionSource(class UNDIMediaReceiver* InMediaSource = nullptr); - -protected: - /** - Called by the engine to generate pcm data to be 'heard' by audio listener objects - */ - virtual int32 OnGeneratePCMAudio(TArray& OutAudio, int32 NumSamples) override final; - - virtual bool IsReadyForFinishDestroy() override final; - -private: - FCriticalSection SyncContext; - class UNDIMediaReceiver* MediaSource = nullptr; -}; diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTexture2D.h b/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTexture2D.h deleted file mode 100644 index 02cc3bc..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTexture2D.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include -#include -#include - -#include "NDIMediaTexture2D.generated.h" - -/** - A Texture Object used by an NDI Media Receiver object for capturing video from - a network source -*/ -UCLASS(NotBlueprintType, NotBlueprintable, HideDropdown, - HideCategories = (ImportSettings, Compression, Texture, Adjustments, Compositing, LevelOfDetail, Object), - META = (DisplayName = "NDI Media Texture 2D")) -class NDIIO_API UNDIMediaTexture2D : public UTexture -{ - GENERATED_UCLASS_BODY() - -public: - virtual float GetSurfaceHeight() const override; - virtual float GetSurfaceWidth() const override; - - virtual float GetSurfaceDepth() const; - virtual uint32 GetSurfaceArraySize() const; - - virtual ETextureClass GetTextureClass() const; - - virtual void GetResourceSizeEx(FResourceSizeEx& CumulativeResourceSize) override; - virtual EMaterialValueType GetMaterialType() const override; - - virtual void UpdateTextureReference(FRHICommandList& RHICmdList, FTextureRHIRef Reference) final; - -private: - virtual class FTextureResource* CreateResource() override; - - void SetMyResource(FTextureResource* ResourceIn); - FTextureResource* GetMyResource(); - const FTextureResource* GetMyResource() const; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTextureResource.h b/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTextureResource.h deleted file mode 100644 index 33adf1f..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Objects/Media/NDIMediaTextureResource.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include -#include - -/** - A Texture Resource object used by the NDIMediaTexture2D object for capturing video - from a network source -*/ -class NDIIO_API FNDIMediaTextureResource : public FTextureResource -{ -public: - /** - Constructs a new instance of this object specifying a media texture owner - - @param Owner The media object used as the owner for this object - */ - FNDIMediaTextureResource(class UNDIMediaTexture2D* Owner = nullptr); - -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later - /** FTextureResource Interface Implementation for 'InitDynamicRHI' */ - virtual void InitRHI(FRHICommandListBase& RHICmdList) override; - - /** FTextureResource Interface Implementation for 'ReleaseDynamicRHI' */ - virtual void ReleaseRHI() override; -#else - /** FTextureResource Interface Implementation for 'InitDynamicRHI' */ - virtual void InitDynamicRHI() override; - - /** FTextureResource Interface Implementation for 'ReleaseDynamicRHI' */ - virtual void ReleaseDynamicRHI() override; -#endif - - /** FTextureResource Interface Implementation for 'GetResourceSize' */ - SIZE_T GetResourceSize(); - - /** FTextureResource Interface Implementation for 'GetSizeX' */ - virtual uint32 GetSizeX() const override; - - /** FTextureResource Interface Implementation for 'GetSizeY' */ - virtual uint32 GetSizeY() const override; - -private: - class UNDIMediaTexture2D* MediaTexture = nullptr; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Services/NDIConnectionService.h b/Plugins/NDIIO/Source/Core/Public/Services/NDIConnectionService.h deleted file mode 100644 index 72ac4e5..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Services/NDIConnectionService.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include -#include -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later -#include -#endif -#include - -DECLARE_EVENT_OneParam(FNDICoreDelegates, FNDIConnectionServiceSendVideoEvent, int64) -DECLARE_EVENT_SixParams(FNDICoreDelegates, FNDIConnectionServiceSendAudioEvent, int64, float*, int32, int32, const int32, double) - -/** - A service which runs and triggers updates for interested parties to be notified of - Audio and Video Frame events -*/ -class NDIIO_API FNDIConnectionService final : public ISubmixBufferListener -{ -public: - static FNDIConnectionServiceSendVideoEvent EventOnSendVideoFrame; -private: - static TMap SubmixSendAudioFrameEvents; - -public: - /** - Constructs a new instance of this object - */ - FNDIConnectionService(); - - // Begin the service - bool Start(); - - // Stop the service - void Shutdown(); - - bool BeginBroadcastingActiveViewport(); - void StopBroadcastingActiveViewport(); - - bool IsRunningInPIE() const - { - return bIsInPIEMode; - } - - template - static void AddAudioSender(UserClass* InUserObject, USoundSubmix* Submix, typename TMemFunPtrType::Type InFunc) - { - FScopeLock Lock(&AudioSyncContext); - - FNDIConnectionServiceSendAudioEvent& SendAudioEvent = SubmixSendAudioFrameEvents.FindOrAdd(Submix); - SendAudioEvent.AddUObject(InUserObject, InFunc); - } - - template - static void RemoveAudioSender(UserClass* InUserObject) - { - FScopeLock Lock(&AudioSyncContext); - - for (auto it = SubmixSendAudioFrameEvents.CreateIterator(); it; ++it) - { - it->Value.RemoveAll(InUserObject); - if (it->Value.IsBound() == false) - it.RemoveCurrent(); - } - } - -private: - // Handler for when the render thread frame has ended - void OnEndRenderFrame(); - - void BeginAudioCapture(); - void StopAudioCapture(); - - void OnPostEngineInit(); - void OnEnginePreExit(); - - // Handler for when the active viewport back buffer is about to be resized - void OnActiveViewportBackbufferPreResize(void* Backbuffer); - - // Handler for when the back buffer is read to present to the end user - void OnActiveViewportBackbufferReadyToPresent(SWindow& Window, const FTextureRHIRef& Backbuffer); - - FTextureResource* GetVideoTextureResource() const; - - virtual void OnNewSubmixBuffer(const USoundSubmix* OwningSubmix, float* AudioData, int32 NumSamples, int32 NumChannels, const int32 SampleRate, double AudioClock) override final; -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 4)) // 5.4 or later - virtual const FString& GetListenerName() const override final; -#endif - -private: - bool bIsInitialized = false; - bool bIsAudioInitialized = false; - bool bIsBroadcastingActiveViewport = false; - bool bIsInPIEMode = false; - - static FCriticalSection AudioSyncContext; - static FCriticalSection RenderSyncContext; - - UTextureRenderTarget2D* VideoTexture = nullptr; - class UNDIMediaSender* ActiveViewportSender = nullptr; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Services/NDIFinderService.h b/Plugins/NDIIO/Source/Core/Public/Services/NDIFinderService.h deleted file mode 100644 index 7aacf8a..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Services/NDIFinderService.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include -#include - -/** - A Runnable object used for Finding NDI network Sources, and updating interested parties -*/ -class NDIIO_API FNDIFinderService : public FRunnable -{ -public: - FNDIFinderService(); - - // Begin the service - virtual bool Start(); - - // Stop the service - virtual void Shutdown(); - -public: - /** Get the available sources on the network */ - static const TArray GetNetworkSourceCollection(); - - /** Call to update an existing collection of network sources to match the current collection */ - static bool UpdateSourceCollection(TArray& InSourceCollection); - - /** Event which is triggered when the collection of network sources has changed */ - DECLARE_EVENT(FNDICoreDelegates, FNDISourceCollectionChangedEvent) - static FNDISourceCollectionChangedEvent EventOnNDISourceCollectionChanged; - -protected: - /** FRunnable Interface implementation for 'Init' */ - virtual bool Init() override; - - /** FRunnable Interface implementation for 'Stop' */ - virtual void Stop() override; - - /** FRunnable Interface implementation for 'Run' */ - virtual uint32 Run() override; - -private: - bool UpdateNetworkSourceCollection(); - -private: - bool bShouldWaitOneFrame = true; - bool bIsNetworkSourceCollectionDirty = false; - - FThreadSafeBool bIsThreadRunning; - FRunnableThread* p_RunnableThread = nullptr; - - static TArray NetworkSourceCollection; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Structures/NDIBroadcastConfiguration.h b/Plugins/NDIIO/Source/Core/Public/Structures/NDIBroadcastConfiguration.h deleted file mode 100644 index b380548..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Structures/NDIBroadcastConfiguration.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include - -#include "NDIBroadcastConfiguration.generated.h" - -/** - Describes essential properties used for modifying the broadcast configuration of an Sender object -*/ -USTRUCT(BlueprintType, Blueprintable, Category = "NDI IO", META = (DisplayName = "NDI Broadcast Configuration")) -struct NDIIO_API FNDIBroadcastConfiguration -{ - GENERATED_USTRUCT_BODY() - -public: - /** Describes the output frame size while sending video frame over NDI */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Broadcast Settings", META = (DisplayName = "Frame Size")) - FIntPoint FrameSize = FIntPoint(1920, 1080); - - /** Represents the desired number of frames (per second) for video to be sent over NDI */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Broadcast Settings", META = (DisplayName = "Frame Rate")) - FFrameRate FrameRate = FFrameRate(60, 1); - -public: - /** Constructs a new instance of this object */ - FNDIBroadcastConfiguration() = default; - - /** Copies an existing instance to this object */ - FNDIBroadcastConfiguration(const FNDIBroadcastConfiguration& other); - - /** Copies existing instance properties to this object */ - FNDIBroadcastConfiguration& operator=(const FNDIBroadcastConfiguration& other); - - /** Destructs this object */ - virtual ~FNDIBroadcastConfiguration() = default; - - /** Compares this object to 'other' and returns a determination of whether they are equal */ - bool operator==(const FNDIBroadcastConfiguration& other) const; - - /** Compares this object to 'other" and returns a determination of whether they are NOT equal */ - bool operator!=(const FNDIBroadcastConfiguration& other) const; - -protected: - /** Attempts to serialize this object using an Archive object */ - virtual FArchive& Serialize(FArchive& Ar); - -private: - /** Operator override for serializing this object to an Archive object */ - friend class FArchive& operator<<(FArchive& Ar, FNDIBroadcastConfiguration& Input) - { - return Input.Serialize(Ar); - } -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Structures/NDIConnectionInformation.h b/Plugins/NDIIO/Source/Core/Public/Structures/NDIConnectionInformation.h deleted file mode 100644 index ebe8eb9..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Structures/NDIConnectionInformation.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIConnectionInformation.generated.h" - -/** - Describes essential properties used for connection objects over NDI -*/ -USTRUCT(BlueprintType, Blueprintable, Category = "NDI IO", META = (DisplayName = "NDI Connection Information")) -struct NDIIO_API FNDIConnectionInformation -{ - GENERATED_USTRUCT_BODY() - -public: - /** A user-friendly name of the source */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Properties", META = (DisplayName = "Source Name")) - FString SourceName = FString(""); - - /** The machine name of the source */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Properties", META = (DisplayName = "Machine Name")) - FString MachineName = FString(""); - - /** The stream name of the source */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Properties", META = (DisplayName = "Stream Name")) - FString StreamName = FString(""); - - /** A location on the network for which this source exists */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Properties", META = (DisplayName = "Url")) - FString Url = FString(""); - - /** Indicates the current bandwidth mode used for this connection */ - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Properties", META = (DisplayName = "Bandwidth")) - ENDISourceBandwidth Bandwidth = ENDISourceBandwidth::Highest; - - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Properties", META = (DisplayName = "Mute Audio")) - bool bMuteAudio = false; - - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Properties", META = (DisplayName = "Mute Video")) - bool bMuteVideo = false; - -public: - /** Constructs a new instance of this object */ - FNDIConnectionInformation() = default; - - /** Copies an existing instance to this object */ - FNDIConnectionInformation(const FNDIConnectionInformation& other); - - /** Copies existing instance properties to this object */ - FNDIConnectionInformation& operator=(const FNDIConnectionInformation& other); - - /** Destructs this object */ - virtual ~FNDIConnectionInformation() = default; - - /** Implicit conversion to a base NDI bandwidth value */ - operator NDIlib_recv_bandwidth_e() const; - - /** Compares this object to 'other' and returns a determination of whether they are equal */ - bool operator==(const FNDIConnectionInformation& other) const; - - /** Compares this object to 'other" and returns a determination of whether they are NOT equal */ - bool operator!=(const FNDIConnectionInformation& other) const; - -public: - /** Resets the current parameters to the default property values */ - void Reset(); - - /** Determines whether this object is valid connection information */ - bool IsValid() const; - - FString GetNDIName() const; - -protected: - /** Attempts to serialize this object using an Archive object */ - virtual FArchive& Serialize(FArchive& Ar); - -private: - /** Operator override for serializing this object to an Archive object */ - friend class FArchive& operator<<(FArchive& Ar, FNDIConnectionInformation& Input) - { - return Input.Serialize(Ar); - } -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Structures/NDIReceiverPerformanceData.h b/Plugins/NDIIO/Source/Core/Public/Structures/NDIReceiverPerformanceData.h deleted file mode 100644 index 2ee0611..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Structures/NDIReceiverPerformanceData.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include - -#include "NDIReceiverPerformanceData.generated.h" - -/** - A structure holding data allowing you to determine the current performance levels of the receiver with the - ability to detect whether frames has been dropped -*/ -USTRUCT(BlueprintType, Blueprintable, Category = "NDI IO", META = (DisplayName = "NDI Receiver Performance Data")) -struct NDIIO_API FNDIReceiverPerformanceData -{ - GENERATED_USTRUCT_BODY() - -public: - /** - The number of audio frames received from the NDI sender - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", META = (DisplayName = "Audio Frames")) - int64 AudioFrames = 0; - - /** - The number of video frames dropped in transit from an NDI sender - */ - UPROPERTY(BlueprintReadonly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Dropped Video Frames")) - int64 DroppedVideoFrames = 0; - - /** - The number of audio frames dropped in transit from the NDI sender - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Dropped Audio Frames")) - int64 DroppedAudioFrames = 0; - - /** - The number of metadata frames dropped in transit from the NDI sender - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", - META = (DisplayName = "Dropped Metadata Frames")) - int64 DroppedMetadataFrames = 0; - - /** - The number of metadata frames received from the NDI sender - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", META = (DisplayName = "Metadata Frames")) - int64 MetadataFrames = 0; - - /** - The number of video frames received from the NDI sender - */ - UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category = "Information", META = (DisplayName = "Video Frames")) - int64 VideoFrames = 0; - -public: - /** Constructs a new instance of this object */ - FNDIReceiverPerformanceData() = default; - - /** Copies an existing instance to this object */ - FNDIReceiverPerformanceData(const FNDIReceiverPerformanceData& other); - - /** Copies existing instance properties to this object */ - FNDIReceiverPerformanceData& operator=(const FNDIReceiverPerformanceData& other); - - /** Destructs this object */ - virtual ~FNDIReceiverPerformanceData() = default; - - /** Compares this object to 'other' and returns a determination of whether they are equal */ - bool operator==(const FNDIReceiverPerformanceData& other) const; - - /** Compares this object to 'other" and returns a determination of whether they are NOT equal */ - bool operator!=(const FNDIReceiverPerformanceData& other) const; - -public: - /** Resets the current parameters to the default property values */ - void Reset(); - -protected: - /** Attempts to serialize this object using an Archive object */ - virtual FArchive& Serialize(FArchive& Ar); - -private: - /** Operator override for serializing this object to an Archive object */ - friend class FArchive& operator<<(FArchive& Ar, FNDIReceiverPerformanceData& Input) - { - return Input.Serialize(Ar); - } -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Core/Public/Structures/NDIXml.h b/Plugins/NDIIO/Source/Core/Public/Structures/NDIXml.h deleted file mode 100644 index c4ce475..0000000 --- a/Plugins/NDIIO/Source/Core/Public/Structures/NDIXml.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include - -class NDIXmlElementParser -{ -public: - virtual ~NDIXmlElementParser() - {} - - // Start parsing this element - virtual bool ProcessOpen(const TCHAR* ElementName, const TCHAR* ElementData) - { - return true; - } - - // Parse an attribute of this element - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) - { - return true; - } - - // Start parsing a sub-element - virtual TSharedRef* ProcessElement(const TCHAR* ElementName, const TCHAR* ElementData) - { - return nullptr; - } - - // Finish parsing this element - virtual bool ProcessClose(const TCHAR* ElementName) - { - return true; - } -}; - -class NDIXmlElementParser_null : public NDIXmlElementParser -{ -public: -}; - - -class NDIXmlParser : public IFastXmlCallback -{ -public: - virtual ~NDIXmlParser() - {} - - - void AddElementParser(FName ElementName, TSharedRef ElementParser) - { - ElementParsers.Add(ElementName, ElementParser); - } - - virtual bool ProcessXmlDeclaration(const TCHAR* ElementData, int32 XmlFileLineNumber) override - { - return true; - } - - virtual bool ProcessElement(const TCHAR* ElementName, const TCHAR* ElementData, int32 XmlFileLineNumber) override - { - if(ElementParserStack.Num() == 0) - { - TSharedRef* ParserPtr = ElementParsers.Find(ElementName); - if(ParserPtr == nullptr) - ParserPtr = &NullParser; - - ElementParserStack.Push(*ParserPtr); - return (*ParserPtr)->ProcessOpen(ElementName, ElementData); - } - else - { - TSharedRef* ParserPtr = ElementParserStack.Last()->ProcessElement(ElementName, ElementData); - if(ParserPtr == nullptr) - ParserPtr = &NullParser; - - ElementParserStack.Push(*ParserPtr); - return (*ParserPtr)->ProcessOpen(ElementName, ElementData); - } - - //return false; - } - - virtual bool ProcessAttribute(const TCHAR* AttributeName, const TCHAR* AttributeValue) override - { - if(ElementParserStack.Num() == 0) - { - return true; - } - else - { - return ElementParserStack.Last()->ProcessAttribute(AttributeName, AttributeValue); - } - - //return false; - } - - virtual bool ProcessClose(const TCHAR* ElementName) override - { - if(ElementParserStack.Num() == 0) - { - return true; - } - else - { - auto Parser = ElementParserStack.Pop(); - return Parser->ProcessClose(ElementName); - } - - //return false; - } - - virtual bool ProcessComment(const TCHAR* Comment) override - { - return true; - } - -protected: - TMap > ElementParsers; - TArray > ElementParserStack; - - TSharedRef NullParser { MakeShareable(new NDIXmlElementParser_null()) }; -}; diff --git a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaReceiverFactory.cpp b/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaReceiverFactory.cpp deleted file mode 100644 index 97f6ba1..0000000 --- a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaReceiverFactory.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include - -#define LOCTEXT_NAMESPACE "NDIIOEditorMediaReceiverFactory" - -UNDIMediaReceiverFactory::UNDIMediaReceiverFactory(const FObjectInitializer& ObjectInitializer) - : Super(ObjectInitializer) { - - this->bCreateNew = true; - this->bEditAfterNew = true; - - this->SupportedClass = UNDIMediaReceiver::StaticClass(); -} - -FText UNDIMediaReceiverFactory::GetDisplayName() const { return LOCTEXT("NDIMediaReceiverFactoryDisplayName", "NDI Media Receiver"); } - -uint32 UNDIMediaReceiverFactory::GetMenuCategories() const -{ - return EAssetTypeCategories::Media; -} - -UObject* UNDIMediaReceiverFactory::FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) -{ - return NewObject(InParent, InClass, InName, Flags | RF_Transactional); -} - -#undef LOCTEXT_NAMESPACE \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSenderFactory.cpp b/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSenderFactory.cpp deleted file mode 100644 index 499d0d4..0000000 --- a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSenderFactory.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include - -#define LOCTEXT_NAMESPACE "NDIIOEditorMediaSenderFactory" - -UNDIMediaSenderFactory::UNDIMediaSenderFactory(const FObjectInitializer& ObjectInitializer) - : Super(ObjectInitializer) { - - bCreateNew = true; - bEditAfterNew = true; - - this->SupportedClass = UNDIMediaSender::StaticClass(); -} - -FText UNDIMediaSenderFactory::GetDisplayName() const { return LOCTEXT("NDIMediaSenderFactoryDisplayName", "NDI Media Sender"); } - -uint32 UNDIMediaSenderFactory::GetMenuCategories() const { return EAssetTypeCategories::Media; } - -UObject* UNDIMediaSenderFactory::FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) -{ - return NewObject(InParent, InClass, InName, Flags | RF_Transactional); -} - -#undef LOCTEXT_NAMESPACE \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSoundWaveFactory.cpp b/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSoundWaveFactory.cpp deleted file mode 100644 index 460c338..0000000 --- a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaSoundWaveFactory.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include - -#define LOCTEXT_NAMESPACE "NDIIOEditorMediaSoundWaveFactory" - -UNDIMediaSoundWaveFactory::UNDIMediaSoundWaveFactory(const FObjectInitializer& ObjectInitializer) - : Super(ObjectInitializer) { - - this->bCreateNew = true; - this->bEditAfterNew = true; - - this->SupportedClass = UNDIMediaSoundWave::StaticClass(); -} - -FText UNDIMediaSoundWaveFactory::GetDisplayName() const { return LOCTEXT("NDIMediaSoundWaveFactoryDisplayName", "NDI Media Sound Wave"); } - -uint32 UNDIMediaSoundWaveFactory::GetMenuCategories() const { return EAssetTypeCategories::Sounds; } - -UObject* UNDIMediaSoundWaveFactory::FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) -{ - return NewObject(InParent, InName, Flags | RF_Transactional); -} - -#undef LOCTEXT_NAMESPACE \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaTexture2DFactory.cpp b/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaTexture2DFactory.cpp deleted file mode 100644 index 6a3c7a7..0000000 --- a/Plugins/NDIIO/Source/Editor/Classes/Factories/NDIMediaTexture2DFactory.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include -#include - -#define LOCTEXT_NAMESPACE "NDIIOEditorMediaSoundWaveFactory" - -UNDIMediaTexture2DFactory::UNDIMediaTexture2DFactory(const FObjectInitializer& ObjectInitializer) - : Super(ObjectInitializer) { - - this->bCreateNew = true; - this->bEditAfterNew = true; - - this->SupportedClass = UNDIMediaTexture2D::StaticClass(); -} - -FText UNDIMediaTexture2DFactory::GetDisplayName() const { return LOCTEXT("NDIMediaTexture2DFactoryDisplayName", "NDI Media Texture2D"); } - -uint32 UNDIMediaTexture2DFactory::GetMenuCategories() const { return EAssetTypeCategories::Textures; } - -UObject* UNDIMediaTexture2DFactory::FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) -{ - if (UNDIMediaTexture2D* Resource = NewObject(InParent, InName, Flags | RF_Transactional)) - { - Resource->UpdateResource(); - return Resource; - } - - return nullptr; -} - -#undef LOCTEXT_NAMESPACE \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Classes/NDIIOEditorModule.cpp b/Plugins/NDIIO/Source/Editor/Classes/NDIIOEditorModule.cpp deleted file mode 100644 index 4dbb3d0..0000000 --- a/Plugins/NDIIO/Source/Editor/Classes/NDIIOEditorModule.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include - -#include - -#include "Widgets/NDIWidgets.h" - - -#define LOCTEXT_NAMESPACE "FNDIEditorModule" -#define IMAGE_BRUSH(RelativePath, ...) FSlateImageBrush(StyleInstance->RootToContentDir(RelativePath, TEXT(".png")), __VA_ARGS__) - -#define PLACEMENT_CATEGORY TEXT("NDI(R)") -#define PLACEMENT_LOCTEXT NSLOCTEXT("Vizrt", "NDI", "NDI(R)") -#define PLACEMENT_TEXT TEXT("PMNDI") - -void FNDIIOEditorModule::StartupModule() -{ - const FName& CategoryName = PLACEMENT_CATEGORY; - IPlacementModeModule& PlacementModeModule = IPlacementModeModule::Get(); - - const FVector2D Icon20x20(20.0f, 20.0f); - const FVector2D Icon64x64(64.0f, 64.0f); - - this->StyleInstance = MakeUnique("NDIEditorStyle"); - - if (IPlugin* NDIIOPlugin = IPluginManager::Get().FindPlugin("NDIIOPlugin").Get()) - { - StyleInstance->SetContentRoot(FPaths::Combine(NDIIOPlugin->GetContentDir(), TEXT("Editor/Icons"))); - - StyleInstance->Set("ClassThumbnail.NDIBroadcastActor", new IMAGE_BRUSH("NDIBroadcastActorIcon_x64", Icon64x64)); - StyleInstance->Set("ClassIcon.NDIBroadcastActor", new IMAGE_BRUSH("NDIBroadcastActorIcon_x20", Icon20x20)); - - StyleInstance->Set("ClassThumbnail.NDIReceiveActor", new IMAGE_BRUSH("NDIReceiveActorIcon_x64", Icon64x64)); - StyleInstance->Set("ClassIcon.NDIReceiveActor", new IMAGE_BRUSH("NDIReceiveActorIcon_x20", Icon20x20)); - - StyleInstance->Set("ClassThumbnail.NDIMediaReceiver", new IMAGE_BRUSH("NDIReceiverIcon_x64", Icon64x64)); - StyleInstance->Set("ClassIcon.NDIMediaReceiver", new IMAGE_BRUSH("NDIReceiverIcon_x20", Icon20x20)); - - StyleInstance->Set("ClassThumbnail.NDIMediaSender", new IMAGE_BRUSH("NDISenderIcon_x64", Icon64x64)); - StyleInstance->Set("ClassIcon.NDIMediaSender", new IMAGE_BRUSH("NDISenderIcon_x20", Icon20x20)); - - StyleInstance->Set("ClassThumbnail.NDIMediaSoundWave", new IMAGE_BRUSH("NDISoundWaveIcon_x64", Icon64x64)); - StyleInstance->Set("ClassIcon.NDIMediaSoundWave", new IMAGE_BRUSH("NDISoundWaveIcon_x20", Icon20x20)); - - StyleInstance->Set("ClassThumbnail.NDIMediaTexture2D", new IMAGE_BRUSH("NDIVideoTextureIcon_x64", Icon64x64)); - StyleInstance->Set("ClassIcon.NDIMediaTexture2D", new IMAGE_BRUSH("NDIVideoTextureIcon_x20", Icon20x20)); - - FSlateStyleRegistry::RegisterSlateStyle(*StyleInstance.Get()); - - PlacementModeModule.RegisterPlacementCategory( - FPlacementCategoryInfo( - PLACEMENT_LOCTEXT, - CategoryName, - PLACEMENT_TEXT, - 41, // FBuiltInPlacementCategories::Volumes() == 40 - true - ) - ); - } - - // Get the Registered Placement Category - if (const FPlacementCategoryInfo* PlacementCategoryInformation = PlacementModeModule.GetRegisteredPlacementCategory(CategoryName)) - { - // Register the NDI Broadcast Actor a placeable item within the editor - PlacementModeModule.RegisterPlaceableItem(PlacementCategoryInformation->UniqueHandle, MakeShareable( - new FPlaceableItem( - *UActorFactory::StaticClass(), -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FAssetData(GetDefault()), -#else - FAssetData(ANDIBroadcastActor::StaticClass()->ClassDefaultObject), -#endif - FName("ClassThumbnail.NDIBroadcastActor"), - NAME_None, - TOptional(), - 10, - NSLOCTEXT("Vizrt", "NDIBroadcastActor", "NDI Broadcast Actor") - )) - ); - - // Register the NDI Receive Actor a placeable item within the editor - PlacementModeModule.RegisterPlaceableItem(PlacementCategoryInformation->UniqueHandle, MakeShareable( - new FPlaceableItem( - *UActorFactory::StaticClass(), -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 6)) // 5.6 or later - FAssetData(GetDefault()), -#else - FAssetData(ANDIReceiveActor::StaticClass()->ClassDefaultObject), -#endif - FName("ClassThumbnail.NDIReceiveActor"), - NAME_None, - TOptional(), - 20, - NSLOCTEXT("Vizrt", "NDIReceiveActor", "NDI Receive Actor") - )) - ); - } - - FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked("PropertyEditor"); - PropertyModule.RegisterCustomPropertyTypeLayout(FNDIConnectionInformation::StaticStruct()->GetFName(), FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FNDIConnectionInformationCustomization::MakeInstance)); -} - -void FNDIIOEditorModule::ShutdownModule() -{ - FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked("PropertyEditor"); - PropertyModule.UnregisterCustomPropertyTypeLayout(FNDIConnectionInformation::StaticStruct()->GetFName()); - - FSlateStyleRegistry::UnRegisterSlateStyle(*StyleInstance.Get()); - StyleInstance.Reset(); - - IPlacementModeModule& PlacementModeModule = IPlacementModeModule::Get(); - PlacementModeModule.UnregisterPlacementCategory(PLACEMENT_CATEGORY); -} - -#undef PLACEMENT_CATEGORY -#undef PLACEMENT_LOCTEXT -#undef PLACEMENT_TEXT -#undef IMAGE_BRUSH -#undef LOCTEXT_NAMESPACE \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Classes/Widgets/NDIWidgets.cpp b/Plugins/NDIIO/Source/Editor/Classes/Widgets/NDIWidgets.cpp deleted file mode 100644 index 55efe24..0000000 --- a/Plugins/NDIIO/Source/Editor/Classes/Widgets/NDIWidgets.cpp +++ /dev/null @@ -1,380 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#define LOCTEXT_NAMESPACE "UNDIWidgets" - - -/** - Organizes NDI sources into a tree -*/ -struct FNDISourceTreeItem -{ - TArray > Children; - FNDIConnectionInformation NDISource; - FText DisplayText; - bool IsExpanded { false }; - bool IsSelected { false }; - - FNDISourceTreeItem() - {} - - FNDISourceTreeItem(const FText& DisplayTextIn) - : DisplayText(DisplayTextIn) - {} - - FNDISourceTreeItem(const FNDIConnectionInformation& Source) - : NDISource(Source) - {} - - FNDISourceTreeItem(TSharedRef&& Child) - { - Children.Add(Child); - } - - static const TSharedRef* FindMachineNode(const FNDISourceTreeItem& RootNode, const FNDIConnectionInformation& SourceItem) - { - const TSharedRef* MachineNode = nullptr; - - if(!SourceItem.MachineName.IsEmpty()) - { - const FString& SearchName = SourceItem.MachineName; - MachineNode = RootNode.Children.FindByPredicate([&SearchName](const TSharedRef& Child) - { - if(Child->Children.Num() > 0) - return Child->Children[0]->NDISource.MachineName == SearchName; - else - return false; - }); - } - else if(!SourceItem.Url.IsEmpty()) - { - const FString& SearchName = SourceItem.Url; - MachineNode = RootNode.Children.FindByPredicate([&SearchName](const TSharedRef& Child) - { - if(Child->Children.Num() > 0) - return Child->Children[0]->NDISource.Url == SearchName; - else - return false; - }); - } - - return MachineNode; - } - - static const TSharedRef* FindStreamNodeInMachineNode(const TSharedRef& MachineNode, const FNDIConnectionInformation& SourceItem) - { - const TSharedRef* StreamNode = nullptr; - - if(!SourceItem.StreamName.IsEmpty()) - { - const FString& SearchName = SourceItem.StreamName; - StreamNode = MachineNode->Children.FindByPredicate([&SearchName](const TSharedRef& Child) - { - return Child->NDISource.StreamName == SearchName; - }); - } - else if(!SourceItem.Url.IsEmpty()) - { - const FString& SearchName = SourceItem.Url; - StreamNode = MachineNode->Children.FindByPredicate([&SearchName](const TSharedRef& Child) - { - return Child->NDISource.Url == SearchName; - }); - } - - return StreamNode; - } - - void SetFromSources(const TArray& SourceItems, const FText& SearchingTxt, bool StartExpanded) - { - FNDISourceTreeItem RootNode; - - // - // Build new tree - // - - for(int32 i = 0; i < SourceItems.Num(); ++i) - { - const TSharedRef* MachineNode = FindMachineNode(RootNode, SourceItems[i]); - - if(MachineNode != nullptr) - { - FNDISourceTreeItem* NewNode = new FNDISourceTreeItem(SourceItems[i]); - (*MachineNode)->Children.Add(MakeShareable(NewNode)); - } - else - { - FNDISourceTreeItem* NewNode = new FNDISourceTreeItem(SourceItems[i]); - FNDISourceTreeItem* NewMachineNode = new FNDISourceTreeItem(MakeShareable(NewNode)); - RootNode.Children.Add(MakeShareable(NewMachineNode)); - } - } - - // - // Preserve expansion and selection state by matching with old tree - // - - for(int32 i = 0; i < RootNode.Children.Num(); ++i) - { - const TSharedRef* OldMachineNode = FindMachineNode(*this, RootNode.Children[i]->Children[0]->NDISource); - if(OldMachineNode != nullptr) - { - RootNode.Children[i]->IsExpanded = (*OldMachineNode)->IsExpanded; - - for(int32 j = 0; j < RootNode.Children[i]->Children.Num(); ++j) - { - const TSharedRef* OldStreamNode = FindStreamNodeInMachineNode(*OldMachineNode, RootNode.Children[i]->Children[j]->NDISource); - if(OldStreamNode != nullptr) - { - RootNode.Children[i]->Children[j]->IsSelected = (*OldStreamNode)->IsSelected; - } - } - } - else - { - RootNode.Children[i]->IsExpanded = StartExpanded; - } - } - - if(RootNode.Children.Num() == 0) - { - RootNode.Children.Add(MakeShareable(new FNDISourceTreeItem(SearchingTxt))); - } - - - // - // Set to new tree - // - - *this = RootNode; - } -}; - - - -/** - A menu widget containing NDI sources -*/ - -DECLARE_DELEGATE_OneParam(FOnSourceClicked, FNDIConnectionInformation); - -class SNDISourcesMenu : public SCompoundWidget -{ -public: - SLATE_BEGIN_ARGS(SNDISourcesMenu) - : _OnSourceClicked() - {} - - SLATE_EVENT(FOnSourceClicked, OnSourceClicked) - - SLATE_END_ARGS() - - SNDISourcesMenu() - {} - - virtual ~SNDISourcesMenu() - { - FNDIFinderService::EventOnNDISourceCollectionChanged.Remove(SourceCollectionChangedEventHandle); - SourceCollectionChangedEventHandle.Reset(); - } - - void Construct(const FArguments& InArgs) - { - OnSourceClicked = InArgs._OnSourceClicked; - - ChildSlot - [ - SNew(SComboButton) - .ButtonContent() - [ - SNew(STextBlock) - .Font(IDetailLayoutBuilder::GetDetailFont()) - .ToolTipText(LOCTEXT("NDI Sources Tip", "Currently Available NDI Sources")) - .Text(LOCTEXT("NDI Sources", "NDI Sources")) - ] - .OnGetMenuContent_Lambda([this]() -> TSharedRef - { - FMenuBuilder MenuBuilder(true, nullptr); - - for (const auto& Sources : SourceTreeItems.Children) - ConstructSourceMenu(MenuBuilder, Sources.Get()); - - return MenuBuilder.MakeWidget(); - }) - ]; - - UpdateSources = true; - - FNDIFinderService::EventOnNDISourceCollectionChanged.Remove(SourceCollectionChangedEventHandle); - SourceCollectionChangedEventHandle.Reset(); - SourceCollectionChangedEventHandle = FNDIFinderService::EventOnNDISourceCollectionChanged.AddLambda([this]() - { - UpdateSources = true; - }); - } - - virtual void Tick(const FGeometry& AllottedGeometry, const double CurrentTime, const float DeltaTime) override - { - bool IsDifferent = false; - - if (UpdateSources.exchange(false)) - { - IsDifferent = FNDIFinderService::UpdateSourceCollection(SourceItems); - } - - if (SourceItems.Num() == 0) - { - FText NewSearchingTxt; - - double WholeTime = 0.0; - double FracTime = FMath::Modf(CurrentTime, &WholeTime); - if(FracTime < 1/4.0) - NewSearchingTxt = FText(LOCTEXT("NDI Sources Searching0", "Searching")); - else if(FracTime < 2/4.0) - NewSearchingTxt = FText(LOCTEXT("NDI Sources Searching1", "Searching.")); - else if(FracTime < 3/4.0) - NewSearchingTxt = FText(LOCTEXT("NDI Sources Searching2", "Searching..")); - else - NewSearchingTxt = FText(LOCTEXT("NDI Sources Searching3", "Searching...")); - - if(!NewSearchingTxt.EqualTo(SearchingTxt)) - { - SearchingTxt = NewSearchingTxt; - IsDifferent = true; - } - } - - if (IsDifferent) - { - SourceTreeItems.SetFromSources(SourceItems, SearchingTxt, false); - Invalidate(EInvalidateWidgetReason::PaintAndVolatility | EInvalidateWidgetReason::ChildOrder); - } - - SCompoundWidget::Tick(AllottedGeometry, CurrentTime, DeltaTime); - } - -protected: - void ConstructSourceMenu(FMenuBuilder& MenuBuilder, const FNDISourceTreeItem& SourceTreeItem) - { - if (SourceTreeItem.NDISource.IsValid()) - { - MenuBuilder.AddMenuEntry( - FText::FromString(SourceTreeItem.NDISource.StreamName), - FText::GetEmpty(), - FSlateIcon(), - FUIAction(FExecuteAction::CreateLambda([this,&SourceTreeItem]() - { - this->OnSourceClicked.ExecuteIfBound(SourceTreeItem.NDISource); - })), - NAME_None, - EUserInterfaceActionType::Button - ); - } - else if (SourceTreeItem.Children.Num() > 0) - { - MenuBuilder.AddSubMenu( - FText::FromString(SourceTreeItem.Children[0]->NDISource.MachineName), - FText::GetEmpty(), - FNewMenuDelegate::CreateLambda([this,&SourceTreeItem](FMenuBuilder& MenuBuilder) - { - for(const auto& ChildSource : SourceTreeItem.Children) - ConstructSourceMenu(MenuBuilder, ChildSource.Get()); - }) - ); - } - else if (!SourceTreeItem.DisplayText.IsEmpty()) - { - MenuBuilder.AddMenuEntry( - SourceTreeItem.DisplayText, - FText::GetEmpty(), - FSlateIcon(), - FUIAction(FExecuteAction::CreateLambda([this] - { - })), - NAME_None, - EUserInterfaceActionType::Button - ); - } - } - -private: - TArray SourceItems; - FText SearchingTxt; - FNDISourceTreeItem SourceTreeItems; - - FDelegateHandle SourceCollectionChangedEventHandle; - std::atomic_bool UpdateSources { false }; - - FOnSourceClicked OnSourceClicked; -}; - - -/** - Customization of NDIConnectionInformation property - by including a menu to select from currently available NDI sources -*/ - -TSharedRef FNDIConnectionInformationCustomization::MakeInstance() -{ - return MakeShareable(new FNDIConnectionInformationCustomization); -} - -void FNDIConnectionInformationCustomization::CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) -{ - HeaderRow.NameContent() - [ - PropertyHandle->CreatePropertyNameWidget() - ] - .ValueContent() - [ - SNew(SNDISourcesMenu) - .OnSourceClicked_Lambda([this,PropertyHandle](FNDIConnectionInformation Source) - { - TArray RawData; - PropertyHandle->AccessRawData(RawData); - FNDIConnectionInformation* ConnectionInformation = reinterpret_cast(RawData[0]); - if (ConnectionInformation != nullptr) - { - ConnectionInformation->Url = ""; - PropertyHandle->GetChildHandle("SourceName")->SetValue(Source.SourceName); - } - }) - ].IsEnabled(true); -} - -void FNDIConnectionInformationCustomization::CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) -{ - TSharedPtr PropertyUtils = CustomizationUtils.GetPropertyUtilities(); - uint32 NumberOfChild; - if (PropertyHandle->GetNumChildren(NumberOfChild) == FPropertyAccess::Success) - { - for (uint32 Index = 0; Index < NumberOfChild; ++Index) - { - TSharedRef ChildPropertyHandle = PropertyHandle->GetChildHandle(Index).ToSharedRef(); - ChildBuilder.AddProperty(ChildPropertyHandle) - .ShowPropertyButtons(true) - .IsEnabled(MakeAttributeLambda([=] { return !PropertyHandle->IsEditConst() && PropertyUtils->IsPropertyEditingEnabled(); })); - } - } -} - - -#undef LOCTEXT_NAMESPACE diff --git a/Plugins/NDIIO/Source/Editor/NDIIOEditor.Build.cs b/Plugins/NDIIO/Source/Editor/NDIIOEditor.Build.cs deleted file mode 100644 index 877bd23..0000000 --- a/Plugins/NDIIO/Source/Editor/NDIIOEditor.Build.cs +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -using System; -using System.IO; - -using UnrealBuildTool; - -public class NDIIOEditor : ModuleRules -{ - public NDIIOEditor(ReadOnlyTargetRules Target) : base(Target) - { -#if UE_5_2_OR_LATER - IWYUSupport = IWYUSupport.Full; -#else - bEnforceIWYU = true; -#endif - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - - #region Public Includes - - if (Directory.Exists(Path.Combine(ModuleDirectory, "Public"))) - { - PublicIncludePaths.AddRange(new string[] { - // ... add public include paths required here ... - Path.Combine(ModuleDirectory, "Public" ), - }); - } - - PublicDependencyModuleNames.AddRange(new string[] { - "Engine", - "Core", - "CoreUObject" - }); - - #endregion - - if (Target.bBuildEditor == true) - { - #region Private Includes - - if (Directory.Exists(Path.Combine(ModuleDirectory, "Private"))) - { - PrivateIncludePaths.AddRange(new string[] { - // ... add other private include paths required here ... - Path.Combine(ModuleDirectory, "Private" ), - Path.Combine(ModuleDirectory, "../Core/Private"), - }); - } - - #endregion - - PrivateIncludePathModuleNames.AddRange(new string[] { - "AssetTools", - "TargetPlatform", - }); - - PrivateDependencyModuleNames.AddRange(new string[] { - "Projects", - "UnrealEd", - "AssetTools", - "MaterialUtilities", - "Renderer", - "RenderCore", - "PlacementMode", - "CinematicCamera", - - "RHI", - "Slate", - "SlateCore", - "UMG", - "ImageWrapper", - - "Media", - "MediaAssets", - "MediaUtils", - - "AssetTools", - "TargetPlatform", - "PropertyEditor", - "DetailCustomizations", - "EditorStyle", - - "NDIIO" - }); - } - } -} diff --git a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaReceiverFactory.h b/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaReceiverFactory.h deleted file mode 100644 index d97a88c..0000000 --- a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaReceiverFactory.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIMediaReceiverFactory.generated.h" - -/** - Factory Class used to create assets via content browser for NDI Receiver objects -*/ -UCLASS() -class NDIIOEDITOR_API UNDIMediaReceiverFactory : public UFactory -{ - GENERATED_UCLASS_BODY() - - public: - virtual FText GetDisplayName() const override; - virtual uint32 GetMenuCategories() const override; - - virtual bool ShouldShowInNewMenu() const override { return true; } - virtual UObject* FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override; -}; diff --git a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSenderFactory.h b/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSenderFactory.h deleted file mode 100644 index 2a4bdd5..0000000 --- a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSenderFactory.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIMediaSenderFactory.generated.h" - -/** - Factory Class used to create assets via content browser for NDI Sender objects -*/ -UCLASS() -class NDIIOEDITOR_API UNDIMediaSenderFactory : public UFactory -{ - GENERATED_UCLASS_BODY() - - public: - virtual FText GetDisplayName() const override; - virtual uint32 GetMenuCategories() const override; - - virtual UObject* FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSoundWaveFactory.h b/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSoundWaveFactory.h deleted file mode 100644 index 7a36b31..0000000 --- a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaSoundWaveFactory.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIMediaSoundWaveFactory.generated.h" - -/** - Factory Class used to create assets via content browser for NDI Sound Wave objects -*/ -UCLASS() -class NDIIOEDITOR_API UNDIMediaSoundWaveFactory : public UFactory -{ - GENERATED_UCLASS_BODY() - - public: - virtual FText GetDisplayName() const override; - virtual uint32 GetMenuCategories() const override; - - virtual UObject* FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaTexture2DFactory.h b/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaTexture2DFactory.h deleted file mode 100644 index 2eeaa4a..0000000 --- a/Plugins/NDIIO/Source/Editor/Public/Factories/NDIMediaTexture2DFactory.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include -#include -#include - -#include "NDIMediaTexture2DFactory.generated.h" - -/** - Factory Class used to create assets via content browser for NDI Texture2D objects -*/ -UCLASS() -class NDIIOEDITOR_API UNDIMediaTexture2DFactory : public UFactory -{ - GENERATED_UCLASS_BODY() - - public: - virtual FText GetDisplayName() const override; - virtual uint32 GetMenuCategories() const override; - - virtual UObject* FactoryCreateNew(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, UObject* Context, FFeedbackContext* Warn) override; -}; \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Public/NDIIOEditorAPI.h b/Plugins/NDIIO/Source/Editor/Public/NDIIOEditorAPI.h deleted file mode 100644 index 89f5051..0000000 --- a/Plugins/NDIIO/Source/Editor/Public/NDIIOEditorAPI.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#define NDIIO_EDITOR_MODULE_NAME FName(TEXT("NDIIOEditor")) \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Public/NDIIOEditorModule.h b/Plugins/NDIIO/Source/Editor/Public/NDIIOEditorModule.h deleted file mode 100644 index 68bfb13..0000000 --- a/Plugins/NDIIO/Source/Editor/Public/NDIIOEditorModule.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include -#include - -class NDIIOEDITOR_API FNDIIOEditorModule : public IModuleInterface -{ - public: - virtual void StartupModule() override; - virtual void ShutdownModule() override; - - private: - TUniquePtr StyleInstance; -}; - -IMPLEMENT_MODULE(FNDIIOEditorModule, NDIIOEditor) \ No newline at end of file diff --git a/Plugins/NDIIO/Source/Editor/Public/Widgets/NDIWidgets.h b/Plugins/NDIIO/Source/Editor/Public/Widgets/NDIWidgets.h deleted file mode 100644 index 3e5bca2..0000000 --- a/Plugins/NDIIO/Source/Editor/Public/Widgets/NDIWidgets.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include - -#include - - -/** - Customization of NDIConnectionInformation property - by including a menu to select from currently available NDI sources -*/ -class FNDIConnectionInformationCustomization : public IPropertyTypeCustomization -{ -public: - static TSharedRef MakeInstance(); - - // IDetailCustomization interface - virtual void CustomizeHeader(TSharedRef PropertyHandle, FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& CustomizationUtils) override; - virtual void CustomizeChildren(TSharedRef PropertyHandle, IDetailChildrenBuilder& ChildBuilder, IPropertyTypeCustomizationUtils& CustomizationUtils) override; - -private: -}; diff --git a/Plugins/NDIIO/Source/Shaders/NDIIOShaders.build.cs b/Plugins/NDIIO/Source/Shaders/NDIIOShaders.build.cs deleted file mode 100644 index 118edc2..0000000 --- a/Plugins/NDIIO/Source/Shaders/NDIIOShaders.build.cs +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -using System; -using System.IO; - -using UnrealBuildTool; - -public class NDIIOShaders : ModuleRules -{ - public NDIIOShaders(ReadOnlyTargetRules Target) : base(Target) - { -#if UE_5_2_OR_LATER - IWYUSupport = IWYUSupport.Full; -#else - bEnforceIWYU = true; -#endif - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - - PublicDependencyModuleNames.AddRange(new string[] { - "Engine", - "Core", - "CoreUObject", - "Projects", - "InputCore" - }); - - PrivateDependencyModuleNames.AddRange(new string[] { - "Renderer", - "RenderCore", - "RHI" - }); - } -} diff --git a/Plugins/NDIIO/Source/Shaders/Private/NDIShaders.cpp b/Plugins/NDIIO/Source/Shaders/Private/NDIShaders.cpp deleted file mode 100644 index 5e3d4de..0000000 --- a/Plugins/NDIIO/Source/Shaders/Private/NDIShaders.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#include "NDIShaders.h" - -#include "Modules/ModuleManager.h" -#include "Interfaces/IPluginManager.h" - -#include "Misc/Paths.h" -#include "Misc/EngineVersionComparison.h" - -#include "Engine/TextureRenderTarget2D.h" -#include "Engine/World.h" -#include "PipelineStateCache.h" -#include "SceneUtils.h" -#include "SceneInterface.h" - - - -BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT(FNDIIOShaderUB, ) - SHADER_PARAMETER(uint32, InputWidth) - SHADER_PARAMETER(uint32, InputHeight) - SHADER_PARAMETER(uint32, OutputWidth) - SHADER_PARAMETER(uint32, OutputHeight) - SHADER_PARAMETER(FVector2f, UVOffset) - SHADER_PARAMETER(FVector2f, UVScale) - SHADER_PARAMETER(uint32, ColorCorrection) - SHADER_PARAMETER(float, AlphaScale) - SHADER_PARAMETER(float, AlphaOffset) - SHADER_PARAMETER_TEXTURE(Texture2D, InputTarget) - SHADER_PARAMETER_TEXTURE(Texture2D, InputAlphaTarget) - SHADER_PARAMETER_SAMPLER(SamplerState, SamplerP) - SHADER_PARAMETER_SAMPLER(SamplerState, SamplerB) - SHADER_PARAMETER_SAMPLER(SamplerState, SamplerT) -END_GLOBAL_SHADER_PARAMETER_STRUCT() - -IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT(FNDIIOShaderUB, "NDIIOShaderUB"); - -IMPLEMENT_GLOBAL_SHADER(FNDIIOShaderVS, "/Plugin/NDIIOPlugin/Private/NDIIOShaders.usf", "NDIIOMainVS", SF_Vertex); -IMPLEMENT_GLOBAL_SHADER(FNDIIOShaderBGRAtoUYVYPS, "/Plugin/NDIIOPlugin/Private/NDIIOShaders.usf", "NDIIOBGRAtoUYVYPS", SF_Pixel); -IMPLEMENT_GLOBAL_SHADER(FNDIIOShaderBGRAtoAlphaEvenPS, "/Plugin/NDIIOPlugin/Private/NDIIOShaders.usf", "NDIIOBGRAtoAlphaEvenPS", SF_Pixel); -IMPLEMENT_GLOBAL_SHADER(FNDIIOShaderBGRAtoAlphaOddPS, "/Plugin/NDIIOPlugin/Private/NDIIOShaders.usf", "NDIIOBGRAtoAlphaOddPS", SF_Pixel); -IMPLEMENT_GLOBAL_SHADER(FNDIIOShaderUYVYtoBGRAPS, "/Plugin/NDIIOPlugin/Private/NDIIOShaders.usf", "NDIIOUYVYtoBGRAPS", SF_Pixel); -IMPLEMENT_GLOBAL_SHADER(FNDIIOShaderUYVAtoBGRAPS, "/Plugin/NDIIOPlugin/Private/NDIIOShaders.usf", "NDIIOUYVAtoBGRAPS", SF_Pixel); - - - -void FNDIIOShaderPS::SetParameters(FRHICommandList& CommandList, const Params& params) -{ - FNDIIOShaderUB UB; - { - UB.InputWidth = params.InputTarget->GetSizeX(); - UB.InputHeight = params.InputTarget->GetSizeY(); - UB.OutputWidth = params.OutputSize.X; - UB.OutputHeight = params.OutputSize.Y; - UB.UVOffset = static_cast(params.UVOffset); - UB.UVScale = static_cast(params.UVScale); - UB.ColorCorrection = static_cast(params.ColorCorrection); - - /* - * Alpha' = Alpha * AlphaScale + AlphaOffset - * = (Alpha - AlphaMin) / (AlphaMax - AlphaMin) - * = Alpha / (AlphaMax - AlphaMin) - AlphaMin / (AlphaMax - AlphaMin) - * AlphaScale = 1 / (AlphaMax - AlphaMin) - * AlphaOffset = - AlphaMin / (AlphaMax - AlphaMin) - */ - float AlphaRange = params.AlphaMinMax[1] - params.AlphaMinMax[0]; - if (AlphaRange != 0.f) - { - UB.AlphaScale = 1.f / AlphaRange; - UB.AlphaOffset = - params.AlphaMinMax[0] / AlphaRange; - } - else - { - UB.AlphaScale = 0.f; - UB.AlphaOffset = -params.AlphaMinMax[0]; - } - - UB.InputTarget = params.InputTarget; - UB.InputAlphaTarget = params.InputAlphaTarget; - UB.SamplerP = TStaticSamplerState::GetRHI(); - UB.SamplerB = TStaticSamplerState::GetRHI(); - UB.SamplerT = TStaticSamplerState::GetRHI(); - } - - TUniformBufferRef Data = TUniformBufferRef::CreateUniformBufferImmediate(UB, UniformBuffer_SingleFrame); -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 3)) // 5.3 or later - FRHIBatchedShaderParameters& BatchedParameters = CommandList.GetScratchShaderParameters(); - SetUniformBufferParameter(BatchedParameters, GetUniformBufferParameter(), Data); - CommandList.SetBatchedShaderParameters(CommandList.GetBoundPixelShader(), BatchedParameters); -#else - SetUniformBufferParameter(CommandList, CommandList.GetBoundPixelShader(), GetUniformBufferParameter(), Data); -#endif -} - - -class FNDIIOShaders : public INDIIOShaders -{ - /** IModuleInterface implementation */ - virtual void StartupModule() override - { - FString PluginShaderDir = FPaths::Combine(IPluginManager::Get().FindPlugin(TEXT("NDIIOPlugin"))->GetBaseDir(), TEXT("Shaders")); - AddShaderSourceDirectoryMapping(TEXT("/Plugin/NDIIOPlugin"), PluginShaderDir); - } - virtual void ShutdownModule() override - { - } -}; - -IMPLEMENT_MODULE( FNDIIOShaders, NDIIOShaders ) diff --git a/Plugins/NDIIO/Source/Shaders/Public/NDIShaders.h b/Plugins/NDIIO/Source/Shaders/Public/NDIShaders.h deleted file mode 100644 index 14c8e8e..0000000 --- a/Plugins/NDIIO/Source/Shaders/Public/NDIShaders.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -#pragma once - -#include "CoreMinimal.h" -#include "RHI.h" -#include "RenderResource.h" -#include "Shader.h" -#include "GlobalShader.h" -#include "ShaderParameterUtils.h" -#include "RHIStaticStates.h" -#include "Misc/EngineVersionComparison.h" -#if (ENGINE_MAJOR_VERSION > 5) || ((ENGINE_MAJOR_VERSION == 5) && (ENGINE_MINOR_VERSION >= 2)) // 5.2 or later -#include "DataDrivenShaderPlatformInfo.h" -#endif - -#include "Logging/LogMacros.h" - -DECLARE_LOG_CATEGORY_EXTERN(LogNDIIOShaders, Log, All); - - -class FNDIIOShaderVS : public FGlobalShader -{ - DECLARE_EXPORTED_SHADER_TYPE(FNDIIOShaderVS, Global, NDIIOSHADERS_API); - -public: - static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) - { - return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::ES3_1); - } - - FNDIIOShaderVS() - {} - - FNDIIOShaderVS(const ShaderMetaType::CompiledShaderInitializerType& Initializer) - : FGlobalShader(Initializer) - {} -}; - - -class FNDIIOShaderPS : public FGlobalShader -{ -public: - static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) - { - return IsFeatureLevelSupported(Parameters.Platform, ERHIFeatureLevel::ES3_1); - } - - FNDIIOShaderPS() - {} - - FNDIIOShaderPS(const ShaderMetaType::CompiledShaderInitializerType& Initializer) - : FGlobalShader(Initializer) - {} - - enum class EColorCorrection : uint32 - { - None = 0, - sRGBToLinear, - LinearTosRGB - }; - - struct Params - { - Params(const TRefCountPtr& InputTargetIn, const TRefCountPtr& InputAlphaTargetIn, FIntPoint OutputSizeIn, FVector2D UVOffsetIn, FVector2D UVScaleIn, EColorCorrection ColorCorrectionIn, FVector2D AlphaMinMaxIn) - : InputTarget(InputTargetIn) - , InputAlphaTarget(InputAlphaTargetIn) - , OutputSize(OutputSizeIn) - , UVOffset(UVOffsetIn) - , UVScale(UVScaleIn) - , ColorCorrection(ColorCorrectionIn) - , AlphaMinMax(AlphaMinMaxIn) - {} - - TRefCountPtr InputTarget; - TRefCountPtr InputAlphaTarget; - FIntPoint OutputSize; - FVector2D UVOffset; - FVector2D UVScale; - EColorCorrection ColorCorrection; - FVector2D AlphaMinMax; - }; - - NDIIOSHADERS_API void SetParameters(FRHICommandList& CommandList, const Params& params); - -protected: -}; - - -class FNDIIOShaderBGRAtoUYVYPS : public FNDIIOShaderPS -{ - DECLARE_EXPORTED_SHADER_TYPE(FNDIIOShaderBGRAtoUYVYPS, Global, NDIIOSHADERS_API); - -public: - using FNDIIOShaderPS::FNDIIOShaderPS; -}; - -class FNDIIOShaderBGRAtoAlphaEvenPS : public FNDIIOShaderPS -{ - DECLARE_EXPORTED_SHADER_TYPE(FNDIIOShaderBGRAtoAlphaEvenPS, Global, NDIIOSHADERS_API); - -public: - using FNDIIOShaderPS::FNDIIOShaderPS; -}; - -class FNDIIOShaderBGRAtoAlphaOddPS : public FNDIIOShaderPS -{ - DECLARE_EXPORTED_SHADER_TYPE(FNDIIOShaderBGRAtoAlphaOddPS, Global, NDIIOSHADERS_API); - -public: - using FNDIIOShaderPS::FNDIIOShaderPS; -}; - -class FNDIIOShaderUYVYtoBGRAPS : public FNDIIOShaderPS -{ - DECLARE_EXPORTED_SHADER_TYPE(FNDIIOShaderUYVYtoBGRAPS, Global, NDIIOSHADERS_API); - -public: - using FNDIIOShaderPS::FNDIIOShaderPS; -}; - -class FNDIIOShaderUYVAtoBGRAPS : public FNDIIOShaderPS -{ - DECLARE_EXPORTED_SHADER_TYPE(FNDIIOShaderUYVAtoBGRAPS, Global, NDIIOSHADERS_API); - -public: - using FNDIIOShaderPS::FNDIIOShaderPS; -}; - -class INDIIOShaders : public IModuleInterface -{ -public: -}; diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.DynamicLoad.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.DynamicLoad.h deleted file mode 100644 index 4df80a8..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.DynamicLoad.h +++ /dev/null @@ -1,635 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -typedef struct NDIlib_v6 { - // v1.5 - union { - bool (*initialize)(void); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_initialize)(void); - }; - - union { - void (*destroy)(void); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_destroy)(void); - }; - union { - const char* (*version)(void); - PROCESSINGNDILIB_DEPRECATED const char* (*NDIlib_version)(void); - }; - - union { - bool (*is_supported_CPU)(void); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_is_supported_CPU)(void); - }; - - union { - PROCESSINGNDILIB_DEPRECATED NDIlib_find_instance_t (*find_create)(const NDIlib_find_create_t* p_create_settings); - PROCESSINGNDILIB_DEPRECATED NDIlib_find_instance_t (*NDIlib_find_create)(const NDIlib_find_create_t* p_create_settings); - }; - - union { - NDIlib_find_instance_t (*find_create_v2)(const NDIlib_find_create_t* p_create_settings); - PROCESSINGNDILIB_DEPRECATED NDIlib_find_instance_t (*NDIlib_find_create_v2)(const NDIlib_find_create_t* p_create_settings); - }; - - union { - void (*find_destroy)(NDIlib_find_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_find_destroy)(NDIlib_find_instance_t p_instance); - }; - - union { - const NDIlib_source_t* (*find_get_sources)(NDIlib_find_instance_t p_instance, uint32_t* p_no_sources, uint32_t timeout_in_ms); - PROCESSINGNDILIB_DEPRECATED const NDIlib_source_t* (*NDIlib_find_get_sources)(NDIlib_find_instance_t p_instance, uint32_t* p_no_sources, uint32_t timeout_in_ms); - }; - - union { - NDIlib_send_instance_t (*send_create)(const NDIlib_send_create_t* p_create_settings); - PROCESSINGNDILIB_DEPRECATED NDIlib_send_instance_t (*NDIlib_send_create)(const NDIlib_send_create_t* p_create_settings); - }; - - union { - void (*send_destroy)(NDIlib_send_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_destroy)(NDIlib_send_instance_t p_instance); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*send_send_video)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_video)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*send_send_video_async)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_video_async)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*send_send_audio)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_audio)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_t* p_audio_data); - }; - - union { - void (*send_send_metadata)(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_metadata)(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - }; - - union { - NDIlib_frame_type_e (*send_capture)(NDIlib_send_instance_t p_instance, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); - PROCESSINGNDILIB_DEPRECATED NDIlib_frame_type_e (*NDIlib_send_capture)(NDIlib_send_instance_t p_instance, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); - }; - - union { - void (*send_free_metadata)(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_free_metadata)(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - }; - - union { - bool (*send_get_tally)(NDIlib_send_instance_t p_instance, NDIlib_tally_t* p_tally, uint32_t timeout_in_ms); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_send_get_tally)(NDIlib_send_instance_t p_instance, NDIlib_tally_t* p_tally, uint32_t timeout_in_ms); - }; - - union { - int (*send_get_no_connections)(NDIlib_send_instance_t p_instance, uint32_t timeout_in_ms); - PROCESSINGNDILIB_DEPRECATED int (*NDIlib_send_get_no_connections)(NDIlib_send_instance_t p_instance, uint32_t timeout_in_ms); - }; - - union { - void (*send_clear_connection_metadata)(NDIlib_send_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_clear_connection_metadata)(NDIlib_send_instance_t p_instance); - }; - - union { - void (*send_add_connection_metadata)(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_add_connection_metadata)(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - }; - - union { - void (*send_set_failover)(NDIlib_send_instance_t p_instance, const NDIlib_source_t* p_failover_source); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_set_failover)(NDIlib_send_instance_t p_instance, const NDIlib_source_t* p_failover_source); - }; - - union { - PROCESSINGNDILIB_DEPRECATED NDIlib_recv_instance_t (*recv_create_v2)(const NDIlib_recv_create_t* p_create_settings); - PROCESSINGNDILIB_DEPRECATED NDIlib_recv_instance_t (*NDIlib_recv_create_v2)(const NDIlib_recv_create_t* p_create_settings); - }; - - union { - PROCESSINGNDILIB_DEPRECATED NDIlib_recv_instance_t (*recv_create)(const NDIlib_recv_create_t* p_create_settings); - PROCESSINGNDILIB_DEPRECATED NDIlib_recv_instance_t (*NDIlib_recv_create)(const NDIlib_recv_create_t* p_create_settings); - }; - - union { - void (*recv_destroy)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_destroy)(NDIlib_recv_instance_t p_instance); - }; - - union { - PROCESSINGNDILIB_DEPRECATED NDIlib_frame_type_e (*recv_capture)(NDIlib_recv_instance_t p_instance, NDIlib_video_frame_t* p_video_data, NDIlib_audio_frame_t* p_audio_data, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); - PROCESSINGNDILIB_DEPRECATED NDIlib_frame_type_e (*NDIlib_recv_capture)(NDIlib_recv_instance_t p_instance, NDIlib_video_frame_t* p_video_data, NDIlib_audio_frame_t* p_audio_data, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*recv_free_video)(NDIlib_recv_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_free_video)(NDIlib_recv_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*recv_free_audio)(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_free_audio)(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_t* p_audio_data); - }; - - union { - void (*recv_free_metadata)(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_free_metadata)(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - }; - - union { - bool (*recv_send_metadata)(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_send_metadata)(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - }; - - union { - bool (*recv_set_tally)(NDIlib_recv_instance_t p_instance, const NDIlib_tally_t* p_tally); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_set_tally)(NDIlib_recv_instance_t p_instance, const NDIlib_tally_t* p_tally); - }; - - union { - void (*recv_get_performance)(NDIlib_recv_instance_t p_instance, NDIlib_recv_performance_t* p_total, NDIlib_recv_performance_t* p_dropped); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_get_performance)(NDIlib_recv_instance_t p_instance, NDIlib_recv_performance_t* p_total, NDIlib_recv_performance_t* p_dropped); - }; - - union { - void (*recv_get_queue)(NDIlib_recv_instance_t p_instance, NDIlib_recv_queue_t* p_total); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_get_queue)(NDIlib_recv_instance_t p_instance, NDIlib_recv_queue_t* p_total); - }; - - union { - void (*recv_clear_connection_metadata)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_clear_connection_metadata)(NDIlib_recv_instance_t p_instance); - }; - - union { - void (*recv_add_connection_metadata)(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_add_connection_metadata)(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - }; - - union { - int (*recv_get_no_connections)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED int (*NDIlib_recv_get_no_connections)(NDIlib_recv_instance_t p_instance); - }; - - union { - NDIlib_routing_instance_t (*routing_create)(const NDIlib_routing_create_t* p_create_settings); - PROCESSINGNDILIB_DEPRECATED NDIlib_routing_instance_t (*NDIlib_routing_create)(const NDIlib_routing_create_t* p_create_settings); - }; - - union { - void (*routing_destroy)(NDIlib_routing_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_routing_destroy)(NDIlib_routing_instance_t p_instance); - }; - - union { - bool (*routing_change)(NDIlib_routing_instance_t p_instance, const NDIlib_source_t* p_source); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_routing_change)(NDIlib_routing_instance_t p_instance, const NDIlib_source_t* p_source); - }; - - union { - bool (*routing_clear)(NDIlib_routing_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_routing_clear)(NDIlib_routing_instance_t p_instance); - }; - - union { - void (*util_send_send_audio_interleaved_16s)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_interleaved_16s_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_send_send_audio_interleaved_16s)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_interleaved_16s_t* p_audio_data); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*util_audio_to_interleaved_16s)(const NDIlib_audio_frame_t* p_src, NDIlib_audio_frame_interleaved_16s_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_to_interleaved_16s)(const NDIlib_audio_frame_t* p_src, NDIlib_audio_frame_interleaved_16s_t* p_dst); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*util_audio_from_interleaved_16s)(const NDIlib_audio_frame_interleaved_16s_t* p_src, NDIlib_audio_frame_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_from_interleaved_16s)(const NDIlib_audio_frame_interleaved_16s_t* p_src, NDIlib_audio_frame_t* p_dst); - }; - - // v2 - union { - bool (*find_wait_for_sources)(NDIlib_find_instance_t p_instance, uint32_t timeout_in_ms); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_find_wait_for_sources)(NDIlib_find_instance_t p_instance, uint32_t timeout_in_ms); - }; - - union { - const NDIlib_source_t* (*find_get_current_sources)(NDIlib_find_instance_t p_instance, uint32_t* p_no_sources); - PROCESSINGNDILIB_DEPRECATED const NDIlib_source_t* (*NDIlib_find_get_current_sources)(NDIlib_find_instance_t p_instance, uint32_t* p_no_sources); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*util_audio_to_interleaved_32f)(const NDIlib_audio_frame_t* p_src, NDIlib_audio_frame_interleaved_32f_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_to_interleaved_32f)(const NDIlib_audio_frame_t* p_src, NDIlib_audio_frame_interleaved_32f_t* p_dst); - }; - - union { - PROCESSINGNDILIB_DEPRECATED void (*util_audio_from_interleaved_32f)(const NDIlib_audio_frame_interleaved_32f_t* p_src, NDIlib_audio_frame_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_from_interleaved_32f)(const NDIlib_audio_frame_interleaved_32f_t* p_src, NDIlib_audio_frame_t* p_dst); - }; - - union { - void (*util_send_send_audio_interleaved_32f)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_interleaved_32f_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_send_send_audio_interleaved_32f)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_interleaved_32f_t* p_audio_data); - }; - - // v3 - union { - void (*recv_free_video_v2)(NDIlib_recv_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_free_video_v2)(NDIlib_recv_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - }; - - union { - void (*recv_free_audio_v2)(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_v2_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_free_audio_v2)(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_v2_t* p_audio_data); - }; - - union { - NDIlib_frame_type_e (*recv_capture_v2)(NDIlib_recv_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data, NDIlib_audio_frame_v2_t* p_audio_data, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); // The amount of time in milliseconds to wait for data. - PROCESSINGNDILIB_DEPRECATED NDIlib_frame_type_e (*NDIlib_recv_capture_v2)(NDIlib_recv_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data, NDIlib_audio_frame_v2_t* p_audio_data, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); // The amount of time in milliseconds to wait for data. - }; - - union { - void (*send_send_video_v2)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_video_v2)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - }; - - union { - void (*send_send_video_async_v2)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_video_async_v2)(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - }; - - union { - void (*send_send_audio_v2)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_v2_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_audio_v2)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_v2_t* p_audio_data); - }; - - union { - void (*util_audio_to_interleaved_16s_v2)(const NDIlib_audio_frame_v2_t* p_src, NDIlib_audio_frame_interleaved_16s_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_to_interleaved_16s_v2)(const NDIlib_audio_frame_v2_t* p_src, NDIlib_audio_frame_interleaved_16s_t* p_dst); - }; - - union { - void (*util_audio_from_interleaved_16s_v2)(const NDIlib_audio_frame_interleaved_16s_t* p_src, NDIlib_audio_frame_v2_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_from_interleaved_16s_v2)(const NDIlib_audio_frame_interleaved_16s_t* p_src, NDIlib_audio_frame_v2_t* p_dst); - }; - - union { - void (*util_audio_to_interleaved_32f_v2)(const NDIlib_audio_frame_v2_t* p_src, NDIlib_audio_frame_interleaved_32f_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_to_interleaved_32f_v2)(const NDIlib_audio_frame_v2_t* p_src, NDIlib_audio_frame_interleaved_32f_t* p_dst); - }; - - union { - void (*util_audio_from_interleaved_32f_v2)(const NDIlib_audio_frame_interleaved_32f_t* p_src, NDIlib_audio_frame_v2_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_from_interleaved_32f_v2)(const NDIlib_audio_frame_interleaved_32f_t* p_src, NDIlib_audio_frame_v2_t* p_dst); - }; - - // V3.01 - union { - void (*recv_free_string)(NDIlib_recv_instance_t p_instance, const char* p_string); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_free_string)(NDIlib_recv_instance_t p_instance, const char* p_string); - }; - - union { - bool (*recv_ptz_is_supported)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_is_supported)(NDIlib_recv_instance_t p_instance); - }; - - union { - // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED bool (*recv_recording_is_supported)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_recording_is_supported)(NDIlib_recv_instance_t p_instance); - }; - - union { - const char* (*recv_get_web_control)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED const char* (*NDIlib_recv_get_web_control)(NDIlib_recv_instance_t p_instance); - }; - - union { - bool (*recv_ptz_zoom)(NDIlib_recv_instance_t p_instance, const float zoom_value); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_zoom)(NDIlib_recv_instance_t p_instance, const float zoom_value); - }; - - union { - bool (*recv_ptz_zoom_speed)(NDIlib_recv_instance_t p_instance, const float zoom_speed); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_zoom_speed)(NDIlib_recv_instance_t p_instance, const float zoom_speed); - }; - - union { - bool (*recv_ptz_pan_tilt)(NDIlib_recv_instance_t p_instance, const float pan_value, const float tilt_value); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_pan_tilt)(NDIlib_recv_instance_t p_instance, const float pan_value, const float tilt_value); - }; - - union { - bool (*recv_ptz_pan_tilt_speed)(NDIlib_recv_instance_t p_instance, const float pan_speed, const float tilt_speed); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_pan_tilt_speed)(NDIlib_recv_instance_t p_instance, const float pan_speed, const float tilt_speed); - }; - - union { - bool (*recv_ptz_store_preset)(NDIlib_recv_instance_t p_instance, const int preset_no); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_store_preset)(NDIlib_recv_instance_t p_instance, const int preset_no); - }; - - union { - bool (*recv_ptz_recall_preset)(NDIlib_recv_instance_t p_instance, const int preset_no, const float speed); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_recall_preset)(NDIlib_recv_instance_t p_instance, const int preset_no, const float speed); - }; - - union { - bool (*recv_ptz_auto_focus)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_auto_focus)(NDIlib_recv_instance_t p_instance); - }; - - union { - bool (*recv_ptz_focus)(NDIlib_recv_instance_t p_instance, const float focus_value); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_focus)(NDIlib_recv_instance_t p_instance, const float focus_value); - }; - - union { - bool (*recv_ptz_focus_speed)(NDIlib_recv_instance_t p_instance, const float focus_speed); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_focus_speed)(NDIlib_recv_instance_t p_instance, const float focus_speed); - }; - - union { - bool (*recv_ptz_white_balance_auto)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_white_balance_auto)(NDIlib_recv_instance_t p_instance); - }; - - union { - bool (*recv_ptz_white_balance_indoor)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_white_balance_indoor)(NDIlib_recv_instance_t p_instance); - }; - - union { - bool (*recv_ptz_white_balance_outdoor)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_white_balance_outdoor)(NDIlib_recv_instance_t p_instance); - }; - - union { - bool (*recv_ptz_white_balance_oneshot)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_white_balance_oneshot)(NDIlib_recv_instance_t p_instance); - }; - - union { - bool (*recv_ptz_white_balance_manual)(NDIlib_recv_instance_t p_instance, const float red, const float blue); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_white_balance_manual)(NDIlib_recv_instance_t p_instance, const float red, const float blue); - }; - - union { - bool (*recv_ptz_exposure_auto)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_exposure_auto)(NDIlib_recv_instance_t p_instance); - }; - - union { - bool (*recv_ptz_exposure_manual)(NDIlib_recv_instance_t p_instance, const float exposure_level); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_exposure_manual)(NDIlib_recv_instance_t p_instance, const float exposure_level); - }; - - union { - // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED bool (*recv_recording_start)(NDIlib_recv_instance_t p_instance, const char* p_filename_hint); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_recording_start)(NDIlib_recv_instance_t p_instance, const char* p_filename_hint); - }; - - union { - // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED bool (*recv_recording_stop)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_recording_stop)(NDIlib_recv_instance_t p_instance); - }; - - union { - // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED bool (*recv_recording_set_audio_level)(NDIlib_recv_instance_t p_instance, const float level_dB); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_recording_set_audio_level)(NDIlib_recv_instance_t p_instance, const float level_dB); - }; - - union { // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED bool (*recv_recording_is_recording)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_recording_is_recording)(NDIlib_recv_instance_t p_instance); - }; - - union { - // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED const char* (*recv_recording_get_filename)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED const char* (*NDIlib_recv_recording_get_filename)(NDIlib_recv_instance_t p_instance); - }; - - union { - // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED const char* (*recv_recording_get_error)(NDIlib_recv_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED const char* (*NDIlib_recv_recording_get_error)(NDIlib_recv_instance_t p_instance); - }; - - union { - // This functionality is now provided via external NDI recording, see SDK documentation. - PROCESSINGNDILIB_DEPRECATED bool (*recv_recording_get_times)(NDIlib_recv_instance_t p_instance, NDIlib_recv_recording_time_t* p_times); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_recording_get_times)(NDIlib_recv_instance_t p_instance, NDIlib_recv_recording_time_t* p_times); - }; - - // v3.1 - union { - NDIlib_recv_instance_t (*recv_create_v3)(const NDIlib_recv_create_v3_t* p_create_settings); - PROCESSINGNDILIB_DEPRECATED NDIlib_recv_instance_t (*NDIlib_recv_create_v3)(const NDIlib_recv_create_v3_t* p_create_settings); - }; - - // v3.5 - union { - void (*recv_connect)(NDIlib_recv_instance_t p_instance, const NDIlib_source_t* p_src); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_connect)(NDIlib_recv_instance_t p_instance, const NDIlib_source_t* p_src); - }; - - // v3.6 - union { - NDIlib_framesync_instance_t (*framesync_create)(NDIlib_recv_instance_t p_receiver); - PROCESSINGNDILIB_DEPRECATED NDIlib_framesync_instance_t (*NDIlib_framesync_create)(NDIlib_recv_instance_t p_receiver); - }; - - union { - void (*framesync_destroy)(NDIlib_framesync_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_framesync_destroy)(NDIlib_framesync_instance_t p_instance); - }; - - union { - void (*framesync_capture_audio)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v2_t* p_audio_data, int sample_rate, int no_channels, int no_samples); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_framesync_capture_audio)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v2_t* p_audio_data, int sample_rate, int no_channels, int no_samples); - }; - - union { - void (*framesync_free_audio)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v2_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_framesync_free_audio)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v2_t* p_audio_data); - }; - - union { - void (*framesync_capture_video)(NDIlib_framesync_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data, NDIlib_frame_format_type_e field_type); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_framesync_capture_video)(NDIlib_framesync_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data, NDIlib_frame_format_type_e field_type); - }; - - union { - void (*framesync_free_video)(NDIlib_framesync_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_framesync_free_video)(NDIlib_framesync_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data); - }; - - union { - void (*util_send_send_audio_interleaved_32s)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_interleaved_32s_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_send_send_audio_interleaved_32s)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_interleaved_32s_t* p_audio_data); - }; - - union { - void (*util_audio_to_interleaved_32s_v2)(const NDIlib_audio_frame_v2_t* p_src, NDIlib_audio_frame_interleaved_32s_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_to_interleaved_32s_v2)(const NDIlib_audio_frame_v2_t* p_src, NDIlib_audio_frame_interleaved_32s_t* p_dst); - }; - - union { - void (*util_audio_from_interleaved_32s_v2)(const NDIlib_audio_frame_interleaved_32s_t* p_src, NDIlib_audio_frame_v2_t* p_dst); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_audio_from_interleaved_32s_v2)(const NDIlib_audio_frame_interleaved_32s_t* p_src, NDIlib_audio_frame_v2_t* p_dst); - }; - - // v3.8 - union { - const NDIlib_source_t* (*send_get_source_name)(NDIlib_send_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED const NDIlib_source_t* (*NDIlib_send_get_source_name)(NDIlib_send_instance_t p_instance); - }; - - // v4.0 - union { - void (*send_send_audio_v3)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_v3_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_send_send_audio_v3)(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_v3_t* p_audio_data); - }; - - union { - void (*util_V210_to_P216)(const NDIlib_video_frame_v2_t* p_src_v210, NDIlib_video_frame_v2_t* p_dst_p216); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_V210_to_P216)(const NDIlib_video_frame_v2_t* p_src_v210, NDIlib_video_frame_v2_t* p_dst_p216); - }; - - union { - void (*util_P216_to_V210)(const NDIlib_video_frame_v2_t* p_src_p216, NDIlib_video_frame_v2_t* p_dst_v210); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_util_P216_to_V210)(const NDIlib_video_frame_v2_t* p_src_p216, NDIlib_video_frame_v2_t* p_dst_v210); - }; - - // v4.1 - union { - int (*routing_get_no_connections)(NDIlib_routing_instance_t p_instance, uint32_t timeout_in_ms); - PROCESSINGNDILIB_DEPRECATED int (*NDIlib_routing_get_no_connections)(NDIlib_routing_instance_t p_instance, uint32_t timeout_in_ms); - }; - - union { - const NDIlib_source_t* (*routing_get_source_name)(NDIlib_routing_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED const NDIlib_source_t* (*NDIlib_routing_get_source_name)(NDIlib_routing_instance_t p_instance); - }; - - union { - NDIlib_frame_type_e (*recv_capture_v3)(NDIlib_recv_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data, NDIlib_audio_frame_v3_t* p_audio_data, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); // The amount of time in milliseconds to wait for data. - PROCESSINGNDILIB_DEPRECATED NDIlib_frame_type_e (*NDIlib_recv_capture_v3)(NDIlib_recv_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data, NDIlib_audio_frame_v3_t* p_audio_data, NDIlib_metadata_frame_t* p_metadata, uint32_t timeout_in_ms); // The amount of time in milliseconds to wait for data. - }; - - union { - void (*recv_free_audio_v3)(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_v3_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_recv_free_audio_v3)(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_v3_t* p_audio_data); - }; - - union { - void (*framesync_capture_audio_v2)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v3_t* p_audio_data, int sample_rate, int no_channels, int no_samples); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_framesync_capture_audio_v2)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v3_t* p_audio_data, int sample_rate, int no_channels, int no_samples); - }; - - union { - void (*framesync_free_audio_v2)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v3_t* p_audio_data); - PROCESSINGNDILIB_DEPRECATED void (*NDIlib_framesync_free_audio_v2)(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v3_t* p_audio_data); - }; - - union { - int (*framesync_audio_queue_depth)(NDIlib_framesync_instance_t p_instance); - PROCESSINGNDILIB_DEPRECATED int (*NDIlib_framesync_audio_queue_depth)(NDIlib_framesync_instance_t p_instance); - }; - - // v5 - union { - bool (*recv_ptz_exposure_manual_v2)(NDIlib_recv_instance_t p_instance, const float iris, const float gain, const float shutter_speed); - PROCESSINGNDILIB_DEPRECATED bool (*NDIlib_recv_ptz_exposure_manual_v2)(NDIlib_recv_instance_t p_instance, const float iris, const float gain, const float shutter_speed); - }; - - // v6.1 - bool (*util_audio_to_interleaved_16s_v3)(const NDIlib_audio_frame_v3_t* p_src, NDIlib_audio_frame_interleaved_16s_t* p_dst); - bool (*util_audio_from_interleaved_16s_v3)(const NDIlib_audio_frame_interleaved_16s_t* p_src, NDIlib_audio_frame_v3_t* p_dst); - bool (*util_audio_to_interleaved_32s_v3)(const NDIlib_audio_frame_v3_t* p_src, NDIlib_audio_frame_interleaved_32s_t* p_dst); - bool (*util_audio_from_interleaved_32s_v3)(const NDIlib_audio_frame_interleaved_32s_t* p_src, NDIlib_audio_frame_v3_t* p_dst); - bool (*util_audio_to_interleaved_32f_v3)(const NDIlib_audio_frame_v3_t* p_src, NDIlib_audio_frame_interleaved_32f_t* p_dst); - bool (*util_audio_from_interleaved_32f_v3)(const NDIlib_audio_frame_interleaved_32f_t* p_src, NDIlib_audio_frame_v3_t* p_dst); - - // v6.2 - bool (*recv_get_source_name)(NDIlib_recv_instance_t p_instance, const char** p_source_name, uint32_t timeout_in_ms); - - NDIlib_recv_advertiser_instance_t (*recv_advertiser_create)(const NDIlib_recv_advertiser_create_t* p_create_settings); - void (*recv_advertiser_destroy)(NDIlib_recv_advertiser_instance_t p_instance); - bool (*recv_advertiser_add_receiver)(NDIlib_recv_advertiser_instance_t p_instance, NDIlib_recv_instance_t p_receiver, bool allow_controlling, bool allow_monitoring, const char* p_input_group_name); - bool (*recv_advertiser_del_receiver)(NDIlib_recv_advertiser_instance_t p_instance, NDIlib_recv_instance_t p_receiver); - - NDIlib_recv_listener_instance_t (*recv_listener_create)(const NDIlib_recv_listener_create_t* p_create_settings); - void (*recv_listener_destroy)(NDIlib_recv_listener_instance_t p_instance); - bool (*recv_listener_is_connected)(NDIlib_recv_listener_instance_t p_instance); - const char* (*recv_listener_get_server_url)(NDIlib_recv_listener_instance_t p_instance); - const NDIlib_receiver_t* (*recv_listener_get_receivers)(NDIlib_recv_listener_instance_t p_instance, uint32_t* p_num_receivers); - bool (*recv_listener_wait_for_receivers)(NDIlib_recv_listener_instance_t p_instance, uint32_t timeout_in_ms); -} NDIlib_v6; - -typedef struct NDIlib_v6 NDIlib_v5; -typedef struct NDIlib_v6 NDIlib_v4_5; -typedef struct NDIlib_v6 NDIlib_v4; -typedef struct NDIlib_v6 NDIlib_v3; -typedef struct NDIlib_v6 NDIlib_v2; - -// Load the library. -PROCESSINGNDILIB_API -const NDIlib_v6* NDIlib_v6_load(void); - -// Load the library. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const NDIlib_v5* NDIlib_v5_load(void); - -// Load the library. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const NDIlib_v4_5* NDIlib_v4_5_load(void); - -// Load the library. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const NDIlib_v4* NDIlib_v4_load(void); - -// Load the library. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const NDIlib_v3* NDIlib_v3_load(void); - -// Load the library. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const NDIlib_v2* NDIlib_v2_load(void); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Find.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Find.h deleted file mode 100644 index cba0792..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Find.h +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// Structures and type definitions required by NDI finding. -// The reference to an instance of the finder. -struct NDIlib_find_instance_type; -typedef struct NDIlib_find_instance_type* NDIlib_find_instance_t; - -// The creation structure that is used when you are creating a finder. -typedef struct NDIlib_find_create_t { - // Do we want to include the list of NDI sources that are running on the local machine? If TRUE then - // local sources will be visible, if FALSE then they will not. - bool show_local_sources; - - // Which groups do you want to search in for sources. - const char* p_groups; - - // The list of additional IP addresses that exist that we should query for sources on. For instance, if - // you want to find the sources on a remote machine that is not on your local sub-net then you can put a - // comma separated list of those IP addresses here and those sources will be available locally even - // though they are not mDNS discoverable. An example might be "12.0.0.8,13.0.12.8". When none is - // specified the registry is used. - // Default = NULL; - const char* p_extra_ips; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_find_create_t( - bool show_local_sources_ = true, - const char* p_groups_ = NULL, - const char* p_extra_ips_ = NULL - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_find_create_t; - -//*********************************************************************************************************** -// Create a new finder instance. This will return NULL if it fails. -PROCESSINGNDILIB_API -NDIlib_find_instance_t NDIlib_find_create_v2(const NDIlib_find_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// This will destroy an existing finder instance. -PROCESSINGNDILIB_API -void NDIlib_find_destroy(NDIlib_find_instance_t p_instance); - -// This function will recover the current set of sources (i.e. the ones that exist right this second). The -// char* memory buffers returned in NDIlib_source_t are valid until the next call to -// NDIlib_find_get_current_sources or a call to NDIlib_find_destroy. For a given NDIlib_find_instance_t, do -// not call NDIlib_find_get_current_sources asynchronously. -PROCESSINGNDILIB_API -const NDIlib_source_t* NDIlib_find_get_current_sources(NDIlib_find_instance_t p_instance, uint32_t* p_no_sources); - -// This will allow you to wait until the number of online sources have changed. -PROCESSINGNDILIB_API -bool NDIlib_find_wait_for_sources(NDIlib_find_instance_t p_instance, uint32_t timeout_in_ms); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.FrameSync.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.FrameSync.h deleted file mode 100644 index 8933346..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.FrameSync.h +++ /dev/null @@ -1,172 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// It is important when using video to realize that often you are using difference clocks for different parts -// of the signal chain. Within NDI, the sender can send at the clock rate that it wants and the receiver will -// receive it at that rate. The receiver however is very unlikely to share the exact same clock rate in many -// cases. For instance, bear in mind that computer clocks rely on crystals which while all rated for the same -// frequency are still not exact. If you sending computer has an audio clock that it "thinks" is 48000Hz, to -// the receiver computer that has a different audio clock this might be 48001Hz or 47998Hz. While these -// differences might appear small they accumulate over time and can cause audio to either slightly drift out -// of sync (it is receiving more audio sample than it needs to play back) or might cause audio glitches -// because it is not receiving enough audio samples. While we have described the situation for audio, the -// same exact problem occurs for video sources; it is commonly thought that this can be solved by simply -// having a "frame buffer" and that displaying the "most recently received video frame" will solve these -// timing discrepancies. Unfortunately this is not the case and when it is done because of the variance in -// clock timings, it is very common the video will appear the "jitter" when the sending and receiving clocks -// are almost in alignment. The solution to these problems is to implement a "time base corrector" for the -// video clock which is a device that uses hysteresis to know when the best time is to either drop or insert -// a video frame such that the video is most likely to play back smoothly, and audio should be dynamically -// audio sampled (with a high order resampling filter) to adaptively track any clocking differences. -// Implementing these components is very difficult to get entirely correct under all scenarios and this -// implementation is provided to facilitate this and help people who are building real time video -// applications to receive audio and video without needing to undertake the full complexity of implementing -// such clock devices. -// -// Another way to look at what this class does is that it transforms "push" sources (i.e. NDI sources in -// which the data is pushed from the sender to the receiver) into "pull" sources in which a host application -// is pulling the data down-stream. The frame-sync automatically tracks all clocks to achieve the best video -// performance doing this operation. -// -// In addition to time-base correction operations, these implementations also will automatically detect and -// correct timing jitter that might occur. This will internally correct for timing anomalies that might be -// caused by network, sender or receiver side timing errors caused by CPU limitations, network bandwidth -// fluctuations, etc... -// -// A very common use of a frame-synchronizer might be if you are displaying video on screen timed to the GPU -// v-sync, you should use such a device to convert from the incoming time-base into the time-base of the GPU. -// -// The following are common times that you want to use a frame-synchronizer -// Video playback on screen : Yes, you want the clock to be synced with vertical refresh. -// Audio playback through sound card : Yes you want the clock to be synced with your sound card clock. -// Video mixing : Yes you want the input video clocks to all be synced to your output video clock. -// Audio mixing : Yes, you want all input audio clocks to be brought into sync with your output -// audio clock. -// Recording a single channel : No, you want to record the signal in it's raw form without -// any re-clocking. -// Recording multiple channels : Maybe. If you want to sync some input channels to match a master clock -// so that they can be ISO edited, then you might want a frame-sync. - -// The type instance for a frame-synchronizer. -struct NDIlib_framesync_instance_type; -typedef struct NDIlib_framesync_instance_type* NDIlib_framesync_instance_t; - -// Create a frame synchronizer instance that can be used to get frames from a receiver. Once this receiver -// has been bound to a frame-sync then you should use it in order to receive video frames. You can continue -// to use the underlying receiver for other operations (tally, PTZ, etc...). Note that it remains your -// responsibility to destroy the receiver even when a frame-sync is using it. You should always destroy the -// receiver after the frame-sync has been destroyed. -// -PROCESSINGNDILIB_API -NDIlib_framesync_instance_t NDIlib_framesync_create(NDIlib_recv_instance_t p_receiver); - -// Destroy a frame-sync implementation. -PROCESSINGNDILIB_API -void NDIlib_framesync_destroy(NDIlib_framesync_instance_t p_instance); - -// This function will pull audio samples from the frame-sync queue. This function will always return data -// immediately, inserting silence if no current audio data is present. You should call this at the rate that -// you want audio and it will automatically adapt the incoming audio signal to match the rate at which you -// are calling by using dynamic audio sampling. Note that you have no obligation that your requested sample -// rate, no channels and no samples match the incoming signal and all combinations of conversions -// are supported. -// -// If you wish to know what the current incoming audio format is, then you can make a call with the -// parameters set to zero and it will then return the associated settings. For instance a call as follows: -// -// NDIlib_framesync_capture_audio(p_instance, p_audio_data, 0, 0, 0); -// -// will return in p_audio_data the current received audio format if there is one or sample_rate and -// no_channels equal to zero if there is not one. At any time you can specify sample_rate and no_channels as -// zero and it will return the current received audio format. -// -PROCESSINGNDILIB_API -void NDIlib_framesync_capture_audio( - NDIlib_framesync_instance_t p_instance, - NDIlib_audio_frame_v2_t* p_audio_data, - int sample_rate, int no_channels, int no_samples -); -PROCESSINGNDILIB_API -void NDIlib_framesync_capture_audio_v2( - NDIlib_framesync_instance_t p_instance, - NDIlib_audio_frame_v3_t* p_audio_data, - int sample_rate, int no_channels, int no_samples -); - -// Free audio returned by NDIlib_framesync_capture_audio. -PROCESSINGNDILIB_API -void NDIlib_framesync_free_audio(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v2_t* p_audio_data); - -// Free audio returned by NDIlib_framesync_capture_audio_v2. -PROCESSINGNDILIB_API -void NDIlib_framesync_free_audio_v2(NDIlib_framesync_instance_t p_instance, NDIlib_audio_frame_v3_t* p_audio_data); - -// This function will tell you the approximate current depth of the audio queue to give you an indication -// of the number of audio samples you can request. Note that if you should treat the results of this function -// with some care because in reality the frame-sync API is meant to dynamically resample audio to match the -// rate that you are calling it. If you have an inaccurate clock then this function can be useful. -// for instance : -// -// while(true) -// { int no_samples = NDIlib_framesync_audio_queue_depth(p_instance); -// NDIlib_framesync_capture_audio( ... ); -// play_audio( ... ) -// NDIlib_framesync_free_audio( ... ) -// inaccurate_sleep( 33ms ); -// } -// -// Obviously because audio is being received in real-time there is no guarantee after the call that the -// number is correct since new samples might have been captured in that time. On synchronous use of this -// function however this will be the minimum number of samples in the queue at any later time until -// NDIlib_framesync_capture_audio is called. -// -PROCESSINGNDILIB_API -int NDIlib_framesync_audio_queue_depth(NDIlib_framesync_instance_t p_instance); - -// This function will pull video samples from the frame-sync queue. This function will always immediately -// return a video sample by using time-base correction. You can specify the desired field type which is then -// used to return the best possible frame. Note that field based frame-synchronization means that the -// frame-synchronizer attempts to match the fielded input phase with the frame requests so that you have the -// most correct possible field ordering on output. Note that the same frame can be returned multiple times. -// -// If no video frame has ever been received, this will return NDIlib_video_frame_v2_t as an empty (all zero) -// structure. The reason for this is that it allows you to determine that there has not yet been any video -// and act accordingly. For instance you might want to display a constant frame output at a particular video -// format, or black. -// -PROCESSINGNDILIB_API -void NDIlib_framesync_capture_video( - NDIlib_framesync_instance_t p_instance, - NDIlib_video_frame_v2_t* p_video_data, - NDIlib_frame_format_type_e field_type NDILIB_CPP_DEFAULT_VALUE(NDIlib_frame_format_type_progressive) -); - -// Free audio returned by NDIlib_framesync_capture_video. -PROCESSINGNDILIB_API -void NDIlib_framesync_free_video(NDIlib_framesync_instance_t p_instance, NDIlib_video_frame_v2_t* p_video_data); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.cplusplus.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.cplusplus.h deleted file mode 100644 index 0c7d973..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.cplusplus.h +++ /dev/null @@ -1,129 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - - -// C++ implementations of default constructors are here to avoid them needing to be inline with all of the -// rest of the code. - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -#endif - -// All the structs used and reasonable defaults are here -inline NDIlib_source_t::NDIlib_source_t(const char* p_ndi_name_, const char* p_url_address_) - : p_ndi_name(p_ndi_name_), p_url_address(p_url_address_) {} - -inline NDIlib_video_frame_v2_t::NDIlib_video_frame_v2_t(int xres_, int yres_, NDIlib_FourCC_video_type_e FourCC_, int frame_rate_N_, int frame_rate_D_, - float picture_aspect_ratio_, NDIlib_frame_format_type_e frame_format_type_, - int64_t timecode_, uint8_t* p_data_, int line_stride_in_bytes_, const char* p_metadata_, int64_t timestamp_) - : xres(xres_), yres(yres_), FourCC(FourCC_), frame_rate_N(frame_rate_N_), frame_rate_D(frame_rate_D_), - picture_aspect_ratio(picture_aspect_ratio_), frame_format_type(frame_format_type_), - timecode(timecode_), p_data(p_data_), line_stride_in_bytes(line_stride_in_bytes_), p_metadata(p_metadata_), timestamp(timestamp_) {} - -inline NDIlib_audio_frame_v2_t::NDIlib_audio_frame_v2_t(int sample_rate_, int no_channels_, int no_samples_, int64_t timecode_, float* p_data_, - int channel_stride_in_bytes_, const char* p_metadata_, int64_t timestamp_) - : sample_rate(sample_rate_), no_channels(no_channels_), no_samples(no_samples_), timecode(timecode_), - p_data(p_data_), channel_stride_in_bytes(channel_stride_in_bytes_), p_metadata(p_metadata_), timestamp(timestamp_) {} - -inline NDIlib_audio_frame_v3_t::NDIlib_audio_frame_v3_t(int sample_rate_, int no_channels_, int no_samples_, int64_t timecode_, - NDIlib_FourCC_audio_type_e FourCC_, uint8_t* p_data_, int channel_stride_in_bytes_, - const char* p_metadata_, int64_t timestamp_) - : sample_rate(sample_rate_), no_channels(no_channels_), no_samples(no_samples_), timecode(timecode_), - FourCC(FourCC_), p_data(p_data_), channel_stride_in_bytes(channel_stride_in_bytes_), - p_metadata(p_metadata_), timestamp(timestamp_) {} - -inline NDIlib_video_frame_t::NDIlib_video_frame_t(int xres_, int yres_, NDIlib_FourCC_video_type_e FourCC_, int frame_rate_N_, int frame_rate_D_, - float picture_aspect_ratio_, NDIlib_frame_format_type_e frame_format_type_, - int64_t timecode_, uint8_t* p_data_, int line_stride_in_bytes_) - : xres(xres_), yres(yres_), FourCC(FourCC_), frame_rate_N(frame_rate_N_), frame_rate_D(frame_rate_D_), - picture_aspect_ratio(picture_aspect_ratio_), frame_format_type(frame_format_type_), - timecode(timecode_), p_data(p_data_), line_stride_in_bytes(line_stride_in_bytes_) {} - -inline NDIlib_audio_frame_t::NDIlib_audio_frame_t(int sample_rate_, int no_channels_, int no_samples_, int64_t timecode_, float* p_data_, - int channel_stride_in_bytes_) - : sample_rate(sample_rate_), no_channels(no_channels_), no_samples(no_samples_), timecode(timecode_), - p_data(p_data_), channel_stride_in_bytes(channel_stride_in_bytes_) {} - -inline NDIlib_metadata_frame_t::NDIlib_metadata_frame_t(int length_, int64_t timecode_, char* p_data_) - : length(length_), timecode(timecode_), p_data(p_data_) {} - -inline NDIlib_tally_t::NDIlib_tally_t(bool on_program_, bool on_preview_) - : on_program(on_program_), on_preview(on_preview_) {} - -inline NDIlib_routing_create_t::NDIlib_routing_create_t(const char* p_ndi_name_, const char* p_groups_) - : p_ndi_name(p_ndi_name_), p_groups(p_groups_) {} - -inline NDIlib_recv_create_v3_t::NDIlib_recv_create_v3_t(const NDIlib_source_t source_to_connect_to_, NDIlib_recv_color_format_e color_format_, - NDIlib_recv_bandwidth_e bandwidth_, bool allow_video_fields_, const char* p_ndi_name_) - : source_to_connect_to(source_to_connect_to_), color_format(color_format_), bandwidth(bandwidth_), allow_video_fields(allow_video_fields_), p_ndi_recv_name(p_ndi_name_) {} - -inline NDIlib_recv_create_t::NDIlib_recv_create_t(const NDIlib_source_t source_to_connect_to_, NDIlib_recv_color_format_e color_format_, - NDIlib_recv_bandwidth_e bandwidth_, bool allow_video_fields_) - : source_to_connect_to(source_to_connect_to_), color_format(color_format_), bandwidth(bandwidth_), allow_video_fields(allow_video_fields_) {} - -inline NDIlib_recv_performance_t::NDIlib_recv_performance_t(void) - : video_frames(0), audio_frames(0), metadata_frames(0) {} - -inline NDIlib_recv_queue_t::NDIlib_recv_queue_t(void) - : video_frames(0), audio_frames(0), metadata_frames(0) {} - -inline NDIlib_recv_recording_time_t::NDIlib_recv_recording_time_t(void) - : no_frames(0), start_time(0), last_time(0) {} - -inline NDIlib_send_create_t::NDIlib_send_create_t(const char* p_ndi_name_, const char* p_groups_, bool clock_video_, bool clock_audio_) - : p_ndi_name(p_ndi_name_), p_groups(p_groups_), clock_video(clock_video_), clock_audio(clock_audio_) {} - -inline NDIlib_find_create_t::NDIlib_find_create_t(bool show_local_sources_, const char* p_groups_, const char* p_extra_ips_) - : show_local_sources(show_local_sources_), p_groups(p_groups_), p_extra_ips(p_extra_ips_) {} - -inline NDIlib_audio_frame_interleaved_16s_t::NDIlib_audio_frame_interleaved_16s_t(int sample_rate_, int no_channels_, int no_samples_, int64_t timecode_, int reference_level_, int16_t* p_data_) - : sample_rate(sample_rate_), no_channels(no_channels_), no_samples(no_samples_), timecode(timecode_), - reference_level(reference_level_), p_data(p_data_) {} - -inline NDIlib_audio_frame_interleaved_32s_t::NDIlib_audio_frame_interleaved_32s_t(int sample_rate_, int no_channels_, int no_samples_, int64_t timecode_, int reference_level_, int32_t* p_data_) - : sample_rate(sample_rate_), no_channels(no_channels_), no_samples(no_samples_), timecode(timecode_), - reference_level(reference_level_), p_data(p_data_) {} - -inline NDIlib_audio_frame_interleaved_32f_t::NDIlib_audio_frame_interleaved_32f_t(int sample_rate_, int no_channels_, int no_samples_, int64_t timecode_, float* p_data_) - : sample_rate(sample_rate_), no_channels(no_channels_), no_samples(no_samples_), timecode(timecode_), p_data(p_data_) {} - -inline NDIlib_recv_advertiser_create_t::NDIlib_recv_advertiser_create_t(const char* p_url_address) - : p_url_address(p_url_address) {} - -inline NDIlib_recv_listener_create_t::NDIlib_recv_listener_create_t(const char* p_url_address) - : p_url_address(p_url_address) {} - -inline NDIlib_receiver_t::NDIlib_receiver_t(void) - : p_uuid(NULL), p_name(NULL), p_input_uuid(NULL), p_input_name(NULL), p_address(NULL), - p_streams(NULL), num_streams(0), p_commands(NULL), num_commands(0), events_subscribed(false) {} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.h deleted file mode 100644 index 8f106c2..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Lib.h +++ /dev/null @@ -1,165 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -#ifdef PROCESSINGNDILIB_STATIC -# ifdef __cplusplus -# define PROCESSINGNDILIB_API extern "C" -# else // __cplusplus -# define PROCESSINGNDILIB_API -# endif // __cplusplus -#else // PROCESSINGNDILIB_STATIC -# ifdef _WIN32 -# ifdef PROCESSINGNDILIB_EXPORTS -# ifdef __cplusplus -# define PROCESSINGNDILIB_API extern "C" __declspec(dllexport) -# else // __cplusplus -# define PROCESSINGNDILIB_API __declspec(dllexport) -# endif // __cplusplus -# else // PROCESSINGNDILIB_EXPORTS -# ifdef __cplusplus -# define PROCESSINGNDILIB_API extern "C" __declspec(dllimport) -# else // __cplusplus -# define PROCESSINGNDILIB_API __declspec(dllimport) -# endif // __cplusplus -# ifdef _WIN64 -# define NDILIB_LIBRARY_NAME "Processing.NDI.Lib.x64.dll" -# define NDILIB_REDIST_FOLDER "NDI_RUNTIME_DIR_V6" -# define NDILIB_REDIST_URL "http://ndi.link/NDIRedistV6" -# else // _WIN64 -# define NDILIB_LIBRARY_NAME "Processing.NDI.Lib.x86.dll" -# define NDILIB_REDIST_FOLDER "NDI_RUNTIME_DIR_V6" -# define NDILIB_REDIST_URL "http://ndi.link/NDIRedistV6" -# endif // _WIN64 -# endif // PROCESSINGNDILIB_EXPORTS -# else // _WIN32 -# ifdef __APPLE__ -# define NDILIB_LIBRARY_NAME "libndi.dylib" -# define NDILIB_REDIST_FOLDER "NDI_RUNTIME_DIR_V6" -# define NDILIB_REDIST_URL "http://ndi.link/NDIRedistV6Apple" -# else // __APPLE__ -# define NDILIB_LIBRARY_NAME "libndi.so.6" -# define NDILIB_REDIST_FOLDER "NDI_RUNTIME_DIR_V6" -# define NDILIB_REDIST_URL "" -# endif // __APPLE__ -# ifdef __cplusplus -# define PROCESSINGNDILIB_API extern "C" __attribute((visibility("default"))) -# else // __cplusplus -# define PROCESSINGNDILIB_API __attribute((visibility("default"))) -# endif // __cplusplus -# endif // _WIN32 -#endif // PROCESSINGNDILIB_STATIC - -#ifndef PROCESSINGNDILIB_DEPRECATED -# ifdef _WIN32 -# ifdef _MSC_VER -# define PROCESSINGNDILIB_DEPRECATED __declspec(deprecated) -# else // _MSC_VER -# define PROCESSINGNDILIB_DEPRECATED __attribute((deprecated)) -# endif // _MSC_VER -# else // _WIN32 -# define PROCESSINGNDILIB_DEPRECATED -# endif // _WIN32 -#endif // PROCESSINGNDILIB_DEPRECATED - -#ifndef NDILIB_CPP_DEFAULT_CONSTRUCTORS -# ifdef __cplusplus -# define NDILIB_CPP_DEFAULT_CONSTRUCTORS 1 -# else // __cplusplus -# define NDILIB_CPP_DEFAULT_CONSTRUCTORS 0 -# endif // __cplusplus -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS - -#ifndef NDILIB_CPP_DEFAULT_VALUE -# ifdef __cplusplus -# define NDILIB_CPP_DEFAULT_VALUE(a) =(a) -# else // __cplusplus -# define NDILIB_CPP_DEFAULT_VALUE(a) -# endif // __cplusplus -#endif // NDILIB_CPP_DEFAULT_VALUE - -// Data structures shared by multiple SDKs. -#include "Processing.NDI.compat.h" -#include "Processing.NDI.structs.h" - -// This is not actually required, but will start and end the libraries which might get you slightly better -// performance in some cases. In general it is more "correct" to call these although it is not required. -// There is no way to call these that would have an adverse impact on anything (even calling destroy before -// you've deleted all your objects). This will return false if the CPU is not sufficiently capable to run -// NDILib currently NDILib requires SSE4.2 instructions (see documentation). You can verify a specific CPU -// against the library with a call to NDIlib_is_supported_CPU(). -PROCESSINGNDILIB_API -bool NDIlib_initialize(void); - -PROCESSINGNDILIB_API -void NDIlib_destroy(void); - -PROCESSINGNDILIB_API -const char* NDIlib_version(void); - -// Recover whether the current CPU in the system is capable of running NDILib. -PROCESSINGNDILIB_API -bool NDIlib_is_supported_CPU(void); - -// The finding (discovery API). -#include "Processing.NDI.Find.h" - -// The receiving video and audio API. -#include "Processing.NDI.Recv.h" - -// Extensions to support PTZ control, etc... -#include "Processing.NDI.Recv.ex.h" - -// The receiver advertiser API. -#include "Processing.NDI.RecvAdvertiser.h" - -// The receiver listener API. -#include "Processing.NDI.RecvListener.h" - -// The sending video API. -#include "Processing.NDI.Send.h" - -// The routing of inputs API. -#include "Processing.NDI.Routing.h" - -// Utility functions. -#include "Processing.NDI.utilities.h" - -// Deprecated structures and functions. -#include "Processing.NDI.deprecated.h" - -// The frame synchronizer. -#include "Processing.NDI.FrameSync.h" - -// Dynamic loading used for OSS libraries. -#include "Processing.NDI.DynamicLoad.h" - -// The C++ implementations. -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS -#include "Processing.NDI.Lib.cplusplus.h" -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.ex.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.ex.h deleted file mode 100644 index fd4dbe8..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.ex.h +++ /dev/null @@ -1,211 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// Has this receiver got PTZ control. Note that it might take a second or two after the connection for this -// value to be set. To avoid the need to poll this function, you can know when the value of this function -// might have changed when the NDILib_recv_capture* call would return NDIlib_frame_type_status_change. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_is_supported(NDIlib_recv_instance_t p_instance); - -// Has this receiver got recording control. Note that it might take a second or two after the connection for -// this value to be set. To avoid the need to poll this function, you can know when the value of this -// function might have changed when the NDILib_recv_capture* call would return NDIlib_frame_type_status_change. -// -// Note on deprecation of this function: -// NDI version 4 includes the native ability to record all NDI streams using an external application that -// is provided with the SDK. This is better in many ways than the internal recording support which only -// ever supported remotely recording systems and NDI|HX. This functionality will be supported in the SDK -// for some time although we are recommending that you use the newer support which is more feature rich and -// supports the recording of all stream types, does not take CPU time to record NDI sources (it does not -// require any type of re-compression since it can just store the data in the file), it will synchronize -// all recorders on a system (and cross systems if NTP clock locking is used). -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -bool NDIlib_recv_recording_is_supported(NDIlib_recv_instance_t p_instance); - -// PTZ Controls. -// Zoom to an absolute value. -// zoom_value = 0.0 (zoomed in) ... 1.0 (zoomed out) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_zoom(NDIlib_recv_instance_t p_instance, const float zoom_value); - -// Zoom at a particular speed. -// zoom_speed = -1.0 (zoom outwards) ... +1.0 (zoom inwards) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_zoom_speed(NDIlib_recv_instance_t p_instance, const float zoom_speed); - -// Set the pan and tilt to an absolute value. -// pan_value = -1.0 (left) ... 0.0 (centered) ... +1.0 (right) -// tilt_value = -1.0 (bottom) ... 0.0 (centered) ... +1.0 (top) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_pan_tilt(NDIlib_recv_instance_t p_instance, const float pan_value, const float tilt_value); - -// Set the pan and tilt direction and speed. -// pan_speed = -1.0 (moving right) ... 0.0 (stopped) ... +1.0 (moving left) -// tilt_speed = -1.0 (down) ... 0.0 (stopped) ... +1.0 (moving up) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_pan_tilt_speed(NDIlib_recv_instance_t p_instance, const float pan_speed, const float tilt_speed); - -// Store the current position, focus, etc... as a preset. -// preset_no = 0 ... 99 -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_store_preset(NDIlib_recv_instance_t p_instance, const int preset_no); - -// Recall a preset, including position, focus, etc... -// preset_no = 0 ... 99 -// speed = 0.0(as slow as possible) ... 1.0(as fast as possible) The speed at which to move to the new preset. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_recall_preset(NDIlib_recv_instance_t p_instance, const int preset_no, const float speed); - -// Put the camera in auto-focus. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_auto_focus(NDIlib_recv_instance_t p_instance); - -// Focus to an absolute value. -// focus_value = 0.0 (focused to infinity) ... 1.0 (focused as close as possible) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_focus(NDIlib_recv_instance_t p_instance, const float focus_value); - -// Focus at a particular speed. -// focus_speed = -1.0 (focus outwards) ... +1.0 (focus inwards) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_focus_speed(NDIlib_recv_instance_t p_instance, const float focus_speed); - -// Put the camera in auto white balance mode. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_white_balance_auto(NDIlib_recv_instance_t p_instance); - -// Put the camera in indoor white balance. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_white_balance_indoor(NDIlib_recv_instance_t p_instance); - -// Put the camera in indoor white balance. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_white_balance_outdoor(NDIlib_recv_instance_t p_instance); - -// Use the current brightness to automatically set the current white balance. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_white_balance_oneshot(NDIlib_recv_instance_t p_instance); - -// Set the manual camera white balance using the R, B values. -// red = 0.0(not red) ... 1.0(very red) -// blue = 0.0(not blue) ... 1.0(very blue) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_white_balance_manual(NDIlib_recv_instance_t p_instance, const float red, const float blue); - -// Put the camera in auto-exposure mode. -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_exposure_auto(NDIlib_recv_instance_t p_instance); - -// Manually set the camera exposure iris. -// exposure_level = 0.0(dark) ... 1.0(light) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_exposure_manual(NDIlib_recv_instance_t p_instance, const float exposure_level); - -// Manually set the camera exposure parameters. -// iris = 0.0(dark) ... 1.0(light) -// gain = 0.0(dark) ... 1.0(light) -// shutter_speed = 0.0(slow) ... 1.0(fast) -PROCESSINGNDILIB_API -bool NDIlib_recv_ptz_exposure_manual_v2( - NDIlib_recv_instance_t p_instance, - const float iris, const float gain, const float shutter_speed -); - -// Recording control. -// This will start recording.If the recorder was already recording then the message is ignored.A filename is -// passed in as a "hint".Since the recorder might already be recording(or might not allow complete -// flexibility over its filename), the filename might or might not be used.If the filename is empty, or not -// present, a name will be chosen automatically. If you do not with to provide a filename hint you can simply -// pass NULL. -// -// See note above on depreciation and why this is, and how to replace this functionality. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -bool NDIlib_recv_recording_start(NDIlib_recv_instance_t p_instance, const char* p_filename_hint); - -// Stop recording. -// -// See note above on depreciation and why this is, and how to replace this functionality. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -bool NDIlib_recv_recording_stop(NDIlib_recv_instance_t p_instance); - -// This will control the audio level for the recording. dB is specified in decibels relative to the reference -// level of the source. Not all recording sources support controlling audio levels.For instance, a digital -// audio device would not be able to avoid clipping on sources already at the wrong level, thus might not -// support this message. -// -// See note above on depreciation and why this is, and how to replace this functionality. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -bool NDIlib_recv_recording_set_audio_level(NDIlib_recv_instance_t p_instance, const float level_dB); - -// This will determine if the source is currently recording. It will return true while recording is in -// progress and false when it is not. Because there is one recorded and multiple people might be connected to -// it, there is a chance that it is recording which was initiated by someone else. -// -// See note above on depreciation and why this is, and how to replace this functionality. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -bool NDIlib_recv_recording_is_recording(NDIlib_recv_instance_t p_instance); - -// Get the current filename for recording. When this is set it will return a non-NULL value which is owned by -// you and freed using NDIlib_recv_free_string. If a file was already being recorded by another client, the -// massage will contain the name of that file. The filename contains a UNC path (when one is available) to -// the recorded file, and can be used to access the file on your local machine for playback. If a UNC path -// is not available, then this will represent the local filename. This will remain valid even after the file -// has stopped being recorded until the next file is started. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const char* NDIlib_recv_recording_get_filename(NDIlib_recv_instance_t p_instance); - -// This will tell you whether there was a recording error and what that string is. When this is set it will -// return a non-NULL value which is owned by you and freed using NDIlib_recv_free_string. When there is no -// error it will return NULL. -// -// See note above on depreciation and why this is, and how to replace this functionality. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const char* NDIlib_recv_recording_get_error(NDIlib_recv_instance_t p_instance); - -// In order to get the duration. -typedef struct NDIlib_recv_recording_time_t -{ - // The number of actual video frames recorded. - int64_t no_frames; - - // The starting time and current largest time of the record, in UTC time, at 100-nanosecond unit - // intervals. This allows you to know the record time irrespective of frame rate. For instance, - // last_time - start_time would give you the recording length in 100-nanosecond intervals. - int64_t start_time, last_time; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_recv_recording_time_t(void); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_recv_recording_time_t; - -// Get the current recording times. -// -// See note above on depreciation and why this is, and how to replace this functionality. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -bool NDIlib_recv_recording_get_times(NDIlib_recv_instance_t p_instance, NDIlib_recv_recording_time_t* p_times); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.h deleted file mode 100644 index c95ee49..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Recv.h +++ /dev/null @@ -1,297 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// Structures and type definitions required by NDI finding. -// The reference to an instance of the receiver. -struct NDIlib_recv_instance_type; -typedef struct NDIlib_recv_instance_type* NDIlib_recv_instance_t; - -typedef enum NDIlib_recv_bandwidth_e { - NDIlib_recv_bandwidth_metadata_only = -10, // Receive metadata. - NDIlib_recv_bandwidth_audio_only = 10, // Receive metadata, audio. - NDIlib_recv_bandwidth_lowest = 0, // Receive metadata, audio, video at a lower bandwidth and resolution. - NDIlib_recv_bandwidth_highest = 100, // Receive metadata, audio, video at full resolution. - - // Make sure this is a 32-bit enumeration. - NDIlib_recv_bandwidth_max = 0x7fffffff -} NDIlib_recv_bandwidth_e; - -typedef enum NDIlib_recv_color_format_e { - // When there is no alpha channel, this mode delivers BGRX. - // When there is an alpha channel, this mode delivers BGRA. - NDIlib_recv_color_format_BGRX_BGRA = 0, - - // When there is no alpha channel, this mode delivers UYVY. - // When there is an alpha channel, this mode delivers BGRA. - NDIlib_recv_color_format_UYVY_BGRA = 1, - - // When there is no alpha channel, this mode delivers BGRX. - // When there is an alpha channel, this mode delivers RGBA. - NDIlib_recv_color_format_RGBX_RGBA = 2, - - // When there is no alpha channel, this mode delivers UYVY. - // When there is an alpha channel, this mode delivers RGBA. - NDIlib_recv_color_format_UYVY_RGBA = 3, - - // This format will try to decode the video using the fastest available color format for the incoming - // video signal. This format follows the following guidelines, although different platforms might - // vary slightly based on their capabilities and specific performance profiles. In general if you want - // the best performance this mode should be used. - // - // When using this format, you should consider than allow_video_fields is true, and individual fields - // will always be delivered. - // - // For most video sources on most platforms, this will follow the following conventions. - // No alpha channel : UYVY - // Alpha channel : UYVA - NDIlib_recv_color_format_fastest = 100, - - // This format will try to provide the video in the format that is the closest to native for the incoming - // codec yielding the highest quality. Specifically, this allows for receiving on 16bpp color from many - // sources. - // - // When using this format, you should consider than allow_video_fields is true, and individual fields - // will always be delivered. - // - // For most video sources on most platforms, this will follow the following conventions - // No alpha channel : P216, or UYVY - // Alpha channel : PA16 or UYVA - NDIlib_recv_color_format_best = 101, - - // Legacy definitions for backwards compatibility. - NDIlib_recv_color_format_e_BGRX_BGRA = NDIlib_recv_color_format_BGRX_BGRA, - NDIlib_recv_color_format_e_UYVY_BGRA = NDIlib_recv_color_format_UYVY_BGRA, - NDIlib_recv_color_format_e_RGBX_RGBA = NDIlib_recv_color_format_RGBX_RGBA, - NDIlib_recv_color_format_e_UYVY_RGBA = NDIlib_recv_color_format_UYVY_RGBA, - -#ifdef _WIN32 - // For Windows we can support flipped images which is unfortunately something that Microsoft decided to - // do back in the old days. - NDIlib_recv_color_format_BGRX_BGRA_flipped = 1000 + NDIlib_recv_color_format_BGRX_BGRA, -#endif - - // Make sure this is a 32-bit enumeration. - NDIlib_recv_color_format_max = 0x7fffffff -} NDIlib_recv_color_format_e; - -// The creation structure that is used when you are creating a receiver. -typedef struct NDIlib_recv_create_v3_t { - // The source that you wish to connect to. - NDIlib_source_t source_to_connect_to; - - // Your preference of color space. See above. - NDIlib_recv_color_format_e color_format; - - // The bandwidth setting that you wish to use for this video source. Bandwidth controlled by changing - // both the compression level and the resolution of the source. A good use for low bandwidth is working - // on WIFI connections. - NDIlib_recv_bandwidth_e bandwidth; - - // When this flag is FALSE, all video that you receive will be progressive. For sources that provide - // fields, this is de-interlaced on the receiving side (because we cannot change what the up-stream - // source was actually rendering. This is provided as a convenience to down-stream sources that do not - // wish to understand fielded video. There is almost no performance impact of using this function. - bool allow_video_fields; - - // The name of the NDI receiver to create. This is a NULL terminated UTF8 string and should be the name - // of receive channel that you have. This is in many ways symmetric with the name of senders, so this - // might be "Channel 1" on your system. If this is NULL then it will use the filename of your application - // indexed with the number of the instance number of this receiver. - const char* p_ndi_recv_name; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_recv_create_v3_t( - const NDIlib_source_t source_to_connect_to_ = NDIlib_source_t(), - NDIlib_recv_color_format_e color_format_ = NDIlib_recv_color_format_UYVY_BGRA, - NDIlib_recv_bandwidth_e bandwidth_ = NDIlib_recv_bandwidth_highest, - bool allow_video_fields_ = true, - const char* p_ndi_name_ = NULL - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS - -} NDIlib_recv_create_v3_t; - - -// This allows you determine the current performance levels of the receiving to be able to detect whether -// frames have been dropped. -typedef struct NDIlib_recv_performance_t { - // The number of video frames. - int64_t video_frames; - - // The number of audio frames. - int64_t audio_frames; - - // The number of metadata frames. - int64_t metadata_frames; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_recv_performance_t(void); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_recv_performance_t; - -// Get the current queue depths. -typedef struct NDIlib_recv_queue_t { - // The number of video frames. - int video_frames; - - // The number of audio frames. - int audio_frames; - - // The number of metadata frames. - int metadata_frames; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_recv_queue_t(void); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_recv_queue_t; - -//************************************************************************************************************************** -// Create a new receiver instance. This will return NULL if it fails. If you create this with the default -// settings (NULL) then it will automatically determine a receiver name. -PROCESSINGNDILIB_API -NDIlib_recv_instance_t NDIlib_recv_create_v3(const NDIlib_recv_create_v3_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// This will destroy an existing receiver instance. -PROCESSINGNDILIB_API -void NDIlib_recv_destroy(NDIlib_recv_instance_t p_instance); - -// This function allows you to change the connection to another video source, you can also disconnect it by -// specifying a NULL here. This allows you to preserve a receiver without needing to. -PROCESSINGNDILIB_API -void NDIlib_recv_connect(NDIlib_recv_instance_t p_instance, const NDIlib_source_t* p_src NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// This will allow you to receive video, audio and metadata frames. Any of the buffers can be NULL, in which -// case data of that type will not be captured in this call. This call can be called simultaneously on -// separate threads, so it is entirely possible to receive audio, video, metadata all on separate threads. -// This function will return NDIlib_frame_type_none if no data is received within the specified timeout and -// NDIlib_frame_type_error if the connection is lost. Buffers captured with this must be freed with the -// appropriate free function below. -PROCESSINGNDILIB_API -NDIlib_frame_type_e NDIlib_recv_capture_v2( - NDIlib_recv_instance_t p_instance, // The library instance. - NDIlib_video_frame_v2_t* p_video_data, // The video data received (can be NULL). - NDIlib_audio_frame_v2_t* p_audio_data, // The audio data received (can be NULL). - NDIlib_metadata_frame_t* p_metadata, // The metadata received (can be NULL). - uint32_t timeout_in_ms // The amount of time in milliseconds to wait for data. -); - -// This will allow you to receive video, audio and metadata frames. Any of the buffers can be NULL, in which -// case data of that type will not be captured in this call. This call can be called simultaneously on -// separate threads, so it is entirely possible to receive audio, video, metadata all on separate threads. -// This function will return NDIlib_frame_type_none if no data is received within the specified timeout and -// NDIlib_frame_type_error if the connection is lost. Buffers captured with this must be freed with the -// appropriate free function below. -PROCESSINGNDILIB_API -NDIlib_frame_type_e NDIlib_recv_capture_v3( - NDIlib_recv_instance_t p_instance, // The library instance. - NDIlib_video_frame_v2_t* p_video_data, // The video data received (can be NULL). - NDIlib_audio_frame_v3_t* p_audio_data, // The audio data received (can be NULL). - NDIlib_metadata_frame_t* p_metadata, // The metadata received (can be NULL). - uint32_t timeout_in_ms // The amount of time in milliseconds to wait for data. -); - -// Free the buffers returned by capture for video. -PROCESSINGNDILIB_API -void NDIlib_recv_free_video_v2(NDIlib_recv_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - -// Free the buffers returned by capture for audio. -PROCESSINGNDILIB_API -void NDIlib_recv_free_audio_v2(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_v2_t* p_audio_data); - -// Free the buffers returned by capture for audio. -PROCESSINGNDILIB_API -void NDIlib_recv_free_audio_v3(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_v3_t* p_audio_data); - -// Free the buffers returned by capture for metadata. -PROCESSINGNDILIB_API -void NDIlib_recv_free_metadata(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - -// This will free a string that was allocated and returned by NDIlib_recv (for instance the -// NDIlib_recv_get_web_control) function. -PROCESSINGNDILIB_API -void NDIlib_recv_free_string(NDIlib_recv_instance_t p_instance, const char* p_string); - -// This function will send a meta message to the source that we are connected too. This returns FALSE if we -// are not currently connected to anything. -PROCESSINGNDILIB_API -bool NDIlib_recv_send_metadata(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - -// Set the up-stream tally notifications. This returns FALSE if we are not currently connected to anything. -// That said, the moment that we do connect to something it will automatically be sent the tally state. -PROCESSINGNDILIB_API -bool NDIlib_recv_set_tally(NDIlib_recv_instance_t p_instance, const NDIlib_tally_t* p_tally); - -// Get the current performance structures. This can be used to determine if you have been calling -// NDIlib_recv_capture fast enough, or if your processing of data is not keeping up with real-time. The total -// structure will give you the total frame counts received, the dropped structure will tell you how many -// frames have been dropped. Either of these could be NULL. -PROCESSINGNDILIB_API -void NDIlib_recv_get_performance( - NDIlib_recv_instance_t p_instance, - NDIlib_recv_performance_t* p_total, NDIlib_recv_performance_t* p_dropped -); - -// This will allow you to determine the current queue depth for all of the frame sources at any time. -PROCESSINGNDILIB_API -void NDIlib_recv_get_queue(NDIlib_recv_instance_t p_instance, NDIlib_recv_queue_t* p_total); - -// Connection based metadata is data that is sent automatically each time a new connection is received. You -// queue all of these up and they are sent on each connection. To reset them you need to clear them all and -// set them up again. -PROCESSINGNDILIB_API -void NDIlib_recv_clear_connection_metadata(NDIlib_recv_instance_t p_instance); - -// Add a connection metadata string to the list of what is sent on each new connection. If someone is already -// connected then this string will be sent to them immediately. -PROCESSINGNDILIB_API -void NDIlib_recv_add_connection_metadata(NDIlib_recv_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - -// Is this receiver currently connected to a source on the other end, or has the source not yet been found or -// is no longer online. This will normally return 0 or 1. -PROCESSINGNDILIB_API -int NDIlib_recv_get_no_connections(NDIlib_recv_instance_t p_instance); - -// Get the URL that might be used for configuration of this input. Note that it might take a second or two -// after the connection for this value to be set. This function will return NULL if there is no web control -// user interface. You should call NDIlib_recv_free_string to free the string that is returned by this -// function. The returned value will be a fully formed URL, for instance "http://10.28.1.192/configuration/". -// To avoid the need to poll this function, you can know when the value of this function might have changed -// when the NDILib_recv_capture* call would return NDIlib_frame_type_status_change. -PROCESSINGNDILIB_API -const char* NDIlib_recv_get_web_control(NDIlib_recv_instance_t p_instance); - -// Retrieve the name of the current NDI source that the NDI receiver is connected to. This will return false -// if there has been no change in the source information since the last call. If p_source_name is NULL, then -// the name of the current NDI source will not be returned. If p_source_name is not NULL, then the name of -// the current source will be returned, however, the returned value can be NULL if the NDI receiver is -// currently not connected to a source. If the returned pointer is not NULL, then you should call -// NDIlib_recv_free_string to free the string that is returned by this function. A timeout value can be given -// to wait until a change occurs. If waiting is not desired, then use a timeout of 0. -PROCESSINGNDILIB_API -bool NDIlib_recv_get_source_name(NDIlib_recv_instance_t p_instance, const char** p_source_name, uint32_t timeout_in_ms NDILIB_CPP_DEFAULT_VALUE(0)); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvAdvertiser.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvAdvertiser.h deleted file mode 100644 index 8c2794e..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvAdvertiser.h +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2024 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// The type instance for a receiver advertiser. -struct NDIlib_recv_advertiser_instance_type; -typedef struct NDIlib_recv_advertiser_instance_type* NDIlib_recv_advertiser_instance_t; - -typedef struct NDIlib_recv_advertiser_create_t { - // The URL address of the NDI Discovery Server to connect to. If NULL, then the default NDI discovery - // server will be used. If there is no discovery server available, then the receiver advertiser will not - // be able to be instantiated and the create function will return NULL. The format of this field is - // expected to be the hostname or IP address, optionally followed by a colon and a port number. If the - // port number is not specified, then port 5959 will be used. For example, - // 127.0.0.1:5959 - // or - // 127.0.0.1 - // or - // hostname:5959 - // This field can also specify multiple addresses separated by commas for redundancy support. - const char* p_url_address; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_recv_advertiser_create_t( - const char* p_url_address = NULL - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_recv_advertiser_create_t; - -// Create an instance of the receiver advertiser. This will return NULL if it fails to create the advertiser. -PROCESSINGNDILIB_API -NDIlib_recv_advertiser_instance_t NDIlib_recv_advertiser_create(const NDIlib_recv_advertiser_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// Destroy an instance of the receiver advertiser. -PROCESSINGNDILIB_API -void NDIlib_recv_advertiser_destroy(NDIlib_recv_advertiser_instance_t p_instance); - -// Add the receiver to the list of receivers that are being advertised. Returns false if the receiver has -// been previously registered. -PROCESSINGNDILIB_API -bool NDIlib_recv_advertiser_add_receiver( - NDIlib_recv_advertiser_instance_t p_instance, - NDIlib_recv_instance_t p_receiver, - bool allow_controlling, bool allow_monitoring, - const char* p_input_group_name NDILIB_CPP_DEFAULT_VALUE(NULL) -); - -// Remove the receiver from the list of receivers that are being advertised. Returns false if the receiver -// was not previously registered. -PROCESSINGNDILIB_API -bool NDIlib_recv_advertiser_del_receiver( - NDIlib_recv_advertiser_instance_t p_instance, - NDIlib_recv_instance_t p_receiver -); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvListener.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvListener.h deleted file mode 100644 index c7b858a..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.RecvListener.h +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2024 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// The type instance for a receiver listener. -struct NDIlib_recv_listener_instance_type; -typedef struct NDIlib_recv_listener_instance_type* NDIlib_recv_listener_instance_t; - -typedef struct NDIlib_recv_listener_create_t { - // The URL address of the NDI Discovery Server to connect to. If NULL, then the default NDI discovery - // server will be used. If there is no discovery server available, then the receiver listener will not - // be able to be instantiated and the create function will return NULL. The format of this field is - // expected to be the hostname or IP address, optionally followed by a colon and a port number. If the - // port number is not specified, then port 5959 will be used. For example, - // 127.0.0.1:5959 - // or - // 127.0.0.1 - // or - // hostname:5959 - // If this field is a comma-separated list, then only the first address will be used. - const char* p_url_address; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_recv_listener_create_t( - const char* p_url_address = NULL - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_recv_listener_create_t; - -// Create an instance of the receiver listener. This will return NULL if it fails to create the listener. -PROCESSINGNDILIB_API -NDIlib_recv_listener_instance_t NDIlib_recv_listener_create(const NDIlib_recv_listener_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// Destroy an instance of the receiver listener. -PROCESSINGNDILIB_API -void NDIlib_recv_listener_destroy(NDIlib_recv_listener_instance_t p_instance); - -// Returns true if the receiver listener is actively connected to the configured NDI Discovery Server. -PROCESSINGNDILIB_API -bool NDIlib_recv_listener_is_connected(NDIlib_recv_listener_instance_t p_instance); - -// Retrieve the URL address of the NDI Discovery Server that the receiver listener is connected to. This can -// return NULL if the instance pointer is invalid. -PROCESSINGNDILIB_API -const char* NDIlib_recv_listener_get_server_url(NDIlib_recv_listener_instance_t p_instance); - -// The types of streams that a receiver can receive from the source it's connected to. -typedef enum NDIlib_receiver_type_e { - NDIlib_receiver_type_none = 0, - NDIlib_receiver_type_metadata = 1, - NDIlib_receiver_type_video = 2, - NDIlib_receiver_type_audio = 3, - - // Make sure this is a 32-bit enumeration. - NDIlib_receiver_type_max = 0x7fffffff -} NDIlib_receiver_type_e; - -// The types of commands that a receiver can process. -typedef enum NDIlib_receiver_command_e { - NDIlib_receiver_command_none = 0, - - // A receiver can be told to connect to a specific source. - NDIlib_receiver_command_connect = 1, - - // Make sure this is a 32-bit enumeration. - NDIlib_receiver_command_max = 0x7fffffff -} NDIlib_receiver_command_e; - -// Describes a receiver that has been discovered. -typedef struct NDIlib_receiver_t { - // The unique identifier for the receiver on the network. - const char* p_uuid; - - // The human-readable name of the receiver. - const char* p_name; - - // The unique identifier for the input group that the receiver belongs to. - const char* p_input_uuid; - - // The human-readable name of the input group that the receiver belongs to. - const char* p_input_name; - - // The known IP address of the receiver. - const char* p_address; - - // An array of streams that the receiver is set to receive. The last entry in this list will be - // NDIlib_receiver_type_none. - NDIlib_receiver_type_e* p_streams; - - // How many elements are in the p_streams array, excluding the NDIlib_receiver_type_none entry. - uint32_t num_streams; - - // An array of commands that the receiver can process. The last entry in this list will be - // NDIlib_receiver_command_none. - NDIlib_receiver_command_e* p_commands; - - // How many elements are in the p_commands array, excluding the NDIlib_receiver_command_none entry. - uint32_t num_commands; - - // Are we currently subscribed for receive events? - bool events_subscribed; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_receiver_t(void); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_receiver_t; - -// Retrieves the current list of advertised receivers. The memory for the returned structure is only valid -// until the next call or when destroy is called. For a given NDIlib_recv_listener_instance_t, do not call -// NDIlib_recv_listener_get_receivers asynchronously. -PROCESSINGNDILIB_API -const NDIlib_receiver_t* NDIlib_recv_listener_get_receivers(NDIlib_recv_listener_instance_t p_instance, uint32_t* p_num_receivers); - -// This will allow you to wait until the number of online receivers has changed. -PROCESSINGNDILIB_API -bool NDIlib_recv_listener_wait_for_receivers(NDIlib_recv_listener_instance_t p_instance, uint32_t timeout_in_ms); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Routing.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Routing.h deleted file mode 100644 index 0c63200..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Routing.h +++ /dev/null @@ -1,75 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// Structures and type definitions required by NDI routing. -// The reference to an instance of the router. -struct NDIlib_routing_instance_type; -typedef struct NDIlib_routing_instance_type* NDIlib_routing_instance_t; - -// The creation structure that is used when you are creating a sender. -typedef struct NDIlib_routing_create_t -{ - // The name of the NDI source to create. This is a NULL terminated UTF8 string. - const char* p_ndi_name; - - // What groups should this source be part of. - const char* p_groups; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_routing_create_t(const char* p_ndi_name_ = NULL, const char* p_groups_ = NULL); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_routing_create_t; - -// Create an NDI routing source. -PROCESSINGNDILIB_API -NDIlib_routing_instance_t NDIlib_routing_create(const NDIlib_routing_create_t* p_create_settings); - -// Destroy and NDI routing source. -PROCESSINGNDILIB_API -void NDIlib_routing_destroy(NDIlib_routing_instance_t p_instance); - -// Change the routing of this source to another destination. -PROCESSINGNDILIB_API -bool NDIlib_routing_change(NDIlib_routing_instance_t p_instance, const NDIlib_source_t* p_source); - -// Change the routing of this source to another destination. -PROCESSINGNDILIB_API -bool NDIlib_routing_clear(NDIlib_routing_instance_t p_instance); - -// Get the current number of receivers connected to this source. This can be used to avoid even rendering -// when nothing is connected to the video source. which can significantly improve the efficiency if you want -// to make a lot of sources available on the network. If you specify a timeout that is not 0 then it will -// wait until there are connections for this amount of time. -PROCESSINGNDILIB_API -int NDIlib_routing_get_no_connections(NDIlib_routing_instance_t p_instance, uint32_t timeout_in_ms); - -// Retrieve the source information for the given router instance. This pointer is valid until -// NDIlib_routing_destroy is called. -PROCESSINGNDILIB_API -const NDIlib_source_t* NDIlib_routing_get_source_name(NDIlib_routing_instance_t p_instance); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Send.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Send.h deleted file mode 100644 index b9ef850..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.Send.h +++ /dev/null @@ -1,145 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// Structures and type definitions required by NDI sending. -// The reference to an instance of the sender. -struct NDIlib_send_instance_type; -typedef struct NDIlib_send_instance_type* NDIlib_send_instance_t; - -// The creation structure that is used when you are creating a sender. -typedef struct NDIlib_send_create_t { - // The name of the NDI source to create. This is a NULL terminated UTF8 string. - const char* p_ndi_name; - - // What groups should this source be part of. NULL means default. - const char* p_groups; - - // Do you want audio and video to "clock" themselves. When they are clocked then by adding video frames, - // they will be rate limited to match the current frame rate that you are submitting at. The same is true - // for audio. In general if you are submitting video and audio off a single thread then you should only - // clock one of them (video is probably the better of the two to clock off). If you are submitting audio - // and video of separate threads then having both clocked can be useful. - bool clock_video, clock_audio; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_send_create_t( - const char* p_ndi_name_ = NULL, - const char* p_groups_ = NULL, - bool clock_video_ = true, bool clock_audio_ = true - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_send_create_t; - -// Create a new sender instance. This will return NULL if it fails. If you specify leave p_create_settings -// null then the sender will be created with default settings. -PROCESSINGNDILIB_API -NDIlib_send_instance_t NDIlib_send_create(const NDIlib_send_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// This will destroy an existing finder instance. -PROCESSINGNDILIB_API -void NDIlib_send_destroy(NDIlib_send_instance_t p_instance); - -// This will add a video frame. -PROCESSINGNDILIB_API -void NDIlib_send_send_video_v2(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - -// This will add a video frame and will return immediately, having scheduled the frame to be displayed. All -// processing and sending of the video will occur asynchronously. The memory accessed by NDIlib_video_frame_t -// cannot be freed or re-used by the caller until a synchronizing event has occurred. In general the API is -// better able to take advantage of asynchronous processing than you might be able to by simple having a -// separate thread to submit frames. -// -// This call is particularly beneficial when processing BGRA video since it allows any color conversion, -// compression and network sending to all be done on separate threads from your main rendering thread. -// -// Synchronizing events are : -// - a call to NDIlib_send_send_video -// - a call to NDIlib_send_send_video_async with another frame to be sent -// - a call to NDIlib_send_send_video with p_video_data=NULL -// - a call to NDIlib_send_destroy -PROCESSINGNDILIB_API -void NDIlib_send_send_video_async_v2(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_v2_t* p_video_data); - -// This will add an audio frame. -PROCESSINGNDILIB_API -void NDIlib_send_send_audio_v2(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_v2_t* p_audio_data); - -// This will add an audio frame. -PROCESSINGNDILIB_API -void NDIlib_send_send_audio_v3(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_v3_t* p_audio_data); - -// This will add a metadata frame. -PROCESSINGNDILIB_API -void NDIlib_send_send_metadata(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - -// This allows you to receive metadata from the other end of the connection. -PROCESSINGNDILIB_API -NDIlib_frame_type_e NDIlib_send_capture( - NDIlib_send_instance_t p_instance, // The instance data. - NDIlib_metadata_frame_t* p_metadata, // The metadata received (can be NULL). - uint32_t timeout_in_ms // The amount of time in milliseconds to wait for data. -); - -// Free the buffers returned by capture for metadata. -PROCESSINGNDILIB_API -void NDIlib_send_free_metadata(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - -// Determine the current tally sate. If you specify a timeout then it will wait until it has changed, -// otherwise it will simply poll it and return the current tally immediately. The return value is whether -// anything has actually change (true) or whether it timed out (false) -PROCESSINGNDILIB_API -bool NDIlib_send_get_tally(NDIlib_send_instance_t p_instance, NDIlib_tally_t* p_tally, uint32_t timeout_in_ms); - -// Get the current number of receivers connected to this source. This can be used to avoid even rendering -// when nothing is connected to the video source. which can significantly improve the efficiency if you want -// to make a lot of sources available on the network. If you specify a timeout that is not 0 then it will -// wait until there are connections for this amount of time. -PROCESSINGNDILIB_API -int NDIlib_send_get_no_connections(NDIlib_send_instance_t p_instance, uint32_t timeout_in_ms); - -// Connection based metadata is data that is sent automatically each time a new connection is received. You -// queue all of these up and they are sent on each connection. To reset them you need to clear them all and -// set them up again. -PROCESSINGNDILIB_API -void NDIlib_send_clear_connection_metadata(NDIlib_send_instance_t p_instance); - -// Add a connection metadata string to the list of what is sent on each new connection. If someone is already -// connected then this string will be sent to them immediately. -PROCESSINGNDILIB_API -void NDIlib_send_add_connection_metadata(NDIlib_send_instance_t p_instance, const NDIlib_metadata_frame_t* p_metadata); - -// This will assign a new fail-over source for this video source. What this means is that if this video -// source was to fail any receivers would automatically switch over to use this source, unless this source -// then came back online. You can specify NULL to clear the source. -PROCESSINGNDILIB_API -void NDIlib_send_set_failover(NDIlib_send_instance_t p_instance, const NDIlib_source_t* p_failover_source); - -// Retrieve the source information for the given sender instance. This pointer is valid until NDIlib_send_destroy is called. -PROCESSINGNDILIB_API -const NDIlib_source_t* NDIlib_send_get_source_name(NDIlib_send_instance_t p_instance); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.compat.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.compat.h deleted file mode 100644 index ff44499..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.compat.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -#ifndef __cplusplus -#include -#endif - -#include - -#ifndef INFINITE -//#define INFINITE INFINITE -static const uint32_t INFINITE = 0xFFFFFFFF; -#endif diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.deprecated.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.deprecated.h deleted file mode 100644 index 4ad2137..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.deprecated.h +++ /dev/null @@ -1,230 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// This describes a video frame -PROCESSINGNDILIB_DEPRECATED -typedef struct NDIlib_video_frame_t { - // The resolution of this frame. - int xres, yres; - - // What FourCC this is with. This can be two values. - NDIlib_FourCC_video_type_e FourCC; - - // What is the frame rate of this frame. - // For instance NTSC is 30000,1001 = 30000/1001 = 29.97 fps - int frame_rate_N, frame_rate_D; - - // What is the picture aspect ratio of this frame. - // For instance 16.0/9.0 = 1.778 is 16:9 video. If this is zero, then square pixels are assumed (xres/yres). - float picture_aspect_ratio; - - // Is this a fielded frame, or is it progressive. - NDIlib_frame_format_type_e frame_format_type; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The video data itself. - uint8_t* p_data; - - // The inter-line stride of the video data, in bytes. - int line_stride_in_bytes; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_video_frame_t( - int xres_ = 0, int yres_ = 0, - NDIlib_FourCC_video_type_e FourCC_ = NDIlib_FourCC_type_UYVY, - int frame_rate_N_ = 30000, int frame_rate_D_ = 1001, - float picture_aspect_ratio_ = 0.0f, - NDIlib_frame_format_type_e frame_format_type_ = NDIlib_frame_format_type_progressive, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - uint8_t* p_data_ = NULL, int line_stride_in_bytes_ = 0 - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_video_frame_t; - -// This describes an audio frame -PROCESSINGNDILIB_DEPRECATED -typedef struct NDIlib_audio_frame_t { - // The sample-rate of this buffer. - int sample_rate; - - // The number of audio channels. - int no_channels; - - // The number of audio samples per channel. - int no_samples; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The audio data. - float* p_data; - - // The inter channel stride of the audio channels, in bytes. - int channel_stride_in_bytes; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_audio_frame_t( - int sample_rate_ = 48000, int no_channels_ = 2, int no_samples_ = 0, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - float* p_data_ = NULL, int channel_stride_in_bytes_ = 0 - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_audio_frame_t; - -// For legacy reasons I called this the wrong thing. For backwards compatibility. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -NDIlib_find_instance_t NDIlib_find_create2(const NDIlib_find_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -NDIlib_find_instance_t NDIlib_find_create(const NDIlib_find_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// DEPRECATED. This function is basically exactly the following and was confusing to use. -// if ((!timeout_in_ms) || (NDIlib_find_wait_for_sources(timeout_in_ms))) -// return NDIlib_find_get_current_sources(p_instance, p_no_sources); -// return NULL; -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -const NDIlib_source_t* NDIlib_find_get_sources(NDIlib_find_instance_t p_instance, uint32_t* p_no_sources, uint32_t timeout_in_ms); - -// The creation structure that is used when you are creating a receiver. -PROCESSINGNDILIB_DEPRECATED -typedef struct NDIlib_recv_create_t { - // The source that you wish to connect to. - NDIlib_source_t source_to_connect_to; - - // Your preference of color space. See above. - NDIlib_recv_color_format_e color_format; - - // The bandwidth setting that you wish to use for this video source. Bandwidth - // controlled by changing both the compression level and the resolution of the source. - // A good use for low bandwidth is working on WIFI connections. - NDIlib_recv_bandwidth_e bandwidth; - - // When this flag is FALSE, all video that you receive will be progressive. For sources that provide - // fields, this is de-interlaced on the receiving side (because we cannot change what the up-stream - // source was actually rendering. This is provided as a convenience to down-stream sources that do not - // wish to understand fielded video. There is almost no performance impact of using this function. - bool allow_video_fields; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_recv_create_t( - const NDIlib_source_t source_to_connect_to_ = NDIlib_source_t(), - NDIlib_recv_color_format_e color_format_ = NDIlib_recv_color_format_UYVY_BGRA, - NDIlib_recv_bandwidth_e bandwidth_ = NDIlib_recv_bandwidth_highest, - bool allow_video_fields_ = true - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_recv_create_t; - -// This function is deprecated, please use NDIlib_recv_create_v3 if you can. Using this function will -// continue to work, and be supported for backwards compatibility. If the input parameter is NULL it will be -// created with default settings and an automatically determined receiver name. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -NDIlib_recv_instance_t NDIlib_recv_create_v2(const NDIlib_recv_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// For legacy reasons I called this the wrong thing. For backwards compatibility. If the input parameter is -// NULL it will be created with default settings and an automatically determined receiver name. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -NDIlib_recv_instance_t NDIlib_recv_create2(const NDIlib_recv_create_t* p_create_settings NDILIB_CPP_DEFAULT_VALUE(NULL)); - -// This function is deprecated, please use NDIlib_recv_create_v3 if you can. Using this function will -// continue to work, and be supported for backwards compatibility. This version sets bandwidth to highest and -// allow fields to true. If the input parameter is NULL it will be created with default settings and an -// automatically determined receiver name. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -NDIlib_recv_instance_t NDIlib_recv_create(const NDIlib_recv_create_t* p_create_settings); - -// This will allow you to receive video, audio and metadata frames. Any of the buffers can be NULL, in which -// case data of that type will not be captured in this call. This call can be called simultaneously on -// separate threads, so it is entirely possible to receive audio, video, metadata all on separate threads. -// This function will return NDIlib_frame_type_none if no data is received within the specified timeout and -// NDIlib_frame_type_error if the connection is lost. Buffers captured with this must be freed with the -// appropriate free function below. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -NDIlib_frame_type_e NDIlib_recv_capture( - NDIlib_recv_instance_t p_instance, // The library instance. - NDIlib_video_frame_t* p_video_data, // The video data received (can be NULL). - NDIlib_audio_frame_t* p_audio_data, // The audio data received (can be NULL). - NDIlib_metadata_frame_t* p_metadata, // The metadata received (can be NULL). - uint32_t timeout_in_ms // The amount of time in milliseconds to wait for data. -); - -// Free the buffers returned by capture for video. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_recv_free_video(NDIlib_recv_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - -// Free the buffers returned by capture for audio. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_recv_free_audio(NDIlib_recv_instance_t p_instance, const NDIlib_audio_frame_t* p_audio_data); - -// This will add a video frame. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_send_send_video(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - -// This will add a video frame and will return immediately, having scheduled the frame to be displayed. All -// processing and sending of the video will occur asynchronously. The memory accessed by NDIlib_video_frame_t -// cannot be freed or re-used by the caller until a synchronizing event has occurred. In general the API is -// better able to take advantage of asynchronous processing than you might be able to by simple having a -// separate thread to submit frames. -// -// This call is particularly beneficial when processing BGRA video since it allows any color conversion, -// compression and network sending to all be done on separate threads from your main rendering thread. -// -// Synchronizing events are : -// - a call to NDIlib_send_send_video -// - a call to NDIlib_send_send_video_async with another frame to be sent -// - a call to NDIlib_send_send_video with p_video_data=NULL -// - a call to NDIlib_send_destroy -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_send_send_video_async(NDIlib_send_instance_t p_instance, const NDIlib_video_frame_t* p_video_data); - -// This will add an audio frame -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_send_send_audio(NDIlib_send_instance_t p_instance, const NDIlib_audio_frame_t* p_audio_data); - -// Convert an planar floating point audio buffer into a interleaved short audio buffer. -// IMPORTANT : You must allocate the space for the samples in the destination to allow for your own memory management. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_util_audio_to_interleaved_16s(const NDIlib_audio_frame_t* p_src, NDIlib_audio_frame_interleaved_16s_t* p_dst); - -// Convert an interleaved short audio buffer audio buffer into a planar floating point one. -// IMPORTANT : You must allocate the space for the samples in the destination to allow for your own memory management. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_util_audio_from_interleaved_16s(const NDIlib_audio_frame_interleaved_16s_t* p_src, NDIlib_audio_frame_t* p_dst); - -// Convert an planar floating point audio buffer into a interleaved floating point audio buffer. -// IMPORTANT : You must allocate the space for the samples in the destination to allow for your own memory management. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_util_audio_to_interleaved_32f(const NDIlib_audio_frame_t* p_src, NDIlib_audio_frame_interleaved_32f_t* p_dst); - -// Convert an interleaved floating point audio buffer into a planar floating point one. -// IMPORTANT : You must allocate the space for the samples in the destination to allow for your own memory management. -PROCESSINGNDILIB_API PROCESSINGNDILIB_DEPRECATED -void NDIlib_util_audio_from_interleaved_32f(const NDIlib_audio_frame_interleaved_32f_t* p_src, NDIlib_audio_frame_t* p_dst); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.structs.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.structs.h deleted file mode 100644 index 5a96053..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.structs.h +++ /dev/null @@ -1,387 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -#ifndef NDI_LIB_FOURCC -#define NDI_LIB_FOURCC(ch0, ch1, ch2, ch3) \ - ((uint32_t)(uint8_t)(ch0) | ((uint32_t)(uint8_t)(ch1) << 8) | ((uint32_t)(uint8_t)(ch2) << 16) | ((uint32_t)(uint8_t)(ch3) << 24)) -#endif - -// An enumeration to specify the type of a packet returned by the functions. -typedef enum NDIlib_frame_type_e { - // What frame type is this? - NDIlib_frame_type_none = 0, - NDIlib_frame_type_video = 1, - NDIlib_frame_type_audio = 2, - NDIlib_frame_type_metadata = 3, - NDIlib_frame_type_error = 4, - - // This indicates that the settings on this input have changed. This value will be returned from one of - // the NDIlib_recv_capture functions when the device is known to have new settings, for instance the web - // URL has changed or the device is now known to be a PTZ camera. - NDIlib_frame_type_status_change = 100, - - // This indicates that the source has changed. This value will be returned from one of the - // NDIlib_recv_capture functions when the source that the receiver is connected to has changed. - NDIlib_frame_type_source_change = 101, - - // Make sure this is a 32-bit enumeration. - NDIlib_frame_type_max = 0x7fffffff -} NDIlib_frame_type_e; - -// FourCC values for video frames. -typedef enum NDIlib_FourCC_video_type_e { - // YCbCr color space using 4:2:2. - NDIlib_FourCC_video_type_UYVY = NDI_LIB_FOURCC('U', 'Y', 'V', 'Y'), - NDIlib_FourCC_type_UYVY = NDIlib_FourCC_video_type_UYVY, - - // YCbCr + Alpha color space, using 4:2:2:4. - // In memory there are two separate planes. The first is a regular - // UYVY 4:2:2 buffer. Immediately following this in memory is a - // alpha channel buffer. - NDIlib_FourCC_video_type_UYVA = NDI_LIB_FOURCC('U', 'Y', 'V', 'A'), - NDIlib_FourCC_type_UYVA = NDIlib_FourCC_video_type_UYVA, - - // YCbCr color space using 4:2:2 in 16bpp. - // In memory this is a semi-planar format. This is identical to a 16bpp version of the NV16 format. - // The first buffer is a 16bpp luminance buffer. - // Immediately after this is an interleaved buffer of 16bpp Cb, Cr pairs. - NDIlib_FourCC_video_type_P216 = NDI_LIB_FOURCC('P', '2', '1', '6'), - NDIlib_FourCC_type_P216 = NDIlib_FourCC_video_type_P216, - - // YCbCr color space with an alpha channel, using 4:2:2:4. - // In memory this is a semi-planar format. - // The first buffer is a 16bpp luminance buffer. - // Immediately after this is an interleaved buffer of 16bpp Cb, Cr pairs. - // Immediately after is a single buffer of 16bpp alpha channel. - NDIlib_FourCC_video_type_PA16 = NDI_LIB_FOURCC('P', 'A', '1', '6'), - NDIlib_FourCC_type_PA16 = NDIlib_FourCC_video_type_PA16, - - // Planar 8bit 4:2:0 video format. - // The first buffer is an 8bpp luminance buffer. - // Immediately following this is a 8bpp Cr buffer. - // Immediately following this is a 8bpp Cb buffer. - NDIlib_FourCC_video_type_YV12 = NDI_LIB_FOURCC('Y', 'V', '1', '2'), - NDIlib_FourCC_type_YV12 = NDIlib_FourCC_video_type_YV12, - - // The first buffer is an 8bpp luminance buffer. - // Immediately following this is a 8bpp Cb buffer. - // Immediately following this is a 8bpp Cr buffer. - NDIlib_FourCC_video_type_I420 = NDI_LIB_FOURCC('I', '4', '2', '0'), - NDIlib_FourCC_type_I420 = NDIlib_FourCC_video_type_I420, - - // Planar 8bit 4:2:0 video format. - // The first buffer is an 8bpp luminance buffer. - // Immediately following this is in interleaved buffer of 8bpp Cb, Cr pairs - NDIlib_FourCC_video_type_NV12 = NDI_LIB_FOURCC('N', 'V', '1', '2'), - NDIlib_FourCC_type_NV12 = NDIlib_FourCC_video_type_NV12, - - // Planar 8bit, 4:4:4:4 video format. - // Color ordering in memory is blue, green, red, alpha - NDIlib_FourCC_video_type_BGRA = NDI_LIB_FOURCC('B', 'G', 'R', 'A'), - NDIlib_FourCC_type_BGRA = NDIlib_FourCC_video_type_BGRA, - - // Planar 8bit, 4:4:4 video format, packed into 32bit pixels. - // Color ordering in memory is blue, green, red, 255 - NDIlib_FourCC_video_type_BGRX = NDI_LIB_FOURCC('B', 'G', 'R', 'X'), - NDIlib_FourCC_type_BGRX = NDIlib_FourCC_video_type_BGRX, - - // Planar 8bit, 4:4:4:4 video format. - // Color ordering in memory is red, green, blue, alpha - NDIlib_FourCC_video_type_RGBA = NDI_LIB_FOURCC('R', 'G', 'B', 'A'), - NDIlib_FourCC_type_RGBA = NDIlib_FourCC_video_type_RGBA, - - // Planar 8bit, 4:4:4 video format, packed into 32bit pixels. - // Color ordering in memory is red, green, blue, 255. - NDIlib_FourCC_video_type_RGBX = NDI_LIB_FOURCC('R', 'G', 'B', 'X'), - NDIlib_FourCC_type_RGBX = NDIlib_FourCC_video_type_RGBX, - - // Make sure this is a 32-bit enumeration. - NDIlib_FourCC_video_type_max = 0x7fffffff -} NDIlib_FourCC_video_type_e; - -// Really for backwards compatibility. -PROCESSINGNDILIB_DEPRECATED -typedef NDIlib_FourCC_video_type_e NDIlib_FourCC_type_e; - -// FourCC values for audio frames. -typedef enum NDIlib_FourCC_audio_type_e { - // Planar 32-bit floating point. Be sure to specify the channel stride. - NDIlib_FourCC_audio_type_FLTP = NDI_LIB_FOURCC('F', 'L', 'T', 'p'), - NDIlib_FourCC_type_FLTP = NDIlib_FourCC_audio_type_FLTP, - - // Make sure this is a 32-bit enumeration. - NDIlib_FourCC_audio_type_max = 0x7fffffff -} NDIlib_FourCC_audio_type_e; - -typedef enum NDIlib_frame_format_type_e { - // A progressive frame. - NDIlib_frame_format_type_progressive = 1, - - // A fielded frame with the field 0 being on the even lines and field 1 being - // on the odd lines. - NDIlib_frame_format_type_interleaved = 0, - - // Individual fields. - NDIlib_frame_format_type_field_0 = 2, - NDIlib_frame_format_type_field_1 = 3, - - // Make sure this is a 32-bit enumeration. - NDIlib_frame_format_type_max = 0x7fffffff -} NDIlib_frame_format_type_e; - -// When you specify this as a timecode, the timecode will be synthesized for you. This may be used when -// sending video, audio or metadata. If you never specify a timecode at all, asking for each to be -// synthesized, then this will use the current system time as the starting timecode and then generate -// synthetic ones, keeping your streams exactly in sync as long as the frames you are sending do not deviate -// from the system time in any meaningful way. In practice this means that if you never specify timecodes -// that they will always be generated for you correctly. Timecodes coming from different senders on the same -// machine will always be in sync with each other when working in this way. If you have NTP installed on your -// local network, then streams can be synchronized between multiple machines with very high precision. -// -// If you specify a timecode at a particular frame (audio or video), then ask for all subsequent ones to be -// synthesized. The subsequent ones will be generated to continue this sequence maintaining the correct -// relationship both the between streams and samples generated, avoiding them deviating in time from the -// timecode that you specified in any meaningful way. -// -// If you specify timecodes on one stream (e.g. video) and ask for the other stream (audio) to be -// synthesized, the correct timecodes will be generated for the other stream and will be synthesize exactly -// to match (they are not quantized inter-streams) the correct sample positions. -// -// When you send metadata messages and ask for the timecode to be synthesized, then it is chosen to match the -// closest audio or video frame timecode so that it looks close to something you might want ... unless there -// is no sample that looks close in which a timecode is synthesized from the last ones known and the time -// since it was sent. -static const int64_t NDIlib_send_timecode_synthesize = INT64_MAX; - -// If the time-stamp is not available (i.e. a version of a sender before v2.5). -static const int64_t NDIlib_recv_timestamp_undefined = INT64_MAX; - -// This is a descriptor of a NDI source available on the network. -typedef struct NDIlib_source_t { - // A UTF8 string that provides a user readable name for this source. This can be used for serialization, - // etc... and comprises the machine name and the source name on that machine. In the form, - // MACHINE_NAME (NDI_SOURCE_NAME) - // If you specify this parameter either as NULL, or an EMPTY string then the specific IP address and port - // number from below is used. - const char* p_ndi_name; - - // A UTF8 string that provides the actual network address and any parameters. This is not meant to be - // application readable and might well change in the future. This can be NULL if you do not know it and - // the API internally will instantiate a finder that is used to discover it even if it is not yet - // available on the network. - union { // The current way of addressing the value. - const char* p_url_address; - - // We used to use an IP address before we used the more general URL notification this is now - // depreciated but maintained for compatibility. - PROCESSINGNDILIB_DEPRECATED const char* p_ip_address; - }; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_source_t(const char* p_ndi_name_ = NULL, const char* p_url_address_ = NULL); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_source_t; - -// This describes a video frame. -typedef struct NDIlib_video_frame_v2_t { - // The resolution of this frame. - int xres, yres; - - // What FourCC describing the type of data for this frame. - NDIlib_FourCC_video_type_e FourCC; - - // What is the frame rate of this frame. - // For instance NTSC is 30000,1001 = 30000/1001 = 29.97 fps. - int frame_rate_N, frame_rate_D; - - // What is the picture aspect ratio of this frame. - // For instance 16.0/9.0 = 1.778 is 16:9 video - // 0 means square pixels. - float picture_aspect_ratio; - - // Is this a fielded frame, or is it progressive. - NDIlib_frame_format_type_e frame_format_type; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The video data itself. - uint8_t* p_data; - - union { // If the FourCC is not a compressed type, then this will be the inter-line stride of the video data - // in bytes. If the stride is 0, then it will default to sizeof(one pixel)*xres. - int line_stride_in_bytes; - - // If the FourCC is a compressed type, then this will be the size of the p_data buffer in bytes. - int data_size_in_bytes; - }; - - // Per frame metadata for this frame. This is a NULL terminated UTF8 string that should be in XML format. - // If you do not want any metadata then you may specify NULL here. - const char* p_metadata; // Present in >= v2.5 - - // This is only valid when receiving a frame and is specified as a 100-nanosecond time that was the exact - // moment that the frame was submitted by the sending side and is generated by the SDK. If this value is - // NDIlib_recv_timestamp_undefined then this value is not available and is NDIlib_recv_timestamp_undefined. - int64_t timestamp; // Present in >= v2.5 - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_video_frame_v2_t( - int xres_ = 0, int yres_ = 0, - NDIlib_FourCC_video_type_e FourCC_ = NDIlib_FourCC_video_type_UYVY, - int frame_rate_N_ = 30000, int frame_rate_D_ = 1001, - float picture_aspect_ratio_ = 0.0f, - NDIlib_frame_format_type_e frame_format_type_ = NDIlib_frame_format_type_progressive, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - uint8_t* p_data_ = NULL, int line_stride_in_bytes_ = 0, - const char* p_metadata_ = NULL, - int64_t timestamp_ = 0 - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_video_frame_v2_t; - -// This describes an audio frame. -typedef struct NDIlib_audio_frame_v2_t { - // The sample-rate of this buffer. - int sample_rate; - - // The number of audio channels. - int no_channels; - - // The number of audio samples per channel. - int no_samples; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The audio data. - float* p_data; - - // The inter channel stride of the audio channels, in bytes. - int channel_stride_in_bytes; - - // Per frame metadata for this frame. This is a NULL terminated UTF8 string that should be in XML format. - // If you do not want any metadata then you may specify NULL here. - const char* p_metadata; // Present in >= v2.5 - - // This is only valid when receiving a frame and is specified as a 100-nanosecond time that was the exact - // moment that the frame was submitted by the sending side and is generated by the SDK. If this value is - // NDIlib_recv_timestamp_undefined then this value is not available and is NDIlib_recv_timestamp_undefined. - int64_t timestamp; // Present in >= v2.5 - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_audio_frame_v2_t( - int sample_rate_ = 48000, int no_channels_ = 2, int no_samples_ = 0, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - float* p_data_ = NULL, int channel_stride_in_bytes_ = 0, - const char* p_metadata_ = NULL, - int64_t timestamp_ = 0 - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_audio_frame_v2_t; - -// This describes an audio frame. -typedef struct NDIlib_audio_frame_v3_t { - // The sample-rate of this buffer. - int sample_rate; - - // The number of audio channels. - int no_channels; - - // The number of audio samples per channel. - int no_samples; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // What FourCC describing the type of data for this frame. - NDIlib_FourCC_audio_type_e FourCC; - - // The audio data. - uint8_t* p_data; - - union { - // If the FourCC is not a compressed type and the audio format is planar, then this will be the - // stride in bytes for a single channel. - int channel_stride_in_bytes; - - // If the FourCC is a compressed type, then this will be the size of the p_data buffer in bytes. - int data_size_in_bytes; - }; - - // Per frame metadata for this frame. This is a NULL terminated UTF8 string that should be in XML format. - // If you do not want any metadata then you may specify NULL here. - const char* p_metadata; - - // This is only valid when receiving a frame and is specified as a 100-nanosecond time that was the exact - // moment that the frame was submitted by the sending side and is generated by the SDK. If this value is - // NDIlib_recv_timestamp_undefined then this value is not available and is NDIlib_recv_timestamp_undefined. - int64_t timestamp; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_audio_frame_v3_t( - int sample_rate_ = 48000, int no_channels_ = 2, int no_samples_ = 0, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - NDIlib_FourCC_audio_type_e FourCC_ = NDIlib_FourCC_audio_type_FLTP, - uint8_t* p_data_ = NULL, int channel_stride_in_bytes_ = 0, - const char* p_metadata_ = NULL, - int64_t timestamp_ = 0 - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_audio_frame_v3_t; - -// The data description for metadata. -typedef struct NDIlib_metadata_frame_t { - // The length of the string in UTF8 characters. This includes the NULL terminating character. If this is - // 0, then the length is assume to be the length of a NULL terminated string. - int length; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The metadata as a UTF8 XML string. This is a NULL terminated string. - char* p_data; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_metadata_frame_t(int length_ = 0, int64_t timecode_ = NDIlib_send_timecode_synthesize, char* p_data_ = NULL); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_metadata_frame_t; - -// Tally structures -typedef struct NDIlib_tally_t { - // Is this currently on program output. - bool on_program; - - // Is this currently on preview output. - bool on_preview; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_tally_t(bool on_program_ = false, bool on_preview_ = false); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_tally_t; diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.utilities.h b/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.utilities.h deleted file mode 100644 index 842461e..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/Includes/Processing.NDI.utilities.h +++ /dev/null @@ -1,258 +0,0 @@ -#pragma once - -// NOTE : The following MIT license applies to this file ONLY and not to the SDK as a whole. Please review -// the SDK documentation for the description of the full license terms, which are also provided in the file -// "NDI License Agreement.pdf" within the SDK or online at http://ndi.link/ndisdk_license. Your use of any -// part of this SDK is acknowledgment that you agree to the SDK license terms. The full NDI SDK may be -// downloaded at http://ndi.video/ -// -//*********************************************************************************************************** -// -// Copyright (C) 2023-2025 Vizrt NDI AB. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -// associated documentation files(the "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the -// following conditions : -// -// The above copyright notice and this permission notice shall be included in all copies or substantial -// portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO -// EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -// THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -//*********************************************************************************************************** - -// Because many applications like submitting 16-bit interleaved audio, these functions will convert in and -// out of that format. It is important to note that the NDI SDK does define fully audio levels, something -// that most applications that you use do not. Specifically, the floating-point range, -1.0 to +1.0, is -// defined as a professional audio reference level of +4 dBU. If we take 16-bit audio and scale it into this -// range it is almost always correct for sending and will cause no problems. For receiving however it is not -// at all uncommon that the user has audio that exceeds reference level and in this case it is likely that -// audio exceeds the reference level and so if you are not careful you will end up having audio clipping when -// you use the 16-bit range. - -// This describes an audio frame. -typedef struct NDIlib_audio_frame_interleaved_16s_t { - // The sample-rate of this buffer. - int sample_rate; - - // The number of audio channels. - int no_channels; - - // The number of audio samples per channel. - int no_samples; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The audio reference level in dB. This specifies how many dB above the reference level (+4 dBU) is the - // full range of 16-bit audio. If you do not understand this and want to just use numbers: - // - If you are sending audio, specify +0 dB. Most common applications produce audio at reference level. - // - If receiving audio, specify +20 dB. This means that the full 16-bit range corresponds to - // professional level audio with 20 dB of headroom. Note that if you are writing it into a file it - // might sound soft because you have 20 dB of headroom before clipping. - int reference_level; - - // The audio data, interleaved 16-bit samples. - int16_t* p_data; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_audio_frame_interleaved_16s_t( - int sample_rate_ = 48000, int no_channels_ = 2, int no_samples_ = 0, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - int reference_level_ = 0, - int16_t* p_data_ = NULL - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_audio_frame_interleaved_16s_t; - -// This describes an audio frame. -typedef struct NDIlib_audio_frame_interleaved_32s_t { - // The sample-rate of this buffer. - int sample_rate; - - // The number of audio channels. - int no_channels; - - // The number of audio samples per channel. - int no_samples; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The audio reference level in dB. This specifies how many dB above the reference level (+4 dBU) is the - // full range of 32-bit audio. If you do not understand this and want to just use numbers: - // - If you are sending audio, specify +0 dB. Most common applications produce audio at reference level. - // - If receiving audio, specify +20 dB. This means that the full 32-bit range corresponds to - // professional level audio with 20 dB of headroom. Note that if you are writing it into a file it - // might sound soft because you have 20 dB of headroom before clipping. - int reference_level; - - // The audio data, interleaved 32-bit samples. - int32_t* p_data; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_audio_frame_interleaved_32s_t( - int sample_rate_ = 48000, int no_channels_ = 2, int no_samples_ = 0, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - int reference_level_ = 0, - int32_t* p_data_ = NULL - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_audio_frame_interleaved_32s_t; - -// This describes an audio frame. -typedef struct NDIlib_audio_frame_interleaved_32f_t { - // The sample-rate of this buffer. - int sample_rate; - - // The number of audio channels. - int no_channels; - - // The number of audio samples per channel. - int no_samples; - - // The timecode of this frame in 100-nanosecond intervals. - int64_t timecode; - - // The audio data, interleaved 32-bit floating-point samples. - float* p_data; - -#if NDILIB_CPP_DEFAULT_CONSTRUCTORS - NDIlib_audio_frame_interleaved_32f_t( - int sample_rate_ = 48000, int no_channels_ = 2, int no_samples_ = 0, - int64_t timecode_ = NDIlib_send_timecode_synthesize, - float* p_data_ = NULL - ); -#endif // NDILIB_CPP_DEFAULT_CONSTRUCTORS -} NDIlib_audio_frame_interleaved_32f_t; - -// This will add an audio frame in interleaved 16-bit. -PROCESSINGNDILIB_API -void NDIlib_util_send_send_audio_interleaved_16s( - NDIlib_send_instance_t p_instance, - const NDIlib_audio_frame_interleaved_16s_t* p_audio_data -); - -// This will add an audio frame in interleaved 32-bit. -PROCESSINGNDILIB_API -void NDIlib_util_send_send_audio_interleaved_32s( - NDIlib_send_instance_t p_instance, - const NDIlib_audio_frame_interleaved_32s_t* p_audio_data -); - -// This will add an audio frame in interleaved floating point. -PROCESSINGNDILIB_API -void NDIlib_util_send_send_audio_interleaved_32f( - NDIlib_send_instance_t p_instance, - const NDIlib_audio_frame_interleaved_32f_t* p_audio_data -); - -// Convert to interleaved 16-bit. -PROCESSINGNDILIB_API -void NDIlib_util_audio_to_interleaved_16s_v2( - const NDIlib_audio_frame_v2_t* p_src, - NDIlib_audio_frame_interleaved_16s_t* p_dst -); - -// Convert to interleaved 16-bit. The FourCC of the source audio frame must be NDIlib_FourCC_audio_type_FLTP. -// Returns true if the conversion was successful. -PROCESSINGNDILIB_API -bool NDIlib_util_audio_to_interleaved_16s_v3( - const NDIlib_audio_frame_v3_t* p_src, - NDIlib_audio_frame_interleaved_16s_t* p_dst -); - -// Convert from interleaved 16-bit. -PROCESSINGNDILIB_API -void NDIlib_util_audio_from_interleaved_16s_v2( - const NDIlib_audio_frame_interleaved_16s_t* p_src, - NDIlib_audio_frame_v2_t* p_dst -); - -// Convert from interleaved 16-bit. The FourCC of the destination audio frame must be -// NDIlib_FourCC_audio_type_FLTP and its p_data allocated accordingly. -// Returns true if the conversion was successful. -PROCESSINGNDILIB_API -bool NDIlib_util_audio_from_interleaved_16s_v3( - const NDIlib_audio_frame_interleaved_16s_t* p_src, - NDIlib_audio_frame_v3_t* p_dst -); - -// Convert to interleaved 32-bit. -PROCESSINGNDILIB_API -void NDIlib_util_audio_to_interleaved_32s_v2( - const NDIlib_audio_frame_v2_t* p_src, - NDIlib_audio_frame_interleaved_32s_t* p_dst -); - -// Convert to interleaved 32-bit. The FourCC of the source audio frame must be NDIlib_FourCC_audio_type_FLTP. -// Returns true if the conversion was successful. -PROCESSINGNDILIB_API -bool NDIlib_util_audio_to_interleaved_32s_v3( - const NDIlib_audio_frame_v3_t* p_src, - NDIlib_audio_frame_interleaved_32s_t* p_dst -); - -// Convert from interleaved 32-bit. -PROCESSINGNDILIB_API -void NDIlib_util_audio_from_interleaved_32s_v2( - const NDIlib_audio_frame_interleaved_32s_t* p_src, - NDIlib_audio_frame_v2_t* p_dst -); - -// Convert from interleaved 32-bit. The FourCC of the destination audio frame must be -// NDIlib_FourCC_audio_type_FLTP and its p_data allocated accordingly. -// Returns true if the conversion was successful. -PROCESSINGNDILIB_API -bool NDIlib_util_audio_from_interleaved_32s_v3( - const NDIlib_audio_frame_interleaved_32s_t* p_src, - NDIlib_audio_frame_v3_t* p_dst -); - -// Convert to interleaved floating point. -PROCESSINGNDILIB_API -void NDIlib_util_audio_to_interleaved_32f_v2( - const NDIlib_audio_frame_v2_t* p_src, - NDIlib_audio_frame_interleaved_32f_t* p_dst -); - -// Convert to interleaved floating point. The FourCC of the source audio frame must be -// NDIlib_FourCC_audio_type_FLTP. Returns true if the conversion was successful. -PROCESSINGNDILIB_API -bool NDIlib_util_audio_to_interleaved_32f_v3( - const NDIlib_audio_frame_v3_t* p_src, - NDIlib_audio_frame_interleaved_32f_t* p_dst -); - -// Convert from interleaved floating point. -PROCESSINGNDILIB_API -void NDIlib_util_audio_from_interleaved_32f_v2( - const NDIlib_audio_frame_interleaved_32f_t* p_src, - NDIlib_audio_frame_v2_t* p_dst -); - -// Convert from interleaved floating point. The FourCC of the destination audio frame must be -// NDIlib_FourCC_audio_type_FLTP and its p_data allocated accordingly. -// Returns true if the conversion was successful. -PROCESSINGNDILIB_API -bool NDIlib_util_audio_from_interleaved_32f_v3( - const NDIlib_audio_frame_interleaved_32f_t* p_src, - NDIlib_audio_frame_v3_t* p_dst -); - -// This is a helper function that you may use to convert from 10-bit packed UYVY into 16-bit semi-planar. The -// FourCC on the source is ignored in this function since we do not define a V210 format in NDI. You must -// make sure that there is memory and a stride allocated in p_dst. -PROCESSINGNDILIB_API -void NDIlib_util_V210_to_P216(const NDIlib_video_frame_v2_t* p_src_v210, NDIlib_video_frame_v2_t* p_dst_p216); - -// This converts from 16-bit semi-planar to 10-bit. You must make sure that there is memory and a stride -// allocated in p_dst. -PROCESSINGNDILIB_API -void NDIlib_util_P216_to_V210(const NDIlib_video_frame_v2_t* p_src_p216, NDIlib_video_frame_v2_t* p_dst_v210); diff --git a/Plugins/NDIIO/Source/ThirdParty/NDI/NDI.Build.cs b/Plugins/NDIIO/Source/ThirdParty/NDI/NDI.Build.cs deleted file mode 100644 index 2cabb11..0000000 --- a/Plugins/NDIIO/Source/ThirdParty/NDI/NDI.Build.cs +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2024 Vizrt NDI AB. All rights reserved. - - This file and its use within a Product is bound by the terms of NDI SDK license that was provided - as part of the NDI SDK. For more information, please review the license and the NDI SDK documentation. -*/ - -using System; -using System.IO; - -using UnrealBuildTool; - -public class NDI : ModuleRules -{ - public NDI(ReadOnlyTargetRules Target) : base(Target) - { - Type = ModuleType.External; - - if (Target.Platform == UnrealTargetPlatform.Win64) - { - PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Includes")); - - PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "Libraries/Win64", "Processing.NDI.Lib.x64.lib")); - - // Delay-load the DLL from the runtime directory (determined at runtime) - PublicDelayLoadDLLs.Add("Processing.NDI.Lib.x64.dll"); - - // Ensure that we define our c++ define - PublicDefinitions.Add("NDI_SDK_ENABLED"); - } - else if ((Target.Platform == UnrealTargetPlatform.Linux) - || ((Target.Version.MajorVersion == 4) && (Target.Platform.ToString() == "LinuxAArch64")) - || ((Target.Version.MajorVersion == 5) && (Target.Platform.ToString() == "LinuxArm64")) - ) - { - PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Includes")); - - PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "Libraries/Linux", "libndi.so")); - RuntimeDependencies.Add(Path.Combine("$(BinaryOutputDir)", "libndi.so.6"), Path.Combine(ModuleDirectory, "Libraries/Linux", "libndi.so.6")); - - // Ensure that we define our c++ define - PublicDefinitions.Add("NDI_SDK_ENABLED"); - } - } -}

  • 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 z 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%0A8&Jk7kgub6G)O_VkSxp?a-m1cp1faez&hQfh+ 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 Z@FGqShs;ub8lxTL?)+gBQXSJ|cCU_CP? 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