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

dimzon
13th January 2006, 12:58
Current Settings form is to big to fit @ some screen resolutions. And I'm planning to add at least 3 new executables to it. So i decide to add TabControl and place all program paths @ separate page.
Does You agreed?

dimzon
13th January 2006, 13:26
new SettingsForm layout is here: http://www.mytempdir.com/381070
http://img202.imageshack.us/img202/8880/19pq1.png
http://img227.imageshack.us/img227/2506/24if.png

Doom9
13th January 2006, 13:36
So i decide to add TabControl and place all program paths @ separate page.Yeah, that's no problem.. the settings form is getting rather big.

dimzon
13th January 2006, 13:39
some little code cleanup in settings form:
http://www.mytempdir.com/381110

berrinam
13th January 2006, 13:42
Yeah, that's no problem.. the settings form is getting rather big.
Yep, and so is the AviSynth Window.

@dimzon: Those screenshots don't have the two buttons that I added recently: Reset Dialogs, and Configure Source Detector. I put the Source Detector one there in 2014 and the Reset Dialogs there in 2016. Just warning you, so we don't get clashes there.

dimzon
13th January 2006, 13:42
Yeah, that's no problem.. the settings form is getting rather big.
there was some problem - this stupid Visual Studio 2005 forget component names and event-handlers during Cut/Paste (VS 2003 works fine). So we can't just cut some amount of controls from form and then paste them into TabPage.
I modified InitializeComponent directly for this...

dimzon
13th January 2006, 13:44
Yep, and so is the AviSynth Window.

@dimzon: Those screenshots don't have the two buttons that I added recently: Reset Dialogs, and Configure Source Detector. I put the Source Detector one there in 2014 and the Reset Dialogs there in 2016. Just warning you, so we don't get clashes there.
Unfortunally i can't use CVS - i have no rights to get sources via ssh and anonimous access doesn't work for me! I'm using latest sources tarball from Doom9.
Sorry!

berrinam
13th January 2006, 14:12
Yes, I had exactly the same problem. Here's a link to the latest sources: http://rapidshare.de/files/10962720/MeGUI-src.CVS_2017.rar.html

Doom9
13th January 2006, 14:39
I modified InitializeComponent directly for this...Is going to get you in a world of pain.. each time somebody changes something in the GUI designer, it will reset those manual changes.. that's the reason we have 3 initializecomponent versions in the settings form.. one for each mode (I know that is as ugly as it gets.. not my choice, visual inheritance would most likely handle that just fine)

By the way, what are these optional output extensions good for?

dimzon
13th January 2006, 15:40
Is going to get you in a world of pain.. each time somebody changes something in the GUI designer, it will reset those manual changes..
Don't worry, it still work fine even after GUI designer :)

that's the reason we have 3 initializecomponent versions in the settings form.. one for each mode (I know that is as ugly as it gets.. not my choice, visual inheritance would most likely handle that just fine)
This is another reason to remove conditional compilation :) Let's do it!

By the way, what are these optional output extensions good for?
I really does'tn know (this is not my code)

dimzon
13th January 2006, 15:46
Yes, I had exactly the same problem. Here's a link to the latest sources: http://rapidshare.de/files/10962720/MeGUI-src.CVS_2017.rar.html

@Doom9
Dear Doom9, we really need working source version control solution, current situation is not acceptable! Source control allows to track and revert any changes, so don't worry about "destructive activity from developers". You can ever mark every succesfull build by tags/labels to be able to revert/switch to any version.

Sharktooth
13th January 2006, 15:49
So you start the GUI, go directly to the x264 configuration, configure a non SVN feature, then configure the x264 path to a svn build, which limits the GUI, but the job is already there, so when you start the job you have the usual "unrecognized commandline" error. Even worse, if after configuration of the executable, you go back to the settings, the program will crash because the subme dropdown only has 6 entries now, not 7.
No. You go to the megui settings dialog, use the "..." button to set the x264 path and MeGUI will detect the version and enable/disable the respective controls in the x264config dialog and load the default settings.

However .2017 binaries are now on SF.

dimzon
13th January 2006, 15:56
Dear Sharktooth
I'm sorry, can You tell me - why does you still need separate x264 build for MeGUI? It saves approx 50kb per download BUT creates a really discomfort for development and dramaticaly reduce productivity...

Sharktooth
13th January 2006, 16:01
Well, coz MeGUI-x264 requires only... x264 and it work as it is with my (and bobor's) x264 packages.
Including the full GUI means the user should look for additional software or i (or bobor) should distribute other software along with x264 (besweet, dgindex, faac, mp4box, etc).
At that point that wont be a x264 release anymore, but an encoding solution including x264 and will weight several megabytes.

max-holz
13th January 2006, 16:01
No. You go to the megui settings dialog, use the "..." button to set the x264 path and MeGUI will detect the version and enable/disable the respective controls in the x264config dialog and load the default settings.

However .2017 binaries are now on SF.

Sharktooth could you update http://files.x264.nl?

Ciao

Sharktooth
13th January 2006, 16:06
done;)

dimzon
13th January 2006, 16:09
Well, coz MeGUI-x264 requires only... x264 and it work as it is with my (and bobor's) x264 packages.
You are wrong!
It reques at least

donNet Framework
AviSynth

and you don't redistribute it with Your bundle!

PS. and nobody force users to download mencoder/dgindex/etc if they doesn't need this functioonality!

Sharktooth
13th January 2006, 16:19
well everyone that encodes to divx or xvid has avisynth and .NET framework is available thru Windows Update.
However including the full version will confuse/scare the end user with all the supported codecs, options, softwares etc. while the MeGUI-x264 is perfect and it is related to x264 CLI (only) as encoder.

max-holz
13th January 2006, 16:21
What is it xvid_encraw.exe?

Sharktooth
13th January 2006, 16:22
the xvid command line encoder.

max-holz
13th January 2006, 16:23
the xvid command line encoder.

Sorry where can I find it? I search for in my xvid installation directory but I couldn't find it.

Sharktooth
13th January 2006, 16:39
a 1.1 build by kurtnoise is here: http://kurtnoise.free.fr/xvid_encraw-1.1.0.zip
you can always get the source from the xvid CVS and compile it though.

FooFighter007
13th January 2006, 16:40
look here...
http://forum.doom9.org/showthread.php?t=98469

regards,
foo

dimzon
13th January 2006, 16:41
well everyone that encodes to divx or xvid has avisynth and .NET framework is available thru Windows Update.
90% of such people know about besweet/dgindex.

However including the full version will confuse/scare the end user with all the supported codecs, options, softwares etc. while the MeGUI-x264 is perfect and it is related to x264 CLI (only) as encoder.
Good solution will be to provide short explanation - which software is requed for each codec/option and provide download links...
Maybe we can create voiting poll for users to decide?

Sharktooth
13th January 2006, 16:42
yep, it's a good idea.

Sharktooth
13th January 2006, 16:58
bug reported here: http://forum.doom9.org/showthread.php?p=767418#post767418

Doom9
13th January 2006, 22:14
one thing: if anybody plans any refactoring, let me know in advance.. two people working on that concurrently causes major issue. My next commit is going to be a major pain because of the things Richard (no offense, you didn't know) changed after I started the next big undertaking of refactor the muxer architecture. Also please do the same if you're planning on touching the core (JobUtil and basically anything that deals with creating and processing jobs).

FYI, all the job related enums are going to be changed with my next update.

Richard Berg
13th January 2006, 22:25
It shouldn't take long if you have a good 3-way merge tool. Do a Google -- most of the commercial ones have a free trial.

Doom9
13th January 2006, 22:53
any suggestions? I'm a lazy n00b you know ;) ANd I just spent 4 indexing cycles to find out I put a stupid trim command in my avisynth script.. I can redo the d2v all I want if I keep using the restricted avs file... grrr. and I already started the debugger wanting to make sure avifile is really reporting that low framenumber.

One thing.. we do we have an AviReader and AviFile file? They do the same thing...

berrinam
13th January 2006, 22:59
CVS Update:

0.2.3.2018 14 Jan 2006
Fix up (auto)cropping crashes when the preview window is closed


As to the AviReader and AviFile.... looking at them, they aren't identical, because AviReader does some wrapping of the AviStreamGetFrame method that AviFile doesn't seem to.

Doom9
13th January 2006, 23:06
they aren't identical, because AviReader does some wrapping of the AviStreamGetFrame method that AviFile doesn't seem to.Yeah, avireader does more.. which bodes the question why the other one was added. Whatever might be missing from AviReader, I'm sure it could be added, couldn't it?

berrinam
13th January 2006, 23:08
Yeah, avireader does more.. which bodes the question why the other one was added. Whatever might be missing from AviReader, I'm sure it could be added, couldn't it?
Yes, I will do that. I just wanted to get Automatic Deinterlacing working for the time being, without having to fiddle around with AVIFile calls.

godhead
13th January 2006, 23:13
I just submitted a new patch. I was going to make the AAC is SBR fix and add subtitle naming, but noticed that I forgot a change to the MuxWindow that would keep someone from naming the second audio track. This patch fixes that issue and I also changed the string concats to use StringBuilder.

CommandLineGenerator.cs
* Changed generateMP4BoxCommandline() to use StringBuilder instead of string concats
* Changed generateMkvmergeCommandline() to use String Builder instead of string concats

MuxWindow.cs
* Fixed audioName.Text not changing when second audio track radio button is selected.

Doom9
13th January 2006, 23:16
Changed generateMP4BoxCommandline() to use StringBuilder instead of string concats
* Changed generateMkvmergeCommandline() to use String Builder instead of string concatsMeans more manual merging for me :(

Here's what I think should be expectable from a CVS tool: in case there are conflicts, it redownloads my last CVS checkout, does a diff (without needing any external soft), from my current code and the last CVS checkout in a useful form (two windows, colored to mark differences), then it downloads the latest sources, and puts them in another window.. that way at least for non GUI classes you can halfway intelligently merge your changes with the latest sources.

godhead
13th January 2006, 23:23
Means more manual merging for me :(

Here's what I think should be expectable from a CVS tool: in case there are conflicts, it redownloads my last CVS checkout, does a diff (without needing any external soft), from my current code and the last CVS checkout in a useful form (two windows, colored to mark differences), then it downloads the latest sources, and puts them in another window.. that way at least for non GUI classes you can halfway intelligently merge your changes with the latest sources.

I'm using TortoiseCVS with WinMerge for the Diff tool and it seems to be working well. I do a CVS Update before I create my patch and if there's merge conflicts, I'll preview them in WinMerge and figure out if I want my edits or the CVS Updated version. I would recommend you give WinMerge a try and see if you like it.

berrinam
13th January 2006, 23:23
Means more manual merging for me :(

Here's what I think should be expectable from a CVS tool: in case there are conflicts, it redownloads my last CVS checkout, does a diff (without needing any external soft), from my current code and the last CVS checkout in a useful form (two windows, colored to mark differences), then it downloads the latest sources, and puts them in another window.. that way at least for non GUI classes you can halfway intelligently merge your changes with the latest sources.
Get WinMerge: http://winmerge.sourceforge.net/
It's open source, and when installing, you can choose to integrate with TortoiseCVS to do just what you described (presuming you have TortoiseCVS installed).

EDIT: Heh, identical response to godhead.

Doom9
14th January 2006, 00:02
I have a wacky proposal regarding the conditional compilation. I think we can agree that most changes made only affect the full build. As the refactoring progresses, at some point, wouldn't it be possible for the main gui class to act mostly as a shell only, thus basically allowing multiple separate programs making use of the same classes.. if we use the same namespace, after an update of the full version, you could basically copy the changed files over, and recompile the other project without changes. Of course that requires a major overhaul of the current architecture, but if we're not looking at the shorter run, I suppose doable (and I'm pretty sure dimzon likes the idea as it gets close to the plugin approach). I'm doing something similar at work.. it's not a GUI program though but a service that I also have as an executable (because it's easier to debug), and in the end all I do is copy over the changed source files, compile, register and run the service.

berrinam
14th January 2006, 00:20
0.2.3.2019 14 Jan 2006
Add Richard Berg's right-click patch
Add godhead's Muxing patch

Richard Berg
14th January 2006, 01:14
I have a wacky proposal regarding the conditional compilation...
Right now the problem with CC is that it's everywhere -- in the middle of code blocks, forms declarations, logic tests, everything. If the various features of MeGUI become modular, then CC is actually ok. Imagine if the only CC in the program looked like this (pseudocode)

public MeGUI()
{
this.plugins += new Core();
#ifdef x264-only
this.plugins += new X264();
#elif
this.plugins += new OneClick();
this.plugins += new AVSScriptEditor();
....
}


Then the rest of the code you never have to worry about which variables/controls/logic/etc are present in which build.

berrinam
14th January 2006, 06:02
0.2.3.2020 14 Jan 2006
Make all profile comboboxes Sorted (fixes the bug, "mainForm profiles aren't sorted alphabetically")
Catch exceptions in source detection, and warn the user
Enforced "en-us" culture for double->string conversion (directshowsource fps) in AviSynthWindow

berrinam
14th January 2006, 07:21
0.2.3.2021 14 Jan 2006
Fix a bug which caused compile.bat compiled files to crash when opening AviSynth Script Creator

berrinam
14th January 2006, 14:07
0.2.3.2022 14 Jan 2006
Fix Autostart Queue time values bug.

Sharktooth
14th January 2006, 16:51
Binaries are up on SF.

max-holz
14th January 2006, 17:28
Binaries are up on SF.
Ciao Sharktooth, http://files.x264.nl is up to date?

Sharktooth
14th January 2006, 17:37
it is now.

Sharktooth
14th January 2006, 18:07
MeGUI-x264 doesnt work. Look at the bug report thread.

Mutant_Fruit
14th January 2006, 18:46
just posting up a patch on SF which fixes a few problems with AVI files in the AVISynth creator and a few general bugs....

EDIT: And its up.

berrinam
14th January 2006, 23:39
@Mutant_Fruit: There's no file attached

Mutant_Fruit
15th January 2006, 00:02
Its up now. I keep forgetting to check the checkbox to upload the file :P

berrinam
15th January 2006, 00:54
CVS Update:

0.2.3.2023 15 Jan 2006
Applied Mutant_Fruit's AviSynth script creator patch with 2 alterations:
-fix to still accept Drag & Drop files
-catch exception if file can't be opened with AVIReader