The vlc_InputItemPreparseEnded event should be enough.
There is a compat code inside libvlc in order to don't break old API that are
waiting for a libvlc_MediaParsedChanged, even in case of error.
Remove "int options, const char *const *options, unsigned option_flags"
arguments from every New() functions since these args are mainly unused. You
now have to call input_item_AddOptions after input item creation to add
options.
Add input_item_net_type enum in order to avoid confusion between 2 int
arguments: i_duration and i_net that could both be -1, 0 or > 0.
Replace input_item_NewWithType and input_item_NewWithTypeExt with
input_item_NewExt.
Add input_item_NewCard, input_item_NewDisc, input_item_NewStream,
input_item_NewDirectory, input_item_NewFile MACRO. These MACROS avoid to use
useless arguments for an item type (for example, it's useless to specify a
duration for a directory type).
This state was never set or used. If it was set, it would have overridden the
media state since a media can be buffering while opening or during playback
(while seeking).
PS: Listen to the libvlc_MediaPlayerBuffering event if you want to know if a
media player is buffering.
And set the JavaVM* in a libvlc var option.
This will allow android modules to access a JNIEnv* even when the parent is a
not a libvlc_media_player. This will be used for the android Keystore module
for example.
Furthermore, this simplify the libvlc API when setting an android context.
In real use, there are few (typically only zero or one) listeners per
event type. In this case, the linear search through the listener groups
was actually slower than the linear search through the whole list of
listeners: it required one iteration per event type, even for event
types with no listeners.
(Note: using a hash table over the event type would make a lot more
sense as an optimization.)
The distinction was rather vain, as the inner lock was almost never
held without the outer lock. The only case was adding an event callback
(but _not_ removing one). On the other hand, the distinction required
extra heap manipulations and memory copying for each event.
The following functions are not marked LIBVLC_API and are not in the
public header files (for a reason):
- libvlc_event_manager_new(),
- libvlc_event_manager_register_event_type() and
- libvlc_event_manager_release().
There wer no reasons to have them in the symbols list.
This exposes (audio) policy cork events to LibVLC applications. The
intended usage is for applications to pause/resume playback.
We decided against pausing and resuming automatically as it would most
likely confuse the playback state machine of existing applications. By
default, the OS decides might either mute or duck the audio stream.
Cc: Harald Sitter <sitter@kde.org>