millicast / millicast-publisher-unreal-engine-plugin

Unreal engine to stream game content to millicast platform.
Other
21 stars 12 forks source link

Failing to build plugin 1.8.0 with UE 5.3.2 + XCode 14.3 #71

Open tonyv opened 3 months ago

tonyv commented 3 months ago

When I try to build the 1.8.0 plugin in my project it fails with the following errors. Using UE 5.3.2 and XCode 14.3.

Have downloaded the 1.8.0 WebRTC library from here and put in the Sources folder of the plugins folder in my project per README instructions here.

/Users/Shared/Epic Games/UE_5.3/Engine/Build/BatchFiles/Mac/../../../Binaries/ThirdParty/DotNet/6.0.302/mac-arm64
Running dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll Development Mac -Project=/Users/xxx/Documents/Unreal Projects/MyProject2/MyProject2.uproject -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
Log file: /Users/xxx/Library/Application Support/Epic/UnrealBuildTool/Log.txt
Invalidating makefile for MyProject2Editor (MillicastPublisher.uplugin has been added)
Choosing MODERN XCODE based on .ini settings
The plugin will link against MillicastWebRTC
@progress push 5%
Parsing headers for MyProject2Editor
  Running Internal UnrealHeaderTool "/Users/xxx/Documents/Unreal Projects/MyProject2/MyProject2.uproject" "/Users/xxx/Documents/Unreal Projects/MyProject2/Intermediate/Build/Mac/MyProject2Editor/Development/MyProject2Editor.uhtmanifest" -WarningsAsErrors -installed
Total of 30 written
Reflection code generated for MyProject2Editor in 1.6217568 seconds
@progress pop
Building MyProject2Editor...
Determining max actions to execute in parallel (10 physical cores, 10 logical cores)
  Executing up to 10 processes, one per physical core
------ Building 6 action(s) started ------
[1/6] Compile [Apple] SharedPCH.UnrealEd.Cpp20.h
[2/6] Compile [Apple] Module.MillicastPublisher.cpp
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Intermediate/Build/Mac/arm64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:20:
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:4:
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.h:11:63: error: base class has incomplete type
        class AudioSubmixCapturer : public AudioCapturerBase, public ISubmixBufferListener
                                                              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/Users/Shared/Epic Games/UE_5.3/Engine/Source/Runtime/Engine/Classes/Sound/SoundSubmix.h:25:7: note: forward declaration of 'ISubmixBufferListener'
class ISubmixBufferListener;
      ^
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Intermediate/Build/Mac/arm64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:20:
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:4:
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.h:28:84: error: only virtual member functions can be marked 'override'
                        int32 NumSamples, int32 NumChannels, const int32 SampleRate, double AudioClock) override;
                                                                                                        ^~~~~~~~
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Intermediate/Build/Mac/arm64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:20:
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:22:42: error: cannot initialize return object of type 'IMillicastAudioSource *' with an rvalue of type 'Millicast::Publisher::AudioSubmixCapturer *'
        case EAudioCapturerType::Submix: return new AudioSubmixCapturer;
                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Intermediate/Build/Mac/arm64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:22:
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.cpp:63:45: error: cannot initialize a parameter of type 'ISubmixBufferListener *' with an rvalue of type 'Millicast::Publisher::AudioSubmixCapturer *'
                AudioDevice->RegisterSubmixBufferListener(this, Submix);
                                                          ^~~~
/Users/Shared/Epic Games/UE_5.3/Engine/Source/Runtime/Engine/Public/AudioDevice.h:970:78: note: passing argument to parameter 'InSubmixBufferListener' here
        ENGINE_API virtual void RegisterSubmixBufferListener(ISubmixBufferListener* InSubmixBufferListener, USoundSubmix* SoundSubmix = nullptr);
                                                                                    ^
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Intermediate/Build/Mac/arm64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:22:
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.cpp:65:3: error: cannot initialize object parameter of type 'Millicast::Publisher::AudioCapturerBase' with an expression of type 'Millicast::Publisher::AudioSubmixCapturer'
                CreateRtcSourceTrack();
                ^~~~~~~~~~~~~~~~~~~~
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.cpp:80:48: error: cannot initialize a parameter of type 'ISubmixBufferListener *' with an rvalue of type 'Millicast::Publisher::AudioSubmixCapturer *'
                        AudioDevice->UnregisterSubmixBufferListener(this, Submix);
                                                                    ^~~~
/Users/Shared/Epic Games/UE_5.3/Engine/Source/Runtime/Engine/Public/AudioDevice.h:976:80: note: passing argument to parameter 'InSubmixBufferListener' here
        ENGINE_API virtual void UnregisterSubmixBufferListener(ISubmixBufferListener* InSubmixBufferListener, USoundSubmix* SoundSubmix = nullptr);
                                                                                      ^
In file included from /Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Intermediate/Build/Mac/arm64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:22:
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.cpp:105:4: error: no matching member function for call to 'SendAudio'
                        SendAudio(InAudioData, InNumSamples, InNumChannels);
                        ^~~~~~~~~
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:42:25: note: candidate function not viable: no known conversion from 'Millicast::Publisher::AudioSubmixCapturer' to 'Millicast::Publisher::AudioCapturerBase' for object argument
void AudioCapturerBase::SendAudio(const float* InAudioData, int32 InNumSamples, int32 InNumChannels)
                        ^
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:61:25: note: candidate function not viable: no known conversion from 'Millicast::Publisher::AudioSubmixCapturer' to 'Millicast::Publisher::AudioCapturerBase' for object argument
void AudioCapturerBase::SendAudio(const int16* InAudioData, int32 InNumSamples, int32 InNumChannels)
                        ^
/Users/xxx/Documents/Unreal Projects/MyProject2/Plugins/millicast-publisher-unreal-engine-plugin/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:77:25: note: candidate function not viable: requires 0 arguments, but 3 were provided
void AudioCapturerBase::SendAudio()
                        ^
7 errors generated.
rnkvogel commented 3 months ago

Can you try THIS 5.3.2 Millicast Publisher Plugin compiled from source.

tonyv commented 3 months ago

@rnkvogel That worked thanks! However, I'm not seeing the Millicast Publisher Source asset under the Media menu per the instructions to configure the plugin. Verified that the plugin is enabled if I go to Edit->Plugins and search for Millicast

Screenshot 2024-08-16 at 5 42 23 PM

Screenshot 2024-08-16 at 5 43 05 PM

rnkvogel commented 2 months ago

Can send a request to support@dolby.io. I may just package the project.