[FFmpeg-devel] [PATCH] dts parser fails to parse DTS-HD Master streams due to changing frame size

madshi dear
Thu Jul 24 21:24:27 CEST 2008

 > As for DTS HD, I don't know a way to determine fixed frame
 > size (for now)

It's really easy. A DTS-HD stream has always one core frame,
then one DTS-HD data block, then one core frame, then one
DTS-HD data block. Here's how the DTS-HD data blocks are

32bit -> magic (must be 0x64582025)
8bit -> unknown (can be ignored)
2bit -> index (can be ignored)
1bit -> isBlownUpHeader

if (isBlownUpHeader)
  12bit -> header size
  20bit -> full DTS-HD data block size
} else {
  8bit -> header size
  16bit -> full DTS-HD data block size

I think this is all you need to add DTS-HD support to the
libav parser. Please note that you can NOT rely on that the
DTS-HD blocks have a constant frame size. For lossless
compression each DTS-HD block has a different size. Of
course the DTS core adheres to all the usual DTS rules
including constant frame size.

 > neither have samples to test.

I've sent Benjamin a whole bunch of various different
DTS-HD samples.

If you need any more information, just let me know...

Regards, madshi.

More information about the ffmpeg-devel mailing list