audio: Fix DTS IEC61937 payloading
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Fri, 25 May 2012 10:27:45 +0000 (15:57 +0530)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 25 May 2012 10:38:32 +0000 (12:38 +0200)
DTS type I-III specify the burst length in bits. Only type IV (which we
do not currently support) needs it to be specified in bytes. Thanks to
Julien Moutte for pointing this out.

gst-libs/gst/audio/gstaudioiec61937.c

index 983d58ec72ba582759acc8bc628bb4ffcaf7624a..48837f5db7973bb910c31d76cd7ae0ab43295418 100644 (file)
@@ -236,9 +236,10 @@ gst_audio_iec61937_payload (const guint8 * src, guint src_n, guint8 * dst,
        *     bit  0-4  - data type (11 = type I, 12 = type II,
        *                            13 = type III) */
       dst[five] = 11 + (blocksize / 1024);
-      /* Pd: bit 15-0  - frame size in bytes */
-      dst[six] = ((guint16) src_n) >> 8;
-      dst[seven] = ((guint16) src_n) & 0xff;
+      /* Pd: bit 15-0  - frame size, in bits (for type I-III) */
+      tmp = src_n * 8;
+      dst[six] = ((guint16) tmp) >> 8;
+      dst[seven] = ((guint16) tmp) & 0xff;
       break;
     }