[vlc-commits] Motion: fix the vlc_object_find bug and flag the other bugs

Rémi Denis-Courmont git at videolan.org
Tue Mar 29 19:40:03 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Mar 29 20:14:25 2011 +0300| [4ae811b6cc998370a3213ccd746887f630a42040] | committer: Rémi Denis-Courmont

Motion: fix the vlc_object_find bug and flag the other bugs

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4ae811b6cc998370a3213ccd746887f630a42040
---

 modules/control/motion.c |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/modules/control/motion.c b/modules/control/motion.c
index 96ed2f5..4ab6739 100644
--- a/modules/control/motion.c
+++ b/modules/control/motion.c
@@ -35,6 +35,7 @@
 #include <vlc_common.h>
 #include <vlc_plugin.h>
 #include <vlc_interface.h>
+#include <vlc_playlist.h>
 #include <vlc_vout.h>
 
 #ifdef HAVE_UNISTD_H
@@ -189,11 +190,11 @@ static void RunIntf( intf_thread_t *p_intf )
 
     for( ;; )
     {
-        vout_thread_t *p_vout;
         const char *psz_filter, *psz_type;
         bool b_change = false;
 
         /* Wait a bit, get orientation, change filter if necessary */
+#warning FIXME: check once (or less) per picture, not once per interval
         msleep( INTF_IDLE_SLEEP );
 
         int canc = vlc_savecancel();
@@ -243,14 +244,24 @@ static void RunIntf( intf_thread_t *p_intf )
 
         if( b_change )
         {
-            p_vout = (vout_thread_t *)
-                vlc_object_find( p_intf, VLC_OBJECT_VOUT, FIND_ANYWHERE );
-            if( p_vout )
+#warning FIXME: refactor this plugin as a video filter!
+            input_thread_t *p_input;
+
+            p_input = playlist_CurrentInput( pl_Get( p_intf ) );
+            if( p_input )
             {
-                config_PutPsz( p_vout, "transform-type", psz_type );
-                var_SetString( p_vout, "video-filter", psz_filter );
-                vlc_object_release( p_vout );
+                vout_thread_t *p_vout;
 
+                p_vout = input_GetVout( p_input );
+                if( p_vout )
+                {
+#warning FIXME: do not override the permanent configuration!
+#warning FIXME: transform-type does not exist anymore
+                    config_PutPsz( p_vout, "transform-type", psz_type );
+                    var_SetString( p_vout, "video-filter", psz_filter );
+                    vlc_object_release( p_vout );
+                }
+                vlc_object_release( p_input );
                 i_oldx = i_x;
             }
         }



More information about the vlc-commits mailing list