Allow medialibrary queries to process and list public media.
Public media are a new addition of the medialibrary 0.13 version. With
this, the users will have the opportunity to allow a subset of the
medialibrary to be exposed on network interfaces (notably the upnp
server and the HTTP remote control).
Community discussions around the subject can be found here:
https://code.videolan.org/videolan/vlc/-/merge_requests/269#note_274345
MediaLibrary 0.13 allows to list and search on playlist that contains at
least one element of a certain media type.
This is mostly useful to consider playlists with at least one audio file
to be treated as music playlists.
To reflect the latest changes in medialibrary 0.13. There is a listing
function for both audio and video now. This avoids bad combinations of
mediatype and history type.
These needs to be more explicit to match the actual medialibrary
behavior. Currently, filtering asking for video or audio playlists will
return playlists that contain exclusively the designated entity type.
The next medialibrary release introduce new filtering types allowing
finer filtering.
On MacOS, the checkheader for vlc_media_library.h fails with:
In file included from checkheader_vlc_media_library_h.c:3:
/Users/unidan/Workspace/vlc/extras/package/macosx/../../../include/vlc_media_library.h:151:5: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t i_last_modification_date;
^~~~~~
size_t
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:31:32: note: 'size_t' declared here
typedef __darwin_size_t size_t;
^
In file included from checkheader_vlc_media_library_h.c:3:
/Users/unidan/Workspace/vlc/extras/package/macosx/../../../include/vlc_media_library.h:213:5: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t i_last_played_date;
^~~~~~
size_t
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:31:32: note: 'size_t' declared here
typedef __darwin_size_t size_t;
^
In file included from checkheader_vlc_media_library_h.c:3:
/Users/unidan/Workspace/vlc/extras/package/macosx/../../../include/vlc_media_library.h:257:5: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t i_creation_date;
^~~~~~
size_t
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:31:32: note: 'size_t' declared here
typedef __darwin_size_t size_t;
^
In file included from checkheader_vlc_media_library_h.c:3:
/Users/unidan/Workspace/vlc/extras/package/macosx/../../../include/vlc_media_library.h:258:5: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t i_last_modification_date;
^~~~~~
size_t
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h:31:32: note: 'size_t' declared here
typedef __darwin_size_t size_t;
^
4 errors generated.
make[4]: *** [Makefile:6719: checkheader_vlc_media_library_h] Error 1
include/vlc_media_library.h:658: warning: Unsupported xml/html tag <type> found
include/vlc_media_library.h:918: warning: argument 'p_handle' of command @param is not found in the argument list of vlc_ml_event_unregister_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_callback)
include/vlc_media_library.h:918: warning: The following parameters of vlc_ml_event_unregister_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_callback) are not documented:
parameter 'p_ml'
parameter 'p_callback'
include/vlc_media_library.h:924: warning: The following parameter of vlc_ml_event_unregister_from_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_callback) is not documented:
parameter 'p_ml'
include/vlc_media_library.h:1530: warning: The following parameter of vlc_ml_list_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, bool b_include_all) is not documented:
parameter 'p_ml'
Now that the `vlc_ml_folder_list_t` replaced `vlc_ml_entry_point_list_t`
the VLC_ML_LIST_FOLDER enum value is a bit confusing and is renamed
VLC_ML_LIST_ENTRY_POINTS to better reflect its functionnality.
This better reflects the medialibrary internals while also allowing more
flexible medialibrary folder listing as vlc_ml_folder_t is now available
through a more generic name.