1. 20 2月, 2019 1 次提交
    • D
      libobs: Add minimum display duration to caption data · b8b2b7e2
      derrod 提交于
      Adds display_duration declaring the minimum duration a caption text
      is not going to be overwritten by a new one. To keep the functions
      backwards-compatible obs_output_output_caption_text2 was added while
      obs_output_output_caption_text1 continues having a 2 second default.
      b8b2b7e2
  2. 11 2月, 2019 1 次提交
  3. 08 2月, 2019 5 次提交
    • V
      UI: Add scene item canvas overflow to preview · f095cb2d
      VodBox 提交于
      f095cb2d
    • J
      libobs: Add texture-based encoding support · 93ba6e71
      jp9000 提交于
      Allows the ability to encode by passing NV12 textures.  This uses a
      separate thread for texture-based encoders with a small queue of
      textures.  An output texture with a keyed mutex shared texture is locked
      between OBS and each encoder.  A new encoder callback and capability
      flag is used to encode with textures.
      93ba6e71
    • J
      libobs: Split do_encode in to two funcs · cd1607ca
      jp9000 提交于
      This splits the "do_encode" function in to "do_encode" and
      "send_off_encoder_packet", the latter of which allows the ability for
      texture-based encoders to manage their own encoding and just simply send
      off a packet to the outputs.
      cd1607ca
    • J
      libobs: Add ability to reroute encoders · 9b8bc22f
      jp9000 提交于
      Allows the ability for one encoder to defer to another in case of
      failure or unsupported feature.  Okay, fine, it's mostly a hack so the
      new NVENC encoder can fall back to the FFmpeg encoder if NV12 textures
      aren't in use, that way it does not have to implement raw fallback
      support itself.  The settings and properties are pretty much the same,
      so there's no reason not to utilize it in order to save time that could
      otherwise be spent more productively.
      9b8bc22f
    • J
      libobs: Use NV12 textures when available · 28d0cc8b
      jp9000 提交于
      28d0cc8b
  4. 05 10月, 2018 1 次提交
  5. 07 9月, 2018 1 次提交
  6. 10 8月, 2018 1 次提交
  7. 02 5月, 2018 1 次提交
  8. 23 4月, 2018 1 次提交
  9. 04 1月, 2018 2 次提交
    • J
      libobs: Add ability to disable source types · a730f9d6
      jp9000 提交于
      Because it would be troublesome to add the ability to remove source
      types (in case for example a script fails to reload), instead make it so
      source types can be temporarily disabled while the program is running.
      a730f9d6
    • J
      libobs: Add video tick callback functions · 0ffc9bbf
      jp9000 提交于
      Allows the ability to have a callback invoked every time video ticks.
      Particularly useful for scripting.
      0ffc9bbf
  10. 28 10月, 2017 1 次提交
  11. 10 10月, 2017 1 次提交
    • 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
  12. 14 9月, 2017 1 次提交
  13. 21 7月, 2017 1 次提交
    • S
      libobs: Add post-load module callback · 4fd66d4d
      SammyJames 提交于
      This allows the ability for certain types of modules (particularly
      scripting-related modules) to initialize extra data when all other
      modules have loaded.  Because front-ends may wish to have custom
      handling for loading modules, the front-end must manually call
      obs_post_load_modules after it has completed loading all plug-in
      modules.
      
      Closes jp9000/obs-studio#965
      4fd66d4d
  14. 15 5月, 2017 1 次提交
  15. 14 5月, 2017 1 次提交
    • J
      libobs: Don't use source flags for async buffering · d13fa968
      jp9000 提交于
      (This commit also modifies the decklink, linux-v4l2, mac-avcapture,
      obs-ffmpeg, and win-dshow modules)
      
      Originally, async buffering for sources was supposed to be a
      user-controllable flag.  However, that turned out to be less than ideal
      because sources (such as the win-dshow plugin) were programmed with
      automatic control over their buffering (such as automatically detecting
      USB 2.0 capture devices and then enabling in those cases).
      
      The fact that it was a flag caused a design flaw to where buffering
      values would be overwritten when a source is loaded from save data.
      
      Because of that, this flag is being deprecated and replaced with a
      specific function to enable unbuffered mode instead.
      d13fa968
  16. 13 5月, 2017 1 次提交
  17. 11 5月, 2017 1 次提交
  18. 07 5月, 2017 3 次提交
    • J
      libobs: Add function to allow custom output drawing · ad57aa15
      jp9000 提交于
      Optionally allows drawing directly to the primary output instead of
      having to use a source to draw.
      ad57aa15
    • J
      libobs: Pass exact data when calling obs_get_video_info · ffef7366
      jp9000 提交于
      Originally, obs_get_video_info would recreate the obs_video_info
      structure that was originally passed to it from obs_reset_video.  This
      changes that to just store a copy of the obs_video_info when calling
      obs_reset_video, and then copying that to the parameter of
      obs_get_video_info when called.
      ffef7366
    • J
      libobs: Fix skipped frames reporting · 829ec5be
      jp9000 提交于
      When frames are skipped the skipped frame count would increment, but the
      total frame count would not increment, causing the percentage
      calculation to fail.
      
      Additionally, the skipped frames log reporting has been moved to
      media-io/video-io.c instead of each output.
      829ec5be
  19. 29 3月, 2017 2 次提交
  20. 07 2月, 2017 1 次提交
    • J
      libobs: Implement audio monitoring · d2934eca
      jp9000 提交于
      Adds functions to turn on audio monitoring to allow the user to hear
      playback of an audio source over the user's speaker.  It can be set to
      turn off monitoring and only output to stream, or it can be set to
      output only to monitoring, or it can be set to both.
      
      On windows, audio monitoring uses WASAPI.  Windows also is capable of
      syncing the audio to the video according to when the video frame itself
      was played.
      
      On mac, it uses AudioQueue.
      
      On linux, it's not currently implemented and won't do anything (to be
      implemented).
      d2934eca
  21. 24 12月, 2016 1 次提交
  22. 18 12月, 2016 2 次提交
    • J
      libobs: Convert Y800 to RGBX manually · 85269fb5
      jp9000 提交于
      Because D3D11 specifically does not support an L8 texture format (you
      have to use a shader swizzle), manually convert Y800 signals to RGBX
      instead.  This also fixes a bug where Y800 signals will render red.
      
      Closes jp9000/obs-studio#718
      85269fb5
    • J
      libobs: Fix possible reverse order mutex hard lock · e541e170
      jp9000 提交于
      For displays, instead of using the draw_callbacks_mutex and risk a
      reverse mutual lock scenario, use a separate mutex to lock display size
      data.
      
      This bug was exposed when trying to reorder filters in the UI module.
      The UI thread would try to reorder the filters, locking the filter mutex
      of the source, and then the reorder would signal the UI to resize the
      display, so the display would lock its draw_callbacks_mutex.  Then, in
      the graphics thread, it would lock the display's draw_callbacks_mutex,
      try to draw the source, and then the source would try to lock that same
      filter mutex.
      
      A mutex trace:
      UI thread -> lock source filter mutex -> waiting on display mutex
      graphics thread -> lock display mutex -> waiting on source filter mutex
      
      Closes jp9000/obs-studio#714
      e541e170
  23. 08 12月, 2016 1 次提交
    • J
      libobs: Use reference counting for encoder packets · 7d6e6eee
      jp9000 提交于
      Prevents reallocation of encoded packet data.
      
      Deprecates:
      obs_duplicate_encoder_packet
      obs_free_encoder_packet
      
      Replaces those functions with:
      obs_encoder_packet_ref
      obs_encoder_packet_release
      7d6e6eee
  24. 10 11月, 2016 1 次提交
    • J
      libobs: Ensure async source sizes are always reset · 9982581a
      Jim 提交于
      If an async source is cropped on one side, then when the program is
      restarted and the source is loaded from file, the async source will
      start out with a width/height of zero.  This will cause the async source
      to not be drawn if cropping or scale filtering is added to the scene
      item, because it has to be rendered to a texture first.  However, the
      source cannot reset its size until it's drawn, so it leaves it in
      perpetual state of having a 0x0 size.
      
      This fixes that problem by ensuring that the async source size is always
      reset even when not being rendered.
      
      Close jp9000/obs-studio#686
      9982581a
  25. 23 8月, 2016 1 次提交
    • J
      libobs: Add obs_get_active_fps function · 95ce5560
      jp9000 提交于
      Allows getting the current active framerate that the core is rendering
      with.  This takes in to account any rendering lag or stalls that may be
      occurring.
      95ce5560
  26. 29 6月, 2016 1 次提交
    • J
      libobs: Add ability to use scale filters on scene items · d4983383
      jp9000 提交于
      Allows the ability to use scale filters such as point, bicubic, lanczos
      on specific scene items, disabled by default.  When using one of the
      latter two options, if the item's scale is under half of the source's
      original size, it uses the bilinear low resolution downscale shader
      instead.
      d4983383
  27. 23 6月, 2016 1 次提交
    • J
      (API Change) libobs: Fix output data cutoff on stop · d7db0b8b
      jp9000 提交于
      (Note: This commit also modifies obs-ffmpeg and obs-outputs)
      
      API Changed:
      obs_output_info::void (*stop)(void *data);
      
      To:
      obs_output_info::void (*stop)(void *data, uint64_t ts);
      
      This fixes the long-time design flaw where obs_output_stop and the
      output 'stop' callback would just shut down the output without
      considering the timing of when obs_output_stop was used, discarding any
      possible buffering and causing the output to get cut off at an
      unexpected timing.
      
      The 'stop' callback of obs_output_info now takes a timestamp with the
      expectation that the output will use that timestamp to stop output data
      in accordance to that timing.  obs_output_stop now records the timestamp
      at the time that the function is called and calls the 'stop' callback
      with that timestamp.  If needed, obs_output_force_stop will still stop
      the output immediately without buffering.
      d7db0b8b
  28. 22 6月, 2016 3 次提交
  29. 27 3月, 2016 1 次提交