Author: duncan
Date: Fri Mar  9 21:11:45 2007
New Revision: 9313

Modified:
   branches/rel-1/freevo/src/directory.py
   branches/rel-1/freevo/src/util/mediainfo.py
   branches/rel-1/freevo/src/video/configure.py
   branches/rel-1/freevo/src/video/plugins/mplayer.py
   branches/rel-1/freevo/src/video/videoitem.py

Log:
[ 1677364 ] In mkv files, not able to select audio and subtitle track
Fix applied, this is not 100% correct as the key bits should be 
util/mediainfo.py.


Modified: branches/rel-1/freevo/src/directory.py
==============================================================================
--- branches/rel-1/freevo/src/directory.py      (original)
+++ branches/rel-1/freevo/src/directory.py      Fri Mar  9 21:11:45 2007
@@ -606,14 +606,15 @@
 
         pop = None
         callback=None
-        if (num_changes > 10) or (num_changes and self.media):
-            if self.media:
-                pop = ProgressBox(text=_('Scanning disc, be patient...'), 
full=num_changes)
-            else:
-                pop = ProgressBox(text=_('Scanning directory, be patient...'),
-                                  full=num_changes)
-            pop.show()
-            callback=pop.tick
+        if skin.active():
+            if (num_changes > 10) or (num_changes and self.media):
+                if self.media:
+                    pop = ProgressBox(text=_('Scanning disc, be patient...'), 
full=num_changes)
+                else:
+                    pop = ProgressBox(text=_('Scanning directory, be 
patient...'),
+                                      full=num_changes)
+                pop.show()
+                callback=pop.tick
 
 
         elif config.OSD_BUSYICON_TIMER and len(files) > 
config.OSD_BUSYICON_TIMER[1]:

Modified: branches/rel-1/freevo/src/util/mediainfo.py
==============================================================================
--- branches/rel-1/freevo/src/util/mediainfo.py (original)
+++ branches/rel-1/freevo/src/util/mediainfo.py Fri Mar  9 21:11:45 2007
@@ -298,7 +298,8 @@
         """
         create mmpython information about the given file
         """
-        info = mmpython.Factory().create(filename)
+        #info = mmpython.Factory().create(filename)
+        info = mmpython.parse(filename)
         if info:
             thumbnail = None
             if info.has_key('thumbnail'):
@@ -405,11 +406,11 @@
         self.disc      = False
         self.variables = {}
         if mmdata:
-            self.mmdata    = mmdata
+            self.mmdata = mmdata
         else:
-            self.mmdata    = {}
+            self.mmdata = {}
         if metadata:
-            self.metadata  = metadata
+            self.metadata = metadata
         else:
             self.metadata = {}
         self.dicts = ( self.mmdata, self.variables, self.metadata )

Modified: branches/rel-1/freevo/src/video/configure.py
==============================================================================
--- branches/rel-1/freevo/src/video/configure.py        (original)
+++ branches/rel-1/freevo/src/video/configure.py        Fri Mar  9 21:11:45 2007
@@ -45,8 +45,6 @@
     menuw.delete_menu()
     arg[0].play(menuw=menuw, arg=arg[1])
 
-
-
 #
 # Audio menu and selection
 #
@@ -60,8 +58,9 @@
     menu_items = []
 
     for a in item.info['audio']:
-        if not a.has_key('id') or a['id'] in ('', None):
-            a['id'] = item.info['audio'].index(a) + 1
+        print a.__dict__
+        #if not a.has_key('id') or a['id'] in ('', None):
+        #    a['id'] = item.info['audio'].index(a) + 1
         
         if a.has_key('languagedesc') and a['languagedesc']:
             a['language'] = a['languagedesc']
@@ -74,7 +73,7 @@
         if not a.has_key('codec') or not a['codec']:
             a['codec'] = '???'
 
-        txt = '%s (channels=%s:%s)' % (a['language'], a['channels'], 
a['codec'])
+        txt = '%(language)s (channels=%(channels)s:%(codec)s)' % a
         menu_items.append(menu.MenuItem(txt, audio_selection, (item, a['id'])))
 
     moviemenu = menu.Menu(_('Audio Menu'), menu_items, fxd_file=item.skin_fxd)
@@ -90,29 +89,24 @@
     menuw.back_one_menu()
 
 def subtitle_selection_menu(arg=None, menuw=None):
-    item       = arg
+    item = arg
 
     menu_items = [ menu.MenuItem(_('no subtitles'), subtitle_selection, (item, 
-1)) ]
-    try:
-        for s in item.info['subtitles']:
-            if s.has_key('languagedesc') and s['languagedesc']:
-                s['language'] = s['languagedesc']
-            elif not s.has_key('language') or not s['language']:
-                s['language'] = _('Stream %s') % s['id']
-
-            if not s.has_key('content') or not s['content']:
-                s['content'] = ''
-            if s['content'] == 'Undefined':
-                s['content'] = ''
-            if s['content'] != '':
-                s['content'] = format(' (%s)' % s['content'])
-
-            txt = '%s%s' % (s['language'], s['content'])
-            menu_items.append(menu.MenuItem(txt, subtitle_selection, (item, 
s['number'])))
-    except AttributeError:
-        for s in range(len(item.info['subtitles'])):
-            menu_items.append(menu.MenuItem(item.info['subtitles'][s],
-                                            subtitle_selection, (item, s)))
+    for s in item.info['subtitles']:
+        if s.has_key('languagedesc') and s['languagedesc']:
+            s['language'] = s['languagedesc']
+        elif not s.has_key('language') or not s['language']:
+            s['language'] = _('Stream %s') % s['id']
+
+        if not s.has_key('content') or not s['content']:
+            s['content'] = ''
+        if s['content'] == 'Undefined':
+            s['content'] = ''
+        if s['content'] != '':
+            s['content'] = format(' (%s)' % s['content'])
+
+        txt = '%(language)s%(content)s' % s
+        menu_items.append(menu.MenuItem(txt, subtitle_selection, (item, 
s['id'])))
 
     moviemenu = menu.Menu(_('Subtitle Menu'), menu_items, 
fxd_file=item.skin_fxd)
     menuw.pushmenu(moviemenu)

Modified: branches/rel-1/freevo/src/video/plugins/mplayer.py
==============================================================================
--- branches/rel-1/freevo/src/video/plugins/mplayer.py  (original)
+++ branches/rel-1/freevo/src/video/plugins/mplayer.py  Fri Mar  9 21:11:45 2007
@@ -177,21 +177,17 @@
 
         if item.selected_subtitle == -1:
             additional_args += [ '-noautosub' ]
-
-        elif item.selected_subtitle and mode == 'file':
-            if os.path.isfile(os.path.splitext(item.filename)[0]+'.idx'):
-                additional_args += [ '-vobsubid', str(item.selected_subtitle) ]
+        elif item.selected_subtitle != None:
+            if mode == 'file':
+                if os.path.isfile(os.path.splitext(item.filename)[0]+'.idx'):
+                    additional_args += [ '-vobsubid', 
str(item.selected_subtitle) ]
+                else:
+                    additional_args += [ '-sid', str(item.selected_subtitle) ]
             else:
                 additional_args += [ '-sid', str(item.selected_subtitle) ]
-                
-        elif item.selected_subtitle:
-            additional_args += [ '-sid', str(item.selected_subtitle) ]
             
-        if item.selected_audio:
-            if item.mimetype == 'mkv':
-               additional_args += [ '-aid', str(item.selected_audio-1) ]
-            else:
-               additional_args += [ '-aid', str(item.selected_audio) ]
+        if item.selected_audio != None:
+            additional_args += [ '-aid', str(item.selected_audio) ]
 
         # This comes from the bilingual language selection menu
         if hasattr(item, 'selected_language') and item.selected_language:

Modified: branches/rel-1/freevo/src/video/videoitem.py
==============================================================================
--- branches/rel-1/freevo/src/video/videoitem.py        (original)
+++ branches/rel-1/freevo/src/video/videoitem.py        Fri Mar  9 21:11:45 2007
@@ -42,6 +42,7 @@
 import menu
 import configure
 import plugin
+import kaa.metadata as metadata
 
 from gui   import PopupBox, AlertBox, ConfirmBox
 from item  import Item, FileInformation
@@ -58,6 +59,10 @@
 
         if info:
             self.info.set_variables(info)
+        # FIXME This is not the correct place to do this, should be done in 
mediainfo
+        if hasattr(self.info, 'filename') and self.info.filename:
+            self.info = metadata.parse(self.info.filename)
+
 
         self.variants          = []         # if this item has variants
         self.subitems          = []         # more than one file/track to play

-------------------------------------------------------------------------
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-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to