[vlc-devel] [PATCH 8/9] mkv: parse the StereoMode element on video tracks

Felix Abecassis felix.abecassis at gmail.com
Fri Aug 8 20:13:33 CEST 2014


---
 modules/demux/mkv/matroska_segment_parse.cpp | 38 +++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
index 975b053..336f8df 100644
--- a/modules/demux/mkv/matroska_segment_parse.cpp
+++ b/modules/demux/mkv/matroska_segment_parse.cpp
@@ -545,7 +545,43 @@ void matroska_segment_c::ParseTrackEntry( KaxTrackEntry *m )
                 {
                     KaxVideoStereoMode &stereo = *(KaxVideoStereoMode*)l;
 
-                    msg_Dbg( &sys.demuxer, "|   |   |   |   + Track Video Stereo Mode=%u", uint8( stereo ) );
+                    int stereo_mode = uint8( stereo );
+                    msg_Dbg( &sys.demuxer, "|   |   |   |   + Track Video Stereo Mode=%u", stereo_mode );
+
+                    stereo3d_format_t format = {};
+                    switch (stereo_mode)
+                    {
+                    case 11:
+                        format.flags = VLC_STEREO3D_SWAP_EYES;
+                    case 1:
+                        format.mode = VLC_STEREO3D_SBS;
+                        break;
+
+                    case 2:
+                        format.flags = VLC_STEREO3D_SWAP_EYES;
+                    case 3:
+                        format.mode = VLC_STEREO3D_TB;
+                        break;
+
+                    case 6:
+                        format.flags = VLC_STEREO3D_SWAP_EYES;
+                    case 7:
+                        format.mode = VLC_STEREO3D_ROW;
+                        break;
+
+                    case 8:
+                        format.flags = VLC_STEREO3D_SWAP_EYES;
+                    case 9:
+                        format.mode = VLC_STEREO3D_COL;
+                        break;
+
+                    default:
+                        format.mode = VLC_STEREO3D_2D;
+                        break;
+                    }
+
+                    tk->fmt.video.stereo_format = format;
+
                 }
                 else if( MKV_IS_ID( l, KaxVideoPixelWidth ) )
                 {
-- 
1.9.1




More information about the vlc-devel mailing list