Commit Graph

99872 Commits

Author SHA1 Message Date
Alaric Senat 451a8ce5ba sout: dlna: switch to the close callback 2023-11-16 09:40:00 +00:00
Alaric Senat 8f12f1a35e sout: display: switch to the close callback 2023-11-16 09:40:00 +00:00
Alaric Senat 1a6fdd6ff4 sout: delay: switch to the close callback 2023-11-16 09:40:00 +00:00
Alaric Senat a97b45e7d9 sout: cycle: switch to the close callback 2023-11-16 09:40:00 +00:00
Alaric Senat 894991ba22 sout: chromecast: switch to the close callback 2023-11-16 09:40:00 +00:00
Alaric Senat b9b5715065 sout: chromaprint: switch to the close callback 2023-11-16 09:40:00 +00:00
Alaric Senat 7a05c56414 sout: bridge: switch to the close callback 2023-11-16 09:40:00 +00:00
Alaric Senat 33f45ac8d6 sout: introduce a close callback
Adding the close callback in the object v-table instead of relying on
the module to do so.
This remove module dependency from the stream output object. From now
on, it will be possible to allocate and set-up stream outputs
programmatically without having to declare a module.

This is useful in scenario where a very contextual stream output filter
implementation is needed and we don't want to expose a module that the
user can manipulate. A good example of that is the current
`chromecast-proxy` submodule which inherit from it's parent internals
and drop data until the first I-Frame.

This approach of delegating object deletion to the v-table is already
taken by most modern module types.
2023-11-16 09:40:00 +00:00
Alaric Senat 015790eaad sout: use designated initializers for ops callbacks
Unify all the ops callbacks to designated initializers in C sources.
C++ code uses lambda initialization that is already common in the
codebase.
2023-11-16 09:40:00 +00:00
Thomas Guillem eeef593690 pulse: earlier return in stream_latency_cb() 2023-11-16 09:10:49 +00:00
Thomas Guillem a720d19eb0 pulse: remove overflow handling
It is now less likely to happen.

It's better to do nothing if it happens since the writing is already
paced via the callback and pa_stream_writable_size().
2023-11-16 09:10:49 +00:00
Thomas Guillem 7e9281cbe9 pulse: use pa_stream_set_write_callback()
Keep a fifo block in the module and send blocks to pulse via the
write_callback.

Pulse is now uncorked sooner (on the first play), silence is sent via
the data callback to reach for the start date.

This fixes overflow when sending more then 5 seconds of audio.
2023-11-16 09:10:49 +00:00
Thomas Guillem d08924edc1 pulse: add VLC_TICK_0 to audio_ts timing
In the (very) unlikely case where rt is 0 (=> invalid for the  VLC clock).
2023-11-16 09:10:49 +00:00
Thomas Guillem 25c17ac83d pulse: earlier return in stream_drain
This specific case will be gone on the next commit.
No functional changes.
2023-11-16 09:10:49 +00:00
Thomas Guillem ee4a520cff pulse: remove TriggerDrain()
Since it is now used only one time
2023-11-16 09:10:49 +00:00
Thomas Guillem fb79d34d40 pulse: simplify draining
No need to trigger the drain callback from the timing callback anymore
since we can now use stream_get_interpolated_latency().
2023-11-16 09:10:49 +00:00
Thomas Guillem 4d868b5266 pulse: add stream_get_interpolated_latency()
This function interpolate the last timing. This will be used to rework
the draining and when switching to data callback.

An alternative is to use vlc_pa_get_latency() directly with the
PA_STREAM_INTERPOLATE_TIMING flag but timings can go in the past when
using this flag.
2023-11-16 09:10:49 +00:00
Thomas Guillem 8396741445 pulse: move data_free up
No functional changes. For the next commit
2023-11-16 09:10:49 +00:00
Thomas Guillem d7eccba7e6 pulse: move drain in a new function
No functional changes.
2023-11-16 09:10:49 +00:00
Steve Lhomme 54897d1ebf text_renderer: warn when the rendering cannot be done
Due to requested chromas not being supported.
2023-11-16 08:26:08 +00:00
Steve Lhomme 682bb69fa0 freetype: reduce indentation 2023-11-16 08:26:08 +00:00
Steve Lhomme 83e1862210 freetype: create the output region outside of rendering functions
The rendering cannot fail. The error handling only needs to be done in one
place.
2023-11-16 08:26:08 +00:00
Steve Lhomme 451830aa94 freetype: remove extra 4 pixels for YUVP rendering
It should use the same size as the non-palletized formats, i.e. the
size used in RenderAXYZ().

It was added in 2479a41d19.
2023-11-16 08:26:08 +00:00
Steve Lhomme b81bc6958c freetype2: fix palette filling in YUVP
Since fe415420f3 the palette set in the local
format is not set on the output region format.

The palette of the region is created in subpicture_region_New() and the
same pointer is used between the region format and the picture format.
2023-11-16 08:26:08 +00:00
Steve Lhomme e70650037e subpicture: remove subpicture_region_Copy()
It's not used anymore.

As the doc suggests it was provided for convenience and was originally not
handling text-based regions at all. Is it supposed to take care of the
subpicture_region_t::p_private data copying it doesn't know about ?

It is rare to need this feature on regions. In bluray it was likely done
because the same region couldn't be in 2 different containers at the same time.
2023-11-16 06:43:49 +00:00
Steve Lhomme 0ee8e70d9a bluray: use a reference of internal pictures instead of picture copy
The picture inside our internal regions is refcounted, so it will stay alive
even if the internal region is deleted.

This will make things a bit faster and use less memory.
2023-11-16 06:43:49 +00:00
Thomas Guillem 62a2fcc8d6 video_output: wake up in case of clock discontinuities
This fixes the first 0-3 frames being dropped when starting of after a seek.

Fixes #27025
2023-11-15 16:24:50 +00:00
Thomas Guillem 10dc07b822 clock: add event callbacks
A slave clock can register events that are sent from the master clock.

For now, there is only one event: discontinuity.
For now, the discontinuity event is only sent when updating the first
point.

Refs #27025
2023-11-15 16:24:50 +00:00
Thomas Guillem e2b85f16a9 clock: add missing locked comment 2023-11-15 16:24:50 +00:00
Alexandre Janniaux 790d36399e opengl: sampler: fix typo on if condition
Missing equal sign: = -> ==

It led to the API being changed to VLC_OPENGL_ES2 on GL version with
GLSL < 300.

Regression from 7ffcdfb326.
2023-11-15 15:53:19 +00:00
Steve Lhomme 6d9b2a0929 vlc_list: split reading from a const list a non-const list
Items read from a const list should also be const.

The start of the listing needs a matching const/non-const pointer.
2023-11-14 07:25:45 +00:00
Steve Lhomme 473a66cb48 vout: read SPU regions as const 2023-11-14 07:25:45 +00:00
Steve Lhomme aa9a5632fd input: reading the category as non-const category
The returned value needs to be non-const in some cases.
We may provide both const and a non-const variants.
2023-11-14 07:25:45 +00:00
Steve Lhomme 7740350d07 vout_subpictures: use const when counting regions 2023-11-14 07:25:45 +00:00
Steve Lhomme cf15ed77f5 sout: hls: use const when reading a media from a const list 2023-11-14 07:25:45 +00:00
Fatih Uzunoglu 701ea11d4a qml: remove unnecessary property and fix final overriding in Qt 6.6 2023-11-14 06:32:01 +00:00
Fatih Uzunoglu d42ac8aee6 qml: remove unnecessary FocusScope in MainDisplay 2023-11-14 06:19:04 +00:00
Fatih Uzunoglu afc451457e qml: narrow where the effect is applied in MainDisplay for rendering optimization 2023-11-14 06:19:04 +00:00
Prince Gupta a92d924e42 qml: fix playlist sort menu text
align playlist sort key properties
2023-11-13 09:26:09 +00:00
Matthias Dressel 3b2c715356 CI: Update Docker images 2023-11-13 06:37:38 +00:00
Jean-Baptiste Kempf df6394ea80 SRT: remove tabs in source code 2023-11-11 14:54:36 +00:00
Steve Lhomme 88a93fbcb9 adaptive: fix debug string formatting
These debug messages can be enabled via defines in Debug.hpp.
2023-11-11 13:33:49 +00:00
Steve Lhomme 4016a7f672 mft: fix audio decoder logging
Bad copy/paste in aeb1114c90
2023-11-11 12:13:25 +00:00
Thomas Guillem 5800fa288a test/clock: fix the output tracer "render_pts" system date
Don't override the system date for "render_pts", cf.
vlc_tracer_TraceRender()
2023-11-11 10:03:27 +00:00
Thomas Guillem 77cd3505e4 test/clock: simulate video rendering on most scenarios
Skip the long scenarios since the video convert/update can take some
time (on a 24h scale).

Only the normal scenario is checking if video play dates are correct.
Other scenarios will fail. Video rendering is enabled anyway in most
scenarios so that it can used to visualize video timestamps with a
output tracer.
2023-11-11 10:03:27 +00:00
Thomas Guillem 4bc7fd705e test/clock: simulate video rendering
And send render traces to the tracer_ctx.
2023-11-11 10:03:27 +00:00
Thomas Guillem 3b97d7f3e4 test/clock: name the slave clock
For the tracer.
2023-11-11 10:03:27 +00:00
Thomas Guillem a7ce1e212f test/clock: use a switch case 2023-11-11 10:03:27 +00:00
Thomas Guillem 8e9a695482 test/clock: add missing va_copy 2023-11-11 10:03:27 +00:00
Thomas Guillem b159c36b7e test/clock: these variables are used 2023-11-11 10:03:27 +00:00