[Matroska-devel] S_DVBSUB

Dan Haddix dan6992 at hotmail.com
Thu Feb 24 00:02:00 CET 2011

> Date: Wed, 23 Feb 2011 18:28:16 +0100
> Subject: Re: [Matroska-devel] S_DVBSUB
> From: slhomme at matroska.org
> To: dan6992 at hotmail.com; matroska-devel at lists.matroska.org
> On Tue, Feb 22, 2011 at 10:47 PM, Dan Haddix <dan6992 at hotmail.com> wrote:
> > No. The decoder uses the page ID to decide whether or not to display the
> > subtitle based on the composition and ancillary IDs of the selected stream.
> > There is no standard way of telling the decoder to ignore the page ID and
> > decode everything. All we can do is trick the decoder into displaying
> > everything by resetting the page ID on every segment to 1 during muxing and
> > then setting the composition and ancillary IDs for all MKV tracks to 1 in
> > the player/demuxer. The only other way to do it would be to store the real
> > composition and ancillary IDs somewhere in the MKV track, but you seemed to
> > be against that originally.
> Well, I don't really see why we have to change a value in the stream
> if in the end the decoder should not handle it (since the track was
> already selected in Matroska). I seems that DVBSUB is a poorly defined
> codec if decoders cannot bypass that step.
> But in the end I don't care, as we already have to copy common data
> into Matroska, I suppose the header in the DVBSUB source packets will
> already be managed, so changing it to any other value shouldn't be a
> big issue. Just more for on the muxing side.
> -- 
> Steve Lhomme
> Matroska association Chairman

The page ID of the segments have to match either the composition or ancillary ID set for the track or the decoder will ignore them. Some decoders may have the ability to be set to a "decode all" mode and ignore the page ID, but there is no standard way of doing that so I'm not sure we can depend on it always being available in every application. Plus we also have to think about applications, like VideoReDo, which have the ability to convert from MKV to TS. A TS file needs to have the proper composition and ancillary IDs stored in it's PMT. If we don't reset the page IDs of every segment to a static, known, value or store the original composition and ancillary IDs in the MKV somewhere then we'd have to scan the entire file checking every segment just to determine the proper values. That is far from ideal.

Maybe we should just go back to my original idea of storing the original PMT data in CodecPrivate. If the playing app knows how to read that then it can, if not then it can just set it's DVB subtitle decoder to "decode all" and it will still work. That way we don't have to mess with the page ID in the original segments and we'll have the proper composition and ancillary IDs available for applications that want to convert to TS.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.matroska.org/pipermail/matroska-devel/attachments/20110223/11097fa1/attachment.html>

More information about the Matroska-devel mailing list