if (vout->p->p_spu && spu_ProcessMouse( vout->p->p_spu, m, &vout->p->display.vd->source))
return;
- vlc_mutex_lock( &vout->p->vfilter_lock );
- if (vout->p->vfilter_chain) {
- if (!filter_chain_MouseFilter(vout->p->vfilter_chain, &tmp, m))
+ vlc_mutex_lock( &vout->p->filter.lock );
+ if (vout->p->filter.chain) {
+ if (!filter_chain_MouseFilter(vout->p->filter.chain, &tmp, m))
m = &tmp;
}
- vlc_mutex_unlock( &vout->p->vfilter_lock );
+ vlc_mutex_unlock( &vout->p->filter.lock );
if (vlc_mouse_HasMoved(&vout->p->mouse, m)) {
vout_SendEventMouseMoved(vout, m->i_x, m->i_y);
if (!vout->p) {
p.mouse = *fallback;
- vlc_mutex_init(&p.vfilter_lock);
- p.vfilter_chain = NULL;
+ vlc_mutex_init(&p.filter.lock);
+ p.filter.chain = NULL;
p.p_spu = NULL;
vout->p = &p;
}
vout_SendDisplayEventMouse(vout, m);
if (vout->p == &p) {
- vlc_mutex_destroy(&p.vfilter_lock);
+ vlc_mutex_destroy(&p.filter.lock);
*fallback = p.mouse;
vout->p = NULL;
}
/* Initialize locks */
vlc_mutex_init(&vout->p->picture_lock);
- vlc_mutex_init(&vout->p->vfilter_lock);
+ vlc_mutex_init(&vout->p->filter.lock);
vlc_mutex_init(&vout->p->spu_lock);
/* Attach the new object now so we can use var inheritance below */
/* Destroy the locks */
vlc_mutex_destroy(&vout->p->spu_lock);
vlc_mutex_destroy(&vout->p->picture_lock);
- vlc_mutex_destroy(&vout->p->vfilter_lock);
+ vlc_mutex_destroy(&vout->p->filter.lock);
vout_control_Clean(&vout->p->control);
/* */
const bool is_paused = vout->p->pause.is_on;
bool redisplay = is_paused && !now && vout->p->displayed.decoded;
- mtime_t vfilter_delay = 0;
+ mtime_t filter_delay = 0;
for (int i = 0; i < VOUT_FILTER_DELAYS; i++)
- vfilter_delay = __MAX(vfilter_delay, vout->p->vfilter_delay[i]);
+ filter_delay = __MAX(filter_delay, vout->p->filter.delay[i]);
/* FIXME/XXX we must redisplay the last decoded picture (because
* of potential vout updated, or filters update or SPU update)
*is_forced = peek->b_force || is_paused || now;
*deadline = (*is_forced ? date : peek->date) -
vout_chrono_GetHigh(&vout->p->render) -
- vfilter_delay;
+ filter_delay;
picture_Release(peek);
} else {
redisplay = true;
}
/* */
*is_forced = true;
- *deadline = date - vout_chrono_GetHigh(&vout->p->render) - vfilter_delay;
+ *deadline = date - vout_chrono_GetHigh(&vout->p->render) - filter_delay;
}
if (*deadline > VOUT_MWAIT_TOLERANCE)
*deadline -= VOUT_MWAIT_TOLERANCE;
picture_t *filtered = NULL;
if (decoded) {
- vlc_mutex_lock(&vout->p->vfilter_lock);
- filtered = filter_chain_VideoFilter(vout->p->vfilter_chain, decoded);
+ vlc_mutex_lock(&vout->p->filter.lock);
+ filtered = filter_chain_VideoFilter(vout->p->filter.chain, decoded);
//assert(filtered == decoded); // TODO implement
- vlc_mutex_unlock(&vout->p->vfilter_lock);
+ vlc_mutex_unlock(&vout->p->filter.lock);
if (!filtered)
continue;
- vout->p->vfilter_delay[vout->p->vfilter_delay_index] = decoded->date - filtered->date;
- vout->p->vfilter_delay_index = (vout->p->vfilter_delay_index + 1) % VOUT_FILTER_DELAYS;
+ vout->p->filter.delay[vout->p->filter.delay_index] = decoded->date - filtered->date;
+ vout->p->filter.delay_index = (vout->p->filter.delay_index + 1) % VOUT_FILTER_DELAYS;
}
/*
es_format_Init(&fmt, VIDEO_ES, vout->p->original.i_chroma);
fmt.video = vout->p->original;
- vlc_mutex_lock(&vout->p->vfilter_lock);
+ vlc_mutex_lock(&vout->p->filter.lock);
- filter_chain_Reset(vout->p->vfilter_chain, &fmt, &fmt);
- if (filter_chain_AppendFromString(vout->p->vfilter_chain,
+ filter_chain_Reset(vout->p->filter.chain, &fmt, &fmt);
+ if (filter_chain_AppendFromString(vout->p->filter.chain,
filters) < 0)
msg_Err(vout, "Video filter chain creation failed");
- vlc_mutex_unlock(&vout->p->vfilter_lock);
+ vlc_mutex_unlock(&vout->p->filter.lock);
- vout->p->vfilter_delay_index = 0;
+ vout->p->filter.delay_index = 0;
for (int i = 0; i < VOUT_FILTER_DELAYS; i++)
- vout->p->vfilter_delay[i] = 0;
+ vout->p->filter.delay[i] = 0;
}
static void ThreadChangeSubFilters(vout_thread_t *vout, const char *filters)
static void ThreadFilterFlush(vout_thread_t *vout)
{
- vlc_mutex_lock(&vout->p->vfilter_lock);
- filter_chain_VideoFlush(vout->p->vfilter_chain);
- vlc_mutex_unlock(&vout->p->vfilter_lock);
+ vlc_mutex_lock(&vout->p->filter.lock);
+ filter_chain_VideoFlush(vout->p->filter.chain);
+ vlc_mutex_unlock(&vout->p->filter.lock);
}
static void ThreadChangePause(vout_thread_t *vout, bool is_paused, mtime_t date)
vout->p->display_pool = NULL;
vout->p->private_pool = NULL;
- vout->p->vfilter_chain =
+ vout->p->filter.chain =
filter_chain_New( vout, "video filter2", false,
VoutVideoFilterAllocationSetup, NULL, vout);
- vout->p->vfilter_delay_index = 0;
+ vout->p->filter.delay_index = 0;
for (int i = 0; i < VOUT_FILTER_DELAYS; i++)
- vout->p->vfilter_delay[i] = 0;
+ vout->p->filter.delay[i] = 0;
vout_display_state_t state_default;
if (!state) {
static void ThreadStop(vout_thread_t *vout, vout_display_state_t *state)
{
/* Destroy the video filters2 */
- filter_chain_Delete(vout->p->vfilter_chain);
+ filter_chain_Delete(vout->p->filter.chain);
/* Destroy translation tables */
if (vout->p->display.vd) {