diff --git a/sys/applemedia/qtkitvideosrc.m b/sys/applemedia/qtkitvideosrc.m
index 67388f0..195be0e 100644
--- a/sys/applemedia/qtkitvideosrc.m
+++ b/sys/applemedia/qtkitvideosrc.m
@@ -24,6 +24,7 @@
 #import <QTKit/QTKit.h>
 
 #define DEFAULT_DEVICE_INDEX  -1
+#define DEFAULT_DEVICE_TYPE  0
 
 #define DEVICE_YUV_FOURCC     "UYVY"
 #define DEVICE_FPS_N          30
@@ -95,6 +96,7 @@ GST_BOILERPLATE (GstQTKitVideoSrc, gst_qtkit_video_src, GstPushSrc,
   GstPushSrc *pushSrc;
 
   int deviceIndex;
+  int deviceType;
 
   GstAMBufferFactory *bufferFactory;
   QTCaptureSession *session;
@@ -115,6 +117,7 @@ GST_BOILERPLATE (GstQTKitVideoSrc, gst_qtkit_video_src, GstPushSrc,
 - (id)initWithSrc:(GstPushSrc *)src;
 
 @property int deviceIndex;
+@property int deviceType;
 
 - (BOOL)openDevice;
 - (void)closeDevice;
@@ -149,7 +152,7 @@ GST_BOILERPLATE (GstQTKitVideoSrc, gst_qtkit_video_src, GstPushSrc,
     pushSrc = src;
 
     deviceIndex = DEFAULT_DEVICE_INDEX;
-
+    deviceType = 0;
     device = nil;
 
     gst_base_src_set_live (baseSrc, TRUE);
@@ -160,11 +163,15 @@ GST_BOILERPLATE (GstQTKitVideoSrc, gst_qtkit_video_src, GstPushSrc,
 }
 
 @synthesize deviceIndex;
+@synthesize deviceType;
 
 - (BOOL)openDevice
 {
   GError *gerror;
   NSString *mediaType = QTMediaTypeVideo;
+  if(deviceType == 1) {
+  	mediaType = QTMediaTypeMuxed;
+  }
   NSError *error = nil;
 
   bufferFactory = [[GstAMBufferFactory alloc] initWithError:&gerror];
@@ -464,7 +471,8 @@ openFailed:
 enum
 {
   PROP_0,
-  PROP_DEVICE_INDEX
+  PROP_DEVICE_INDEX,
+  PROP_DEVICE_TYPE
 };
 
 static void gst_qtkit_video_src_finalize (GObject * obj);
@@ -528,6 +536,12 @@ gst_qtkit_video_src_class_init (GstQTKitVideoSrcClass * klass)
           -1, G_MAXINT, DEFAULT_DEVICE_INDEX,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_DEVICE_TYPE,
+      g_param_spec_int ("device-type", "Device Type",
+          "0 for video, 1 for muxed (Firewire DV)",
+          0, G_MAXINT, DEFAULT_DEVICE_TYPE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   GST_DEBUG_CATEGORY_INIT (gst_qtkit_video_src_debug, "qtkitvideosrc",
       0, "Mac OS X QTKit video source");
 }
@@ -567,6 +581,9 @@ gst_qtkit_video_src_get_property (GObject * object, guint prop_id, GValue * valu
     case PROP_DEVICE_INDEX:
       g_value_set_int (value, impl.deviceIndex);
       break;
+    case PROP_DEVICE_TYPE:
+      g_value_set_int (value, impl.deviceType);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -583,6 +600,9 @@ gst_qtkit_video_src_set_property (GObject * object, guint prop_id,
     case PROP_DEVICE_INDEX:
       impl.deviceIndex = g_value_get_int (value);
       break;
+    case PROP_DEVICE_TYPE:
+      impl.deviceType = g_value_get_int (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
