[vlc-commits] [Git][videolan/vlc][master] libvlc: warn and assert against selecting media tracks retrieved from the media

Hugo Beauzée-Luyssen (@chouquette) gitlab at videolan.org
Sat Sep 11 08:29:57 UTC 2021



Hugo Beauzée-Luyssen pushed to branch master at VideoLAN / VLC


Commits:
100c97be by Martin Finkel at 2021-09-11T08:14:45+00:00
libvlc: warn and assert against selecting media tracks retrieved from the media

- - - - -


2 changed files:

- include/vlc/libvlc_media_player.h
- lib/media_player.c


Changes:

=====================================
include/vlc/libvlc_media_player.h
=====================================
@@ -1374,6 +1374,8 @@ libvlc_media_player_get_track_from_id( libvlc_media_player_t *p_mi,
  *
  * \note Use libvlc_media_player_select_tracks() for multiple selection
  *
+ * \warning Only use a \ref libvlc_media_track_t retrieved with \ref libvlc_media_player_get_tracklist
+ *
  * \param p_mi the media player
  * \param track track to select, can't be NULL
  */
@@ -1405,6 +1407,8 @@ libvlc_media_player_unselect_track_type( libvlc_media_player_t *p_mi,
  *
  * \note selecting multiple audio tracks is currently not supported.
  *
+ * \warning Only use a \ref libvlc_media_track_t retrieved with \ref libvlc_media_player_get_tracklist
+ *
  * \param p_mi the media player
  * \param type type of the selected track
  * \param tracks pointer to the track array, or NULL if track_count is 0
@@ -1442,6 +1446,8 @@ libvlc_media_player_select_tracks( libvlc_media_player_t *p_mi,
  *
  * \note selecting multiple audio tracks is currently not supported.
  *
+ * \warning Only use a \ref libvlc_media_track_t id retrieved with \ref libvlc_media_player_get_tracklist
+ *
  * \param p_mi the media player
  * \param type type to select
  * \param psz_ids list of string identifier or NULL


=====================================
lib/media_player.c
=====================================
@@ -1857,6 +1857,10 @@ libvlc_media_player_select_track(libvlc_media_player_t *p_mi,
 
     const libvlc_media_trackpriv_t *trackpriv =
         libvlc_media_track_to_priv(track);
+    
+    // It must be a player track
+    assert(trackpriv->es_id);
+
     vlc_player_SelectEsId(player, trackpriv->es_id,
                           VLC_PLAYER_SELECT_EXCLUSIVE);
 
@@ -1899,6 +1903,9 @@ libvlc_media_player_select_tracks(libvlc_media_player_t *p_mi,
         const libvlc_media_trackpriv_t *trackpriv =
             libvlc_media_track_to_priv(track);
 
+        // It must be a player track
+        assert(trackpriv->es_id);
+
         es_id_list[es_id_idx++] = trackpriv->es_id;
     }
     es_id_list[es_id_idx++] = NULL;



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/100c97be1e82b749f6d3f165c89e7628272fbe18

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/100c97be1e82b749f6d3f165c89e7628272fbe18
You're receiving this email because of your account on code.videolan.org.




More information about the vlc-commits mailing list