I was afraid actually this might be the case. The problem is that in order to use the segment seek for seamless looping ( at least in theory ), one has to initiate the loop with a seek event configured with some specific flags. I suppose this seek event is what are you perceiving as a small jump backwards.
Not sure what is the best way to deal with this and all available resources ( for seamless looping ) that I have found do not really show any graceful way to handle this at runtime but rather assume that seamless looping is configured at video startup.
Looking at it a bit more, seems like this direction overcomplicates things a bit. Took a step back and gave a different approach a try which might fit better in this case. Its using the
about-to-finish signal from
playbin which is usually used for gapless playback in video playlists. On top of that I added an environment option for using
playbin3 instead of
playbin which seems to have better support for gapless playback. In my tests locally here, with
playbin3, it looks like I m getting better results with this.
You can find this work in this branch.
You can run:
before running your application with this branch if you want to activate the use of
Hope this gives you better results - Let me know!