[MPlayer-dev-eng] [PATCH] libass: fix parsing of tracks extracted from containers
Evgeniy Stepanov
eugeni.stepanov at gmail.com
Tue Sep 9 17:47:54 CEST 2008
On Tuesday 09 September 2008 18:32:22 Aurelien Jacobs wrote:
> > I completely agree with this. There is no reason to prefer .ass format to
> > the one used in Matroska containers.
>
> Well, let's see.
> Here we have 2 different formats. One which can contain the subtitle
> display duration through the mean of start time and end time (aka .ass
> format) and one which can't store this information (aka matroska's ass
> format). Matroska is the only container which can store display duration by
> itself. So matroska's ass format can't be used in any other container. So
> it just can't be used as a kind of universal format.
> The only format left is standard .ass format (unless you can show me
> another more popular format which can store display duration by itself).
> I don't say that standard .ass is perfect or anything, but that's the least
> worst format we have which contains display duration, and no one came up
> with anything better up to now.
I like this patch in general. If the demuxer is that intelligent, ReadOrder is
not needed at all.
But why does the contents of demux packets have to contain display duration?
This information is already available from other packet fields. Imagine that
you want to apply some transformation to start time and/or duration of a group
of packets. For video and audio packets, changing corresponding packet fields
is enough, while for subtitle packets you also have to edit packet contents.
What about storing them like they are in matroska, but without a ReadOrder
field? If a container does not support packet durations, it's muxer can rebuild
.ass format or whatever.
Or we could store them exactly like in matroska and other demuxers will make
up ReadOrder using stream position.
More information about the MPlayer-dev-eng
mailing list