Skip to content
Snippets Groups Projects
  1. Jan 15, 2014
    • wm4's avatar
      Release 0.3.3 · d276f753
      wm4 authored
      v0.3.3
      d276f753
    • Grzegorz Blach's avatar
      Detect Lua on FreeBSD · c06000ee
      Grzegorz Blach authored
      c06000ee
    • wm4's avatar
      player: avoid stalling when starting a network stream · 1bc1cd23
      wm4 authored
      Starting a network stream could stall by executing uncacheable stream
      control requests (STREAM_CTRL_GET_LANG and STREAM_CTRL_GET_DVD_INFO).
      Being uncacheable means the player has to wait until the cache is done
      reading the current block of data. These requests can't be cached
      because they're too complicated, so the only way to avoid them is
      special casing the DVD and Bluray streams (which are the only things
      which need these requests), and not doing them in other cases.
      
      (This is kind of inelegant, but so is the rest of the DVD/BD code.)
      1bc1cd23
    • wm4's avatar
      demux_mkv: improve robustness by explicitly checking for level 1 elements · a735a2ab
      wm4 authored
      Matroska makes it pretty hard to resync correctly on broken files:
      random data returns "valid" EBML IDs with a high probability, and when
      trying to skip them it's likely that you skip a random amount of data
      (instead of considering the element length invalid).
      
      Improve upon this by skipping known level 1 elements only. Consider
      everything else invalid and call the resync code. This might result in
      annoying behavior when Matroska adds new level 1 elements, although it
      won't be particularly harmful. Matroska doesn't really allow us to do
      better (even mkvtoolnix explicitly checks for known level 1 elements).
      
      Since we now don't always want to combine EBML element skipping and
      resyncing, remove ebml_read_skip_or_resync_cluster(), and make
      ebml_read_skip() more tolerant against skipping broken elements.
      
      Also, don't resync when reading sub-elements, and instead do resyncing
      when reading them results in an error.
      a735a2ab
    • wm4's avatar
      demux_mkv: avoid skipping too much data in corrupted files · 112c1abe
      wm4 authored
      Until now, corrupted files were detected if the size of an element (that
      should be skipped) was larger than the remaining file. This still could
      skip larger regions of the file itself if the broken size happened to be
      within the file.
      
      Change it so that it's never allowed to skip outside the parent's
      element.
      112c1abe
    • wm4's avatar
      manpage: document --term-osd=force · 362b35b6
      wm4 authored
      Apparently this was forgotten when it was first added, or maybe it's an
      arrifact from the rst conversion.
      
      Conflicts:
      	DOCS/man/en/options.rst
      362b35b6
    • wm4's avatar
      player: don't block terminal OSD while seeking · 49cf0af2
      wm4 authored
      Seeking usually show the status on OSD. In terminal OSD mode, no status
      is shown, because there is already a separate status line.
      Unfortunately, the mechanism for showing the status was still active,
      which forced showing no message while the code for showing seek status
      was active.
      49cf0af2
    • wm4's avatar
      player: mention subtitles in av_desync_help_text · 1b268747
      wm4 authored
      Insane .ass subtitle scripts can cause severe slowdown (depending on the
      speed of the machine, or the insanity of the script), so mention how to
      test without subtitles. This is mainly to make the user aware that
      subtitle rendering can be a problem. For longwinded explanation, there
      isn't enough space.
      1b268747
    • Stefano Pigozzi's avatar
      cocoa: fix window placement on secondary screens · 8fe636da
      Stefano Pigozzi authored
      For a long time the cocoa backend set the xinerama_x/y and used dx/dy from the
      VO instance. This somewhat worked with some workarounds but wasn't really
      what was supposed to be happening. Moreover 27e4360b, which touched this
      workaround introduced a regression.
      
      New code doesn't set the xinerama_x/y values so that dx/dy are offsets in the
      current screen (not a virtual screen composed of all the screens). The screen
      reference detected during VOCTRL_UPDATE_SCREENINFO is also passed down to the
      window initialization code.
      
      Fixes #472
      8fe636da
    • Stefano Pigozzi's avatar
      812f1495
    • wm4's avatar
      demux_lavf: add hack for MicroDVD for assuming frame based timing · 635424c8
      wm4 authored
      MicroDVD files _can_ contain real timestamps instead of frame timestamps
      if they declare a FPS. But this seems to be rare, so ignore that if the
      FPS happens to match with the libavformat microdvd parser's default FPS.
      
      This might actually break files that declare 23.976 FPS, but the video
      file is not 23.976 FPS, but the chance that this happens is probably
      very low, and the commit fixes the more common breakage with 25 FPS
      video.
      635424c8
    • wm4's avatar
      sub: fix frame based subtitle timestamp handling · 23199187
      wm4 authored
      Subtitle formats with frame based timing require using the video FPS to
      compute proper subtitle timestamps. But it looks like the calculation to
      do that was inversed.
      23199187
    • Alexander Preisinger's avatar
      wayland: properly empty output list · 9fabf85a
      Alexander Preisinger authored
      9fabf85a
    • Alexander Preisinger's avatar
    • wm4's avatar
      wayland: fix crash when initialization fails · d141d281
      wm4 authored
      On X11, if no wayland compositor is running, wl_list_init() will never
      be called. This will cause destroy_display() to segfault when trying to
      iterate over the list.
      d141d281
    • Alexander Preisinger's avatar
      wayland/shm: tone down warnings · ebc3d74b
      Alexander Preisinger authored
      Those warnings are printed far too often and actually aren't usefull at all.
      ebc3d74b
    • Alexander Preisinger's avatar
      wayland: fix memory leaks · a63fab89
      Alexander Preisinger authored
      There are still some leaks from wayland-cursor stuff, but there is no way to
      free the memory as user of the cursor library.
      
      Conflicts:
      	video/out/wayland_common.c
      a63fab89
    • wm4's avatar
      player: fix setting smaller timeout on Windows systems · 4ee8d8d3
      wm4 authored
      On Windows, we don't have proper input event wakeup handling, so we
      need to lower the playloop timeout in order to react fast to input.
      
      Closes #387.
      4ee8d8d3
    • Alexander Preisinger's avatar
      wayland: cleanup registry_handle_global · 574a2484
      Alexander Preisinger authored
      The wl_registry object is already passed as a parameter. No need to create
      a temporary variable.
      574a2484
    • Alexander Preisinger's avatar
      wayland: remove set_user_data from seat_listener · f5b92bee
      Alexander Preisinger authored
      The user_data is passed on add_listener and can later be changed with
      set_user_data. But because we don't want to change it later and because it is
      the same object remove the set_user_data call.
      
      This might be a copy&paste leftover from the initial draft for the wayland
      backend.
      f5b92bee
    • Alexander Preisinger's avatar
      wayland: use static consistently · ca3d7144
      Alexander Preisinger authored
      Declare everything that is only needed inside wayland_common.c as static.
      ca3d7144
    • wm4's avatar
      terminal: don't initialize termcap etc. if stdout is not a terminal · 86e7c3de
      wm4 authored
      Otherwise, it seems one of the term* libraries will write escape
      sequences to stdout, for whatever reason.
      86e7c3de
    • Alexander Preisinger's avatar
      wayland: fix fullscreen & resizing for good · 0fe1385d
      Alexander Preisinger authored
      I added enough logic to never set ontop or fullscreen twitce.
      This commit keeps also the size of the video if multiple videos are played.
      If the ratio differs the width will be kept at the same size and only the
      height changes.
      0fe1385d
    • wm4's avatar
    • wm4's avatar
      wayland: silence annoying libwayland-client message · 909185d4
      wm4 authored
      libwayland-client contains the following code [1]:
      
      	runtime_dir = getenv("XDG_RUNTIME_DIR");
      	if (!runtime_dir) {
      		fprintf(stderr,
      			"error: XDG_RUNTIME_DIR not set in the environment.\n");
      
      This means this message will unconditionally and unavoidably be printed
      if XDG_RUNTIME_DIR is not set. Since mpv is a terminal program, and we
      want to avoid unnecessary output, work it around by not attempting to
      use wayland if this environment variable is not set.
      
      [1] http://cgit.freedesktop.org/wayland/wayland/tree/src/wayland-client.c#n636
          (cd0dccd01e16fa404e03974d30ded3aebdb1c4bc)
      909185d4
    • wm4's avatar
      wayland: fix some memory leaks on initialization failure · c18c324c
      wm4 authored
      This commonly happens when initializing vo_opengl on a X11-only system.
      
      Unfortunately, most wl_*_destroy() functions appear not to accept NULL
      pointers, making partial deinitialization a pain: you have to add your
      own NULL checks everywhere to avoid crashes.
      
      xkb.context is uninitialized separately, because you can initialize it
      just fine, even if the rest of input initialization fails.
      c18c324c
  2. Jan 06, 2014
Loading