[Matroska-users] Matroska-users Digest, Vol 114, Issue 2

Dan Hinsley danhi at danhinsley.com
Thu Jan 10 17:57:03 CET 2013


> I have a file with one segment, and no TimecodeScale in the Info segment.
> In the info segment there is a Duration element with a value of
0x48185800.
> When I run mkvinfo on the file, I get a duration of 156 seconds (which is
> correct).  Now the way that I read the spec is that the duration (with a
> default TimecodeScale of 1,000,000) should be the duration in msecs.  So I
> can?t figure out how to get from 1,209,554,944 to 156.

>>The segment duration is a floating point value, not an integer. Read
>>it into a IEEE 8bit floating point variable ("double" in C/C++, don't
>>know the equivalents in other languages).

I'm still floundering.  This appears to be a 4 byte floating point, which in
C appears to be of type Single.  But when I try ReadSingle, it comes up with
a bizarre number.  I looked at trying to decode it myself, but using the
first bit as a sign bit, the next 8 as the exponent and the rest as the
mantissa, doesn't make sense either.  Does 0x48185800 look correct for
decimal 156?  Any other tips on what I need to do to decode this value?

I appreciate the help,

Dan



More information about the Matroska-users mailing list