1. 14 11月, 2015 14 次提交
  2. 12 11月, 2015 3 次提交
  3. 07 11月, 2015 2 次提交
  4. 06 11月, 2015 1 次提交
    • P
      UI: Clear ListItem selection before deleting widgets · 3fc74539
      Palana 提交于
      This works around a crash in the "widget->clear()" call in
      ClearListItems under the following circumstances:
      - Create at least two scenes
      - Create at least one source in both scenes
      - Have at least one source selected in both scenes
      - Set the same "Switch to scene" hotkey on both scenes
      - Use "Switch to scene" hotkey
      
      Reduced stack trace on my machine:
          frame #0: 0x00000001004bac2d QtWidgets`QWidget::show() + 93
          frame #1: 0x00000001006d32a2 QtWidgets`QAbstractItemView::updateEditorGeometries() + 690
          frame #2: 0x00000001006d36d7 QtWidgets`QAbstractItemView::updateGeometries() + 23
          frame #3: 0x00000001006f1ae6 QtWidgets`QListView::updateGeometries() + 438
          frame #4: 0x00000001006ccdce QtWidgets`QAbstractItemView::doItemsLayout() + 46
          frame #5: 0x00000001006f1916 QtWidgets`QListView::doItemsLayout() + 214
          frame #6: 0x00000001006f9cf3 QtWidgets`QListViewPrivate::rectForIndex(QModelIndex const&) const + 611
          frame #7: 0x00000001006eb48d QtWidgets`QListView::visualRect(QModelIndex const&) const + 29
          frame #8: 0x00000001006f1567 QtWidgets`QListView::visualRegionForSelection(QItemSelection const&) const + 1863
          frame #9: 0x00000001006d7ba9 QtWidgets`QAbstractItemView::selectionChanged(QItemSelection const&, QItemSelection const&) + 73
          frame #10: 0x00000001006f97d2 QtWidgets`QListView::selectionChanged(QItemSelection const&, QItemSelection const&) + 674
          frame #11: 0x00000001006d9b9e QtWidgets`QAbstractItemView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) + 1246
          frame #12: 0x0000000102b10372 QtCore`QMetaObject::activate(QObject*, int, int, void**) + 2994
          frame #13: 0x0000000102aa001c QtCore`QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) + 300
          frame #14: 0x0000000102a9fe6c QtCore`QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) + 748
          frame #15: 0x0000000102aa048b QtCore`QItemSelectionModel::clear() + 75
          frame #16: 0x000000010072e9d8 QtWidgets`QListWidget::clear() + 24
          frame #17: 0x000000010015759d obs`ClearListItems(widget=0x000000010683afa0) + 141 at item-widget-helpers.cpp:43
          frame #18: 0x000000010003424b obs`OBSBasic::UpdateSources(this=0x0000000105f5bf50, scene=(val = obs_scene * = 0x0000000110679440)), &(obs_scene_release)>) + 75 at window-basic-main.cpp:1254
          frame #19: 0x0000000100036a96 obs`OBSBasic::UpdateSceneSelection(this=0x0000000105f5bf50, source=<unavailable>), &(obs_source_release)>) + 422 at window-basic-main.cpp:1473
          frame #20: 0x0000000100175c48 obs`OBSBasic::qt_static_metacall(_o=0x0000000105f5bf50, _c=InvokeMetaMethod, _id=17, _a=0x00007fff5fbfb640) + 776 at moc_window-basic-main.cpp:494
      
      This crash was reported at
      https://obsproject.com/mantis/view.php?id=364
      3fc74539
  5. 05 11月, 2015 1 次提交
    • R
      libobs: Don't use SPI_SETSCREENSAVEACTIVE on Windows · 3671153a
      Richard Stanway 提交于
      SetThreadExecutionState with ES_DISPLAY_REQUIRED has the same effect of preventing the screensaver from activating. Using SPI_SETSCREENSAVEACTIVE leaves the screensaver disabled system-wide if OBS crashes before it can re-enable it.
      3671153a
  6. 04 11月, 2015 2 次提交
  7. 03 11月, 2015 7 次提交
  8. 02 11月, 2015 3 次提交
  9. 30 10月, 2015 1 次提交
    • P
      UI: Move properties window creation for new sources · 6c193435
      Palana 提交于
      Currently creating new sources can cause a deadlock:
      OBSBasicSourceSelect locks the scene mutex when adding a new source
      (required to add invisible sources), and later OBSBasic tries to
      lock the graphics mutex (via CreatePropertiesWindow); meanwhile the
      graphics thread is holding the graphics mutex and tries to lock each
      scene as it renders them, resulting in a (non-obvious from the code)
      lock ordering conflict.
      
      Moving the CreatePropertiesWindow call out of the locked scene mutex
      restores the previous lock ordering; in addition, the requirement
      for keeping sourceSceneRefs for opening that initial properties
      window is removed
      6c193435
  10. 28 10月, 2015 1 次提交
  11. 23 10月, 2015 4 次提交
    • J
      libobs: Update async video texture before effect filters · fea4f751
      jp9000 提交于
      When an async video source is about to be rendered, the async texture
      should be updated before any effect filtering occurs, rather than right
      when it's about to render.
      
      Fixes a few bugs:
      
      - If the async texture hadn't drawn for its first time, and the source
        has an effect filter, it would never end up rendering the first
        frame due to the fact that it would fail on obs-source.c:2434 for the
        first filter, causing it to never actually render the source, and thus
        never get to a point in which it could call set_async_texture_size to
        establish the async texture width/height for the first time.
      
      - Any time the async texture size changed, it would only update the
        async texture size at the end of the filter loop, which means that the
        first frame after a size change would use the old size for the filters
        rather than update to the new size right away.
      fea4f751
    • J
      libobs: Allow null pointer with obs_source_release_frame · db7aebb9
      jp9000 提交于
      A null pointer to a release/destroy function should be considered legal,
      and simply do nothing.
      db7aebb9
    • J
      libobs/graphics: Safely fail gs_texrender_begin with 0,0 size · 83630fa1
      jp9000 提交于
      Passing 0,0 texture size should be considered legal, and safely return
      false to indicate that rendering can't begin.  Also there's no need to
      try to use the current swap chain's width/height if either of the sizes
      are 0, there's no need try try to "force" success here anymore.
      83630fa1
    • J
      libobs/graphics: Allow NULL *_destroy parameters · 0be0eedc
      jp9000 提交于
      Passing null pointer values to the destroy functions should be
      considered legal and simply ignored.
      0be0eedc
  12. 21 10月, 2015 1 次提交