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

ChronoCross
23rd February 2006, 20:46
0.2.3.2095 23 Feb 2006
Commit by berrinam:
- Fixed bug in 'One Click Profile Setup' which didn't allow selected profile to be selected


I re-released a build of 2095(removed). It's identical to 2094 but the numbering and changelog are correct.

Sharktooth
23rd February 2006, 21:33
no.... it's 2094... everything was ok.
sorry for the confusion.

Doom9
24th February 2006, 09:02
I'm in a bit of a pickle. I'm trying to develop the world's smartest muxer based on the following public enum VideoCodec { LMP4, X264, SNOW, XVID, ANY };
public enum VideoType { AVI, RAWASP, RAWAVC, MP4, MKV, NONE };
public enum AudioCodec { MP3, AAC, VORBIS, ANY };
public enum AudioType { MP3, AC3, RAWAAC, MP4AAC, VORBIS, MP2, DTS, NONE, CBRMP3, VBRMP3 };
public enum SubtitleType { SUBRIP, VOBSUB, NONE };
public enum ContainerType { AVI, NONE, MP4, MKV };
public interface IMuxing
{
List<VideoType> GetSupportedVideoTypes();
List<AudioType> GetSupportedAudioTypes();
List<SubtitleType> GetSupportedSubtitleTypes();
List<ContainerOutputType> GetSupportedContainers();
List<ContainerType> GetSupportedContainerTypes();
List<ContainerType> GetSupportedContainerInputTypes();
Muxer GetMuxer(string muxerPath);
string GetOutputTypeFilter(ContainerType containerType);
string GetVideoInputFilter();
string GetAudioInputFilter();
string GetSubtitleInputFilter();
}
Then I have a class MuxProvider which holds a list of IMuxing implementations (each one reflecting one of the existing muxers). So far so good, now that MuxProvider needs to tell me if it can mux something:

a VideoType, an array of AudioType, an array of SubtitleType. And I don't want direct paths, I want any imaginable indirect path to be considered as well. How do you get this done without first shooting yourself? And keep in mind.. muxing paths can be as long as your number of known IMuxing interfaces, but obviously you want the most efficient path.. so for each possible muxer every input type has to be tried and it may be that you have a muxer that does your video and one of the audio types, then you attach another one to it which does the other audio type and subtitle types, and then on top of that you may have another one that just takes one container and gives you another (I'm thinking ahead to the "new container" PSPMP4).

dimzon
24th February 2006, 10:01
List<VideoType> GetSupportedVideoTypes();

why not just VideoType[] . Keep in mind - this is "static constant arrays" - you doesn't need List<> here...


I want any imaginable indirect path to be considered as well. How do you get this done without first shooting yourself?
Hm. AFAIK this is well-khown class of task for Graph theory, there must be ready solution...

Doom9
24th February 2006, 10:45
why not just VideoType[] Because I want to write code like if (mySupportedVideoTypes.Contains(VideoType.RAWASP) ..... and not iterate through the VideoType array.

dimzon
24th February 2006, 10:59
Because I want to write code like if (mySupportedVideoTypes.Contains(VideoType.RAWASP) ..... and not iterate through the VideoType array.
;)
FYI
if (-1!=Array.IndexOf(mySupportedVideoTypes, VideoType.RAWASP) ).....

Doom9
24th February 2006, 13:07
neat trick.. all those static stuff they never tell you about. But -1 !=, eww, I was taught that the value you compare to always comes last.

By the way, I have a little roadmap for you. The next stable release will see the end of major refactoring (so that may delay release since there's still quite a bit of work to be done.. that muxing chain is the most complex though) and should have no open bugs. mencoder xvid and x264 encoding will no longer be possible and avi muxing will be done via avc2avi/avi mux gui. BeSweet audio will no longer be supported.
The release after that should contain a refactored audio encoder, support more audio encoders (winamp, vorbis), should contain the one click changes I previously outlined (2 audio profiles, selection of video codec -> video profile), implement PSP support for x264 and xvid based on a separate profile (and then level verification -> resolution), xvid level and profiles, psp output support via additional muxer (new muxing type PSPMP4.. that's what I call the ContainerType of the atomchanger). With that, it's then possible to ship one click profiles that allow to create perfect PSP output.. then we can also do the same for the video iPod.
Other than that I can see a refactoring of all dialogs that contain profiles (perhaps make it a GUI component that the various dialogs can integrate), add full zone option support for xvid, and finally frame accurate cutting.

dimzon
24th February 2006, 13:18
But -1 !=, eww, I was taught that the value you compare to always comes last.
I'm writing in many languages, some of them use same sign "=" as comparission and assigment. This is VERY common error (at least for me) for C/C++ code:

if(variable=1234)
and sometimes such error is hard to detect

using my pattern (constant first)
if(1234=variable)
you will get compilation error ;)

Sharktooth
24th February 2006, 23:26
CVS Update:

0.2.3.2095 24 Feb 2006
Commit by Sharx1976:
- Some work on aesthetics

@devs: any news for the SVN?

berrinam
25th February 2006, 00:37
@devs: any news for the SVN?
I don't know how much work is involved in the change, but all I can see that is useful for us in terms of the differences is the better revisioning system, considering that we have no idea how fast SF SVN would be. So, if it is easy to change and we won't lose anything, then go ahead. I'm sure TortoiseSVN is very similar to TortoiseCVS.

Sharktooth
25th February 2006, 00:41
I don't know how much work is involved in the change, but all I can see that is useful for us in terms of the differences is the better revisioning system, considering that we have no idea how fast SF SVN would be. So, if it is easy to change and we won't lose anything, then go ahead. I'm sure TortoiseSVN is very similar to TortoiseCVS.
Well, all what it should be done is "migrating"... but SF has an automated procedure for that. It may require some time but MeGUI is not a big project so it will be ready in some minutes (or hours at least).
TortoiseSVN is quite identical to TortoiseCVS.

ChronoCross
25th February 2006, 00:49
I'm in favor of SVN. Personally I like it better than cvs.

Sharktooth
25th February 2006, 09:34
well let's wait the doom9's final "verdict" :)

dimzon
25th February 2006, 12:00
I'm against SVN migration
i'm worry about history lose
i really don't like it bcz i cant delete file from SVN

Doom9
25th February 2006, 13:24
i'm worry about history loseI don't.. never had any history when I was working on megui alone and there's no history when I make huge architectural changes over weeks without any commit. If you worry, you can check out revision by revision since the start of the CVS.
i really don't like it bcz i cant delete file from SVNWhat's the problem with that.. those files just disappear from public views.. most databases on this planet work this way.. hardly anybody hard deletes data anymore.

berrinam
26th February 2006, 04:25
@Mutant_Fruit: I tried out your automatic updating, and I am impressed. I made a few notes, about some big and some small problems:

CurrentVersion flag never appears to be set. This causes it always to update. I just read your last post, and realised that you still need to read that data from the xml file. I don't like that system, because it could easily get out of sync with the actual version of the file. If there was some way to use the version signalled by the exe itself, that would be better.
Should be able to force an update check.
Should be able to turn off update checking altogether.
Should also perhaps be support for new versions of MeGUI, and also all the AviSynth plugins and AviSynth itself. I presume this will come later.
'Update' should turn into 'OK' when finished
FileX/Y doesn't have a space in it, when displayed in the status bar.
What is the other textbox there for?
Perhaps it would be nice to have a small log of what succeeded and what didn't, etc. Is that what the textbox is for?
It crashes if you select neroraw or anything else not on the server
The status bar says finished before you've even started anything.
How easy is it to put everything in a different folder, because I don't think the root directory is the best place to keep all the files.
What is the feasibility of zipping the files to make downloads smaller?
Could we have something more descriptive than N/A if it doesn't have the information? Something like 'Files Not Found', 'Version unknown', etc

Mutant_Fruit
26th February 2006, 12:15
@Mutant_Fruit: I tried out your automatic updating, and I am impressed. I made a few notes, about some big and some small problems:


CurrentVersion flag never appears to be set. This causes it always to update. I just read your last post, and realised that you still need to read that data from the xml file. I don't like that system, because it could easily get out of sync with the actual version of the file. If there was some way to use the version signalled by the exe itself, that would be better.
I realise this. I've investigated a few methods for getting version numbers. It seems that most of the .exe programs can be made display their version number on-screen, therefore i can redirect stdout and read out their version number. However, with dll files, most of them don't have the version number embedded. Therefore there doesnt seem to be a way for me to check the version of those files.
Should be able to force an update check.
That's possible. There's a button now called "Update" in the tools method which will display the Update window and allow an update.
Should be able to turn off update checking altogether.
That was already possible. You just set the auto-update interval to 0 days in settings. Maybe i should make that more obvious.
Should also perhaps be support for new versions of MeGUI, and also all the AviSynth plugins and AviSynth itself. I presume this will come later.
Yup, AviSynth plugins and AviSynth can easily be added, however MeGUI will be a little trickier. The problem is that if MeGUI is running, i can't replace the MeGUI .exe with the new .exe, but if MeGUI isn't running i can't move the .exe over automatically. This could be possible if i created a secondary program (only a few lines) who's job it is is to copy the new .exe over the old .exe after MeGUI closes, then it could restart MeGUI automatically.
'Update' should turn into 'OK' when finished
I'll do that now
FileX/Y doesn't have a space in it, when displayed in the status bar.
Status bar is gone now, it's been completely replaced by the "log" textbox. I only thought of using a "log" a few mins before i uploaded that temp version, which is why it did nothing.
What is the other textbox there for?
Thats the log textbox, it displays details about everything that goes on.
Perhaps it would be nice to have a small log of what succeeded and what didn't, etc. Is that what the textbox is for?
I agree, and you're right.
It crashes if you select neroraw or anything else not on the server
Fixed already.
The status bar says finished before you've even started anything.
Aye, i realised that was slightly confusing. That "finished" was actually referring to the fact it had downloaded the update .xml file, and then parsed it successfully. It makes more sense with the log textbox now.
How easy is it to put everything in a different folder, because I don't think the root directory is the best place to keep all the files.
Thats a thing i was going to bring up alright. I was going to ask if i should make a default "Plugins" folder or something similar. That should be easy
What is the feasibility of zipping the files to make downloads smaller?
That's already 80% finished or so. I had a bit of trouble with the zip library not acting the way i thought it would, but its working now.
Could we have something more descriptive than N/A if it doesn't have the information? Something like 'Files Not Found', 'Version unknown', etc
Thats been taken care of in the log textbox.


What i'm looking for most now is a fullproof way of finding out the versions of dll files. For example: MessageBoxExLib.dll has the dll version in it (right click and go to properties->version), but AvisynthWrapper.dll doesn't. In that case, the only way i could know the version is to store it from the XML data and hope nobody switches the dll file.

berrinam
26th February 2006, 12:29
I realise this. I've investigated a few methods for getting version numbers. It seems that most of the .exe programs can be made display their version number on-screen, therefore i can redirect stdout and read out their version number. However, with dll files, most of them don't have the version number embedded. Therefore there doesnt seem to be a way for me to check the version of those files.Have you tried just going by modified date?
That was already possible. You just set the auto-update interval to 0 days in settings. Maybe i should make that more obvious.When I did that, it actually did the opposite -- it checked every time I opened MeGUI.
MeGUI will be a little trickier. The problem is that if MeGUI is running, i can't replace the MeGUI .exe with the new .exe, but if MeGUI isn't running i can't move the .exe over automatically. This could be possible if i created a secondary program (only a few lines) who's job it is is to copy the new .exe over the old .exe after MeGUI closes, then it could restart MeGUI automatically.I can see that, but I think MeGUI is likely to be updated quite frequently at the moment, so it's quite an important feature IMHO.
Thats a thing i was going to bring up alright. I was going to ask if i should make a default "Plugins" folder or something similar. That should be easySounds good, but don't call it plugins. That's too similar to AviSynth plugins and could cause heaps of confusion.

What i'm looking for most now is a fullproof way of finding out the versions of dll files. For example: MessageBoxExLib.dll has the dll version in it (right click and go to properties->version), but AvisynthWrapper.dll doesn't. In that case, the only way i could know the version is to store it from the XML data and hope nobody switches the dll file.
Or, as I said, going by date modified... or finding some way to force the dlls to store the version. AviSynthWrapper, for instance, is part of the MeGUI project itself, so if it's the only problem, then that shouldn't be too hard to fix.

Also, it just occurred to me that if we have lots of things that can be autoupdated, perhaps it would be a good idea to group them by category, so the user isn't confronted with a huge list? Perhaps audio binaries, video binaries, avisynth plugins, and miscellaneous?

The rest of it looks very promising.

Mutant_Fruit
26th February 2006, 12:57
Or, as I said, going by date modified... or finding some way to force the dlls to store the version.

It'd be possible to check the "date created" of the dll on the clients computer and check that against the "date uploaded" on the server computer to see if it needs updating. That'd be a handy trick if i don't have the version numbers, but not completely foolproof.


Also, it just occurred to me that if we have lots of things that can be autoupdated, perhaps it would be a good idea to group them by category, so the user isn't confronted with a huge list? Perhaps audio binaries, video binaries, avisynth plugins, and miscellaneous?

I'll look into that as soon as i get the zip section working 100%. Tis a good idea.

Also, code-wise, if you see anything that isn't good, or that could be done better, let me know. I'm always up for improving.

Also, the code for "AutoUpdate" is called like this on startup...

if(this.settings.UpdateInterval>0) // AutoUpdate is on
{
....Start the autoupdate thread....
}

So setting the interval to 0 should make it NOT check for updates... Testing that now.

EDIT: Sure it works now anyway. I'll upload the newer beta version just so ye can see what it looks like now.

EDIT2: Here is the latest source. I'm still working on the zip handling.
http://www.fileshack.us/files/741/MeGUIAutoUpdate.zip

Sharktooth
26th February 2006, 14:22
For those who haven't subscribed to the SF mailing list (regarding SVN):
I am pleased to report that our Subversion beta was successful
and we launched our Subversion service sitewide earlier this week.
In addition, we've completed deployment of new web servers and
made further enhancements to our service monitoring and uptime
monitoring capabilities. Upcoming software map and search
improvements remain on track for March and April deployments,
respectively.
Subversion General Availability
-------------------------------

The SourceForge.net team is pleased to announce the General Availability
of Subversion service to SourceForge.net-hosted projects, effective
2006-02-21. This service offering is in addition to our existing CVS
service; as with all of our services, projects may select (and enable in
the project admin pages) the portion of our offering that best meets
their needs.

We wish to extend our thanks to the many projects and developers who
have helped us to test our Subversion service as part of our six-week
beta, which completed last week. Our particular thanks go to these
projects, whose members provided substantial feedback regarding the
new service:

* Inkscape - http://sourceforge.net/projects/inkscape/
* DejaVu Fonts - http://sourceforge.net/projects/dejavu/
* ScummVM - http://sourceforge.net/projects/scummvm/
* evilnet - http://sourceforge.net/projects/evilnet/


Our Subversion service includes:

SSL-based Repository Access:
* Developer Subversion access via HTTPS, auth is requested when you
perform a write operation
* Anonymous Subversion access via HTTPS
* No sync delays between developer and anonymous Subversion access
* Per-developer access control over repository access (ACL support to be
added in the future) via the SourceForge.net permissions system

Web-based viewing:
* Web-based repository access via ViewVC (formerly known as ViewCVS)

On-demand self-service backups and mirroring capability:
* Read-only rsync access to the repository to permit backups and
remote mirroring

Ease of migration:
* Automated self-service migration of your SourceForge.net project CVS
repository, CVS tarball, or Subversion dump to our Subversion service

Well-considered add-ons to basic service:
* A selected set of hook scripts, including commit email support and
CIA bot support
* Statistics tracking of Subversion repository activity


Service may be enabled by project administrators in the "Subversion"
section of the Project Admin pages.

Complete service documentation is available at:
http://sf.net/docs/E09/

Documentation is provided for supported clients at:
http://sf.net/docs/F06/ for the command-line SVN client
http://sf.net/docs/F07/ for TortoiseSVN

Our support of Subversion has been based on substantial research and
testing in the past few months, which we have pursued specifically based
on requests from the community. SourceForge.net continues to consider
new technologies and evaluate community requests in further
strengthening our service offering.

berrinam
26th February 2006, 21:10
It still crashes with neroraw, because currentFile.UpdateURL is null.
There is still a space missing when it says 'Updating mencoder. File1/7'
InvalidOperationException thrown in ParseUpdateData(), because it doesn't have access to that. Use Invoke(delegate) for that. I think that may be causing 'Update' not to change to 'OK'
Setting UpdateInterval to 0 does indeed turn off automatic updates. I do think this should be explicit, anyway. Also, if it is at any other value, it ignores it and checks every time you open MeGUI.
The log is good.

I might look at the code later, but that's all I have time for now.

Mutant_Fruit
26th February 2006, 22:00
Setting UpdateInterval to 0 does indeed turn off automatic updates. I do think this should be explicit, anyway. Also, if it is at any other value, it ignores it and checks every time you open MeGUI.

Thats be design at this point, otherwise it'd be a pain in the ass resetting the "lastUpdated" DateTime each time i wanted to put the code through a test.

As for the rest of the bugs, i've either fixed em already, or will do now. Thanks for the pointers.

berrinam
28th February 2006, 06:08
0.2.3.2096 28 Feb 2006
Commit by berrinam:
- Updated Source Detection to recognize sources that need decimation

dimzon
28th February 2006, 14:18
0.2.3.2097 28 Feb 2006
Commit by dimzon:
- AviSynthWrapper: now it's possible obtain value of script integer variable (AviSynthClip.GetIntVariable)


Just quick sample how to use:

using (MeGUI.AviSynthScriptEnvironment env = new MeGUI.AviSynthScriptEnvironment())
{
using (MeGUI.AviSynthClip clip = env.ParseScript("global test=123\n\rversion()\n\r", MeGUI.AviSynthColorspace.Unknown))
{
int i=0;
try
{
i = clip.GetIntVariable("test",0);
}
catch(Exception eee)
{
MessageBox.Show(eee.ToString());
}
MessageBox.Show(i.ToString());
}
}

dimzon
28th February 2006, 14:38
Hi!
Seems like i can implement such magic features in AviSynthWrapper:

Ability to add our own callback functions to AvsScript:
clip.RegisterCallback(new CallBackDelegate(...))
so it's possible to call something like:

version()
MeGUI_Callback(some arguments)



Ability to set variable values
clip.SetVariable("variableName", 12345)

Ability to check function existence
clip.IsFunctionDefined("Mpeg2Source")

berrinam
28th February 2006, 20:38
0.2.3.2097 28 Feb 2006
Commit by dimzon:
- AviSynthWrapper: now it's possible obtain value of script integer variable (AviSynthClip.GetIntVariable)

Sounds great! It's now possible to remove all temporary files in Source Detection. What happens if you are trying to get something else, like a boolean?

Ability to add our own callback functions to AvsScript:Woah, that's pretty powerful. I can't think why it would be useful, though.

Ability to set variable values
clip.SetVariable("variableName", 12345)Similarly with this.

Ability to check function existence
clip.IsFunctionDefined("Mpeg2Source")
Do you know if this also works with conditional functions, like IsCombed()?

dimzon
28th February 2006, 21:14
Sounds great! It's now possible to remove all temporary files in Source Detection.
Yes, this is feature for You ;)

What happens if you are trying to get something else, like a boolean?
Exception will be thrown ;) Variable must be exatly integer. Does You really need something else? I can add float/boolean but I really does'nt want ( i can but doesn't want ) to add string (bcz of marshaller performance slowdown)
Keep in mind - each feature reques approx 1hrs so ask if You really need it - otherwize it's better to spent my free time to more critical/important features ;)

Do you know if this also works with conditional functions, like IsCombed()?
I can't find IsCombed() in AviSynth manual - what is it?

berrinam
28th February 2006, 21:29
Yes, this is feature for You ;)Thank you. :D

Exception will be thrown ;) Variable must be exatly integer. Does You really need something else? I can add float/boolean but I really does'nt want ( i can but doesn't want ) to add string (bcz of marshaller performance slowdown)Never mind, then. I can cope with integers only -- AviSynth can do the conversion easily enough for me. I was just wondering.

I can't find IsCombed() in AviSynth manual - what is it?It's part of the Decomb package from neuron2. The relevance of that is that it's just like YDifferenceFromPrevious (which is part of AviSynth) -- it can only be accessed from inside one of the conditional functions, like FrameEvaluate, etc.

dimzon
28th February 2006, 22:10
It's part of the Decomb package from neuron2. The relevance of that is that it's just like YDifferenceFromPrevious (which is part of AviSynth) -- it can only be accessed from inside one of the conditional functions, like FrameEvaluate, etc.
I don't know, must test...

jellysandwich
1st March 2006, 07:03
There seems to be a small inconsistency in the deblocking tooltip. It says that "in loop deblocking is part of the normal operation of MPEG-4 AVC and should not be disabled," but says disabled for the default and recommended values.

js

berrinam
1st March 2006, 07:27
That should have been posted in the Bug Report Thread, but you are indeed correct, never-the-less. Fixed in .2098:

0.2.3.2098 1 March 2006
Commit by berrinam:
- Fixed discrepancy with x264 config information about the deblocking filter.
- Fixed 8x8dct/i8x8 discrepancy in x264 config.

dimzon
1st March 2006, 10:14
@all developers
Can anybody point me on tasks wich does not inersect with Doom9 refactoring?

berrinam
1st March 2006, 11:53
@all developers
Can anybody point me on tasks wich does not inersect with Doom9 refactoring?

You could try fixing these last two known bugs:
AviSynth Script Creator access a dead PreviewWindow
Description: when opening a d2v, then closing the preview and subsequently trying to preview again, we're trying to resurrect the disposed preview window.. that won't work. The preview window has to be reinitialized completely anew.. using would actually come in handy here as it prevents you from reusing a reference that has been disposed.
Status: Not yet solved.

Exception with AutoEncode x264 3pass 1st pass
Description: if you set x264 to 3 pass first pass, then try to access the autoencode, the autoencodewindow constructor throws an exception.
Status: Not yet solved.

Heh heh heh.... we're approaching a somewhat stable build again, just as Doom9 is about to commit his refactoring. :S

berrinam
1st March 2006, 11:56
Also perhaps this:

Warn user if an instance of MeGUI is already running
Description: There's not really much point in running multiple copies of MeGUI, and it can cause problems. It would be a good idea to warn the user that there is a copy already running. See http://www.codeproject.com/csharp/restricting_instances.asp for how to implement this.
Status: No-one is working on it.

dimzon
1st March 2006, 12:07
0.2.3.2099 1 March 2006
Commit by dimzon:
- Fixed bug: AviSynth Script Creator access a dead PreviewWindow

dimzon
1st March 2006, 12:14
0.2.3.2100 1 March 2006
Commit by dimzon:
- Fixed possible resource leak in VideoPlayer

Doom9
1st March 2006, 13:43
just as Doom9 is about to commit his refactoring. :SYou're presuming that I'm almost done.. I had some private stuff again last week-end and real life will continue next week-end as well.. but this morning on the way to work I almost had a breakthrough in this whole muxer chain thing.. it's not perfect (you have to register a muxer multiple times, once for each output type.. but at this point there's no muxer that supports multiple containers so it won't show), but it appears to be workable.. but I better not jinx it as it's not done yet. If there are indeed no outstanding issues (but I think there are.. for instance reading out the exit code once the videoencoder process ends.. at least for x264.exe that should be done and if it's not 0, then su.HasError should be set so that even when x264 craps out without telling us why, at least the job is flagged as an error and subsequent jobs are not started.. that doesn't get rid of the problem that megui should write out what went wrong and x264's output never makes it into the redirected stderr/stdout (and nobody has an idea why :(), but at least we properly signal that there has been an error and don't start any subsequent jobs that are doomed to fail as well). Then there's the deleting intermediate files when something went wrong issue (don't think it's in the buglist but then again I have not seen a good report on this as well.. good report being a deterministic "when does it happen"). And then there's the shutdown thing..

dimzon
1st March 2006, 13:46
You're presuming that I'm almost done...
WOW! Happy to read this!

dimzon
1st March 2006, 14:06
0.2.3.2101 1 March 2006
Commit by dimzon:
- Warn user if an instance of MeGUI is already running
http://img465.imageshack.us/img465/3015/untitled5wi.png

Sharktooth
1st March 2006, 14:29
Does -> Do.

dimzon
1st March 2006, 14:33
Does -> Do
fixed

ChronoCross
1st March 2006, 17:38
so many new builds so little time hehe. I'll try the cvs again in a few hours for the latest.

Sharktooth
1st March 2006, 19:01
http://www.webalice.it/f.corriga/megui/MeGUI-src.CVS-0.2.3.2101.7z

Richard Berg
1st March 2006, 19:25
Warn user if an instance of MeGUI is already running
Make sure this only checks if multiple copies of the same .exe are running. That's problematic because they will overwrite each other's profile, job, etc. XML files.

However, running separate .exe's should definitely be allowed. As long as they're kept in separate dirs, there will be no interference between them. Lots of reasons why you might want to do this:
- debugging
- trying new unstable versions without having to abort the long jobs your stable copy is running
- encoding on dualcpu/dualcore machines (we rejected the proposal to handle this within MeGUI, remember?)

dimzon
1st March 2006, 19:28
Make sure this only checks if multiple copies of the same .exe are running.
Anyway you have a choice to run or not to run ;)

Richard Berg
1st March 2006, 19:41
Yes, but why make it unnecessarily annoying? It takes less than a line of extra code. Instead of comparing process name, compare Process.MainModule.FileName.

berrinam
2nd March 2006, 11:22
0.2.3.2102 2 March 2006
Commit by berrinam:
- Fixed exception when checking Turbo on a 1stpass profile in x264 config
- Fixed macroblock options selection when checking Turbo as above

Sharktooth
2nd March 2006, 11:49
sources http://www.webalice.it/f.corriga/megui/MeGUI-src.CVS-0.2.3.2102.7z

bob0r
2nd March 2006, 11:52
so many new builds so little time hehe. I'll try the cvs again in a few hours for the latest.

Why don't you automate the process?
Compile a new build each minute/hour/day? :)


Ah wait you can't!!!! Arg you cant have bloody csc.exe quit as far as i know.... anyone who does know for mingw???

My sctipt:

#!/bin/sh

## Change paths
megui_dir=/home/user/MeGUI-src.CVS/
pack_dir=/home/user/pack/
net_dir=C:\\/WINDOWS\\/Microsoft.NET\\/Framework\\/v2.0.50727\\/

if [ ! -d "$megui_dir" ]; then
while true; do
cd; cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/megui co -P MeGUI-src.CVS;
if [ -d "$megui_dir" ]; then
break
fi
sleep 10
done
fi

cd $megui_dir;

#sed -e 's/csc \/res/'$net_dir'csc \/res/' compile.bat > compile_m.bat;
start //low //b //w compile full-svn;

## Manually enter: exit
## Blame csc.exe, not me :)

mv megui-svn.exe $pack_dir;
mv AvisynthWrapper.dll $pack_dir;
mv MessageBoxExLib.dll $pack_dir;
mv Data/ContextHelp.xml $pack_dir/Data/;

cd $megui_dir/neroraw/;
start //low //b //w compile

## Manually enter: exit
## Blame csc.exe, not me :)

mv neroraw.exe $pack_dir;

berrinam
2nd March 2006, 12:02
Ah wait you can't!!!! Arg you cant have bloody csc.exe quit as far as i know.... anyone who does know for mingw???

My sctipt:
...
cd $megui_dir/neroraw/;
start //low //b //w compile

## Manually enter: exit
## Blame csc.exe, not me :)

mv neroraw.exe $pack_dir;It doesn't exit so that when running it from windows you can see any errors when compiling. The compile.bat script simply has a PAUSE command in it. If you want to avoid that, use 'compile full' or 'compile full-svn' as your commandline.