[vlc-devel] [PATCHv3 00/17] libvlc: new track list and new track selection

Thomas Guillem thomas at gllm.fr
Wed Jun 10 19:52:39 CEST 2020


Hello,

Thanks for your answer.

On Wed, Jun 10, 2020, at 16:44, Romain Vimont wrote:
> On Wed, Jun 10, 2020 at 02:57:39PM +0200, Thomas Guillem wrote:
> > The full branch is available here: https://code.videolan.org/tguillem/vlc/commits/libvlc-tracks/6
> > 
> > Change since v2
> > 
> >  - libvlc_media_tracklist_at() doesn't return a const media anymore. The media
> >    need to be writable by the user so that he can update the selected state
> >    (via libvlc_media_player_update_tracklist()).
> >  - Improved lib_media_player tests
> >  - Added lib_media_player tracks API test
> > 
> > There is a problem with libvlc_media_tracklist_at() not returning const. The
> > user might want to use libvlc_media_track_release() on a single track coming
> > from the list (when he should use libvlc_media_tracklist_release()). The API &
> > documentation says that it's illegal, but I'm not sure if it is enough. I could
> > add assert/abort or change the way to update the track selection. What do you
> > think ?
> 
> I think that it is ok (returning a const pointer implies that it must
> not be deleted by the caller, but returning a non-const pointer does not
> imply the opposite).
> 
> However, _release() suggests that it's refcounted. IMO
> libvlc_media_track_delete() is better in that case.

Indeed, I will rename it.

> 
> > The old track API will be removed later (but before 4.0 release), when all
> > major VLC ports are updated. Cf.
> > https://code.videolan.org/tguillem/vlc/commits/libvlc-tracks-remove-deprecated
> > for the branch without the old track API.
> > 
> > Best regards,
> > Thomas Guillem (17):
> >   lib: media: factorize track type conversion
> >   lib: move libvlc_media_track_t to a specific header
> >   lib: move track in media_track.c
> >   lib: add libvlc_media_tracklist API
> >   lib: add libvlc_media_get_tracklist()
> >   lib: media_track: add new members
> >   lib: add libvlc_media_track_release
> >   core: fix vlc_es_id_IsStrIdStable not exposed
> >   lib: add new player track API
> >   lib: update media_player track events
> >   test: media: use libvlc_media_get_tracklist
> >   lib: video: use libvlc_media_player_get_selected_track()
> >   test: media_player: use "mock://"
> >   lib: media_player: fix wrong assert
> >   test: lib: media_player: pause can now be always tested
> >   test: lib: media_player: add event_ctx
> >   test: lib: media_player: test track API
> > 
> >  include/vlc/libvlc_events.h       |  23 +-
> >  include/vlc/libvlc_media.h        | 129 +++--------
> >  include/vlc/libvlc_media_player.h | 138 ++++++++++++
> >  include/vlc/libvlc_media_track.h  | 220 ++++++++++++++++++
> >  lib/Makefile.am                   |   2 +
> >  lib/libvlc.sym                    |  11 +
> >  lib/media.c                       | 113 ++--------
> >  lib/media_internal.h              |  58 +++++
> >  lib/media_player.c                | 193 ++++++++++++++--
> >  lib/media_player_internal.h       |   1 +
> >  lib/media_track.c                 | 264 ++++++++++++++++++++++
> >  lib/video.c                       |  22 +-
> >  src/libvlccore.sym                |   1 +
> >  test/libvlc/media.c               |  31 ++-
> >  test/libvlc/media_list_player.c   |  20 +-
> >  test/libvlc/media_player.c        | 362 ++++++++++++++++++++++++++++--
> >  test/libvlc/test.h                |   5 +-
> >  17 files changed, 1328 insertions(+), 265 deletions(-)
> >  create mode 100644 include/vlc/libvlc_media_track.h
> >  create mode 100644 lib/media_track.c
> > 
> > -- 
> > 2.20.1
> > 
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list