Skip to content
Snippets Groups Projects
  1. Sep 10, 2014
  2. Sep 09, 2014
  3. Sep 06, 2014
    • wm4's avatar
      stream_lavf: assume icy title data is terminated with ';' · e3d3a47c
      wm4 authored
      Should fix #1071.
      e3d3a47c
    • wm4's avatar
      audio/out: make EOF handling properly event-based · b109d20e
      wm4 authored
      With --gapless-audio=no, changing from one file to the next apparently
      made it hang, until the player was woken up by unrelated events like
      input. The reason was that the AO doesn't notify the player of EOF
      properly. the played was querying ao_eof_reached(), and then just went
      to sleep, without anything waking it up.
      
      Make it event-based: the AO wakes up the playloop if the EOF state
      changes.
      
      We could have fixed this in a simpler way by synchronously draining the
      AO in these cases. But I think proper event handling is preferable.
      
      Fixes: #1069
      CC: @mpv-player/stable (perhaps)
      b109d20e
  4. Sep 05, 2014
    • wm4's avatar
      audio: correctly initialize output buffer · 3c7d49c3
      wm4 authored
      Just like the previous commit, this takes care of fallout from commit
      7ab228, which fixed a bug, but introduced some new ones.
      
      CC: @mpv-player/stable
      3c7d49c3
    • James Ross-Gowan's avatar
      player: check for null in resume config search · 0ba2da8a
      James Ross-Gowan authored
      
      Signed-off-by: default avatarwm4 <wm4@nowhere>
      
      CC: @mpv-player/stable
      0ba2da8a
    • wm4's avatar
      audio: fix obscure audio resync failure with timelines · 1871f2a7
      wm4 authored
      Somehow, there was a larger misunderstanding in the code: ao_buffer
      does not need to be preserved over audio reinit for proper support of
      gapless audio. The actual AO internal buffer takes care of this.
      
      In fact, preserving ao_buffer just breaks audio resync. In the ordered
      chapter case, end_pts is used, which means not all audio data in the
      buffer is played, thus some data is left over when audio decoding
      resumes on the next segment. This triggers some code that aborts resync
      if there's "audio decoded" (ao_buffer contains something), but no PTS
      is known (nothing was actually decoded yet).
      
      Simplify, and always bind the output buffer to the decoder.
      
      CC: @mpv-player/stable (maybe)
      1871f2a7
    • wm4's avatar
      build: handle insane libavcodec API bullshit · 4a8e5ea2
      wm4 authored
      The oldest supported FFmpeg release doesn't provide
      av_vdpau_alloc_context(). With these versions, the application has no
      other choice than to hard code the size of AVVDPAUContext. (On the other
      hand, there's av_alloc_vdpaucontext(), which does the same thing, but is
      FFmpeg specific - not sure if it was available early enough, so I'm not
      touching it.)
      
      Newer FFmpeg and Libav releases require you to call this function, for
      ABI compatibility reasons. It's the typcal lakc of foresight that make
      FFmpeg APIs terrible. mpv successfully pretended that this crap didn't
      exist (ABI compat. is near impossible to reach anyway) - but it appears
      newer developments in Libav change the function from initializing the
      struct with all-zeros to something else, and mpv vdpau decoding would
      stop working as soon as this new work is relewased.
      
      So, add a configure test (sigh).
      
      CC: @mpv-player/stable
      4a8e5ea2
    • wm4's avatar
      demux_mkv: allow up to 256 MB of extradata to make broken files work · 367665b4
      wm4 authored
      What the flying fuck?
      
      Unfortunately, these are already in the wild.
      
      CC: @mpv-player/stable
      367665b4
  5. Sep 03, 2014
    • wm4's avatar
      path: remove XDG bullshit · 46437e96
      wm4 authored
      Don't worry, your ~/.config/... paths are safe. This merely removes
      handling of $XDG_CONFIG_DIRS for global paths.
      
      Maybe there is a better solution for this, like still including the
      "traditional" config dir. But I will leave the fine reading of this
      (crappy) spec and fixing the code accordingly to someone else. So, if
      anyone has interest in getting this behavior back, you will have to
      write a patch. This patch should _also_ not break expected behavior.
      
      Fixes #1060.
      46437e96
    • wm4's avatar
      player: properly resume playlists loaded at runtime · 29d3bbda
      wm4 authored
      If a playlist is loaded from the internal playlist (like
      "mpv playlist.m3u"), then attempt to resume from it.
      
      CC: @mpv-player/stable
      29d3bbda
  6. Sep 01, 2014
    • Alexander Preisinger's avatar
      gl_wayland: fix crash after eglInitialze failed · 16c3b27d
      Alexander Preisinger authored
      Only execute most of the opengl termination procedure if we actually have an
      egl context.
      16c3b27d
    • Martin Herkt's avatar
      man: fix a whole bunch of typos · f8dc208d
      Martin Herkt authored
      Conflicts:
      	DOCS/man/input.rst
      	DOCS/man/options.rst
      f8dc208d
    • wm4's avatar
      playlist: don't add the base path twice · 6d006a5a
      wm4 authored
      Loading a playlist with --playlist from a sub-directory added the
      playlist's base path twice: one time in the playlist demuxer, and then
      again in playlist_parse_file(). The latter function is used only for
      --playlist, so it worked when loading the playlist directly.
      
      (This is probably a mess-up when the MPlayer playlist parsers were
      replaced with newer code.)
      
      CC: @mpv-player/stable
      6d006a5a
    • wm4's avatar
      audio/out: prevent burning CPU when seeking while paused · 6a355959
      wm4 authored
      The audio/video sync code in player/audio.c calls ao_reset() each time
      audio decoding is entered, but the player is paused, and there would be
      more than 1 sample to skip to make audio start match with video start.
      This caused a wakeup feedback loop with push.c.
      
      CC: @mpv-player/stable
      6a355959
    • wm4's avatar
      x11: when using --wid, inherit event flags from parent window · 36bdbbe7
      wm4 authored
      When embedding a X window, it's hard to control whether it receives
      mouse/keyboard input or not. It seems the X protocol itself makes this
      hard (basically due to the outdated design mismatching with modern
      toolkits), and we have to take care of these things explicitly.
      
      Simply do this by manually querying and using the parent window event
      flags.
      
      This restores some MPlayer behavior (it doesn't add back exactly the
      same code, but it's very similar).
      
      This probably has some potential to interfere with libmpv embedding, so
      bump the client API minor.
      
      CC: @mpv-player/stable (if applied, client-api-changes.rst has to be
          adjusted to include the 0.5.2 release)
      36bdbbe7
  7. Aug 31, 2014
    • wm4's avatar
      player: fix quit handling when seeking past EOF while paused · c269fa16
      wm4 authored
      The player didn't quit when seeking past EOF in audio-only mode while
      paused. The only case when we don't want to quit is when the last video
      frame is displayed while paused.
      
      This logic was probably broken a while ago, but I'm not exactly sure.
      
      CC: @mpv-player/stable
      
      Conflicts:
      	player/playloop.c
      c269fa16
  8. Aug 28, 2014
    • wm4's avatar
      audio: restore old speed change behavior · 0f1d6c09
      wm4 authored
      Don't attempt to resync after speed changes. Note that most other cases
      of audio reinit (like switching tracks etc.) still resync, but other
      code paths take care of setting the audio_status accordingly.
      
      This restores the old behavior of not trying to fix audio desync, which
      was probably changed with commit 261506e3.
      
      Note that the code as of now wasn't even entirely correct, since the A/V
      sync values are slightly shifted. The dsync depends on the audio buffer
      size, so a larger buffer size will show more extreme desync. Also see
      mplayer2 commit 213a224e, which should fixed this - it was not merged
      into mpv, because it disabled audio for too long, resulting in a worse
      user experience. This is similar to the issue this commit attempts to
      fix.
      
      Fixes: #1042 (probably)
      CC: @mpv-player-stable
      0f1d6c09
  9. Aug 26, 2014
  10. Aug 25, 2014
  11. Aug 21, 2014
  12. Aug 18, 2014
  13. Aug 17, 2014
  14. Aug 15, 2014
    • Alessandro Ghedini's avatar
      TOOLS/zsh.pl: properly set the return value · ec46ad79
      Alessandro Ghedini authored
      The previous commit made the completion script always return non-zero, even when
      a match is found. This explicitly sets the return value to zero whenever a match
      is found but defaults to non-zero in case nothing is matched.
      ec46ad79
  15. Aug 13, 2014
  16. Aug 12, 2014
  17. Aug 11, 2014
Loading