brunoherbelin / vimix

Live Video Mixer
GNU General Public License v3.0
259 stars 25 forks source link

0.8.0 - Output Menu - Color Picker and Output Scale Frame do not work #73

Open flowerhorse opened 1 year ago

flowerhorse commented 1 year ago

The color picker does not work for me. In the previous version it worked as soon as I manually overlapped the output image slightly on the second screen. Now this method doesn't help either. The mouse pointer changes to a '+' when overlapping from screen2 but the recorded color value is always #000000. Sometimes I also got the error message that I have to close the other picker first, but it was not present.

The manually adjustable frame for scaling the output cannot also not be activated. If I mark the output screen with the blue snap window the frame becomes visible, as soon as I release the snap frame to grab a grab point the frame it disappears.

Mesa Intel HD530

Screenshot_20230407_035107

brunoherbelin commented 1 year ago

Thanks for reporting this as an issue: maybe other users could confirm.

Just to be clear, the behavior you observe is

  1. Open the window 'Choose or pick a color' from the white balance button in the Displays view
  2. Clic on the pipette icon (above the color bar)
  3. the cursor changes to a circle filled with the color, and the upper left corner as the mouse pointer (see image below)
  4. when you move the mouse to another monitor (i.e. plugged on your computer on another plug), the circle cursor changes to a cross
  5. from there, the color picking fails

In that case, the bug is not with vimix, but with GTK color chooser dialog, and probably even lower at the graphics driver level. I didn't manage to reproduce it on my machine.

From the behavior you describe, I would say that it is related to the graphics drivers; i.e. the system has two different memory and graphics contexts for the two monitors, and it cannot read a value in one monitor when the program was launched in another. A possible workaround could be, maybe ;

  1. Open the window 'Choose or pick a color' from the white balance button in the Displays view
  2. Move the window 'Choose or pick a color' to the monitor where you want to do color picking
  3. Clic on the pipette icon (above the color bar)

Or maybe even:

  1. Open the window 'Choose or pick a color' from the white balance button in the Displays view
  2. Move the window 'Choose or pick a color' to the monitor where you want to do color picking
  3. Cancel
  4. Open the window 'Choose or pick a color' from the white balance button in the Displays view: it starts in the good monitor
  5. Clic on the pipette icon (above the color bar)

Screenshot just to be sure you have the same appearance of olor picker in Displays view: Screenshot from 2023-04-07 13-47-30

flowerhorse commented 1 year ago

Even when restarting the program 'New', with no files added, i see the last selected state of my screen. Closed with screen F5 it starts with F5. (maybe a reset of the screenview is missing here)

Example:

Screenshot_20230408_135749 Shown above: I leave the program in this state with these restart options.

Screenshot_20230408_140055 Shown above: I restart and my first screen is F5-screen like before with basic working screen view centered (picture 1 was screen-composed and moved with left+right mouseclick). (Note no tools are displayed also there are no diagonal arrows for scaling the output.)

Screenshot_20230408_140311 Shown above: Now I click this screen to get tools Note that my last defined frame is in memory and also displayed although I had restarted. (maybe a reset of the screenview and all user defined frames is missing here) .

Screenshot_20230408_142117 Shown above: 1: I move the mouse pointer to withe balance. On mouseover there I get this tooltip.

Screenshot_20230408_142642 Shown above: 2: I click the white balance, the picker window opens.

Screenshot_20230408_143657 Shown above: 3: I click the picker, the picker field indicates blue but in this testcase no changing of mouseppointer happens. IMPORTANT: I also had cases the Mousepointer changed to a cross for selecting but never to a drop with indicated Color like in your screenshot. (Maybe thats the reason because the middle point of the cross is black and it's the wrong pointer?)

Following here a screenshot with active Github Editor and color correction window. The window remains and stays on Top. Note below: Screenshot_20230408_153307 Shown above. Another noticeable feature: The white balance window always remains on the first level of the display, even if another application requires input (I noticed this when saving screenshots required it). The picker window is always on top and overlaps even if I work in another Program. Example here active Github Editor, ready to write. Only X-closing the picker window makes way for the active program. (maybe this is the reason and the picker measures on the wrong layer?)

Your proposials I've tried but they didn't work. I don't think that intel gpu is the reason cause it worked in the former version. I suspect that there are several errors together and one of them is that the pipette measures the wrong layer. But why sometimes the mouse pointer changes to a cross (means ready to work for me) and sometimes not remains in the dark.

flowerhorse commented 1 year ago

Remembering your screenshot I just discover that I have two different layouts for the color picker, the right one, from OUTPUT, has been changed according to ubuntu themes defaults, the left one has not. Is it possible that this is the problem? Screenshot_20230409_220409

brunoherbelin commented 1 year ago

Even when restarting the program 'New', with no files added, i see the last selected state of my screen. Closed with screen F5 it starts with F5. (maybe a reset of the screenview is missing here)

It is indeed the intended behavior of vimix is to restore the state after closing. If you quit in Display view, it starts in Display view...

Would you prefer to always restart vimix afresh, with no session open and in the Mixing view? Could be a user preference.

(Note no tools are displayed also there are no diagonal arrows for scaling the output.) [...] Shown above: Now I click this screen to get tools Note that my last defined frame is in memory and also displayed although I had restarted. (maybe a reset of the screenview and all user defined frames is missing here) .

Ok I see, it could indeed be that the window selected before leaving is selected back when restarting. I'll check about this.

Shown above: 3: I click the picker, the picker field indicates blue but in this testcase no changing of mouseppointer happens. IMPORTANT: I also had cases the Mousepointer changed to a cross for selecting but never to a drop with indicated Color like in your screenshot. (Maybe thats the reason because the middle point of the cross is black and it's the wrong pointer?)

Well, then possibly the color picker might not work on your machine...

We could test that with another program that uses a similar color dialog : zenity:

   ~$ zenity --color-selection

This should launch a color picking dialog and return the color values in the terminal after validating.

(if its not installed yet, ~$ sudo apt install zenity )

Shown above. Another noticeable feature: The white balance window always remains on the first level of the display, even if another application requires input (I noticed this when saving screenshots required it). The picker window is always on top and overlaps even if I work in another Program. Example here active Github Editor, ready to write. Only X-closing the picker window makes way for the active program.

This is the intended behavior : this specific color chooser (the one for white balance) is opened on the whole desktop to be able to pick colors on all programs and all windows that are running: you can pick a color on e.g. an image in GIMP, or the background of your screen, anything.

the right one, from OUTPUT, has been changed according to ubuntu themes defaults, the left one has not. Is it possible that this is the problem?

As you noted, these are two different color selection dialogs.

The color selector internal to vimix (left in your screenshot, that does not have color picker) is vimix's own color selection, with dynamic change of value (no need to validate and close the window to vary the color). Note that it closes automatically when you clic outside (which would not allow to pick a color outside of it)

To the contrary, the external color picker (right in your screenshot, that has a pipette icon to do color picking) is a system's GTK color picker launched next to vimix to allow to see other programs and do the color picking. Note that is does not close when you clic outside (so you can pick a color) and waits that you validate ('Select') to get the color and return to vimix.

flowerhorse commented 1 year ago

Would you prefer to always restart vimix afresh, with no session open and in the Mixing view? Could be a user preference.

I think also user preference. But it could also be 'invisible' property of'new' and 'open last on start' in file section. Putting it in there is actually enough, right?

Well, then possibly the color picker might not work on your machine...

It worked with the last beta. Ich tired zenity. It gives the following error: g_variant_get: assertion 'valid_format_string (format_string, TRUE, value)' failed (zenity:5061): GLib-CRITICAL **: the GVariant format string '(u)' has a type of '(u)' but the given value has a type of '((u))'

Note that it closes automatically when you clic outside (which would not allow to pick a color outside of it) Ah, then I understand why there are two different windows there.. But why are they identical on your screenshot?

brunoherbelin commented 1 year ago

But it could also be 'invisible' property of'new' and 'open last on start' in file section.

Agreed & done in Beta (i.e. user choose 'Restore on start', this opens the previous session and the view settings on start /vs/ not restore will open vimix fresh with the default mixing view)

Also, to take into account your comments on the Displays view, I changed the appearance a little;

It gives the following error: g_variant_get: assertion 'valid_format_string (format_string, TRUE, value)' failed (zenity:5061): GLib-CRITICAL **: the GVariant format string '(u)' has a type of '(u)' but the given value has a type of '((u))'

humm... Did you update the system? Change desktop settings? Which Linux are you running? Ubuntu ?

Ah, then I understand why there are two different windows there.. But why are they identical on your screenshot?

They are different, just both are in dark mode. Or do you mean something else?

flowerhorse commented 1 year ago

humm... Did you update the system? Change desktop settings? Which Linux are you running? Ubuntu ?

It can be. I have made many beta loading attempts and there sometimes, as I imagined, changed the directories so that error messages disappeared. Also, Mesa drivers are constantly updated here. The system is Ubuntu Studio 22.04

They are different, just both are in dark mode.

Ah, ok.

brunoherbelin commented 1 year ago

I installed Ubuntu Studio 22.04 on a virtual machine and could install vimix with snap (sudo snap install vimix). It runs surprisingly well :)

I couldn't however replicate the problem with the color picker: the mouse cursor is indeed a cross (not a drop) but the picking of color was working...

image

Do you still experience the problem?