[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