1. 11 4月, 2015 6 次提交
    • J
      libobs: Fix async texture data race · dde1a731
      jp9000 提交于
      The obs_source::async_reset_texture variable can cause a data race
      between threads to occur because it could be set to true in one thread
      then changed back to false in another thread.  This could cause the
      async texture to not update its size when it's supposed to, which can
      cause a crash or corruption when copying data from a frame of a
      differing size.
      
      The solution to this is to:
      
      - Delete the async_reset_texture variable, and make the
        set_async_texture_size function change the texture size if the
        async_width, async_height, or async_format variables differ from the
        frame's width/height/format.  Those variables are then only ever set
        in the libobs graphics thread.
      
      - Make the cache_video function use separate variables from other
        functions to detect a change in size (due to the fact that the texture
        size should only be resized in the libobs graphics thread).  These
        variables are async_cache_width, async_cache_height, and
        async_cache_format, which are only be set in the thread that calls
        obs_source_output_video.
      
      How to replicate the data race:
      
      - On OSX, use window capture on a textedit window, then continually
        resize the textedit window.
      dde1a731
    • J
      libobs: Remove out-of-context comment · 85a490c5
      jp9000 提交于
      This comment was originally for an older version of the code; I'm
      guessing I forgot to remove it along with the code that it originally
      belonged with.
      85a490c5
    • P
      win-dshow: Update libdshowcapture to 0.5.0 · a5f78e6f
      Palana 提交于
      Changes:
      - Prevent concurrent calls to EnumDevices (resolves a crash with
        some device filters (like the XCAPTURE-1) with multiple active
        dshow sources)
      a5f78e6f
    • J
      UI: Fix vec2 warning · 0fbf1124
      jp9000 提交于
      Fix warning encountered on clang-504.0.40 on OSX 10.9:
      
      obs/window-basic-main.cpp:2884:22: warning: suggest braces around
      initialization of subobject [-Wmissing-braces]
      		struct vec2 dir = {0.0f, 0.0f};
      0fbf1124
    • J
      libobs: Don't use 'output' as a keyword in shader · 6e572d84
      jp9000 提交于
      The bilinear lowres scale effect was using 'output' for a variable,
      which is apparently a reserved keyword in GLSL on macs.  This slipped
      by me due to the fact that this didn't occur with OpenGL on my windows
      machine.
      6e572d84
    • J
      libobs: Always free effect if not cached · ea8327ce
      jp9000 提交于
      Fix an issue where effects that fail to compile will not properly free
      their data if they cannot not be parsed or compiled.
      ea8327ce
  2. 10 4月, 2015 24 次提交
    • J
      UI: Add windows exe icon · 20541617
      jp9000 提交于
      Adds an icon to the executable file so the executable no longer shows up
      without an icon.
      20541617
    • J
      UI: Add fullscreen projector options · 167e781b
      jp9000 提交于
      Add the ability to use a fullscreen projector for scenes, sources, and
      the preview display.
      167e781b
    • J
      UI: Add fullscreen projector class · c6828304
      jp9000 提交于
      This allows viewing a source, scene, or the main preview in a fullscreen
      window.
      c6828304
    • J
      UI: Add up/down/left/right position shortcuts · b7421aaf
      jp9000 提交于
      Allows nudging of selected items in the direction pressed when the
      preview window is focused.
      b7421aaf
    • J
      UI: Add context menu to preview · 167df61d
      jp9000 提交于
      Includes the ability to disable the preview and general source context
      menu options (add/remove/filters/properties/etc)
      167df61d
    • J
      UI: Remove listbox selection if deselected · 1cfe7266
      jp9000 提交于
      If the item currently selected in the source listbox is deselected in
      the preview, then make sure to deselect it in the listbox as well.
      1cfe7266
    • J
      UI: Remove redundant config settings · 853e6376
      jp9000 提交于
      These are replaced by other settings in the global ini file.
      853e6376
    • J
      UI: Rename "MainWindow" ini section · 206ae650
      jp9000 提交于
      Rather than using [MainWindow] in the global ini, explicitly state
      BasicWindow instead so we know it's for the basic user interface.
      206ae650
    • J
      UI: Allow right-clicking to select preview items · 0e496953
      jp9000 提交于
      Allows selection of items by right-clicking on the preview as well
      rather than just left-clicks.
      0e496953
    • J
      UI: Fix tooltips for scene move up/down buttons · 3816b0bf
      jp9000 提交于
      3816b0bf
    • J
      win-dshow: Update libdshowcapture to 0.4.4 · d18a164c
      jp9000 提交于
      Adds the following changes:
      - Prioritize YUV formats over non-YUV formats for performance and to
        prevent intermediary filters
      - Directly connect filters when possible to avoid intermediary filters
      d18a164c
    • J
      win-dshow: Ensure autoselected FPS updates formats · 21deb265
      jp9000 提交于
      Fix an issue where if the FPS property is set to "Match Output FPS" it
      will not show all the available video formats.
      21deb265
    • J
      win-wasapi: Fix timeout bug · 75bc7d31
      jp9000 提交于
      The WaitForSignal message is supposed to return return true if the
      handle was signaled, not if the wait timed out.
      75bc7d31
    • J
      win-wasapi: Prevent repeating connect fail message · 1143b1d6
      jp9000 提交于
      Fixes an issue where if the device can't be connected, it will
      continually repeat the connection failure message.
      1143b1d6
    • J
      text-freetype2: Prevent potential null dereference · f3069e3e
      jp9000 提交于
      f3069e3e
    • J
      obs-outputs: Do not drop I-frames · 0e2a5d2d
      jp9000 提交于
      When frames were dropped, it would also drop I-frames, which can mess
      with the keyframe calculation of certain services that depend on
      I-frames in their output protocol (such as HLS).
      0e2a5d2d
    • J
      libobs: Fix full range min/max output · 4e54c89f
      jp9000 提交于
      The minimum and maximum color range values were not being set by the
      video_format_get_parameters function when full range was in use; I
      assume it's because the expected min/max values of full range is
      {0.0, 0.0, 0.0} and {1.0, 1.0, 1.0}, so I'm just making it so that it
      sets those values if using full range.
      
      Way to replicate the issue (windows):
      1.) Create a win-dshow device capture source
      2.) Select a device and set it to a YUV color format to enable YUV color
      conversion
      3.) Select "Full Range" in the color range property.
      4.) Restart OBS, the device will then start up, but will display green
      due to the fact that the min/max range values were never set, and are
      left at their default value of 0.
      4e54c89f
    • J
      libobs: Fix bug with filter bypassing · 095159c2
      jp9000 提交于
      Due to a bad 'if' expression, when a filter that is not last in the
      chain is disabled or being bypassed, it ends up still calling the
      filter's video processing function unintentionally.
      
      This fix makes sure that it only calls the appropriate render functions
      if the next filter target is the source, otherwise it will just call
      obs_source_video_render to process the next filter in the chain.
      
      How to replicate the bug:
      1. Create two crop filters on the same source
      2. Give each crop filter a different distinct value
      3. Disable both crop filters
      4. The image would still be cropped
      095159c2
    • J
      libobs: Use bilinear low res scale effect · 13fd6ff0
      jp9000 提交于
      The normal scaling methods cannot sample enough pixels to create an
      accurate output image when the output size is under half the base size,
      so use the bilinear low resolution scaling effect in that case instead
      to ensure a more accurate low resolution image.
      13fd6ff0
    • J
      libobs: Add low resolution bilinear scale effect · 65517ea4
      jp9000 提交于
      This effect preserves detail of images that are scaled below half size
      by using sampling 9 pixels.
      65517ea4
    • J
      libobs: Add missing function definitions · b18e957d
      jp9000 提交于
      Add missing function definitions for the lanczos and bicubic effects
      b18e957d
    • J
      libobs: Add func to set display background color · 27a0749d
      jp9000 提交于
      This function sets the background color for a display
      27a0749d
    • J
      libobs: Add functions to disable main preview · 1a9c512f
      jp9000 提交于
      If you don't need to see what's displayed, then this is particularly
      useful for two reasons:
      1. It reduces the number of draw/present calls
      2. It can prevent issues with certain hardware setups where rendering on
         a monitor hooked up to a separate card can experience slowdowns
      1a9c512f
    • J
      libobs: Add ability to disable displays · ebfe477c
      jp9000 提交于
      Sometimes it can be useful to turn off rendering to the display in order
      to reduce the number of draw calls and present calls.
      ebfe477c
  3. 08 4月, 2015 1 次提交
    • F
      UI: Fix precision in float comparison helper · 9cc56f25
      fryshorts 提交于
      Use std::abs instead of abs to avoid loss in precision and also fix
      the corresponding warning from clang (3.5.0):
      
      warning: using integer absolute value function 'abs' when argument is
      of floating point type [-Wabsolute-value]
      
      Closes jp9000/obs-studio#414
      9cc56f25
  4. 06 4月, 2015 2 次提交
  5. 05 4月, 2015 1 次提交
  6. 04 4月, 2015 4 次提交
  7. 03 4月, 2015 2 次提交
    • J
      mac-capture: Get cursor visible setting on create · 35a4aced
      jp9000 提交于
      When display capture is created, the hide_cursor variable is not
      initialized, so just initialize it to the setting in the create
      function.
      35a4aced
    • J
      mac-capture: Fix display capture cursor bug · a892fa9e
      jp9000 提交于
      The kCGDisplayStreamShowCursor option used with the dictionary does not
      work if you assign @true or @false to it.  After some testing, it needs
      to point to the id cast of either kCFBooleanTrue or kCFBooleanFalse in
      order for it to work properly.
      
      If it doesn't use either of those values, the display stream seems to
      use its internal default, which on 10.8 and 10.9 is visible, and 10.10+
      is invisible, which would explain why people on 10.10 couldn't get the
      cursor to capture.
      a892fa9e