⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vout_scale.diff

📁 Last change: 2008-02-03 This is the source code of KCeasy。
💻 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 + -