X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fvideo_output%2Fvideo_text.c;h=ea9642554f52d0a2fe80844445a5e65461096a80;hb=2c7efa6aff2a5fc42599e8b94a47615e8b99f04b;hp=06d184526a98b4beac53bec112e6dab508e42326;hpb=f60b4c79acaf0412280672f83677a96e74dacb65;p=vlc diff --git a/src/video_output/video_text.c b/src/video_output/video_text.c index 06d184526a..ea9642554f 100644 --- a/src/video_output/video_text.c +++ b/src/video_output/video_text.c @@ -1,7 +1,7 @@ /***************************************************************************** * video_text.c : text manipulation functions ***************************************************************************** - * Copyright (C) 1999-2004 the VideoLAN team + * Copyright (C) 1999-2007 the VideoLAN team * $Id$ * * Author: Sigmund Augdal Helberg @@ -18,9 +18,11 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#include + +#include +#include #include #include #include @@ -63,12 +65,13 @@ int vout_ShowTextRelative( vout_thread_t *p_vout, int i_channel, * is about to be shown */ int vout_ShowTextAbsolute( vout_thread_t *p_vout, int i_channel, - char *psz_string, text_style_t *p_style, + const char *psz_string, text_style_t *p_style, int i_flags, int i_hmargin, int i_vmargin, mtime_t i_start, mtime_t i_stop ) { subpicture_t *p_spu; video_format_t fmt; + (void)p_style; // FIXME: <-- why ask for this if it's unused?!? if( !psz_string ) return VLC_EGENERIC; @@ -90,14 +93,16 @@ int vout_ShowTextAbsolute( vout_thread_t *p_vout, int i_channel, } p_spu->p_region->psz_text = strdup( psz_string ); + p_spu->p_region->i_align = i_flags & SUBPICTURE_ALIGN_MASK; p_spu->i_start = i_start; p_spu->i_stop = i_stop; p_spu->b_ephemer = VLC_TRUE; p_spu->b_absolute = VLC_FALSE; + p_spu->b_fade = VLC_TRUE; p_spu->i_x = i_hmargin; p_spu->i_y = i_vmargin; - p_spu->i_flags = i_flags; + p_spu->i_flags = i_flags & ~SUBPICTURE_ALIGN_MASK; p_spu->i_channel = i_channel; spu_DisplaySubpicture( p_vout->p_spu, p_spu ); @@ -114,7 +119,7 @@ int vout_ShowTextAbsolute( vout_thread_t *p_vout, int i_channel, * \param psz_format printf style formatting **/ void __vout_OSDMessage( vlc_object_t *p_caller, int i_channel, - char *psz_format, ... ) + const char *psz_format, ... ) { vout_thread_t *p_vout; char *psz_string; @@ -129,7 +134,11 @@ void __vout_OSDMessage( vlc_object_t *p_caller, int i_channel, vasprintf( &psz_string, psz_format, args ); vout_ShowTextRelative( p_vout, i_channel, psz_string, NULL, - OSD_ALIGN_TOP|OSD_ALIGN_RIGHT, 30,20,1000000 ); + OSD_ALIGN_TOP|OSD_ALIGN_RIGHT, + 30 + p_vout->fmt_in.i_width + - p_vout->fmt_in.i_visible_width + - p_vout->fmt_in.i_x_offset, + 20 + p_vout->fmt_in.i_y_offset, 1000000 ); vlc_object_release( p_vout ); free( psz_string );