📄 vout_scale.diff
字号:
Index: src/video_output/vout_intf.c
===================================================================
--- src/video_output/vout_intf.c (revision 9302)
+++ src/video_output/vout_intf.c (working copy)
@@ -43,6 +43,8 @@
vlc_value_t, vlc_value_t, void * );
static int FullscreenCallback( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * );
+static int ScaleCallback( vlc_object_t *, char const *,
+ vlc_value_t, vlc_value_t, void * );
/*****************************************************************************
* vout_RequestWindow: Create/Get a video window if possible.
@@ -222,6 +224,18 @@
p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
}
var_AddCallback( p_vout, "fullscreen", FullscreenCallback, NULL );
+
+ /* Add a variable for scaling to window */
+ var_Create( p_vout, "scale", VLC_VAR_BOOL );
+ text.psz_string = _("Fit to window");
+ var_Change( p_vout, "scale", VLC_VAR_SETTEXT, &text, NULL );
+ /* Set default */
+ val.b_bool = p_vout->b_scale;
+ var_Set( p_vout, "scale", val);
+ /* Check for parent override */
+ var_Change( p_vout, "scale", VLC_VAR_INHERITVALUE, &val, NULL );
+ p_vout->b_scale = val.b_bool;
+ var_AddCallback( p_vout, "scale", ScaleCallback, NULL );
/* Mouse coordinates */
var_Create( p_vout, "mouse-x", VLC_VAR_INTEGER );
@@ -325,3 +339,30 @@
var_Set( p_vout, "intf-change", val );
return VLC_SUCCESS;
}
+
+static int ScaleCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval, void *p_data )
+{
+ vout_thread_t *p_vout = (vout_thread_t *)p_this;
+ playlist_t *p_playlist;
+ vlc_value_t val;
+
+ p_vout->b_scale = newval.b_bool;
+ p_vout->i_changes |= VOUT_SCALE_CHANGE | VOUT_SIZE_CHANGE;
+
+ p_playlist = (playlist_t *)vlc_object_find( p_this, VLC_OBJECT_PLAYLIST,
+ FIND_PARENT );
+ if( p_playlist )
+ {
+ /* Modify playlist as well because the vout might have to be restarted */
+ var_Create( p_playlist, "scale", VLC_VAR_BOOL );
+ var_Set( p_playlist, "scale", newval );
+
+ vlc_object_release( p_playlist );
+ }
+
+ val.b_bool = VLC_TRUE;
+ var_Set( p_vout, "intf-change", val );
+ return VLC_SUCCESS;
+}
+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -