PDA

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

Sharktooth
16th June 2008, 21:25
i was against dvd decrypter info file from the beginning even before this "problem".

@kurt: i dont have vista to test the NSIS UAC plugin.
about adaptive muxer, i think it was added for the newbies. however, ill see if i can fix it.
x264 zones, is the last thing to worry about... :)
oh... i made a small cleanup in x264configpanel (grouped aqstrenght change event in the general update event)... so ensure to do an update before committing anything new.

Kurtnoise
16th June 2008, 21:27
yes but DGindex is able also to extract audio streams from mpeg and/or vob files not decrypted from DVDDecrypter. So, we need to add the log preview from DGindex to include this case... :)

Sharktooth
16th June 2008, 21:34
yep. however i was editing my previous post while you were typing...

Underground78
16th June 2008, 23:09
it's correct. I'll add this.

So I assume that it's the same thing for the "Chroma M.E." checkbox, sorry for not reporting this at the same time than the others but I didn't see this at that moment ... :(

PS : Is reporting those "bugs" useful or are they too minor to be reported ?

Index: x264ConfigurationPanel.Designer.cs
===================================================================
--- x264ConfigurationPanel.Designer.cs (revision 529)
+++ x264ConfigurationPanel.Designer.cs (working copy)
@@ -665,6 +665,7 @@
this.x264ChromaMe.Size = new System.Drawing.Size(278, 23);
this.x264ChromaMe.TabIndex = 0;
this.x264ChromaMe.Text = "Chroma M.E.";
+ this.x264ChromaMe.CheckedChanged += new System.EventHandler(this.updateEvent);
//
// x264MERangeLabel
//

tre31
17th June 2008, 01:35
what about a minimize button on the preview?

yep that'll do it ;), or as an alternative have some way of configuring the Always on Top mode (via a checkbox in settings, or on the actual preview window itself, or in its window properties menu (right/left click top left corner) where you could have a tick indicating yes/no for always on top).

There's 3 options rather than none - which is what it is at present.

berrinam
17th June 2008, 01:40
I'm back from a long holiday, followed by moving city and getting caught up in Uni... So, sorry about leaving my things in a bit of a mess.

Anyway, I've obviously not kept up with megui development. What's happening at the moment? Is there something helpful I can do at the moment?

I've also now switched to Ubuntu as my main OS, and in the future it would be nice to run megui on that. Mono now claims to support all of WinForms 2.0. What's the status of your port, Sharktooth? EDIT: I see that actually, Mutant_Fruit has more recently been working on a mono port. My apologies.

I also see that Mutant_Fruit has posted in more detail about megui/mono problems, so my following comments are probably not very helpful...
I've tried running megui essentially as-is on mono, and it works except for the P/Invoke calls. However, it seems to fail the second time I run it. (Also, it has no knowledge of how to run avs2yuv, etc, under wine, so it doesn't actually do anything yet.)

berrinam
17th June 2008, 03:53
I'm not sure what you've done/decided about and I don't want to intrude, but what I was planning when I was working on it before was to move the zones config outside the x264 config: I assume that zones are used for credits/ads, and and are thus source-specific. It doesn't make sense to keep the together with x264 profiles which you could potentially reuse for every encode.

Sharktooth
17th June 2008, 04:00
So I assume that it's the same thing for the "Chroma M.E." checkbox, sorry for not reporting this at the same time than the others but I didn't see this at that moment ... :(

PS : Is reporting those "bugs" useful or are they too minor to be reported ?

Index: x264ConfigurationPanel.Designer.cs
===================================================================
--- x264ConfigurationPanel.Designer.cs (revision 529)
+++ x264ConfigurationPanel.Designer.cs (working copy)
@@ -665,6 +665,7 @@
this.x264ChromaMe.Size = new System.Drawing.Size(278, 23);
this.x264ChromaMe.TabIndex = 0;
this.x264ChromaMe.Text = "Chroma M.E.";
+ this.x264ChromaMe.CheckedChanged += new System.EventHandler(this.updateEvent);
//
// x264MERangeLabel
//

Thanks for reporting, and yes, it's really appreciated. I'll fix it asap.

@berrinam: welcome back :)
development has slown down a bit coz both kurt and i had some priorities. however, we made some bugfixes and new bugs appeared... as usual :)
0.3.x is useable but still there are minor problems. mutant fruit did some nice work on the *nix compatibility side, but it's still a work in progress and he's busy right now.
feel free to propose changes and additions for the next 0.4 version. 0.3 needs just some work on stabilization and if you want to help, it would be really appreciated.
here's the situation:
- adaptive muxer is not working (there's a problem with muxpaths)
- there's the need to add support for dgindex 1.5 final (have a look at the last 5 or 6 pages of this thread)
- zones for x264 are missing, but if you want to move them outside the codec config, then some work is needed
- bugs, bugs, bugs... have a look at the bugtracker.

i think once those things are fixed and working, we can release 0.3 and move on. for 0.4 we should sit on a table and do some serious planning, so we can "work" better.
have a read at the post i made some time ago: https://forum.doom9.org/showthread.php?p=1135925#post1135925
feel free to open a discussion... the same for the other devs.

alcatron
17th June 2008, 06:49
Just had a question in regards to future megui development, will megui support encoding via graphics cards? Eg. new graphics cards coming out from nvidia and utilizing maybe the graphic card power and CPU power..

Thanks

berrinam
17th June 2008, 06:52
I had a quick look at the adaptive muxer, to reproduce the bug reported here (http://sourceforge.net/tracker/index.php?func=detail&aid=1945737&group_id=156112&atid=798476). Here is a patch which fixes that specific problem:
Index: packages/reader/mediainfo/MediaInfoFile.cs
===================================================================
--- packages/reader/mediainfo/MediaInfoFile.cs (revision 529)
+++ packages/reader/mediainfo/MediaInfoFile.cs (working copy)
@@ -257,9 +257,9 @@
MediaInfoWrapper.VideoTrack track = info.Video[0];
checked
{
- ulong width = (ulong)easyParseInt(track.Width);
- ulong height = (ulong)easyParseInt(track.Height);
- ulong frameCount = (ulong)easyParseInt(track.FrameCount);
+ ulong width = (ulong)easyParseInt(track.Width).Value;
+ ulong height = (ulong)easyParseInt(track.Height).Value;
+ ulong frameCount = (ulong)(easyParseInt(track.FrameCount) ?? 0);
double fps = (easyParseDouble(track.FrameRate) ?? 25.0);
vCodec = getVideoCodec(track.Codec);
vType = getVideoType(vCodec, cType, file);
@@ -274,7 +274,7 @@
}

#region methods
- private static int easyParseInt(string value)
+ private static int? easyParseInt(string value)
{
try
{
@@ -282,7 +282,7 @@
}
catch (Exception)
{
- return -1;
+ return null;
}
}



It fixes that specific problem. Are there others?

The problem (as has happened before) comes from the fragile framework in MeGUI for information about sources; it was failing because the information provided was incomplete, which it can't handle. In future we need to make the framework handle missing information better (eg with nullable types) but hopefully my change doesn't break anything by allowing framecounts of 0 to be introduced.

berrinam
17th June 2008, 06:54
@alcatron: MeGUI is only a frontend and can only supply graphics card encoding when the backend tools provide it. Currently, they don't, so the answer is no.

Kurtnoise
17th June 2008, 07:49
i dont have vista to test the NSIS UAC plugin.
No need to have Vista to test it...:p I already tested it (not with megui installer though) and it works great. I'll add it this weekend. But if you want some details, I can give you some hints...
Download the last package where I pointed the link.
Put UAC.dll in your NSIS plugins folder.
Put UAC.nsh in your NSIS include folder.
Add several lines to the script (that's the main task but there are some examples in the package [UAC_RealWorldFullyLoadedDualModeExample]).
Compile & Test it.


@berrinam : glad you're back...:cool: There are also several bugs reported in the SF bugstracker. If you have some time, just look them. Your patch for the adaptive muxer looks ok...I'll test it tonight.

berrinam
17th June 2008, 09:07
This adds zones support back, in the main window. I've attempted to do the minimum changes simply to get it working:

http://www.box.net/shared/97swopctcg

toytown
17th June 2008, 13:47
There still seems to be a bug whereby on Vista, Megui is assuming the install path is c:\program files (x86)\megui. Therefore when you start megui it tells you a new version is available and you download it, restart and your still on the previous version and you get the popup again telling you to upgrade.

To fix it i manually copy megui.exe from c:\program files (x86)\megui to the proper location.

EDIT - Still has bug in Vista, whereby when you click file open or ... box after enqueuing a encode, the application will freeze, workaround is to enqueue 1 movie, restart megui and enqueue next and so on and so. Then encode. Does this on Vista32 and Vista64

Underground78
17th June 2008, 14:05
Hello,

I think something broke the "Quantizer Matrices choice" default size in rev. 530 :

http://www.imagehosting.com/out.php/i1793448_before.gif

Moreover I've seen that the caption text wasn't displayed because it was erased when the selected profil wasn't "High Profil". I've changed this to always display the text, maybe I'm wrong but it seems more logical to me ... Now it looks like this :

http://www.imagehosting.com/out.php/i1793460_after.gif

Index: x264ConfigurationPanel.cs
===================================================================
--- x264ConfigurationPanel.cs (revision 531)
+++ x264ConfigurationPanel.cs (working copy)
@@ -749,7 +749,6 @@
x264NumberOfBFrames.Enabled = false;
x264NumberOfRefFramesLabel.Enabled = false;
cqmComboBox1.SelectedIndex = 0;
- quantizerMatrixGroupbox.Text = "";
quantizerMatrixGroupbox.Enabled = false;
x264LosslessMode.Checked = false;
x264LosslessMode.Enabled = false;
@@ -759,7 +758,6 @@
x264NumberOfBFrames.Enabled = true;
x264NumberOfRefFramesLabel.Enabled = true;
cqmComboBox1.SelectedIndex = 0;
- quantizerMatrixGroupbox.Text = "";
quantizerMatrixGroupbox.Enabled = false;
x264LosslessMode.Checked = false;
x264LosslessMode.Enabled = false;
Index: x264ConfigurationPanel.Designer.cs
===================================================================
--- x264ConfigurationPanel.Designer.cs (revision 531)
+++ x264ConfigurationPanel.Designer.cs (working copy)
@@ -1496,13 +1496,13 @@
this.cqmComboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cqmComboBox1.Filter = "Quantizer matrix files (*.cfg)|*.cfg|All Files (*.*)|*.*";
- this.cqmComboBox1.Location = new System.Drawing.Point(6, 19);
+ this.cqmComboBox1.Location = new System.Drawing.Point(12, 19);
this.cqmComboBox1.MaximumSize = new System.Drawing.Size(1000, 29);
this.cqmComboBox1.MinimumSize = new System.Drawing.Size(64, 29);
this.cqmComboBox1.Name = "cqmComboBox1";
this.cqmComboBox1.SelectedIndex = -1;
this.cqmComboBox1.SelectedItem = null;
- this.cqmComboBox1.Size = new System.Drawing.Size(348, 29);
+ this.cqmComboBox1.Size = new System.Drawing.Size(300, 29);
this.cqmComboBox1.TabIndex = 5;
this.cqmComboBox1.SelectionChanged += new MeGUI.StringChanged(this.cqmComboBox1_SelectionChanged);
//

Sharktooth
17th June 2008, 14:46
vs2008 designer weirdness... fixed

@berrinam: the adaptive muxer fix seems to work. committed. if there are no complaints i will port it to the stable version too.

@devs: sorry for the fast bins updates, but i want to have an "useable" 0.3 version out for ppl running 0.3.0.1004...

donnyj
17th June 2008, 21:35
The preview video window is set too "Always on top" as its window property making it pretty much useless as you have too move it out of the screen too see the script creator behind it. Tiny error (obviously you forgot too set the window properties) but it does affect usability.

I didn't close the preview window and then when I hit autoencode, that window opened behind the preview window. I could not close the preview and couldn't bring autoencode to the front. After some sweating (didn't want to test out queue saving after setting up several jobs), I managed to close the autoencode window, then the preview window.

donnyj
17th June 2008, 21:43
I just queued up 50 jobs.... no changes to workers, etc. when I hit start... three of the seven "sets" of jobs started in parallel at once. To make things worse, there is no way (that I could see) of telling which running job was which... IMHO, the status window should at least show a job number.... thanks

Kurtnoise
17th June 2008, 22:21
your comments will be ignored...:stupid:

berrinam
18th June 2008, 04:25
There's many things I want to do in MeGUI, but we all only have limited time. However, some general comments:
The ITool setup generally seems quite easy to handle. Especially the completely independent tools like the AVS Cutter, D2V creator, seem to work well in the tools menu, since their code can basically be kept separate. Ideally, I would like to extend this to genuine runtime plugin support, but that's probably a waste of time in the short term.

However, the main aspect of MeGUI which doesn't fit well with the ITool system is the Audio/VideoEncodingComponent which sit in the main form. I see no reason for them to do so. I believe it also makes the code more interdependent, and hence more complicated. I would like to move these two things of the main form and into their own tools.
It's always nice to add some more external tools, like VC-1, vfw support, ProjectX, ffmpeg, etc. The ease of doing this relies largely on the abovementioned pluggability; not just the ITool system, but also other interfaces like IVideoEncoder and perhaps in future, ISourcePreparer (for DGMPGDec/DGAVCDec/ProjectX)
On a similar point, MeGUI is (somewhat understandably) unintuitive for novices, since a typical manual workflow would look like this:
Decrypt DVD with some external tool
MeGUI's D2V Creator
Avisynth creator
AutoEncode.
In some cases, the Oneclicker can be set up with a small effort, but in other cases it can't (eg commercial skipping, more fine control, etc). There should be some tool which allows the user to select their input file(s), and the steps in the encoding chain are graphically laid out (maybe like R4R) with the user able to choose which are done automatically, manually, or not at all, if applicable. This is still complicated, but it should not be unintuitive; a smart novice should be able to use it.
Queued jobs should be fully editable.
I've been considering the idea of "future files". For instance, if you want to encode some files then mux them, then you have two choices: run the encoder jobs, wait a few hours, then come back and queue and run the mux job; or use the AutoEncoder, which was originally designed specifically for this purpose.

With future files, when you queue a job — say, one which produces a file called out.264 — MeGUI creates a small placeholder file in the output's location. This file has information about which job is going to make it, what kind of file it will be, etc. So, now that you have queued but not run your video encoding job, you can queue the mux job, because the file is already there, and the muxer knows how to handle it. This does what AutoEncode does, but (hopefully) without all the hoops AutoEncode/OneClick jump through to manipulate filenames which do not yet exist. It also then becomes apparent when two queued jobs will produce the same output, and you don't get back to your computer to find that the second job has not started, because MeGUI is asking you "do you want to overwrite this file?".
It would be nice to clean up a lot of the code.

rebkell
18th June 2008, 05:10
:thanks: Sounds great.

Sharktooth
18th June 2008, 14:29
VFW cant be taken into consideration. it will be a problem for linux compatibility. about VC1, i thought at it a while ago, but my conclusion was "it's not worth the time". we already have x264, a better performing codec that is also compatible with the media supports and flash for streaming. VC1 is just M$ stuff...
Future files is a great idea. I'd suggest to use a new approach for output file management for every tool though. The files could be stored in a temp dir (maybe system/user temp folder), inside a subfolder named using the parent job name and timestamp. The intermediate jobs output files should be always named videoN.ext or audioN.ext (where N is the track number). after all the jobs are done the resulting file could be moved to the user desired location. doing this way we can avoid a lot of problems running parallel jobs.

-OT-
use linux Mint instead of Ubuntu.

Kurtnoise
18th June 2008, 21:02
Here is a patch to put "Always on Top" (or not) the Video Preview via the Settings (asked from here (http://forum.doom9.org/showthread.php?p=1150167#post1150167)) :

Index: core/details/MeGUISettings.cs
===================================================================
--- core/details/MeGUISettings.cs (revision 538)
+++ core/details/MeGUISettings.cs (working copy)
@@ -18,7 +18,7 @@
defaultLanguage1, defaultLanguage2, afterEncodingCommand;
private bool recalculateMainMovieBitrate, autoForceFilm, autoStartQueue, enableMP3inMP4, autoOpenScript,
overwriteStats, keep2of3passOutput, deleteCompletedJobs, autoSetNbThreads, deleteIntermediateFiles,
- deleteAbortedOutput, openProgressWindow, useadvancedtooltips, freshOggEnc2, autoscroll;
+ deleteAbortedOutput, openProgressWindow, useadvancedtooltips, freshOggEnc2, autoscroll, alwaysOnTop;
private ulong audioSamplesPerUpdate;
private AfterEncoding afterEncoding;
private decimal forceFilmThreshold, acceptableFPSError;
@@ -86,6 +86,7 @@
videoExtension = "";
audioExtension = "";
safeProfileAlteration = false;
+ alwaysOnTop = false;
}
#region properties
public string YadifPath
@@ -174,6 +175,14 @@
get { return useadvancedtooltips; }
set { useadvancedtooltips = value; }
}
+ ///<summary>
+ /// gets / sets whether megui puts the Video Preview Form "Always on Top" or not
+ /// </summary>
+ public bool AlwaysOnTop
+ {
+ get { return alwaysOnTop; }
+ set { alwaysOnTop = value; }
+ }

/// <summary>
/// path of besplit.exe
Index: core/gui/SettingsForm.cs
===================================================================
--- core/gui/SettingsForm.cs (revision 538)
+++ core/gui/SettingsForm.cs (working copy)
@@ -144,6 +144,8 @@
private TextBox tbAften;
private Label lbAften;
private Button selectAftenExecutableButton;
+ private GroupBox gbVideoPreview;
+ private CheckBox chAlwaysOnTop;
/// <summary>
/// Required designer variable.
/// </summary>
@@ -310,6 +312,8 @@
this.nbPassesLabel = new System.Windows.Forms.Label();
this.nbPasses = new System.Windows.Forms.NumericUpDown();
this.helpButton1 = new MeGUI.core.gui.HelpButton();
+ this.gbVideoPreview = new System.Windows.Forms.GroupBox();
+ this.chAlwaysOnTop = new System.Windows.Forms.CheckBox();
groupBox1 = new System.Windows.Forms.GroupBox();
groupBox1.SuspendLayout();
this.otherGroupBox.SuspendLayout();
@@ -333,6 +337,7 @@
this.tabPage6.SuspendLayout();
this.tabPage7.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nbPasses)).BeginInit();
+ this.gbVideoPreview.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
@@ -741,6 +746,7 @@
//
// tabPage3
//
+ this.tabPage3.Controls.Add(this.gbVideoPreview);
this.tabPage3.Controls.Add(groupBox1);
this.tabPage3.Controls.Add(this.autoUpdateGroupBox);
this.tabPage3.Controls.Add(this.outputExtensions);
@@ -760,7 +766,7 @@
this.autoUpdateGroupBox.Controls.Add(this.useAutoUpdateCheckbox);
this.autoUpdateGroupBox.Location = new System.Drawing.Point(227, 82);
this.autoUpdateGroupBox.Name = "autoUpdateGroupBox";
- this.autoUpdateGroupBox.Size = new System.Drawing.Size(240, 203);
+ this.autoUpdateGroupBox.Size = new System.Drawing.Size(240, 139);
this.autoUpdateGroupBox.TabIndex = 3;
this.autoUpdateGroupBox.TabStop = false;
this.autoUpdateGroupBox.Text = "Auto Update";
@@ -1664,6 +1670,26 @@
this.helpButton1.Size = new System.Drawing.Size(47, 23);
this.helpButton1.TabIndex = 1;
//
+ // gbVideoPreview
+ //
+ this.gbVideoPreview.Controls.Add(this.chAlwaysOnTop);
+ this.gbVideoPreview.Location = new System.Drawing.Point(228, 228);
+ this.gbVideoPreview.Name = "gbVideoPreview";
+ this.gbVideoPreview.Size = new System.Drawing.Size(239, 62);
+ this.gbVideoPreview.TabIndex = 4;
+ this.gbVideoPreview.TabStop = false;
+ this.gbVideoPreview.Text = "Video Preview";
+ //
+ // chAlwaysOnTop
+ //
+ this.chAlwaysOnTop.AutoSize = true;
+ this.chAlwaysOnTop.Location = new System.Drawing.Point(8, 21);
+ this.chAlwaysOnTop.Name = "chAlwaysOnTop";
+ this.chAlwaysOnTop.Size = new System.Drawing.Size(169, 17);
+ this.chAlwaysOnTop.TabIndex = 0;
+ this.chAlwaysOnTop.Text = "Set the Form \"Always on Top\"";
+ this.chAlwaysOnTop.UseVisualStyleBackColor = true;
+ //
// SettingsForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
@@ -1712,6 +1738,8 @@
this.tabPage7.ResumeLayout(false);
this.tabPage7.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nbPasses)).EndInit();
+ this.gbVideoPreview.ResumeLayout(false);
+ this.gbVideoPreview.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();

@@ -2008,6 +2036,7 @@
settings.FFMpegPath = textBox7.Text;
settings.AftenPath = tbAften.Text;
settings.AedSettings = this.autoEncodeDefaults;
+ settings.AlwaysOnTop = chAlwaysOnTop.Checked;
return settings;
}
set
@@ -2066,6 +2095,7 @@
textBox7.Text = settings.FFMpegPath;
tbAften.Text = settings.AftenPath;
this.autoEncodeDefaults = settings.AedSettings;
+ chAlwaysOnTop.Checked = settings.AlwaysOnTop;
}
}
#endregion
Index: core/gui/VideoPlayer.cs
===================================================================
--- core/gui/VideoPlayer.cs (revision 538)
+++ core/gui/VideoPlayer.cs (working copy)
@@ -643,7 +643,6 @@
this.Name = "VideoPlayer";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.Text = "VideoPlayer";
- this.TopMost = true;
((System.ComponentModel.ISupportInitialize)(this.videoPreview)).EndInit();
this.previewGroupbox.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.positionSlider)).EndInit();
Index: packages/AviSynthWindow.cs
===================================================================
--- packages/AviSynthWindow.cs (revision 538)
+++ packages/AviSynthWindow.cs (working copy)
@@ -1441,6 +1441,7 @@
player.Show();
reader = player.Reader;
sendCropValues();
+ if (mainForm.Settings.AlwaysOnTop) player.TopMost = true;
return true;
}
else

Kurtnoise
18th June 2008, 21:05
About future idea : I'm against to include the VFW interface too...:D I see none advantages to use this nowadays.

btw, I've some plans to add new things but I prefer to wait for the moment. :)

Ajax_Undone
18th June 2008, 23:18
Well not to sound for or against the Idea of vfw but I think that some people would still like the idea of direct interaction with the codec via a GUI rather then a CLI...

Sharktooth
19th June 2008, 03:51
vfw is a windows specific framework. since we planned a megui port for linux, vfw cant be integrated.
also it would require a huge rewrite of the codebase and a rework of the workflow.
way too much effort for a small and problematic gain.

berrinam
19th June 2008, 06:18
You may be right about vfw, but I'm not entirely sure. I agree, certainly not in the short term.

However, I at one stage looked into supporting vfw via the command-line tool avs2avi. Combining that with PInvoke to launch codec config shouldn't be too hard, and it wouldn't break linux compatibility if we were able to provide it in a plugin: linux users just wouldn't install the plugin.

But I agree that many things have higher priorities. I was just trying to say that with the right structure, many tools can be added with relatively little fuss.

Sharktooth
19th June 2008, 14:02
the avs2avi solution is indeed an easier way.

berrinam
19th June 2008, 14:56
According to doom9kumi's comment on this bug (http://sourceforge.net/tracker/index.php?func=detail&aid=1868857&group_id=156112&atid=798476), this should tell mkvmerge to read the AR info from the bitstream. It appears to work for me. Is there a reason that we wouldn't want this switch enabled?
Index: packages/mux/mkv/MkvMergeMuxer.cs
===================================================================
--- packages/mux/mkv/MkvMergeMuxer.cs (revision 543)
+++ packages/mux/mkv/MkvMergeMuxer.cs (working copy)
@@ -75,6 +75,8 @@

if (settings.DAR.HasValue)
sb.Append(" --aspect-ratio 0:" + settings.DAR.Value.X + "/" + settings.DAR.Value.Y);
+ else
+ sb.Append(" --engage keep_bitstream_ar_info");

if (settings.VideoName.Length > 0)
sb.Append(" --track-name \"0:" + settings.VideoName + "\"");

berrinam
19th June 2008, 15:11
Here is a patch to put "Always on Top" (or not) the Video Preview via the Settings (asked from here (http://forum.doom9.org/showthread.php?p=1150167#post1150167)) :


I've tested it and it seems fine for the AVS creator. However, did you intentionally not do anything to previews in the main window's videoencodingcomponent?

Underground78
19th June 2008, 16:17
Hello,

Just a little not very interesting fix : there was an inversion in the context help for min quantizer and for max quantizer in x264 control panel if I am not mistaken ...

Index: ContextHelp.xml
===================================================================
--- ContextHelp.xml (revision 544)
+++ ContextHelp.xml (working copy)
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<ContextHelp version="0.4" Author="Kurtnoise" LastUpdated="11-05-08">
+<ContextHelp version="0.4" Author="Kurtnoise" LastUpdated="19-06-08">
<Codec name="x264">
<!--To Do List:
1 Use info from x264 help - DONE
@@ -165,16 +165,16 @@
</crf>
<qpmin name="Minimum Quantizer">
<Advanced>
-Enforces a minimum Quantizer. Prevents the codec from outputting frames with too much compression,
-causing reduced quality. Note: This is disregarded in Constant Quality or Quality Based VBR modes.</Advanced>
+Enforces a minimum Quantizer. Prevents the codec from outputting frames with too little
+compression, wasting bits. Note: This is disregarded in Constant Quality or Quality Based VBR modes.</Advanced>
<Basic>Set minimum Quantizer factor.</Basic>
<Recommended>10</Recommended>
<Default>10</Default>
</qpmin>
<qpmax name="Maximum Quantizer">
<Advanced>
-Enforces a maximum Quantizer. Prevents the codec from outputting frames with too little
-compression, wasting bits. Note: This is disregarded in Constant Quality or Quality Based VBR modes.</Advanced>
+Enforces a maximum Quantizer. Prevents the codec from outputting frames with too much compression,
+causing reduced quality. Note: This is disregarded in Constant Quality or Quality Based VBR modes.</Advanced>
<Basic>Set maximum Quantizer factor.</Basic>
<Recommended>51</Recommended>
<Default>51</Default>

Kurtnoise
19th June 2008, 21:40
this should tell mkvmerge to read the AR info from the bitstream. It appears to work for me. Is there a reason that we wouldn't want this switch enabled?
due to limited free time, this hasn't been implemented I think...

did you intentionally not do anything to previews in the main window's videoencodingcomponent?
nope...a missing part of my side. :) I'll add this tomorrow probably, if no one object.


Just a little not very interesting fix : there was an inversion in the context help for min quantizer and for max quantizer in x264 control panel if I am not mistaken ...
all sort of patches are always welcome...;) I'll fix it later if someone else doesn't applied the patch first.

berrinam
19th June 2008, 23:50
due to limited free time, this hasn't been implemented I think...

I meant, is it ok to commit with it always enabled, or should we put it into a settings option?

Kurtnoise
20th June 2008, 07:46
well...I vote to have it always enabled (not as a settings option).

berrinam
20th June 2008, 08:08
Committed.

berrinam
20th June 2008, 10:30
I wonder if we should sometime reorganise the SVN folder structure to look more like this:

|megui
|--|trunk
|--|--files...
|--|tags
|--|--|0_2_x_x
|--|--...
|--|branches
|--|--...
|updatecopier
|--|trunk
|--|--files...
|MediaInfoWrapper
|--|trunk
|--|--files...
|MessageBoxExLib
|--|trunk
|--|--files...
...

instead of how it currently looks, which is


|trunk
|--|megui
|--|--files..
|--|updatecopier
|--|--files...
|--|MediaInfoWrapper
|--|--files...
|--...
|tags
|--|0_2_x_x
|--|--|megui
|--|--|updatecopier
|--|--|MediaInfoWrapper
...


because at the moment, all the smaller projects -- which have no dependence on megui -- are copied into every tag/branch, although the code is the same.

Unfortunately, megui depends on two of these subprojects through a dll, so to compile megui, you have to first compile MediaInfoWrapper and MessageBoxExLib, and then copy the dlls into the megui folder.

The rest, however, are only *.exe file dependencies like x264, so there should be no dependency problems for them: autoupdate is sufficient.

Kurtnoise
20th June 2008, 11:40
I'm totally agreed with that...:D

Sharktooth
20th June 2008, 16:16
me too. it just needs a small update to the compile.bat files to have the dlls in the right folders.

Sharktooth
20th June 2008, 16:52
stable:0.2.6.1048
- (berrinam) Fix #1939862 ("Number of Passes" Setting Ignored)
- (berrinam) Fix for #1945737 (Error message with Adaptive Muxer)
- (berrinam) Fix #1996457 (preview and autoencode window priorities): opening AutoEncode closes preview window.
- (berrinam) Fix #1996499 (re-open original video player button glitch)
dev:0.3.0.1009 (includes the fixes and additions up to ver. 0.2.6.1048)
- (kurtnoise) updated project files
- (kurtnoise) moved Avc2AviMuxer.cs in the mux folder.
- (kurtnoise) added an option in the Settings to set up the video preview always on top or not.
- (kurtnoise) fixed a stupid copy & paste, spotted by Underground78.
- (kurtnoise) added manifest files for the x86 & x64 platforms.
- (berrinam) Add "--engage keep_bitstream_ar_info" to mkvmerge commandline so that muxed mkv files have same AR as source.
- (kurtnoise) added x86 and x64 target platforms for the file project.
- (kurtnoise) [VideoUtil] added a function to get basic information about a video source based on its DGindex generated log file. Useful to use the last DGindex release...
- (berrinam) [AVSCutter] Reenabled "Remove" button

Kurtnoise
20th June 2008, 18:16
@berrinam : is it thread safe to use this function ? (I need it to create the DGindex logfile)

Index: packages/tools/d2vcreator/VobinputWindow.cs
===================================================================
--- packages/tools/d2vcreator/VobinputWindow.cs (revision 553)
+++ packages/tools/d2vcreator/VobinputWindow.cs (working copy)
@@ -462,7 +462,8 @@
{
openVideo(openIFODialog.FileName);
projectName.Text = Path.ChangeExtension(openIFODialog.FileName, ".d2v");
- checkIndexIO();
+ CreateDGindexLogFile(openIFODialog.FileName);
+ checkIndexIO();
}
}
}
@@ -493,6 +494,24 @@
}
demuxSelectedTracks.Checked = !demuxAllTracks.Checked;
}
+
+ private void CreateDGindexLogFile(string fileName)
+ {
+ StringBuilder sb = new StringBuilder();
+ System.Diagnostics.Process process1;
+ process1 = new System.Diagnostics.Process();
+
+ //Do not receive an event when the process exits.
+ process1.EnableRaisingEvents = false;
+
+ if (mainForm.Settings.DgIndexPath != "")
+ {
+ sb.Append(" -SD=< -AIF=<" + fileName +"< -OF=<" + Path.ChangeExtension(fileName, ".log") +"< -preview -minimize -exit");
+ System.Diagnostics.Process.Start(mainForm.Settings.DgIndexPath, sb.ToString());
+ }
+ process1.Close();
+ }
+
/// <summary>
/// creates a dgindex project
/// </summary>


If you have a better idea, let me know...:)

berrinam
21st June 2008, 16:04
I don't think that function actually works. You could try this:
private void CreateDGindexLogFile(string fileName)
{
StringBuilder sb = new StringBuilder();
System.Diagnostics.Process process1;

if (mainForm.Settings.DgIndexPath != "")
{
sb.Append(" -SD=< -AIF=<" + fileName +"< -OF=<" + Path.ChangeExtension(fileName, ".log") +"< -preview -minimize -exit");
process1 = System.Diagnostics.Process.Start(mainForm.Settings.DgIndexPath, sb.ToString());
//Do not receive an event when the process exits.
process1.EnableRaisingEvents = false;

Thread.Sleep(2000);
process1.CloseMainWindow();
}
}

This waits 2s for DGIndex to open and run, and then calls CloseMainWindow, which should hopefully tell DGIndex to clean up after itself. If that's not required, just use Kill. Close() doesn't actually kill the process afaik.

There are two main problems with the approach I suggested: it relies on DGIndex loading in 2s; and the GUI will be a little unresponsive for 2s. The first could perhaps be fixed by a better waiting algorithm: perhaps something which waits 2s for DGIndex to load, then checks every 200ms if (process1.MainWindowHandle != IntPtr.Zero), in which case kill DGIndex; if it hasn't loaded in 10s, give up. The second problem could be addressed by running the whole thing in a separate thread; I don't know whether this solution is relevant because I'm not sure what you need DGIndex to run for; at the moment, nothing seems to be using its output.

I hope that helps.

Kurtnoise
21st June 2008, 16:50
well...the logfile is created as well using my function. I wasn't sure about the safety of the running thread. That's why I asked. I'll replace Close() by CloseMainWindow() then if it's more safer. Therefore, I'm not sure that Thread.Sleep(...) is required in your case.

and yes, for the moment nothing uses its output because some parts haven't been committed yet. ;) The last DGindex requires track IDs from now instead of track numbers to demux some audio streams. I started something with the DVDDecrypter file info (which gives also these track IDs) but this implies that we have always this file somewhere. However, this tool beeing dead, some people use some others things to decrypt their DVDs. That's why we need to create the logfile from DGindex first and load these track IDs if we want to use the last DGindex release correctly.

The function to parse the logfile is already in the code...

All in all, It was not my idea to change the DGindex release. :p I'm more interested by the creation of an IFO parser but you know...

berrinam
21st June 2008, 16:58
Well, if all we can present to the user is the (uninformative) "Track 1", "Track 2", ..., would a better solution be simply to only provide "don't demux audio" and "demux all audio tracks", i.e. don't give any track selection?

As far as the Thread.Sleep goes, I haven't tried omitting it, but I thought that CloseMainWindow() would just fail, since the main window hasn't opened, and then DGIndex will continue running and MeGUI won't try CloseMainWindow again...

berrinam
22nd June 2008, 04:04
Is there a x64 build of MeGUI somewhere? Because this bug (https://sourceforge.net/tracker/index.php?func=detail&aid=1999136&group_id=156112&atid=798476) claims the problems is that MeGUI was built targetting x64. I thought all our builds were for x86.

berrinam
22nd June 2008, 04:42
What's the status of this bug (https://sourceforge.net/tracker/index.php?func=detail&aid=1858101&group_id=156112&atid=798476)? The OP claims that when "Automatically set number of threads" is set, the xvid commandline has "-threads 1". However, I just tested and it clearly has "-threads 0", which I have verified does actually cause xvid to auto-set the threadcount. However, I can't see any bugfixes in the log which would have changed "-threads 1" to "-threads 0", so it seems like the OP was just wrong. Shall I close it?

berrinam
22nd June 2008, 05:03
I think 0.3.x.x is getting quite stable now. Most of the bugs on the SF tracker are either fixed or can't be reproduced.

As there are a number of small features in the feature request tracker that I'd like to implement, I would like to tag 0.3.x.x now and -- after the new DGIndex code and my zones code is committed -- only commit bug fixes. Also, I think we should put 0.3.x.x on the stable autoupdate servers.

berrinam
22nd June 2008, 05:27
I've always considered the code in the bitrate calculator tool which changes the main form's video config's bitrate to be quite annoying. I propose that we no longer let the bitrate calculator change the bitrate of the main form's video config; if someone wants to encode to a specific target size, they already can use the autoencode tool to do that.

arrirc
22nd June 2008, 07:20
I would like to install the development version as the last stable version is not working. But I can not compile from source, so could someone please post a link to the development version compiled for Windows XP SP2 32 bit?

Kurtnoise
22nd June 2008, 10:15
Well, if all we can present to the user is the (uninformative) "Track 1", "Track 2", ..., would a better solution be simply to only provide "don't demux audio" and "demux all audio tracks", i.e. don't give any track selection?
as developper, that will be the easier solution but in the other hand as end user point of view, that could be seen as a feature regression...:)

Kurtnoise
22nd June 2008, 10:18
Is there a x64 build of MeGUI somewhere? Because this bug (https://sourceforge.net/tracker/index.php?func=detail&aid=1999136&group_id=156112&atid=798476) claims the problems is that MeGUI was built targetting x64. I thought all our builds were for x86.
using 2008 project file with "Any CPU" release config, the result it's targeted as x64 (see this post (http://forum.doom9.org/showthread.php?p=1146071#post1146071)). That's why I created some different target platforms.

Kurtnoise
22nd June 2008, 10:19
What's the status of this bug (https://sourceforge.net/tracker/index.php?func=detail&aid=1858101&group_id=156112&atid=798476)? The OP claims that when "Automatically set number of threads" is set, the xvid commandline has "-threads 1". However, I just tested and it clearly has "-threads 0", which I have verified does actually cause xvid to auto-set the threadcount. However, I can't see any bugfixes in the log which would have changed "-threads 1" to "-threads 0", so it seems like the OP was just wrong. Shall I close it?
I think yes...

stax76
22nd June 2008, 10:24
In StaxRip I demux all, there was only one request in 7 years to give control over this but it don't fit into StaxRip's philosophy (do what's practical automatically). It's however possible to read the language in the IFO file (assuming it was ripped without stream processing (normal case)) using MediaInfo, StaxRip does this to rename the audio files with a much better name:

VTS_01_1 01 en-English 3_2ch 384Kbps DELAY -192ms.ac3
VTS_01_1 02 de-German 3_2ch 384Kbps DELAY -192ms.ac3
VTS_01_1 03 hu-Hungarian 3_2ch 384Kbps DELAY -192ms.ac3
VTS_01_1 04 en-English Director's comments 2_0ch 192Kbps DELAY -128ms.ac3

check
22nd June 2008, 14:26
Would you guys like me to setup a Trac install or something for the MeGUI project? Personally, I am not a fan of the sourceforge tools at all, and prefer most alternatives to them. If you'd like something like Trac or Bugzilla setup, please just ask.

arrirc
22nd June 2008, 18:30
I would like to install the development version as the last stable version is not working. But I can not compile from source, so could someone please post a link to the development version compiled for Windows XP SP2 32 bit?

Any help please?

The latest stable version seems to having issues with .NET....:confused:

Maccara
22nd June 2008, 18:46
Any help please?

The latest stable version seems to having issues with .NET....:confused:

If you have .net sdk installed but can't compile from sources, you can fix this also by using corflags to force 32bit execution (or uninstall 64bit framework).

Like so: F:\Program Files\Microsoft.NET\SDK\v2.0 64bit\Bin\corflags.exe /32BIT+ megui.exe

This will change the clr header for the exe.

BiO-HaZaRd
22nd June 2008, 22:27
Wich version of megui is the last stable one? cause in the sourceforge page theres only the 0.2.6.1046 one, and sice i updated tu the 1048 i'm having really weird problems...

Shoud i just not update to that version?

arrirc
22nd June 2008, 22:45
If you have .net sdk installed but can't compile from sources, you can fix this also by using corflags to force 32bit execution (or uninstall 64bit framework).

Like so: F:\Program Files\Microsoft.NET\SDK\v2.0 64bit\Bin\corflags.exe /32BIT+ megui.exe

This will change the clr header for the exe.

Sorry but I have no idea how to compile...I'm not a programmer.

berrinam
23rd June 2008, 01:35
@arrirc, Maccara, BiO-HaZaRd: please take your discussion to the MeGUI troubleshooting thread. This thread is about MeGUI development.

berrinam
23rd June 2008, 01:39
Would you guys like me to setup a Trac install or something for the MeGUI project? Personally, I am not a fan of the sourceforge tools at all, and prefer most alternatives to them. If you'd like something like Trac or Bugzilla setup, please just ask.

I've had no experience with Trac or Bugzilla, so I don't know. I have seen Trac used on a number of sites, though, and it looks quite nice... it's got some kind of wiki integration as well, doesn't it?

berrinam
23rd June 2008, 01:43
I think yes...Done.

berrinam
23rd June 2008, 01:45
as developper, that will be the easier solution but in the other hand as end user point of view, that could be seen as a feature regression...:)

We could try doing it and see if anyone complains.:) Although that is perhaps not the nicest thing to do to the users.

Stax's renaming trick seems quite useful.

rebkell
23rd June 2008, 02:03
Is there anyway to disable/enable cleanup on autoencode and one step encodiing? I sometimes have audio problems on captured HDTV, local stations screw up the audio and it would be easier if I had the raw video available to mux with when I get the audio straightened out?

berrinam
23rd June 2008, 02:39
@rebkell: Please do not post on the development thread. The "General questions and troubleshooting" thread is the appropriate place.

berrinam
23rd June 2008, 02:40
I think 0.3.x.x is getting quite stable now. Most of the bugs on the SF tracker are either fixed or can't be reproduced.

As there are a number of small features in the feature request tracker that I'd like to implement, I would like to tag 0.3.x.x now and -- after the new DGIndex code and my zones code is committed -- only commit bug fixes. Also, I think we should put 0.3.x.x on the stable autoupdate servers.

I think this point is actually becoming more valid now. The audio bugs in 0.2.6.1047-8 cannot easily be diagnosed because error messages are not properly logged. 0.3.x.x does properly log the error messages.

rebkell
23rd June 2008, 02:49
@rebkell: Please do not post on the development thread. The "General questions and troubleshooting" thread is the appropriate place.

Sorry, it was actually a request, I didn't realize the capability existed.

check
23rd June 2008, 05:38
I've had no experience with Trac or Bugzilla, so I don't know. I have seen Trac used on a number of sites, though, and it looks quite nice... it's got some kind of wiki integration as well, doesn't it?
Yes, the official site probably explains its much better than I can. This page (http://trac.edgewall.org/wiki/TracGuide) has a good list of its features. The one thing it misses you guys might need is a 'forum'. You get support tickets instead, which can be harder to users to search through. Setting up a separate forum would be dead simple though.

Basically, I'm happy to setup any sort of infrastructure you guys would like for managing MeGUI, just let me know what you'd like (or if you want me to shortlist alternatives.

Kurtnoise
23rd June 2008, 07:44
We could try doing it and see if anyone complains.:) Although that is perhaps not the nicest thing to do to the users.

Stax's renaming trick seems quite useful.
renaming tracks is not a problem...Problem is : if we want to demux only 1 track using the last DGindex interface, tracks IDs are required.

Either we delete this feature, or we keep it and we try to make something useable with it. All I can say depends mainly on *when* and *what* we want to have in the 0.3.xxx stable version.


All in all, I'm interested to release it as soon as possible.

Kurtnoise
23rd June 2008, 07:46
Yes, the official site probably explains its much better than I can. This page (http://trac.edgewall.org/wiki/TracGuide) has a good list of its features. The one thing it misses you guys might need is a 'forum'. You get support tickets instead, which can be harder to users to search through. Setting up a separate forum would be dead simple though.

Basically, I'm happy to setup any sort of infrastructure you guys would like for managing MeGUI, just let me know what you'd like (or if you want me to shortlist alternatives.
Trac is quite great...but what about the download page for end-users ?

check
23rd June 2008, 08:44
Trac is quite great...but what about the download page for end-users ?It includes a wiki for documentation. Either that can be the frontpage, or a static HTML frontpage can be put in front of the whole Trac install. The latter seems to be a common way of dealing with this question.

Sharktooth
23rd June 2008, 15:48
stable0.2.6.1049
- (berrinam) Added locking around getJobToProcess() to eliminate race condition on job starting (should fix #1932378: Two workers started working on same job)
- (berrinam) MediaInfo should now properly detect .m4v files. (Fixes adaptive muxing for .m4v files)
- (berrinam) Removed MP4 output from xvid_encraw, since it was never actually supported.
- (berrinam) Fixed #1870331 (User specified sizes in bitrate calcs not remembered)
- (berrinam) [AvisynthAudioEncoder] Log audio error messages.

dev0.3.0.1010 (includes the fixes and additions up to ver. 0.2.6.1049)
- (berrinam) Better rationalisation of ARs in AVS window. Patch by i_a


Dev version installer: http://www.webalice.it/f.corriga/megui/megui-0_3_0_1010.exe

berrinam
23rd June 2008, 16:02
"Log audio error messages" was actually done on the stable build. The dev build already has good logging for that.

Sharktooth
23rd June 2008, 16:05
my mistake. ill correct it in the next build.

berrinam
24th June 2008, 02:21
Apparently the new NicAudioSource cannot support some files which the old one could. See this bug (https://sourceforge.net/tracker/index.php?func=detail&aid=2000167&group_id=156112&atid=798476) for details.

berrinam
24th June 2008, 02:25
This adds zones support back, in the main window. I've attempted to do the minimum changes simply to get it working:

http://www.box.net/shared/97swopctcg

Can I commit this?

Kurtnoise
24th June 2008, 07:37
Apparently the new NicAudioSource cannot support some files which the old one could. See this bug (https://sourceforge.net/tracker/index.php?func=detail&aid=2000167&group_id=156112&atid=798476) for details.
I'll check out but this guy could try to transcode his input file directly instead of using the wav...


edit: yes, i confirm this bug...:-/

Kurtnoise
24th June 2008, 07:38
Can I commit this?
sure...it looks ok for me. :)

check
25th June 2008, 05:26
Who is in control the megui.org domain? I need the password for SSH access to the master autoupdate cache again, my mirror has not been updating itself properly.

Sharktooth
25th June 2008, 15:27
IIRC: http://forum.doom9.org/member.php?u=1704

tebasuna51
25th June 2008, 20:51
I'll check out but this guy could try to transcode his input file directly instead of using the wav...


edit: yes, i confirm this bug...:-/

NicAudio.dll support wav container with mp3 or ac3 streams, extracted from VDM like wav but with 'Direct Stream Copy' mode, with the appropriate methods NicMPG123Source or NicAc3Source.


Apparently the new NicAudioSource cannot support some files which the old one could. See this bug for details.
No changes about this from old/new NicAudio.dll

Kurtnoise
25th June 2008, 22:47
This adds zones support back, in the main window. I've attempted to do the minimum changes simply to get it working
I'm just testing it...(I had only review the code before ;))

Few notes:
quantizers values should be clamped according to the video codec selected I think (i.e for xvid >> not much higher than 31).
video preview shouln't be closed when we hit the "edit zones" button first...ok, there is the preview button in the form.



@check: could you try to build a trac system and give an access in private to the all devs for beta testing or something ? that could be great.

berrinam
26th June 2008, 04:24
quantizers values should be clamped according to the video codec selected I think (i.e for xvid >> not much higher than 31).The problem with this is it introduces a sensitive dependence on which profile is currently selected. Imagine: you set up your zones carefully in x264 at very high quantizers (>31) and then you are changing video profiles and accidentally select xvid. All of a sudden, your zones have been clamped to the xvid range.

Although we wouldn't have had this problem if we kept zones inside the codec config, we had similar problems before: specifically, whenever the user changed selected profile, they would have to copy their zone settings to the new profile.

For simplicity, I would like to avoid adjusting the zones config according to what profile is selected. The best solution I can think of at the moment is:
In the zones config, don't provide access to quantizer, but instead let the user choose the abstract "quality level" -- a choice of Even lower Lower Higher Even higher
Each codec profile allows you to set the quantizer for each quality level. So, for instance, in x264, you might have the standard CRF at 22, with lower at 24, even lower at 26, etc. Whereas in xvid you might set CQ=4, lower=5, even lower=6, higher=3, even higher=2.
As far as I can see, this handles the standard use of zones while avoiding explicit dependence on the codec used.

video preview shouln't be closed when we hit the "edit zones" button first...ok, there is the preview button in the form.The zones preview window is slightly different from the standard one, so it makes sense to close the original one. However, it probably makes sense to automatically open the zones preview window; maybe a settings option to automatically open zones preview? Maybe just use the option "automatically open preview window"?

berrinam
26th June 2008, 04:27
@check: could you try to build a trac system and give an access in private to the all devs for beta testing or something ? that could be great.

Indeed. :)

Thanks.

check
26th June 2008, 04:29
Sure. I am taking some annual leave this weekend and early next week, so it will happen sometime late next week or (more likely) next weekend.

EDIT: this estimate might turn out to be optimistic. I am planning a few 'architectural' changes to my infrastructure to take place before I get any new services up and running, so the wait might be two weeks now. Sorry to get everyone excited about Trac and then to have such a long wait :P

tebasuna51
26th June 2008, 12:25
...
And I suggest use also RaWavSource (included in NicAudio v2.0) for wav (WAVE_FORMAT_EXTENSIBLE header supported) and also other uncompressed formats always supporting files > 4GB.
See the Kurtnoise MeGui Feature request (http://sourceforge.net/tracker/index.php?func=detail&aid=1830524&group_id=156112&atid=798479):
case ".wav":
case ".w64":
case ".aif":
case ".au":
case ".caf":
case ".bwf":
script.AppendFormat("RaWavSource(\"{0}\", 2){1}", audioJob.Input, Environment.NewLine);
break;
...

Maybe the problem with the mp3/ac3 in wav container from VirtualDubMod, was this suggestion to replace the standard procedure WavSource with RaWavSource without support for compressed data in wav container. My fault.

The solutions are:
1) return to WavSource losing the support for WAVE_FORMAT_EXTENSIBLE wav headers (until AviSynth v2.5.8) and the support for files > 4GB. If the compress format is ac3 is decoded always using DRC, undesired for transcode.

2) say the users to rename this files to the appropriate extension mp3 or ac3 like now we need rename the wavdts.wav to wavdts.dts. Or best, use the DEMUX button in VDM.

3) try to detect the internal wav data format to send the file to the appropriate method: WavSource, RaWavSource, NicAc3Source, NicMPG123Source. Maybe also we can detect wavdts (with wrong wav header) not supported now, and send the data to NicDtsSource.

Of course the best choice is 3) but need some code effort. The job can't be do by NicAudio because WavSource with internal decoders have support for many formats not supported in NicAudio (ADPCM, ALAW, MULAW, ...).

Kurtnoise
26th June 2008, 18:47
The problem with this is it introduces a sensitive dependence on which profile is currently selected. Imagine: you set up your zones carefully in x264 at very high quantizers (>31) and then you are changing video profiles and accidentally select xvid. All of a sudden, your zones have been clamped to the xvid range.

Although we wouldn't have had this problem if we kept zones inside the codec config, we had similar problems before: specifically, whenever the user changed selected profile, they would have to copy their zone settings to the new profile.
yes, completely agreed...

For simplicity, I would like to avoid adjusting the zones config according to what profile is selected. The best solution I can think of at the moment is:
In the zones config, don't provide access to quantizer, but instead let the user choose the abstract "quality level" -- a choice of Even lower Lower Higher Even higher
Each codec profile allows you to set the quantizer for each quality level. So, for instance, in x264, you might have the standard CRF at 22, with lower at 24, even lower at 26, etc. Whereas in xvid you might set CQ=4, lower=5, even lower=6, higher=3, even higher=2.
As far as I can see, this handles the standard use of zones while avoiding explicit dependence on the codec used.
sounds good to me...but this needs to be tested. ;) Anyway, my comments were more for the next releases (0.4.xxx), not the current ones.

The zones preview window is slightly different from the standard one, so it makes sense to close the original one. However, it probably makes sense to automatically open the zones preview window; maybe a settings option to automatically open zones preview? Maybe just use the option "automatically open preview window"?
well...I'm ok to let the user to choose this via the settings.

Kurtnoise
26th June 2008, 18:49
Maybe the problem with the mp3/ac3 in wav container from VirtualDubMod, was this suggestion to replace the standard procedure WavSource with RaWavSource without support for compressed data in wav container. My fault.

The solutions are:
1) return to WavSource losing the support for WAVE_FORMAT_EXTENSIBLE wav headers (until AviSynth v2.5.8) and the support for files > 4GB. If the compress format is ac3 is decoded always using DRC, undesired for transcode.

2) say the users to rename this files to the appropriate extension mp3 or ac3 like now we need rename the wavdts.wav to wavdts.dts. Or best, use the DEMUX button in VDM.

3) try to detect the internal wav data format to send the file to the appropriate method: WavSource, RaWavSource, NicAc3Source, NicMPG123Source. Maybe also we can detect wavdts (with wrong wav header) not supported now, and send the data to NicDtsSource.

Of course the best choice is 3) but need some code effort. The job can't be do by NicAudio because WavSource with internal decoders have support for many formats not supported in NicAudio (ADPCM, ALAW, MULAW, ...).
Is there somewhere some code to detect dts/ac3/mp3 data streams from the wav container ?


@all : I hope to commit the new DGindex stuff this weekend...before to take a break during July (yeah...some vacations :)).

tebasuna51
27th June 2008, 14:18
Is there somewhere some code to detect dts/ac3/mp3 data streams from the wav container ?

Maybe something like:
case ".wav":
Stream = fopen(wavfile, "rb");
_fseeki64(Stream, 20, SEEK_SET); // AudioFormat offset

fread(aux, 1, 2, Stream);
AudioFormat = (((aux)[0]&0xff)|((aux)[1]<<8)); // Or something to read a LE int_16


switch (AudioFormat) {

case 0x0001: // PCM Format Int
_fseeki64(Stream, 44, SEEK_SET); // DtsHeader offset

fread(aux, 1, 4, Stream);
DtsHeader = (((aux)[0]&0xff)|((aux)[1]<<8)|((aux)[2]<<16)|((aux)[3]<<24)); // Or something to read a LE int_32

if (DtsHeader = 0xE8001FFF) {
script.AppendFormat("NicDtsSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
}
case 0x0003: // IEEE Float
case 0xFFFE: // WAVE_FORMAT_EXTENSIBLE header
script.AppendFormat("RaWavSource(\"{0}\", 2){1}", audioJob.Input, Environment.NewLine);
break;
case 0x0055: // MPEG Layer 3
script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
case 0x2000: // AC3
script.AppendFormat("NicAc3Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
default:
script.AppendFormat("WavSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
}

fclose(Stream);
break;

Underground78
27th June 2008, 16:04
Hello,

As usual it's without garanty but I've tried to improve this log message (http://forum.doom9.org/showthread.php?p=1152953#post1152953) a bit. I'm sure the messages aren't perfect but it can give you a starting point to do better ...

Index: CommandlineVideoEncoder.cs
===================================================================
--- CommandlineVideoEncoder.cs (revision 566)
+++ CommandlineVideoEncoder.cs (working copy)
@@ -74,10 +74,14 @@

LogItem stats = log.Info("Final statistics");

- if (job.Settings.EncodingMode != 1)
+ if (job.Settings.EncodingMode == 1) // QP mode
+ stats.LogValue("Constant quantizer mode", "quantizer " + job.Settings.BitrateQuantizer + " used");
+ else if (job.Settings.EncodingMode == 9) // CRF mode
+ stats.LogValue("Constant quality mode", "quality " + job.Settings.BitrateQuantizer + " used");
+ else
stats.LogValue("Desired video bitrate", job.Settings.BitrateQuantizer + " kbit/s");

- stats.LogValue("Obtained video bitrate (approximate", bitrate + " kbit/s");
+ stats.LogValue("Obtained video bitrate (approximate)", bitrate + " kbit/s");
}
}
catch (Exception e)

Underground78
27th June 2008, 16:31
Just a missing event handler for Xvid max key frame interval :

Index: xvidConfigurationPanel.Designer.cs
===================================================================
--- xvidConfigurationPanel.Designer.cs (revision 566)
+++ xvidConfigurationPanel.Designer.cs (working copy)
@@ -498,6 +498,8 @@
this.xvidKeyframeInterval.Size = new System.Drawing.Size(40, 20);
this.xvidKeyframeInterval.TabIndex = 6;
this.xvidKeyframeInterval.Text = "300";
+ this.xvidKeyframeInterval.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textField_KeyPress);
+ this.xvidKeyframeInterval.TextChanged += new System.EventHandler(this.updateEvent);
//
// xvidKeyframeIntervalLabel
//

Kurtnoise
27th June 2008, 19:34
@tebasuna : what is it "aux" in your code ?

@Underground78 : both applied. thanks...

tebasuna51
28th June 2008, 03:24
@tebasuna : what is it "aux" in your code ?

unsigned char aux[4] = ""; // only a byte buffer

I don't remember if Megui is C, C+, C++, C-, C#, ...
we only need read AudioFormat (Litle Endian 16 bit unsigned) at offset 20 and DtsHeader (Litle Endian 32 bit unsigned) at offset 44.

Kurtnoise
28th June 2008, 06:58
MeGUI is coded in C#...just like BeHappy. ;)

btw, there is no unsigned char type in C#. I'd say that byte is fine for this.

Kurtnoise
28th June 2008, 10:50
Here is something more usable in C# :

Index: AviSynthAudioEncoder.cs
===================================================================
--- AviSynthAudioEncoder.cs (revision 570)
+++ AviSynthAudioEncoder.cs (working copy)
@@ -552,6 +552,46 @@
script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
case ".wav":
+ FileStream fs = new FileStream(audioJob.Input, FileMode.Open, FileAccess.ReadWrite);
+ fs.Seek(20, SeekOrigin.Begin); // AudioFormat offset
+ byte[] aux = new byte[4]; // only a byte buffer
+
+ fs.Read(aux, 1, 2);
+ UInt16 AudioFormat = (UInt16)(((aux)[0] & 0xff) | ((aux)[1] << 8)); // Or something to read a LE int_16
+
+
+ switch (AudioFormat)
+ {
+
+ case 0x0001: // PCM Format Int
+ fs.Seek(44, SeekOrigin.Current); // DtsHeader offset
+
+ fs.Read(aux, 1, 4);
+ UInt32 DtsHeader = (UInt32)(((aux)[0] & 0xff) | ((aux)[1] << 8) | ((aux)[2] << 16) | ((aux)[3] << 24)); // Or something to read a LE int_32
+
+ if (DtsHeader == 0xE8001FFF)
+ {
+ script.AppendFormat("NicDtsSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ }
+ break;
+ case 0x0003: // IEEE Float
+ case 0xFFFE: // WAVE_FORMAT_EXTENSIBLE header
+ script.AppendFormat("RaWavSource(\"{0}\", 2){1}", audioJob.Input, Environment.NewLine);
+ break;
+ case 0x0055: // MPEG Layer 3
+ script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ case 0x2000: // AC3
+ script.AppendFormat("NicAc3Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ default:
+ script.AppendFormat("WavSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ }
+
+ fs.Close();
+ break;
case ".w64":
case ".aif":
case ".au":



edit: doesn't seem to work correctly. WavSource(...) is always returned. Tested with MP3 & AC3...

tebasuna51
28th June 2008, 14:56
Here is something more usable in C# :
...
edit: doesn't seem to work correctly. WavSource(...) is always returned. Tested with MP3 & AC3...

This can work in C#:
Index: AviSynthAudioEncoder.cs
===================================================================
--- AviSynthAudioEncoder.cs (revision 570)
+++ AviSynthAudioEncoder.cs (working copy)
@@ -552,6 +552,46 @@
script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
case ".wav":
+ BinaryReader r = new BinaryReader(File.Open(audioJob.Input, FileMode.Open));
+
+ try {
+ r.ReadBytes(20);
+ UInt16 AudioFormat = r.ReadUInt16(); // read a LE int_16, offset 20 + 2 = 22
+
+ switch (AudioFormat) {
+ case 0x0001: // PCM Format Int
+ r.ReadBytes(22); // 22 + 22 = 44
+ UInt32 DtsHeader = r.ReadUInt32(); // read a LE int_32
+
+ if (DtsHeader == 0xE8001FFF)
+ script.AppendFormat("NicDtsSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ else
+ script.AppendFormat("RaWavSource(\"{0}\", 2){1}", audioJob.Input, Environment.NewLine);
+ break;
+ case 0x0003: // IEEE Float
+ case 0xFFFE: // WAVE_FORMAT_EXTENSIBLE header
+ script.AppendFormat("RaWavSource(\"{0}\", 2){1}", audioJob.Input, Environment.NewLine);
+ break;
+ case 0x0055: // MPEG Layer 3
+ script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ case 0x2000: // AC3
+ script.AppendFormat("NicAc3Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ default:
+ script.AppendFormat("WavSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ }
+ }
+
+ catch(EndOfStreamException e) {
+ Console.WriteLine("{0}, wavfile can't be read.", e.GetType().Name);
+ }
+ finally {
+ r.Close();
+ }
+
+ break;
case ".w64":
case ".aif":
case ".au":

Kurtnoise
28th June 2008, 17:00
I found something similar...;)

Index: AviSynthAudioEncoder.cs
===================================================================
--- AviSynthAudioEncoder.cs (revision 570)
+++ AviSynthAudioEncoder.cs (working copy)
@@ -552,6 +552,52 @@
script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
case ".wav":
+ using (FileStream fs = new FileStream(audioJob.Input, FileMode.Open, FileAccess.ReadWrite))
+ {
+ using (BinaryReader r = new BinaryReader(fs))
+ {
+ fs.Position = 20; // Offset
+ UInt16 AudioFormat = r.ReadUInt16(); // read a LE int_16
+
+ switch (AudioFormat)
+ {
+ case 0x0001: // PCM Format Int
+ fs.Position = 44; // Offset
+ UInt32 DtsHeader = r.ReadUInt32(); // read a LE int_32
+
+ if (DtsHeader == 0xE8001FFF)
+ {
+ script.AppendFormat("NicDtsSource(\"{0}\"", audioJob.Input);
+ if (audioJob.Settings.AutoGain)
+ script.AppendFormat(", DRC=1){0}", Environment.NewLine);
+ else
+ script.Append(")");
+ break;
+ }
+ break;
+ case 0x0003: // IEEE Float
+ case 0xFFFE: // WAVE_FORMAT_EXTENSIBLE header
+ script.AppendFormat("RaWavSource(\"{0}\", 2){1}", audioJob.Input, Environment.NewLine);
+ break;
+ case 0x0055: // MPEG Layer 3
+ script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ case 0x2000: // AC3
+ script.AppendFormat("NicAc3Source(\"{0}\"", audioJob.Input);
+ if (audioJob.Settings.AutoGain)
+ script.AppendFormat(", DRC=1){0}", Environment.NewLine);
+ else
+ script.Append(")");
+ break;
+ default:
+ script.AppendFormat("WavSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ break;
+ }
+ r.Close();
+ }
+ fs.Close();
+ }
+ break;
case ".w64":
case ".aif":
case ".au":


thanks btw...

73ChargerFan
28th June 2008, 17:53
Bug Report - Aspect Ratio, Anamorphic
Seems that the aspect ratio is forgotten or not carried through megui.

I transcoded a 16x9 720x480 video from .TS to x264/mp4 last night using a fresh install of latest dev build 0_3_0_1010.


DGIndexProjectFile16
1
P:\New Movies\Hellboy Extras\Minatures - 1 - MPEG2, 480i60.m2v

Stream_Type=0
MPEG_Type=2
iDCT_Algorithm=6
YUVRGB_Scale=1
Luminance_Filter=0,0
Clipping=0,0,0,0
Aspect_Ratio=16:9
Picture_Size=720x480
Field_Operation=0
Frame_Rate=29970 (30000/1001)
Location=0,0,0,54c3e


The d2v creator listed the aspect ratio as 16x9, but the preview was 3x4 +/- there and in the main window.
The mp4 resulted renders as a 3x4 +/- in MPC-HC 580.

I dropped the mp4 into mkvmerge, which couldn't determine the aspect ratio, so I specified it as 16x9.
The mkv file is rendered correctly.

Sharktooth
29th June 2008, 04:51
weird. i just did 2 anamorphic encodes and it works well.
ensure you click the "show DAR" in the preview (main window... not avisynth script creator) to check the AR.

berrinam
29th June 2008, 10:00
In AviSynthWindow.openDirectShow(), there is some code which first gets MeGUI to open the file with DirectShow, before telling Avisynth to use DirectShowSource(). I am doing some improvements to the avisynthwindow, and I would like to remove that code.

Is there a reason it is needed? Surely, if it won't render in directshow, then avisynth will tell us that, so there seems no need to check for ourselves first...

Kurtnoise
29th June 2008, 10:29
yep...ok to remove this.

Kurtnoise
29th June 2008, 17:04
guys, I'm tired to support the last DGindex stuff. I tried 2-3 different things, but no one seem to be fine. I hate to code sometimes when nothing work correctly... :(

So,
either we remove the audio tracks selection to use the last release (might be a feature regression for end-users though) as suggested by berrinam.
or we keep that way but we update *only* DGdecode.dll (from the last release) to fix the bug with BT.xxx.


Whatever you choose (as target release for the 0.3.xxxx build), both are ok for me.

berrinam
30th June 2008, 02:09
I think we should go for the former. We will have to upgrade DGIndex sometime anyway (as the old version simply becomes obsolete) and I would be afraid about .d2v file format discrepancies if we supported a different version of DGIndex and DGDecode.dll.

Sharktooth
30th June 2008, 04:49
the former. however i would like to try something first.

Neillithan
30th June 2008, 07:54
For some reason when I try to load an Avisynth script into Megui, I get an error.

Here is a picture of the error.

http://img235.imageshack.us/img235/599/strangevistameguierrorpj5.th.png (http://img235.imageshack.us/my.php?image=strangevistameguierrorpj5.png)

Directly following the error, Megui crashes and this is what Windows Vista has to say about it.

Description:
Stopped working

Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: megui.exe
Problem Signature 02: 0.2.6.1049
Problem Signature 03: 485fa856
Problem Signature 04: MeGUI
Problem Signature 05: 0.2.6.1049
Problem Signature 06: 485fa856
Problem Signature 07: 9f4
Problem Signature 08: c
Problem Signature 09: System.BadImageFormatException
OS Version: 6.0.6001.2.1.0.256.1
Locale ID: 1033


I am using Megui version 0.2.6.1049. I have made minimal changes to Vista since I installed it a few hours ago. I have installed CoreAVC. I have installed AviSynth (I admit I don't know if it is the latest version). I tried installing FFDShow Tryouts to see if that would help.

The AviSynth script loads into VirtualDub without fuss, Megui just will not take it.

Oh, and here is the contents of the AviSynth Script:

AviSource("E:\Fraps\vistaTEST.avi")
ConvertToYV12()

The Avi itself is simply fraps footage and fraps "is" installed so AviSource should be working.

Help?

-Neil

Sharktooth
30th June 2008, 15:39
check the avs in virtualdub. if it doesnt work you dont have the VFW codec installed.
avisource needs VFW codecs...

Sharktooth
30th June 2008, 17:53
@devs: let's proceed removing the audio track selection in the d2v creator so we can update dgindex. i will readd it later if my code works correctly.

Neillithan
1st July 2008, 00:52
check the avs in virtualdub. if it doesnt work you dont have the VFW codec installed.
avisource needs VFW codecs...

oO

I said this.

The AviSynth script loads into VirtualDub without fuss, Megui just will not take it.

and this

The Avi itself is simply fraps footage and fraps "is" installed so AviSource should be working.

I'm not trying to denounce your 7000+ post count, but maybe perhaps reading before responding will help.

-Neil

Sharktooth
1st July 2008, 04:48
sorry. my short term memory sometimes is really short...
so, let try another thing.
get the megui dev version and give it a try, just dont use zones (seems its buggy). if the problem persists, we should find the cause.

Kurtnoise
1st July 2008, 07:28
@devs: let's proceed removing the audio track selection in the d2v creator so we can update dgindex.
done...

Neillithan
1st July 2008, 07:43
sorry. my short term memory sometimes is really short...
so, let try another thing.
get the megui dev version and give it a try, just dont use zones (seems its buggy). if the problem persists, we should find the cause.

Don't worry about it. :) At least you didn't lash out at me for my brutality. :X

Your suggestion worked! The Developer version of MeGUI opens the AviSynth script in Megui just fine. Version 0.3.0.1010 opened right up without any problems.

Thanks a lot. :)

Edit: After closer inspection, I think the reason why it didn't work was because there was no path set for "Avisynth Plugins" in the Program Path's area of Megui Settings. lol Oh well! :)

berrinam
1st July 2008, 10:38
...just dont use zones (seems its buggy)...

Problem now fixed in rev580.

Coolpplse
1st July 2008, 10:52
Don't worry about it. :) At least you didn't lash out at me for my brutality. :X

Your suggestion worked! The Developer version of MeGUI opens the AviSynth script in Megui just fine. Version 0.3.0.1010 opened right up without any problems.

Thanks a lot. :)

Edit: After closer inspection, I think the reason why it didn't work was because there was no path set for "Avisynth Plugins" in the Program Path's area of Megui Settings. lol Oh well! :)

Actually its more than that, The "Current" version v0.2.6.1049 if you check on Task Manager, on Vista 64 is running MeGUI as a 64 bit app, "MEGUI.exe" while with v0.3.0.1010 MeGUI is running as "MEGUI.exe*32"

If you try selecting the AviSynth 32 bit Plugins directory with v0.2.6.1049 it will error and when you try to save the setting it fails....

Sharktooth
1st July 2008, 14:04
@devs: at this point, i'd say to move 0.3 into the stable folder in the autoupdate server.
also, next version would be 0.3.1, then 0.3.2, etc. a sort of features implemenation "path" to 0.4... so we can add stuff and quickly move every version (once "stabilized") to the stable folder.
what do you think?

Sharktooth
1st July 2008, 14:47
New dev build at sourceforge: https://sourceforge.net/project/showfiles.php?group_id=156112&package_id=244469

recent changes:
0.3.0.1013
- (kurtnoise) cosmetics - Presets instead of Profiles.
- (kurtnoise) removed .net framework checking for vista users during the loading. It should be fine now with all apps updated and frankly it's also to avoid to waste some time to upgrade each number indefinitely...;-)
- (berrinam) Reset zones even when preview window doesn't open (fixes #2007133 - Error when loading "AutoEncode")
- (kurtnoise) removed audio tracks selection from the D2V creator.

0.3.0.1012
- (sharktooth) fix for #2001332 ([0.3.0.1010] AviSynth script creator does not open)

0.3.0.1011 (includes the fixes and additions up to ver. 0.2.6.1050)
- (berrinam) [ProfileExporter] Fixed bug where exporting 2 profiles each with associated files would fail (bug not reported)
- (berrinam) Add ZonesWindow to VS2005 project file (patch by Sean McGovern)
- (kurtnoise) [AviSynthAudioEncoder] better detection of several data streams (AC3, MP3, DTS, etc...) from the wav container. Mainly based on Tebasuna's code.
- (kurtnoise) [LanguageSelectionContainer] added 'Fran�ais'.
- (kurtnoise) 'computed' instead of 'used' in CommandlineVideoEncoder
- (kurtnoise) [CommandlineVideoEncoder] better handling for several Encoding Modes.
- (kurtnoise) updated a missing event for max key Frame interval in the Xvid Configuration Panel. Patch by Underground78.
- (berrinam) Added zones back to main window (outside codec configs)

Kurtnoise
1st July 2008, 15:31
@devs: at this point, i'd say to move 0.3 into the stable folder in the autoupdate server.
also, next version would be 0.3.1, then 0.3.2, etc. a sort of features implemenation "path" to 0.4... so we can add stuff and quickly move every version (once "stabilized") to the stable folder.
what do you think?
fine for me...and don't forget also to update some exec (FFmpeg, Mencoder, LAME, DGindex, etc...). :)

Sharktooth
1st July 2008, 16:11
dgindex is up to date.
about the other packages, ill see if i can update them later.

Sharktooth
1st July 2008, 18:44
@devs: divx is probably going the CLI way for the next divx avc codec.
should we consider implementing it (assuming they make a cli encoder?)

berrinam
1st July 2008, 22:07
Definitely. CLI encoders are very easy to add.

Sharktooth
1st July 2008, 22:36
@berrinam: could you please change the link in the first line of the megui guide thread from http://x264.nl in http://www.sourceforge.net/projects/megui ?

berrinam
2nd July 2008, 00:51
Done.

berrinam
2nd July 2008, 04:39
@devs: at this point, i'd say to move 0.3 into the stable folder in the autoupdate server.
also, next version would be 0.3.1, then 0.3.2, etc. a sort of features implemenation "path" to 0.4... so we can add stuff and quickly move every version (once "stabilized") to the stable folder.
what do you think?

Sounds good.

How about also doing the SVN shuffle (http://forum.doom9.org/showthread.php?p=1150762#post1150762) now?

Sharktooth
2nd July 2008, 05:04
rigth now there's a new bug (http://sourceforge.net/tracker/index.php?func=detail&aid=2008276&group_id=156112&atid=798476) in jobqueue.cs ... but im going to sleep (5AM) so i wont fix it right now.
feel free to do it if you want/have time. it should be easy to fix.
after the bug is gone we can shuffle the svn and move 0.3.0 to stable in the autoupdate.

berrinam
2nd July 2008, 08:10
Fixed.

Kurtnoise
2nd July 2008, 08:22
too bad...the one click encoder is broken now due to the remove of audio tracks selection from the d2v creator. :s

So, we need to go back by rebuilding this part or find an other solution asap...

berrinam
2nd July 2008, 08:56
I've fixed that bug now, too. It was also simple.

If it's ok, I'll start reorganising the SVN folders now. Is that fine?

Kurtnoise
2nd July 2008, 09:14
WoW...you're fast. :p

go ahead for the shuffle.


edit: I'm testing megui stuff on x64 right now...

berrinam
2nd July 2008, 09:20
NB: I'd actually already started doing the shuffle, since I discovered I could start copying folders without causing disruptions. Getting SVN to behave right is a bit annoying though...

berrinam
2nd July 2008, 09:45
As of svn rev590, I have moved everything out of /trunk and have moved the files into folders like /megui/trunk, /neroraw/trunk, etc. I have moved compile-all.bat and compile-all-msbuild.bat to /, but they almost certainly will not work located where they currently are. We will have to consider what we do with these; my thought is that there is no need for compile-all.bat files -- it should be enough if every subproject (megui, neroraw, ...) has its own compile(-msbuild).bat file.

The megui trunk should be buildable, once got from /megui/trunk. I will, soon, complete the reorganisation by moving the tags and branches to the appropriate places.

Kurtnoise
2nd July 2008, 11:46
there is still a problem with the one click encoder : when we select the 1st or the 2nd audio tracks from the list, an error occurs at the end of the d2v creation...

I'll try it asap.

berrinam
2nd July 2008, 12:02
I reproduced that problem, and thought I had fixed it. Hmmm....

berrinam
2nd July 2008, 12:07
SVN reorganisation completed in svn rev594.

Sharktooth
2nd July 2008, 13:16
compile-msbuild.bat is only strictly necessary for megui. csc can be used for the rest.
however i updated the paths in the scripts so they should work again.

EDIT: i also updated the installer script to reflect the paths changes.

Sharktooth
2nd July 2008, 13:58
0.3.0.1014
- (berrinam) Fixed #2008444 (crash using One Click Encoder). The One Click Encoder uses the "Demux all audio" mode.
- (berrinam) Fix #2008276 (Fatal Error On Queue Tab With 0.3.0.1013)

1014 is the new stable version. im starting moving files in the autoupdate server.

edit: kurt, can you please add the UAC stuff to the NSIS script? I dont have Vista to test if the script works or not...
(should i get version 0.7 or 0.8?)

Kurtnoise
2nd July 2008, 15:55
fact is, we doesn't need it...;)



btw, why not putting this latest version in the tags branch (as 0_3_x_x_) ? you said that it's stable now...

Sharktooth
2nd July 2008, 16:05
IMHO we dont need tags anymore.
if we follow a strict version numbering that follows features implementation (new feature, new version... etc), we can just release one or more stable versions/month.
in practice we plan features for the next major version (0.4) and we do progressive releases along a feature implementation path. so at every new implemented feature will correspont a new version (3.1, 3.2, 3.3...) then there will be the obvious bug-fixing and then the stable release. however implementing 1 feature at a time, there will be fewer bugs... so we can accelerate the release cycle... and we'll always have a working and up to date stable version.

Kurtnoise
2nd July 2008, 16:23
you mean that only the trunk should be used ? someone needs to clean up the tree then...

berrinam
3rd July 2008, 02:41
IMHO we dont need tags anymore.
if we follow a strict version numbering that follows features implementation (new feature, new version... etc), we can just release one or more stable versions/month.
in practice we plan features for the next major version (0.4) and we do progressive releases along a feature implementation path. so at every new implemented feature will correspont a new version (3.1, 3.2, 3.3...) then there will be the obvious bug-fixing and then the stable release. however implementing 1 feature at a time, there will be fewer bugs... so we can accelerate the release cycle... and we'll always have a working and up to date stable version.

The thing is, bugs do not always surface immediately. Suppose we have added a feature, and then release 3.1. We wait a little while, fix the bugs that appear, and then continue to add features. Then, while we're still working on the new feature, another bug appears. We have no way of fixing that bug until we have finished the feature we are working on.

Tags, on the other hand, would solve that problem. Also, you can tag version 3.1 almost as soon as you have added the new feature. At that stage you can start working on the new feature immediately, without having to wait for a reasonable number of bugs to have appeared and been fixed.

However, I do agree that a short release cycle would be nice.

berrinam
3rd July 2008, 03:08
So, what is the plan for MeGUI now? Is here a convenient place to talk, or maybe IRC?

Sharktooth
3rd July 2008, 03:57
ok, let's keep the tags then.
plans? well, i would like to estabilish some priorities, or better, guidelines for development.
this is what i think:
1 - whenever a bug appears the fix must be the highest priority
2 - if a package needs updating the megui code (ie. new or changed encoder parameters) it must be as high as bugfixing in the priorities list
3 - evaluate feature requests (accept/reject) and place them in a list in order of importance. new ideas for next versions should be treated as feature requests and evaluated as well. so we have a common list of features we could work on.

do you agree?

regarding the place to talk, we have several options but since we live in different places, i doubt we'll have much time to talk.
the forum seems good to me but it's not "real time". we could even setup a private devs forum on megui project page on SF.

Kurtnoise
3rd July 2008, 10:30
plans? well, i would like to estabilish some priorities, or better, guidelines for development.
this is what i think:
1 - whenever a bug appears the fix must be the highest priority
2 - if a package needs updating the megui code (ie. new or changed encoder parameters) it must be as high as bugfixing in the priorities list
3 - evaluate feature requests (accept/reject) and place them in a list in order of importance. new ideas for next versions should be treated as feature requests and evaluated as well. so we have a common list of features we could work on.

do you agree?
sounds good to me...:)

regarding the place to talk, we have several options but since we live in different places, i doubt we'll have much time to talk.
the forum seems good to me but it's not "real time". we could even setup a private devs forum on megui project page on SF.
that would be great...:) as I asked few months ago.


btw, did you have errors to access to the different links ? (Help Menu). I asked this because a user has reported bugs with those links and I can't reproduce here...

check
3rd July 2008, 12:22
So, what is the plan for MeGUI now? Is here a convenient place to talk, or maybe IRC?Just another note if you'd like a non SF-hosted forum, I'm happy to host and maintain one (seeing a trend here? :)).

stax76
3rd July 2008, 13:06
The updater changes the the last write date of AviSynth plugins, this can potentially break other applications and confuse users. It does break StaxRip which verifies the correct version on the last write day with a tolerance of two days (due to timezones). I hope this can be changed.

Sharktooth
3rd July 2008, 13:16
that's why it "updates" (overwrites) the plugins to ensure the version installed is compatible with megui. however we can find a solution together.

@check: what can i say? thank you so much :)

@devs: when we tought we did it... other bugs appear... http://sourceforge.net/tracker/?atid=798476&group_id=156112&func=browse
#2009656: that means megui isnt correctly closed before the shutdown. it may cause other problems too.
#2009428: now that the problems with preview and vista has been sorted out we can remove the option for disabling the preview.
#2008801: the log shows it was probably something with x264. the user is making some more tests after i updated the x264 build.
#2008444: wasnt it already fixed?

stax76
3rd July 2008, 13:37
Why does MeGUI change the last write day?

Sharktooth
3rd July 2008, 13:42
it just overwrites the file when there is an update in the auto-update.
in practice, megui doesnt check the local file, but it just logs if the update was done or not. at every start, it checks the upgrade.xml file on the auto-update server. if the file has changed remotely (it checks the log, not the local file), it will download it and extract the zip content overwriting any existing local file. it makes backups though.

stax76
3rd July 2008, 13:54
So MeGUI does not need to change the last write date, it's just a bug in the unpacking? Before using 7z I was using SharpZipLib too, this is the code I was using:


Public Shared Sub Unpack(ByVal source As String, ByVal destination As String)
Using inStream As New ZipInputStream(File.OpenRead(source))
Do
Dim name = ""
Dim entry = inStream.GetNextEntry

If Not entry Is Nothing Then
name = entry.Name
name = DirPath.FixSeperator(name)
name = DirPath.AppendSeparator(destination) + name

If Not name.EndsWith(DirPath.Separator) Then
Dim dir = name.LeftLast("\")

If Not Directory.Exists(dir) Then
Directory.CreateDirectory(dir)
End If
End If

If Not name.EndsWith("\") Then
Dim writer = File.Create(name)
Dim data = New Byte(2048) {}

Do
Dim size = inStream.Read(data, 0, data.Length)

If size > 0 Then
writer.Write(data, 0, size)
Else
Exit Do
End If
Loop

writer.Close()

Dim fi As New FileInfo(name)
fi.LastWriteTime = entry.DateTime
End If
Else
Exit Do
End If
Loop
End Using
End Sub

Sharktooth
3rd July 2008, 13:58
@stax: megui uses sharpziplib too. is it buggy? or do you mean the bug may be in the megui code?

@devs: 2 new forums are up on SF. "developers" is for discussing development in general and "new features" is for evaluating, discussing and planning features for the next versions

stax76
3rd July 2008, 14:16
The bug is in the method 'ExtractZipFile', you need to set the last write date:

Dim fi As New FileInfo(filepath)
fi.LastWriteTime = zipEntry.DateTime

Sharktooth
3rd July 2008, 14:40
we have public static void ExtractZipFile(string file, string extractFolder)
{
ExtractZipFile(File.OpenRead(file), extractFolder);
}

public static void ExtractZipFile(Stream s, string extractFolder)
{
using (ZipFile inputFile = new ZipFile(s))
{
foreach (ZipEntry entry in inputFile)
{
string pathname = Path.Combine(extractFolder, entry.Name);
if (entry.IsDirectory)
{
Directory.CreateDirectory(pathname);
}
else // entry.isFile
{
System.Diagnostics.Debug.Assert(entry.IsFile);
FileUtil.ensureDirectoryExists(Path.GetDirectoryName(pathname));
Stream outputStream = File.OpenWrite(pathname);
FileUtil.copyData(inputFile.GetInputStream(entry), outputStream);
outputStream.Close();
}
}
}
}
ill see what i can do... later.

Kurtnoise
3rd July 2008, 15:26
@devs: when we tought we did it... other bugs appear... http://sourceforge.net/tracker/?atid=798476&group_id=156112&func=browse

:scared:

#2009656: that means megui isnt correctly closed before the shutdown. it may cause other problems too.
really strange...

#2009428: now that the problems with preview and vista has been sorted out we can remove the option for disabling the preview.
:confused: it's more complicate than that I think...

#2008444: wasnt it already fixed?
unfortunately no...


btw, thanks for the new forums.

Sharktooth
3rd July 2008, 17:46
1st post in the SF forum... ;) it's about... "future plans".

Kurtnoise
3rd July 2008, 18:18
1st reply from me + some other things...:p

Sharktooth
14th July 2008, 19:43
ill be away for some days.
health reasons.

check
22nd July 2008, 11:41
Are you still interested in moving to Trac?

PS: imo a hidden forum for developers only is a good thing, but to hide all development work is discouraging to users as it suggests a lack of trust, and also reduces the interaction between you and your users (not to mention makes people think the project is dead). The best solution is to do as much development in the open as possible, while having a hidden forum for talking freely about people/things you hate/etc.

Sharktooth
22nd July 2008, 12:14
we have forums here, there's no need to duplicate them. however i have a internet connection and even if im not home i can reply and answer questions.
about trac, yes, im still interested but i cant test it right now, ill do when i get home (one week or so).

Sharktooth
23rd July 2008, 04:48
Since tonigth my sight seems to be a bit better i did some small fixes.
Stable and dev versions:
0.3.0.1016
- (sharktooth) Temporary workaround to avoid closing of the preview window and loosing the AR. Also added some more resize buttons (half and quarter size) since the Video Player control box was removed. Fixes #2009428
- (sharktooth) [x264ConfigurationPanel] VBV MaxRate control disabled until a buffer size is specified. Fixes #2021419

chainring
23rd July 2008, 06:11
After updating to 1016, the preview window is missing any window controls. It can't be closed, minimized, or maximized. I even uninstalled meGUI, redownloaded 1014, installed; it checked out fine. Updated to 1016 again and no window controls.

Is this a new feature?

check
23rd July 2008, 07:52
chainring: this is the development thread. It's not the tech support thread.

Sharktooth
23rd July 2008, 12:17
stable and dev versions:
0.3.0.1017
- (sharktooth) [AVCLevels] Unrestricted->AutoGuess since x264 rev915 changes.

Sharktooth
23rd July 2008, 12:17
After updating to 1016, the preview window is missing any window controls. It can't be closed, minimized, or maximized. I even uninstalled meGUI, redownloaded 1014, installed; it checked out fine. Updated to 1016 again and no window controls.

Is this a new feature?
read the changelog. that was done to prevent idiots to close the preview window when we already said it should remain opened coz it is NECESSARY to keep the AR info for anamorphic encodes.

chainring
23rd July 2008, 16:00
read the changelog. that was done to prevent idiots to close the preview window when we already said it is should remain opened coz it is NECESSARY to keep the AR info for anamorphic encodes.
Gotcha! I initially took it to mean the preview window staying open during the .avs building stage, but now see that it needs to be open even when loading into the queue. Thanks for the clarification.

And apologies for posting into the dev thread. Oops.

Sharktooth
24th July 2008, 04:03
Stable and dev versions:
0.3.0.1018
- (sharktooth) [VideoPlayer.cs] Restored the ControlBox to allow closing the preview.
0.3.0.1019
- (sharktooth) [VideoPlayer.cs] Fixed stupid visual bug caused by VS2008 designer which sometimes automatically relocate controls for no apparent reasons.

Sharktooth
24th July 2008, 12:49
Stable and dev versions:
0.3.0.1020
- (sharktooth) [VideoPlayer.cs] Nicer zoomin/out functions

Sharktooth
8th August 2008, 17:30
no new builds for a while. i will be hospitalized again today or tomorrow. the usual problem (MS).

Kurtnoise
16th August 2008, 14:59
Hi,

a small question for you guys : what would be the ideal for audio streams information concerning d2v file creator ?

the current code is like this: [trackID] - CodingMode / SamplingRate / Language

http://img201.imageshack.us/img201/2122/d2vcreatorir4.th.png (http://img201.imageshack.us/my.php?image=d2vcreatorir4.png)

I'd like to add also the channels number but I'm not able to retrieve the correct values for the moment...:(

This order is fine for you or what do you suggest ? I don't care personally except that the [trackID] must be first...:p


edit: forgot to mention that these values come from the parsing of the IFO file and actually we need only the trackID for the d2v file creation. :rolleyes:

Sharktooth
16th August 2008, 15:12
seems ok to me. i agree on the trackID to be the first also. maybe some more visibility for the language.

Kurtnoise
16th August 2008, 15:23
like Director's Comments or Visually Impaired, Normal ?

Sharktooth
16th August 2008, 17:02
just bold or coloured (red, blue, green?)... naaa... it's ok as it is.

Kurtnoise
16th August 2008, 19:02
this implies to change the component because a checkedListBox doesn't have a DrawItem Event...



edit: there is a way by overriding it but huh...

Sharktooth
16th August 2008, 19:57
leave it as in the screenshot. it's ok.

Sharktooth
19th August 2008, 04:49
0.3.0.2001
- (sharktooth) [Installer] New megui.ico and uninstall.ico
- (kurtnoise) [JobWorkerWindow] a workaround to shutdown the Worker Form (fix bug #2042450).
- (kurtnoise) [CodecManager] added SubtitleType.Register for ASS & SSA subtitles format.
- (kurtnoise) disabled "Settings" from the log.
- (kurtnoise) removed LMP4 codec.
- (kurtnoise) removed "Automatically set the number of threads" from the Settings in order to avoid override from users.
- (sharktooth) New application icon
- (kurtnoise) [IFOparser] added GetAudioStreamInfos(). 1st working draft...
- (kurtnoise) remove unused code from project files.
- (kurtnoise) [AudioEncoder] OpenDMLSource was a bad idea (fix bug #2016146)
- (kurtnoise) [FilmCutter] more accurate fps value to avoid desync issues.
- (kurtnoise) [FilmCutter] 10l for me...multiply by 1000 instead of 100 give the appropriate result.
- (kurtnoise) retrieve automatically the proper IFO file when we have many of them in the current path.
- (kurtnoise) added DetermineMovieIFO(.) to retrieve the correct IFO file from the given path.
- (kurtnoise) applied GetSubtitlesStreamsInfos(.) to the VobSubber.
- (kurtnoise) add IFOparser.cs to the project files.
- (kurtnoise) added IFOparser class. My first working draft. Only use with VobSubTool for the moment.
- (kurtnoise) add Short2FullLanguageName(.) function to retrieve the full language name from the 2 char code. Needed for the IFO parser.
- (kurtnoise) [FilmCutter] add fps_denominator in GetCutsScript() to have more accuracy. (fixed bug #2023354)
- (kurtnoise) make process priority more granular. Patch by Sean McGovern.
- (kurtnoise) add/update GPL license header.
- (kurtnoise) put references in alphabetical order.
- (kurtnoise) fixed several warning for the compilation.
- (kurtnoise) added an Avisynth checking in the shown Event.
- (kurtnoise) added free disk space detection. Might be useful for troubleshooting.
- (kurtnoise) added CPU detection.
- (kurtnoise) [AudioEncoder] switched Normalize() after the downmix cases.
- (kurtnoise) better OS detection.
- (kurtnoise) added GetMOStuff function.
- (kurtnoise) added System.Management reference to the project files
- (kurtnoise) added alternate backcolors for ListViews.
- (kurtnoise) added DRC to the script for Wav Sources if specified.
- (kurtnoise) updated MediaInfo library and its wrapper to the latest release (0.7.7.4).
It's in the auto-update. A new install package is up on sourceforge as well: http://sourceforge.net/project/showfiles.php?group_id=156112&package_id=174059&release_id=620590

rack04
19th August 2008, 05:09
Very impressive change log. Thank you all for all the hard work.

Sharktooth
19th August 2008, 05:11
say thanks to kurtnoise. he did it and it's even not yet finished.

Sharktooth
19th August 2008, 13:22
0.3.0.2002
- (kurtnoise) [JobWorkerWindow] revert to previous state...

installer: http://sourceforge.net/project/showfiles.php?group_id=156112&package_id=174059&release_id=620655

Kurtnoise
27th August 2008, 18:21
@Sharktooth: you've made a small typo in the x264-950 package at http://megui.org/auto/stable/...(zip extension twice).

Updater fails.

Sharktooth
27th August 2008, 18:25
fixing...

edit: done.

Sharktooth
28th August 2008, 14:56
0.3.0.2003
- (kurtnoise) [CodecManager] vertical alignment.
- (kurtnoise) Now use DriveInfo class to retrieve free space from hard drives.
- (kurtnoise) updated MediaInfo library and its wrapper to the latest release (0.7.7.5)
- (kurtnoise) [MKVMuxer] some cleanup in the code.
- (sharktooth) [FilmCutter.cs] Fixed the fades syntax.

Sharktooth
29th August 2008, 15:31
0.3.0.2004
- (kurtnoise) [VideoPlayer] allow control via the Left and Right arrows keys (Feature Request #2064673) for the prev/next frame buttons.
- (kurtnoise) [x264] Anchor = Top & Left only.
- (kurtnoise) [xvid] misc.
- (kurtnoise) [xvid] added custom command line & several other tunings.
- (kurtnoise) [Form1] better errors catching for retrieving free disk spaces.
- (kurtnoise) [VistaStuff] added GPL header.
- (kurtnoise) Now, ListViews & Treeviews components use the neat and clean Vista theme. :p
- (kurtnoise) added VistaStuff class.

Taurus
29th August 2008, 16:28
core_0_3_0_2004.zip is corrupted via updater
and from http://megui.org/auto/stable/

Sharktooth
29th August 2008, 16:32
yup.. it's a 7z archive renamed as zip... my mistake.

edit: should be fixed now. ensure to clear the update_cache dir before re-updating.

SacredCultivator
29th August 2008, 20:30
@Sharktooth: Just wondering, if upgrading to a new Core Version, is it best to clear/delete everything in the 'update_cache' folder and then 'force-reinstall' everything? (Or i guess what i mean is.. would it be wise to just 'delete' older versions of things in the Update Cache?
{Sorry if this doesn't belong here}

Adub
30th August 2008, 01:02
If you are using Autoupdate, then just let it do it's thing.

If you are going to do a complete reinstall, delete everything, install, run Autoupdate, and go.

And yes, this doesn't belong here.

Kurtnoise
1st September 2008, 16:11
Heya,

a small question for you guys : what would be the ideal for audio streams information concerning d2v file creator ?

the current code is like this: [trackID] - CodingMode / SamplingRate / Language

http://img201.imageshack.us/img201/2122/d2vcreatorir4.th.png (http://img201.imageshack.us/my.php?image=d2vcreatorir4.png)

I'd like to add also the channels number but I'm not able to retrieve the correct values for the moment...:(
good news...

1/ I'm able now to find the correct values for channels.
2/ Patch to use this for the d2v creator is coming.
3/ The OneClickEncoder doesn't support it yet.

/me haPpY...:D

check
1st September 2008, 16:27
Are you still interested in migrating to Trac? If you would like me to continue running Trac as is I am happy to, but an indication of when a final decision will be made would be appreciated :-)

Kurtnoise
1st September 2008, 16:55
yes...still interested but before to make the migration I'd like to fix some bugs.

Sharktooth
2nd September 2008, 03:15
i found i have a problem in my "patch" bin... so i have to check a $#!7load of code i commited in the past. im sorry if that caused bugs or any other bad behaviours...

Sharktooth
3rd September 2008, 15:01
0.3.0.2006
- (kurtnoise) [VobinputWindow] demuxTracks disabled by default.
- (kurtnoise) [VobinputWindow] added "Demux All Tracks".
- (kurtnoise) [VobinputWindow] updated GetAudioInfos().
- (kurtnoise) [IFOparser] added a verbose param for GetAudioInfos() to retrieve complete informations from the file.
- (kurtnoise) [IFOparser] added GetAudioLanguageCodeExt() to the parser.
- (kurtnoise) [IFOparser] GetVideoInfos() : use a StringBuilder for verbose mode.
- (kurtnoise) remove trailing white space from ChangeLog.txt
- (kurtnoise) [IFOparser] added a verbose param for GetVideoInfos() to retrieve complete informations from the file.
- (kurtnoise) [IFOparser] vertical alignment & better string format for videodesc.

Sharktooth
4th September 2008, 19:14
0.3.0.2007
- (kurtnoise) [FilmCutter] fixed issue #2090575

0.3.0.2008
- (sharktooth) [AVCLevels.cs] Fixed all level limits, part 2. Differentiation between baseline/main and high profiles CPBs.
- (sharktooth) [AVCLevels.cs] Fixed all level limits.

stax76
13th September 2008, 15:05
Update failes here with following error:

Trying server: http://megui.org/auto/stable/
Retrieving update file from server...
Error: Couldn't connect to server.
Trying server: http://mewiki.project357.com/auto/stable/
Retrieving update file from server...
Error: Couldn't connect to server.
Error: Could not download XML file

StaxRip and all my private tools also refused to connect to the web, I was able to fix it by adding the following code:

WebClient.Proxy = Nothing

I've no clue why all of the sudden this is needed, if nobody else reports it to MeGUI or StaxRip then I guess there is something unusual with my system. Did you fix the last write date for zip extraction btw.?

Sharktooth
13th September 2008, 15:16
auto-update works here. the zip file extraction date is not yet fixed since we're all particularly busy with real life issues.

however here it is the latest update:
0.3.0.2009
- (sharktooth) [MkvMergeMuxer.cs] --delay -> --sync for compatibility with mkvtoolnix 2.3.0
- (kurtnoise) [AVS Creator] added "Apply auto Preview" feature. When it's checked, Crop & Resize modifications will be applied automatically in the video preview. No need to click anymore on "Preview AVS Script" button with this...
- (kurtnoise) [AVS Creator] use input filename as default for the save dialog.

stax76
13th September 2008, 15:48
auto-update works here.

If not many other reports will show up I have to search the problem on my side I'm afraid.

the zip file extraction date is not yet fixed since we're all particularly busy with real life issues.

Just add following line in the 'ExtractZipFile' method:

File.SetLastWriteTime(pathname, entry.DateTime);

Sharktooth
13th September 2008, 15:56
is that enough to fix the "compatibility" with staxrip?

stax76
13th September 2008, 16:35
Another issue is your x264 profiles use switches requiring patches, I've three option here:


Use patched builds
Remove unsupported switches
Remove profiles using unsupported switches

What do you think about each of this options?

LessThanJake
13th September 2008, 17:32
(kurtnoise) [AVS Creator] added "Apply auto Preview" feature. When it's checked, Crop & Resize modifications will be applied automatically in the video preview. No need to click anymore on "Preview AVS Script" button with this...

Some things, maybe bugs(?), I´ve noticed:


When resizing the preview window manually after loading a source in the AVS-Script-Creator to see the whole picture for cropping, every click on one of the four crop buttons and the crop checkbox itself, resizes the preview window back to the original frame-size. Very annoying when working with HD-content.
It seems to me that everytime one of the four crop-buttons is pressed, the filtergraph which is used for the preview, will be rebuilded anew. You can reproduce this behavior when loading a MKV clip via DirectShowSource. In my case the HaaliSplitter and the ffdshow decoder icons in the systray will appear and disappear with every click on the crop-buttons
The behavior from 2. generally slows down the cropping process. Clicking the crop buttons very fast as in .2008 ist not possible anymore.
Three complete MeGUI-crashes playing around with the crop buttons, the crop checkbox and the new "Apply Auto Preview" - Checkbox, but not reproduceable


greets
LTJ

Sharktooth
14th September 2008, 03:20
Another issue is your x264 profiles use switches requiring patches, I've three option here:


Use patched builds
Remove unsupported switches
Remove profiles using unsupported switches

What do you think about each of this options?
remove unsupported switches or use patched builds.

Sharktooth
14th September 2008, 04:22
0.3.0.2010
- (sharktooth) [AviSynthWindow.cs] Check if player window is already the original player before trying to reopen it (fixes an issue introduced with the previous commit)
- (sharktooth) [AviSynthWindow.cs] Auto-Preview disabled by default. When unchecked it now re-opens the original video player.
- (sharktooth) Updated AQ settings for the new x264 revisions
- (sharktooth) [FileUtil.cs] Added SetLastWriteTime in the ExtractZipFile method.

[ReX]
14th September 2008, 04:39
Sharktooth, why "Resize" is enabled by default on AviSynth window? I disable it every time. :p

Sharktooth
14th September 2008, 04:43
coz the source may have an odd resolution. that will make the encoders crash or quit with an error.
ill improve that to in the next update.

Sharktooth
15th September 2008, 03:35
@stax: i had to revert the r704 change ([FileUtil.cs] Added SetLastWriteTime in the ExtractZipFile method.) coz it was causing weird problems when importing presets manually or thru the auto-update.
if you want some details just ask.

Sharktooth
15th September 2008, 04:01
0.3.0.2011
- (kurtnoise) updated MediaInfo library and its wrapper to the last release (0.7.7.6)
- (kurtnoise) [x264Encoder] enable aq-mode only for index=0
0.3.0.2012
- (sharktooth) Reverted r704 ([FileUtil.cs] Added SetLastWriteTime in the ExtractZipFile method) since it was causing problems to the auto-update

stax76
15th September 2008, 10:06
What did the method look like and what problems did it cause?

Sharktooth
15th September 2008, 14:06
it caused presets (only?!?) import failing (file in use).
http://www.webalice.it/f.corriga/temp/fatal.png
r704:
Index: G:/Backup/Documenti/User/Projects/megui/megui/trunk/core/util/FileUtil.cs
===================================================================
--- G:/Backup/Documenti/User/Projects/megui/megui/trunk/core/util/FileUtil.cs (revision 703)
+++ G:/Backup/Documenti/User/Projects/megui/megui/trunk/core/util/FileUtil.cs (revision 704)
@@ -82,6 +82,7 @@
FileUtil.ensureDirectoryExists(Path.GetDirectoryName(pathname));
Stream outputStream = File.OpenWrite(pathname);
FileUtil.copyData(inputFile.GetInputStream(entry), outputStream);
+ File.SetLastWriteTime(pathname, entry.DateTime);
outputStream.Close();
}
}

stax76
15th September 2008, 14:22
According to the error message it tries to set date on the xml file instead of the file to extract, I thought the variable 'pathname' was the path to the file that was extracted but it seems it is the path of the xml file.

Sharktooth
15th September 2008, 14:24
the xml file is the extracted file and im an idiot since maybe i should put the setlastwritetime AFTER the outputstream.close() so the file will be non longer in use while writing the date.

stax76
15th September 2008, 14:46
Ahh, now I see it too, that whould be a good idea indeed. :)

Sharktooth
15th September 2008, 20:28
0.3.0.2013
- (shatktooth) Fixed typos in the previous commit + x264 default subme set to 6 (RDO)
- (sharktooth) Updated tooltips for the new options.
- (sharktooth) EN/US localization for psy-trellis and psy-rdo values.
- (sharktooth) x264 psy-trellis and psy-rdo controls. changed the b-adapt option name to avoid errors when importing old presets.
- (sharktooth) x264 new b-adapt option (replaces no-b-adapt). this update breaks the presets compatibility.
- (sharktooth) [FileUtil.cs] Re-added SetLastWriteTime in the ExtractZipFile method (this time in the right place...)

stax76
15th September 2008, 23:31
Warm startup is 4-5 seconds here, when I open Process Explorer, I can see csc.exe (C# command line compiler) is lauched everytime MeGUI starts, slowest things is IO like XML parsing usually, such things can be done after the form was shown, with some tuning it should be possible to make a warm start less then a second.

Sharktooth
16th September 2008, 03:02
yup, ill look at how it can be "optimized" but the xml parsing is necessary to populate the presets comboboxes.
we are planning a main form similar to the imgburn one though, that would help a lot since xml parsing can be done after that form is shown.

tetsuo55
16th September 2008, 11:17
I have a suggestion for on the fly profile creation based on minimal end-user input.

The user would simply check some boxes.

For compatibility:
-Hardware compatible mode(This would enable everything needed for DXVA and standalones)
-Apple/xbox1 mode (This can only be checked when hardware mode is checked, it adds further restrictions for these 2 systems)

When Hardware mode is not checked Megui uses Unrestricted mode

-Anime/Toon(This enables the special anime/toon settings for either hardware or unrestricted)

For quality(the slider idea mentioned above would probably be better)
-Fast
-Balanced
-HQ
-Extra Quality
-Insane

Megui would automatically calculate if it needs SD or HD settings based on the source.(The bonus with this is that max ref-frames can be calculated more accurately for non standard resolutions)

Everything would still be based on the information in this thread.

The screen could be updated with more options for other devices like mobiles. or even better, only a 3rd option added with hardware-custom with selectable devices. These would add device limits but the rest would still be calculated on the fly.

Kurtnoise
16th September 2008, 13:37
patches welcome...:>

tetsuo55
16th September 2008, 14:21
patches welcome...:>

If i could i would

I could write out detailed requirements, but someone else would have to translate to code

littleD
16th September 2008, 14:29
Hello and thank u guys for great program. From my side i have small feature request to add option "import all" when updating audio/video profiles. There are so many presets, and they still grow :) No need to click one by one.

rack04
16th September 2008, 14:31
Hello and thank u guys for great program. From my side i have small feature request to add option "import all" when updating audio/video profiles. There are so many presets, and they still grow :) No need to click one by one.

First this is not the thread for feature requests. Second the option is already there. Right click on the profile import screen and click select all.

Avenger007
16th September 2008, 14:36
Right click on the profile import screen and click select all.
A tool tip should pop-up stating something to that effect.

Kurtnoise
16th September 2008, 15:08
I could write out detailed requirements, but someone else would have to translate to code
please, do...:)

Kurtnoise
16th September 2008, 15:09
A tool tip should pop-up stating something to that effect.
Something like that I guess...

http://pastebin.com/f592c99ee

:p

Sharktooth
16th September 2008, 15:13
- this.TopMost = true;
why?

Kurtnoise
16th September 2008, 15:22
overrided by the load event I guess...I'll check.

cuub
16th September 2008, 15:34
Update failes here with following error:

Trying server: http://megui.org/auto/stable/
Retrieving update file from server...
Error: Couldn't connect to server.
Trying server: http://mewiki.project357.com/auto/stable/
Retrieving update file from server...
Error: Couldn't connect to server.
Error: Could not download XML file

StaxRip and all my private tools also refused to connect to the web, I was able to fix it by adding the following code:

WebClient.Proxy = Nothing

I have the very same error but stax solution doesn't work for me. Any idea?:)

Sharktooth
16th September 2008, 15:50
fix your internet connection
probably you or your ISP have some filters, proxy, etc

tetsuo55
16th September 2008, 16:50
please, do...:)

Okay it will take some time to get all the calculations right and in the right place.

Ill post it here once i finish with it.

lexor
16th September 2008, 17:24
Is there a reason that multiselect is gone in 3.x as opposed to 2.x for importing presets? I remember 2.x even had a nice message saying that we might find using Shift useful. Nowadays clicking every single preset to be imported is rather annoying.

corporalgator
16th September 2008, 17:29
Can't you just right click and choose select all? Works in both windows xp and windows vista.

lexor
16th September 2008, 17:34
Can't you just right click and choose select all? Works in both windows xp and windows vista.
Didn't occur to me to right click... thanks!

stax76
17th September 2008, 02:21
@devs

I was reading '--threads auto' implies '--thread-input', any chance to remove '--thread-input' in this case?

@cuub

Do you have a proxy in your internet explorer settings, removing it solved the issue for me.

Sharktooth
17th September 2008, 02:23
im not sure if threads auto on a single core (when threads auto = 1) will enable thread input.
if it does, then i can remove it.

EDIT: it enables --thread-input only if threads > 1.

stax76
17th September 2008, 03:05
So it depends on the CPU if it's gonna used? This is my current code:


'enable/disable thread input ComboBox

If nudThreads.Value = 0 Then
cbThreadInput.Checked = True
cbThreadInput.Enabled = False
Else
cbThreadInput.Enabled = True
End If

'generate command line

If Params.Threads.Value = 0 Then
sb.Append(" --threads auto")
ElseIf Params.Threads.Value > 1 Then
sb.Append(" --threads " + Params.Threads.Value.ToString)
End If

Sharktooth
17th September 2008, 03:26
it depends on the number of threads. if threads auto returns a value higher than 1 then --thread-input is assumed, otherwise it doesnt.
however i prefer to have --thread-input always enabled. i can change the code to have --thread-input not printed to the commandline when it's not necessary (threads > 1) but is that really necessary?

stax76
17th September 2008, 03:55
Not necessary, just somehow similar like --ref 1, --filter 0:0 etc.

Sharktooth
17th September 2008, 04:51
ok, ill have a look at it tomorrow.
4.50AM and i need to sleep :)

Audionut
17th September 2008, 17:25
Bug report.

x264 doesn't accept .0 in qp mode

ie: qp 20 works
qp 20.0 does not

Sharktooth
17th September 2008, 17:31
so what? you have specified a wrong QP.
that's not a bug. infact using the up/down arrow will set integer QPs.

Audionut
17th September 2008, 17:32
MeGui specifies it. Why else would I be posting in this thread. :eek:

Sharktooth
17th September 2008, 17:33
nope... just tested. it happens only if you set the QP by hand...
and btw, if you do that and then use the up/down arrows megui will reset the value to an integer.

Audionut
17th September 2008, 17:36
http://img393.imageshack.us/img393/5372/megui11rg9.png
http://img383.imageshack.us/img383/9827/megui2ud3.png

Audionut
17th September 2008, 17:50
Set crf mode to whatever.0

Press ok, re-enter config and set to qp mode.

Sharktooth
17th September 2008, 17:51
http://www.webalice.it/f.corriga/temp/qp.png

rack04
17th September 2008, 18:16
http://i11.photobucket.com/albums/a199/rack04/untitled.jpg

Sharktooth
17th September 2008, 18:23
cant replicate. it doesnt happen here.

Audionut
17th September 2008, 18:25
http://rapidshare.com/files/146069755/megui.mp4

Trafficshare, no wait times.

rack04
17th September 2008, 18:27
http://rapidshare.com/files/146069755/megui.mp4

Trafficshare, no wait times.

Confirmed.

Sharktooth
17th September 2008, 18:36
i repeat... it doesnt happen here.

EDIT: ok, i managed to reproduce it. that's quite hard to make it happen...

Audionut
17th September 2008, 19:01
So anyway, the other day, I was having a quick chat with peter, who, as usual, was minding the pearly gates. And I says to him, "i've found this bug on earth". "It rains, and it gets very cold". Peter replies "Audionut, it doesn't happen here, perhaps you found that happy plant". And I says, "no, come down and take a look". So he came down, and I showed him, and he seen with his two own eyes what I was talking about. He went straight back to his job at the pearly gates and replied, "It doesn't happen here". :rolleyes:

Sharktooth
17th September 2008, 19:04
i managed to reproduce it. you should start with CRF... play with up/down arrows to set a value of xx.0 (if it's xx.1 or any other number it doesnt happen)... then switch to CQ...
seriously... i dont think im gonna fix it...

Audionut
17th September 2008, 19:12
i managed to reproduce it.

Yay. As long as your aware and acknowledge it. :thanks:

Sharktooth
17th September 2008, 19:36
ok, ok... i fixed it just coz it's a M$ bug...

Sharktooth
17th September 2008, 19:53
0.3.0.2014
- (sharktooth) [x264Encoder.cs] Fixed a rare bug that happens switching from CRF to CQ modes.
- (sharktooth) [x264ConfigurationPanel.cs] Deadzones label gets greyed when trellis > 0 for coherence.
- (sharktooth) Feature #2114153

check
18th September 2008, 09:39
Just a note to mention I'll be shutting down the test trac install at the end of this month. If you'd like to use trac in the future please let me know.

Audionut
18th September 2008, 13:50
ok, ok... i fixed it just coz it's a M$ bug...

Thanks Sharktooth. Working great.

Kurtnoise
18th September 2008, 17:23
@all:
please, no bugs reports or any helps about megui via PMs...
I must confess that I decided to stop the development from now.

rack04
18th September 2008, 17:32
@all:
I must confess that I decided to stop the development from now.

I respect your wishes and thank you for all your hard work.