it is a Wechat problem, when we open video call and open camera, at first time it is normal , but the second time we open video call ,It is abnormal. and report open fd failed, and the fd is busy. we analyze this problem and think it should close fd in cleanup_stream function ,and not in destroy function.
--------------------------------------------------------------------------------------------------------
04d0:trace:qcap:vfw_capture_create Created VFW capture filter 007D1A30.
04d0:trace:qcap:PPB_Load filter 007D1A30, bag 007D1A24, error_log 00000000.
04d0:trace:qcap:v4l_device_create Opening device /dev/video0.
libv4l2: error setting pixformat: Device or resource busy
04d0:err:qcap:set_caps Failed to set pixel format: Device or resource busy.
04d0:trace:qcap:DllCanUnloadNow .
-----------------------------------------------------------------------------------
we need to be able to access the fd >even after IBaseFilter::Stop() [e.g. to query or set properties, or to >restart the stream.] ---->maybe we need more changes
在 2021-06-05 05:57:40,"Zebediah Figura (she/her)" <zfigura@codeweavers.com> 写道: >Hello Keming, thanks for the patch! > >Unfortunately this can't work as-is; we need to be able to access the fd >even after IBaseFilter::Stop() [e.g. to query or set properties, or to >restart the stream.] > >Can you perhaps provide more details about the problem you are trying to >solve? > >ἔρρωσο, >Zebediah