Pointer to es_out_t callback struct was partially overwritten when
registering overlay.
Caused by changing vararg function parameter from int * to size_t *
in 9d592a58e4.
Every registered channels need to be unregistered. The first 3 OSD channels
don't need to be unregistered since they are automatically registered.
sput_t now use a vector of struct spu_channel to keep its channels. This struct
will contain parameters specific to a channel like the clock/delay/rate.
The channel_id is now a ssize_t, -1 being invalid, 0, 1, 2 being the OSD
channels, and [3; SSIZE_MAX] being registered spu channels.
ES_OUT_VOUT_FLUSH_OVERLAY is renamed to ES_OUT_VOUT_DEL_OVERLAY since this
control is only used to delete an overlay.
Refs #22273
With pf_block, there is, for each received packet:
- one heap allocation for the block_t,
- one memory copy from the block_t into the downstream filter/demux
(normally the prefetch filter) in the stream core, and
- one heap free in the stream core.
And it gets worse if the packet size exceeds the MRU (1316 bytes).
In practice, the read size (from the prefetch filter) is almost always
much larger than the packet size. Using pf_read, we eliminate both the
heap manipulations and the memory copies, both for sanely sized and
insanely sized fragmented packets.
In the corner case that the read size is actually small, this uses a
circular buffer and incurs one memory copy. That is still faster than
the pf_block logic.
The buffer allocated for parsing the H264 config string is not
sufficient, causing a possible heap overflow. Size the buffer
more accurately to prevent this happening.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
As seen 3 years ago with libavformat concat, concatenating streams
leads to interesting security issues such as data exfiltration.
http-continuous is essentially concatenating multiple HTTP resources.
This makes the concatenation-controlling option unsafe as is already
done within the VLC concat module.
This reverts commit b6c17b2255.
1. code can be shared between access/srt.c and access_output/srt.c
2. created a URL parser for SRT parameters stored in URL
Signed-off-by: Thomas Guillem <thomas@gllm.fr>