I'm using Python 3.7 and wxPython 4.0.6. I use the same code on both MacOS and Windows.
tldr:
Can anyone confirm for me that wx.media.EVT_MEDIA_LOADED does not get called on Windows?
Also, there are some instances where my EVT_TIMER events are not getting fired. Do Timer events depend on idle time to fire?
Long version:
For the last 20 years, I've written and maintained a cross-platform program that specializes in the academic analysis of the contents of video and audio data. I have relied upon a 32-bit Python 2.7 wxPython 3.0.2.0 version of my software for the last several years, and am finally taking the plunge to upgrade to Python 3.7 wxPython 4.0.6.
One feature of my software is that it supports multiple simultaneous media files. I have historically relied on the EVT_MEDIA_LOADED event to allow me to wait for large data files to load before working on tasks relating to synchronizing the files into a visually unified data stream. Sometimes files are very large, sometimes there are multiple files, and sometimes files must be pulled off a network server, which slows the load process down. EVT_MEDIA_LOADED has historically worked very well for this.
At present, my EVT_MEDIA_LOADED handler never gets called on Windows like it does on MacOS. Is that event handler broken on Windows in wxPython 4.0.6?
I am also noticing that EVT_TIMER events don't seem to fire 100% of the time. They work perfectly most of the time, but every once in a while, they fail. My current hypothesis is that this happens primarily during the loading of some media files sometimes. (The failure is sporadic, inconsistent, and hard to reproduce across test runs. It only happens with some files, only with video as opposed to audio, and only with certain video formats, perhaps different formats on different OSes. It also might be more likely the first time I load a file after I've taken a break, when maybe the computer or network doesn't have the data cached.) I think I've noticed that my wx.EVT_IDLE events are not firing when the timers fail, but I'm still working to confirm that. EVT_IDLE call frequency also varies a surprising amount based on media formats.
(I originally tried to use Timers to track media position, as was in multiple sample programs I found. When that wasn't completely reliable, I shifted to a wx.EVT_IDLE model. It's better, but still not perfect.)
So are Timers linked to idle time? Does this make any sense? Does anyone have any alternate theories for me to look into?
Thanks in advance,
David
···
--
David K. Woods, Ph.D.
President, Researcher, and Lead Transana Developer
https://www.transana.com
--
You received this message because you are subscribed to the Google Groups "wxPython-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wxpython-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wxpython-users/4206aaf8-bd37-cccc-2dc3-200f455d7a96%40gmail.com.