1. 30 Mar, 2017 30 commits
  2. 29 Mar, 2017 10 commits
    • François Cartegnie's avatar
    • François Cartegnie's avatar
    • François Cartegnie's avatar
    • François Cartegnie's avatar
      decoder: VideoToolbox: have adaptive DPB · a7db3f04
      François Cartegnie authored
      Max DPB is wrong on some streams. What else can go wrong ?
    • François Cartegnie's avatar
      decoder: VideoToolBox: use POC for H264 · 017f1b05
      François Cartegnie authored
      Also fixes the PTS less playback
    • Filip Roséen's avatar
      libvlc-module: change preparsing options descriptions · 81d4001f
      Filip Roséen authored
      There is nothing stating that we only preparse "files", as such the
      usage of "file" has been changed to "item". Also, the previous text
      did not mention in what unit the timeout was given - these changes
      simply adds information stating that it is is milliseconds.
      Signed-off-by: Hugo Beauzée-Luyssen's avatarHugo Beauzée-Luyssen <hugo@beauzee.fr>
    • Filip Roséen's avatar
      preparser: post-pone event until after art fetching is complete · 5e6e0a66
      Filip Roséen authored
      Since one can request art to be fetched through
      libvlc_media_parse_with_options, one would expect the event
      originating from this request to be sent upon the completion of all
      requested operations (not just the preparsing). The alternative would
      be to monitor the libvlc_MediaMetaChanged, hoping for an artwork URL
      change, but this can't account for error nor timeout.
      The changes introduced were written after a discussion with Hugo
      Beauzée-Luyssen where he expressed that he would, if possible, be able to
      post-pone the preparsing events until the art fetching is complete.
      Post-poning the event fixes issues that are currently reproducible where
      medialibrary is used, and art is missing (because it listens to the preparse
      event in order to generate the database contents).
      It can be viewed as a follow-up to the below rejected patch (with the
      same goal in mind):
       - https://patches.videolan.org/patch/15810/
      Signed-off-by: Hugo Beauzée-Luyssen's avatarHugo Beauzée-Luyssen <hugo@beauzee.fr>
    • Filip Roséen's avatar
      playlist: fix deadlock on destruction while preparser adds items to playlist · befb82c2
      Filip Roséen authored
      As we can have incoming requests to the preparser while we are
      destroying libvlc, we can end up in a deadlock while we are removing
      all playlist_item_t from the playlist, while an item being preparsed
      tries to add additional items to the list.
      These changes fixes the issue by introducing a preparser-deactivation
      function, that will make sure that we:
       1) clear out any pending preparsing requests
       2) cancel the current item preparsing (blocking)
       3) prevent further requests to the preparser
      fixes: #18151
      Signed-off-by: Hugo Beauzée-Luyssen's avatarHugo Beauzée-Luyssen <hugo@beauzee.fr>
    • Filip Roséen's avatar
      playlist: cancel preparsing upon playback · cf59d2a3
      Filip Roséen authored
      This will cancel any pending request for preparsing the relevant
      playlist_item_t as preparsing the entity:
       - is redundant since we are about to start playback,
       - can remove metadata added during playback, and;
       - can lead to duplicate entries in the playlist if the
         playlist_item_t is a directory (as children are added each time
         such entity is "played").
      fixes: #17441
      fixes: #17232
      Signed-off-by: Hugo Beauzée-Luyssen's avatarHugo Beauzée-Luyssen <hugo@beauzee.fr>
    • Filip Roséen's avatar
      playlist/fetcher: refactor · ea88b8d6
      Filip Roséen authored
      The following changes refactors the fetcher to take advantange of the
      newly introduced background_worker helper. The new implementation
      should not only be easier to maintain, but it also adds some
      advantages over the old implementation:
       - The implementation has shrunk in size.
       - A fetch-request can include a timeout.
       - Given that there now is a background worker associated with each of
         the different fetcher types (local, network, download):
          - A slow download does not prevent the network-fetcher from
            working the queue.
          - A slow network-fetcher does not prevent further work in regards
            of pending requests in the local fetcher.
       - A fetch request can now be properly cancelled (most importantly
         during VLC close).
       - We no longer invoke modules with "meta fetcher" capability if the
         item already has all metadata in terms of title, album, and artist.
       - We no longer invoke modules with "art finder" capability of the
         item already has vlc_meta_ArtworkUrl.
      fixes: #18150
      Signed-off-by: Hugo Beauzée-Luyssen's avatarHugo Beauzée-Luyssen <hugo@beauzee.fr>