[vlc-devel] [RFC 3/3] vout: allow subtitle position override
Salah-Eddin Shaban
salah at videolan.org
Wed Mar 1 14:37:04 CET 2017
---
src/libvlc-module.c | 10 ++++++++++
src/video_output/vout_subpictures.c | 6 ++++++
2 files changed, 16 insertions(+)
diff --git a/src/libvlc-module.c b/src/libvlc-module.c
index 6d60e80..9561d0c 100644
--- a/src/libvlc-module.c
+++ b/src/libvlc-module.c
@@ -329,6 +329,11 @@ static const char *const ppsz_align_descriptions[] =
#define VIDEO_TITLE_POSITION_LONGTEXT N_( \
"Place on video where to display the title (default bottom center).")
+#define SUBTITLE_POSITION_TEXT N_("Position of subtitles")
+#define SUBTITLE_POSITION_LONGTEXT N_( \
+ "Override subtitle position")
+
+
#define MOUSE_HIDE_TIMEOUT_TEXT N_("Hide cursor and fullscreen " \
"controller after x milliseconds")
#define MOUSE_HIDE_TIMEOUT_LONGTEXT N_( \
@@ -1559,6 +1564,11 @@ vlc_module_begin ()
VIDEO_TITLE_POSITION_LONGTEXT, false )
change_safe()
change_integer_list( pi_pos_values, ppsz_pos_descriptions )
+ add_integer( "subtitle-position", 16, SUBTITLE_POSITION_TEXT,
+ SUBTITLE_POSITION_LONGTEXT, false )
+ change_safe()
+ change_integer_list( pi_pos_values, ppsz_pos_descriptions )
+
// autohide after 1 second
add_integer( "mouse-hide-timeout", 1000, MOUSE_HIDE_TIMEOUT_TEXT,
MOUSE_HIDE_TIMEOUT_LONGTEXT, false )
diff --git a/src/video_output/vout_subpictures.c b/src/video_output/vout_subpictures.c
index cc3bf57..bfe231f 100644
--- a/src/video_output/vout_subpictures.c
+++ b/src/video_output/vout_subpictures.c
@@ -93,6 +93,7 @@ struct spu_private_t {
/* */
mtime_t last_sort_date;
+ int subtitle_position;
};
/*****************************************************************************
@@ -1028,6 +1029,10 @@ static subpicture_t *SpuRenderSubpictures(spu_t *spu,
for (region = subpic->p_region; region != NULL; region = region->p_next) {
spu_area_t area;
+ /* Allow users to override subtitle position */
+ if (subpic->b_subtitle && !(sys->subtitle_position & SUBPICTURE_ALIGN_LEAVETEXT))
+ region->i_align = sys->subtitle_position;
+
region->i_x = region->i_original_x;
region->i_y = region->i_original_y;
@@ -1202,6 +1207,7 @@ spu_t *spu_Create(vlc_object_t *object)
sys->scale_yuvp = NULL;
sys->margin = var_InheritInteger(spu, "sub-margin");
+ sys->subtitle_position = var_InheritInteger(spu, "subtitle-position");
/* Register the default subpicture channel */
sys->channel = SPU_DEFAULT_CHANNEL + 1;
--
2.6.6
More information about the vlc-devel
mailing list