return VoutCreate(object, cfg);
}
-/*****************************************************************************
- * vout_Close: Close a vout created by VoutCreate.
- *****************************************************************************
- * You HAVE to call it on vout created by VoutCreate before vlc_object_release.
- * You should NEVER call it on vout not obtained through VoutCreate
- * (like with vout_Request or vlc_object_find.)
- * You can use vout_CloseAndRelease() as a convenience method.
- *****************************************************************************/
void vout_Close(vout_thread_t *vout)
{
assert(vout);
vout_control_PushString(&vout->p->control, VOUT_CONTROL_CHANGE_SUB_FILTERS,
filters);
}
+void vout_ControlChangeSubMargin(vout_thread_t *vout, int margin)
+{
+ vout_control_PushInteger(&vout->p->control, VOUT_CONTROL_CHANGE_SUB_MARGIN,
+ margin);
+}
/* */
static void VoutGetDisplayCfg(vout_thread_t *vout, vout_display_cfg_t *cfg, const char *title)
else if (align_mask & 0x2)
cfg->align.horizontal = VOUT_DISPLAY_ALIGN_RIGHT;
if (align_mask & 0x4)
- cfg->align.horizontal = VOUT_DISPLAY_ALIGN_TOP;
+ cfg->align.vertical = VOUT_DISPLAY_ALIGN_TOP;
else if (align_mask & 0x8)
- cfg->align.horizontal = VOUT_DISPLAY_ALIGN_BOTTOM;
+ cfg->align.vertical = VOUT_DISPLAY_ALIGN_BOTTOM;
}
vout_window_t * vout_NewDisplayWindow(vout_thread_t *vout, vout_display_t *vd,
{
spu_ChangeFilters(vout->p->p_spu, filters);
}
+static void ThreadChangeSubMargin(vout_thread_t *vout, int margin)
+{
+ spu_ChangeMargin(vout->p->p_spu, margin);
+}
static void ThreadChangePause(vout_thread_t *vout, bool is_paused, mtime_t date)
{
case VOUT_CONTROL_CHANGE_SUB_FILTERS:
ThreadChangeSubFilters(vout, cmd.u.string);
break;
+ case VOUT_CONTROL_CHANGE_SUB_MARGIN:
+ ThreadChangeSubMargin(vout, cmd.u.integer);
+ break;
case VOUT_CONTROL_PAUSE:
ThreadChangePause(vout, cmd.u.pause.is_on, cmd.u.pause.date);
break;