Vhonowslend / StreamFX-Public

StreamFX is a plugin for OBS® Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, or even custom shaders, you'll find it all here.
https://streamfx.vhonowslend.com
GNU General Public License v2.0
3.94k stars 3.03k forks source link

Source Mirror becomes Locked active, unable to de-activate. #816

Closed Mushiiies closed 1 year ago

Mushiiies commented 2 years ago

Operating System

Windows 10 1903 and higher

OBS Studio Version?

27.1

StreamFX Version

0.11.1

OBS Studio Log

a

OBS Studio Crash Log

No response

Current Behavior

Sources can become locked, so they do not de-activate when they are not enabled or not in program. Currently can be reproduced with Source Mirror, OBS Fade transition, and Move Source filter. I do not know if it is the source mirror or the Move Source that causes it.

Expected Behavior

Sources should de-activate when not in program.

Steps to Reproduce the Bug

See simple scene collection below:

{"current_program_scene":"TEST HERE","current_scene":"TEST HERE","current_transition":"Fade","groups":[],"modules":{"advanced-scene-switcher":{"Address":"","ClientEnabled":false,"ClientPort":55555,"LockToIPv4":false,"SendPreview":true,"SendSceneChange":true,"SendSceneChangeAll":true,"ServerEnabled":false,"ServerPort":55555,"active":true,"adjustActiveTransitionType":true,"audioFallbackDuration":0.0,"audioFallbackEnable":false,"audioFallbackScene":"","audioFallbackTargetType":0,"audioFallbackTransition":"","audioSwitches":[],"audioTabPos":13,"autoStartEvent":0,"cooldown":0.0,"cooldownUnit":0,"defTransitionDelay":300,"defaultTransitions":[],"disableHints":false,"displayUnit":0,"exeTabPos":5,"executableSwitches":[],"fileSwitches":[],"fileTabPos":8,"generalTabPos":0,"idleEnable":false,"idleSceneName":"","idleTabPos":11,"idleTargetType":0,"idleTime":60,"idleTransitionName":"","ignoreIdleWindows":[],"ignoreWindows":[],"interval":300,"macroTabPos":1,"macros":[],"mediaSwitches":[{"restriction":0,"source":"","state":0,"target":"","targetType":0,"time":0,"transition":""}],"mediaTabPos":7,"networkTabPos":15,"noMatchDelay":0.0,"noMatchDelayUnit":0,"non_matching_scene":"","pauseEntries":[],"pauseTabPos":3,"priority0":10,"priority1":0,"priority10":3,"priority2":2,"priority3":8,"priority4":6,"priority5":9,"priority6":7,"priority7":4,"priority8":1,"priority9":5,"randomSwitches":[],"randomTabPos":9,"readEnabled":false,"readPath":"","regionTabPos":6,"saveWindowGeo":false,"sceneGroupTabPos":16,"sceneGroups":[],"sceneRoundTrip":[],"sceneTransitions":[],"screenRegion":[],"sequenceTabPos":12,"showSystemTrayNotifications":false,"startHotkey":[],"startup_behavior":0,"stopHotkey":[],"switch_if_not_matching":0,"switches":[],"tansitionOverrideOverride":false,"threadPriority":3,"timeSwitches":[],"timeTabPos":10,"titleTabPos":4,"toggleHotkey":[],"transitionTabPos":2,"triggerTabPos":17,"triggers":[],"verbose":false,"version":"82da6b32175081a3c8ca9c3aeed267999f460dcb","videoSwitches":[],"videoTabPos":14,"windowHeight":600,"windowPosX":409,"windowPosY":200,"windowWidth":1100,"writeEnabled":false,"writePath":""},"auto-scene-switcher":{"active":false,"interval":300,"non_matching_scene":"","switch_if_not_matching":false,"switches":[]},"captions":{"enabled":false,"lang_id":2057,"provider":"mssapi","source":""},"copyTransformHotkey":[],"decklink_captions":{"source":""},"output-timer":{"autoStartRecordTimer":false,"autoStartStreamTimer":false,"pauseRecordTimer":true,"recordTimerHours":0,"recordTimerMinutes":0,"recordTimerSeconds":30,"streamTimerHours":0,"streamTimerMinutes":0,"streamTimerSeconds":30},"pasteTransformHotkey":[],"scripts-tool":[],"source-dock":{"docks":[]},"transition-table":{"disable_hotkey":[],"enable_hotkey":[],"transitions":[]}},"name":"MEMLEAK","preview_locked":false,"quick_transitions":[{"duration":300,"fade_to_black":false,"hotkeys":[],"id":7,"name":"Cut"},{"duration":300,"fade_to_black":false,"hotkeys":[],"id":8,"name":"Fade"},{"duration":300,"fade_to_black":true,"hotkeys":[],"id":9,"name":"Fade"}],"saved_projectors":[],"scaling_enabled":true,"scaling_level":-6,"scaling_off_x":-39.602508544921875,"scaling_off_y":31.577383041381836,"scene_order":[{"name":"TEST HERE"},{"name":"Scene 2"}],"sources":[{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"text_gdiplus","mixers":0,"monitoring_type":0,"muted":false,"name":"Text (GDI+)","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"text":"Activate Scene 2, wait 2 sec.\nDeactivate Scene 2.\n---\nActivate Scene 2, wait 1 sec.\nDeactivate Scene 2.\nSource Mirror is now stuck\n\nTime is dictated by show \ntransition duration of\nSource Mirror"},"sync":0,"versioned_id":"text_gdiplus_v2","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"OBSBasic.SelectScene":[],"libobs.hide_scene_item.Scene 2":[],"libobs.hide_scene_item.Text (GDI+)":[],"libobs.show_scene_item.Scene 2":[],"libobs.show_scene_item.Text (GDI+)":[]},"id":"scene","mixers":0,"monitoring_type":0,"muted":false,"name":"TEST HERE","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"custom_size":false,"id_counter":2,"items":[{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":1,"locked":false,"name":"Scene 2","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":0},"visible":false},{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":2,"locked":false,"name":"Text (GDI+)","pos":{"x":428.5,"y":62.500030517578125},"private_settings":{},"rot":0.0,"scale":{"x":0.36131882667541504,"y":0.3611951470375061},"scale_filter":"disable","show_transition":{"duration":0},"visible":true}]},"sync":0,"versioned_id":"scene","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"filters":[{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":false,"flags":0,"hotkeys":{},"id":"move_source_filter","mixers":0,"monitoring_type":0,"muted":false,"name":"SHOW","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"bounds":{"x":0.0,"x_sign":" ","y":0.0,"y_sign":" "},"change_visibility":1,"crop":{"bottom":0.0,"bottom_sign":" ","left":0.0,"left_sign":" ","right":0.0,"right_sign":" ","top":0.0,"top_sign":" "},"pos":{"x":0.0,"x_sign":" ","y":0.0,"y_sign":" "},"rot":0.0,"rot_sign":" ","scale":{"x":1.0,"x_sign":" ","y":1.0,"y_sign":" "},"source":"Source Mirror","start_trigger":1,"transform":false,"transform_text":"pos: x 0.0 y 0.0 rot: 0.0 scale: x 1.000 y 1.000 bounds: x 0.000 y 0.000 crop: l 0 t 0 r 0 b 0"},"sync":0,"versioned_id":"move_source_filter","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":false,"flags":0,"hotkeys":{},"id":"move_source_filter","mixers":0,"monitoring_type":0,"muted":false,"name":"RESET","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"bounds":{"x":0.0,"x_sign":" ","y":0.0,"y_sign":" "},"change_visibility":5,"crop":{"bottom":0.0,"bottom_sign":" ","left":0.0,"left_sign":" ","right":0.0,"right_sign":" ","top":0.0,"top_sign":" "},"duration":10,"pos":{"x":0.0,"x_sign":" ","y":0.0,"y_sign":" "},"rot":0.0,"rot_sign":" ","scale":{"x":1.0,"x_sign":" ","y":1.0,"y_sign":" "},"source":"Source Mirror","start_trigger":2,"transform":false,"transform_text":"pos: x 0.0 y 0.0 rot: 0.0 scale: x 1.000 y 1.000 bounds: x 0.000 y 0.000 crop: l 0 t 0 r 0 b 0"},"sync":0,"versioned_id":"move_source_filter","volume":1.0}],"flags":0,"hotkeys":{"OBSBasic.SelectScene":[],"RESET":[],"SHOW":[],"libobs.hide_scene_item.Image":[],"libobs.hide_scene_item.Source Mirror":[],"libobs.show_scene_item.Image":[],"libobs.show_scene_item.Source Mirror":[]},"id":"scene","mixers":0,"monitoring_type":0,"muted":false,"name":"Scene 2","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"custom_size":false,"id_counter":2,"items":[{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":1,"locked":false,"name":"Image","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":2,"locked":false,"name":"Source Mirror","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":1000,"id":"fade_transition","name":"Source Mirror Show Transition","transition":{},"versioned_id":"fade_transition"},"visible":false}]},"sync":0,"versioned_id":"scene","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"image_source","mixers":0,"monitoring_type":0,"muted":false,"name":"Image","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{},"sync":0,"versioned_id":"image_source","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"libobs.mute":[],"libobs.push-to-mute":[],"libobs.push-to-talk":[],"libobs.unmute":[]},"id":"streamfx-source-mirror","mixers":255,"monitoring_type":0,"muted":false,"name":"Source Mirror","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"Commit":"g81a96998","Source.Mirror.Source":"Image","Version":47244705792},"sync":0,"versioned_id":"streamfx-source-mirror","volume":1.0}],"transition_duration":300,"transitions":[]}

Any additional Information we need to know?

No response

Mushiiies commented 2 years ago

If you point the Source Mirror to a Media Source, set to not loop and restart when source becomes active. The media source will become bugged and no longer restart when it is enabled.

Xaymar commented 2 years ago

Source Mirror should update "active" and visible" references to the mirrored source if it itself is toggled. Are you disabling both sources, or just one of the two?

Mushiiies commented 2 years ago

You can disable both or you can switch to a scene with nothing in it but the sources will remain active. I think it is a memory issue. It can be triggered by having a source mirror with a transition eg 500ms fade, and a couple of move filters that will enable the source when scene is active, and disable when scene is deactivated. If you nest the scene then enable it, disable it before the 500ms fade, the source will become busted and unable to deactivate, also unable to activate. The scene collection json above demonstrates the problem.

On Wed, Jun 8, 2022, 9:28 AM Xaymar @.***> wrote:

Source Mirror should update "active" and visible" references to the mirrored source if it itself is toggled. Are you disabling both sources, or just one of the two?

— Reply to this email directly, view it on GitHub https://github.com/Xaymar/obs-StreamFX/issues/816#issuecomment-1149271236, or unsubscribe https://github.com/notifications/unsubscribe-auth/AV4D75NVUVBRRKRLHLYAWKDVN7LK7ANCNFSM5YCYEZ3Q . You are receiving this because you authored the thread.Message ID: @.***>

Xaymar commented 2 years ago

Possible causes:

Xaymar commented 1 year ago

Source Mirror will be replaced by #1037 in the future. Closing as not planned.