diff --git a/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java b/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java index 563dbab1e7df31d3325505084c535c47367018aa..4930b75e8ab3781a296fa3c14cdcd1bef4caa031 100644 --- a/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java +++ b/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java @@ -118,12 +118,20 @@ public PullBufferDataSource getWrappedDataSource() @Override public Object getControl(String controlType) { - /* - * The super implements a delegate so we can be sure that it delegates - * the invocation of Controls#getControl(String) to the wrapped - * dataSource. - */ - return AbstractControls.queryInterface(dataSource, controlType); + if (InbandDTMFDataSource.class.getName().equals(controlType) + || MuteDataSource.class.getName().equals(controlType)) + { + return this; + } + else + { + /* + * The super implements a delegate so we can be sure that it + * delegates the invocation of Controls#getControl(String) to the + * wrapped dataSource. + */ + return AbstractControls.queryInterface(dataSource, controlType); + } } /** diff --git a/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java b/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java index 66ee434fb68e243c53d86a3df511005d8c2613aa..cf0170c1b98a9f638d99c35d966e4ff3a6fc8b46 100644 --- a/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java +++ b/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java @@ -68,12 +68,20 @@ public RewritablePushBufferDataSource(PushBufferDataSource dataSource) @Override public Object getControl(String controlType) { - /* - * The super implements a delegate so we can be sure that it delegates - * the invocation of Controls#getControl(String) to the wrapped - * dataSource. - */ - return AbstractControls.queryInterface(dataSource, controlType); + if (InbandDTMFDataSource.class.getName().equals(controlType) + || MuteDataSource.class.getName().equals(controlType)) + { + return this; + } + else + { + /* + * The super implements a delegate so we can be sure that it + * delegates the invocation of Controls#getControl(String) to the + * wrapped dataSource. + */ + return AbstractControls.queryInterface(dataSource, controlType); + } } /**