1. 17 Jun, 2016 7 commits
  2. 16 Jun, 2016 12 commits
    • Rémi Denis-Courmont's avatar
      input: fix assertion · f8acefe5
      Rémi Denis-Courmont authored
      So far, pf_demux is mandatory for unpaced demuxers.
    • Rémi Denis-Courmont's avatar
      input: check DEMUX_CAN_CONTROL_RATE on demux · f2ee786a
      Rémi Denis-Courmont authored
      This makes no difference. DEMUX_CAN_CONTROL_RATE only works with
      "access_demux" plugins and always fails with "demux" plugins. The
      end result is still:
      	in->b_can_rate_control = in->b_can_pace_control;
      	in->b_rescale_ts = true;
    • Rémi Denis-Courmont's avatar
      input: remove redundant test · c1083a17
      Rémi Denis-Courmont authored
      If demux_t.s is NULL, then the b_rescale_ts flag is true and the
      DEMUX_SET_RATE control will fail. The end result is the same.
    • Rémi Denis-Courmont's avatar
      input: remove second flag in DEMUX_CAN_CONTROL_RATE · e33dcaa8
      Rémi Denis-Courmont authored
      Only one of the demuxer actually set the flag (at all), live555. That
      is also the only demuxer that supports rate control, so infer the value
    • Rémi Denis-Courmont's avatar
      input: fix inverted check · a5cfe8b4
      Rémi Denis-Courmont authored
      Regression from 2237ed70.
    • Rémi Denis-Courmont's avatar
      Revert "libvlc: delete preparser before interfaces" · 17bd88b9
      Rémi Denis-Courmont authored
      This reverts commit 9e9b2274.
      The preparser must obviously outlive the playlist (and thus interfaces).
      This fixes use after free:
      ERROR: AddressSanitizer: heap-use-after-free on address 0x611000005548 at pc 0x7fad5e11bffa bp 0x7fad50daac10 sp 0x7fad50daac08
      READ of size 8 at 0x611000005548 thread T1
          #0 0x7fad5e11bff9 in playlist_preparser_fetcher_Push ../../src/playlist/preparser.c:128
          #1 0x7fad5e0e7640 in libvlc_ArtRequest ../../src/libvlc.c:648
          #2 0x7fad5e10ad37 in PlayItem ../../src/playlist/thread.c:232
          #3 0x7fad5e10d167 in Next ../../src/playlist/thread.c:478
          #4 0x7fad5e10d448 in Thread ../../src/playlist/thread.c:501
          #5 0x7fad5fba3463 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7463)
          #6 0x7fad5f6dce5c in clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8e5c)
      0x611000005548 is located 8 bytes inside of 208-byte region [0x611000005540,0x611000005610)
      freed by thread T0 here:
          #0 0x7fad60ea69d0 in free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc19d0)
          #1 0x7fad5e11cf8f in playlist_preparser_Delete ../../src/playlist/preparser.c:184
          #2 0x7fad5e0e6b53 in libvlc_InternalCleanup ../../src/libvlc.c:512
          #3 0x7fad60b2ed14 in libvlc_release ../../lib/core.c:105
          #4 0x4024da in main ../../bin/vlc.c:275
          #5 0x7fad5f6145ef in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x205ef)
      previously allocated by thread T0 here:
          #0 0x7fad60ea6ce8 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ce8)
          #1 0x7fad5e11b3cd in playlist_preparser_New ../../src/playlist/preparser.c:74
          #2 0x7fad5e0e62a2 in libvlc_InternalInit ../../src/libvlc.c:374
          #3 0x7fad60b2e6d3 in libvlc_new ../../lib/core.c:59
          #4 0x4022dd in main ../../bin/vlc.c:228
          #5 0x7fad5f6145ef in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x205ef)
      Thread T1 created by T0 here:
          #0 0x7fad60e15f19 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f19)
          #1 0x7fad5e30d9f6 in vlc_clone_attr ../../src/posix/thread.c:484
          #2 0x7fad5e30dbd8 in vlc_clone ../../src/posix/thread.c:496
          #3 0x7fad5e1091a9 in playlist_Activate ../../src/playlist/thread.c:54
          #4 0x7fad5e1117a0 in playlist_Create ../../src/playlist/engine.c:299
          #5 0x7fad5e106139 in intf_GetPlaylist ../../src/interface/interface.c:149
          #6 0x7fad5e1061d9 in intf_InsertItem ../../src/interface/interface.c:165
          #7 0x7fad5e0e72f7 in GetFilenames ../../src/libvlc.c:605
          #8 0x7fad5e0e6979 in libvlc_InternalInit ../../src/libvlc.c:488
          #9 0x7fad60b2e6d3 in libvlc_new ../../lib/core.c:59
          #10 0x4022dd in main ../../bin/vlc.c:228
          #11 0x7fad5f6145ef in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x205ef)
      SUMMARY: AddressSanitizer: heap-use-after-free ../../src/playlist/preparser.c:128 in playlist_preparser_fetcher_Push
    • Felix Paul Kühne's avatar
    • Felix Paul Kühne's avatar
      macosx: minor cleanup · 7b2a882b
      Felix Paul Kühne authored
    • Rémi Denis-Courmont's avatar
      test: add Windows cases · c98243a2
      Rémi Denis-Courmont authored
    • Steve Lhomme's avatar
      win32: assert when VLC_CANCEL_ADDR_SET has another address already set · 05bf8497
      Steve Lhomme authored
      in par with the assert in VLC_CANCEL_ADDR_CLEAR but we can tell who's guilty
      Signed-off-by: Rémi Denis-Courmont's avatarRémi Denis-Courmont <remi@remlab.net>
    • Rémi Denis-Courmont's avatar
      win32: do not reenter vlc_mutex_* and vlc_cond_* · d0fd9a09
      Rémi Denis-Courmont authored
      Use native primitives for the super mutex and condition variable.
    • Steve Lhomme's avatar
  3. 15 Jun, 2016 7 commits
  4. 14 Jun, 2016 14 commits