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