Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
QmitkVideoBackground Class Reference

Displays 3-channel video data as the background layer of vtkRenderWindows. More...

#include <QmitkVideoBackground.h>

Inheritance diagram for QmitkVideoBackground:
Collaboration diagram for QmitkVideoBackground:

Classes

struct  VideoBackgroundVectorInfo
 

Public Slots

void UpdateVideo ()
 Fetch a new video frame and update all registered render windows. More...
 

Signals

void NewFrameAvailable (mitk::VideoSource *videoSource)
 Emitted after all render windows have been updated with a new frame. More...
 
void EndOfVideoSourceReached (mitk::VideoSource *videoSource)
 Emitted when the video source reaches the end of its stream. More...
 

Public Member Functions

 QmitkVideoBackground (QObject *parent=nullptr)
 Construct a video background with no video source. More...
 
 QmitkVideoBackground (mitk::VideoSource *v, int TimerDelay=25)
 Construct a video background with the given video source. More...
 
 ~QmitkVideoBackground () override
 Destructor. Disables all video backgrounds. More...
 
void AddRenderWindow (vtkRenderWindow *renderWindow)
 Add a render window in which the video is displayed. More...
 
void RemoveRenderWindow (vtkRenderWindow *renderWindow)
 Remove a render window and disable video background in it. More...
 
bool IsRenderWindowIncluded (vtkRenderWindow *renderWindow)
 Check whether a render window is currently registered. More...
 
void SetTimerDelay (int ms)
 Set the video refresh interval. More...
 
void Enable ()
 Enable video background visualization and start the update timer. More...
 
void Disable ()
 Disable video background visualization and stop the update timer. More...
 
bool IsEnabled ()
 Check whether the video background is currently enabled. More...
 
mitk::VideoSource * GetVideoSource ()
 Get the attached video source. More...
 
int GetTimerDelay ()
 Get the current timer delay. More...
 
void Pause ()
 Pause the video playback by stopping the update timer. More...
 
void Resume ()
 Resume the video playback by restarting the update timer. More...
 
void SetVideoSource (mitk::VideoSource *videoSource)
 Set a new video source. More...
 
void OnVideoSourceDelete (const itk::Object *caller, const itk::EventObject &event)
 ITK observer callback for video source deletion events. More...
 

Static Public Member Functions

static void OnRenderWindowDelete (vtkObject *object, unsigned long eid, void *clientdata, void *)
 Static VTK callback for render window deletion events. More...
 

Protected Types

typedef std::vector< VideoBackgroundVectorInfo > RenderWindowVectorInfoType
 

Protected Member Functions

void RemoveRenderWindow (vtkRenderWindow *renderWindow, bool removeObserver)
 
void ResetVideoBackground ()
 
void Modified ()
 

Protected Attributes

RenderWindowVectorInfoType m_renderWindowVectorInfo
 
QTimer * m_QTimer
 
mitk::VideoSource * m_VideoSource
 
unsigned long m_VideoSourceObserverTag
 

Detailed Description

Displays 3-channel video data as the background layer of vtkRenderWindows.

The video frames are provided by a mitk::VideoSource via GetVideoTexture(). A QTimer periodically fetches frames and updates all registered render windows.

Note
The texture data is not copied; the caller must ensure the pointer returned by GetVideoTexture() remains valid. Image dimensions must be set correctly on the video source before enabling the background.
See also
mitk::VideoSource

Definition at line 45 of file QmitkVideoBackground.h.

Member Typedef Documentation

◆ RenderWindowVectorInfoType

the class has to store a list of renderwindows

Definition at line 208 of file QmitkVideoBackground.h.

Constructor & Destructor Documentation

◆ QmitkVideoBackground() [1/2]

QmitkVideoBackground::QmitkVideoBackground ( QObject *  parent = nullptr)
explicit

Construct a video background with no video source.

You must call SetVideoSource() and AddRenderWindow() before enabling.

Parameters
[in]parentThe parent QObject.

◆ QmitkVideoBackground() [2/2]

QmitkVideoBackground::QmitkVideoBackground ( mitk::VideoSource *  v,
int  TimerDelay = 25 
)
explicit

Construct a video background with the given video source.

No parent is set; call setParent() or delete manually. You must call AddRenderWindow() before enabling.

Parameters
[in]vThe video source providing frames.
[in]TimerDelayRefresh interval in milliseconds (default 25 ms = 40 Hz).

◆ ~QmitkVideoBackground()

QmitkVideoBackground::~QmitkVideoBackground ( )
override

Destructor. Disables all video backgrounds.

Member Function Documentation

◆ AddRenderWindow()

void QmitkVideoBackground::AddRenderWindow ( vtkRenderWindow *  renderWindow)

Add a render window in which the video is displayed.

Must be called before Enable(). If the render window was previously added, it will be re-inserted. If the video source has no image width yet, FetchFrame() will be called to obtain the first frame dimensions.

Parameters
[in]renderWindowThe VTK render window to show video in.

◆ Disable()

void QmitkVideoBackground::Disable ( )

Disable video background visualization and stop the update timer.

◆ Enable()

void QmitkVideoBackground::Enable ( )

Enable video background visualization and start the update timer.

Precondition
A video source and at least one render window must be set.

◆ EndOfVideoSourceReached

void QmitkVideoBackground::EndOfVideoSourceReached ( mitk::VideoSource *  videoSource)
signal

Emitted when the video source reaches the end of its stream.

Parameters
[in]videoSourceThe video source that ended.

◆ GetTimerDelay()

int QmitkVideoBackground::GetTimerDelay ( )

Get the current timer delay.

Returns
The timer interval in milliseconds.

◆ GetVideoSource()

mitk::VideoSource* QmitkVideoBackground::GetVideoSource ( )

Get the attached video source.

Returns
Pointer to the mitk::VideoSource, or nullptr.

◆ IsEnabled()

bool QmitkVideoBackground::IsEnabled ( )

Check whether the video background is currently enabled.

Returns
True if the update timer is running.

◆ IsRenderWindowIncluded()

bool QmitkVideoBackground::IsRenderWindowIncluded ( vtkRenderWindow *  renderWindow)

Check whether a render window is currently registered.

Parameters
[in]renderWindowThe VTK render window to check.
Returns
True if the render window is registered.

◆ Modified()

void QmitkVideoBackground::Modified ( )
protected

inits all renderwindows with default values, called before video rendering is started

◆ NewFrameAvailable

void QmitkVideoBackground::NewFrameAvailable ( mitk::VideoSource *  videoSource)
signal

Emitted after all render windows have been updated with a new frame.

Parameters
[in]videoSourceThe video source that provided the frame.

◆ OnRenderWindowDelete()

static void QmitkVideoBackground::OnRenderWindowDelete ( vtkObject *  object,
unsigned long  eid,
void *  clientdata,
void *   
)
static

Static VTK callback for render window deletion events.

Parameters
[in]objectThe deleted VTK render window.
[in]eidThe event ID.
[in]clientdataPointer to this QmitkVideoBackground instance.

◆ OnVideoSourceDelete()

void QmitkVideoBackground::OnVideoSourceDelete ( const itk::Object *  caller,
const itk::EventObject &  event 
)

ITK observer callback for video source deletion events.

Parameters
[in]callerThe deleted video source.
[in]eventThe ITK event object.

◆ Pause()

void QmitkVideoBackground::Pause ( )

Pause the video playback by stopping the update timer.

◆ RemoveRenderWindow() [1/2]

void QmitkVideoBackground::RemoveRenderWindow ( vtkRenderWindow *  renderWindow)

Remove a render window and disable video background in it.

Parameters
[in]renderWindowThe VTK render window to remove.

◆ RemoveRenderWindow() [2/2]

void QmitkVideoBackground::RemoveRenderWindow ( vtkRenderWindow *  renderWindow,
bool  removeObserver 
)
protected

removes the renderwindow and also removes the observer if the flag is set

◆ ResetVideoBackground()

void QmitkVideoBackground::ResetVideoBackground ( )
protected

reset all video backgrounds

◆ Resume()

void QmitkVideoBackground::Resume ( )

Resume the video playback by restarting the update timer.

◆ SetTimerDelay()

void QmitkVideoBackground::SetTimerDelay ( int  ms)

Set the video refresh interval.

Parameters
[in]msTimer interval in milliseconds (default 25).

◆ SetVideoSource()

void QmitkVideoBackground::SetVideoSource ( mitk::VideoSource *  videoSource)

Set a new video source.

If a previous source was set, its observer is removed. If the background was enabled, it will be stopped.

Parameters
[in]videoSourceThe new video source, or nullptr to clear.

◆ UpdateVideo

void QmitkVideoBackground::UpdateVideo ( )
slot

Fetch a new video frame and update all registered render windows.

Member Data Documentation

◆ m_QTimer

QTimer* QmitkVideoBackground::m_QTimer
protected

calls updatevideo repeateadly for framegrabbing

Definition at line 219 of file QmitkVideoBackground.h.

◆ m_renderWindowVectorInfo

RenderWindowVectorInfoType QmitkVideoBackground::m_renderWindowVectorInfo
protected

a list of renderwindows and associated renderers and actors and imageimporters

Definition at line 214 of file QmitkVideoBackground.h.

◆ m_VideoSource

mitk::VideoSource* QmitkVideoBackground::m_VideoSource
protected

must implement GetVideoTexture() correctly (must return an OpenGL texture)

Definition at line 224 of file QmitkVideoBackground.h.

◆ m_VideoSourceObserverTag

unsigned long QmitkVideoBackground::m_VideoSourceObserverTag
protected

the observer tag for the video source

Definition at line 229 of file QmitkVideoBackground.h.


The documentation for this class was generated from the following file: