qtdemux: tweak wam support
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Tue, 9 Nov 2010 10:45:00 +0000 (11:45 +0100)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 3 Dec 2010 14:50:31 +0000 (15:50 +0100)
... with some comment and portability macros.

gst/qtdemux/qtdemux.c

index 588c780..2b30d05 100644 (file)
@@ -6353,6 +6353,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
         GstBuffer *buf;
         gint version = 1;
         /* from http://msdn.microsoft.com/en-us/library/dd757720(VS.85).aspx */
+        /* FIXME this should also be gst_riff_strf_auds,
+         * but the latter one is actually missing bits-per-sample :( */
         typedef struct
         {
           gint16 wFormatTag;
@@ -6394,10 +6396,11 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
         gst_caps_set_simple (stream->caps,
             "codec_data", GST_TYPE_BUFFER, buf,
             "wmaversion", G_TYPE_INT, version,
-            "block_align", G_TYPE_INT, wfex->nBlockAlign,
-            "bitrate", G_TYPE_INT, wfex->nAvgBytesPerSec,
-            "width", G_TYPE_INT, wfex->wBitsPerSample,
-            "depth", G_TYPE_INT, wfex->wBitsPerSample, NULL);
+            "block_align", G_TYPE_INT, GST_READ_UINT16_LE (&wfex->nBlockAlign),
+            "bitrate", G_TYPE_INT, GST_READ_UINT32_LE (&wfex->nAvgBytesPerSec),
+            "width", G_TYPE_INT, GST_READ_UINT16_LE (&wfex->wBitsPerSample),
+            "depth", G_TYPE_INT, GST_READ_UINT16_LE (&wfex->wBitsPerSample),
+            NULL);
         gst_buffer_unref (buf);
 
         if (codec_name) {