hyperion-project / hyperion.ng

The successor to Hyperion aka Hyperion Next Generation
https://hyperion-project.org/
MIT License
3.1k stars 384 forks source link

Add "Signal Detection" to platform capture #1145

Open washcroft opened 3 years ago

washcroft commented 3 years ago

Feature request

What problem does this feature solve?

"Signal Detection" only exists on USB capture, but there are situations where platform capture could benefit from this where they can also stop providing a video feed, e.g. screensavers, system standby etc...

Adding signal detection will allow automatic switching to use lower priority "standby" sources such as static colours or effects, when the higher priority platform capture has entered a standby / black screen state

What does the proposed API look like?

n/a

How should this be implemented in your opinion?

Similar config options for signal detection that exist on USB capture, replicate to platform capture - but maybe handled outside of the individual grabbers to support the feature universally.

Perhaps the existing USB capture signal detection should be moved into it's own component to cover all capture types (similar to blackbar detection).

Are you willing to work on this yourself?

n/a

Paulchen-Panther commented 3 years ago

"Signal Detection" only exists on USB capture, but there are situations where platform capture could benefit from this where they can also stop providing a video feed, e.g. screensavers, system standby etc...

Signal detection was introduced to deactivate sources (e.g. V4L2) that do not send a signal to the OS. Platform capture (e.g. X11, XCB, QT etc) offer other options (e.g. signal handlers, broadcast messages etc) for this. I don't see any logical reason to use signal detection for this. Various signals are already dealt with under Linux. These signals still have to be implemented under Windows (Link).

washcroft commented 3 years ago

Frame buffers provide a great way to get an image stream into hyperion, so perhaps I'm "abusing" that feature that gives me a unique use case. Either way, "blank image / no signal detection" does sound like something that should be part of the core pipeline, rather than embedded within V4L2.

Paulchen-Panther commented 3 years ago

Feel free to check out the Blackboarder detection, it's implemented in core. So you have a basis. Our priorities are so different right now.

Lord-Grey commented 1 year ago

@washcroft Maybe you would like to explore the new features on suspend/resume per PR #1535 . Note : If a system is suspended, then not processing will take place, i.e. you cannot run an effect while a system sleeps. I can have a look, if there is a way to differentiate between suspend and screensaving....