directdrawsink

directdrawsink — Direct Draw video sink

Synopsis

struct              GstDirectDrawSink;

Description

Synopsis

Element Information

plugin

directdraw

author

Sebastien Moutte <sebastien@moutte.net>

class

Sink/Video

Element Pads

Details

struct GstDirectDrawSink

struct GstDirectDrawSink {
  GstVideoSink videosink;

  /* directdraw offscreen surfaces pool */
  GSList *buffer_pool;
  GMutex *pool_lock;

  /* directdraw objects */
  LPDIRECTDRAW ddraw_object;
  LPDIRECTDRAWSURFACE primary_surface;
  LPDIRECTDRAWSURFACE offscreen_surface;
  LPDIRECTDRAWCLIPPER clipper; 

  /* last buffer displayed (used for XOverlay interface expose method) */
  GstBuffer * last_buffer;

  /* directdraw caps */
  GstCaps *caps;

  /* video window management */
  HWND video_window;
  gboolean our_video_window;
  HANDLE window_created_signal;
  
  /* video properties */
  gint video_width, video_height;
  gint out_width, out_height;
  gint fps_n;
  gint fps_d;

  /* properties */
  gboolean keep_aspect_ratio;

  /*pixel format */
  DDPIXELFORMAT dd_pixel_format;

  /* thread processing our default window messages */
  GThread *window_thread;

  /* TRUE when directdraw object is set up */
  gboolean setup;

  /* TRUE if the hardware supports blitting from one colorspace to another */
  gboolean can_blit_between_colorspace;

  /* This flag is used to force re-creation of our offscreen surface.
   * It's needed when hardware doesn't support fourcc blit and the bit depth
   * of the current display mode changes.
   */
  gboolean must_recreate_offscreen;
};