[MPlayer-dev-eng] gui: subtitle menu is not populated when playing from mpg file
Lode Leroy
lode.leroy at gmail.com
Fri Aug 1 16:30:25 CEST 2014
please consider the following fix for mplayer -gui...
mpctx_get_global_sub_size(guiInfo.mpcontext);
is not returning the number of subtitles, because
void update_global_sub_size(MPContext *mpctx)
was not called to update it.
ps: the indentation is not optimal to keep the patch size minimal
Index: gui/dialog/menu.c
===================================================================
--- gui/dialog/menu.c (revision 37244)
+++ gui/dialog/menu.c (working copy)
@@ -733,9 +733,17 @@
}
/* cheap subtitle switching for non-DVD streams */
- if ( global_sub_size && guiInfo.StreamType != STREAMTYPE_DVD )
+ if ( guiInfo.StreamType != STREAMTYPE_DVD )
{
- int pos, i, j, subs0 =
guiInfo.mpcontext->sub_counts[SUB_SOURCE_SUBS], subs1 =
guiInfo.mpcontext->sub_counts[SUB_SOURCE_VOBSUB];
+ int pos, i, j, subs0, subs1, subs2;
+ subs0 = guiInfo.mpcontext->sub_counts[SUB_SOURCE_SUBS];
+ subs1 = guiInfo.mpcontext->sub_counts[SUB_SOURCE_VOBSUB];
+ subs2 = 0; //guiInfo.mpcontext->sub_counts[SUB_SOURCE_DEMUX]; //
may be out-of-date!
+ for (i = 0; i < MAX_S_STREAMS; i++)
+ if (guiInfo.mpcontext->demuxer->s_streams[i])
+ subs2++;
+ global_sub_size = subs0 + subs1 + subs2;
+ if ( global_sub_size) {
pos = mpctx_get_global_sub_pos(guiInfo.mpcontext);
SubMenu=AddSubMenu( window1, (const char*)subtitle_xpm, Menu,
MSGTR_GUI_Subtitles );
AddMenuCheckItem( window1, (const char*)empty1px_xpm, SubMenu,
MSGTR_GUI__none_, pos == -1, (-1 << 16) + ivSetSubtitle );
@@ -784,6 +792,7 @@
else snprintf( tmp, sizeof(tmp), MSGTR_GUI_TrackN, i );
AddMenuCheckItem( window1,(const
char*)empty1px_xpm,SubMenu,tmp,pos == i,( i << 16 ) + ivSetSubtitle );
}
+ }
}
AddSeparator( Menu );
More information about the MPlayer-dev-eng
mailing list