[vlc-devel] [PATCH 06/18] matroska_segment_parse: use vlc_viewpoint_from_euler
Alexandre Janniaux
ajanni at videolabs.io
Wed Mar 31 09:25:38 UTC 2021
From: Alexandre Janniaux <alexandre.janniaux at gmail.com>
---
modules/demux/mkv/matroska_segment_parse.cpp | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
index 1a312a9256..fba6bcd58e 100644
--- a/modules/demux/mkv/matroska_segment_parse.cpp
+++ b/modules/demux/mkv/matroska_segment_parse.cpp
@@ -254,8 +254,14 @@ void matroska_segment_c::ParseTrackEntry( const KaxTrackEntry *m )
unsigned int chroma_sit_horizontal;
} track_video_info;
+ struct {
+ float yaw;
+ float pitch;
+ float roll;
+ } pose;
+
} metadata_payload = {
- this, p_track, &sys.demuxer, bSupported, 3, { }
+ this, p_track, &sys.demuxer, bSupported, 3, { }, { }
};
MKV_SWITCH_CREATE( EbmlTypeDispatcher, MetaDataHandlers, MetaDataCapture )
@@ -570,17 +576,17 @@ void matroska_segment_c::ParseTrackEntry( const KaxTrackEntry *m )
E_CASE( KaxVideoProjectionPoseYaw, pose )
{
ONLY_FMT(VIDEO);
- vars.tk->fmt.video.pose.yaw = static_cast<float>( pose );
+ vars.pose.yaw = static_cast<float>( pose );
}
E_CASE( KaxVideoProjectionPosePitch, pose )
{
ONLY_FMT(VIDEO);
- vars.tk->fmt.video.pose.pitch = static_cast<float>( pose );
+ vars.pose.pitch = static_cast<float>( pose );
}
E_CASE( KaxVideoProjectionPoseRoll, pose )
{
ONLY_FMT(VIDEO);
- vars.tk->fmt.video.pose.roll = static_cast<float>( pose );
+ vars.pose.roll = static_cast<float>( pose );
}
#endif
E_CASE( KaxVideoFlagInterlaced, fint ) // UNUSED
@@ -1009,6 +1015,11 @@ void matroska_segment_c::ParseTrackEntry( const KaxTrackEntry *m )
}
};
+ vlc_viewpoint_from_euler( &p_track->fmt.video.pose,
+ metadata_payload.pose.yaw,
+ metadata_payload.pose.pitch,
+ metadata_payload.pose.roll);
+
MetaDataHandlers::Dispatcher().iterate ( m->begin(), m->end(), &metadata_payload );
if( p_track->i_number == 0 )
--
2.31.0
More information about the vlc-devel
mailing list