1. 31 1月, 2014 4 次提交
  2. 30 1月, 2014 5 次提交
    • J
      Improve thread safety for scene items · 103ef753
      jp9000 提交于
      Scene items previously were removed by calling obs_sceneitem_destroy,
      but this proved to be a potential race condition where two different
      threads could try to destroy the same scene item at the same time.
      
      Instead of doing that, reference counting is now used on scene items,
      and an explicit obs_sceneitem_remove function is used instead for item
      removal, which sets a 'removed' variable to ensure it can only be called
      exactly one time.
      103ef753
    • J
      Fix the design flaw with obs_sceneitem_destroy · 3243a9f8
      jp9000 提交于
      The previous commit used the scene as a  parameter to check to see if
      the scene item was still present within the scene before destroying, but
      this was actually unnecessary because the fault was because the destroy
      signal was being triggered *before* the scene's mutex locked, thus
      causing a race condition.  I changed the code so that it signals after
      the lock instead of before, so the scene parameter should no longer be
      necessary.
      3243a9f8
    • P
      d095a4ae
    • P
      Check if scene item is actually alive when calling obs_sceneitem_destroy · 2fa208ad
      Palana 提交于
      Prevents a double free in case the scene item was previously removed
      2fa208ad
    • P
      Use recursive mutex for scene mutex · af03444c
      Palana 提交于
      Fixes a deadlock when trying to remove a source from the GUI. The scene
      item signal handlers would mark the source as removed which results in
      the video thread also trying to run obs_sceneitem_destroy thereby
      deadlocking the video thread (and the GUI thread)
      af03444c
  3. 29 1月, 2014 1 次提交
    • J
      Improve safety for settings usage · 9116be8d
      jp9000 提交于
      - Add 'set_default' functions to obs-data.*.  These functions ensure
        that a paramter exists and that the parameter is of a specific type.
        If not, it will create or overwrite the value with the default setting
        instead.
      
        These functions are meant to be explicitly called before using any of
        the 'get' functions.  The reason why it was designed this way is to
        encourage defaults to be set in a single place/function.
      
        For example, ideal usage is to create one function for your data,
        "set_my_defaults(obs_data_t data)", set all the default values within
        that function, and then call that function on create/update, that way
        all defaults are centralized to a single place.
      
      - Ensure that data passed to sources/encoders/outputs/etc is always
        valid, and not a null value.
      
      - While I'm remembering, fix a few defaults of the main program config
        file data.
      9116be8d
  4. 28 1月, 2014 1 次提交
    • J
      Implement settings interface for plugins · 6c442916
      jp9000 提交于
      Add a fairly easy to use settings interface that can be passed to
      plugins, and replaced the old character string system that was being
      used before.  The new data interface allows for an easier method of
      getting/altering settings for plugins, and is built to be serializable
      to/from JSON.
      
      Also, removed another wxFormBuilder file that was no longer in use.
      6c442916
  5. 05 1月, 2014 1 次提交
    • J
      Added add/remove signals to scenes · a2a8a5f1
      jp9000 提交于
        Scenes will now signal via their source when an item has been added
      or removed from them.
      
        "add" - Item added to the scene.
        Parameters:  "scene": Scene that the item was added to.
                     "item":  Item that was added.
      
        "remove" - Item removed from the scene.
        Parameters:  "scene": Scene that the item was removed from.
                     "item":  Item that was removed.
      a2a8a5f1
  6. 02 1月, 2014 2 次提交
  7. 30 12月, 2013 1 次提交
  8. 29 12月, 2013 1 次提交
  9. 28 12月, 2013 1 次提交
  10. 21 12月, 2013 1 次提交
  11. 18 12月, 2013 1 次提交
  12. 15 12月, 2013 1 次提交
  13. 03 12月, 2013 1 次提交
  14. 21 11月, 2013 2 次提交
  15. 13 11月, 2013 1 次提交
  16. 24 10月, 2013 1 次提交
  17. 18 10月, 2013 1 次提交
  18. 15 10月, 2013 1 次提交
  19. 01 10月, 2013 1 次提交