/* Initialize subpicture unit */
vout->p->p_spu = spu_Create(vout);
- /* */
- spu_Init(vout->p->p_spu);
-
/* Take care of some "interface/control" related initialisations */
vout_IntfInit(vout);
spu_ClearChannel(vout->p->p_spu, channel);
}
-spu_t *vout_GetSpu(vout_thread_t *vout)
-{
- return vout->p->p_spu;
-}
-
/* vout_Control* are usable by anyone at anytime */
void vout_ControlChangeFullscreen(vout_thread_t *vout, bool fullscreen)
{
vout_control_PushString(&vout->p->control, VOUT_CONTROL_CHANGE_FILTERS,
filters);
}
+void vout_ControlChangeSubFilters(vout_thread_t *vout, const char *filters)
+{
+ vout_control_PushString(&vout->p->control, VOUT_CONTROL_CHANGE_SUB_FILTERS,
+ filters);
+}
/* */
static picture_t *VoutVideoFilterNewPicture(filter_t *filter)
vlc_mutex_unlock(&vout->p->vfilter_lock);
}
+static void ThreadChangeSubFilters(vout_thread_t *vout, const char *filters)
+{
+ spu_ChangeFilters(vout->p->p_spu, filters);
+}
+
static void ThreadChangePause(vout_thread_t *vout, bool is_paused, mtime_t date)
{
assert(!vout->p->pause.is_on || !is_paused);
case VOUT_CONTROL_CHANGE_FILTERS:
ThreadChangeFilters(vout, cmd.u.string);
break;
+ case VOUT_CONTROL_CHANGE_SUB_FILTERS:
+ ThreadChangeSubFilters(vout, cmd.u.string);
+ break;
case VOUT_CONTROL_PAUSE:
ThreadChangePause(vout, cmd.u.pause.is_on, cmd.u.pause.date);
break;