1. 18 10月, 2017 1 次提交
    • R
      UI: Disable source copy if no sources are selected · c8353c90
      Ryan Foster 提交于
      This commit addresses Mantis Bug 993. If no source was selected, the
      "Copy" context menu item was enabled, but selecting it would do nothing.
      This commit disables that menu item when no sources are selected.
      c8353c90
  2. 17 10月, 2017 4 次提交
  3. 16 10月, 2017 2 次提交
  4. 15 10月, 2017 1 次提交
  5. 14 10月, 2017 1 次提交
    • R
      UI: Disallow pasting duplicates of sources with DO_NOT_DUPLICATE · 0fe4688a
      Ryan Foster 提交于
      This commit prevents users from being able to use the "Paste
      (Duplicate)" context menu option after copying a source that has the
      OBS_SOURCE_DO_NOT_DUPLICATE flag set. Though OBS would correctly paste
      the source as a reference, it seems that this behavior was confusing
      some users. This fixes Mantis Bug 1034.
      0fe4688a
  6. 13 10月, 2017 2 次提交
    • J
      Merge pull request #1038 from nokia/network-fix · a76b919c
      Jim 提交于
      file-updater: fix crash due to network timeout
      a76b919c
    • J
      obs-outputs: Only set stop events if still active · 5cfefce5
      jp9000 提交于
      The new code in 3032535f would signal that the output has stopped to
      the back-end and front-end, but the event used in the outputs themselves
      to shut down the send thread would still be signaled, causing the next
      connection to immediately stop as soon as it had started.  This fixes it
      so that the event does not get signaled unless the thread is active.
      5cfefce5
  7. 12 10月, 2017 3 次提交
  8. 10 10月, 2017 3 次提交
    • J
      decklink: Use unbuffered by default, and decouple · 43300216
      jp9000 提交于
      Use unbuffered async mode by default, and when in unbuffered mode,
      decouple audio/video so that audio plays as soon as it's received.
      
      This is a workaround for decklink device drivers having unreliable
      video/audio timestamps (audio/video sync drifting over time).  From
      testing, it seems that the handling of video and audio is completely
      separate in the driver; along with the timestamp calculations.  For
      example, when the thread of the decklink audio callback is stalled, it
      would cause the timestamps of the audio alone to go out of sync, which
      indicates timestamps are calculated more or less on the spot independent
      of what video is doing (which is how we replicated the issue fixed by
      b63e4b05).  Because decklink drivers treats the audio and video as
      essentially decoupled, we must also treat it as decoupled.  This is what
      was causing video/audio to drift out of sync over time.
      43300216
    • J
      libobs: Add async video/audio decoupling functions · b54f70ef
      jp9000 提交于
      Decoupling the audio from the video causes the audio to be played right
      when it's received rather than attempt to sync up to the video frames.
      This is useful with certain async sources/devices when the audio/video
      timestamps are not reliable.
      
      Naturally because it plays audio right when it's received, this should
      only be used when the async source is operating in unbuffered mode,
      otherwise the video frame timing will be out of sync by the amount of
      buffering the video currently has.
      b54f70ef
    • J
      rtmp-services: Only update Twitch ingests when necessary · d768717b
      jp9000 提交于
      (This commit also modifies UI)
      
      Instead of pinging Twitch every time the program starts up, only pings
      for new servers when the ingests are actually being used, and when the
      UI uses the auto-configuration dialog.
      
      If ingests have not been cached when using the "Auto" server, it will
      wait for 3 seconds max to query the Twitch ingest API.  If it takes
      longer than 3 seconds or fails, it will defer to SF.  If ingests were
      already cached, then it will use the existing cache immediately.
      d768717b
  9. 08 10月, 2017 1 次提交
  10. 07 10月, 2017 1 次提交
    • J
      UI: Add ini option to use different graphics adapters · 3dc96fbe
      jp9000 提交于
      Allows setting a specific graphics adapter index to use for Direct3D 11.
      This is currently meant to be sort of "undocumented" in implementing it
      this way due to the fact that users will be guaranteed to break their
      configurations if this is implemented in the UI (even if in advanced
      settings).
      3dc96fbe
  11. 06 10月, 2017 3 次提交
    • J
      libobs-opengl: Disable v-sync on mac · 4494e927
      jp9000 提交于
      Sets the swap interval to 0 to prevent v-sync from affecting any of the
      preview panes on mac.
      4494e927
    • J
      libobs: Disable pulseaudio dependency lookup on mac · 3399f7b8
      jp9000 提交于
      The cmake script code used to find and depend on pulseaudio for audio
      monitoring on linux was unintentionally being triggered on mac.  This
      patch makes it so that the pulseaudio cmake code is ignored on mac.
      3399f7b8
    • J
      UI: Log generic stream startup failures · 720a28ae
      jp9000 提交于
      These code paths had no logging on failure, resulting in a log file that
      would confuse people attempting to perform support for users.
      720a28ae
  12. 05 10月, 2017 2 次提交
    • T
      file-updater: fix crash due to network timeout · 379137d0
      Thomas De Schampheleire 提交于
      If there is no network connection, OBS crashes after 5 minutes idling
      with following crash:
      
      *** longjmp causes uninitialized stack frame ***: obs terminated
      ======= Backtrace: =========
      /lib64/libc.so.6(+0x6f1e3)[0x7f8f95f901e3]
      /lib64/libc.so.6(__fortify_fail+0x37)[0x7f8f96018ba7]
      /lib64/libc.so.6(+0xf7add)[0x7f8f96018add]
      /lib64/libc.so.6(__longjmp_chk+0x29)[0x7f8f96018a39]
      /usr/lib64/libcurl.so.4(+0xa5d5)[0x7f8f979b75d5]
      /lib64/libpthread.so.0(+0x10e30)[0x7f8f962cae30]
      /lib64/libc.so.6(__poll+0x2d)[0x7f8f95fff46d]
      /usr/lib64/libglib-2.0.so.0(+0x4a64c)[0x7f8f91b5564c]
      /usr/lib64/libglib-2.0.so.0(g_main_context_iteration+0x2c)[0x7f8f91b5575c]
      /usr/lib64/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x5f)[0x7f8f9706c1ff]
      /usr/lib64/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xfa)[0x7f8f9701defa]
      /usr/lib64/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x9c)[0x7f8f970258fc]
      obs(main+0x5ac)[0x4773dc]
      /lib64/libc.so.6(__libc_start_main+0xf0)[0x7f8f95f41700]
      obs(_start+0x29)[0x478389]
      
      Internet search [1] revealed that this is a libcurl bug that can be worked
      around by asking curl not to install signal handlers.
      
      [1] https://stackoverflow.com/a/10755612
      379137d0
    • J
      win-dshow: Fix video playback when default format is MJPEG · a0e8c7a5
      jp9000 提交于
      Video playback doesn't work if the default format is MJPEG and there are
      other formats to use; this is because the useDefaultConfig variable is
      still set to true, which overrides the format value that would normally
      tell it to convert to RGB.
      a0e8c7a5
  13. 04 10月, 2017 2 次提交
  14. 03 10月, 2017 1 次提交
    • J
      graphics-hook: Blacklist specific game from GL capture · e5d660e9
      jp9000 提交于
      "Life is Feudal: Your Own" will use Direct3D to render the game, then
      OpenGL to render its in-game menus, which causes a conflict with itself.
      This specifically blacklists the game from capturing OpenGL to prevent
      that from happening.
      e5d660e9
  15. 02 10月, 2017 13 次提交
    • J
      vlc-video: Set properties to defer update mode · c914c1c2
      jp9000 提交于
      Makes it so that the settings do not update every time the user touches
      a property of the source, but instead update when the user is finished.
      c914c1c2
    • J
      libobs/media-io: Fix decompress_420 function · 849944ca
      jp9000 提交于
      This function had a number of bugs and just wasn't working properly at
      all.  This function is currently not used in public builds because GPU
      is used for color conversion instead (hence why it had probably not
      really been tested), but a need came up where CPU conversion was useful
      for the sake of testing something else in the back-end, and it needed to
      be fixed before CPU conversion could be used.
      849944ca
    • J
      test: Add sync tests · 292a6e59
      jp9000 提交于
      The async source sync test verifies that async sources are playing back
      in sync properly, and the "sync pair (video)" and "sync pair (audio)"
      sources test the back-end syncing down to the exact sample via inserting
      audio data directly in to the back-end with system timestamps.
      
      For these sources, when the video is white, a C sinewave should be
      playing, and when the video is black audio is mute.
      292a6e59
    • J
      win-wasapi: Subtract frame duration from timestamp · 5b209422
      jp9000 提交于
      It would appear that the timestamp values returned by devices are not
      perfectly accurate, and in some cases may be calculated on the spot --
      to combat that, it's best to subtract the audio segment's duration from
      the current audio segment's timestamp to ensure the timing is as
      accurate as possible.
      5b209422
    • J
      win-capture: Remove buffering from window capture · 008e38f5
      jp9000 提交于
      Removes the unnecessary buffering from window capture to prevent window
      capture from being one frame out of sync
      008e38f5
    • J
      libobs: Set video timing_adjust to obs video time · ef97f15d
      jp9000 提交于
      When an async video frame comes in and it sets the timing_adjust value
      (used to sync audio to video based upon their timestamps), it would use
      os_gettime_ns as a base.  Instead, it should use OBS' current video
      frame time so that the audio and video playback is as accurate as
      possible relative to the actual exact timestamp of the video frame.
      (Results are almost insignificant, but it's nice to be as precise as
      possible)
      ef97f15d
    • J
      obs-outputs: Fix up the internal FLV output · 54e80661
      jp9000 提交于
      Fixes up the FLV output to ensure it functions properly.
      54e80661
    • J
      libobs: When interleaving packets, make video come first · 260de35b
      jp9000 提交于
      During packet interleaving (for outputs), ensure that if two packets
      coincide with the same timestamp, that the video packet always comes
      first instead of the audio packet.
      
      This fix is required to make FLV demux properly with certain demuxers;
      some FLV demuxers expect the video packet before the audio packet when
      two packets coincide with the same timestamps.
      260de35b
    • J
      obs-outputs: Fix FLV muxing bug · 8d424cf1
      jp9000 提交于
      The end of an FLV tag would contain the size of the tag, but the code
      was erroneously including the end size value in addition, which it's not
      supposed to do normally.
      8d424cf1
    • J
      libobs: Move macro to internal C file · dc1e2331
      jp9000 提交于
      Modifying this value would cause the entire project to recompile when
      it's only used in one file in the first place.
      dc1e2331
    • J
      libobs: Fix starting video packet offset in outputs · 4a5ac397
      jp9000 提交于
      (This commit also modifies the obs-outputs module)
      
      The first video packet video offset (the value used to set the starting
      point of video data) would be set to the DTS value of the first video
      packet.  However, when b-frames are used, the first DTS value will be
      negative.  This was originally done because FLV muxing requires that the
      first packet's DTS start from 0.  Unfortunately, this would also
      effectively cause the first packet's PTS/DTS value to be shifted forward
      by the negative amount, which would cause video sync to be off by a
      video frame or two.
      
      This fixes it to start at the PTS value instead and preserve any
      negative offsets.  Additionally, the FLV muxing code has been fixed to
      ensure that it adjusts the starting video DTS to 0, and now correctly
      adjusts the first audio packet's timestamp according to that DTS as well
      (which it didn't do before).
      4a5ac397
    • J
      libobs: Fix paired audio encoder discarding one segment · 2f04010a
      jp9000 提交于
      On audio encoder startup, audio encoders paired with a video encoder
      would unintentionally discard a single audio data segment, causing it to
      be 1024 audio frames out of sync.
      2f04010a
    • R
      UI/updater: Use TLS 1.2 with WinHTTP · 05fb6771
      Richard Stanway 提交于
      On Windows 7, WinHTTP defaults to using only SSL3 and TLS 1.0. The
      obsproject.com server was updated to remove TLS 1.0 support and
      this has caused updates to stop working on Windows 7.
      05fb6771