[vlc-devel] [PATCH] libvlc: media: add multiview in libvlc_video_track_t
Rémi Denis-Courmont
remi at remlab.net
Fri Apr 13 13:00:25 CEST 2018
Le 12 avril 2018 15:43:14 GMT+03:00, Zhao Zhili <quinkblack at foxmail.com> a écrit :
>---
> include/vlc/libvlc_media.h | 25 +++++++++++++++++++++++++
> lib/media.c | 14 ++++++++++++++
> 2 files changed, 39 insertions(+)
>
>diff --git a/include/vlc/libvlc_media.h b/include/vlc/libvlc_media.h
>index 383f366..ec4778f 100644
>--- a/include/vlc/libvlc_media.h
>+++ b/include/vlc/libvlc_media.h
>@@ -205,6 +205,30 @@ typedef struct libvlc_video_viewpoint_t
>float f_field_of_view; /**< field of view in degrees ]0;180[ (default
>80.)*/
> } libvlc_video_viewpoint_t;
>
>+typedef enum libvlc_video_multiview_t
>+{
>+ /* No stereoscopy: 2D picture. */
>+ libvlc_video_multiview_2d,
>+
>+ /* Side-by-side */
>+ libvlc_video_multiview_stereo_sbs,
>+
>+ /* Top-bottom */
>+ libvlc_video_multiview_stereo_tb,
>+
>+ /* Row sequential */
>+ libvlc_video_multiview_stereo_row,
>+
>+ /* Column sequential */
>+ libvlc_video_multiview_stereo_col,
>+
>+ /* Frame sequential */
>+ libvlc_video_multiview_stereo_frame,
>+
>+ /* Checkerboard pattern */
>+ libvlc_video_multiview_stereo_checkerboard
>+} libvlc_video_multiview_t;
>+
> typedef struct libvlc_video_track_t
> {
> unsigned i_height;
>@@ -217,6 +241,7 @@ typedef struct libvlc_video_track_t
> libvlc_video_orient_t i_orientation;
> libvlc_video_projection_t i_projection;
> libvlc_video_viewpoint_t pose; /**< Initial view point */
>+ libvlc_video_multiview_t i_multiview;
> } libvlc_video_track_t;
>
> typedef struct libvlc_subtitle_track_t
>diff --git a/lib/media.c b/lib/media.c
>index 58881e3..2b32f9d 100644
>--- a/lib/media.c
>+++ b/lib/media.c
>@@ -123,6 +123,16 @@ static_assert(
>PROJECTION_MODE_CUBEMAP_LAYOUT_STANDARD == (int)
>libvlc_video_projection_cubemap_layout_standard,
>"Mismatch between libvlc_video_projection_t and
>video_projection_mode_t" );
>
>+static_assert(
>+ MULTIVIEW_2D == (int) libvlc_video_multiview_2d
>&&
>+ MULTIVIEW_STEREO_SBS == (int)
>libvlc_video_multiview_stereo_sbs &&
>+ MULTIVIEW_STEREO_TB == (int)
>libvlc_video_multiview_stereo_tb &&
>+ MULTIVIEW_STEREO_ROW == (int)
>libvlc_video_multiview_stereo_row &&
>+ MULTIVIEW_STEREO_COL == (int)
>libvlc_video_multiview_stereo_col &&
>+ MULTIVIEW_STEREO_FRAME == (int)
>libvlc_video_multiview_stereo_frame &&
>+ MULTIVIEW_STEREO_CHECKERBOARD == (int)
>libvlc_video_multiview_stereo_checkerboard,
>+ "Mismatch between libvlc_video_multiview_t and
>video_multiview_mode_t");
>+
> static libvlc_media_list_t *media_get_subitems( libvlc_media_t * p_md,
> bool b_create )
> {
>@@ -1038,6 +1048,10 @@ libvlc_media_tracks_get( libvlc_media_t *p_md,
>libvlc_media_track_t *** pp_es )
> p_mes->video->pose.f_pitch = p_es->video.pose.pitch;
> p_mes->video->pose.f_roll = p_es->video.pose.roll;
> p_mes->video->pose.f_field_of_view = p_es->video.pose.fov;
>+
>+ assert( p_es->video.multiview_mode >= MULTIVIEW_2D &&
>+ p_es->video.multiview_mode <=
>MULTIVIEW_STEREO_CHECKERBOARD );
>+ p_mes->video->i_multiview = (int)
>p_es->video.multiview_mode;
> break;
> case AUDIO_ES:
> p_mes->i_type = libvlc_track_audio;
>--
>2.9.5
>
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel
Nihao,
Are you sure this works with Doxygen? I don't recall such syntax.
--
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
More information about the vlc-devel
mailing list