[vlc-devel] [PATCH 7/7] video_output: keep track of the vout modules that can switch stereo modes dynamically
Rémi Denis-Courmont
remi at remlab.net
Sun Aug 19 17:20:16 CEST 2018
Yes, it is also possible to keep the vout, send a change-source-property control and let the vout core do the conversion if necessary.
Le 17 août 2018 14:33:15 GMT+03:00, Steve Lhomme <robux4 at ycbcr.xyz> a écrit :
>I agree this is not ideal but until we do a big rework of the vout
>handling (I have some proposal) it's better than reseting the vout when
>
>the stereo input change.
>
>
>Alternativaly I'd be OK with not changing at all when stereo is
>encountered and living it to the current vout to do changes if it can
>(in most cases it won't and nothing else is possible so no need to
>recreate anything).
>
>
>On 17/08/2018 12:52, Rémi Denis-Courmont wrote:
>> Given that support for stereo is susceptible to change asynchronously
>
>> depending on user controls or window management, this static and
>> synchronous approach probably will never work.
>>
>> Le 17 août 2018 12:27:10 GMT+03:00, Steve Lhomme <robux4 at ycbcr.xyz> a
>
>> écrit :
>>
>> ---
>> include/vlc_vout_display.h | 1 +
>> src/video_output/display.c | 1 +
>> src/video_output/video_output.c | 9 +++++++++
>> src/video_output/vout_internal.h | 5 +++++
>> 4 files changed, 16 insertions(+)
>>
>> diff --git a/include/vlc_vout_display.h
>b/include/vlc_vout_display.h
>> index afa7ad7888..9b8c3cb140 100644
>> --- a/include/vlc_vout_display.h
>> +++ b/include/vlc_vout_display.h
>> @@ -112,6 +112,7 @@ typedef struct {
>> bool is_slow; /* The picture
>memory has slow read/write */
>> bool has_double_click; /* Is double-click
>generated */
>> bool has_pictures_invalid; /* Will
>VOUT_DISPLAY_EVENT_PICTURES_INVALID be used */
>> + int stereo_modes; /* bitmask of
>multiview modes supported dynamically */
>> const vlc_fourcc_t *subpicture_chromas; /* List of
>supported chromas for subpicture rendering. */
>> } vout_display_info_t;
>>
>> diff --git a/src/video_output/display.c
>b/src/video_output/display.c
>> index fa64d38bbc..4aca94b869 100644
>> --- a/src/video_output/display.c
>> +++ b/src/video_output/display.c
>> @@ -93,6 +93,7 @@ static vout_display_t
>*vout_display_New(vlc_object_t *obj,
>> vd->info.has_double_click = false;
>> vd->info.has_pictures_invalid = false;
>> vd->info.subpicture_chromas = NULL;
>> + vd->info.stereo_modes = (1 << MULTIVIEW_2D);
>>
>> vd->cfg = cfg;
>> vd->pool = NULL;
>> diff --git a/src/video_output/video_output.c
>b/src/video_output/video_output.c
>> index d80f825987..f5385d0d77 100644
>> --- a/src/video_output/video_output.c
>> +++ b/src/video_output/video_output.c
>> @@ -500,6 +500,15 @@ int vout_GetSnapshot(vout_thread_t *vout,
>> return VLC_SUCCESS;
>> }
>>
>> +bool vout_CanHandleStereoInput(vout_thread_t *vout,
>video_multiview_mode_t mode)
>> +{
>> + vlc_mutex_lock(&vout->p->display.lock);
>> + vout_display_t *vd = vout->p->display.vd;
>> + bool res = vd && vd->info.stereo_modes & (1<<mode);
>> + vlc_mutex_unlock(&vout->p->display.lock);
>> + return res;
>> +}
>> +
>> void vout_ChangeAspectRatio( vout_thread_t *p_vout,
>> unsigned int i_num, unsigned int
>i_den )
>> {
>> diff --git a/src/video_output/vout_internal.h
>b/src/video_output/vout_internal.h
>> index ba583e7c8e..fd94c89cff 100644
>> --- a/src/video_output/vout_internal.h
>> +++ b/src/video_output/vout_internal.h
>> @@ -283,6 +283,11 @@ void vout_DisplayTitle( vout_thread_t
>*p_vout, const char *psz_title );
>> */
>> bool vout_IsEmpty( vout_thread_t *p_vout );
>>
>> +/**
>> + * Returns true if the vout can handle the multiview input
>switch dynamically.
>> + */
>> +bool vout_CanHandleStereoInput(vout_thread_t *,
>video_multiview_mode_t);
>> +
>> void vout_SetSpuHighlight( vout_thread_t *p_vout, const
>vlc_spu_highlight_t * );
>>
>> #endif
>>
>>
>> --
>> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez
>> excuser ma brièveté.
>>
>>
>> _______________________________________________
>> 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
--
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20180819/d924af40/attachment.html>
More information about the vlc-devel
mailing list