diff mplayer.c @ 37159:d4fbf2eb4a04

Ensure up-to-dateness of global_sub information upon request. Some demuxers (like mpg) can detect subtitles only while playing, which is the reason why MPlayer always - indirectly - calls update_global_sub_size() prior to dealing with subtitles. Functions mpctx_get_global_sub_size() and mpctx_get_global_sub_pos(), however, merely return last determined values, thus missing information that may have been arisen after MPlayer has checked last for subtitles (when playback started). Merge the two mpctx_get_global_sub_*() functions into one for easier handling. Retrieve global_sub pos by a mp_property_do("sub") command which performs the necessary update of both global_sub variables, pos and size. Reported by Lode Leroy, lode.leroy gmail com.
author ib
date Sun, 17 Aug 2014 18:06:56 +0000
parents 8aa4f25a4c17
children 681c7f805a23
line wrap: on
line diff
--- a/mplayer.c	Fri Aug 15 22:27:52 2014 +0000
+++ b/mplayer.c	Sun Aug 17 18:06:56 2014 +0000
@@ -360,14 +360,11 @@
     return &mpctx->mixer;
 }
 
-int mpctx_get_global_sub_size(MPContext *mpctx)
+void mpctx_get_global_sub_info(MPContext *mpctx, int *size, int *pos)
 {
-    return mpctx->global_sub_size;
-}
-
-int mpctx_get_global_sub_pos(MPContext *mpctx)
-{
-    return mpctx->global_sub_pos;
+    mp_property_do("sub", M_PROPERTY_GET, pos, mpctx);
+
+    if (size) *size = mpctx->global_sub_size;
 }
 
 int mpctx_get_osd_function(MPContext *mpctx)