You must be logged in to post Login Register


Register? | Lost Your Password?

Search Forums:


 






Wildcard Usage:
*    matches any number of characters
%    matches exactly one character

Hair's breadth from linux support

No Tags
UserPost

2:13 am
June 21, 2010


x00

Member

posts 3

Post edited 8:35 am – June 21, 2010 by x00


Hi I like your program a lot but I would like to be able to use it under

linux. I'm not using a windows box any more.

Basically I got CineGobs working under wine, using .net also mono

on wine and linux mono.

Pretty much all of the functionality works.  I can key an image no

problem, nothing is broken in terms the interface, and no problem

outputting raw or encoded files. Just problem where it is loosing the

file reference when you open *.avi (and i know it could open these

ones). It is going to be something blindly trivial to fix. I'd bet

money on it.

You might think it is not interacting with codecs/avisyth, but

I'm pretty sure it is, it is it just looses the file reference due to

probably a single unsupported operation, or even something simpler

than that (path perhaps). See->

 

System.NullReferenceException: Object
reference not set to an instance of an object. at
CGKFrameServing.FrameServer.InitializeVideo(String fileName) at
CGKFrameServing.FrameServer..ctor(String fileName, Boolean
mBitmapCreation, Boolean ignoreAlpha, Boolean guessScreen, String
affix) at CineGobsKeyer.VideoTools.OpenFrameServerVideo(String
fileName, Boolean aviSynth, Boolean matteBitmapCreation, Boolean
ignoreAlpha, Boolean guessScreen, String affix, FrameServer&
frames) at CineGobsKeyer.MainForm.OpenProjectVideo(String fileName,
Boolean useAviSynth, Boolean newVideo) at
CineGobsKeyer.MainForm.ImportVideoToolStripMenuItemClick(Object
sender, EventArgs e) at
System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs
e) at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e) at
System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at
System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at
System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e,
ToolStripItemEventType met) at
System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e,
ToolStripItemEventType met) at
System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at
System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
button, Int32 clicks) at
System.Windows.Forms.Control.WndProc(Message& m) at
System.Windows.Forms.ScrollableControl.WndProc(Message& m) at
System.Windows.Forms.ToolStrip.WndProc(Message& m) at
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&
m) at
System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&
m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32
msg, IntPtr wparam, IntPtr lparam)

See loading MS DirectX will break wine, and you won't be able to

use CineGobs at all. That is why wine has quartz and other dlls to

provide a less invasive alternative. Basically the bulk of the

functionality is there, and you aren't doing anything fancy that

isn't already working in the interface.

With regard to using mono there probably slightly more to do but not

much because again most of the functionality is there, it is just

that mono doesn't sport all of Windows.Forms, but it has Gtk#, and

probably enough scope to do what you want to to. However I can

understand if you want to stick to MS .NET.

Any chance that you will open source?

If not I believe you are almost there in being able to do it. If can

tell you what dependencies you need through winetricks to get it running.

5:18 pm
July 14, 2010


Bo Johansen

Korsør, Denmark

Admin

posts 35

Hi,

I don't have any knowledge of Linux/Wine, and have no idea where to start looking for things that break it. Also I don't have any plans making CineGobs keyer open source. Sorry.

Bo

11:45 pm
July 14, 2010


x00

Member

posts 3

Post edited 11:38 am – July 15, 2010 by x00


Hi it basically works great with image sequences. that is a bit

longer winded but ok for the time being. It is nice not having to pay

for a windows licence. It may be possible with a video, if I can find

a way round the DirectShow Issue. This issue is likely to be resolved

with future issues of Wine, but it is going to take them some time to

to replicate all the functionality of DirectX.

I may be able create an intermediary program would bridge the two

(instanced through a filter plugin) or just make it easier to import

to CineGobs. Respecting your proprietary licence by being external of

course. Priority would be quality control reducing image artefacts.

It may be possible to open video directly somehow, if I can find a

way round the DirectShow Issue. This issue is likely to be resolved

with future issues of Wine, but it is going to take them some time to

to replicate all the functionality of DirectX.

Your keyer is fantastic by the way, much superior to the ones in

Cinelerra.

These two products CineGobs and Cinelerra have similar end users,

such as people that don't have money for major production like

independents and enthusiasts (who are also likely to use a free OS).

At the moment I output the the RGB and alpha channel separately.

Codecs with alpha channel are few and far between, and not necessary

due to channel swap and reroute filter, plus tweaking filters such as

contrast and blur (alpha channel).

3:39 pm
July 15, 2010


x00

Member

posts 3

I was wondering if you would explain
the basics behind the spill compensation algorithms (not usage). Are
there a few common solution like selective de-saturation or is this
fairly diverse area? How much is involving pixel mapping, proximity,
etc?

6:35 pm
July 17, 2010


Bo Johansen

Korsør, Denmark

Admin

posts 35

Post edited 6:37 pm – July 17, 2010 by Bo Johansen


x00 said:

I was wondering if you would explain

the basics behind the spill compensation algorithms (not usage). Are

there a few common solution like selective de-saturation or is this

fairly diverse area? How much is involving pixel mapping, proximity,

etc?


 

The spill suppression I use is very simple.

F.inst if the background is green I simply do the following for each pixel.

(Everything is floating point btw.)

 

When "Limit to average" is selected:

diff = green – ((red + blue) * 0.5f);

if (diff < 0f) diff = 0f; // clamp to zero

green -= (diff * spillSuppressionLevel); // remove spill

 

When "Limit to brightest channel" is selected:

diff = green – Math.Max(red, blue);

if (diff < 0f) diff = 0f; // clamp to zero

green -= (diff * spillSuppressionLevel); // remove spill

 

The brightness compensation is simply:

bComp = diff * 0.5f;

green += bComp;

if (green > 255f) green = 255f; // Clamp to 255

do the same for the red and blue channel

 

Hope this makes any sense.

Btw. You could also check out my Pixel Bender spill suppression script to see the algorithms.

http://cinegobs.com/software/a…..er-effects

No Tags

About the CineGobs Forum

Forum Timezone: Europe/Copenhagen

Most Users Ever Online: 7

Currently Online:
1 Guest

Currently Browsing this Topic:
1 Guest

Forum Stats:

Groups: 2
Forums: 4
Topics: 15
Posts: 67

Membership:

There are 65 Members

There are 2 Admins

Top Posters:

ericsh6 – 8
naw1423 – 6
x00 – 3
Poison Nuke – 3
interiord86 – 3
gribbly – 2

Recent New Members: tkumarr, HB, oudge, Matthe55, Robert25, Noman

Administrators: Bo Johansen (35 Posts), bentej (0 Posts)