From 70c84b352b1145cb307bf77ac36cf570ce00a5e6 Mon Sep 17 00:00:00 2001
From: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Date: Tue, 8 Dec 2015 14:16:44 -0500
Subject: [PATCH] video: verify AVDevice type

This commit adds type verification when an AVCaptureDevice is added.
The notification that a new device got connected, is received for both
video and audio devices.

Change-Id: Id48fb4182589234df164ab6337fb5d4863987a15
Tuleap: #149
---
 src/media/video/osxvideo/video_device_monitor_impl.mm | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/media/video/osxvideo/video_device_monitor_impl.mm b/src/media/video/osxvideo/video_device_monitor_impl.mm
index d67d1bbb3b..0cbd9af06c 100644
--- a/src/media/video/osxvideo/video_device_monitor_impl.mm
+++ b/src/media/video/osxvideo/video_device_monitor_impl.mm
@@ -98,15 +98,17 @@ void VideoDeviceMonitorImpl::start()
                                     object:nil
                                     queue:[NSOperationQueue mainQueue]
                                     usingBlock:^(NSNotification *note) {
-                                      AVCaptureDevice* dev = (AVCaptureDevice*)note.object;
-                                      monitor_->addDevice([[dev uniqueID] UTF8String]);
+                                        auto dev = (AVCaptureDevice*)note.object;
+                                        if([dev hasMediaType:AVMediaTypeVideo])
+                                            monitor_->addDevice([[dev uniqueID] UTF8String]);
                                     }];
     id deviceWasDisconnectedObserver = [notificationCenter addObserverForName:AVCaptureDeviceWasDisconnectedNotification
                                         object:nil
                                         queue:[NSOperationQueue mainQueue]
                                         usingBlock:^(NSNotification *note) {
-                                          AVCaptureDevice* dev = (AVCaptureDevice*)note.object;
-                                          monitor_->removeDevice([[dev uniqueID] UTF8String]);
+                                            auto dev = (AVCaptureDevice*)note.object;
+                                            if([dev hasMediaType:AVMediaTypeVideo])
+                                                monitor_->removeDevice([[dev uniqueID] UTF8String]);
                                         }];
     observers = [[NSArray alloc] initWithObjects:deviceWasConnectedObserver, deviceWasDisconnectedObserver, nil];
 }
-- 
GitLab