--- /tmp/oss/oss4-audio.c	2010-03-29 22:13:19.805472893 -0500
+++ sys/ossv4/oss4-audio.c	2010-03-29 22:52:57.281482705 -0500
@@ -425,6 +425,11 @@ gst_oss4_audio_probe_caps (GstObject * o
 
   GST_LOG_OBJECT (obj, "%s formats : 0x%08x", (output) ? "out" : "in", formats);
 
+  int all_formats = AFMT_MU_LAW | AFMT_A_LAW | AFMT_S32_LE | AFMT_S32_BE |
+  	AFMT_S24_LE | AFMT_S24_BE | AFMT_S24_PACKED | AFMT_S16_LE | AFMT_S16_BE
+  	| AFMT_U16_LE | AFMT_U16_BE | AFMT_S8 | AFMT_U8;
+  int other_formats = (all_formats & ~ai.oformats);
+
   caps = gst_caps_new_empty ();
 
   for (i = 0; i < G_N_ELEMENTS (fmt_map); ++i) {
@@ -433,6 +438,12 @@ gst_oss4_audio_probe_caps (GstObject * o
     }
   }
 
+  for (i = 0; i < G_N_ELEMENTS (fmt_map); ++i) {
+    if ((other_formats & fmt_map[i].oss_fmt)) {
+      gst_oss4_append_format_to_caps (fmt_map[i].oss_fmt, caps);
+    }
+  }
+
   gst_caps_do_simplify (caps);
   GST_LOG_OBJECT (obj, "formats: %" GST_PTR_FORMAT, caps);
 
