Adds:
- libvlc_media_player_set_abloop_time
- libvlc_media_player_set_abloop_position
- libvlc_media_player_reset_abloop
These new methods allow to set a specific start and end time or
position to setup an AB loop, and a way to remove the loop.
There must be an active input before setting the AB loop.
Calls to `libvlc_media_parse_request` with smb server URL never succeeded
because `do_parse` var was always `false` when `input_net` var was `true`
and `libvlc_media_parse_network` flag was set.
This change fixes this problem and bring back the ability to parse network
files when the `libvlc_media_parse_network` flag is set
This is in the continuity of aad952ea38.
The previous commit added an internal error code for preparsing
cancellation that wasn't handled in libvlc, the API stopped reporting
preparsing termination, which resulted in a medialibrary regression.
Previously, the cancellation was reported as a timeout event which is
misleading. This patch introduces a new status code to properly match
libvlc's internals.
You should now use a preparser to generate thumbnails.
One single preparser is able to:
- Parse
- Fetch meta
- Generate thumbnails
Using 3 different queues. It is also possible to create a preparser for
only one type of processing.
In order to behave like the vlc_preparser.h API.
vlc_thumbnailer_SetTimeout Will be used by libvlc_media_t, temporarily,
waiting for the future libvlc_parser_t API.
This id can be used to cancel a task.
vlc_thumbnailer_DestroyRequest() had been renamed to
vlc_thumbnailer_Cancel(). The new function is optional and can be used
to cancel a task. The user doesn't have the responsibility to free the
request anymore.
Do a lazy initialisation as the thumbnailer is not necessarily required by
the user.
This commit is temporary and will be replaced by the future
libvlc_thumbnailer_t API.
It is done now to remove the core thumbnailer.
Do a lazy initialisation as the preparser is not necessarily required by
the user.
This commit is temporary and will be replaced by the future
libvlc_parser_t API.
It is done now to remove libvlc_GetMainPreparser().
The behavior is different from the CORE, but I don't see any use case for
receiving points prior to the seek request while seeking. It is possible
from the core, but no UI is doing it for now.
Signaling discontinuity had 2 purposes:
- To handle seek requests, but it could not really work, hence the new
on_seek() callback.
- Signal when the player is paused or stopping
Therefore, replace this event with on_paused().
New durations set along with the media_duration_changed event are
now properly converted in milliseconds to match the unit described
in the documentation.
`VLC_EGENERIC` is defined to `INT_MIN` and negating as a 32 bits integer
is undefined behavior.
Let's print a custom error message instead, as it will never be a valid
errno value anyway.
Reported by UBSAN:
../../lib/core.c:72:9: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
Move the media_provider.get_next callback to
vlc_player_cbs.request_next_media.
This callback does not need a special handling since it doesn't
wait for a result anymore.
There is no more deprecated functions.
In case, we need to deprecate new functions in a future release, we can
just add LIBVLC_DEPRECATED, and leave the function in its original
header.
libvlc_SetExitHandler should be used instead (from bin and test). This
function was confusing as the playlist used by the interface was not
controllable by the LibVLC API.