Browse Source

medialibrary: add VLC_ML_REMOVE_STREAM

Signed-off-by: Mohit Marathe <mohitmarathe23@gmail.com>
pull/162/head
Mohit Marathe 3 years ago
committed by Jean-Baptiste Kempf
parent
commit
8ba9acdc86
  1. 7
      include/vlc_media_library.h
  2. 12
      modules/misc/medialibrary/medialibrary.cpp

7
include/vlc_media_library.h

@ -576,6 +576,8 @@ enum vlc_ml_control
VLC_ML_NEW_EXTERNAL_MEDIA, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
VLC_ML_NEW_STREAM, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
VLC_ML_REMOVE_STREAM,
/* Media management */
VLC_ML_MEDIA_UPDATE_PROGRESS, /**< arg1: media id; arg2: playback position; can fail */
VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: char**; */
@ -1026,6 +1028,11 @@ static inline vlc_ml_media_t* vlc_ml_new_stream( vlc_medialibrary_t* p_ml, const
return res;
}
static inline int vlc_ml_remove_stream( vlc_medialibrary_t* p_ml, int64_t i_media_id )
{
return vlc_ml_control(p_ml, VLC_ML_REMOVE_STREAM, i_media_id);
}
static inline int vlc_ml_media_update_progress( vlc_medialibrary_t* p_ml, int64_t i_media_id,
double progress )
{

12
modules/misc/medialibrary/medialibrary.cpp

@ -522,6 +522,7 @@ int MediaLibrary::Control( int query, va_list args )
case VLC_ML_RESUME_BACKGROUND:
case VLC_ML_NEW_EXTERNAL_MEDIA:
case VLC_ML_NEW_STREAM:
case VLC_ML_REMOVE_STREAM:
case VLC_ML_MEDIA_GENERATE_THUMBNAIL:
{
/* These operations require the media library to be started
@ -608,6 +609,17 @@ int MediaLibrary::Control( int query, va_list args )
*va_arg( args, vlc_ml_media_t**) = CreateAndConvert<vlc_ml_media_t>( media.get() );
return VLC_SUCCESS;
}
case VLC_ML_REMOVE_STREAM:
{
auto priorityAccess = m_ml->acquirePriorityAccess();
auto id = va_arg( args, int64_t );
auto media = m_ml->media( id );
if ( media == nullptr )
return VLC_EGENERIC;
m_ml->removeExternalMedia( media );
return VLC_SUCCESS;
}
case VLC_ML_MEDIA_GENERATE_THUMBNAIL:
{
auto priorityAccess = m_ml->acquirePriorityAccess();

Loading…
Cancel
Save