[vlc-devel] [PATCH 5/9] libvlc: add get/set functions for libVLC stereo mode

Thomas Guillem thomas at gllm.fr
Sat Oct 27 16:21:25 CEST 2018


You should create the variable on the media_player and set it on it and
all vouts. Like "fullscreen".

On Sat, Oct 27, 2018, at 10:26, Steve Lhomme  wrote:
> On Sat, Oct 27, 2018, at 08:46, Steve Lhomme wrote:
>> From: "Mohammed (Shaan) Huzaifa Danish" <shaan3 at gmail.com>
>> 
>> Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>
>> ---
>> include/vlc/libvlc_media_player.h | 28 ++++++++++++++++++++++++++++
>> lib/libvlc.sym                    |  2 ++
>> lib/media_player.c                |  1 +
>> lib/video.c                       | 27 +++++++++++++++++++++++++++
>> 4 files changed, 58 insertions(+)
>> 
>> diff --git a/include/vlc/libvlc_media_player.h
>> b/include/vlc/libvlc_media_player.h>> index 73dadda3ba..ae308df4fa 100644
>> --- a/include/vlc/libvlc_media_player.h
>> +++ b/include/vlc/libvlc_media_player.h
>> @@ -1296,6 +1296,34 @@ LIBVLC_API int libvlc_video_update_viewpoint(
>> libvlc_media_player_t *p_mi,>>                                               const libvlc_video_vie-
>>                                               wpoint_t *p_viewpoint,>>                                               bool b_absolute);
>>  
>> +/**
>> + * Video stereo modes
>> + */
>> +typedef enum libvlc_video_stereo_mode_t {
>> +    libvlc_VideoStereoAuto = 0,
>> +    libvlc_VideoStereoOriginal,
>> +    libvlc_VideoStereoLeftEye,
>> +    libvlc_VideoStereoRightEye,
>> +} libvlc_video_stereo_mode_t;
>> +
>> +/**
>> + * Get current video stereo mode.
>> + *
>> + * \param p_mi the media player
>> + * \return the video stereo mode.
>> + */
>> +LIBVLC_API libvlc_video_stereo_mode_t
>> libvlc_video_get_video_stereo_mode(>> +                                              libvlc_media_player_t
>>                                                *p_mi );> 
> too many video in the name.
> 
>> +
>> +/**
>> + * Set new video stereo mode.
>> + *
>> + * \param p_mi the media player
>> + * \param i_mode new video stereo mode
>> + */
>> +LIBVLC_API void libvlc_video_set_video_stereo_mode(
>> libvlc_media_player_t *p_mi,>> +                                      const
>>                                        libvlc_video_stereo_mode_t
>>                                        i_mode );>> +
>> /**
>>   * Get current video subtitle.
>>   *
>> diff --git a/lib/libvlc.sym b/lib/libvlc.sym
>> index 9a896ce7b2..1d34bd6b2d 100644
>> --- a/lib/libvlc.sym
>> +++ b/lib/libvlc.sym
>> @@ -235,6 +235,7 @@ libvlc_video_get_teletext
>> libvlc_video_get_track
>> libvlc_video_get_track_count
>> libvlc_video_get_track_description
>> +libvlc_video_get_video_stereo_mode
>> libvlc_video_set_adjust_float
>> libvlc_video_set_adjust_int
>> libvlc_video_set_aspect_ratio
>> @@ -255,6 +256,7 @@ libvlc_video_set_spu
>> libvlc_video_set_spu_delay
>> libvlc_video_set_teletext
>> libvlc_video_set_track
>> +libvlc_video_set_video_stereo_mode
>> libvlc_video_take_snapshot
>> libvlc_video_new_viewpoint
>> libvlc_video_update_viewpoint
>> diff --git a/lib/media_player.c b/lib/media_player.c
>> index 4f4cb70291..5d277396de 100644
>> --- a/lib/media_player.c
>> +++ b/lib/media_player.c
>> @@ -670,6 +670,7 @@ libvlc_media_player_new( libvlc_instance_t
>> *instance )>>     var_Create (mp, "crop", VLC_VAR_STRING);
>>     var_Create (mp, "deinterlace", VLC_VAR_INTEGER |
>>     VLC_VAR_DOINHERIT);>>     var_Create (mp, "deinterlace-mode", VLC_VAR_STRING |
>>     VLC_VAR_DOINHERIT);>> +    var_Create (mp, "video-stereo-mode", VLC_VAR_INTEGER);
>>  
>>     var_Create (mp, "vbi-page", VLC_VAR_INTEGER);
>>     var_SetInteger (mp, "vbi-page", 100);
>> diff --git a/lib/video.c b/lib/video.c
>> index e5796ec2c8..bb8af0328f 100644
>> --- a/lib/video.c
>> +++ b/lib/video.c
>> @@ -315,6 +315,33 @@ int libvlc_video_update_viewpoint(
>> libvlc_media_player_t *p_mi,>>     return 0;
>> }
>>  
>> +libvlc_video_stereo_mode_t
>> libvlc_video_get_video_stereo_mode(libvlc_media_player_t *p_mi)>> +{
>> +    static_assert( libvlc_VideoStereoAuto       ==
>>      VIDEO_STEREO_OUTPUT_AUTO &&>> +                   libvlc_VideoStereoOriginal   ==
>>                     VIDEO_STEREO_OUTPUT_ORIGINAL &&>> +                   libvlc_VideoStereoLeftEye    ==
>>                     VIDEO_STEREO_OUTPUT_LEFT_ONLY &&>> +                   libvlc_VideoStereoRightEye   ==
>>                     VIDEO_STEREO_OUTPUT_RIGHT_ONLY,>> +                   "stereo mode mismatch" );
>> +
>> +    return var_GetInteger(p_mi, "video-stereo-mode");
>> +}
>> +
>> +void libvlc_video_set_video_stereo_mode(libvlc_media_player_t *p_mi,>> +                                       const
>>                                         libvlc_video_stereo_mode_t
>>                                         i_mode)>> +{
>> +    input_thread_t *p_input_thread = libvlc_get_input_thread(p_mi);>> +
>> +    if (p_input_thread)
>> +    {
>> +        var_SetInteger(p_input_thread, "video-stereo-mode", i_mode);>> +        vlc_object_release(p_input_thread);
>> +    }
>> +    else
>> +    {
>> +        libvlc_printerr("No active input");
>> +    }
>> +}
>> +
>> int libvlc_video_get_spu( libvlc_media_player_t *p_mi )
>> {
>>     input_thread_t *p_input_thread = libvlc_get_input_thread( p_mi );>> --
>> 2.17.0
>> 
>> _________________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> 
> _________________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20181027/752d0b63/attachment.html>


More information about the vlc-devel mailing list