+NB: It is very likely that it may be necessary for this method to exist
for other types of video devices, but since I was unable to test them, I've put it under the most restrictive ifdef available.
+Ico Bukvic ico@vt.edu 2-18-07 +*/ +#ifdef HAVE_LIBDV
- if (m_videoHandle)m_videoHandle->stopTransfer();
+#endif /* DV4L */ }
this is weird and does not make full sense to me. e.g. if you have compiled Gem with v4l AND libdv support (2 drivers), then the stopTransfer() of the currently used handle will be called on destruction of the [pix_video] object. (this could as well be the V4L-handle; so the define does not exactly what it suggests that it might do)
i have replaced your suggestion by calling the destructor of all existing handles on destruction of pix_videoNEW.
please check whether this still fixes your issues.
I just checked out the CVS. Yes, your solution is more universal. I simply wasn't sure what were the implications without digging much deeper into the code so my proposed solution was simply a well isolated "hack" to expose the problem while limiting its impact on the overall functionality. Thanks for making this more transparent!
I will check this shortly and will let you know if it works as expected (I anticipate it will).
Best wishes,
Ico