- video synchronization improvements. Read note below.
- retry on reading errors (for 'Media downloading' --> foo_youtube). Previously retry was only on connection initiation.
- settings for Internet requests retry on fail. Also retry now goes not immediately but after a pause. Delay time and the retry count are configurable through Advanced preferences.
- panels border control. Border on DUI panels now can be removed (in CUI panels this already was). Border of search edit box in 'Search (Integrated)' panel now removable too. Also added switch to use theme color for border instead of drawing it by the system (in CUI used 'Active item frame' color, in DUI - background color with this rule).
- SOCKS proxy support. More info in Help: Proxy.
About synchronization. Finally gave up with trying to do this transparently for the program. Now when playback switches to the next clip (in regular way, not by the user request), component explicitly restarts playback. Note, component intervenes in playback only if the next track is Youtube clip and only if video playback is enabled. Below is details of how it is done.
The start of clip playback consist of two stages: analysis of the page(s) to retrieve links to media files and actual media file opening for decode. Now because of playback restart, the same clip starts to play twice. To optimize this, info of the playing track now is cached so at the second start can be skipped analysis stage. At other hand, at first start is not need decoding so there skipped the file opening stage: decoder just waits until it will be closed and does not give any data. With this also solved the case when small portion of audio data from the first start is played before the second start was completed. All this concerns only to opening for playback, if track opened for other purposes (for example by Waveform seekbar), decoding will be done in the usual way.
Also, while did all this, accidentally found a way to reduce silence after seek.
Changelog Version details