Log in

View Full Version : MeGUI development


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

Doom9
2nd December 2005, 13:34
but we need to make sure that's highlighted in the documentationI guess that's the main problem, educating the user. I still recall all he complaints about loadplugin not being int the script because people only know the GKnot scripts, whereas I develop on multiple machines that have plugins in different locations so transferring scripts always caused issues until I got rid of loadplugin paths.

Sharktooth
2nd December 2005, 14:16
I have problems enabling styles with .NET 2.0 in MeGUI.
I added all the stuff (i think) but the new style doesnt show up.
In the meantime i made a gui (for the ultra-lazyest lazy user) made in C# for .NET 2.0 for avc2avi.
i'm going to add it to my x264 builds as soon as i sort the MeGUI styles problems.

dimzon
2nd December 2005, 14:27
Hi! I have an idea how to turn MeGUI into very flexible and extensible application! The answer is short - plugins
take look @ technology demo (binaries & sources): http://www.mytempdir.com/294485
first run ExtensibilityDemo.Application alone
http://img525.imageshack.us/img525/3388/a07tc.gif
then close it and place ExtensibilityDemo.SamplePluginLib.dll and/or ExtensibilityDemo.SamplePluginLibInVB.dll to the execution folder and run it again.
http://img489.imageshack.us/img489/8555/a21uu.gif
Amaising, is't it.

How does it work:
ApiDefinition.dll contains definition for 2 custom attributes and 1 interface.
ExtensibilityDemo.Application on startup perform directory scan to search all assemblies marked with IsAsseblyWithPlugin custom attribute. When it found such assembly it scan this assembly in order to find types marked by IsPlugin custom attribute. For detail look @ loadPlugins() method in ExtensibilityDemo.Application.

Reflection is great, is'nt it?

stax76
2nd December 2005, 15:25
Extensibility generally is great. I have quite a bit experience with extensibility and reflection and can tell you doing it right is not so easy and it ain't easy to maintain either so I would think about it twice.

dimzon
2nd December 2005, 15:28
Extensibility generally is great. I have quite a bit experience with extensibility and reflection and can tell you doing it right is not so easy and it ain't easy to maintain either so I would think about it twice.
It's really easy if You exactly know how it works...

stax76
2nd December 2005, 16:03
It's really easy if You exactly know how it works...

Did you design a extensible apllication? I did and found it was not so easy. Maybe it's easy for simply applications but if you try to allow plugin authors to extend classes that must be serialized as settings as well being hosted in lists things get more and more complicated. All this would be needed if I would support plugins in StaxRip that provide additional preparers, encoders, muxers and things. You got to use adapter patterns, custom serialization and stuff. I know how all this works but rather try to make my application flexible enough without plugins and scripting. There are a lot traps like serialization finds assemlies only within the startup dir unless the AppDomain is configured for it.

dimzon
2nd December 2005, 16:09
Did you design a extensible apllication?
This is my primary work for past 5 years! I'm lead developer of instrumentation tools in our company :)
There are a lot traps like serialization finds assemlies only within the startup dir unless the AppDomain is configured for it.
public virtual event ResolveEventHandler AssemblyResolve

charleski
2nd December 2005, 16:51
It's really easy if You exactly know how it works...This does look interesting, but you've put your finger on the real problem - it would have to be written by someone who knows exactly how it works, i.e. you :D .

dimzon
2nd December 2005, 18:16
This does look interesting, but you've put your finger on the real problem - it would have to be written by someone who knows exactly how it works, i.e. you :D .
First step - which interfaces/classes does whe need to move in plugins.
MeGUI is job-based tool so there are such abstract classes/interfaces:
Job - some abstract job to add to joblist
JobExecutor - yet another abstract class. Seems like Job implementation must provide concrete JobExecutor implementation
JobProvider - some visible GUI to create and add job's. Must provide save/load state functionality.
Second step - which interfaces/classes MeGUI must provide for plugins:
JobPlanner - some class/interface with method AddJob(AbstractJob jobToAdd)
WellKnownFilenames provider - yet another idea/improvement. If I want to perform full DVD-backup i need to encode audio, encode video then mux then together. But I can't - schedule mux job - audio/video files does'nt exist! WellKnownFilenames provider must provide list of "files to be created after pending job completion" to allow choose this files in GUI for planning.

stax76
2nd December 2005, 19:11
The basic architecture of the sample is correct but there are quite a few things that can be done better e.g. creating objects using System.Activator and performance wise there is much room for improvement, some techniques are described here (http://msdn.microsoft.com/msdnmag/issues/05/07/Reflection/default.aspx).
Job - some abstract job to add to joblist

This yields the problem I described, let's say you inherit from job (or maybe profile) in your plugin and later remove that plugin. As result the entire deserialization will fail unless you do custom serialization. I would host the objects in a class implementing IList and ISerialization and save the stream of a serialized object in the list in a byte array so if a object in the list cannot be deserialized because the assembly no longer exists the other objects in the list can still be deserialized.

My biggest gripe with plugins is all the additional work involved to expose interfaces and breaking changes that hardly can be avoided if you want clean code and progress. Just lost half of my Firefox plugins after updating to 1.5. It must be very annoying for a plugin author if there are often breaking changes.

dimzon
2nd December 2005, 19:32
This yields the problem I described, let's say you inherit from job (or maybe profile) in your plugin and later remove that plugin. As result the entire deserialization will fail unless you do custom serialization. I would host the objects in a class implementing IList and ISerialization and save the stream a serialized object in the list in a byte array so if a object in the list cannot be deserialized because the assembly no longer exists the other objects in the list can still be deserialized.
Never use Binary Serialization for "save configuration" puposes! It can be broken even if your assembly still binary compatible (change/remove/add internal/private members to class). Binary Serilization is for short-term serialization for marshaling/network transmission puposes ONLY!!!!

I strongly recommend to use XmlSerializer and perform per-item serialization!

dimzon
2nd December 2005, 19:47
@Doom9
Why not to use SF and CVS for collective work?

Sharktooth
2nd December 2005, 20:16
maybe we'll have a SVN soon.
SF and his CVS are slow as hell and the mantainence is a pain.

stax76
2nd December 2005, 20:39
Never use Binary Serialization for "save configuration" puposes! It can be broken even if your assembly still binary compatible (change/remove/add internal/private members to class). Binary Serilization is for short-term serialization for marshaling/network transmission puposes ONLY!!!!

Last time I tried XML serializer it was very problemlematic to use with complex object graphs using things like generics, polymorphic objects within lists, hashtables or dictionaries etc. Maybe it was improved for 2.0 and maybe with enough experience XML serializing can work but I see absolutely no problem using binary serialization. There is no limit to the complexity of your object graphs, it will work, it will run fast and it won't riquire customizations like polymorphism with the xml serializer. Things like xml serializer calls ctor on deserialize usually yields awkward code. IIRC future .NET versions will be compatible with the 2.0 binary formatter. If you change fields you can call reflection to the rescue either by applying OptionalFieldAttribute (2.0 ;) or cleaner and better as missing or breaking fields with initializer get automatically instantiated:


Public Class Foo
Implements ISerializable

Public Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)
For Each i As FieldInfo In Me.GetType.GetFields()
Try
i.SetValue(Me, info.GetValue(i.Name, i.FieldType))
Catch
End Try
Next
End Sub

Public Sub GetObjectData(ByVal info As SerializationInfo, ByVal context As StreamingContext) Implements ISerializable.GetObjectData
For Each i As FieldInfo In Me.GetType.GetFields()
info.AddValue(i.Name, i.GetValue(Me))
Next
End Sub
End Class


Of course if you have critical data that is never allowed to break you don't want to use binary serialization but for a application like MeGUI that's not really a problem.

berrinam
2nd December 2005, 21:49
Perhaps the main thread could be updated with the new bins?

Also, I, too, support setting up SVN for MeGUI.

charleski
2nd December 2005, 22:10
Well, I've been assuming that people have been beta-testing all the changes I've made (especially the avi-import stuff please!). I've corrected all the issues that I've found or have been reported so far.

I have one more patch to post, but if all this stuff works, it's time to move the build number up a notch IMO, but I'll leave that in doom9's hands.

[edit]
Ok, current patch status:

0.3.2.10018 2 Dec 2005
Forced avs output to YV12 - No-one wins the grand-prize, guess that saved me some cash!
Restructured the code to open a video source in order to accomodate opening the dialog with a source already
specified.
Altered the formation of the main window's title. Version changes need only be set in AssemblyInfo.cs now.
Added berriman's avs script profile changes. (Move your avisynth plugins!) - Fixed it to load dgdecode from the DGMPGDec directory

Changed Files (http://homepages.nildram.co.uk/~cajking/MeGUI-src.ChngdFls_0.3.2.1018.rar)
Antiquated .NET 1.1 bins (http://homepages.nildram.co.uk/~cajking/MeGUI.NETv1.1.Bins_0.2.3.1018.rar)

[another edit] Grah - that's 0.3.2.1018

Doom9
2nd December 2005, 23:25
My notebook started going nuts when I was on my way home, playing movies was no longe possible (abysmal performance), and while VS also had a lot of issues, I still managed to take care of one of the pending issues that've been bugging me in megui. The following makes the "show progress window" option in the view menu context sensitive:

add new private variable to Form1.cs

private bool isPwVisible = false;

In Form1.cs, method public bool startEncoding(Job job) add

this.isPwVisible = true;

to all three instances of the if:

if (this.settings.OpenProgressWindow)

in mnuView_Popup

replace

if (pw != null)

with

if (pw != null && !this.isPwVisible)

in mnuViewProcessStatus_Click

add
this.isPwVisible = true;

In ProgressWindow.cs

change

public delegate void WindowClosedCallback();

to

public delegate void WindowClosedCallback(bool hideOnly);

In OnClosing(CancelEventArgs e)

replace the code with the following

if (this.IsUserAbort)
{
e.Cancel = true;
this.Hide();
WindowClosed(true);
}
else
{
WindowClosed(false);
base.OnClosing (e);
}

charleski
3rd December 2005, 00:16
@doom9 I've been trying to integrate your changes, but I get the error:
Error 11 No overload for 'pw_WindowClosed' matches delegate 'MeGUI.WindowClosedCallback'
I think I've drunk too much wine to work this out tonight, and I'm not an MCP, my doctorates are in biology, heh.

Doom9
3rd December 2005, 00:42
Error 11 No overload for 'pw_WindowClosed' matches delegate 'MeGUI.WindowClosedCallback' Means you didn't patch everything or didn't tell me enough about the error (as in which file.. which method).

Sharktooth
3rd December 2005, 04:44
Charleski version is 0.2.3.1018 not 0.3.2.1018
However the http://files.x264.nl/Sharktooth/?dir=./megui link contains always the latest .NET 1.1 bins (made with .NET 1.1 SDK c# compiler - csc) and the changed files from the original 0.2.3.1b sources.

charleski
3rd December 2005, 04:53
Charleski version is 0.2.3.1018 not 0.3.2.1018
Ok, the fact that it took me 10 minutes to realise that 0.2.3 != 0.3.2 means i should probably look at this code tomorrow...

Sharktooth
3rd December 2005, 05:02
It's just the archive filename that's wrong... the right version number is 0.2.3.1018. The code is ok.

berrinam
3rd December 2005, 11:52
The Avisynth Script Creator window now doesn't open; a NullReferenceException due to the mainForm member being accessed when it is still null. To fix, move this.mainForm = mainForm; from about the middle of AviSynthWindow.<init> to the beginning of that constructor.

berrinam
4th December 2005, 09:58
ChronoCross posted (http://forum.doom9.org/showthread.php?p=746176#post746176) a bug report which seems to cause MeGUI to crash when opening an avs file. This is caused by the two following lines in VideoPlayer.InitializeComponent: ((System.ComponentModel.ISupportInitialize)(this.videoPreview)).BeginInit(); and ((System.ComponentModel.ISupportInitialize)(this.videoPreview)).EndInit(); While they could simply be deleted, perhaps a better way to fix this problem is to force VS to regenerate the InitializeComponent code, by moving some components around.

Sharktooth
5th December 2005, 15:20
as a quick workaround for my x264 builds i commented that lines out.
1.1 .NET binaries at the usual place ( http://files.x264.nl/Sharktooth/?dir=./megui ). sources are not updated.

edit: the avc2avi GUI i was talking of some posts above... this is the .NET 1.1 version: http://files.x264.nl/Sharktooth/utils/avc2avi_rev267+gui.7z
The .NET 2.0 version with default style looks much better though.

charleski
5th December 2005, 19:10
ChronoCross posted (http://forum.doom9.org/showthread.php?p=746176#post746176) a bug report which seems to cause MeGUI to crash when opening an avs file. This is caused by the two following lines in VideoPlayer.InitializeComponent:
I tracked down the cause of this:
PictureBox.System.ComponentModel.ISupportInitialize.BeginInit Method
...
Note: This method is new in the .NET Framework version 2.0.
Aargh. - the Forms Designer automatically adds .NET 2.0-only code, and the .NET 1.1 compiler wasn't detecting this particular problem at compile-time.

@doom9: I worked out what else needed to be added to your changes. Since you added a parameter to the WindowClosedCallback delegate, then
private void pw_WindowClosed()
{
pw = null
}
in Form1.cs needs to change to
private void pw_WindowClosed(bool hideOnly)
{
this.isPwVisible = false;
if (!hideOnly)
pw = null;
}
if I'm reading your intentions correctly.

Doom9
5th December 2005, 19:20
if I'm reading your intentions correctly.Yup, that's it. Did I miss that? It appears so.

charleski
5th December 2005, 19:35
I've added it into the source, but I'm playing around with getting the preview window to resize atm.

Doom9
5th December 2005, 20:04
what's wrong with the preview window? it resizes just fine here.

charleski
5th December 2005, 20:18
You can pull out a corner and resize the video? That's weird, I can' do that at all.

Sharktooth
5th December 2005, 20:24
i cant.

Doom9
5th December 2005, 20:27
why would you want to do that anyway? It's nice to know how big your video will finally be like, no?

Sharktooth
5th December 2005, 20:33
However, i fixed the style thing for .NET 2.0 only. with 1.1 styles are partially applied (only on tabs and menus).
any ideas?

.NET2.0 with styles:
http://www.webalice.it/f.corriga/temp/styled_megui.png
... looks much better :)

charleski
5th December 2005, 20:49
why would you want to do that anyway? It's nice to know how big your video will finally be like, no?
Well, it's good to know what your actual encoded size will be, but I often zoom the video up to tweak filter settings and deinterlace thresholds before encoding. I know you're obviously seeing the same thing, but it helps when working on a relatively small laptop screen.

@sharktooth: All I know is that there are quite a few .Forms Control properties that are only available in .NET 2.0, like UseVisualBackColor.

haubrija
6th December 2005, 05:14
Quick bug report using 0.2.3.1018

In the AVS Creator, upon clicking the IVTC option, the creator adds this line.

Telecide(guide=1).Decimate()

In actuallity, it should add this line.

Telecide(order=1,guide=1).Decimate()

FYI

Doom9
6th December 2005, 09:21
Telecide(order=1,guide=1).Decimate():The order thing rings a bell but that doesn't appear to be mandatory as I just used IVTC in MeGUI yesterday and it worked out just fine.

foxyshadis
6th December 2005, 10:19
Order is TFF/BFF and if it's not given it'll use whatever avisynth thinks it is, which mpeg2source will set correctly. So always using order=1 could actually get you into trouble with BFF sources.

charleski
6th December 2005, 12:11
Quick bug report using 0.2.3.1018

In the AVS Creator, upon clicking the IVTC option, the creator adds this line.

Telecide(guide=1).Decimate()

In actuallity, it should add this line.

Telecide(order=1,guide=1).Decimate()

FYI
Upgrade your Decomb filter to the latest version 5.2.2 from Donald Graft's site.
It no longer uses the order parameter.

[BTW, this is mentioned in the changelog, and I'll be ading some code to extract the correct TFF/BFF decision from the d2v.]

dimzon
6th December 2005, 18:46
@Doom9
Does You look @ internal class Encoder @ BeHappy source? Does You still need more? I believe - 30 minutes is enought to make it MeGUI.Encoder descendant ;)

Sharktooth
6th December 2005, 18:53
Dimzon: please do not push ppl doing something. everyone have it's own business and maybe he had no time to check it.

Doom9
6th December 2005, 19:43
@Dimzon: unfortunately I'm both swamped at work, and at home. A codec comparison takes a great deal of time, especially if you have a considerable list of potential codecs that you need to put through a qualification phase. This year's comparison effectively started last week and there is little chance I get to write any line of MeGUI code until the end of the year. But here's one:

In Calculator.cs, find the method codec_CheckedChanged and add updateBitrateSize(); so that the bitrate gets updated when switching between XviD and other codecs (XviD considers bitrate = raw bitstream bitrate, for all other codecs bitrate = final size / length).

And here's how I think the tri-state thing should finally look like (mind you the method may be incomplete and was never tested)

private void x264TriStateAdjustment(x264Settings xs)
{
if (xs.EncodingMode != 2 || xs.EncodingMode != 5)
xs.Turbo = false;
if (xs.Turbo)
{
xs.NbRefFrames = 1;
xs.SubPelRefinement = 0;
xs.METype = 0; // diamond search
xs.I4x4mv = false;
xs.P4x4mv = false;
xs.I8x8mv = false;
xs.P8x8mv = false;
xs.B8x8mv = false;
xs.AdaptiveDCT = false;
xs.MixedRefs = false;
xs.BRDO = false;
xs.Trellis = false;
}
if (!(xs.EncodingMode == 1 && xs.Profile == 2)) // lossless requires CQ mode
xs.Lossless = false;
else
xs.BitrateQuantizer = 0;
if (xs.NbRefFrames <= 1) // mixed references require at least two reference frames
xs.MixedRefs = false;
if (xs.NbBframes < 2) // pyramid requires at least two b-frames
xs.BFramePyramid = false;
if (xs.NbBframes == 0)
xs.AdaptiveBFrames = false;
if (!xs.Cabac) // trellis requires CABAC
xs.Trellis = 0;
if (xs.NbBframes == 0)
xs.WeightedBPrediction = false;
if (xs.NbBframes == 0 || xs.SubPelRefinement < 5) // BRDO requires RDO and b-frames
xs.BRDO = false;
if (!xs.P8x8mv) // p8x8 requires p4x4
xs.P4x4mv;
}
The same method could be used in x264ConfigurationDialog.cs where instead of using x264Settings you access the GUI elements. This allows grouping of all related code in a single method that can be called in showCommandLine. Then GUI element events basically just call showCommandLine

charleski
6th December 2005, 21:08
MeGUI 0.2.3.1019

Changelog:
0.3.2.1019 6 Dec 2005
Changes by doom9 to make show progress window context sensitive.
Added resizing to the video preview window.

(The resizing is not really as pretty as I'd have liked, but after trying several approaches I think it's impossible to get a smoother result without moving up to .NET 2.0 which has some important improvements in how it handles these events.)

Changed Files (http://homepages.nildram.co.uk/~cajking/MeGUI-src.ChngdFls_0.3.2.1019.rar)
.NET 1.1 bins (http://homepages.nildram.co.uk/~cajking/MeGUI.NETv1.1.Bins_0.2.3.1019.rar)

This patch doesn't include the changes doom9 suggested above. I'll have to add those next time.

Sharktooth
6th December 2005, 21:53
... MeGUI-src.ChngdFls_0.3.2.1019.rar .... 0.2.3.1019...

charleski
6th December 2005, 22:02
lol, I did it again.
Ok, changed my templates so i won't keep doing that :)

Sharktooth
6th December 2005, 22:16
merged sources and bins are a the usual place though.
however maybe it's time to switch to .NET 2.0?

berrinam
6th December 2005, 22:44
As a general note for coding: in MeGUI, you should use MeGUI.GetDirectoryName as opposed to Path.GetDirectoryName, as (at least in .NET 1.1) you Path.GetDirectoryName will have no trailing slashes, except if the passed parameter is a root directory. This means that generating a filename using this could have two consecutive slashes if the filename is a root directory.

MeGUI.GetDirectoryName (a static function) is simply a wrapper for this function, which removes the trailing slash if it exists.

Also, there's a problem with running a One Click encode. The process will be interrupted, because of a MessageBox that pops up. Removing MessageBox.Show(Environment.GetEnvironmentVariable("PATH"), "Path", MessageBoxButtons.OK); from JobUtil.openVideo should solve that.

Sharktooth
6th December 2005, 22:51
new bins and merged sources are up @ http://files.x264.nl/Sharktooth/?dir=./megui

edit: adding
Application.EnableVisualStyles();
in Main() will partially enable the visual styles on .NET 1.1 and enable all the style effects for .NET 2.0.

Sharktooth
6th December 2005, 23:02
an unhandled exception is triggered when clicking on Avisynth script creator menu entry: ************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at MeGUI.AviSynthWindow.generateScript()
at MeGUI.AviSynthWindow.showScript()
at MeGUI.AviSynthWindow.resizeFilterType_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
at MeGUI.AviSynthWindow.set_Settings(AviSynthSettings value)
at MeGUI.AviSynthWindow.avsProfile_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
at MeGUI.AviSynthWindow..ctor(MeGUI mainForm)
at MeGUI.MeGUI.mnuToolsAviSynth_Click(Object sender, EventArgs e)
at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItemData.Execute()
at System.Windows.Forms.Command.Invoke()
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.2032
CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
megui
Assembly Version: 0.2.3.1019
Win32 Version: 0.2.3.1019
CodeBase: file:///C:/Documents%20and%20Settings/Ebola/Desktop/meguisrc/megui.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.2032
CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.2032
CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.2032
CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
System.Xml
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.2032
CodeBase: file:///c:/windows/assembly/gac/system.xml/1.0.5000.0__b77a5c561934e089/system.xml.dll
----------------------------------------
xuq2gagl
Assembly Version: 0.0.0.0
Win32 Version: 1.1.4322.2032
CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
rg0wr9ln
Assembly Version: 0.0.0.0
Win32 Version: 1.1.4322.2032
CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------

haubrija
6th December 2005, 23:57
Upgrade your Decomb filter to the latest version 5.2.2 from Donald Graft's site.
It no longer uses the order parameter.

[BTW, this is mentioned in the changelog, and I'll be ading some code to extract the correct TFF/BFF decision from the d2v.]

Ah that must be it. Sorry for the inconvenience.

charleski
7th December 2005, 00:49
an unhandled exception is triggered when clicking on Avisynth script creator menu entry:

Fixed, I think the bug appeared when I put in doom9's progress window changes before one of the variables was assigned.

0.2.3.1020 6 Dec 2005
Altered Path.GetDirectoryName to MeGUI.GetDirectoryName
Removed a redundant piece of debugging code from jobUtil.openvideo
Fixed a bug caused by incorporating the progress window code in the wrong place
[Should add this to the changelog: I also tried putting Application.EnableVisualStyles() in as Sharktooth suggested. It actually makes things look worse for me, but I have a custom theme applied to Windows. Anyway, see what you think.]

0.2.3.1020 changes (http://homepages.nildram.co.uk/~cajking/MeGUI/MeGUI-src.ChngdFls_0.2.3.1020.rar)
Bins (http://homepages.nildram.co.uk/~cajking/MeGUI/MeGUI.NETv1.1.Bins_0.2.3.1020.rar)