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

charleski
30th December 2005, 11:34
When I update from cvs I always receive a conflict warning for the file MeGUI.suo, it's a user solution options hidden file, I'am wondering if it's necessary to include this file in the cvs or if it's a my prob caused by some wrong setting?Hmm, yeah, the .suo file probably shouldn't be there. Has anyone had problems with the .csproj and .sln files? (those are both the ones generated by VS2005).

As far as numbering goes, it's probably time to shift to 0.2.4 :).

@Mutant_Fruit: You can take a look at the first page for doom9's TODO list. Or just see if there are any things you'd like to add for yourself (which is why I started writing code for it).

dimzon
30th December 2005, 12:56
@All
I will perform a little code refactoring today

Mutant_Fruit
30th December 2005, 13:23
redesign the x264 configuration

At the risk of biting off more than i can chew, is anyone working on this? And more importantly, does anyone mind if i do take a crack at this?

I don't want to choose something that'd take too long for me to complete and end up holding up development :P Also, what exactly needs to be done design wise? Just restructure it and make it look nice? Or make sure there are dropdowns/checkboxes for all the x264 settings and all obsolete ones are removed?

If theres something smaller someone would like me to take a crack at, let me know.

max-holz
30th December 2005, 14:00
@All
I will perform a little code refactoring today

Plan to insert the new --bime option?

dimzon
30th December 2005, 14:39
@All
WTF

http://img529.imageshack.us/img529/9714/wtf1nl.gif

In C:\Documents and Settings\DAlexandrov\My Documents\Visual Studio Projects\1\MeGui\MeGUI-src.CVS: "C:\Program Files\TortoiseCVS\cvs.exe" "commit" "-m" "" "xvidSettings.cs"
CVSROOT=:ext:dimzon@cvs.sourceforge.net:/cvsroot/megui

cvs: rcs.c:4188: RCS_checkout: Assertion `rev == ((void *)0) || ((*__ctype_b_loc ())[(int) (((unsigned char) *rev))] & (unsigned short int) _ISdigit)' failed.
cvs [commit aborted]: received abort signal

Error, CVS operation failed


PS. This is my first CVS expirience (using MS VSS for 5 years, never CVS)

dimzon
30th December 2005, 14:45
Plan to insert the new --bime option?
no! Just little code cleanup && refactoring

charleski
30th December 2005, 15:50
You'd have to ask the TortoiseCVS people why you got that error on commit dimzon. Unfortunately I know little about it :(.

BTW, please update the changelog.txt file as well when you make any changes.

dimzon
30th December 2005, 16:14
You'd have to ask the TortoiseCVS people why you got that error on commit dimzon. Unfortunately I know little about it :(.

BTW, please update the changelog.txt file as well when you make any changes.
Changed files: http://www.mytempdir.com/352243

1) modified VideoCodecSettings::clone method implementation
2) removed VideoCodecSettings::clone overrides from all VideoCodecSettings descendants
3) FourCCs is now defined per-type, not per-instance and is readonly!
4) Minor version increased

charleski
30th December 2005, 18:23
Ok, added dimzon's changes to the CVS (and updated changelog.txt).
Published a new file release.
Removed MeGUI.suo from the CVS.

Sharktooth
30th December 2005, 19:59
New x264 switch: --bime (bidirectional motion extimation)

Doom9
30th December 2005, 20:29
At the risk of biting off more than i can chew, is anyone working on this? And more importantly, does anyone mind if i do take a crack at this?I don't think so. What is needed/expected? The GUI design basically comes from early January 04 when I made the first release (phew, it's about time I can celebrate the first birthday of my very first dvd backup software).. the grouping was based on what at that time made sense to me. Since then, there have been many new options, some that came and went again, others that stuck.. at this point a different grouping probably makes more sense as new options keep getting added where there's free space, not necessarily at a place that would be most logical. I would suggest you attack the first two tabs first, leaving the whole zones thing alone (it's quite complex and I have some plans for that when it comes to cutting via avisynth). Do not be afraid to change the size of the dialog to better accomodate a more sensible grouping of the available options.

And then there's the new --bime option (which I guess would make the most sense when grouped together with other b-frame related options).

Also, looking at the poll, I propose that we permanently move to .NET 2.0.. so that new development can make full use of the new goodies of the new platform, and we can attack the removal of deprecated code and get rid of all the warnings.

max-holz
30th December 2005, 20:50
Someone could explain to me this continuous error?

In C:\MeGUI\Source\MeGUI-src.CVS: "C:\Programmi\TortoiseCVS\cvs.exe" "-q" "update" "-d" "-P" "."
CVSROOT=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/megui

cvs.exe update: Empty password used - try 'cvs login' with a real password

cvs.exe [update aborted]: Error reading from server cvs.sourceforge.net: 0

Error, CVS operation failed

Mutant_Fruit
30th December 2005, 21:11
I would suggest you attack the first two tabs first, leaving the whole zones thing alone (it's quite complex and I have some plans for that when it comes to cutting via avisynth). Do not be afraid to change the size of the dialog to better accomodate a more sensible grouping of the available options.
Rightio then. I'll get cracking on that tomorrow. I've got VC# express installed, so i'll use that (meaning .NET2.0).

I'll read through what options are being displayed, what options are displayed in the x264 dialog itself, and structure the new window with that in mind. Expect me to come back with questions :p

@Doom9: I got your PM, and i fully agree with your thinking. We'll see how i go with this.

Doom9
30th December 2005, 21:20
Expect me to come back with questionswill try to answer them to your satisfaction. Don't trust anything you hear in between me coming home from the new year's party and 12+ hours after that though ;)

bob0r
30th December 2005, 22:31
Wow nice, CVS :)

And yes, SF always has weird errors.

I myself have to retry like 10x also before it works:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/megui co -P MeGUI-src.CVS

@Sharktooth, yeah LOL, when i update ffdshow i need to wait for the damn files to update also :)

Browsing http://cvs.sourceforge.net/viewcvs.py/megui/MeGUI-src.CVS/ until a new version number is visible is the best solution!

@All:

Here a simple script to get megui source and compile it with .net 1.1, example from my system:

#!/bin/sh

## Change paths
megui_dir=/home/user/MeGUI-src.CVS/
net_dir=C:\\/WINDOWS\\/Microsoft.NET\\/Framework\\/v1.1.4322\\/

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_m x264-svn;

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

charleski
30th December 2005, 23:13
Ok, to simplify things a bit and open it up, doom9 suggested we used the patch tracker. Just go to the main megui sourceforge page, click on Patches then click on Submit New on the 2nd line. Fill in a description of the changes and attach the files you've changed.

You'll need to be registered with SourceForge, but don't need anything special other than that. Just use the anonymous pserver method to get the code from the CVS. Unfortuantely SF can be a bit slow, and I suspect you're seeing a problem with timeouts max-holz, I had similar problems when setting the CVS up at first. When that happens it's best just to wait 20 mins or so.

LiFe
31st December 2005, 00:44
@Mutant_Fruit: Can you please help me implement my earlier request for context sensitive help while you're re-working the x264 gui?

Am fairly experienced with video compression, but a newbie with x264, and it took me an hour last night to work out what the majority of the more complex options did (lots of doom9 searches). I'd really appreiciate being able to integrate all the available info into the GUI, so anyone with a video compression background can understand what each option does with a recommended range of settings.

Personally I'm thinking that a layout more like Nero Recode gives pretty good settings grouping. And I'd love to see a box at the bottom or side (like the cmd line) that will show info about each setting you hover the mouse over.

I am happy to write this from all the guides and recommendations in the forum.

Please let me know.

Mutant_Fruit
31st December 2005, 00:50
@life: I'll gladly put that in. Just let me know what info you want displayed, and roughly how you want it to be displayed and i'll work it in somehow. It'd be a shame to do everything up now, and then have to redo it again later to allow that.

If you need to talk to me, i use MSN (mostly), so you could PM me an MSN address to add.

EDIT: Got any screenshots of nero recode? I don't actually have that installed.

charleski
31st December 2005, 01:53
Just my personal opinion, but after having spent the past few months encoding several videos a week (archiving stuff from off-air), I think the most critical parameters are:
1) bitrate (obviously)
2) deblocking parameters (A bit of a Black Art atm: Despite the stern admonitions in the mplayer encoding pages I've found myself moving them steadily down from 0,0 and am using -2,-2 right now, but it's very much a matter of taste.)
3) Keyframe interval (seekability is important IMO, one of the big advantages of watching stuff you've encoded is that you can rewind and skip ahead to bits you want to see, but there's obviously a tradeoff in terms of compressibility).
4) SAR (Right now this should automtically be set by the Avisynth creator if you load the file in directly. But if you're loading files in a batch, this is a field you need to check. One of the main advantages of mp4 is its enforced AR transform on playback, something that needs to be used since the majority of sources implement anamorphic input and keeping that resolution gives a huge advantage.)

[BTW, and this is only my own opinion, I found Nero Recode's GUI a bit confusing (particularly with regard to their resize/AR element, in which they hide too much). I moved over to x264/meGUI because it's more transparent in terms of what's actually going on.]

berrinam
31st December 2005, 02:02
Anonymous CVS access works for me, but developer access now seems to have stopped working. TortoiseCVS comes up with this error:
cvs checkout: failed to create lock directory for `/cvsroot/megui/MeGUI-src.CVS' (/cvsroot/megui/MeGUI-src.CVS/#cvs.lock): Permission denied
cvs checkout: failed to obtain dir lock in repository `/cvsroot/megui/MeGUI-src.CVS'
cvs [checkout aborted]: read lock failed - giving up
cvs.exe checkout: in directory .:
cvs.exe checkout: cannot open CVS/Entries for reading: No such file or directory

Error, CVS operation failed A google of "failed to obtain dir lock in repository" shows this result (http://gallery.menalto.com/node/710), which gives the advice: I am told that this happens sometimes when a check in doesn't work correctly, and the project admin needs to delete the #cvs.lock file.

charleski
31st December 2005, 02:41
Anonymous CVS access works for me, but developer access now seems to have stopped working.
Yep, I'm evil and disabled CVS write privileges for everyone except admins so that we use the Patch Tracker, hehe. It's a training period so that admins get used to checking it as much as anything else.

Just upload your files as detailed above and they'll get integrated.

Mutant_Fruit
31st December 2005, 02:46
Just to throw an idea out there before i head off to bed...

After a bit of discussion with someone else (LiFE), i've the following idea. How about we ditch the tabular layout, and go for a treeview layout? How do people feel about a treeview layout as opposed to the tabs at the top? Do people prefer the treelayout, or would i be best leaving it as is with the tabs?

Personally, i like treeviews. But if the consensus is "no", then i'll stick with tabs.

(in case you're wondering, a treeview is like the windows explorer view of your harddrive).

acidsex
31st December 2005, 03:10
do you have an example of a treeview as i am not quite understanding what you are saying? May be my tiredness.

Mutant_Fruit
31st December 2005, 03:19
This is a tree view. The settings for the video codec could be displayed in the same manner as the folders and subfolders are displayed under the D:

http://img511.imageshack.us/img511/2569/treeview9xi.jpg

Sharktooth
31st December 2005, 04:45
Yep, I'm evil and disabled CVS write privileges for everyone except admins so that we use the Patch Tracker, hehe. It's a training period so that admins get used to checking it as much as anything else.

Just upload your files as detailed above and they'll get integrated.
Why not add berrinam to the admins?

LiFe
31st December 2005, 04:49
Re what we were discussing:
Tree
+ Visual Tree makes it easier to recall where settings are (see recode).
+ Easier to implement a large number of 'sections' (old Firefox had similar)
- Uses more screen real estate

Tabs
+ Compact way of displaying many settings (see MS Office Options)
+ Advanced users feel at home
- Does not scale well for 5+ tabs (see MS Office Options)
- Scares off newbies
- Very difficult to recall which setting is in which tab, particularly if tabs toggle between front and back (Office Options)

Keeping in mind that we're gonna need quite a few more tabs to fit everything in:
- Optional context sensitive help
- Expand the names of the options, atm almost everything is abbrieviated
- Proper drop down lists with explanations
- A few sliders (currently implemented as number boxes)
- Maybe some radio check boxes

To prevent the screen being too big, it will probably be neccessary to have 6 'sections' broken down into
"Rate Control": Includes: Basic Rate Control and Profiles
"Main Options": General Options & Tools
"Advanced Options": Macroblocks and Other Options
"Advanced Rate Control": Rate Control & VBV stuff
"Quantizers": Quantizers
"Zones": Zones

Sharktooth
31st December 2005, 04:57
@all devs: please commit one patch at a time. i mean one commit for each modification of a single feature. it will be easier to read the changes in the cvs and to find the code changes.
For example:
1) modified VideoCodecSettings::clone method implementation
2) removed VideoCodecSettings::clone overrides from all VideoCodecSettings descendants
3) FourCCs is now defined per-type, not per-instance and is readonly!
4) Removed redundant reference to DirectShow videoplayback module

would mean 4 commits.

foxyshadis
31st December 2005, 04:59
The general consensus in the UI/usability community is that tree-views range from slightly bad to very bad unless you have lots of heigharchial groups; I have enough experience with misapplied treeviews to be very wary. Nicer tabs might be nice.

Now that presets are such an easily useable part of the app, thanks to sharktooth's wonderful efforts, my opinion is that the basic first screen should have minimal options: preset and bitrate. I'd argue bitrate should be shown without going into "config", next to profile, unless it's a first pass or automatically derived. Half the time that's the only thing I want to change, the only thing that profiles can't usefully dictate.

Once in config, only basic options should be shown: profile (which should ideally set the profile when changed), mode, B-frames, AVC profile & level, deblock dropdown (low, normal, high, custom). Maybe # reference frames, # b-frames, logfile. And of course, an advanced option, giving us everything else on the first panel split into better categories, plus trellis, me algo, and sar, matrix, and commandline. The rest of the second panel stuff (plus maybe chroma me and cabac?) should be relegated to another panel like "control settings" or "stream settings". "Advanced" doesn't quite fit the bill. Finally a zones option. (Maybe a quantizer edit option, as stated above, but does anyone really want to see and edit those ugly 8-part quantizers from inside megui?) Then doom9 can do whatever he wants with zones.

"Advanced options" can be a set of buttons that opens new panels, or a checkbox that opens more tabs, but I lean toward the former even if it's a bit cluttery. Then you have one control center, not many tabs or a big tree. Definitely don't do buttons as "more..." like XviD, of course, and give the panel a little more room to breathe... and hey, maybe add some pretties like divx, but I won't push that one too hard. ;)

Somewhere, there should be a "multi-processor" option, which sets the number of threads equal to the number of processors on your system, unless you'd rather keep it to #threads option only.

In general UIs should strive to keep the most common settings the most easily accessible, highlight the most important, without overly inconveniencing those who need to change the rest. I hope this proposal sounds as if it would do that.

charleski
31st December 2005, 05:48
Why not add berrinam to the admins?

Because
a) I'm evil (didn't I say that already?) Mmm, blood, blood....
b) Using the Patch Tracker properly means we all need to keep an eye on what people have uploaded. The last thing we want is for someone's contributions to go unnoticed - even if we don't want to integrate his/her mods as they are, we should give a reason.
c) It's New Years' weekend and I thought it would be OK to try out the change (berriman admits he was just fiddling - ahah! um, well whatever)
d) See a), except with added 'nutirients'. MMMm Nutrients! (tack on H. Simpson image)

Sharktooth
31st December 2005, 06:00
CVS update:
0.2.3.1028 - added --bime support (and fixed some controls for NET 1.1 designer...)

Maybe there's some errors coz it 6AM here... but it compiles.
Had no time to post binaries too...

max-holz
31st December 2005, 08:56
Could someone post the new sources in any other place, the Cvs seems very busy.

Thanks

Doom9
31st December 2005, 12:06
Somewhere, there should be a "multi-processor" option, which sets the number of threads equal to the number of processors on your system, unless you'd rather keep it to #threads option only.That's already in the settings and I think it makes sense to keep it there especially seeing that lavc also supports SMP, XviD is about to support it and XviD AVC will support it. I think it's in the interest of most people that if they have an SMP capable system, the encoder makes full use of it, all the time, and they can still control CPU use by using the job priority.

I don't think Treeviews make a lot of sense for a codec configuration either. They make a lot of sense for a usergroup configuration where higher level group inherint from lower level ones and where you can manipulate membership and the "group is part of group" relationship via drag & drop (I built such a thing once.. it's quite awsome when you get it working compared to what we used to have before), but for a codec I don't really see the grouping.

Sharktooth
31st December 2005, 14:23
i uploaded the assemblyinfo.cs to reflect the version change (yesterday was too late to remember that...) and the bins for 0.2.3.1028.

max-holz
31st December 2005, 14:54
i uploaded the assemblyinfo.cs to reflect the version change (yesterday was too late to remember that...) and the bins for 0.2.3.1028.
Anonimous cvs takes much time to update, could you post the assembly also here please?

Sharktooth
31st December 2005, 14:55
just change 0.2.3.1027 in 0.2.3.1028 in AssemblyInfo.cs :)
but yesterday was really too late to remember that...

Sharktooth
31st December 2005, 15:28
It was so late i forgot to do some things too...

CVS update: added the missing stuff...
0.2.3.1028 bins re-released

max-holz
31st December 2005, 16:05
A little request :)
Is it possible to download also the source code for any version as many other projects in sourceforge without use the cvs.

Ciao

Sharktooth
31st December 2005, 16:08
http://www.webalice.it/f.corriga/megui/MeGUI-src.CVS.0.2.3.1028.7z

max-holz
31st December 2005, 16:18
http://www.webalice.it/f.corriga/megui/MeGUI-src.CVS.0.2.3.1028.7z
Thanks

Mutant_Fruit
31st December 2005, 16:28
Everything within ***'s is going to be a groupbox. The numbers represent different tabs. I'm not sure i have everything placed in the most logical area (mostly because i don't know what they all the options do :p), so let me know.


General

**********************************
Mode
Bitrate
Keyframe interval
fourcc
**********************************

**********************************
Threads
**********************************

**********************************
AVC Level
AVC Profile
**********************************

**********************************
User Profile
**********************************

Macroblock - BFrames

**********************************
The existing Macroblock option block
**********************************

**********************************
Ref Frames
B Frames (number of bframes)
B Frame Options
RDO B Frames
B Frame Bias
B Frame mode
**********************************

M.E. - RateControl

**********************************
Chroma ME
Bidirectional ME
ME Algorithm
ME Range
**********************************

**********************************
Subpixel Refinement
Weighted Prediction
**********************************

**********************************
Existing Rate Control Block
**********************************

Quantisation

**********************************
Existing Quantisation options block
**********************************

**********************************
Trellis
No Fast P-Skip?
Cabac?
**********************************

**********************************
Quant Matrix selection
quant matrix file selection
**********************************

Misc

**********************************
Deblock filter
Alpha Deblock
Beta Deblock
SCD Sensitivity
Min GOP size
SA
PSNR Calc
Custom command line.
**********************************


EDIT: On an unrelated note.... once i make a change, how do i submit it? Is there a linky somewhere which explains the procedure for creating/submitting a patch?

Sharktooth
31st December 2005, 17:20
CVS Update: Cosmetics in CommandLineGenerator.cs

until the SF CVS doesnt update: http://www.webalice.it/f.corriga/megui/MeGUI-src.CVS.0.2.3.1028a.7z

EDIT: i've found some x264 settings are not ported for mencoder (brdo, nofastpskip, bime...). Since i've no practical experience with mencoder cli, can anyone check the docs and add them?

Sharktooth
31st December 2005, 18:10
CVS Update:
More cosmetics in commadlinegenerator.cs
Added --bime to the list for disabled option for 1st pass "Turbo" (x264)

Sources (until anonymous cvs updates): http://www.webalice.it/f.corriga/megui/MeGUI-src.CVS.0.2.3.1029.7z
Binaries are on SF.

foxyshadis
31st December 2005, 18:46
....
It's pretty nice, though I think SCD, GOP Size, Keyframe Interval, and B-frame Bias&Mode really belong in or near the Rate Control area. SAR I'd put with them except that it might be accessed a lot more often than the rest... Otherwise those are all "stream" options. And macroblock might make better sense going with Quantization, then the rest of b-frames would have to go somewhere... maybe the main page. That's all MHO, anyway, do with it as you will. :p

Mutant_Fruit
31st December 2005, 18:58
Could anyone give me a quick heads up on how i'm supposed to send in an updated file?

i.e. i've changed the x264config dialog, and now i want to send in those changes. I've never done this before and i don't want to do it wrong a screw something up.

@Foxy: Some of my layout was based on space constraints, but i'll considar your suggestions alright. In my opinion, i thought it was better to group all B frame options together as opposed to having some bframe options in one dialog, and more bframe options in a seperate dialog (such as bias and mode).

What do people think about that? Keep bframe options together in one section, or keep them seperated as is currently done?

If SAR is a frequent option, i could throw it in the "General" settings on the main page.

Sharktooth
31st December 2005, 19:06
@Mutant_Fruit: use the Patches Traking Sytem: http://sourceforge.net/tracker/?atid=798478&group_id=156112&func=browse
It would be better you post a final patch. In the meanwhile you can provide some work-in-progress binaries for testing.
Also, have you included the 0.2.3.1029 changes?

Mutant_Fruit
31st December 2005, 19:17
Also, have you included the 0.2.3.1029 changes?
Thats one of the things i was unsure about. Am i going to have to do a fresh CVS checkout, then apply my changes to those files, and then submit them hoping someone else doesn't submit in the meantime?

I assume by "patch" you mean just the changed file? Or do i need to run a special patch making program to create a "patch" file containing the difference between my changed file and the original CVS file which i then submit?

Sharktooth
31st December 2005, 19:24
get the sources from my web (i linked it above) coz the CVS may need some time to synch. with the last updates.
Once you're on it, apply your changes to the source you just got.

For what concerns the patching method you can choose whatever you think it's better.
I'm used to the posix tools (patch, diff etc.) but it really doesnt matter.

Mutant_Fruit
31st December 2005, 19:43
For work in progress, check out here (http://www.fileshack.us/files/741/Test1.rar).

I've implemented some help tooltips. Open the x264 config dialog and just hover over the text boxes etc. I'm currently in the middle of moving around the options and suchlike, but the stupid bug with VS that makes VS forget the events linked to controls when you cut and paste them is still there, so it'll take a while to move everything and relink them.

Sharktooth
31st December 2005, 19:49
nice stuff :)

Mutant_Fruit
31st December 2005, 20:34
Because i'm stupid and may not update the patch thingy correctly, here's (http://www.fileshack.us/files/741/0.2.3.1029.rar) the source for build 0.2.3.1030. It just adds context sensitive help to the last build done by sharktooth.

The restructure of the config screen is in the middle of being done. But it'll take another while.