Commit 9dd3e8fb authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

vout: remove harmful or commented out display events

The video output variables currently represent the wanted state, not
the actual state. Forcefully resetting them to the actual state with a
delay can create feedback loops. (Indeed some of the code paths had
already been commented out for that exact reason.)
parent 8cffc346
......@@ -870,8 +870,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
msg_Err(vd, "Failed to set fullscreen");
}
vout_SendEventFullscreen(osys->vout, osys->cfg.is_fullscreen);
}
/* */
......@@ -900,8 +898,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
}
osys->cfg.is_display_filled = osys->is_display_filled;
osys->ch_display_filled = false;
vout_SendEventDisplayFilled(osys->vout, osys->cfg.is_display_filled);
}
/* */
if (osys->ch_zoom) {
......@@ -929,8 +925,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
osys->cfg.zoom.num = osys->zoom.num;
osys->cfg.zoom.den = osys->zoom.den;
osys->ch_zoom = false;
vout_SendEventZoom(osys->vout, osys->cfg.zoom.num, osys->cfg.zoom.den);
}
#if defined(_WIN32) || defined(__OS2__)
/* */
......@@ -940,9 +934,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
wm_state = osys->wm_state;
}
osys->wm_state_initial = wm_state;
/* */
vout_SendEventOnTop(osys->vout, osys->wm_state_initial);
}
#endif
/* */
......@@ -973,21 +964,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
osys->sar.den = source.i_sar_den;
osys->ch_sar = false;
/* */
if (osys->sar.num == osys->source.i_sar_num &&
osys->sar.den == osys->source.i_sar_den)
{
vout_SendEventSourceAspect(osys->vout, 0, 0);
}
else
{
unsigned dar_num, dar_den;
vlc_ureduce( &dar_num, &dar_den,
osys->sar.num * vd->source.i_visible_width,
osys->sar.den * vd->source.i_visible_height,
65536);
vout_SendEventSourceAspect(osys->vout, dar_num, dar_den);
}
/* If a crop ratio is requested, recompute the parameters */
if (osys->crop.num > 0 && osys->crop.den > 0)
osys->ch_crop = true;
......@@ -1053,11 +1029,6 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
osys->crop.num = crop_num;
osys->crop.den = crop_den;
osys->ch_crop = false;
vout_SendEventSourceCrop(osys->vout,
osys->crop.num, osys->crop.den,
osys->crop.left, osys->crop.top,
-osys->crop.right, -osys->crop.bottom);
}
/* */
......
......@@ -101,116 +101,6 @@ static inline void vout_SendEventMouseHidden(vout_thread_t *vout)
VLC_UNUSED(vout);
}
static inline void vout_SendEventFullscreen(vout_thread_t *vout, bool is_fullscreen)
{
var_SetBool(vout, "fullscreen", is_fullscreen);
}
static inline void vout_SendEventDisplayFilled(vout_thread_t *vout, bool is_display_filled)
{
if (!var_GetBool(vout, "autoscale") != !is_display_filled)
var_SetBool(vout, "autoscale", is_display_filled);
}
static inline void vout_SendEventZoom(vout_thread_t *vout, int num, int den)
{
VLC_UNUSED(vout);
VLC_UNUSED(num);
VLC_UNUSED(den);
/* FIXME deadlock problems with current vout */
#if 0
const float zoom = (float)num / (float)den;
/* XXX 0.1% is arbitrary */
if (fabs(zoom - var_GetFloat(vout, "scale")) > 0.001)
var_SetFloat(vout, "scale", zoom);
#endif
}
static inline void vout_SendEventOnTop(vout_thread_t *vout, bool is_on_top)
{
VLC_UNUSED(vout);
VLC_UNUSED(is_on_top);
/* FIXME deadlock problems with current vout */
#if 0
if (!var_GetBool(vout, "video-on-top") != !is_on_top)
var_SetBool(vout, "video-on-top", is_on_top);
#endif
}
/**
* It must be called on source aspect ratio changes, with the new DAR (Display
* Aspect Ratio) value.
*/
static inline void vout_SendEventSourceAspect(vout_thread_t *vout,
unsigned num, unsigned den)
{
VLC_UNUSED(vout);
VLC_UNUSED(num);
VLC_UNUSED(den);
/* FIXME the value stored in "aspect-ratio" are not reduced
* creating a lot of problems here */
#if 0
char *ar;
if (num > 0 && den > 0) {
if (asprintf(&ar, "%u:%u", num, den) < 0)
return;
} else {
ar = strdup("");
}
char *current = var_GetString(vout, "aspect-ratio");
msg_Err(vout, "vout_SendEventSourceAspect %s -> %s", current, ar);
if (ar && current && strcmp(ar, current))
var_SetString(vout, "aspect-ratio", ar);
free(current);
free(ar);
#endif
}
static inline void vout_SendEventSourceCrop(vout_thread_t *vout,
unsigned num, unsigned den,
unsigned left, unsigned top,
unsigned right, unsigned bottom)
{
VLC_UNUSED(num);
VLC_UNUSED(den);
vlc_value_t val;
/* I cannot use var_Set here, infinite loop otherwise */
/* */
val.i_int = left;
var_Change(vout, "crop-left", VLC_VAR_SETVALUE, &val, NULL);
val.i_int = top;
var_Change(vout, "crop-top", VLC_VAR_SETVALUE, &val, NULL);
val.i_int = right;
var_Change(vout, "crop-right", VLC_VAR_SETVALUE, &val, NULL);
val.i_int = bottom;
var_Change(vout, "crop-bottom", VLC_VAR_SETVALUE, &val, NULL);
/* FIXME the value stored in "crop" are not reduced
* creating a lot of problems here */
#if 0
char *crop;
if (num > 0 && den > 0) {
if (asprintf(&crop, "%u:%u", num, den) < 0)
crop = NULL;
} else if (left > 0 || top > 0 || right > 0 || bottom > 0) {
if (asprintf(&crop, "%u+%u+%u+%u", left, top, right, bottom) < 0)
crop = NULL;
} else {
crop = strdup("");
}
if (crop) {
val.psz_string = crop;
var_Change(vout, "crop", VLC_VAR_SETVALUE, &val, NULL);
free(crop);
}
#endif
}
#if 0
static inline void vout_SendEventSnapshot(vout_thread_t *vout, const char *filename)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment