diff options
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r-- | demux/demux_mkv.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 02efcb2a0a..1f4ef89e34 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -46,6 +46,7 @@ #include "options/options.h" #include "misc/bstr.h" #include "stream/stream.h" +#include "video/csputils.h" #include "demux.h" #include "stheader.h" #include "ebml.h" @@ -102,6 +103,7 @@ typedef struct mkv_track { bool v_dwidth_set, v_dheight_set; double v_frate; uint32_t colorspace; + int stereo_mode; uint32_t a_formattag; uint32_t a_channels, a_bps; @@ -504,6 +506,15 @@ static void parse_trackvideo(struct demuxer *demuxer, struct mkv_track *track, MP_VERBOSE(demuxer, "| + Colorspace: %#x\n", (unsigned int)track->colorspace); } + if (video->n_stereo_mode) { + const char *name = MP_STEREO3D_NAME(video->stereo_mode); + if (name) { + track->stereo_mode = video->stereo_mode; + MP_VERBOSE(demuxer, "| + StereoMode: %s\n", name); + } else { + MP_WARN(demuxer, "Unknown StereoMode: %d\n", (int)video->stereo_mode); + } + } } /** @@ -1276,6 +1287,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track) } MP_VERBOSE(demuxer, "Aspect: %f\n", sh_v->aspect); sh_v->avi_dts = track->ms_compat; + sh_v->stereo_mode = track->stereo_mode; return 0; } |