You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When channels are activated before Connect they will be added to ActiveChannels and ActivateChannelImpl will be called for them by Connect.
For the Orbbec cameras this will cause a malfunction of both ZImage and Point3DImage are activated before Connect. As a result none of these channels will actually be activated.
Possible actions to solve this:
Drop support for the Point3DImage channel in the Orbbec.
The channel is broken anyways and only computed by the driver.
This would fix the problem for the Orbbec camera only.
Replace the IsChannelActive checks in ActivateChannel by DepthStream.isValid().
This would fix the problem for the Orbbec camera only.
Modify the ActivateChannelImpl behaviour:
Return true if the channel was activated and no further action is needed.
Return false if channel activation was not possible, and ActivateChannelImpl should be called again for this channel after ConnectImpl.
Based on the return value, the channel would be added to ActiveChannels or a new list, e.g. ChannelsToActivateAfterConnect (naming suggestions welcome).
I would then also rename ActivateChannelImpl to TryActivateChannelImpl.
The behaviour of DeactivateChannel must be changed accordingly (e.g. activating and deactivating a channel before Connect should result in that channel not being in any list.
This would be a larger change to the internal interface and solve it for all cameras.
The bug is fixed using option 2 in 9559aed @f00f:
We could transfer option 3 in an own enhancement ticket or just delete it completely - what do you think?
When channels are activated before
Connect
they will be added toActiveChannels
andActivateChannelImpl
will be called for them byConnect
.For the Orbbec cameras this will cause a malfunction of both
ZImage
andPoint3DImage
are activated beforeConnect
. As a result none of these channels will actually be activated.Possible actions to solve this:
Point3DImage
channel in the Orbbec.The channel is broken anyways and only computed by the driver.
This would fix the problem for the Orbbec camera only.
IsChannelActive
checks inActivateChannel
byDepthStream.isValid()
.This would fix the problem for the Orbbec camera only.
ActivateChannelImpl
behaviour:Return
true
if the channel was activated and no further action is needed.Return
false
if channel activation was not possible, andActivateChannelImpl
should be called again for this channel afterConnectImpl
.Based on the return value, the channel would be added to
ActiveChannels
or a new list, e.g.ChannelsToActivateAfterConnect
(naming suggestions welcome).I would then also rename
ActivateChannelImpl
toTryActivateChannelImpl
.The behaviour of
DeactivateChannel
must be changed accordingly (e.g. activating and deactivating a channel beforeConnect
should result in that channel not being in any list.This would be a larger change to the internal interface and solve it for all cameras.
Originally posted by @sisiplac in #194
The text was updated successfully, but these errors were encountered: