When es_format_IsSimilar and video_format_IsSimilar report a format
is not similar, it can be useful to know the reason.
These logging functions match the tests done in thos functions.
The video_format_t is not used as is. It's only used to pass variables to
vout_BuildOSDEpg().
The i_width was never used.
The i_original_picture_width is set the same way as in OSDTextUpdate().
duplicate modules can sink back to the main pipeline which was causing
duplicated and inconsistent PCR in the main pipeline.
An example duplicate module with a sink:
`#duplicate{dst=...,dst=...}:std{...}`
To fix the issue this patch add an endpoint to each duplicated sout
chains before they sink back to the main pipeline. We use it to regroup
PCR from each chains and select the lowest to forward it to the sink.
Modify core snapshot and scene detection functionalities to use
VLC_SNAPSHOTS_DIR, ensuring a standardized default snapshots folder.
Users can customize this directory in Preferences.
Standardize default snapshots folder across platforms with the
introduction of VLC_SNAPSHOTS_DIR. Users can still customize this
directory in Preferences.
Resolves: #27424.
Otherwise ends up setting wrong fourcc combination.
ex: avc1/0 -> H264/0, which is meaning annexb, instead of avc1/0 -> H264/avc1
consistency with es_out_Add
We don't use any other fields from the destination. No need to redo the regions
if other things changed in the source.
On the first call the previous visible dimensions are 0x0.
This fixes the following case when resuming from pause:
main audio output warning: playback way too early (-7040339): playing silence
main audio output debug: inserting 337936 zeroes / 7040ms
main audio output warning: playback way too late (7038677): flushing buffers
It was not happening with all aout modules. For example, PulseAudio was
likely updating its timing just after a uncork and just before the core
was playing the next audio sample.
The system time is only used when there is no master in order to get the
reference point (wait_sync_ref). Therefore, it's better to always use
the same vlc_tick_now() to avoid gaps.
In case where the audio is not master and paused (unlikely since audio
is not master in case of live playback, that is generally not pauseable).
Fixes some potential enormous silence:
playback way too early (-9223371872593688789): playing silence
"luckily" the allocation was too big and silently failing, and not causing OOM.
It does the same as spu_channel_Clean():
- spu_PrerenderCancel() on each subpicture
- subpicture_Delete() on each subpicture
- empty the channel->entries vector