[Ffmpeg-devel] Matroska Patch
Steve Lhomme
steve.lhomme
Thu Mar 23 12:09:03 CET 2006
M?ns Rullg?rd wrote:
> Ian Caulfield said:
>> Is it just me, or will the block_time < 0 always be false, as it's an
>> unsigned value? (Obviously this bug isn't introduced by the patch)
>
> No, block_time is signed. It's the cluster time that's unsigned. Thank
> the matroska devs for this mess. Was it really necessary?
Yes :)
We tried to reduce the container overhead as much as possible. So
instead of storing a large timecode with each Block, we divided it in 2
parts, the big one in the Cluster (also usefull to seek quickly in the
file without using Meta Seek or Cue Header) and a small one in each Block.
Given we store data in coding order, it's very possible that you create
a new Cluster and the first frame(s) have a timecode lower than the
Cluster time, so the difference (offset compared to the cluster time)
needs to be signed. The Cluster time is usually the biggest timecode
found in the previous Cluster (but it can be different, depending on the
muxer).
Steve
More information about the ffmpeg-devel
mailing list