[vlc-devel] isom ctts
David Flynn
davidf+nntp at woaf.net
Wed Oct 29 00:44:03 CET 2008
On 2008-10-28, Laurent Aimar <fenrir at via.ecp.fr> wrote:
> On Tue, Oct 28, 2008, David Flynn wrote:
>> > I do not thing it is a problem (for example .mp4 specs does work like this).
>>
>> btw, mp4 screwed up as well (see -ve ctts).
>
> MPEG4 ISO does not allow negative DTS inside mp4
ISOM defines the initial DT(0) to be zero (dt(n) is constructed from the
stts table)
stts is a table containing offsets to apply to the dt(n) values to end up
with CT(n). Unfortunately, because they've normalized DT(0) = 0, any
stream with reordering, can't produce a CT of zero. (however, for the
audio stream it is). So you end up with the same old a/v sync fault and
you have to work around it in a really horrible way (ie, other things
need to be aware of the codec reordering delay in order to move the
entire stream along the timeline. Whereas if it were done properly,
it would be a non issue)
In ISOM, sample_offset is unsigned -- so the above problem occurs.
In quictime, sample_offset is signed.
You *will* encounter mp4 files with signed sample_offset. From when i
last spoke to apple about it, there may be a move afoot to relax the
restriction in isom/mp4, because it is broken by design and causes
issues.
..david
More information about the vlc-devel
mailing list