millicast / millicast-publisher-unreal-engine-plugin

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

Failed to build plugin on Linux and UE 5.3.2 #74

Open Aeddon opened 1 week ago

Aeddon commented 1 week ago

Hi there,

I'm trying to build the plugin on Linux with the RunUAT BuildPlugin command. All tried branches (master & dev) and tagged versions (1.7.0 and 1.8.0) fail with the following error:

/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Components/MillicastScreenCapturerComponent.h(23): Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Components/MillicastScreenCapturerComponent.h(26): Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Components/MillicastScreenCapturerComponent.h(29): Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Components/MillicastScreenCapturerComponent.h(41): Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Components/MillicastScreenCapturerComponent.h(44): Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module.

Seems an explicit Category must be specified in MillicastScreenCapturerComponent.h at 23, 26, 29, 41, 44. Adding , Category = "Millicast Publisher" to these lines solved this problem.

But finally ended up with these errors:

[4/7] Compile Module.MillicastPublisher.cpp In file included from /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Intermediate/Build/Linux/x64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:20: In file included from /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:4: /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.h:11:63: error: base class has incomplete type class AudioSubmixCapturer : public AudioCapturerBase, public ISubmixBufferListener


/mnt/up4d-fs-data-01/UnrealEngine/Engine/Source/Runtime/Engine/Classes/Sound/SoundSubmix.h:25:7: note: forward declaration of 'ISubmixBufferListener'
class ISubmixBufferListener;
      ^
In file included from /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Intermediate/Build/Linux/x64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:20:
In file included from /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:4:
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/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 /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Intermediate/Build/Linux/x64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:20:
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:22:42: error: cannot initialize return object of type 'IMillicastAudioSource *' with an rvalue of type 'AudioSubmixCapturer *'
        case EAudioCapturerType::Submix: return new AudioSubmixCapturer;
                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Intermediate/Build/Linux/x64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:22:
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/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);
                                                          ^~~~
/mnt/up4d-fs-data-01/UnrealEngine/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 /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Intermediate/Build/Linux/x64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:22:
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/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();
                ^~~~~~~~~~~~~~~~~~~~
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/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);
                                                                    ^~~~
/mnt/up4d-fs-data-01/UnrealEngine/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 /home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Intermediate/Build/Linux/x64/UnrealEditor/Development/MillicastPublisher/Module.MillicastPublisher.cpp:22:
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Media/AudioSubmixCapturer.cpp:105:4: error: no matching member function for call to 'SendAudio'
                        SendAudio(InAudioData, InNumSamples, InNumChannels);
                        ^~~~~~~~~
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/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)
                        ^
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/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)
                        ^
/home/up4dadmin/MillicastPublisher/MillicastPublisherPacked/HostProject/Plugins/MillicastPublisher/Source/MillicastPublisher/Private/Media/AudioCapturerBase.cpp:77:25: note: candidate function not viable: requires 0 arguments, but 3 were provided
void AudioCapturerBase::SendAudio()
                        ^

Can you please look into this??

Cheers

Aeddon commented 1 week ago

seems to be similar to this: https://github.com/millicast/millicast-publisher-unreal-engine-plugin/issues/71