On Fri, Mar 20, 2009 at 12:15 PM, Duncan Webb <dun...@freevo.org> wrote: > Art S R wrote: >> After much befuddlement and frustration, I've finally resolved this >> problem. I went back to earlier versions of mplayer.py in svn until I >> found the latest version that would work displaying live TV (10609) >> and did a diff with the version I was using from Freevo 1.8.3 to see >> if I could figure out what's causing the recent versions to not work. >> After much more tracing, I located the problem here: >> >> 240 #command = self.sort_filter(command) >> 241 >> 242 command += ['%(url)s' % args] >> 243 >> 244 _debug_(' '.join(command[1:])) >> 245 >> 246 self.mode = mode >> >> Although the debug statement in line 244 was showing the correct >> mplayer command in my log: >> >> /usr/bin/mplayer -slave -vo xv,sdl,x11, -ao oss:/dev/dsp -autosync 100 >> -nolirc -nojoystick -autoq 100 -screenw 800 -screenh 600 -fs -nocache >> tv:// -tv >> driver=v4l2:freq=55.250:device=/dev/video0:input=0:norm=NTSC:width=640:height=480:outfmt=yuy2 > > Well good work to track down this problem, thanks for this. > > All ' '.join(command[1:] does is to convert the command list to a string > for printing. > > You can change the _debug_ statement to: > _debug_('%r' % (command,)) > and this will be printed exactly and represented as a list. > > What is possible is that the arguments are not correct in the list; may > be one has a space in it when it shouldn't have. Would you please make > this change and post the resulting command, thanks? > > The difference between a list and a string when passed to subprocess is > that lists are executed directly and strings are executed through a > sub-shell. With lists there is no need to quote arguments as each > argument is in a list item. With strings arguments with spaces need to > be quoted. Lists will start marginally faster and use a bit less memory > as there is no extra shell being spawned. > > Duncan >
Well, this is interesting. The syntax of the mplayer command is identical whether it's a string or a list: Running (list) '/usr/bin/mplayer -slave -vo xv,sdl,x11, -ao oss:/dev/dsp -autosync 100 -nolirc -nojoystick -autoq 100 -screenw 800 -screenh 600 -fs -nocache tv:// -tv driver=v4l2:freq=55.250:device=/dev/video0:input=0:norm=NTSC:width=640:height=480:outfmt=yuy2 ' with pid 19221 priority -20 Running (str) '/usr/bin/mplayer -slave -vo xv,sdl,x11, -ao oss:/dev/dsp -autosync 100 -nolirc -nojoystick -autoq 100 -screenw 800 -screenh 600 -fs -nocache tv:// -tv driver=v4l2:freq=55.250:device=/dev/video0:input=0:norm=NTSC:width=640:height=480:outfmt=yuy2' in shell with pid 21625 priority 0 However, running as a list does not work using either the original "_debug_(' '.join(command[1:]))" or the revised "_debug_('%r' % (command,))" statement. On the other hand, when the string is passed to a shell, the TV program comes in loud and clear. Art S R ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Freevo-users mailing list Freevo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freevo-users