Files
UnrealEngineUWP/Engine/Source/Editor/EditorLiveStreaming/Public/IEditorLiveStreaming.h
Mike Fricker 387280333f Work in progress: Live streaming support for editor and games
This commit adds the framework APIs, editor and rendering features needed to support live streaming.  Along with this, we're working on a new plugin that adds Twitch.tv support (waiting for legal approval to commit.)

- Game live streaming
       - Allows general support for live internet streaming of game video and audio
       - Web cam video feed can be overlaid onto game viewports automatically
       - New 'Broadcast' Blueprint function library allows you to easily start broadcasting from your game
       - New IGameLiveStreaming API that allows you to start broadcasting through C++

- Editor live streaming
       - The editor UI now displays a "broadcast" button automatically when a live streaming service is available
       - Broadcasting of all desktop editor windows is supported (configured in preferences)
       - If you have a web cam, video will be displayed automatically while broadcasting in a new editor window
       - New "Live Streaming" editor preference tab with many new settings for configuring broadcasting
       - New IEditorLiveStreaming API that lets you control editor broadcasting directly, if needed

- Added new 'Broadcast.Start' and 'Broadcast.Stop' console commands
       - These allow you to easily test live streaming in games without writing UI code
       - Built-in help is available for these new commands

- To implement a live streaming plugin:
       - Inherit from the new ILiveStreamingService interface
       - Register your "LiveStreaming" feature with the IModularFeatures system

- Other changes:
      - Eliminated broken screen quad drawing functions; replaced with publicly-exposed DrawRectangle()
      - Slate: Eliminated legacy code for 'marking windows as drawn' (not used anymore)
      - Slate: Added Slate rendering callback to find out when a frame buffer is ready to be presented

[CL 2115377 by Mike Fricker in Main branch]
2014-06-24 12:11:51 -04:00

55 lines
1.3 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "ModuleManager.h"
/**
* Interface to the EditorLiveStreaming module's functionality that enables live broadcasting of video and audio from editor sessions
*/
class IEditorLiveStreaming
: public IModuleInterface
{
public:
/**
* Checks to see if live streaming is currently available for the editor
*
* @return True if live streaming is possible to start
*/
virtual bool IsLiveStreamingAvailable() const = 0;
/**
* Returns true if we're currently broadcasting
*
* @return True if broadcasting is currently active
*/
virtual bool IsBroadcastingEditor() const = 0;
/** Starts broadcasting frames */
virtual void StartBroadcastingEditor() = 0;
/** Stops broadcasting frames */
virtual void StopBroadcastingEditor() = 0;
/** Pushes latest video from the editor to a live stream. The editor's rendering system will call this each frame. */
virtual void BroadcastEditorVideoFrame() = 0;
public:
/**
* Singleton-like access to IEditorLiveStreaming
*
* @return Returns instance of IEditorLiveStreaming object
*/
static inline IEditorLiveStreaming& Get()
{
return FModuleManager::LoadModuleChecked< IEditorLiveStreaming >( "EditorLiveStreaming" );
}
};