PlaybackEngine
| Source | src/Playback/ |
| CMake target | PlaybackEngine (static library) |
| Type | Static lib (linked into consumers) |
| Family | DirectUI engine layer |
Integration status (#25): standalone experimental scaffolding. MovieMakerCore no longer constructs or links this stack; MF
PlaybackControlleris the live application playback path. A future integration needs a catalog and UI tick.
At a glance
A compact Media Foundation playback engine in the DirectUI namespace: opens a media
file, plays/pauses/stops/seeks, and pushes frames to a
GPURenderer for presentation. The engine-layer counterpart of
MovieMakerCore's HMRAVSource + Preview stack.
Public surface (header Playback.h)
namespace DirectUI {
class GPURenderer;
class __declspec(dllexport) PlaybackEngine {
public:
explicit PlaybackEngine(GPURenderer* pRenderer);
~PlaybackEngine();
HRESULT OpenFile(const std::wstring& path);
HRESULT Play();
HRESULT Pause();
HRESULT Stop();
HRESULT Seek(double seconds);
HRESULT UpdateFrame();
// ...
};
} // namespace DirectUI
Implementation notes
- Media Foundation based: includes
mfapi.h,mfobjects.h,mfidl.h,mfreadwrite.h(source-reader style playback), plusd3d11.hfor the texture handoff. - Construction takes a
GPURenderer*— frames decoded by MF are handed to the renderer'sDrawVideoFramepath.UpdateFrame()pumps one frame (used for scrubbing/paused seek display). - Being a static library it has no exports/ordinals; it appears in the CI matrix as
PlaybackEngine.
Testing
Built in the CI matrix; exercised by engine-layer apps (e.g. apps/pipeline-graph).
Analysis artifacts
Engine-layer reconstruction; the original's in-engine playback analysis lives under
analysis/MovieMakerCore/ and analysis/SharedMFDlls/.