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 983d58e..48837f5 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;
     }