Code Monkey home page Code Monkey logo

obs-color-monitor's Introduction

OBS Color Monitor

Introduction

This plugin provides these sources to monitor color balances.

In addition, a dock widget is available.

To hide the source and filter types from the add-source and add-filter menues, refer this document.

Quick Usage

Dock

  1. Install the plugin and boot OBS Studio.
  2. Click Tools and New Scope Dock... in the menu of OBS Studio.
  3. Input the name, optionally set the source to monitor, and clock OK. You will see a new dock containing vectorscope, waveform, and histogram for the program.

Projector View

  1. Install the plugin and boot OBS Studio.
  2. Have your source to see vectorscope, waveform, or histogram, eg. a camera.
  3. Create a new scene.
  4. Create vectorscope, waveform, or histogram on the scene by clicking + button at the bottom of Source list.
  5. At Source combo box, select your source. You can select both scene and source.
    1. If the plugin increases rendering time too much, increase scale to scale down the image before processing.
    2. Bypass checkbox will show the scaled image to ensure you've select the right source.
  6. You may open a windowed projector of the scene so that you can switch preview and program scene while monitoring color.

obs-color-monitor's People

Contributors

eribertomota avatar norihiro avatar palakis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obs-color-monitor's Issues

roi vectorscope: Color space setting is not effective if using roi source

Describe the bug
If the target of a vectorscope is ROI, color space is not effective.

Your setup

  • Source: Vectorscope
  • Target: a source of ROI

Expected behavior
When changing the color space property, both graticule and the plots should change.

Actual behavior
When changing the color space property, only graticule changes.

Additional context
When the RGB-to-YUV conversion was moved to ROI source, the colorspace property was not implemented in ROI.
The property should be implemented in ROI source and the colorspace in vectorscope should be hidden.

Idea: improve waveform calculation

Waveform calculation is the most slow part.

Consider these ideas.

  • swap row and column
  • Multiplications in the loop might take time such as (WV_SIZE-1 - b) * width*4. Consider to allocate the size in power-of-2 or calculate the multiplication before the loop and save the results on an array.

Below is a performance profile on i7-7700 vncserver.

Initializing OpenGL...
Loading up OpenGL on adapter Mesa/X.org llvmpipe (LLVM 11.0.0, 256 bits)
OpenGL loaded successfully, version 4.5 (Core Profile) Mesa 20.3.3, shading language 4.50
...
   |- vss_render: min=0.663 ms, median=0.725 ms, max=1.822 ms, 99th percentile=1.147 ms
   |   |- draw_vectorscope: min=0.063 ms, median=0.66 ms, max=1.119 ms, 99th percentile=1.026 ms
   |   |- draw: min=0 ms, median=0.02 ms, max=1.015 ms, 99th percentile=0.048 ms
   |   `- graticule: min=0.037 ms, median=0.04 ms, max=0.855 ms, 99th percentile=0.085 ms
   |- wvs_render: min=0.035 ms, median=2.733 ms, max=5.819 ms, 99th percentile=4.774 ms
   |   |- draw_waveform: min=0.021 ms, median=2.681 ms, max=5.022 ms, 99th percentile=4.689 ms
   |   |- draw: min=0 ms, median=0.032 ms, max=1.391 ms, 99th percentile=0.091 ms
   |   `- graticule: min=0.009 ms, median=0.013 ms, max=0.07 ms, 99th percentile=0.037 ms
   |- his_render: min=0.027 ms, median=1.16 ms, max=2.601 ms, 99th percentile=1.913 ms
   |   |- draw_histogram: min=0.026 ms, median=1.14 ms, max=1.972 ms, 99th percentile=1.852 ms
   |   `- draw: min=0 ms, median=0.019 ms, max=1.077 ms, 99th percentile=0.048 ms

Incorrect rendering result of graticule and ROI

Describe the bug

  • The color name labels in vectorscope becomes solid color.
  • Shadow of unselected region in ROI in the Scope Dock becomes black, where just 50% dark is expected.

Your setup

  • OBS Studio 26.0
  • CentOS 8

Preview scope dock crashes at exit of OBS Studio

Describe the bug
OBS Studio sometimes crashes when exiting.
Back-trace is as below.

#0  0x000000e7ca500000 in  ()
#1  0x00007ffff514c5fe in QMetaObject::cast(QObject const*) const () at /lib64/libQt5Core.so.5
#2  0x00007ffff5fcab72 in QListWidget::currentItem() const () at /lib64/libQt5Widgets.so.5
#3  0x000000000049f4c8 in OBSBasic::GetCurrentScene() (this=<optimized out>)
    at /home/user/repo/obs-studio/UI/window-basic-main.cpp:2758
#4  0x0000000000497520 in OBSBasic::GetCurrentSceneSource() (this=<optimized out>)
    at /home/user/repo/obs-studio/UI/window-basic-main.hpp:823
#5  OBSStudioAPI::obs_frontend_get_current_preview_scene() (this=0xcdeca0)
    at /home/user/repo/obs-studio/UI/api-interface.cpp:556
#6  0x00007fff82f3b3a0 in cm_tick (data=data@entry=0x24deb60, unused=<optimized out>)
    at /home/user/repo/obs-color-monitor/src/common.c:303
#7  0x00007fff82f39338 in roi_tick (data=0x24deb60, unused=<optimized out>) at /home/user/repo/obs-color-monitor/src/roi.c:608
#8  0x00007ffff5adda63 in obs_source_video_tick (source=source@entry=0x24da700, seconds=seconds@entry=0.0333333313)
    at /home/user/repo/obs-studio/libobs/obs-source.c:1254
#9  0x00007ffff5b17efe in tick_sources (last_time=<optimized out>, cur_time=906998500555845)
    at /home/user/repo/obs-studio/libobs/obs-video.c:69
#10 obs_graphics_thread_loop (context=context@entry=0x7fff8a5792d0) at /home/user/repo/obs-studio/libobs/obs-video.c:964
#11 0x00007ffff5b19ab0 in obs_graphics_thread (param=<optimized out>) at /home/user/repo/obs-studio/libobs/obs-video.c:1053
#12 0x00007ffff626d299 in start_thread () at /lib64/libpthread.so.0
#13 0x00007ffff4a4e353 in clone () at /lib64/libc.so.6

Your setup

  • Scope Dock whose target is preview
  • obs-studio 27.1.3-259-g5df343d2b
  • obs-color-monitor 0.2.6-7-g723bdb5

Additional context
OBS's log file is here.
https://obsproject.com/logs/d9puDb11ahU9Gkr4

How do I uninstall it on Mac?

It isn't listed in the /Library/Application Support/obs-studio/plugins as the other plugins. Should it be and I'm looking at the wrong place?

dock: New feature to change source quickly

This feature request aims to correct colors very quickly.

  • Add a combo-box at the top of the dock to select the source
  • The list of the combo-box should be configurable from a property so that unnecessary scenes/sources are not listed.
  • Add a button to open the filter of the source.

Clean or order source input

Describe the bug
When adding source input, all sources and scenes are totally mixed.
Could you make order like scenes first and sources second or by alphabetical order or something?
I have a very long list of stuff difficult sometimes to find my source :-)

Region of interest

Implement region of interest (ROI) source or filter for other monitors

Transition on program is not

Describe the bug
When setting the source as Program, transition is not taken.

Your setup

  • Settings of the source to reproduce the bug
    • Type: Vectorscope
    • Source: Program
  • Version of the plugin
    • 0.1.6

Expected behavior
When transitioning, vectorscope should gradually change.

Actual behavior
The vectorscope immediately changes to the new scene when transition start.

Feat: Custom reference lines for Waveform

Can you please add

  • padding around the waveform
  • reference levels lines for 5% and 95% (or adjustable)

If you have Davinci Resolve the waveform is very user friendly.

Dock crashed when changing histogram to luma-only

Describe the bug
Crash occurs when, in proprieties, change settings from histogram to luma only.

Error log:

Unhandled exception: c0000005
Date/Time: 2021-08-10, 14:13:44
Fault address: 7FFBEC5565D0 (c:\obs antonio portable\obs-plugins\64bit\obs-color-monitor.dll)
libobs version: 27.0.1 (64-bit)
Windows version: 10.0 build 19043 (release: 2009; revision: 1151; 64-bit)
CPU: AMD Ryzen 9 3900X 12-Core Processor            


Thread 51C4: libobs: graphics thread (Crashed)
Stack            EIP              Arg0             Arg1             Arg2             Arg3             Address
000000D46AFDF960 00007FFBEC5565D0 000002338DEA88C0 00000233AD61A400 000002339662D180 0000000000000001 obs-color-monitor.dll!his_draw_histogram+0xd0
000000D46AFDF9F0 00007FFBEC5561D8 0000000000000F00 000002339662D180 00000233AD61A400 00007FFBF7B839DB obs-color-monitor.dll!his_render+0x58
000000D46AFDFA40 00007FFBF7BAE57F 0000023389C85B00 0000000000000003 000002339662D180 00000000000002AA obs.dll!obs_source_main_render+0x9f
000000D46AFDFA70 00007FFBF7BB1D82 0000000000000100 0000000000000000 00000000000002DA 0000000000000000 obs.dll!obs_source_video_render+0x122
000000D46AFDFAA0 00007FFBEC55DA2B 00000233000002AA 00000000000002DA 000000D4000002AA 0000000000000000 obs-color-monitor.dll!draw+0x1eb
000000D46AFDFB50 00007FFBF7BD8901 0000000000000000 0000000000000000 000000D46AFDFC70 0000000000000000 obs.dll!render_display+0x141
000000D46AFDFBC0 00007FFBF7BE231B 00000233D2D55540 0000000000000000 0000000000000000 0000000000000000 obs.dll!obs_graphics_thread_loop+0x1db
000000D46AFDFC50 00007FFBF7BE210D 00000233D2339330 00000233D2339330 0000000000000000 00007FFC58A23A81 obs.dll!obs_graphics_thread+0x12d
000000D46AFDFD10 00007FFC42735924 00000233D2CD38E0 0000000000000000 0000000000000000 0000000000000000 w32-pthreads.dll!ptw32_threadStart+0x74
000000D46AFDFD90 00007FFC58A31BB2 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ucrtbase.dll!0x7ffc58a31bb2
000000D46AFDFDC0 00007FFC59D47034 0000000000000000 0000000000000000 0000000000000000 0000000000000000 kernel32.dll!0x7ffc59d47034
000000D46AFDFDF0 00007FFC5B242651 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ntdll.dll!0x7ffc5b242651

(Remaining lines are omitted.)

Thank you.

OSX run error

After installing plugin on Mac, I get the error "“obs-color-monitor.so” cannot be opened because the developer cannot be verified." when launching OBS 27.0.1 Plugin does not appear anywhere in OBS

Mac os 10.15.7
OBS Studio 27.0.1
Macbook Pro 16 2019

dock: Wrong data rendered when switching visibility of waveform

Step to reproduce

  1. Open dock and display vectorscope and RGB waveform
  2. Continue to show and hide the waveform

Expected behavior
Vectorscope always shows the CrCb data

Actual behavior
A different data is rendered at just one or two frame after switching the visibility.

Additional context
I'm afraid it might cause memory access violation.

It might be the root cause of https://obsproject.com/forum/threads/obs-color-monitor.143375/post-536967

Can't remove Scope Docks once added

After adding a new Scope Dock via the Tools > New Scope Dock... button, there is no way to remove the entry from the Docks menu. It would be great to be able to edit or remove these custom docks.

A linux zip file and not a deb

Hello,

I'm on fedora 37 and i'd like to install this plugin without compil it, but the only linux version is a deb package, is it possible to have a zip version instead ??

Thanks for your works !!

false color

Implement false color as a filter or a source.
I don't think it's high priority because False color can be calculated by LUT.

Error effect_setval_inline: invalid param

Hi,

I compiled this on Arch Linux and I was able to make the waveform work in obs. However, when I try to use the histogram or the vectorscope, I get the following error in the terminal and the source remain transparant or black:

error: effect_setval_inline: invalid param

Menu item in the docks menu keeps increasing when switching scene collection.

Describe the bug
For some reason when ever I switch scene collections, the number of "scope: programs" get doubled in the docks menu.
Still cool plugin though but please fix the bug.

Expected behavior

  • Switch scene item collection.
  • Expected the number of items in the Docks menu won't increase.

Actual behavior
The number of the items increases.
image

Additional context
https://obsproject.com/forum/threads/obs-color-monitor.143375/post-537460

Adding vectorscope 2X zoom feature

Describe the solution you'd like
Adding the ability to have a 2X zoom for the vector scope would be fantastic. Color charts are only able to represent 50% saturation, so the 2x Zoom allows the color chip dots to line up in the vector scope 100% boxes. Makes it easier to line things up/match cameras.
I assume its the 'Zoom' feature already listed in the future plans under vector scope. Just submitting this as a nudge, I would be super appreciative.

Reference
Davinci Resolve implements this and is a standard workflow for many.

More layout options (e.g. 2x2)

It would be great to have other layout options, in addition to the vertical stacking. For example, a two dimensional grid.

Screen Shot 2022-09-26 at 12 49 10 AM

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.