Disables the local video display in calls when the QTKit CaptureDevice on Mac OS X is used in order to allow its testing, especially on Snow Leopard where CIVIL does not work.

cusax-fix
Lyubomir Marinov 16 years ago
parent df7e047d3a
commit ad381381cf

@ -86,10 +86,35 @@ public void addVideoListener(VideoListener listener)
@Override
protected DataSource createCaptureDevice()
{
/* create our DataSource as Cloneable so we can both use it
* to display local video and stream to remote peer
/*
* Create our DataSource as SourceCloneable so we can use it to both
* display local video and stream to remote peer.
*/
/*
* FIXME By overriding the super implementation, we have disabled muting
* support.
*/
DataSource captureDevice = Manager.createCloneableDataSource(getDevice().createOutputDataSource());
DataSource captureDevice = getDevice().createOutputDataSource();
if (captureDevice != null)
{
MediaLocator locator = captureDevice.getLocator();
/*
* FIXME There is no video in calls when using the QuickTime/QTKit
* CaptureDevice so the local video support is disabled for it now.
*/
if ((locator == null)
|| !QuickTimeAuto.LOCATOR_PROTOCOL
.equals(locator.getProtocol()))
{
DataSource cloneableDataSource
= Manager.createCloneableDataSource(captureDevice);
if (cloneableDataSource != null)
captureDevice = cloneableDataSource;
}
}
return captureDevice;
}
@ -180,7 +205,11 @@ protected boolean fireVideoEvent(
*/
private Player getLocalPlayer()
{
DataSource dataSource = ((SourceCloneable)getCaptureDevice()).createClone();
DataSource captureDevice = getCaptureDevice();
DataSource dataSource
= (captureDevice instanceof SourceCloneable)
? ((SourceCloneable) captureDevice).createClone()
: null;
/* create local player */
if (localPlayer == null && dataSource != null)
@ -219,9 +248,9 @@ public void controllerUpdate(ControllerEvent event)
/**
* Gets notified about <tt>ControllerEvent</tt>s generated by
* {@link #player}.
* {@link #localPlayer}.
*
* @param event the <tt>ControllerEvent</tt> specifying the
* @param controllerEvent the <tt>ControllerEvent</tt> specifying the
* <tt>Controller</tt> which is the source of the event and the very type of
* the event
*/

Loading…
Cancel
Save