diff --git a/home/lg/org_qt/gst-plugins-good-1.4.5/gst/isomp4/qtdemux.c b/qtdemux.c
index ae1491e..cd1614f 100644
--- a/home/lg/org_qt/gst-plugins-good-1.4.5/gst/isomp4/qtdemux.c
+++ b/qtdemux.c
@@ -10939,11 +10939,31 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
   switch (fourcc) {
     case GST_MAKE_FOURCC ('N', 'O', 'N', 'E'):
     case GST_MAKE_FOURCC ('r', 'a', 'w', ' '):
-      _codec ("Raw 8-bit PCM audio");
-      caps = gst_caps_new_simple ("audio/x-raw",
-          "format", G_TYPE_STRING, "U8",
-          "layout", G_TYPE_STRING, "interleaved", NULL);
-      break;
+    {
+      gchar *str;
+      gint depth;	
+      GstAudioFormat format;
+
+      depth = stream->bytes_per_packet * 8;	
+      if (depth == 8) {	
+       GST_DEBUG_OBJECT (qtdemux, "Raw 8-bit PCM audio");	
+        _codec ("Raw 8-bit PCM audio");
+        caps = gst_caps_new_simple ("audio/x-raw",	
+            "format", G_TYPE_STRING, "U8",	
+           "layout", G_TYPE_STRING, "interleaved", NULL);	
+      } else {	
+         endian = G_BIG_ENDIAN;
+        format = gst_audio_format_build_integer (TRUE, endian, depth, depth);	
+        str = g_strdup_printf ("Raw %d-bit PCM audio", depth);	
+        GST_DEBUG_OBJECT (qtdemux, "%s", str);	
+        _codec (str);
+        g_free (str);	
+        caps = gst_caps_new_simple ("audio/x-raw",	
+            "format", G_TYPE_STRING, gst_audio_format_to_string (format),	
+            "layout", G_TYPE_STRING, "interleaved", NULL);	
+      }
+        break;
+    }
     case GST_MAKE_FOURCC ('t', 'w', 'o', 's'):
       endian = G_BIG_ENDIAN;
       /* fall-through */
