[Matroska-devel] Fwd: [Cellar] Depth offsets for subtitles in case of 3D MVC tracks in MKV files

madshi via Matroska-devel matroska-devel at lists.matroska.org
Mon Feb 29 09:54:55 CET 2016

> Ah, interresting. We could still use a z-order value, because
> that's what 3D is about.

The problem is that a 3D frame usually has different depths in
different sections of the image. Each subtitle track has its own
position where it's drawn, and its own x offset (-> depth) assigned
to it, and depending on which section of the video frame the
subtitles are drawn over, the depth could be widely different for
different subtitle tracks (at least theoretically).

Practically that means we don't really have one depth information
per frame (or block), which works for all subtitles and OSD/GUI.
Instead we have a different depth information for each separate
subtitle track per video frame, and one (or multiple or none) more
depth information for OSD/GUI depth per frame.

> So I think we should go with the CodecState approach. Meaning
> we need a specific codec ID for such Blu-Ray subtitles. We
> should not write the CodecState if the values are the same as
> the time it was previously written.

CodecState is per Cluster, though, not per Track, so I'm not sure
which exact information you'd want to store there? (Unless I'm
misunderstanding the MKV cluster/track structure.)

I think we need to store an array index per subtitle track in order
to properly cover the depth information contained for subtitles in
3D Blu-Ray.

I suppose if you wanted to make this totally codec independent,
one other option would be to store the depth (or x offset) directly
as a property of the subtitle track, but if we do that, then depth
could only change once for each subtitle image, I think, which
is too limited to properly capture what 3D Blu-Ray can do, because
with 3D Blu-Ray, subtitles can have a different depth per subtitle
track *and* per video frame.

Best regards, madshi.

More information about the Matroska-devel mailing list