This updates the video rendering loop in VLCOpenGLES2VideoView to use
kCFRunLoopCommonMode instead of kCFRunLoopDefaultMode.
Using CADisplayLink with the default run loop mode causes frame updates
to pause during common UI interactions, such as pulling down the
control center. This results in frozen video even though audio
continues normally.
Using kCFRunLoopCommonMode ensures frame updates even when the player
is not in focus. This matches the behavior used by Apple in AVPlayer.
The INPUT_EVENT_EOF listener can return true if it handles the EOF itself.
In that case, the input_thread_t will wait for any controls
(input_Stop() will definitively stop it).
No changes if the event is not handled.
The Fifo lock can be held while calling `decoder_Notify()`. Therefore,
don't try to avoid calling `decoder_Notify()` with the lock.
```
vlc_input_decoder_t
=> es_out.c (es_out lock can't be held from these callbacks)
=> input_SendEvent().
```
Previously, on_stopping_current_media was emitted only when
the user stopped the media.
The callback notification is moved into vlc_player_input_HandleState,
ensuring it is reported when media reaches EOS, errors out,
or is stopped by the user.
Ensure that the player notifies the user about the stopping state
after the underlying input_thread begins stopping. Also, this is
required for the next commit, where the on_stopping_current_media
event notification will be moved inside vlc_player_input_HandleState
The snap package also builds the missing contribs.
They are currently the same between the debian-contrib and the snap job,
except the snap job also builds live555.
Don't set the date to VLC_TICK_INVALID when seeking to 0.
This was causing an invalid PCR and a quick EOF.
```
[00007f4780091e20] main input debug: control type=15
[00007f4780091e20] main input debug: control type=3
[00007f4780091e20] main input debug: ES_OUT_RESET_PCR called
[00005653d9251a90] [qt] qt generic debug: on_player_buffering
[00007f4780091e20] main input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[00007f4780091e20] main input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[00007f4780091e20] main input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
...
[00007f4780091e20] main input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[00007f4780091e20] main input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[00007f4780091e20] main input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[00007f4780091e20] main input debug: EOF reached
```
Move each tests in a separate file/program.
- This will make debugging from the CI easier.
- This will allow running player tests in parallel
- This will fix timeout will one very long test, that could last more
than 10 seconds
- This will allow adding more tests, that could take more time
Fixes#27105
Fixes the following runtine warning:
"Unsupported timestamp modifications done by chain_interactive"
As a result, pictures are skipped for real when decreasing fps.