1. 14 Oct, 2019 2 commits
  2. 02 Sep, 2019 1 commit
    • Matthew Waters's avatar
      decklinkaudiosink: Drop late buffers · 82e23a27
      Matthew Waters authored
      Asking decklink to render audio data seems to be based entirely on
      the sample counts which completely disregards the timestamps
      we pass to decklink.  As a result, we need to explicitly check
      for late buffers and drop them ourselves.
  3. 30 Aug, 2019 1 commit
    • Matthew Waters's avatar
      decklink: fix macos werror build · 02814a43
      Matthew Waters authored
      ../sys/decklink/gstdecklink.cpp:1703:7: error: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long') [-Werror,-Wformat]
      /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1070:87: note: expanded from macro 'GST_DEBUG'
      #define GST_DEBUG(...)                  GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG,   NULL, __VA_ARGS__)
      /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
              (GObject *) (object), __VA_ARGS__);                             \
  4. 07 Aug, 2019 2 commits
  5. 06 Aug, 2019 1 commit
    • Sebastian Dröge's avatar
      decklinkaudiosrc/decklinkvideosrc: Do nothing in BaseSrc::negotiate() and... · ab8bd0aa
      Sebastian Dröge authored
      decklinkaudiosrc/decklinkvideosrc: Do nothing in BaseSrc::negotiate() and always set caps in ::create()
      We don't support negotiation with downstream but simply set caps based
      on the buffers we receive. This prevents renegotiation to other formats,
      and negotiation to NTSC in mode=auto in the beginning until the first
      buffer is received.
      As side-effect of this, also remove various other caps handling code
      that was working around the behaviour of the default
  6. 25 Jul, 2019 2 commits
  7. 15 Jul, 2019 1 commit
    • Sebastian Dröge's avatar
      decklinkvideosrc: Don't report that we have signal until we know for sure · bf9ecd65
      Sebastian Dröge authored
      Previously we would've reported that there is signal unless we know for
      sure that we don't have signal. For example signal would've been
      reported before the device is even opened.
      Now keep track whether the signal state is unknown or not and report no
      signal if we don't know yet. As before, only send an INFO message about
      signal recovery if we actually had a signal loss before.
  8. 09 Jul, 2019 1 commit
  9. 24 Jun, 2019 1 commit
  10. 20 Jun, 2019 1 commit
  11. 13 May, 2019 1 commit
  12. 03 May, 2019 3 commits
  13. 09 Apr, 2019 1 commit
  14. 04 Mar, 2019 2 commits
  15. 19 Feb, 2019 1 commit
  16. 12 Feb, 2019 2 commits
  17. 05 Feb, 2019 1 commit
    • Nirbheek Chauhan's avatar
      misc: Fix warnings on Cerbero MinGW · fffb2aa1
      Nirbheek Chauhan authored
      gstladspa.c:360:5: error: zero-length ms_printf format string [-Werror=format-zero-length]
      vad_private.c:108:3: error: this decimal constant is unsigned only in ISO C90 [-Werror]
      gstdecklinkvideosink.cpp:478:32: error: comparison between 'BMDTimecodeFormat {aka enum _BMDTimecodeFormat}' and 'enum GstDecklinkTimecodeFormat' [-Werror=enum-compare]
      win/DeckLinkAPI_i.c:72:8: error: extra tokens at end of #endif directive [-Werror]
      win/DeckLinkAPIDispatch.cpp:35:10: error: unused variable 'res' [-Werror=unused-variable]
      gstwasapiutil.c:733:3: error: format '%x' expects argument of type 'unsigned int', but argument 8 has type 'DWORD' [-Werror=format]
      gstwasapiutil.c:733:3: error: format '%x' expects argument of type 'unsigned int', but argument 9 has type 'guint64' [-Werror=format]
      kshelpers.c:446:3: error: missing braces around initializer [-Werror=missing-braces]
      kshelpers.c:446:3: error: (near initialization for 'known_property_sets[0].guid.Data4') [-Werror=missing-braces]
  18. 02 Jan, 2019 1 commit
  19. 18 Dec, 2018 1 commit
  20. 15 Dec, 2018 1 commit
  21. 12 Dec, 2018 1 commit
    • Matthew Waters's avatar
      decklink: calculate the decklink output time from the internal clock · 59c5ae28
      Matthew Waters authored
      Fixes the time calculations when dealing with a slaved clock (as
      will occur with more than one decklink video sink), when performing
      flushing seeks causing stalls in the output timeline, pausing.
      Tighten up the calculations by relying solely on the internal time
      (from the internal clock) for determining when to schedule display
      frames instead attempting to track pause lengths from the external
      clock and converting to internal time.  This results in a much easier
      offset calculation for choosing the output time and ensures that the
      clock is always advancing when we need it to.
      This is fixup to the 'monotonically increasing output timestamps' goal
      in: bf849e9a
  22. 28 Nov, 2018 1 commit
  23. 26 Nov, 2018 1 commit
  24. 13 Nov, 2018 1 commit
  25. 12 Nov, 2018 1 commit
  26. 07 Nov, 2018 1 commit
  27. 06 Nov, 2018 1 commit
  28. 05 Nov, 2018 1 commit
  29. 01 Nov, 2018 1 commit
  30. 12 Sep, 2018 4 commits
    • Matthew Waters's avatar
      decklinkvideosink: fix build · 17f0271a
      Matthew Waters authored
      ../sys/decklink/gstdecklinkvideosink.cpp:1006:11: error: ‘GstDecklinkVideoSink {aka struct _GstDecklinkVideoSink}’ has no member named ‘scheduled_stop_time’
           self->scheduled_stop_time = start_time;
    • Matthew Waters's avatar
      decklink: wait for stop with a timeout · 946cbbcc
      Matthew Waters authored
      Decklink sometimes does not notify us through the callback that it has
      stopped scheduled playback either because it was uncleanly shutdown
      without an explicit stop or for unknown other reasons.
      Wait on the cond for a short amount of time before checking if scheduled
      playback has stopped without notification.
    • Matthew Waters's avatar
      decklink: start scheduled playback in paused · bf849e9a
      Matthew Waters authored
      This is part of a much larger goal to always keep the frames we schedule to
      decklink be always increasing.  This also allows us to avoid using both the
      sync and async frame display functions which aren't recomended to be used
      If the output timestatmsp is not always increasing decklink seems to hold
      onto the latest frame and may cause a flash in the output if the played
      sequence has a framerate less than the video output.
      Scenario is play for N seconds, pause, flushing seek to some other position,
      play again.  Each of the play sequences would normally start at 0 with
      the decklink time.  As a result, the latest frame from the previous sequence
      is kept alive waiting for it's timestamp to pass before either dropping
      (if a subsequent frame in the new sequence overrides it) or displayed
      causing the out of place frame to be displayed.
      This is also supported by the debug logs from the decklink video sink
      element where a ScheduledFrameCompleted() callback would not occur for
      the frame until the above had happened.
      It was timing related as to whether the frame was displayed based
      on the decklink refresh cycle (which seems to be 16ms here),
      when the frame was scheduled by the sink and the difference between
      the 'time since vblank' of the two play requests (and thus start times
      of scheduled playback).
    • Matthew Waters's avatar
      decklinkaudiosink: fix debug string copy-paste error · 87077d20
      Matthew Waters authored
      Stopping != Starting