[vlc-devel] [PATCH] lib: map the position enum to the correct subpicture alignment bitmasks
Rémi Denis-Courmont
remi at remlab.net
Sat May 24 12:24:48 CEST 2014
Le 2014-05-24 14:41, Mark Lee a écrit :
> libvlc_media_player_set_video_title_display() was wrongly using the
> enum value directly, leading to the video title appearing in the
> wrong
> position for some values
> ---
> lib/media_player.c | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/lib/media_player.c b/lib/media_player.c
> index 5e8f6b2..e244bc0 100644
> --- a/lib/media_player.c
> +++ b/lib/media_player.c
> @@ -1446,12 +1446,30 @@ void libvlc_media_player_next_frame(
> libvlc_media_player_t *p_mi )
> }
> }
>
> +/**
> + * Private lookup table to get subpicture alignment flag values
> corresponding
> + * to a libvlc_position_t enumerated value.
> + */
> +static const int position_subpicture_alignment[] = {
> + 0,
> + SUBPICTURE_ALIGN_LEFT,
> + SUBPICTURE_ALIGN_RIGHT,
> + SUBPICTURE_ALIGN_TOP,
> + SUBPICTURE_ALIGN_TOP | SUBPICTURE_ALIGN_LEFT,
> + SUBPICTURE_ALIGN_TOP | SUBPICTURE_ALIGN_RIGHT,
> + SUBPICTURE_ALIGN_BOTTOM,
> + SUBPICTURE_ALIGN_BOTTOM | SUBPICTURE_ALIGN_LEFT,
> + SUBPICTURE_ALIGN_BOTTOM | SUBPICTURE_ALIGN_RIGHT
> +};
It looks correct. But I think it would be far more clear with "[foo] =
bar," syntax. Also presumably unsigner char as the base type should be
enough.
> +
> void libvlc_media_player_set_video_title_display(
> libvlc_media_player_t *p_mi, libvlc_position_t position, unsigned
> timeout )
> {
> + assert( position >= libvlc_position_disable && position <=
> libvlc_position_bottom_right );
> +
> if ( position != libvlc_position_disable )
> {
> var_SetBool( p_mi, "video-title-show", true );
> - var_SetInteger( p_mi, "video-title-position", position );
> + var_SetInteger( p_mi, "video-title-position",
> position_subpicture_alignment[position] );
> var_SetInteger( p_mi, "video-title-timeout", timeout );
> }
> else
--
Rémi Denis-Courmont
More information about the vlc-devel
mailing list