Git Product home page Git Product logo

Comments (11)

ASchneiderBR avatar ASchneiderBR commented on August 27, 2024

Ok, so after removing the source completely and add it again, I can now show you what I mean about the extra content from outside the canvas:

image

Adding a crop filter solves that:

image

from obs-main-view-source.

norihiro avatar norihiro commented on August 27, 2024

Or you had it coded to hide its own source from itself?

Yes, it's an intentional behavior. The main view source itself has to be hidden when rendering itself. Otherwise, it enters an infinite loop; in the main view rendering routine, it calls the main view rendering routine again and again.

Maybe, we can limit the number of nests or just render the previous frame.

from obs-main-view-source.

ASchneiderBR avatar ASchneiderBR commented on August 27, 2024

Hello.

Yes, it's an intentional behavior. The main view source itself has to be hidden when rendering itself. Otherwise, it enters an infinite loop; in the main view rendering routine, it calls the main view rendering routine again and again.

Got it, that makes a lot of sense. I think it is a good idea to not show the source main output inside itself.

Thank you.

from obs-main-view-source.

ASchneiderBR avatar ASchneiderBR commented on August 27, 2024

Hello @norihiro! Thanks for the update. Just tested it and the "exceeding" objects from outside the main view source are still showing:

image

You can see the source is still 1920x1080 but there are objects showing outside the canvas area, not sure if this is correct.

But when you add it to another scene, something wrong start happening: when the crop filter is activated, it now shows objects from another scene, not the current main output...

image

I think you can reproduce this by following this steps:

  1. Create 2 scenes
  2. Add a media source with a JPG file or similar
  3. Drag that source so it is now partially showing in the main canvas and the other part is hidden outside
  4. Add a main view source to the same scene, you will see the exceeding parts showing outside the transformation box
  5. Now go to the other blank scene
  6. Add a reference source to the same main view source, you will see parts of the other scene there
  7. Deactivate the crop filter from that source, everything goes to normal but if you change to the other scene, the objects outside the transformation box will show up because of the crop filter is no longer activated.

Here's another example:

obs64_DP9GFYf5HS.mp4

I think maybe adding a "cop filter" to the current project canvas size would solve that problem :)

Thank you.

from obs-main-view-source.

norihiro avatar norihiro commented on August 27, 2024

I think it will be solved if you enable a checkbox Cache the main view in the properties of this plugin.

from obs-main-view-source.

ASchneiderBR avatar ASchneiderBR commented on August 27, 2024

Hello.

The crop issue is solved by enabling Cache the main view but there are still problems when using the main output source that is being used on another scene:

image

In this image, I've added the same main output source that is being used on another scene, note that parts or the other scene are showing on the current view. This screenshot is from the current output scene.

Thank you.

from obs-main-view-source.

norihiro avatar norihiro commented on August 27, 2024

I cannot reproduce that.
Did you change the blending mode for the Main View Source in the other scene?

I'm suspecting alpha channel is not correctly handled for the image of the white circle.
I modified blending mode when rendering. I think this would be closer to the condition rendering scene-items.
https://dev.azure.com/norihiro0169/obs-plugintemplate/_build/results?buildId=1288&view=artifacts&type=publishedArtifacts
(You can download from three dots (...) in this page.)

from obs-main-view-source.

ASchneiderBR avatar ASchneiderBR commented on August 27, 2024

Hello.

Did you change the blending mode for the Main View Source in the other scene?

No, there are no blending settings on that scene.

I've installed the latest build from your Azure devs.

This problem goes away and the cache setting is changed:

obs64_CzfN8TqqFm.mp4

This problem is present on other scenes:

image

The only difference I can see is that the problematic scene has a source mirror source (StreamFX) that is mirroring another scene that has your output source source showing there (I know, really confusing haha)

Thanks.

from obs-main-view-source.

ASchneiderBR avatar ASchneiderBR commented on August 27, 2024

Ok, so not sure what is going on... If I have the main output source activated on a scene, there's another scene that just brakes and shows something weird:

obs64_2ecwLqZCKD.mp4

from obs-main-view-source.

norihiro avatar norihiro commented on August 27, 2024

The issue is confirmed with simplified scene settings as below.

Loaded scenes:
- scene 'Configuracoes':
    - source: 'purple' (color_source_v3)
    - source: 'Main View Source' (net.nagater.obs-main-view-source.source)
- scene 'Conteudo':
    - source: 'Configuracoes' (scene)

If Main View Source is enabled in the scene Configuracoes, another scene Conteudo becomes black, where it is expected purple.

The call-stack of the rendering routines will be as below.

  • When rendering Conteudo (scene)
    • render Configuracoes (scene)
      • render Main View Source (main-view-source)
        • render Conteudo (scene) -- suspecting this routine failed because the routine was called inside the same routine.
          • render Configuracoes (scene) -- suspecting this rendering did not happen.
            • render purple (color_source)
            • render Main View Source (main-view-source)

Workaround is to add Dedicated NDI output to the source Main View Source and optionally hide it. This will trigger Main View Source to be rendered in off-screen renderer so that the main-view can be rendered correctly.

from obs-main-view-source.

norihiro avatar norihiro commented on August 27, 2024

Close since the mentioning PR is merged.

from obs-main-view-source.

Related Issues (3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.