Lumiera  0.pre.03
»edit your freedom«
steam::play Namespace Reference

Description

Playback and rendering control subsystem.

The so called "player" combines and orchestrates services from the engine, session and vault to perform playback or rendering

Namespaces

Typedefs

typedef function< Feed(ModelPort)> FeedBuilder
 
typedef FrameCnt FrameID
 
typedef lib::IterSource< ModelPort >::iterator ModelPorts
 
typedef POutputManager Output
 
typedef std::vector< FeedOutputFeeds
 
typedef shared_ptr< OutputManagerPOutputManager
 
typedef EngineService::QoS_Definition RenderQuality
 

Enumerations

enum  PlaybackUrgency {
  ASAP,
  NICE,
  TIMEBOUND
}
 

Classes

class  DataSink
 denotes an opened connection ready to receive media data for output. More...
 
class  DiagnosticOutputSlot
 Helper for unit tests: Mock output sink. More...
 
class  DummyPlayerService
 Actual implementation of the DummyPlayer service. More...
 
class  Feed
 Rendering data feed, corresponding to a single global pipe and to be delivered into a single OutputSlot. More...
 
class  OutputDirector
 Management of external Output connections. More...
 
class  OutputManager
 Management of external Output connections. More...
 
class  OutputSlot
 Interface: Generic output sink. More...
 
class  OutputSlotImplBase
 Base for OutputSlot standard implementation. More...
 
class  PlayController
 TODO do we still need that?????? Isn't lumiera::Play::Controller already sufficient? More...
 
class  PlayProcess
 Playback/Render process within the Lumiera Player. More...
 
class  PlayService
 Implementation access point: Player subsystem. More...
 
class  ProcessImpl
 Actual implementation of a single (dummy) playback process. More...
 
class  ProcessTable
 
class  RenderConfigurator
 Strategy for configuring the render process. More...
 
class  Timings
 Generic frame timing specification. More...
 
class  TrackingInMemoryBlockSequence
 Diagnostic output connection for a single channel, allowing to track generated frames and verify the processing protocol for output buffers. More...
 

Functions

RenderConfigurator::ConnectFunction buildRenderConfiguration (POutputManager outputPossibilities, Timings playbackTimings)
 Factory function to build a RenderConfigurator specifically tailored for a PlayProcess, about to be started. More...
 

Function Documentation

◆ buildRenderConfiguration()

RenderConfigurator::ConnectFunction buildRenderConfiguration ( POutputManager  outputPossibilities,
Timings  playTimings 
)

Factory function to build a RenderConfigurator specifically tailored for a PlayProcess, about to be started.

this builder function is used by the PlayService when it comes to creating a new PlayProcess. The generated ConnectFunction treats a single ModelPort to produce a suitable rendering setup, pulling data from this port; it thus embodies the specific knowledge how to configure and setup the rendering or playback at the EngineFacade, based on the playback speed and quality desirable for this playback process to be initiated.

Remarks
building a special subclass here and managing this instance by smart-ptr. Then wrapping all of this up into a functor, which can thus be passed on by value. This functor will later on be used to transform each desired model port into a suitable output connection, where the actual output will be resolved through the given OutputManager
Parameters
outputPossibilitiesan OutputManager instance describing the situation where output is about to be generated (e.g. a viewer in the GUI or a file to be rendered)
playbackTimingscharacterisation of the kind of play/render. Besides the required delivery interval, this might also define quality-of-service expectations.
Returns
the public access point to an RenderConfigurator, wrapped as generic function object

Definition at line 152 of file render-configurator.cpp.

References RenderConfigurator::buildActiveFeed(), and steam::play::anonymous_namespace{render-configurator.cpp}::how_to_render().

Referenced by PlayService::connect().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: