Paul Sijben wrote:
> 1.6.1 with the modifications I have shared with the email list ;-)

Will you try this patch against the original tv/plugins/mplayer.py?

I would like to know if the changes are valid for the HWACCEL stuff.

Duncan

--- src/tv/plugins/mplayer.py   2006-10-24 09:44:21.000000000 +0200
+++ src/tv/plugins/mplayer.py.r8716     2006-12-11 22:00:10.000000000 +0100
@@ -2,14 +2,14 @@
 # -----------------------------------------------------------------------
 # mplayer.py - implementation of a TV function using MPlayer
 # -----------------------------------------------------------------------
-# $Id: mplayer.py 8460 2006-10-24 07:44:20Z duncan $
+# $Id: mplayer.py 8716 2006-12-10 16:50:42Z duncan $
 #
 # Notes:
-# Todo:        
+# Todo:
 #
 # -----------------------------------------------------------------------
 # Freevo - A Home Theater PC framework
-# Copyright (C) 2002 Krister Lagerstrom, et al. 
+# Copyright (C) 2002 Krister Lagerstrom, et al.
 # Please see the file freevo/Docs/CREDITS for a complete list of authors.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -69,7 +69,7 @@
 
     __muted    = 0
     __igainvol = 0
-    
+
     def __init__(self):
         self.tuner_chidx = 0    # Current channel, index into 
config.TV_CHANNELS
         self.app_mode = 'tv'
@@ -81,19 +81,20 @@
 
         if not tuner_channel:
             tuner_channel = self.fc.getChannel()
-            
+
         vg = self.current_vg = self.fc.getVideoGroup(tuner_channel, True)
 
         # Convert to MPlayer TV setting strings
         norm = 'norm=%s' % vg.tuner_norm
         input = 'input=%s' % vg.input_num
         device= 'device=%s' % vg.vdev
-            
+
         w, h = config.TV_VIEW_SIZE
         outfmt = 'outfmt=%s' % config.TV_VIEW_OUTFMT
 
         # Build the MPlayer command
         args = (config.MPLAYER_NICE, config.MPLAYER_CMD, config.MPLAYER_VO_DEV,
+                config.MPLAYER_VO_DEV_HWACCEL, 
config.MPLAYER_VO_DEV_OPTS_HWACCEL,
                 config.MPLAYER_VO_DEV_OPTS, config.MPLAYER_AO_DEV, 
config.MPLAYER_ARGS_DEF)
 
         if mode == 'tv':
@@ -104,7 +105,7 @@
                 #ivtv_dev.print_settings()
                 ivtv_dev.close()
                 self.fc.chanSet(tuner_channel, True)
-            
+
                 tvcmd = vg.vdev
 
                 if config.MPLAYER_ARGS.has_key('ivtv'):
@@ -128,7 +129,7 @@
 
                 tvcmd = ('tv:// -tv driver=%s:%s:freq=%s:%s:%s:'
                          '%s:width=%s:height=%s:%s %s' %
-                         (config.TV_DRIVER, vg.adev, tuner_freq, device, 
input, norm, 
+                         (config.TV_DRIVER, vg.adev, tuner_freq, device, 
input, norm,
                           w, h, outfmt, config.TV_OPTS))
 
                 if config.MPLAYER_ARGS.has_key('tv'):
@@ -140,7 +141,7 @@
 
                 tvcmd = ('tv:// -tv driver=%s:freq=%s:%s:%s:'
                          '%s:width=%s:height=%s:%s %s' %
-                         (config.TV_DRIVER, tuner_freq, device, input, norm, 
+                         (config.TV_DRIVER, tuner_freq, device, input, norm,
                           w, h, outfmt, config.TV_OPTS))
 
                 if config.MPLAYER_ARGS.has_key('tv'):
@@ -149,7 +150,7 @@
         elif mode == 'vcr':
             tvcmd = ('tv:// -tv driver=%s:%s:%s:'
                      '%s:width=%s:height=%s:%s %s' %
-                     (config.TV_DRIVER, device, input, norm, 
+                     (config.TV_DRIVER, device, input, norm,
                       w, h, outfmt, config.TV_OPTS))
 
             if config.MPLAYER_ARGS.has_key('tv'):
@@ -161,9 +162,10 @@
 
         args += (tvcmd,)
 
-        mpl = '--prio=%s %s -vo %s%s -ao %s -fs %s -slave %s %s' % args
+        mpl = '--prio=%s %s -vo %s%s %s %s -ao %s -fs %s -slave %s %s' % args
 
         command = mpl
+        _debug_('command=\"%s\"', (command))
         self.mode = mode
 
 
@@ -172,7 +174,7 @@
         # VCR is mic in
         # btaudio (different dsp device) will be added later
         mixer = plugin.getbyname('MIXER')
-        
+
         if mixer and config.MAJOR_AUDIO_CTRL == 'VOL':
             mixer_vol = mixer.getMainVolume()
             mixer.setMainVolume(0)
@@ -182,7 +184,7 @@
 
         # Start up the TV task
         self.app = childapp.ChildApp2(command)
-        
+
         self.prev_app = rc.app()
         rc.app(self)
 
@@ -197,7 +199,7 @@
         elif mixer:
             mixer.setLineinVolume(config.TV_IN_VOLUME)
             mixer.setIgainVolume(config.TV_IN_VOLUME)
-            
+
         if mixer and config.MAJOR_AUDIO_CTRL == 'VOL':
             mixer.setMainVolume(mixer_vol)
         elif mixer and config.MAJOR_AUDIO_CTRL == 'PCM':
@@ -231,16 +233,25 @@
             rc.post_event(em.PLAY_END)
             return TRUE
 
+        elif event == em.PAUSE or event == em.PLAY:
+            self.app.write('pause\n')
+            if DEBUG: print '%s: sending pause to mplayer' % (time.time())
+            return TRUE
+
         elif event in [ em.TV_CHANNEL_UP, em.TV_CHANNEL_DOWN] or 
s_event.startswith('INPUT_'):
             if event == em.TV_CHANNEL_UP:
                 nextchan = self.fc.getNextChannel()
+                nextchannum = self.fc.getNextChannelNum()
             elif event == em.TV_CHANNEL_DOWN:
                 nextchan = self.fc.getPrevChannel()
+                nextchannum = self.fc.getPrevChannelNum()
             else:
                 chan = int( s_event[6] )
                 nextchan = self.fc.getManChannel(chan)
+                nextchannum = self.fc.getManChannelNum(chan)
 
             nextvg = self.fc.getVideoGroup(nextchan, True)
+            _debug_('chan=%s, nextchannum=%s, nextchan=%s nextvg=%s' % (chan, 
nextchannum, nextchan, nextvg))
 
             if self.current_vg != nextvg:
                 self.Stop(channel_change=1)
@@ -249,10 +260,13 @@
 
             if self.mode == 'vcr':
                 return
-            
+
             elif self.current_vg.group_type == 'dvb':
-                self.Stop(channel_change=1)
-                self.Play('tv', nextchan)
+                card = 0 # May be this should come from video groups or 
TV_CHANNELS
+                if em.TV_CHANNEL_UP:
+                    self.app.write('dvb_set_channel %s %s\n' % (nextchannum, 
card))
+                elif em.TV_CHANNEL_DOWN:
+                    self.app.write('dvb_set_channel %s %s\n' % (nextchannum, 
card))
                 return TRUE
 
             elif self.current_vg.group_type == 'ivtv':
@@ -282,6 +296,6 @@
             cmd = 'osd_show_text "%s"\n' % msg
             self.app.write(cmd)
             return FALSE
-            
+
         return FALSE
-    
+

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-users

Reply via email to