[vlc-commits] [Git][videolan/vlc][master] 28 commits: player: fix typos in doc

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Sun Dec 7 12:35:35 UTC 2025



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
d456e562 by Thomas Guillem at 2025-12-07T13:14:33+01:00
player: fix typos in doc

- - - - -
5310f73c by Thomas Guillem at 2025-12-07T13:14:33+01:00
player: add vlc_player_SendEventCount

Returns the number of events sent.

- - - - -
1619f2ae by Thomas Guillem at 2025-12-07T13:14:33+01:00
player: add on_next_frame_status

Rework input to send next-frame status via player callbacks. If not
listeners is registered, print the error via a dialog error.

- - - - -
6c17bb3f by Thomas Guillem at 2025-12-07T13:14:33+01:00
vout: don't reset displayed.timestamp on flush

This variable is not used anymore but will be used by next commits.
This timestamp is the original one coming from the decoder.

- - - - -
f1f13c45 by Thomas Guillem at 2025-12-07T13:14:33+01:00
vout: return the last displayed pts when flushed

- - - - -
0e5af1ea by Thomas Guillem at 2025-12-07T13:14:33+01:00
input: refactor, add ControlSetTime()

Non functional changes.

- - - - -
b395cea5 by Thomas Guillem at 2025-12-07T13:14:33+01:00
input: refactor, add ControlSetPosition()

Non functional changes.

- - - - -
73289570 by Thomas Guillem at 2025-12-07T13:14:33+01:00
input: save the can_seek state

- - - - -
753a6776 by Thomas Guillem at 2025-12-07T13:14:33+01:00
decoder: move function declaration up

Not between sub dec functions.

- - - - -
7dedecf9 by Thomas Guillem at 2025-12-07T13:14:33+01:00
decoder: change frames_countdown sign

frames_countdown will need to be negative for previous-frame.

- - - - -
1038229e by Thomas Guillem at 2025-12-07T13:14:33+01:00
input: add vlc_input_decoder_StopFrameNext()

This function will clean the previous-frame (or next-frame if any)
context

- - - - -
02ac3b58 by Thomas Guillem at 2025-12-07T13:14:33+01:00
es_out: use vlc_input_decoder_StopFrameNext()

Call vlc_input_decoder_StopFrameNext() when resuming from next-frame, or
when flushing.
Rework EsOutStopNextFrame() to return the next frame es, to prevent it
for being flushed.

Not functional changes, as vlc_input_decoder_StopFrameNext() does
nothing.

- - - - -
7b067659 by Thomas Guillem at 2025-12-07T13:14:33+01:00
es_out: refactor, add EsOutSetJitter()

No functional changes.

- - - - -
eb020ab4 by Thomas Guillem at 2025-12-07T13:14:33+01:00
es_out: initialise variables explicitly

- - - - -
7f12496e by Thomas Guillem at 2025-12-07T13:14:33+01:00
es_out: add private ES_OUT_PRIV_RESET_PCR_FRAME_PREV

Will be triggered from decoders, when seeking to search for a previous
frame. The only difference with ES_OUT_RESET_PCR is that the frame
next/previous context is not stopped and we ensure we have enough
buffering to reach the previous frame.

- - - - -
620d3f28 by Thomas Guillem at 2025-12-07T13:14:33+01:00
decoder: use intermediate variable for pool_size

+ add a comment.

- - - - -
9b13d0eb by Thomas Guillem at 2025-12-07T13:14:33+01:00
decoder: increase picture pool count

- - - - -
cd270d03 by Thomas Guillem at 2025-12-07T13:14:33+01:00
input: add previous-frame support

Add `decoder_prevframe.c` that handle most of the previous-frame logic:
trigger a seek to `current_frame - n` (n is 1 at the start).

Store 1 decoded frame until we reach the current frame. When the
previous frame is found, return it and trigger another seek when needed.
In case the seek missed the current frame, increase n and trigger
another seek.

This solution doesn't require more memory, it is able to play backward
"in real-time" (when pressing the previous-frame key) most of 1080p
videos.

It is also able to play 4K 60FPS videos with few slow-downs (when seeking).

Fixes #10252

- - - - -
551e7cd3 by Thomas Guillem at 2025-12-07T13:14:33+01:00
vlc_actions: add ACTIONID_FRAME_PREVIOUS

- - - - -
926d2954 by Thomas Guillem at 2025-12-07T13:14:33+01:00
libvlc-module: bind "key-frame-previous"

- - - - -
b1d8a24e by Thomas Guillem at 2025-12-07T13:14:33+01:00
hotkeys: handle ACTIONID_FRAME_PREVIOUS

- - - - -
cc507f9e by Thomas Guillem at 2025-12-07T13:14:33+01:00
preparser: don't seek to invalid time/pos

Like it's done by vlc_player_t when using input_thread_t API.

Needed because the parser test seek to invalid position, and the next
commit will assert the seek time are valid.

- - - - -
4ce84250 by Thomas Guillem at 2025-12-07T13:14:33+01:00
mock: seek to deterministic audio/video pts

Respect video FPS and audio frame length when seeking.

Video PTS are now x(1/fps), even after a seek.
Audio PTS are now x(audio_sample_length), even after a seek.

- - - - -
bb95d7e8 by Thomas Guillem at 2025-12-07T13:14:33+01:00
player: timer: fix possible smpte_timer miss (prev-frame)

vlc_player_SendSmpteTimerSourceUpdates() already check if the new tc is
different than the previous one.

- - - - -
e9e8be01 by Thomas Guillem at 2025-12-07T13:14:33+01:00
player: also notify seek on the smpte_timer

- - - - -
8732a33f by Thomas Guillem at 2025-12-07T13:14:33+01:00
test: player: common: fix pts_delay option regression

Regression from d7d8e95e417beae9743836e5e1e32f57795bb01a

- - - - -
a076a0ed by Thomas Guillem at 2025-12-07T13:14:33+01:00
test: player: common: listen to prev/next frame events

- - - - -
70dfe153 by Thomas Guillem at 2025-12-07T13:14:33+01:00
test: player: add next_prev

See XXX, burst of next-frame is currently not working, buffering can be
missed.

- - - - -


33 changed files:

- include/vlc_actions.h
- include/vlc_player.h
- include/vlc_vout.h
- modules/control/hotkeys.c
- modules/demux/mock.c
- po/POTFILES.in
- src/Makefile.am
- src/input/decoder.c
- src/input/decoder.h
- + src/input/decoder_prevframe.c
- + src/input/decoder_prevframe.h
- src/input/es_out.c
- src/input/es_out.h
- src/input/es_out_timeshift.c
- src/input/input.c
- src/input/input_internal.h
- src/input/source.h
- src/input/test/es_out.c
- src/libvlc-module.c
- src/libvlccore.sym
- src/meson.build
- src/misc/actions.c
- src/player/input.c
- src/player/player.c
- src/player/player.h
- src/player/timer.c
- src/preparser/preparser.c
- src/video_output/video_output.c
- test/Makefile.am
- test/src/meson.build
- test/src/player/common.h
- + test/src/player/next_prev.c
- test/src/player/timers.h


The diff was not included because it is too large.


View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/efcc37c42452592611820a5d60a0b9413b556376...70dfe153df1a8f13a91185b06b1b886e45d058e2

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/efcc37c42452592611820a5d60a0b9413b556376...70dfe153df1a8f13a91185b06b1b886e45d058e2
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list