View Full Version : MeGUI development
Kurtnoise
12th September 2007, 16:51
Sorry but...what is the relationship between MediaInfo(wrapper) and the avs preview ? because I'm pretty sure that the lib doesn't have an avs parser.
@nk : Vista 32 or 64 bits ?
Sharktooth
12th September 2007, 17:23
Hmm cool, maybe better to remove ANY spaces on SVN for any file or dir, for my auto scripts its very annoying :)
http://megui.svn.sourceforge.net/viewvc/megui/Installer/
Sharktooth
13th September 2007, 13:58
0.2.6.1013
- (Sharktooth) New MeGUI icons and installer fixes
- (Kurtnoise) [JobQueue] : scrollbar fix (#1793456)
- (Kurtnoise) [AudioEncoder] : fix mp2 bitrate command line for the new FFmpeg builds.
- (Kurtnoise) Better label names for some encoders.
- (Kurtnoise) Cosmetic : added m2ts extension.
- (Kurtnoise) Removed resize event.
Kurtnoise
13th September 2007, 14:48
you should wait before to submit new release dude...;)
coz, bugs tickets 1677527, 1749803, 1791912, 1793313 can be closed now.
btw, Vista issues suck...I need to reinstall this OS to debug the GUI. blahhhhh.
Sharktooth
13th September 2007, 15:04
get some virtualization software.
im also thinking to install vista to test megui issues... just for that...
however ill release a new build later...
Sharktooth
13th September 2007, 15:21
here we go:
0.2.6.1014
- (Kurtnoise) [MainForm] fixed minimize to tray (#1749803)
http://sourceforge.net/project/showfiles.php?group_id=156112&package_id=244469
Kurtnoise
13th September 2007, 16:49
I don't like very much virtualization tools to debug applications but this is an other story. :)
Questions for you:
About yadif : we should add it in the server and/or Update Window Form or not ?
If I add Aften, should I drop the FFmeg AC3 part/code or not ?
Sharktooth
13th September 2007, 16:54
yadif is already in the autoupdate and the updatewindow has an entry for it. are you having problems getting it from the autoupdate?
http://img265.imageshack.us/img265/8543/yadiflj2.th.png (http://img265.imageshack.us/my.php?image=yadiflj2.png)
I would keep both Aften and ffmpeg AC3. we have even 3 AAC encoders...
Kurtnoise
13th September 2007, 17:02
yadif is already in the autoupdate and the updatewindow has an entry for it. are you having problems getting it from the autoupdate?
well...it's not in the ListView for me. :confused:
http://img258.imageshack.us/img258/8492/meguiupdatewindow130920bd7.th.png (http://img258.imageshack.us/my.php?image=meguiupdatewindow130920bd7.png)
About Aften : it uses the same encoder engine. ;) That's why I ask...
Sharktooth
13th September 2007, 17:05
Its not in the listview coz its not in the avisynth filters section. since it's a C-Plugin its treated (and shown in the listview) as an external program.
about aften... i think ffmpeg is safer to "mantain"... i mean, aften is a small project and one day it may die, while ffmpeg is a solid project...
Kurtnoise
13th September 2007, 17:20
Its not in the listview coz its not in the avisynth filters section. since it's a C-Plugin its treated (and shown in the listview) as an external program.
well...the problem is outwhere I think. I can't see it when I select the 1st node in the TreeView (the complete list).
Sharktooth
13th September 2007, 17:34
uhm... try deleting the settings.xml file inside the megui installation folder
if it doesnt still show up delete also the autoupdate.xml file
or just reinstall megui in another dir
Kurtnoise
13th September 2007, 17:43
same problem...this link (http://mewiki.project357.com/auto/) is the correct one for the development ?
coz I can't select the web link...
http://img507.imageshack.us/img507/3312/meguiupdatewindow130920gj8.th.png (http://img507.imageshack.us/my.php?image=meguiupdatewindow130920gj8.png)
whereas they are listed in settings.xml. Weird...:s
next discussion about this issue here (http://forum.doom9.org/showthread.php?p=1044639#post1044639). :)
Sharktooth
13th September 2007, 17:51
no.. the autoupdate is located at http://megui.org/auto/ (dev) and http://megui.org/auto/stable/ (stable)
... however i cant see the servers too... but it updates regularly... damn bugs...
saint-francis
13th September 2007, 20:54
Yadif goes to the Avisynth plugin directory for me and then when there is a new update I get a message telling me that the path is incorrectly set for yadif.dll until I set it manually.
Sharktooth
14th September 2007, 13:50
yadif should not go to the avs plugin dir... nowhere in the code nor in the autoupdate there's something that tells megui to place it there...
bob0r
14th September 2007, 15:12
This is the dev server:
Trying server: http://mewiki.project357.com/auto/
Retrieving update file from server...
After restart:
Trying server: http://megui.org/auto/
Retrieving update file from server...
Nothing shows any update to yadif09.zip
Not even 0.2.6.1014
:)
Sharktooth
14th September 2007, 15:14
yeah... the mewiki is having troubles though...
foxyshadis
14th September 2007, 19:00
yadif should not go to the avs plugin dir...
Why not? It doesn't hurt anything, you just won't be able to autoload it. (Unless you also create an avsi to go alongside it that does nothing but load it.)
saint-francis
14th September 2007, 22:02
yadif should not go to the avs plugin dir... nowhere in the code nor in the autoupdate there's something that tells megui to place it there...
Then where should it go?
Selur
15th September 2007, 05:24
in a subfolder like e.g. avisynth/plugins/yadif
Kurtnoise
16th September 2007, 10:02
What about yadifmod instead ?
yadifmod v1.0 (http://bengal.missouri.edu/~kes25c/yadifmod_v1.zip). I've had this for a while, but never got it together for release. It is the same as Fizick's port, except that spatial predictions are taken from a user supplied clip. Also, it is not an Avisynth_C plugin. It works with YV12 and YUY2 input.
Sharktooth
16th September 2007, 15:00
yep, i think it will be much better just coz we can support it as an avs plugin instead of creating its own settings...
Dark Shikari
17th September 2007, 01:55
Just a reminder to the MeGUI devs that when my patches (http://forum.doom9.org/showthread.php?t=129842) are committed to the main x264 build, MeGUI will probably want to add options to support --me imh, --fpl-cmp satd, and --me-prepass (and tweak the more insane profiles to support them).
Sharktooth
17th September 2007, 01:59
np. post the request in the feature request tracker on SF along with both short and detailed descriptions of those options :)
Kurtnoise
19th September 2007, 10:10
well...the problem is outwhere I think. I can't see it when I select the 1st node in the TreeView (the complete list).
I think I found the problem...there is no yadif node in the upgrade.xml file. At least on this one (http://megui.org/auto/upgrade.xml)...:)
Sharktooth
19th September 2007, 12:25
??? what happened ???
i added it when berrinam added yadif to megui...
going to fix it...
EDIT: please check if it works now...
Kurtnoise
19th September 2007, 13:20
yes...works fine now.
10x
Sharktooth
19th September 2007, 13:39
i still cant understand why it wasnt there.
i clearly remember i've already added it...
Kurtnoise
19th September 2007, 17:17
@Sharktooth : about the #1797746 (http://sourceforge.net/tracker/index.php?func=detail&aid=1797746&group_id=156112&atid=798476):
Index: AviSynthAudioEncoder.cs
===================================================================
--- AviSynthAudioEncoder.cs (revision 215)
+++ AviSynthAudioEncoder.cs (working copy)
@@ -376,7 +376,58 @@
}
else
{
- _logBuilder.Append("Error:\n" + e.ToString());
+ // Better Errors Exception for Audio Encoders
+ int path_index = _encoderExecutablePath.LastIndexOf(@"\");
+ string audio_encoder = _encoderExecutablePath.Substring(path_index + 1).ToLower();
+
+ _logBuilder.Append("Error:\n");
+
+ if (audioJob.Settings is NeroAACSettings)
+ {
+ if ((audio_encoder != "neroaacenc.exe") || (audio_encoder != "neroaacencsse.exe"))
+ _logBuilder.Append(audio_encoder + " not found in the path...\n");
+ }
+
+ if (audioJob.Settings is OggVorbisSettings)
+ {
+ if (audio_encoder != "oggenc2.exe")
+ _logBuilder.Append(audio_encoder + " not found in the path...\n");
+ }
+
+ if ((audioJob.Settings is MP2Settings) || (audioJob.Settings is AC3Settings))
+ {
+ if (audio_encoder != "ffmpeg.exe")
+ _logBuilder.Append(audio_encoder + " not found in the path...\n");
+ }
+
+ if (audioJob.Settings is MP3Settings)
+ {
+ if (audio_encoder != "lame.exe")
+ _logBuilder.Append(audio_encoder + " not found in the path...\n");
+ }
+
+ if (audioJob.Settings is FaacSettings)
+ {
+ if (audio_encoder != "faac.exe")
+ _logBuilder.Append(audio_encoder + " not found in the path...\n");
+ }
+
+ if (audioJob.Settings is AudXSettings)
+ {
+ if (audio_encoder != "enc_audx_cli.exe.exe")
+ _logBuilder.Append(audio_encoder + " not found in the path...\n");
+ }
+
+ if (audioJob.Settings is WinAmpAACSettings)
+ {
+ if (audio_encoder != "encaacplus.exe")
+ _logBuilder.Append(audio_encoder + " not found in the path...\n");
+ if (File.Exists(encoder_path+"aac_encplus.dll") == false)
+ _logBuilder.Append("aac_encplus.dll not found in the path...\n");
+ if (File.Exists(Environment.SystemDirectory+@"\nscrt.dll") == false)
+ _logBuilder.Append("nscrt.dll must be in your Windows System directory...\n");
+ }
+
su.HasError = true;
raiseEvent();
}
ok to commit ?
Sharktooth
19th September 2007, 18:04
ok. keep in mind the audxsettings should be replaced by mp3surroundsettings once mp3surround gets fully integrated
pimpMyHD
20th September 2007, 14:39
Hi guys,
i use daily megui, and i must admit that if megui had been a commercial software, i 'd bought it.
As a .Net dev, i looked at the code. I can't help it ;-)
I must admit it is mostly well coded, but some .net/C# specifications or rules are not always respected.
for example, some abstract types have public constructors, raising some runtime reserved exceptions types , etc ... stuffs like that ...
There are no 'top of the todo list' stuff to change, but it could be fine to tweak some lines of code.
I know that managing a project do not make room to code quality, and time is mostly spend to optimizing features.
This is the only way i can help this incredible project, i do not have the video/audio processing knowledge to help more.
so ... if you agree ... if you are interested in it, i can correct what i think it should be.
I will post the sources if you will so.
regards.
Sharktooth
20th September 2007, 15:02
yes, any help is appreciated. if you have some experience with SVN, you can post unified diffs for latest code revision on the patches tracker (http://sourceforge.net/projects/megui) and we will gladly integrate them in the trunk. credits will be given in the megui changelog.
pimpMyHD
20th September 2007, 15:19
yes, any help is appreciated. if you have some experience with SVN, you can post unified diffs for latest code revision on the patches tracker (http://sourceforge.net/projects/megui) and we will gladly integrate them in the trunk. credits will be given in the megui changelog.
Ok, i will download the latest revision and start to look at the code. When i will ready to commit some code, i'll deal it with you ( just to be sure i'll commit the right way, in the right place).
Sharktooth
20th September 2007, 15:35
thanks
pimpMyHD
20th September 2007, 16:30
thanks
i tried to MP you, but it seems you need to make room in your mp mail box :D
Sharktooth
20th September 2007, 16:32
eh... my PM inbox is full on purpouse. however you can contact me by MSN email
Fizick
22nd September 2007, 08:04
I do not like when my programs (Avisynth plugins) are distributed in stripped form (without documentation and source codes).
When you remove doc, you make user blind. He has no chance to learn how program work, what is additional options, who developed it, etc.
When you remove souce codes, you violate GPL license.
If you distribute GPL program binary, you must distribute its source too.
Here is part 3 of GPL license text:
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
Probably, if you downloaded some GPL binary WITHOUT source (for example Avisynth, which have separate source archive package), you may distribute it without a source too.
But if you downloaded some GPL binary WITH a source in one zip package, you must distribute whole package (with source),
or two packages (small without source codes and full with source code), from same place (server).
User must have info about license status of every "updated" programs and have option to get source codes for every distributed version of binary.
To be specific, I say here about Yadif.
Sharktooth
22nd September 2007, 13:10
yeah, we know but we have limited traffic on our update server:(
however everything in the autoupdate is licensed under GPL.
since almost all the megui userbase is on this forum, they know yadif and other packages are somewhere here.
however the best thing we can do is to add a readme file with credits and links to the forum threads or websites containing the sources and docs, since distributing them would kill our traffic quota.
Doom9
22nd September 2007, 18:04
But if you downloaded some GPL binary WITH a source in one zip package, you must distribute whole package (with source),Read the sections you have posted here again.. nowhere does it say that. As long as the offer or information on where to get the source code is there, it's perfectly okay.
Even as the author, you do not get to say which of the three mentioned methods is for you, and you cannot impose additional restrictions (such as which files must be kept from the archive).
While you are technically correct that there is a lack of license files for the individual applications that are being downloaded via autoupdate (plus the offer to get the source code or information on where to get the source code), I find it rather ridiculous to even suggest the authors of a software written from scratch and released under the GPL would not heed the obligations set forth by the license, when asked nicely. A "could it be that you forgot to include the license file and information on how to obtain the source code for software xy ;)", is imho a much more appropriate way to have this resolved - I consider throwing paragraphs around and trumped about GPL violations in public as a last resort and dare doubt that you had to go to such lengths.
Fizick
22nd September 2007, 19:34
Sharktooth,
it will be first step in right direction.
Megui is quite mature project, and its distribution should be legal.
(And there are many users not from this forum.)
Doom9,
could it be that you forgot to include the license file and information on how to obtain the source code for software YADIF.
;)
(BTW, section C is not the case here.)
But what about removing docs?
It seems that I have got the most simple (stupid) questions from MeGUI users.
:)
check
23rd September 2007, 04:09
The real problem with providing sources is keeping it up to date. Nobody will ever care about grabbing the files after this, and nobody will bother to update them. Better to simply link to the author's homepage on the MeWiki. I don't understand the GPL, is this an acceptable solution?
If not.... simple solution: provide a .zip file with all the sources and licences for all files in MeGUI. Then put it on all the update servers and put a link in the help menu to it (one that randomly selects an update server as per autoupdate). This is what the CCCP does after some similar drama to this.
berrinam
23rd September 2007, 04:19
The problem with docs and extra files in general is that a lot of plugin writers name their doc/gpl files the same way: readme.txt and gpl.txt. This means that, since they all (except yadif, since it's an AviSynth_stdcall plugin) get extracted into the AVS plugins directory, they all overwrite each other and it's not clear what they refer to. Perhaps we should instead create a folder inside each zip and put the docs there, to avoid plugin "namespace" collisions.
I'm sorry about not including the license file and source code information in the autoupdate package. As Sharktooth said, we are trying not to make the downloads too big. Including the source code and license, the distribution is 6 times larger than with the plugin alone. However, I have now changed our distribution to include the following file, named "yadif_readme.txt":
The yadif.dll used in MeGUI is a port to AviSynth of MPlayer's YADIF (Yet
Another DeInterlacing Filter). The port is written by Fizick (Alexander
Balakhnin).
Yadif is licensed under GPL version 2; see
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt for the license.
Source code, documentation, and the newest version of the plugin, can be
found at the plugin's homepage: http://avisynth.org.ru/yadif/yadif.html
-- berrinam
I hope that the URL of the GPL licence is acceptable; I didn't want to include the licence itself as it is actually larger than the plugin itself.
berrinam
Fizick
23rd September 2007, 06:53
Please consider it is not as collision with Yadif or me.
I simply try understand base for commom practice (links only, as doom9 pointed).
When we discussed Avisynth legal base with IanB, he pointed, that many projects are at public sourceforge servers, and all may be considered as "same place":
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
berrinam, thanks, but you updated readme must aslo include Michael Niedermayer (http://www.mplayerhq.hu) in copyrigt notice
There are no need in 20 copies of GPL License file. :)
Doom9
23rd September 2007, 10:44
@berrinam: I think we should have one readme file in the main directory, listing all software that can be downloaded, mentions their license (we already have the GPL text so it can just be referenced) and where to get the source code.
Also, technically, we ought to keep the source code of every revision that is put on the update server, for three years - but to do that, I think it would be appropriate to make use of the clause where a user can get the source code upon request for a fee - and that fee should be high enough to make people twice (after all.. the time is cost associated with distribution, too) - after all that's just what the fee clause is designed to - prevent you from becoming bogged down with people requesting the source just because they can, and especially for a volunteer GPL software making use of GPL tools only, it would be simply unreasonable if every user requested the source when clearly every project has a homepage where that source can be gotten without any hassle (especially if we provide links to each project's home).
Kurtnoise
24th September 2007, 17:24
@devs: about this issue (http://forum.doom9.org/showthread.php?t=126407)...
in debug mode, I get this:
http://img233.imageshack.us/img233/2572/meguidebug2409200718102ix0.th.png (http://img233.imageshack.us/my.php?image=meguidebug2409200718102ix0.png)
So, any idea about the last line error (unable to load DLL 'AvisynthWrapper' : the specified module could not be found) ?
These vista things annoys me frankly...
Sharktooth
25th September 2007, 00:21
there was a similar problem in the past. i think it was berrinam to discover the cause and fixed it updating avisynth wrapper.
berrinam
25th September 2007, 12:08
There was a problem with MediaInfoLib and Vista, and I uploaded a new library with a fix given to me by (from memory) moadib2k. But I don't think I've done anything with AvisynthWrapper, and I don't know what would be causing the problems. Dimzon wrote it; maybe he can give us some advice.
Sharktooth
25th September 2007, 12:29
you know, my memory is faulty...
berrinam
29th September 2007, 14:05
0.2.6.1015
- (berrinam) Nicer CQM selection for XviD and x264 (#1651251 and #1717536)
Odd choice, I know, but I felt like doing a bit of GUI details.
Sharktooth
29th September 2007, 14:28
berrinam, check the changelog. there were some other commits before 1015 that were not included in any builds, so you miss some entries in the changelog.
berrinam
29th September 2007, 16:07
My mistake, fixed now:
0.2.6.1015
- (berrinam) Nicer CQM selection for XviD and x264 (#1651251 and #1717536)
- (Kurtnoise) better errors exception for Audio Encoders
- (Kurtnoise) [Job Queue] : added keydown event (for start, stop, up, down, delete)
- (Kurtnoise) [SettingsForm] : Overwrite Stats File & Keep 2nd Pass Output checkboxes were not saved in the Settings
Bigmango
30th September 2007, 04:46
Hi,
Megui 0.2.6.1014 can't update itself to 0.2.6.1015.
I am on vista x64, running megui with admin privileged for the core update to work (it crashes after the download when restarting if run as a user, so it seems it can't write some file).
So, with admin privileges, after the download it always restarts as the old 0.2.6.1014 version and asks to update again, and again... it's in a loop.
I remember updating with previous version worked fine (the only difference is that the currently installed version was installed with the installer package for version 0.2.6.1014).
So to sum up, the correct behavior should be:
1. after downloading the update megui should restart in the new version.
And:
2. Please fix the user privileges so that they behave correctly in vista. Megui should never need to be run as an admin. It should be run as a user, and if needed (i.ex for the update) it should popup the admin request window to temporarily use admin privileges, as any other properly behaving application does.
Thanks.
check
30th September 2007, 06:08
if megui is not updating, just remove and install the latest manually.
berrinam
30th September 2007, 06:26
0.2.6.1016
- (berrinam) [AutoUpdate] : add support for a local cache of update files (located via registry) (#1804656)
- (berrinam) [AutoUpdate] : Re-install function in autoupdater (#1790523)
- (berrinam) [Video Preview] : 'Go to frame' for video preview (#1746899)
- (berrinam) [OneClick Window] : Easier code for audio, better audio input selection
- (berrinam) [OneClick Window] : Fix order of jobs in OneClick (bitrate calculation there should work again)
- (berrinam) [Muxer Windows] : Automatically choose output filename in muxer (#1784648)
- (berrinam) [DGIndexer] : Read progress reports from DGIndex title
Note to the people organising the auto-update servers: the local caching feature added in 1016 works by filenames only. This means that every new version has to have a new filename, or the local copy will be used. This is of particular importance for the core, which is currently named core.zip. In future it will have to be named as something which includes the version number, like core_2_6_1014.zip.
Kurtnoise
30th September 2007, 08:14
Please fix the user privileges so that they behave correctly in vista. Megui should never need to be run as an admin. It should be run as a user, and if needed (i.ex for the update) it should popup the admin request window to temporarily use admin privileges, as any other properly behaving application does.
What ? We need higher privileges *to write* on the hard drives...Thanks to MS. Nothing to fix here except to embed a manifest file to rise admin rights.
Sharktooth
30th September 2007, 13:13
yeah... damn microsoft... they like screwing everything...
i hope Vista dies as fast as it got cracked (2 days after the release...)
Sharktooth
30th September 2007, 13:20
Note to the people organising the auto-update servers: the local caching feature added in 1016 works by filenames only. This means that every new version has to have a new filename, or the local copy will be used. This is of particular importance for the core, which is currently named core.zip. In future it will have to be named as something which includes the version number, like core_2_6_1014.zip.
Core and Data packages have version numbers in the filename now.
@Kurtnoise: Does dgindex 1.5b2 work well with MeGUI?
berrinam
30th September 2007, 13:51
What's the point of AviSynthScriptEnvironment? It doesn't seem to hold any special resources, so what's wrong with getting rid of the class entirely?
I'm PMing dimzon about this, since he wrote AvisynthWrapper. [[Well, dimzon's PM is full, so looks like I'll just hope he sees this]]
Kurtnoise
30th September 2007, 16:17
Does dgindex 1.5b2 work well with MeGUI?
yes...no problem for what I've done with it.
@Berrinam: try his email : dimzon541 at gmail dot com
btw, rev 202 breaks the download of xvid profiles...
Sharktooth
1st October 2007, 00:48
202?!?
Kurtnoise
1st October 2007, 06:47
222...sorry.
Sharktooth
1st October 2007, 13:20
0.2.6.1017
- (berrinam) [OneClick, AviSynth Creator, Video Preview, AutoEncode, and Bitrate Calculator] : nicer comboboxes, for AR, FPS, and target sizes
- (berrinam) Internal change from use of DARX/DARY pairs to a Dar struct
- (berrinam) Turn the IMediaFile info details from virtual calls into populating a MediaFileInfo class
- (Kurtnoise) [Auto Update Server Window] : put serverList on top (items were not visible)
Sharktooth
1st October 2007, 14:13
yes...no problem for what I've done with it.
have you tried it even with interlaced/telecined stuff?
Kurtnoise
1st October 2007, 16:17
yeah...works fine for me.
dimzon
1st October 2007, 19:10
Hi everyone!
dimzon
1st October 2007, 19:13
@devs: about this issue (http://forum.doom9.org/showthread.php?t=126407)...
in debug mode, I get this:
http://img233.imageshack.us/img233/2572/meguidebug2409200718102ix0.th.png (http://img233.imageshack.us/my.php?image=meguidebug2409200718102ix0.png)
So, any idea about the last line error (unable to load DLL 'AvisynthWrapper' : the specified module could not be found) ?
These vista things annoys me frankly...
actually I have no Vista installed so I can only guess... but I need at least detailed description first
Kurtnoise
1st October 2007, 20:17
Hey, nice to see you here...;)
About the problem: as soon as you load an avs script in the Video Encoding part, this message appears. Tried with different scripts (AVISource, MPEGSource, FFMpegSource, etc...), with different Avisynth versions (2.5.7 & 2.5.8 alpha) and still the same error. Note that a YV12 decoder is installed as well because the avs scripts are perfectly playable with some tools like VirtualDub or some dshow players (MPC...). To complicate the trick, it occurs only on Vista. :s
Hope this helps...you can find also some extra comments from the link pointed out with the picture. I don't think it's related to MediaInfo.
berrinam
1st October 2007, 23:14
Hey dimzon!
Can you answer this question too please?
What's the point of AviSynthScriptEnvironment? It doesn't seem to hold any special resources, so what's wrong with getting rid of the class entirely?
foxyshadis
2nd October 2007, 06:07
What ? We need higher privileges *to write* on the hard drives...Thanks to MS. Nothing to fix here except to embed a manifest file to rise admin rights.
Well, it does crash hard if it can't write, I'd say that needs fixing at a minimum. If you want I'll write a patch to allow updates under limited user that only requires the updatecopier to be elevated to admin (by downloading into a user temp folder). I have a few vista systems I can terminal into at an office now.
Don't put it in the manifest though, it doesn't really belong there. (Especially not megui's manifest.) Better to check whether the folder is writable, if so proceed as normal, if not start it as an admin (accomplished by adding the Verb 'runas' to ProcessStartInfo).
I dealt with it by just making the whole audio/video/imagery swaths of my program files world-writable, but if you don't put them into special folder it's a pain.
dimzon
2nd October 2007, 11:10
Hey dimzon!
Can you answer this question too please?
actually I do not remember... i need source code first. can anybody mirror it @ yousendit.com (i can't work with CSV/SVN from here)
Sharktooth
2nd October 2007, 12:58
http://www.webalice.it/f.corriga/megui/MeGUI-sources.7z
berrinam
2nd October 2007, 13:07
And I've also sent it to you with yousendit.com. Ah well, the more, the merrier. :p
dimzon
2nd October 2007, 13:23
What's the point of AviSynthScriptEnvironment? It doesn't seem to hold any special resources, so what's wrong with getting rid of the class entirely?
Initially i planned to create special AviSynthScriptEnvironment one per thread. One AviSynthScriptEnvironment can serve multiple clips so I decide to use as little amount of AviSynthScriptEnvironment as possible to avoid resource leaks... Some times latter I asked Avisynth developers how about to create AviSynth ScriptEnviroment for each clip. They answered everything is ok. So I removed all such code from AviSynthScriptEnvironment class but don't remove completely bcz I do not want to modify ALL places where it was invoked...
If you want You can remove it entirely...
Kurtnoise
2nd October 2007, 20:45
Well, it does crash hard if it can't write, I'd say that needs fixing at a minimum. If you want I'll write a patch to allow updates under limited user that only requires the updatecopier to be elevated to admin (by downloading into a user temp folder). I have a few vista systems I can terminal into at an office now.
yeah, feel free to post patches...:)
Anyway, updatecopier is elevated by itself (MS heuristic for update, etc...).
Bigmango
2nd October 2007, 21:05
Reporting back:
Now trying to update version 0.2.6.1016 to 0.2.6.1017 with the updater. After downloading the update it asks to restart and yes, updatecopier.exe now asks for admin privileges :)
But it still restats as the old version 0.2.6.1016 and then asks to update again... and it's still always the same again and again... in a loop. It's not restarting with the new version, so I guess megui.exe was not replaced ?
Btw, this is on vista x64. Megui is installed in a directory that is writable to the current user (d:\temp\megui), so it is strange it doesn't work...
berrinam
3rd October 2007, 06:51
0.2.6.1018
- (berrinam) [Internal] : Remove Commandline field from Job
- (berrinam) [Internal] : Remove commandline generation from CommandLineGenerator and put it in individual encoders
- (berrinam) [Internal] : Remove Framecount and FPS from VideoJob
- (berrinam) [Internal] : Separated Job into Job Queue info (now under TaggedJob) and job running info (under Job, as before). This may cause temporary Serialization bugs
- (berrinam) [Internal] : Reworked/simplified BitrateCalculator
- (berrinam) [Main window, Mux window, OneClick] : Can have arbitrarily many audio tracks
- (berrinam) [Internal] : Documentation for MuxPath finding
- (berrinam) [Internal] : Moved drag & drop code to FileBar to avoid repetition
- (berrinam) Load jobs now works for mux and audio jobs
Sharktooth
3rd October 2007, 12:42
Bitrate calculator throws an exception if no input file is selected.
Commandline options are no longer shown in the codec config window.
Warpman
3rd October 2007, 13:54
job list is gone....
if u have ~200jobs in the list you get 200errors saying that the job$number.xml is not readable. cause the .1017 update changed something i guess....
if a profil/job contains an error i get the same error but selecting "delete? yes" doesn't work it doesn't get deleted. (it ask again next time, annoying as hell)
And sometimes a random profile gets corrupted by megui(cause i don't think there is a way to damage a video profile if you didn't edit it for a month or so)
btw. got the same error as sharktooth as well...
Edi: ph almost forgot: the update window doesn't display the current version that is avaible though the upadter, only the installed version.
Sharktooth
3rd October 2007, 14:06
yeah.. i already posted the update window thing in the bugtracker
COOLBGT
3rd October 2007, 16:14
Somebody totally messed up the last update 2.6.1018. The MKV muxer where it says output there's an open button instead of save. When you leave the auto made name in the field it gives and error and closes. Peace
Sharktooth
3rd October 2007, 16:40
eh... im not at home though... so hope some dev is around to fix it...
mroz
3rd October 2007, 19:39
I can't do anything useful with 2.6.1018 - autoencode doesn't queue anything up & I can't use the bitrate calculator & manual enqueue as the bitrate calculator always throws an exception. Ouch.
Is there a way to rollback to an earlier version? If I manually edit autoupdate.xml I can get the updater to reoffer the current latest on the stable or dev servers, but I can't see a way to select a specific earlier build. Are they actually on the servers? Ah yes, a few are & in anycase I have a couple cached. I guess I'm reverting to 1017 for now.
Today's the first time I've used Megui for xvid encodes & I was getting worried it wasn't usable - it's a relief to discover it's all broken instead ;)
Sharktooth
4th October 2007, 03:08
well, it's a dev build... however there's an update_cache where you can get the .1017 binaries...
i think i will remove .1018 from the autoupdate as soon as im back home...
saint-francis
4th October 2007, 04:14
i think i will remove .1018 from the autoupdate as soon as im back home...
Thank you. I've had many headaches with the new build. Particularly with the gui.
salehin
4th October 2007, 06:32
you can also manually download core_0_2_6_1017.zip from http://megui.org/auto/ and put the contents in megui directory.
Adub
4th October 2007, 08:01
That's what I did and it works perfectly. At least, it starts up fine, I haven't had time to test any encodes.
Sharktooth
4th October 2007, 13:16
done.
COOLBGT
4th October 2007, 17:31
Oh yeah and more (actually two) things. As of update .1017 the update window doesn't show the latest version of the updates, only the existing one. It's not that big of a deal but it's a good thing to know what you are downloading. And why don't you include the nero aac audio encoder in the update window. We have to download it manually form the nero site to use it. Same thing with the avi-mux and another program called besplit(i don't know what's that used for). Peace
Sharktooth
4th October 2007, 18:26
i already said that "version not shown" bug was posted in the bug tracker AND we can't redisrtribute the nero AAC encoder coz the encoder license.
berrinam
5th October 2007, 06:40
0.2.6.1019
- (Kurtnoise) [One Click Encoder] : fix output filename according to the container selected in the Advanced Settings.
- (Kurtnoise) cosmetic - Move "cleanup" to EncodingMode instead of CodecString.
- (Kurtnoise) [Bitrate Calculator] : fix a runtime error.
- (berrinam) Fixed AutoEncode to queue jobs again
- (berrinam) Fixed #1805580 (Automatic output filename assumes .mp4 output in muxer)
- (berrinam) Fixed Bitrate Calculator to support multiple audio tracks; this fixes crash when opening it without input
- (berrinam) Fixed #1805603 (Automatic update not showing the Latest version number)
foxyshadis
5th October 2007, 07:16
Curious, did you forget to commit something called MultiTrackComponent.cs this last rev?
berrinam
5th October 2007, 07:30
0.2.6.1020
- (berrinam) Support backwards-compatible loading of jobs from 0.2.6.1017. (But not vice-versa!)
berrinam
5th October 2007, 07:31
I deliberately omitted it, since it wasn't needed. But I forgot to delete it from MeGUI.csproj. My last commit has the modified project file which doesn't reference MultiTrackComponent.cs
Kurtnoise
5th October 2007, 08:38
Hi,
Job.cs in core\details\0_2_6_1017_jobloader\ is still missing. Cannot compile...
berrinam
5th October 2007, 09:05
Added.
berrinam
5th October 2007, 10:29
Oh, I don't know if I mentioned this before, but the update_cache folder now makes it possible to distribute networked installs. It's not ideal, because megui will still access the web for the update.xml file, but it will get all the data files from the local cache.
To make such an installer, you simply need to package all of the zip files on a relevant update server (dev server if you're making dev releases; stable server if you're making stable releases) in the installer, and put them somewhere sensible during the install process. MeGUI checks the registry key, HKEY_LOCAL_MACHINE\SOFTWARE\MeGUI\update_cache, for the update cache's folder, so the installer should set that key in the registry to point to the folder the installer put the files.
check
5th October 2007, 11:17
Just thought everyone in here would like an update on how popular MeGUI is becoming.
Usage for July, Aug, Sept:
95gb, 110gb, 135gb
In particular, for september:
99.2% of the bandwidth was for autoupdate, which was around 260 000 files.
The other 0.8% of the bandwidth went to requests for PHP pages (ie, the wiki), with 23 000 hits.
About 4 000 requests for wiki pages were from links from other sites, the rest were direct links.
upgrade.xml was hit 78 000 times.
The split between IE and not-IE (mostly Firefox) for the wiki pages was around 50/50.
Someone in Victoria on Bigpond used the most bandwidth on the site -- 200mb.
The top five visiting countries by IP: US, EU, AU(!), DE, CN. The US accounted for just over 70% of all bandwidth.
Not bad eh (especially considering the changed link urls would have reduced traffic)? :)
Sharktooth
5th October 2007, 12:57
wow! i didnt expect that popularity...
more stats are available at the megui project tracker on SF: http://sourceforge.net/project/stats/detail.php?group_id=156112&ugn=megui&type=tracker
400-500 downloads/day...
COOLBGT
5th October 2007, 15:59
Why did you guys made the same mistake with .1020 . Again all the muxing windows has the open button instead of the save button
Sharktooth
5th October 2007, 16:03
it was simply not fixed... report the bug in the MeGUI bug tracker
EDIT: i fixed it though, next version will have the fix... so dont report it. thanx.
Sharktooth
5th October 2007, 17:15
0.2.6.1021
- (Sharktooth) [Muxers] Fixed the output file dialog (save mode)
small change but it was worth building since you couldnt select the output file in the muxers...
i also edited the .1019 changelog entries to reflect a minor change.
the new build is on the autoupdate.
Sharktooth
5th October 2007, 17:31
Has anyone a clue why shutdown doesnt work? Im getting mad...
@kurtnoise: i accepted you MSN invite...
@devs: further work must be aimed ad stabilizing the code, so forget about features and stuff (unless they're small changes, like exposing and adding new codec options or adding some exception handlers... however nothing that can screw the codebase and/or will need further bug fixing) and lets get all bugs squashed. after we reach a stable stage we'll release a stable package and we can concentrate on adding stuff or messing with the code.
Tomorrow ill create stable and unstable branches in the SVN repo, so we can port fixes to the stable version and continue with developing the unstable version until it reaches a stable status.
on the developers front, SF has a nice recruitment service. should i seek for new devs using the service?
@all: i need to know if dgindex 1.5 works correctly with MeGUI. I dont want to break things at this stage, so please extensively test it with ALL kind of sources (progressive, interlaced, telecined...) and report back. thanks.
berrinam
6th October 2007, 00:40
Some of the shutdown is simply not running: it was removed at one stage and never made it back in. I have a local version on my computer which fixes that.
EDIT: Committed to SVN.
berrinam
6th October 2007, 01:24
I notice that Sharktooth has added bug #1808055 (Encoder commandline options not being shown in the codec config window) to the SF tracker. Yes, it is a bug currently. However, it is not an accident -- I removed it in 1018 when I removed the CommandLineGenerator, as I moved some code around, thinking that command line generation is more appropriate in the individual encoders that it generates a commandline for.
There is of course no reason why it is infeasible to put the commandline back in the video codec config, but is it actually sensible to? My only use for it has been to check that all the buttons and checkboxes are being updated correctly and the commandline is being generated correctly: in short, I have only used it for diagnostic purposes, and not useful for anyone except a developer.
I think we should get rid of it. What do you think?
mroz
6th October 2007, 01:45
If you're asking all users, I personally find such information useful & would much prefer if devs feel the way you do, the information be hidden by default but still available via some sort of 'advanced info/features' toggle.
If you'd like to know why I find it useful, that's two fold. If I have a problem it reassures me I'm at fault rather than the gui I'm using, since I get feedback that the gui's doing what I asked. Secondly, it helps me to learn how the tool works & get to know the codec better, which I always find helpful.
If Megui ever turned into nothing more than a one click app with all internal functionality hidden I'd be very sad, however good the results. That said, I love to have such functionality available; I just prefer the freedom to choose how much automation I want, so that my usage patterns can grow as my understanding increases. I love apps that let me do that.
Sorry if I've gone off at a tangent or started ranting. Just wanted to voice my feelings. BTW you shouldn't be surprised how popular Megui's becoming. It's a very nice piece of kit :)
foxyshadis
6th October 2007, 02:39
It needs to be showable on that dialog, wherever the code actually is. One of MeGUI's primary target audiences is the sort of people who are likely to copy a configuration straight to a command-line (batch, etc), without running an encode first to get it out of the log. Or check it to quickly determine that they haven't made a mistake. Frankly, I think MeGUI has the best and most complete x264 option GUI out there.
berrinam
6th October 2007, 02:51
Hmmm... that comment reminds me of a feature I remember thinking about ages ago: exporting jobs to a batch file. I had thought someone had implemented it, but I can't find it in MeGUI or the changelog. Well, I better put it on the SF tracker.
berrinam
6th October 2007, 03:55
0.2.6.1022
- (berrinam) Fixed #1808324 (1 pass encode broken in autoencode)
- (berrinam) Fixed #1808055 (Encoder commandline options is not being shown in the codec config window)
- (berrinam) Fixed #1806911 (Clever anamorphic encoding not working)
- (berrinam) Shutdown when finished re-enabled (including countdown patch from imoon4)
- (berrinam) FPS chooser now says "choose your framerate" not "choose your AR"
foxyshadis
6th October 2007, 04:25
Do you guys think this is a good idea? Or better to just silently copy settings (jobs etc) to the user profile and work from there?
http://foxyshadis.slightlydark.com/random/meguiperm.png
Of course it only matters when people put it in programs, megui can happily run from documents if people want.
berrinam
6th October 2007, 06:43
By default, I think MeGUI should be installed to program files, and it should also work by default, even on Vista (without the user having to answer a question like you posted).
I can't see much point in having per-user settings (jobs/profiles), since it isn't like diary or email software where everyone has a personal account. However, I also don't see anything particularly wrong with it, and if it is the recommended way (or the clean way) of handling things on Vista, then I don't see anything particularly wrong with that. In that case, though, we should perhaps change the behavior for all versions of windows, though.
Of course, downloaded files such as x264, dgindex, should definitely go in program files.
foxyshadis
6th October 2007, 09:28
Having something in program files and having it work without user profiles or changing permissions is pretty much an impossibility in Vista (or an XP limited account). You can quietly change permissions, but a randomly appearing admin confirmation/runas box on startup will probably throw people.
Actually, on Vista the situation seems better, everything gets dumped into %Appdata%\Local\VirtualStore\Program Files\megui while you're using the program, I forgot that it has the virtalization. Even in the admin account. Since it would just work, it wouldn't even pop the box above up, the OS takes care of everything as long as it's not turned off. Update still has to be fixed, though, it just spins its wheels now.
The MS and unix standard is that anything that gets modified regularly is per-user. Jobs, logs, and profiles are kind of per-user things anyway, they're yours after all, although it could go either way.
I have a Vista system you can terminal into if you'd like, there's nothing private on it, it's just a terminal client. (I'm still getting used to it, first time I've really played with it in depth.)
mroz
6th October 2007, 16:45
2.6.10.21 Adaptive Mux Window bug - chapters can't be added. The Open file dialogue has file types set to:
"Chapter files (*.txt)
Notice the leading quote. This seems to result in no files being listed, consequently chapter txt files can't be selected.
berrinam
7th October 2007, 00:07
Please report bugs on the sourceforge bug tracker. There is a link in my signature.
mroz
7th October 2007, 00:44
Please report bugs on the sourceforge bug tracker. There is a link in my signature.
Done.
Sharktooth
7th October 2007, 02:19
@berrinam: knowing the commandline options will:
1 - let the user know what a megui options translates to the real encoder option
2 - be usefull to spot typos or other kind of errors in command line generation
3 - be usefull when implementing new encoder options
however thanks for re-adding it.
berrinam
7th October 2007, 02:31
@berrinam: knowing the commandline options will:
1 - let the user know what a megui options translates to the real encoder optionGood point, although it's not useful for me, because I trust MeGUI to do the entire job for me. Perhaps the "export to batch (https://sourceforge.net/tracker/index.php?func=detail&aid=1808438&group_id=156112&atid=798479)" feature request I added will help alleviate this need in the future?
2 - be usefull to spot typos or other kind of errors in command line generation
3 - be usefull when implementing new encoder optionsAs far as I can see, this is just diagnostics, mainly for the developers. We already have the log for that, don't we?
however thanks for re-adding it.No worries. It seems that, at the moment, it is a very useful thing to have.
Sharktooth
7th October 2007, 02:34
0.2.6.1023
- (Kurtnoise) [Muxer] : Chapters Filter fixed.
- (Kurtnoise) [Avisynth Window] : deinterlace checkbox unchecked when Analysis returns "Do Nothing" (to avoid interlaced=true with ColorMatrix())
- (Kurtnoise) [Help Button] : url fixed for the wiki.
- (berrinam) Catch all exceptions in ProgressWindow.UpdateStatus. (It is a non-essential function, so errors should be silently caught). Should probably fix #1760486
Sharktooth
11th October 2007, 04:01
0.2.6.1024
- (Sharktooth) Fixed main window (Form1.cs) size (some Audio controls were not shown)
- (Sharktooth) Fixed #1810120 (x264 video configuration dialog problem)
- (Sharktooth) [Update Window] Workaround for #1808878 (Maximize/Minimize states don't work). Disabled Minimize and Maximize buttons.
Doom9
12th October 2007, 21:16
c't asked to put megui on the DVD for one of their upcoming issues.
I took the liberty of approving the request.. I put "Doom9 community" as author and noted that users should come here for support and that avisynth is a prerequisite.
Adub
12th October 2007, 21:51
Who is c't?
mroz
12th October 2007, 23:18
My guess (http://en.wikipedia.org/wiki/C't).
Sharktooth
13th October 2007, 04:11
@Doom9: also tell them MeGUI is in beta stage too, so there could be some bugs.
berrinam
14th October 2007, 05:04
0.2.6.1025
- (berrinam) Fixed #1812162 (Up & down buttons in queue are mixed up)
- (berrinam) [Adaptive Mux Window] Fixed some incorrect mux-path-finding which caused a crash -- the window thought it could mux something that it couldn't.
- (berrinam) Filetypes are better determined, by also looking at the extension. This may fix #1808882.
- (berrinam) Fixed xvid AR signalling. (Use PAR not DAR)
- (berrinam) Fix #1808573 (Not able to import xvid profiles anymore)
- (berrinam) Fix #1812842 (ITU 4:3 is wrong)
berrinam
15th October 2007, 06:54
0.2.6.1026
- (berrinam) Fixed #1746055 (Video profile selection error)
- (berrinam) Fixed #1749810 (For each level have max bitrate for main and high profiles)
With this commit, there are no bugs in the SF bug tracker that I can reproduce other than Vista issues and the large font issue. If anyone has forgotten to post bugs, please do it now.
Also, I think that both the Vista and the large font problems are likely to require bigger changes than simple one-liners. Given that, do you think it would be a good idea to wait a week or so, and then release 0.2.6.1026 as a stable version?
@foxyshadis: Are you still working on the Vista stuff? What's the news? I think that we should move the jobs, profiles, and MeGUI settings to "my documents" in the future, but I'm not sure how that will work for people who want to run multiple instances of MeGUI at once, with different job queues (it's something I do all the time, as I have multiple copies of MeGUI for development, and one copy for encoding). Perhaps My Documents/megui should have a separate subdirectory for each version of megui installed on the computer, with either a registry key or an .ini file in each subdirectory to say which subdirectory belongs to which copy of megui. Thoughts?
Bigmango
15th October 2007, 09:36
If anyone has forgotten to post bugs, please do it now.
Posted "Core auto-update does not work".
berrinam
15th October 2007, 09:44
I tried debugging MeGUI on a Vista computer today, and I believe I solved the file-opening problem.
The old MediaInfoWrapper had a PInvoke call
[DllImport("MediaInfo.dll")]
internal static extern int MediaInfo_Count_Get(IntPtr Handle, [MarshalAs(UnmanagedType.U4)] MediaInfoStreamKind StreamKind, int StreamNumber);
// and later
private string GetSpecificMediaInfo(MediaInfoStreamKind KindOfStream, int trackindex, string NameOfParameter)
{
return MediaInfo.MediaInfo_Get(this.Handle, KindOfStream, Convert.ToUInt32(trackindex), NameOfParameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name);
}
And when that was called, it occasionally (on the longer strings) crashed with an Access Violation. I replaced it with
[DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)]
internal static extern IntPtr MediaInfo_Get(IntPtr Handle, [MarshalAs(UnmanagedType.U4)] MediaInfoStreamKind StreamKind, uint StreamNumber, string Parameter, [MarshalAs(UnmanagedType.U4)] MediaInfoInfoKind KindOfInfo, [MarshalAs(UnmanagedType.U4)] MediaInfoInfoKind KindOfSearch);
// and later
private unsafe string GetSpecificMediaInfo(MediaInfoStreamKind KindOfStream, int trackindex, string NameOfParameter)
{
IntPtr p = MediaInfo.MediaInfo_Get(this.Handle, KindOfStream, Convert.ToUInt32(trackindex), NameOfParameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name);
char* p2 = (char*)p.ToPointer();
string s = "";
while (*p2 != '\0')
{
s += *p2;
++p2;
}
return s;
}
Which appears to fix it. The thing I don't get is, I thought the PInvoke Marshaller converted the string exactly as I did. Obviously not, though, as it crashed whereas this code works.
Does anyone know what's up with this?
--
Anyway, I have committed the updated library and I will upload it to AutoUpdate, so that this bug is hopefully fixed.
EDIT: It appears what I fixed was only part of the problem. Apparently there are also problems with DirectShow, which I haven't looked at yet.
foxyshadis
15th October 2007, 10:58
If you want I'll go ahead and do that tomorrow then, I wasn't sure what you were going to decide so I held off. I can set it to look for settings.xml in the MeGUI folder first, then the user's folder. Hm. Have it check for a <UseUserSettings>0</> tag and continue on to load/save to the user profile if not found? That way it can automatically propagate seamlessly unless you have the magic word.
I'm not expert in thinking about these issues, obviously.
fields_g
15th October 2007, 15:25
1026 not on the update server yet? Would love to try to find more bugs for you. Thanks for cleaning out the bug tracker!
Sharktooth
15th October 2007, 20:19
Posted "Core auto-update does not work".
coz the core was not updated on the autoupdate...
however it's coming ;)
Sharktooth
15th October 2007, 20:23
i updated the changelog as follows:
0.2.6.1026
- (berrinam) Fixed #1746055 (Video profile selection error)
- (berrinam) Fixed #1749810 (For each level have max bitrate for main and high profiles)
- (berrinam) Fixed #1715064 (Crash under Vista when loading avisynth script)
and uploaded the new build on the autoupdate server.
Bigmango
15th October 2007, 21:51
coz the core was not updated on the autoupdate...
however it's coming ;)
Nope, still not working. :(
I was in v0.2.6.1024. Autoupdate has now downloaded core 0.2.6.1025 + libs 0.2.6.1026. Then it asks to restart, and asks for admin priviledge (good !).
then it restarts.... but still with v.0.2.6.1024, and it asks me to update again.... same loop.
fields_g
15th October 2007, 22:11
I work at an evil corporation that has imposed Active Directory over us employees. Anyway... I don't have admin rights or install rights permanently. I installed MeGUI and have been able to do the updates until now. I believe that this must have something to do with the above talk about vista asking for admin.
Error: Access to registry key 'HKEY_LOCAL_MACHINE\Software\MeGUI' denied.
Any hope?
Sharktooth
16th October 2007, 02:46
Nope, still not working. :(
I was in v0.2.6.1024. Autoupdate has now downloaded core 0.2.6.1025 + libs 0.2.6.1026. Then it asks to restart, and asks for admin priviledge (good !).
then it restarts.... but still with v.0.2.6.1024, and it asks me to update again.... same loop.
Completely uninstall MeGUI AND delete the installation folder then reinstall it. I'll post a .1026 installer in few minutes on MeGUI's SF project page.
berrinam
16th October 2007, 05:29
In SVN revision 269, I added a test suite using NUnit (http://www.nunit.org/), the idea being that a number of bug reports can be expressed as tests, and this way we can hope to avoid more regressions as we accumulate more and more tests. I hope no-one minds the NUnit dependency; it is very light-weight, as simply being able to compile it only requires a single 76KB dll, nunit.framework.dll, which is included in the SVN.
Note that, in order to compile the test suite, you need to run compile-all.bat once first.
To run the tests, you need to install NUnit. After compiling the testsuite project, you can then run the tests either by double-clicking on the compiled testsuite.dll (NUnit registers with the filetype *.dll) or by running the NUnit GUI and opening the testsuite.dll file. All the tests should pass, which means that they should all end up green.
To find out how to write tests, see the documentation, and also the test I've already written as an example.
If, for some reason, you don't like NUnit, we can always revert.
Maccara
16th October 2007, 15:36
In SVN revision 269, I added a test suite using NUnit (http://www.nunit.org/), the idea being that a number of bug reports can be expressed as tests, and this way we can hope to avoid more regressions as we accumulate more and more tests. I hope no-one minds the NUnit dependency; it is very light-weight, as simply being able to compile it only requires a single 76KB dll, nunit.framework.dll, which is included in the SVN.
Excellent. I'm a fan of JUnit/NUnit myself. If you're using VS for the development, I can also recommend TestDriven.NET (http://www.testdriven.net/) (supports NUnit amongst others) which makes it easier to run/prepare NUnit tests from VS GUI directly. Free for non-commercial use.
(some might prefer this over the barebones NUnit framework, so the transition wouldn't be so painful :))
Theliel
16th October 2007, 18:59
umm, no more crash under vista :)
thank berrinam, work fine now.
Sharktooth
19th October 2007, 12:58
0.2.6.1027
- (Kurtnoise) [AviSynth Creator] : fixed Save Event for Vista OS.
- (Kurtnoise) change constant variables to shut down the PC correctly.
- (Kurtnoise) Cosmetic - fixed typos.
- (Kurtnoise) [AudioEncodingComponent]: remove the tab selected instead of the last one (#1814772)
- (berrinam) Fix #1813777 (Autocrop problem)
- (berrinam) Fixed #1814193 (AutoEncode with >1 audio track -> each audio track muxed twice)
Kurtnoise
20th October 2007, 15:23
#1715064,
#1728897,
#1808882,
#1814766,
#1813769
can be closed imo. To clean the bugs tracker...;)
berrinam
20th October 2007, 23:36
Closed 1808882, 1814766, 1728897. As far as I'm aware, fixing the Vista MediaInfo crash didn't fix the Vista DirectShow problems: can someone verify or refute this?
And 1813769 hasn't been fixed yet, has it? I know it's a duplicate, but is that a problem?
Sharktooth
21st October 2007, 02:13
what about #1816518. update works here...
Kurtnoise
21st October 2007, 09:22
As far as I'm aware, fixing the Vista MediaInfo crash didn't fix the Vista DirectShow problems: can someone verify or refute this?
I'll check this today...
And 1813769 hasn't been fixed yet, has it? I know it's a duplicate, but is that a problem?
it has been fixed...cannot reproduce the bug myself anymore.
what about #1816518. update works here...
That's strange indeed...I started to look at this yesterday but cannot find the bug/a fix.
berrinam
21st October 2007, 14:11
it has been fixed...cannot reproduce the bug myself anymore.Have you ever been able to reproduce it? I haven't, but I am pretty sure it was introduced in around 0.2.6.1018, and I'm not aware of any changes since then which would have fixed it, so I would expect it is still a problem.
Bigmango
21st October 2007, 14:45
Completely uninstall MeGUI AND delete the installation folder then reinstall it. I'll post a .1026 installer in few minutes on MeGUI's SF project page.
Ok, I have uninstalled megui and reinstalled a clean install of version 0.2.6.1026.
But now I can't test it anymore because the update versions are messed up. The latest versions are now older than the currently installed version:
- core: existing version: 0.2.6.1026 ; latest version: 0.2.5.107
- data: existing version: 0.2.4.1038 ; latest version: 0.2.4.1038
But in my previous install everything was at version 0.2.6.xxx.
So, bug #1813653 was closed; but what I see as a user is that the situation is even worse than it was before, because before the data was updating correctly to versions 0.2.6.xxx (or maybe it was 0.2.5, but definitely not 0.2.4) and the core was downloading new versions even though it failed to install them. But now it doesn't even see the new versions anymore, so I can't test if the core update works.
Carpo
21st October 2007, 16:55
http://mirror01.x264.nl/x264/megui-0.2.6.1022.exe - try that version and select the dev update server
mini-moose
21st October 2007, 17:54
hi
been playing around with megui recently and a few things I noticed/wanted to suggest in case they weren't brought up yet :
1) AVS script editor - I've loaded a .dv2 for an 50fps mpg and chose analyze.
the suggested solution was tdecimate(CycleR=2) which brings the encoded result to 30fps instead of 25fps as it should be from a pal source. tdecimate(cycle=2) would have achieved the correct result I believe.
On the main editor page I've selected PAL but I guess it doesn't influence the analyzing tool. I assume the analyzer is meant more for those who are not very experienced but thought I'd mention it anyway.
2) Bitrate Calculator/AutoEncode - one of the available sizes to choose from is 1/4 DVD / 1120mb. personally I liked the 1100mb on previous versions better as it leaves a little room for sizing errors.
3) Updates - on all the versions I've tried I always get an error when updating avc2avi : Error: Could not unzip avc2avi. Aborting...
4) MKV - something I thought might be useful for some who are used to virtualdub's "Save segmented avi" : maybe adding an option to split the encoded video file (before muxing i.e without audio) into parts. In other words have the video file output into smaller files while 2nd pass is ongoing.
5) splitting muxed file - I'm not sure if this is the place to suggest mkvmerge features or not but anyhow...I think it would be cool to have a splitting option that would not necessarily split the whole file into little bits but also an option to choose a certain segment to split from the full file. e.g 02:45 till 05:11. sometimes people might wanna save a certain clip from within a video.
I hope some of that makes sense and apologies if I have repeated issues discussed before or showed some lack of understanding of the tool's features. as I said I just recently started using it so I have not had the chance to explore it in full.
tnx
Kurtnoise
21st October 2007, 21:18
Have you ever been able to reproduce it? I haven't, but I am pretty sure it was introduced in around 0.2.6.1018, and I'm not aware of any changes since then which would have fixed it, so I would expect it is still a problem.
No, I'm not able to reproduce it. So...
1) AVS script editor - I've loaded a .dv2 for an 50fps mpg and chose analyze.
the suggested solution was tdecimate(CycleR=2) which brings the encoded result to 30fps instead of 25fps as it should be from a pal source. tdecimate(cycle=2) would have achieved the correct result I believe.
On the main editor page I've selected PAL but I guess it doesn't influence the analyzing tool. I assume the analyzer is meant more for those who are not very experienced but thought I'd mention it anyway.
Analysis tool is mainly dedicated to interlace stuff not framerate...
2) Bitrate Calculator/AutoEncode - one of the available sizes to choose from is 1/4 DVD / 1120mb. personally I liked the 1100mb on previous versions better as it leaves a little room for sizing errors.
Select Size...-> 1100 MB
3) Updates - on all the versions I've tried I always get an error when updating avc2avi : Error: Could not unzip avc2avi. Aborting...
yes, known issue.
4) MKV - something I thought might be useful for some who are used to virtualdub's "Save segmented avi" : maybe adding an option to split the encoded video file (before muxing i.e without audio) into parts. In other words have the video file output into smaller files while 2nd pass is ongoing.
what about splitting feature ?
5) I think it would be cool to have a splitting option that would not necessarily split the whole file into little bits but also an option to choose a certain segment to split from the full file. e.g 02:45 till 05:11. sometimes people might wanna save a certain clip from within a video.
ok...just put the request in SourceForge.
Bigmango
21st October 2007, 21:24
http://mirror01.x264.nl/x264/megui-0.2.6.1022.exe - try that version and select the dev update server
Arf, I forgot to select the dev update server after reinstalling :rolleyes:
The update works fine now :thanks:
mini-moose
22nd October 2007, 00:38
Quote:
Originally Posted by "Kurtnoise13"
Analysis tool is mainly dedicated to interlace stuff not framerate...
just thought I would mention it cause it did suggest the wrong
command after analysing,
Quote:
Originally Posted by "Kurtnoise13"
what about splitting feature ?
the splitting feature seems to be only for the final muxed file unless I couldn't find a split feature for the vid only. what I mean is similar to the split feature in vdub. i.e one can set the output video file to be split while encoding and not while muxing.
Sharktooth
22nd October 2007, 02:53
Ok, I have uninstalled megui and reinstalled a clean install of version 0.2.6.1026.
But now I can't test it anymore because the update versions are messed up. The latest versions are now older than the currently installed version:
- core: existing version: 0.2.6.1026 ; latest version: 0.2.5.107
- data: existing version: 0.2.4.1038 ; latest version: 0.2.4.1038
But in my previous install everything was at version 0.2.6.xxx.
So, bug #1813653 was closed; but what I see as a user is that the situation is even worse than it was before, because before the data was updating correctly to versions 0.2.6.xxx (or maybe it was 0.2.5, but definitely not 0.2.4) and the core was downloading new versions even though it failed to install them. But now it doesn't even see the new versions anymore, so I can't test if the core update works.
Data should be 0.2.4.1038. Everyone has "data" version 0.2.4.1038... coz it's the lastest. So everything is OK.
Sharktooth
22nd October 2007, 02:57
3) Updates - on all the versions I've tried I always get an error when updating avc2avi : Error: Could not unzip avc2avi. Aborting...
Works for me.
berrinam
22nd October 2007, 04:46
the splitting feature seems to be only for the final muxed file unless I couldn't find a split feature for the vid only. what I mean is similar to the split feature in vdub. i.e one can set the output video file to be split while encoding and not while muxing.Perhaps Tools->AVS Cutter is for you.
Kurtnoise
22nd October 2007, 10:46
@Sharktooth: about update issues...I've made some tests from my own webpage with all packages from the main server and you know what ? it seems that renaming some packages, update reworks fine for me. By example, just renaming xvid_encraw-2007-07-31.zip to xvid_encraw.zip & modifying upgrade.xml file according to the new package and it works. Don't ask me why...:eek:
@all: an IFO parser could be great or not ? I started something from the Delphi IFO parser. Let me know if you're interested...
Sharktooth
22nd October 2007, 12:32
@kurtnoise: does those problems happen only on Vista? have you tried reinstalling megui in a different folder?
an IFO parser could be good to "remove" the DVD Decrypter semi-dependancy in d2v creator.
Kurtnoise
22nd October 2007, 13:32
does those problems happen only on Vista?
yes, I guess...
have you tried reinstalling megui in a different folder?
yes and same problems.
an IFO parser could be good to "remove" the DVD Decrypter semi-dependancy in d2v creator.
Right...In this case, only audio streams info is needed. In addition, could be useful also for Vobsubber tool but only subtitles streams info is required for that. So, coding only parts for Audios & Subtitles will be sufficient for the moment. However, a complete IFO parser will be more interesting in the future I think. ;) That's why I asked.
Sharktooth
22nd October 2007, 13:37
@all: there's an update to sharpzlib: http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx
maybe it's worth doing the update. it may fix some problems... like the kurtnoise's ones.
Sharktooth
22nd October 2007, 13:59
0.2.6.1028
- (Sharktooth) [Libs] Updated SharpZipLib (may fix some unzipping problems)
- (Kurtnoise) [Muxer] : output filename edition allowed.
- (Kurtnoise) [MP4 Muxer] : renable the tmp command correctly (#1795829)
- (Kurtnoise) [One Click] : few tunings
- (Kurtnoise) Cosmetics
berrinam
22nd October 2007, 15:02
I hope I haven't caught you too late, but I've already done some work to support ifo parsing via vStrip. It calls vStrip.dll with PInvoke, and it seems to be working. I've used the current implementation to find out PGCs on a DVD, and I use this to automate running of DVDDecrypter. I don't know the relative advantages of different IFO parsers; I just used vStrip because I was able to link it to MeGUI most easily.
I've uploaded this code, updated to the latest version, and it is accessible as a branch here:
https://megui.svn.sourceforge.net/svnroot/megui/branches/vstrip
I have no objection to not using vStrip if you think it has problems, by the way.
Sharktooth
22nd October 2007, 15:03
@devs: What about setting up a VPN (hamachi) between devs? We can chat, share info and sources, etc...
berrinam
22nd October 2007, 15:05
I think it's about time that we branch megui so that we can start making some bigger changes again. What do you think?
Also, I think the branches are set up wrong. I, at least, have the entire repository as my working copy, so that I can play with all the other megui-related tools like MediaInfoWrapper, etc. I think we should rename 'trunk' to 'megui', and stick all the folders except 'branches' and 'tags' inside a newly-created 'trunk' folder, or something to a similar effect.
Sharktooth
22nd October 2007, 15:44
i think we should rename trunk to Sources (or something) and move all folders except branches and tags into a new MeGUI folder.
something like:
root
|-branches
|-tags
|-MeGUI
|- bautodeint
|- MediaInfoWrapper
|- ...
|- Sources
however i would like to wait until all the bugs are fixed to make a sort of new start... once a stable version gets released we can mess with everything, including new stuff or the SVN tree structure.
releasing a stable version is the first priority so we can concentrate on design and new features implementation. we have just few bugs to fix...
Kurtnoise
22nd October 2007, 16:17
I have no objection to not using vStrip if you think it has problems, by the way.
I don't think vStrip has issues and it has been tested a lot. So, why not after all. In fact, my main goal is to avoid using external dependancies. That's why I starded this...I'll look at this tonight if I've some time.
What about setting up a VPN (hamachi) between devs? We can chat, share info and sources, etc.
Well...I'll be much interested by an IRC chan or something coz I never tried/installed such tools.
I think the branches are set up wrong.
Indeed...I agree with Sharktooth to wait the last bugs fixing before to change something.
About SVN tree >> why not something like that :
MeGUI
|-branches
|-tags
|-trunk
|- bautodeint
|- MediaInfoWrapper
|- ...
|- Sources
That's the standard pattern iirc for the first nodes...
Sharktooth
22nd October 2007, 16:20
Hamachi is a 1-click setup VPN... ;)
however if you prefer IRC we can register a MeGUI channel on freenode.
PS. I think the cause of #1816269 and #1813769 is the unnecessary "--split 0M" switch that gets in the commandline when splitting is not selected.
berrinam
22nd October 2007, 23:50
I agree. But where does it come from? If you look at the MuxJob class, SplitSize is of type FileSize? -- a nullable type. It's either supposed to have a non-zero value or be null, and never supposed to have a value of zero. It's supposed to be impossible to even select a split size of zero, and when I try it, I can't -- if I enter 0, it just ignores me.
However, if you entered a split size of 1KB or even 1 byte, then it would result in --split 0M. I just played around with mkvmerge, and it only lets you enter split sizes greater than 1MB. I will put that restriction on MeGUI and hope it helps.
Sharktooth
22nd October 2007, 23:52
ppl is weird an likes to experiment with stuff...
Kurtnoise
23rd October 2007, 09:52
About update issues: now libs package is well unzipped but the problem remains with xvid_encraw and dgdecode. So, could you try to change/update your zip compressor and update those packages. Maybe, that should do the trick...
About IFO parsing: have a look at this (http://subtitlecreator.svn.sourceforge.net/viewvc/subtitlecreator/trunk/DVDinfo.cs?view=markup). Most of the code can be reused I think. Plus, that avoids some wasting time...:)
About VPN & IRC: well...I'll look at Hamachi but the channel IRC can be done first imo and if it's not enough, we can go to the VPN stuff. What do you think ?
Sharktooth
23rd October 2007, 17:15
i used 7-zip to zip those files... and i doubt it has something to do with the zip format since here they got unzipped without any problems. however i'll replace those files...
about IFO parsing, yeah, that's almost what we need.
to register a IRC channel we need ppl...
EDIT: I replaced those files. Clear the cache directory and try again.
Sharktooth
23rd October 2007, 17:38
0.2.6.1029
- (berrinam) Fix #1817211 (Bitrate calculator - MP4 container problem)
- (berrinam) Fix #1818125 (Unhandled exception on mux of x264 and neroaac into mkv)
- (berrinam) Fixed #1818131 (Error in computing resolution)
- (berrinam) Enforce minimum split size of 1MB; add assertions to help track down #1816269
Kurtnoise
23rd October 2007, 18:08
EDIT: I replaced those files. Clear the cache directory and try again.
if you speak about the cache from my internet browser, the result is the same...:(
btw, I just added OS and Framework detection into the trunk. It's written in the log during the mainform loading. Could be useful for bugs reports I think...
Sharktooth
23rd October 2007, 18:34
no.. i speak of the MeGUI cache directory. the "update_cache" folder into megui installation directory...
dinolib
23rd October 2007, 19:48
For the update problem: I've solved the problem deleting the files of 0kb in the update_cache. The MeGUI downloaded again the files correctly.
There is any kind of problem with the update downloads?
Work-around: MeGUI should check the size of the files in the update_cache before unzip them (or use CRC).
Taurus
23rd October 2007, 21:14
For the update problem: I've solved the problem deleting the files of 0kb in the update_cache. The MeGUI downloaded again the files correctly.
There is any kind of problem with the update downloads?
Work-around: MeGUI should check the size of the files in the update_cache before unzip them (or use CRC).
Thanks dinolib
This tip saves me hours of frustration.
Many of the updates downloaded correctly and show zero bytes. I guess the unpacker is behaving strange.
Sometimes it works, sometimes not:p
berrinam
23rd October 2007, 21:58
MeGUI should delete files from the cache which update unsuccessfully.
Taurus
24th October 2007, 09:32
Some more observations:
There is no logic in the update failures.
Sometimes the very same file that gets corrupted at first try
is downloaded and unpacked nice at second attempt.
In case of mencoder it is about a 10 Mbytes repetition :(
The Xvid profiles got unpacked without the custom matrixes to "extras" folder, and so on.
So you can't be sure that everything is in the right place after updating and verifying each task after download is a pain in the a....
Yes, and my internet connection is very stable, no dropouts at downloads for a long time :confused:
Sharktooth
24th October 2007, 12:45
are you using Vista?
also the autoupdate server is getting overloaded... again... maybe that's the reason.
EDIT: it finally happened to me too. the 0 byte file doesnt get deleted. that means autoupdate doesnt delete the failed updates from the update_cache directory.
I submitted a bug report in the bug tracker.
berrinam
24th October 2007, 13:23
When I said "should," I really meant, "that would be a nice thing to have", not "I expect it to happen and I'm surprised it didn't"
Obviously unclear wording, sorry.
Sharktooth
24th October 2007, 13:52
i fixed the 0 byte thing by ignoring 0 byte files in update_cache directory but i just spotted another problem...
if the user hits the abort button while updating a file, an incomplete file gets cached... and that obvioulsy causes unzipping errors.
needs a fix...
Taurus
24th October 2007, 16:40
are you using Vista?
No, XP SP2
Sharktooth
24th October 2007, 16:48
oh... i forgot the 1030 changelog:
0.2.6.1030
- (berrinam) Forbid input and output filenames from being the same. (Should fix #1817324)
- (berrinam) Change AutoEncode default split size to "No splitting" and default target size to "1 CD." Hopefully fixes #1813769 and #1816269
- (Kurtnoise) Added OS and Framework detection.
Kurtnoise
24th October 2007, 17:02
hamachi installed...what's the next step now ? Create a new network I suppose ?
mail-me if you want: kurtnoise at free dot fr
Sharktooth
24th October 2007, 17:37
you got mail :)
however maybe it's better an IRC channel or just MSN. i just saw the linux version has no chat... what a shame...
Kurtnoise
25th October 2007, 09:51
\o/...I finally solved my update issues. Now, all seems to work flawlessly here on Vista. There were some conflicts between two update_cache folders content...OMG. :D I had 2 copies of megui svn trunk in my environment path with all content duplicated. That's why it didn't work. I removed the old one and...bingo. :stupid:
berrinam
25th October 2007, 12:29
Great! Now there are no bugs on the tracker that I can reproduce except the large fonts issue, which I don't know how to fix. Do you want to branch megui so we can start adding more features?
Kurtnoise
25th October 2007, 12:44
ok for me...but maybe, it's time to release a "stable" version first.
About large fonts issue: I'm trying something...I'll give you some feedback if it's ok or not.
Concerning #1795528 (http://sourceforge.net/tracker/index.php?func=detail&aid=1795528&group_id=156112&atid=798476)...it can be closed imo. It's not related to MeGUI and I can live without it.
About #1715064 (http://sourceforge.net/tracker/index.php?func=detail&aid=1715064&group_id=156112&atid=798476): I don't think it's related to MeGUI too...For what I've seen in the forum.
Sharktooth
25th October 2007, 12:58
both closed. what about #1811644 (http://sourceforge.net/tracker/index.php?func=detail&aid=1811644&group_id=156112&atid=798476) ? can you reproduce it?
Kurtnoise
25th October 2007, 13:06
cannot reproduce it here using the last revision...it works fine.
Sharktooth
25th October 2007, 13:14
so, once the muxing problems gets a confirmation they have been fixed, there are only 2 bugs left. the 120dpi fonts bug and a possible resource leak (#1816325 (http://sourceforge.net/tracker/index.php?func=detail&aid=1816325&group_id=156112&atid=798476)), unless the latter is a an external app (decoder, avisynth_MT or filters?) problem.
So, should we change the versioning for the upcoming stable release?
PS. There's still a bug with the updatecacher. the "aborted" files should be removed from the update_cache folder.
berrinam
25th October 2007, 13:53
But you've marked that in the tracker as fixed, haven't you?
Sharktooth
25th October 2007, 13:58
yup, i was pretty annoyed by the megui update problems kurtnoise had on vista that i just forgot to check for the "aborted" files (actually megui tries to delete and re-download 0 byte files... exceptions are not handled though...)... my bad.
on the other side, i have an idea in how to fix that but maybe it's not so good and quite complex. it requires flagging the aborted/incomplete files... if you have a simplier solution just let me know.
berrinam
25th October 2007, 14:16
I think I've got something that works quite simply. It's a bit clunky, as it requires the user to run update again, but at least it deletes the bad file. Fix committed in rev306.
Sharktooth
25th October 2007, 14:31
yep, it's ok for me. FlushFile() can be even reused in the updatecacher around line 70 but it can be just left as it is.
i just added the exception handling.
PS: Im updating the x264 encoder profiles and maybe i will change the profiles names.
Kurtnoise
25th October 2007, 15:54
About large fonts issue: I'm trying something...I'll give you some feedback if it's ok or not.
Not a bug in fact. I just moved to large fonts, updated each component forms to have a correct size (AutoSize=False was already correct), recompiled and it works fine with 120 DPI. Then I changed back the size (120 to 96), rebooted and...with normal size (96 DPI), forms are not scaled properly. So, I don't know what to do for the moment...
Kurtnoise
25th October 2007, 17:37
@berrinam: what do you think about a MSN or an IRC chan to chat between each others ?
mini-moose
25th October 2007, 21:43
the muxing tool's splitting-->select size... doesn't seem to be working well for me (at least). once I use the drop meu and choose "select size..." it's tab appears on my taskbar but it's not visible or usable for choosing.
also something I thought that can be nice is to add an option in the "settings" to set a different default container. default seems to be mp4. personally I'm using mkv only so everytime I launch megui I need to set it to that instead of mp4. same goes for the autoencode. even when the container is changed to a different one then mp4 it will still be mp4 on Autoencode (unlike on bitrate calculator). I will submit this on sourceforge.
Sharktooth
25th October 2007, 22:30
i just fixed the "Select size" dialog, but the next times, please report bugs on the MeGUI Bug Tracker.
berrinam
25th October 2007, 23:25
@berrinam: what do you think about a MSN or an IRC chan to chat between each others ?
Either's fine for me.
Sharktooth
25th October 2007, 23:50
irc.freenode.net #x264 until we have an official megui channel...
Zulithe
26th October 2007, 00:32
in MeGUI 0.2.6.1032, Tools menu -> AviSynth Script Creator, then for Video Input pick a file (any video file, i've tried probably a dozen different formats/codecs), meGUI closes and doesn't leave a log file as to why it closed.
I have AviSynth 2.5.7 (stable) installed in the default directory. Am I doing something wrong?
Using Vista Business 32bit.
Sharktooth
26th October 2007, 00:38
i suspect it's still a vista related problems since it works fine on XP...
could you try disabling the Preview from megui settings?
Zulithe
26th October 2007, 00:42
I went to settings -> Main tab ('other' subsection), unchecked "Open Preview after AviSynth script selection", clicked saved, exited MeGUI, restarted, reattempted, and it still closed with no error.
MeGUI Version: 0.2.6.1032
OS used: Microsoft Windows Vista
.Net Framework installed: 2.0.50727.312
Sharktooth
26th October 2007, 00:52
as you know, megui relys on directshow.
can you please grab graphedit and drop one of the files creating problems in it.
see if it plays correctly and post a screenshot of the graph.
Zulithe
26th October 2007, 00:58
http://i21.tinypic.com/316uid2.jpg
Sharktooth
26th October 2007, 01:05
does it play correctly in graphedit?
also, try using haali splitter instead of nero MP4 splitter...
Zulithe
26th October 2007, 01:31
Whew. Okay, installed haali splitter (version on the front page of their site), set it up to control .AVI files. here is graph edit now:
http://i21.tinypic.com/169rhgo.jpg
But megui still crashes the same...
Sharktooth
26th October 2007, 01:33
but does the file play correctly using graphedit?
Zulithe
26th October 2007, 01:34
Yes absolutely, it plays
*edit*
screenshot of it playing
http://i21.tinypic.com/icqoox.jpg
Sharktooth
26th October 2007, 13:55
as usual i forgot the changelogs
0.2.6.1031
- (berrinam) Fix #1817324 (Original audio is deleted when encoding fails)
- (Kurtnoise) cosmetic - remove an unused variable & ensure update_cache folder creation.
- (berrinam) Fix #1819627 (Analysis Pass broken)
- (Sharktooth) [AutoUpdate] Another try at fixing the update failures on Vista.
- (Sharktooth) Added MeGUI version to the Log
- (Sharktooth) [AutoUpdate] Fix #1819257 (Auto-update doesnt delete failed updates from update_cache). Now UpdateCacher ignores 0 bytes files.
- (berrinam) Fixed DAR detection for non-DVD DGIndex files.
0.2.6.1032
- (Sharktooth) [AutoUpdate] Added IOException handling when deleting 0 byte files.
- (Kurtnoise) [JobWorker] : Same separator width.
- (Kurtnoise) [Log] : Debug Infos were removed after jobs processing.
- (berrinam) [AutoUpdate] Fix #1819257 (Auto-update doesn't delete failed updates from update_cache)
0.2.6.1033
- (Sharktooth) [UpdateWindow] Fixed the enc_aacplus discrepancies.
- (Kurtnoise) [SettingsForm]: fixed a missing Click Action for avc2avi.
- (berrinam) Fix #1820411 (OneClick overcrop to mod16 doesn't appear to work)
- (Sharktooth) Fixed "Select Size" dialog appearing behind mux window.
Sharktooth
26th October 2007, 13:57
upgrading to 0.2.6.1033 may be problematic
please read this BEFORE upgrading: https://forum.doom9.org/showthread.php?p=1058892#post1058892
Kurtnoise
26th October 2007, 15:51
@devs: I've a patch for that (http://sourceforge.net/tracker/index.php?func=detail&aid=1820593&group_id=156112&atid=798479) but we need to create a fake file in the enc_aacplus package first (yeaaaaaaaah for Vista compatibility otherwise we get an access denied :devil:). What do you think ? useful or not ?
Index: core/gui/Form1.cs
===================================================================
--- core/gui/Form1.cs (revision 315)
+++ core/gui/Form1.cs (working copy)
@@ -1471,6 +1471,11 @@
updateCheck.Start();
}
Version ver = Environment.Version;
+ string ProgFilesFolder = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
+ string encaacplusdll = ProgFilesFolder + "\\Winamp\\Plugins\\enc_aacplus.dll";
+ string nscrtdll = ProgFilesFolder + "\\Winamp\\nscrt.dll";
+ string Enc_AACPlusPath = Path.GetDirectoryName(settings.EncAacPlusPath);
+
logBuilder.AppendFormat("MeGUI Version: {0} {1}", Application.ProductVersion, Environment.NewLine);
logBuilder.AppendFormat("OS used: Microsoft {0} {1} {2} {3}", OSInfo.GetOSName(), OSInfo.GetOSProductType(), OSInfo.GetOSServicePack(), Environment.NewLine);
logBuilder.AppendFormat(".Net Framework installed: {0}{1}", ver, Environment.NewLine);
@@ -1478,6 +1483,12 @@
logBuilder.AppendFormat("------------------------------------------------------ {0}", Environment.NewLine);
logBuilder.AppendLine();
this.log.Text = logBuilder.ToString();
+
+ if (!File.Exists(settings.EncAacPlusPath.LastIndexOf(@"\") + "\\enc_aacplus.dll"))
+ {
+ if (File.Exists(encaacplusdll))
+ File.Copy(encaacplusdll, Enc_AACPlusPath + "\\enc_aacplus.dll", true);
+ }
}
private void beginUpdateCheck()
Sharktooth
26th October 2007, 15:58
Uhm... we need to get the winamp path from the registry.
we cant assume winamp is installed in "\Program files\Winamp"
EDIT: New bug... trying to open the bitrate calculator after loading an input file in the main form makes megui crash with a finite loop...
that happens if Acceptabe FPS rounding error is set to 0.
EDIT2: Fixed.
Kurtnoise
26th October 2007, 17:22
Uhm... we need to get the winamp path from the registry.
we cant assume winamp is installed in "\Program files\Winamp"
ok but how to retrieve the (Default) value ?
this :
public string WinampPath
{
get
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Winamp");
if (key == null)
return null;
else
return (string)key.GetValue("(Default)");
}
}
returns nothing...and if I change the (Default) by something else, it works as excepted.
This is the only one key for Winamp in the Registry...
Sharktooth
26th October 2007, 17:52
there should be an uninstall key with the installation path... let me check.
EDIT: here HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Winamp
there are 2 useful keys: UninstallString and DisplayIcon
those contain the installation path + some other data that can be stripped
Maccara
26th October 2007, 22:37
ok but how to retrieve the (Default) value ?
Before any "hacks" are done, normal way to do it is GetValue(null).
MS says for RegistryKey.GetValue Method:
A registry key can have one value that is not associated with any name. When this unnamed value is displayed in the registry editor, the string "(Default)" appears instead of a name. To retrieve this unnamed value, specify either a null reference (Nothing in Visual Basic) or the empty string ("") for name.
Edit: And I have software which uses this successfully, so I didn't just quote the docs, in case someone wonders if it might be buggy. ;)
Kurtnoise
27th October 2007, 07:25
thanks guys...
Sharktooth
29th October 2007, 01:57
3 bugs left... :)
the 120dpi font issue can be postponed after the "stable" release though...
just a curiosity... yesterday MeGUI surpassed the 600 downloads/day (sourceforge statistics (http://sourceforge.net/project/stats/?group_id=156112&ugn=megui)). keeping that pace, it generates about 18Gigz/month of traffic on the SF mirrors... plus the near 3000 project page views...
i wonder how much traffic is generated monthly on the autoupdate server...
Sharktooth
29th October 2007, 02:43
@devs: aud-x support and aud-x encoder could be removed since they have some problems (https://forum.doom9.org/showthread.php?p=1058935#post1058935). we should replace it with another encoder (mp3surround?).
Sharktooth
29th October 2007, 13:40
0.2.6.1034
- (Kurtnoise) [JobWorker] small glitch.
- (Kurtnoise) [AutoEncodeWindow] fixed #1821471.
- (Kurtnoise) [ScriptServer] removed temporarily SimpleResize (#1820850)
- (Kurtnoise) Fixed a recovery for the systray (#1820842).
- (Kurtnoise) [DGindexer] changed the delimiter character to avoid filename issues.
- (Sharktooth) Changed Log font to LucidaConsole (fixed width).
- (Sharktooth) Fixed #1820720 (Bitrate Cal. makes MeGUI crash). Acceptable FPS rounding error has now a minimum value of 0,001. Acceptable Aspect Error has a new default of 1% and a new max of 5%.
- (Sharktooth) MP3 Surround -> Aud-X (ISettingsProvider.cs).
mroz
29th October 2007, 14:45
Just wondering... would it be helpful if the default Megui program shortcuts contained a tools subfolder & therein links to run the appropriate bundled tools directly?
I occasionally need to dip into the programs folder to run stuff directly & I sometimes see user posts suggesting running tools directly to achieve certain tasks.
On a related note, the above seems to be the only way to allow AVIMuxGui to be configured. I use xvid mostly for standalones & they work best with no open dml & no rec lists, ime, so I have to reconfigure AMG.
A further aside: I (happily) see you're trying to include enough functionality in Megui to make it independent of external tools. Is this likely to include support for extraction of chapter info from ifos? I routinely use ChapterXtractor to allow chapter info to be embedded in mp4s.
Kurtnoise
29th October 2007, 14:46
@devs: aud-x support and aud-x encoder must be removed since they have legal issues for GPL violation (https://forum.doom9.org/showthread.php?p=1058935#post1058935). we should replace it ASAP with another encoder (mp3surround?).
speaking about it, I'll more or less interested by remove it completely. I think that mp3surround is restrictive. Look at this :
http://img180.imageshack.us/img180/4040/mp3sencvd7.th.png (http://img180.imageshack.us/my.php?image=mp3sencvd7.png)
You have to hit return to display the licence before to launch the compressor. :rolleyes:
Maybe using mp3sencoder.dll with our own cli tool could do the trick.
Kurtnoise
29th October 2007, 14:50
On a related note, the above seems to be the only way to allow AVIMuxGui to be configured. I use xvid mostly for standalones & they work best with no open dml & no rec lists, ime, so I have to reconfigure AMG.
No...if you already have it on your system, you just have to point MeGUI to the right path for this muxer.
A further aside: I (happily) see you're trying to include enough functionality in Megui to make it independent of external tools. Is this likely to include support for extraction of chapter info from ifos? I routinely use ChapterXtractor to allow chapter info to be embedded in mp4s.
It could be included as soon as we'll have our own IFO parser...
Sharktooth
29th October 2007, 15:21
Just wondering... would it be helpful if the default Megui program shortcuts contained a tools subfolder & therein links to run the appropriate bundled tools directly?
I occasionally need to dip into the programs folder to run stuff directly & I sometimes see user posts suggesting running tools directly to achieve certain tasks.
Could be done. I'll update the installer script as soon as i have some time.
mroz
29th October 2007, 17:43
@Kurtnoise: fair point re AMG if preinstalled, but still a problem if it isn't - unless you assume the default config is adequate for everyone. Nice to see an IFO parser is on the agenda.
@Sharktooth: cool :)
COOLBGT
29th October 2007, 18:59
Guys why did you removed the minimize to tray option in MeGUI. It was really useful an compact and i loved it
Kurtnoise
29th October 2007, 20:24
wtf...Can't see it ?
http://img139.imageshack.us/img139/5714/systraytt7.png
mroz
29th October 2007, 21:03
Guys why did you removed the minimize to tray option in MeGUI. It was really useful an compact and i loved it
You mean how minimise would automatically minimise to tray? There is still the explicit View->Minimise to tray menu entry. Is that not adequate?
Sharktooth
30th October 2007, 03:31
installer script updated. for the next release the installer will create links to tools, logs and auto-update cache folders.
COOLBGT
30th October 2007, 09:57
You mean how minimise would automatically minimise to tray? There is still the explicit View->Minimise to tray menu entry. Is that not adequate?
Ooops sorry. Didn't see that before :thanks:. Peace
mroz
30th October 2007, 13:37
installer script updated. for the next release the installer will create links to tools, logs and auto-update cache folders.
You guys almost make looking for bugs & usability issues fun :D
I've never seen a project where issues are so readily accepted or rapidly addressed. God knows where you find the time & energy. One happy user here :)
If I compare Megui with a well known commercial binary newsreader it's all the more sharp a contrast. Some projects ignore most bugs, have no idea how to triage & no interest in or concept of stable branches, instead relying on massive continuous code rewrites & updates to drown exisiting bugs, usually without success to no surprise.
:thanks:
Sharktooth
30th October 2007, 13:43
well, megui stalled several times too... we're just in a lucky period :)
however tonight im leaving for Lucca Comics and Games 2007 (http://www.luccacomicsandgames.com/page.php?page=7). So, i wont be here for a little while...
Sharktooth
30th October 2007, 13:54
@devs: to avoid #1822000 and for coherency, we should populate the profiles dropdowns (audio and video) with only the profiles belonging to the selected codecs.
SpAwN_gUy
30th October 2007, 14:02
@devs: to avoid #1822000 and for coherency, we should populate the profiles dropdowns (audio and video) with only the profiles belonging to the selected codecs.hm.. berrinam helped me with that thing.. (i guess my part will only be shown to public AFTER the Stable ;) ..)
it has to deal with Dictionary and IDictionary (the reason i can't merge my sources with latest.. :( ... 'coz i dunno how.. well i do,.. but it does not work..)
Sharktooth
30th October 2007, 14:04
uhm, well, it doesnt work since there were some major changes in the latest revisions...
maybe berrinam can help you porting your code to the latest megui version.
SpAwN_gUy
30th October 2007, 14:59
uhm, well, it doesnt work since there were some major changes in the latest revisions...
maybe berrinam can help you porting your code to the latest megui version.um.. yes he agreed with that.. some time ago..
berrinam
30th October 2007, 21:16
I don't have much time now, but in a week I will be able to help. And I agree about #1822000, the current behaviour is presently quite annoying and a pain to work with programatically. It definitely needs some looking at.
Kurtnoise
31st October 2007, 18:59
@devs: there is an issue with Avi-mux_GUI when the output and/or the temp paths contain special caracters (like é, à, è...). I reported the bug to Alexnoe but unfortunately he has no idea why it doesn't work properly for the moment. So, if you have some ideas to avoid this, let me know.
The most problematic is for the temp dir...
Note: it occurs only when we use the command line.
superuser
1st November 2007, 06:13
Today I updated MEGUI to the latest version 2.6.1034 from 2.5.1007. I am seeing suggested resolution resized in two versions to be different.
At present I was doing a source whose original resolution is 720*480 (appears to PAL->NTSC source). In latest MEGUI version Input DAR is reported as ITU 4:3; and suggested resolution for resize width 640 is 640*464. In previous version Megui gave suggested resolution as 640*480 for resized width of 640. I am confused here which one should be considered as correct one. Sorry if this has been already covered as I looked around but could not find what is the way to go with.
Thanks in advance for the help.
Sharktooth
1st November 2007, 14:28
the latest version has a more precise resizing.
mroz
1st November 2007, 14:55
/double checks
Wow, I didn't expect it to make that big a difference & thought something might be wrong but of course Sharktooth is correct.
The ITU DAR for 4:3 NTSC is 1.367088.
640/1.367088 = 468.148
So 464 is indeed the closest usable resolution.
BTW Sharktooth, I thought you were off to Lucca? Short visit? Hope it proved worthwhile. The festival url looked interesting :)
Sharktooth
2nd November 2007, 16:43
There is definatly an internet connection at the ASUS stand...
Web surfing is not enabled but i love hamachi and adding routes...:D
Eamon21
6th November 2007, 11:40
Hey all, what's involved with adding/modifying code on this project? I want to add a new "tool" for transcoding that makes it much easier and batch-able. I'm part way through it already but figured that might as well offer it back into MeGUI if you guys want it?
The idea is to have a transcode profile that specifies a video profile, an audio profile, a container type and an AVISynth script template. Once it is set up, all you need to do is select a file(s) as input and the profile and it creates an avisynth script using the filename and template, and then does a basic transcode using the video and audio profiles specified. It is intended at this stage to be very simple with video and audio sources being the same avisynth script.
Was originally thinking that I could do this by modifying the "One Click Encode" (which really is not one click at all), but that seems very much geared towards encoding DVD's only and is certainly a lot more complex than I want or need. Maybe in time the functionality I am after could be incorporated into the oneclick tool, but at the moment it is too cluttered with excessive options and configuration to really be a "one click" solution, also it doesn't support batching.
This all started with me wanting to convert a lot of MOV files from my digital camera from MJPEG into H264 to save space, there are hundreds and i certainly don't want to have to do them one at a time.
Eamon
Kurtnoise
6th November 2007, 14:21
Glad you're volunteer to improve MeGUI...but I think there are some bugs to fix before to jump in the wind. :D
mroz
6th November 2007, 14:31
@Eamon21: I can't answer your question, being only a user, but I am interested in your modifications, as I'm in a similar situation (in my case, hundreds of mostly mpegs of 3 or 4 minutes duration with a few other formats thrown in to complicate the situation).
/lazy What tools are needed to compile Megui from source? Does one have to use Visual Studio? Is Express adequate? 2005 or the 2008 beta? I have a legit copy of 2005 Pro beta 2 - any good? My wife might have 2005 Pro (need to check).
I was thinking of just knocking a Perl script together to preprocess my sources & insert jobs into Megui's queue, but obviously a proper extension to Megui is much more worthwhile.
I don't know .net or C#, so there's only an outside chance I could contribute to coding - if you were interested - though I do find Megui an attractive project, so might use it to get into C# (anyone recommend some books?).
I did used to program extensively in C & ARM assembler, but that was a long time ago. Since then I've touched on OO concepts with a little bit of Java, but nothing to get my hands dirty (a Foundation degree involving networking & some programming/web design, but nothing of a standard to brag about).
Anyhow, what you're describing sounds like it meets most of my needs. I was also considering a prior stage - I'll need to run some analysis scripts to decide which AVS template to apply to each clip (at least to decide on whether deinterlacing is needed & possibly also to assess quality to select suitable denoising) or possibly to reject clips which don't fall into an obvious category, for manual checking. Would that be compatible with your ideas or is it more than you need?
At the very least I can help with testing your code, which hopefully will be of some use to you.
Doom9
6th November 2007, 15:46
You only need Visual Studio Express C# edition. The 2008 tools will also do if you keep the project to .NET 2.0 features only (finally in the 2008 edition you can turn on/off language features on a project level).
Eamon21
6th November 2007, 15:53
I realise that there are still bugs (aren't there always :)) but to be efficient and competent in tracking and fixing bugs I think I need to be more familiar with the code base which I hope to accomplish through developing a transcode tool. There are already a number of changes that I would like to make to various classes. The impact of these changes should not affect any existing code but all the same I am reluctant to stomp all over someone else's work. What is the process for submitting changes for review before they are incorporated into the main trunk?
Is there somewhere I can post changes that I think should be made and the reasons? I don't think they would belong in the "requested features" section as for the most part, they would not modify functionality, just re-factor the code and and add some best practices.
Eamon
mroz
6th November 2007, 16:04
You only need Visual Studio Express C# edition. The 2008 tools will also do if you keep the project to .NET 2.0 features only (finally in the 2008 edition you can turn on/off language features on a project level).
Cheers. Is that what most of the devs use? Seeing as if I explore this option I'll be installing only to build Megui it makes sense to stick to as similar a build environment as possible.
Don't suppose you have any suggestions for .net/C# books? I wasn't keen on .net/C# to begin with as I hate M$'s approach to most things & if I get into development again, I wanted it to be cross platform, but Mono offers some hope of that, so maybe C# is acceptable.
As an aside, I had been considering QT, but the last open source release was so delayed it virtually killed off Opie (http://opie.handhelds.org/cgi-bin/moin.cgi/WhatIsOpie) which I'd been following.
cogman
6th November 2007, 16:04
Where is the current source for megui? Right now the SVN is all the way back at 1028.
Eamon21
6th November 2007, 16:12
Anyhow, what you're describing sounds like it meets most of my needs. I was also considering a prior stage - I'll need to run some analysis scripts to decide which AVS template to apply to each clip (at least to decide on whether deinterlacing is needed & possibly also to assess quality to select suitable denoising) or possibly to reject clips which don't fall into an obvious category, for manual checking. Would that be compatible with your ideas or is it more than you need?
For my immediate needs this is probably more than I need, most of the movies I want to convert tend to be from the same source (digi cam) and I intended to use x264 in const. quality mode. The most I really need is to rotate by 90 degrees some of the movies, not sure how to automate a test for that though if it is even possible.
In some ways it also goes against what I am hoping to achieve here as well by making the process more complex . This could be largely mitigated through good UI design and well thought out defaults.
As I said earlier, part of my motivation here to create a new tool is the fact that the "One Click Encode" tool is not even close to one click and far too complex for a simple transcode operation. While MeGUI is quite powerful and I like the concept, it is not a very clean design and not very user friendly. I think this holds it back a great deal and as such I want to keep the transcode tool as "clean" and easy to use a possible.
Having said that, I certainly wouldn't rule out what you are after though I am not sure how it would work. It seems like it might be a very niche requirement and so might be better implemented in some scripting way, possible AVISynth? I'm not very familiar with the power of the AVISynth scripting language, but if what you are after was possible (in some part at least) in AVISynth then it would effectively work right in with what I am planning as I will take my input from an AVISynth template which could (possibly) contain your custom preprocessing.
Eamon
mroz
6th November 2007, 17:10
Where is the current source for megui? Right now the SVN is all the way back at 1028.
A very naive question coming up, so I might as well confess in advance to being ignorant about SVN as well as most things:
http://megui.svn.sourceforge.net/viewvc/megui/trunk/Changelog.txt?view=log shows the updates as far as 1034 eight days ago, so why do you say SVN only contains code to release 1028?
cogman
6th November 2007, 17:31
I'm not quite sure myself (Im not a SVN expert either). I just know that when I compiled and ran it, it reported itself as being the 1028 version. Im redownloading, it could be that I compiled it incorrectly.
Sharktooth
6th November 2007, 17:39
Is there somewhere I can post changes that I think should be made and the reasons? I don't think they would belong in the "requested features" section as for the most part, they would not modify functionality, just re-factor the code and and add some best practices.
Eamon
Yes, sure. The MeGUI project Patch Tracking System (http://sourceforge.net/tracker/?group_id=156112&atid=798478) on SF.
Before posting, ensure to create a patch (universal .diff file) against the latest SVN revision.
mroz
6th November 2007, 17:56
For my immediate needs this is probably more than I need, most of the movies I want to convert tend to be from the same source (digi cam) and I intended to use x264 in const. quality mode. The most I really need is to rotate by 90 degrees some of the movies, not sure how to automate a test for that though if it is even possible.
That's an interesting problem. I wonder if average orientation of motion vectors would tend to show more movement in the horizontal plane? If I wanted to pursue that I'd look into avisynth & mvtools - it might be possible to get that info out of mvtools; I'm not sure.
In some ways it also goes against what I am hoping to achieve here as well by making the process more complex . This could be largely mitigated through good UI design and well thought out defaults.
I certainly appreciate the desire to keep the interface clean.
As I said earlier, part of my motivation here to create a new tool is the fact that the "One Click Encode" tool is not even close to one click and far too complex for a simple transcode operation.
I didn't explore Megui's one click encode much as it didn't seem to meet my needs for any of my own use cases, but that's perhaps not surprising as a one click solution is ambitious if it's to cover more than a very restrictive set of sources & do a decent job.
While MeGUI is quite powerful and I like the concept, it is not a very clean design and not very user friendly.
That was my initial impression too but perhaps through a few months familiarity I've lost that perspective. Certainly I'd say it feels like a tool set which has evolved, rather than an integrated whole designed with consistent aims. Not that I'm criticising Megui, should it come across that way; I find it highly functional or I'd not be bothering posting in these threads. It's also harder obviously to achieve unification when underlying tools are third party.
I think this holds it back a great deal and as such I want to keep the transcode tool as "clean" and easy to use a possible.
Fair point. As it happens I like clean too.
Having said that, I certainly wouldn't rule out what you are after though I am not sure how it would work. It seems like it might be a very niche requirement and so might be better implemented in some scripting way, possible AVISynth? I'm not very familiar with the power of the AVISynth scripting language, but if what you are after was possible (in some part at least) in AVISynth then it would effectively work right in with what I am planning as I will take my input from an AVISynth template which could (possibly) contain your custom preprocessing.
I don't think the preprocessing could be done at encode time - typically it would need an initial pass to assess the entire source. That said, it would be AVISynth based.
I'm no AVISynth guru, but yes, AVISynth is very powerful & would be used to perform most of the tests (via Megui's Analysis job type - which runs a script via Mencoder with null output; analysis results are written to a log file as the script proceeds via WriteFile (http://avisynth.org/mediawiki/WriteFile).
Writing generic template g(i) to mean {audio profile(i), video profile(i), containor type(i), avs template(i)} (where by (i) I mean depending on i, not merely indexed by i)
Your model currently looks like:
transcode template <-> g
Essentially the additional functionality needed of your user interface would be
transcode template <-> { analysis script, {g(i) for a small range of i}}
A transcode job would then consist of one (optional) analysis job, the output of which selects which g(i) to appy for the main transcode.
Personally I'd like to see a special case of g(i) which doesn't perform an encode but instead outputs a log in place of the encode, explaining that the user needs to intervene as the analysis stage couldn't reach an automated conclusion.
As you say, with a well designed user interface & default settings, the necessary gui could be virtually indistinguishable from one providing your original functionality. All that needs to be visible is the option, when defining a transcode template to add an analysis script (from a drop down list of predefined scripts); as soon as this is selected, the gui modifies slightly to allow the transcode template to define multiple g(i) rather than a single g(i) - perhaps via multiple tabs (I'm getting ahead of myself here, but the tabs could take meaningful names from suitable comments in the analysis script).
Does that make sense at all?
Eamon21
6th November 2007, 18:10
@mroz: Ok, I see what you are getting at. I doubt it will be in the initial version of the tool, but I will keep it in mind for the design with a view for possible addition later.
mroz
6th November 2007, 18:17
@Eamon, regarding detecting orientation, are you able to restrict the choices to one horizontal & one vertical? For example, I doubt you shoot much material with the camera upside down, but when it's on its side, is it always orientated the same way?
I'm guessing it might be possible to tell horizontal from vertical, but up from down is probably much harder.
Eamon21
6th November 2007, 19:22
@Eamon, regarding detecting orientation, are you able to restrict the choices to one horizontal & one vertical? For example, I doubt you shoot much material with the camera upside down, but when it's on its side, is it always orientated the same way?
I'm guessing it might be possible to tell horizontal from vertical, but up from down is probably much harder.
Unfortunately not, while it is possible that I have, I am not certain. I can't really see how it would be possible for a computer to tell which way the video was shot without some freakishly complex algorithms and horsepower. Even then I wouldn't bet on it getting it right all the time.
Given how much easier it would be for me to just look at the thumbnail for each movie and decide which ones to rotate, I don't think it is worth pursuing an auto rotate. Happy to use one though if someone else comes up with a reliable method :)
berrinam
7th November 2007, 03:13
3 bugs left... :)
the 120dpi font issue can be postponed after the "stable" release though...
just a curiosity... yesterday MeGUI surpassed the 600 downloads/day (sourceforge statistics (http://sourceforge.net/project/stats/?group_id=156112&ugn=megui)). keeping that pace, it generates about 18Gigz/month of traffic on the SF mirrors... plus the near 3000 project page views...
i wonder how much traffic is generated monthly on the autoupdate server...
The update_cache seems to cause problems with people who attempt a "clean reinstall" of MeGUI, since I think they often leave the update cache behind. Would it be possible for the MeGUI uninstaller to delete (or give the option of deleting) the update_cache registry key?
Also, about autoupdate bandwidth: we may be able to transfer some of this load to Sourceforge if we additionally distribute "offline installs" -- these installs would have to set the update_cache registry key and which fill the update_cache folder with the files off the server. I don't know any installer scripting, so I can't do this, but I think the option of this could be good for some people, and it could result in fewer downloads from the autoupdate server.
berrinam
7th November 2007, 03:50
via Megui's Analysis job type - which runs a script via Mencoder with null output; analysis results are written to a log file as the script proceeds via WriteFile (http://avisynth.org/mediawiki/WriteFile)Just to clarify a point on this: MeGUI achieves the same result as this without the mencoder dependence: MeGUI just plays through the script directly, since it already can interface with Avisynth
mroz
7th November 2007, 03:51
Unfortunately not, while it is possible that I have, I am not certain. I can't really see how it would be possible for a computer to tell which way the video was shot without some freakishly complex algorithms and horsepower. Even then I wouldn't bet on it getting it right all the time.
Given how much easier it would be for me to just look at the thumbnail for each movie and decide which ones to rotate, I don't think it is worth pursuing an auto rotate. Happy to use one though if someone else comes up with a reliable method :)
It just seems like an interesting challenge. I want to test my idea that typical material will have more horizontal motion than vertical.
MVTools (an AVISynth plugin) already has a depan function which will generate some stats on global motion in each frame. If I can get it to spit these into a log file I'll run a few checks to see if there are such patterns.
If it works at all I'd still not want to bet on reliability though ;)
And that still doesn't begin to address how one tells up from down.
mroz
7th November 2007, 03:54
Just to clarify a point on this: MeGUI achieves the same result as this without the mencoder dependence: MeGUI just plays through the script directly, since it already can interface with Avisynth
Thanks, that's important to know. How does it open the script? Does it suffer from the same problems as MEncoder requiring the hack of appending a call to Distributor() to the end of the script in order to allow SetMTMode() to be effective?
Edit: /checks
Yup, it does. An analysis pass for this scriptSetMTMode(2,0)
leaf1="noSetMT-md5-A6D1176F8C46CA800278D64FCA94C160"
leaf2="SetMT-t1-tsp1-md5-64920A02A02CB3332F27D88797B3DBC1"
global c1=AVISource("E:\Work\test\hfyu_MVMT-longtest-"+leaf1+".avi")
global c2=AVISource("F:\Michael\My Documents\VideoCompilations\hfyu_MVMT-longtest-"+leaf2+".avi")
global total=0
global file="E:\Work\test\compare-"+leaf1+"-"+leaf2+".log"
BlankClip(c1, width=16, height=16) # maybe 15% faster than using c1 as our 'dummy' clip (& 100% faster than using subtract(c1,c2) with variation subtitled)
WriteFileStart(file, """ "vim:tabstop=6"+chr(10) """, """ Time("%#c")+chr(10) """, """ "Frame"+chr(9)+"Total"+chr(9)+"Variation" """, append=true)
WriteFileEnd(file, """ "Test complete."+chr(10) """)
ScriptClip( """
variation = LumaDifference(c1,c2)+ChromaUDifference(c1,c2)+ChromaVDifference(c1,c2)
# nb1 keeping writefile inside here allows us to store variation as local, reducing problems with running in MTMode 2
# nb2 aside: writefile doesn't want to when called inside FrameEvaluate; anyone know why?
# nb3 sometimes the running total is reported incorrectly in MTMode 2 as another thread updates the total before code writes out data to log;
# this isn't terribly important & can be corrected as is implicit in data set
# nb4 compare against 0.0001 instead of 0 to allow for rounding errors - 2 identical files will report a variation of 0.000022
WriteFileIf(file, "variation>0.0001", "current_frame", "chr(9)", "thistotal", "chr(9)", "variation")
global total = total + ((variation>0.0001) ? 1 : 0)
thistotal = total # massively reduce chance of MTMode 2 screwing up logging of total
return last
""" )
#Distributor()
gives me 44fps & 23% cpu load without Distributor & 137fps around 80% cpu load with it.
This is the same situation one faces when doing a prerender pass in Megui via MEncoder.
I don't know how much I've posted in Megui threads about this before, so I'll summarise the conclusions reached with the help of MT's dev tsp & AVISynth dev IanB. When a script is opened as an AVIfile with an MT aware AVISynth, & the script is seen to invoke SetMTMode, it is able to append to the filter chain a call to Distributor; when however the script is imported or otherwise fed into a dynamic AVISynth environment, AVISynth has no easy way to know when the script is complete & Distributor is not invoked resulting in single threaded performance.
The fix has to be within the program invoking the script - in this case both MEncoder & Megui: After the script is imported, call GetMTMode to read the current mode. If there's an error/exception (typically as GetMTMode doesn't exist), proceed as normal, otherwise, if the mode is between 1 & 4 invoke Distributor().
There's most of an untested suggested patch to mencoder here (http://forum.doom9.org/showthread.php?p=1052022&highlight=distributor#post1052022) which is probably close to what's needed in Megui (though MEncoder uses the C API to interact with AVISynth). Also some info on MT (http://avisynth.org/mediawiki/MT_modes_explained).
I'd file a proper bug report, but it's nearly 4am here & I want to go to sleep. Also I lost steam over this issue as I was hoping a MEncoder dev would care enough to fix the problem their end but I guess they have a lot of problems judging from their mailing lists.
Sharktooth
7th November 2007, 03:58
The update_cache seems to cause problems with people who attempt a "clean reinstall" of MeGUI, since I think they often leave the update cache behind. Would it be possible for the MeGUI uninstaller to delete (or give the option of deleting) the update_cache registry key?
Also, about autoupdate bandwidth: we may be able to transfer some of this load to Sourceforge if we additionally distribute "offline installs" -- these installs would have to set the update_cache registry key and which fill the update_cache folder with the files off the server. I don't know any installer scripting, so I can't do this, but I think the option of this could be good for some people, and it could result in fewer downloads from the autoupdate server.
ill do that (both things) as soon as i have some time.
berrinam
7th November 2007, 04:03
This page may be useful for those interesting in contributing code to MeGUI: http://mewiki.project357.com/index.php/MeGUI:Helping_with_MeGUI
In some ways it also goes against what I am hoping to achieve here as well by making the process more complex . This could be largely mitigated through good UI design and well thought out defaults.
I haven't actually used any encoding GUIs other than Gordian Knot and Nero for any extended period of time, so I don't know how they approach this, but it seems like setting up an encode of a video is actually a hard problem. Particularly with DVD/TV/Digicam captures, a number of things need to be configured: cropping, input AR, resizing, deinterlacing, which audio/subtitle tracks to keep, and potentially editing of the video and denoising. I don't specifically know what you refer to when you discuss "cleanliness", but many of these things are important even for automated encodes, so the best that an automated encoder can do is automate as much of this as possible (which can potentially be all of it except editing), allowing the advanced user to configure the automation at the start while hiding these options from the novice user so as not to scare them.
I believe that the One click encoder mostly does this already. For starters, the General tab contains only Input, Output, audio track selection, profile name, and filesize; I would expect even a novice to understand what all of them mean (except perhaps the profile). And there is a clear distinction between General and Advanced, as you have to click "Show Advanced Options" to get to the advanced options. I agree that resolution selection could be made more flexible, and the ability to add an Avisynth pre-render job now seems out of place, but I believe the rest of the options important.
However, this large number of options does not prevent it still being a one click approach. For me, I can simply open the input file, and press go, since I have my options already configured in a oneclick profile.
This all started with me wanting to convert a lot of MOV files from my digital camera from MJPEG into H264 to save space, there are hundreds and i certainly don't want to have to do them one at a time.Indeed, MeGUI doesn't handle this kind of encoding well.
I also agree with the criticism that the tools in MeGUI are not well integrated. I would be interested in discussing how this could be improved.
berrinam
7th November 2007, 04:06
Thanks, that's important to know. How does it open the script? Does it suffer from the same problems as MEncoder requiring the hack of appending a call to Distributor() to the end of the script in order to allow SetMTMode() to be effective?
MeGUI does nothing explicit to support MT Avisynth, so no, it doesn't call Distributor(). I don't know whether this actually results in it running multi-threaded or not, since I haven't used MT Avisynth.
mroz
7th November 2007, 04:50
MeGUI does nothing explicit to support MT Avisynth, so no, it doesn't call Distributor(). I don't know whether this actually results in it running multi-threaded or not, since I haven't used MT Avisynth.
I started editing the post you replied to before reading your response, so if you have a moment please look back at that for some comments on this issue. Thanks.
berrinam
7th November 2007, 04:59
I don't know how much I've posted in Megui threads about this before, so I'll summarise the conclusions reached with the help of MT's dev tsp & AVISynth dev IanB. When a script is opened as an AVIfile with an MT aware AVISynth, & the script is seen to invoke SetMTMode, it is able to append to the filter chain a call to Distributor; when however the script is imported or otherwise fed into a dynamic AVISynth environment, AVISynth has no easy way to know when the script is complete & Distributor is not invoked resulting in single threaded performance.If MeGUI uses the AVIFile interface, then I presume this problem will be solved? (although we lose the niceties of better error handling, darx/dary reading)
mroz
7th November 2007, 05:07
If MeGUI uses the AVIFile interface, then I presume this problem will be solved? (although we lose the niceties of better error handling, darx/dary reading)
AIUI Yes. A shame to lose any benefits though. Is dar reading involved in the analysis pass? Now I really am going to sleep. I ought to schedule a task to kill my damned email client around 2am :)
check
7th November 2007, 10:15
just a note letting you know my update cache's mirror automatic update procedure died about 4 days ago. It won't be fixed until I have moved to a new server, which is looking to happen in the next fortnight.
berrinam
7th November 2007, 11:30
I'm getting a bit impatient with this stable release, as we keep waiting to fix all the bugs, as more and more are still found. I say we branch now, continuing to commit bug fixes (but nothing else) to the stable version, and committing new code to the development version.
If no-one objects, I'm happy to go ahead and perform the SVN branch. I would bump the development version number up into the 0.3.x.x series, and leave the version number of the stable version alone. Then I would rearrange the SVN folders to look like this:
root
|-branches
|-tags
|-0_2_x_x
|-trunk // this has the development version
|-bautodeint
|-MediaInfoWrapper
|-...
|-MeGUI
What do you think?
berrinam
7th November 2007, 11:50
Also, since we're having a discussion about GUI design now, one thing I've been thinking about doing is moving audio and video encoding off the main page, and just putting them in another dialog box, like muxing, autoencode, etc. This can potentially free up the main page for a more intuitive UI, perhaps one where you just dump your files (via drag-and-drop, or opening files manually for Vista) and MeGUI gives you options of what you can do with them. I haven't really given the replacement much thought, but I have felt it would be nice to entirely separate video/audio encoding from the main window.
Thoughts?
Kurtnoise
7th November 2007, 13:17
What do you think?
ok for me...:)
Eamon21
7th November 2007, 13:24
Indeed, MeGUI does handle this kind of encoding well.Is that supposed to be "doesn't"?
If not then I can't agree, a minimum requirement would be a batch process where the same settings are applied to each file. Secondly you can't use One Click with *.MOV files.
I realise that the One Click tool reduces configuration each time using the profile approach to store settings and I intend to do something very similar, but the One Click encode is totally geared towards DVD encodes as far as I can tell and can only encode a single file at a time, two things that mean it is not appropriate for me.
As for the branch idea, I like the idea as I don't want to add any new code into a release that is trying to become stable.
Finally with regard to UI re-design, I agree that something needs to be done, probably even looking at changing some of the tools to run in the main window (as usercontrols) rather than spawning new dialogs. Really need some stats though as to how people mainly use MeGUI though to come up with a good UI. I know how I use it though I am also sure that a lot of other people would use it for different reasons. Maybe have some sort of anonymous stats collector that people can agree to that uploads to a webservice info about how they use it e.g. what tools they use, what codecs etc.
Eamon
berrinam
7th November 2007, 13:48
Is that supposed to be "doesn't"?Fixed :P
I realise that the One Click tool reduces configuration each time using the profile approach to store settings and I intend to do something very similar, but the One Click encode is totally geared towards DVD encodes as far as I can tell and can only encode a single file at a time, two things that mean it is not appropriate for me.Yes, it is geared towards DVD encoding. What kind of encoding are you considering? Specifically, do you apply any further cropping, resizing, or deinterlacing, or do you simply want to put the video in a different codec but otherwise the same? If this is the case, then this is easier, since there is less the tool must take care of.
Sharktooth
7th November 2007, 14:18
I'm getting a bit impatient with this stable release, as we keep waiting to fix all the bugs, as more and more are still found. I say we branch now, continuing to commit bug fixes (but nothing else) to the stable version, and committing new code to the development version.
If no-one objects, I'm happy to go ahead and perform the SVN branch. I would bump the development version number up into the 0.3.x.x series, and leave the version number of the stable version alone. Then I would rearrange the SVN folders to look like this:
root
|-branches
|-tags
|-0_2_x_x
|-trunk // this has the development version
|-bautodeint
|-MediaInfoWrapper
|-...
|-MeGUI
What do you think?
ok, but i have to say i have not much time to spend on megui right now. maybe something will change in december.
Also, since we're having a discussion about GUI design now, one thing I've been thinking about doing is moving audio and video encoding off the main page, and just putting them in another dialog box, like muxing, autoencode, etc. This can potentially free up the main page for a more intuitive UI, perhaps one where you just dump your files (via drag-and-drop, or opening files manually for Vista) and MeGUI gives you options of what you can do with them. I haven't really given the replacement much thought, but I have felt it would be nice to entirely separate video/audio encoding from the main window.
Thoughts?
That's ok for me. I always thought the main window should be a sort of "wizard". that will also make megui easier for the first-time user.
mroz
7th November 2007, 14:26
As for the branch idea, I like the idea as I don't want to add any new code into a release that is trying to become stable.
One caveat in the form of a question: do the devs have sufficient resources & willpower to keep bug fixing a stable release when there's a nice juicy new dev branch to work on? :)
Regarding design comments, do the devs want comments from any interested parties or just devs? For now I'll assume all welcome...
Finally with regard to UI re-design, I agree that something needs to be done, probably even looking at changing some of the tools to run in the main window (as usercontrols) rather than spawning new dialogs.
Agreed, though after a little thought I also agree with Berrinam that video & audio encoding set up should be treated on a par with the other tasks & not have a higher status within the UI layout, with the main Megui window being used to control access to other features & possibly for dumping files into.
Certainly I'd want to get away from patterns where the location the user has to drop their source file depends on what the source file is - eg atm if you have an avs it would go in the main window, while an avi requires the avs creator & if you start from a vob you also need to find & open the d2v creator.
Of course processing some types requires extra steps, but this should be made apparent to the user /after/ they've followed a consistent method to get the files into Megui.
Really need some stats though as to how people mainly use MeGUI though to come up with a good UI. I know how I use it though I am also sure that a lot of other people would use it for different reasons. Maybe have some sort of anonymous stats collector that people can agree to that uploads to a webservice info about how they use it e.g. what tools they use, what codecs etc.
Funnily enough I was thinking this last night. It's very important if one is serious about designing an effective gui for widespread use, rather than just an interface to meet the devs own needs or those of vociferous users.
mroz
7th November 2007, 14:41
I always thought the main window should be a sort of "wizard". that will also make megui easier for the first-time user.
That horrid word went through my head as well while thinking about this.
Wizards tend to do two things ime, reduce user choices & linearise whatever process they conduct. Both these help guide users, but are also horribly limiting.
Here's how I see the situation. If you offer a wizard in addition to more flexible controls, you can afford the wizard to be quite restrictive. OTOH if it is your only interface to the task in hand you need to be very clever & very careful otherwise you risk vastly crippling your application & your users.
GUIs are potentially lovely, agreed? You'd not want to go back to an interface comprising a sequence of choices from menus.
All I'm asking is to not throw the baby out with the bath water :)
My aim in UI design is to offer the user subtle hints to allow them to naturally follow a linear path through the gui in order to get their task done, if that's both possible & appropriate, without forcing them to take a particular path. Thus they can be productive immediately, yet still free to grow their usage patterns as they develop familiarity & expertise.
Not that I mean to suggest you're likely to get this wrong. It's just that damned term Wizard which sets off alarm bells in my head.
Sharktooth
7th November 2007, 14:41
The installer changes im going to commit will create the update_cache registry key and will delete it when running the uninstall.
I will make a new MeGUI dev release, so please test the installer/uninstaller behaviour and report eventual bugs.
Sharktooth
7th November 2007, 15:04
0.2.6.1035
- (Sharktooth) [Installer] Creates (and removes during uninstall) update_cache reg key, also creates update_cache, logs and tools folders.
- (berrinam) At startup, jobs marked as "processing" are marked as "aborted". Should help #1826981.
- (berrinam) Fix autocrop crash in AVS creator after reopening original video window.
- (berrinam) Fixed #1825958 (Audio track tab numbering issue)
- (berrinam) Fixed #1825182 (Nero AAC settings not saved)
- (Kurtnoise) [Mencoder Encoder] force to set up only video command (fixed #1824505 & #1825708)
- (Sharktooth) [Installer] Added links to Tools, Logs and Auto-update cache folders.
- (Kurtnoise) [Settings Form] English as 1st Language (#1822098)
A new dev release is available on SF: http://sourceforge.net/project/showfiles.php?group_id=156112&package_id=244469
Kurtnoise
7th November 2007, 21:18
Wizards tend to do two things ime, reduce user choices & linearise whatever process they conduct. Both these help guide users, but are also horribly limiting.
I disagree with you about limitations...Wizzards are created to simplify the normal uses and are mainly dedicated to people whose know nothing about A/V compression or anything else. Keep in mind that for newbies, the less there are, the more there are happy. :) Honestly I don't think that the main goal of a wizzard is to let multiples choices for people concerning customatization or tuning the settings. So, it means that maybe we need to rethink the goals of MeGUI (tend to be "newbies only", "geeks only"...).
Eamon21
7th November 2007, 23:04
Just uploaded a patch that addresses bugs 1827268 and 1822000.
Eamon21
7th November 2007, 23:30
and a patch for 1827919
berrinam
8th November 2007, 00:19
0.2.6.1035
- (Sharktooth) [Installer] Creates (and removes during uninstall) update_cache reg key, also creates update_cache, logs and tools folders.
- (berrinam) At startup, jobs marked as "processing" are marked as "aborted". Should help #1826981.
- (berrinam) Fix autocrop crash in AVS creator after reopening original video window.
- (berrinam) Fixed #1825958 (Audio track tab numbering issue)
- (berrinam) Fixed #1825182 (Nero AAC settings not saved)
- (Kurtnoise) [Mencoder Encoder] force to set up only video command (fixed #1824505 & #1825708)
- (Sharktooth) [Installer] Added links to Tools, Logs and Auto-update cache folders.
- (Kurtnoise) [Settings Form] English as 1st Language (#1822098)
A new dev release is available on SF: http://sourceforge.net/project/showfiles.php?group_id=156112&package_id=244469
Is this supposed to be a development release? Most of the commits seem to be bug fixes.
berrinam
8th November 2007, 01:42
I've performed the stable/dev split. The directory structure is now as I posted before. The stable version is still 0.2.6.1035, and I have increased the dev version to 0.3.0.0000 (although I haven't committed any code to it yet).
saint-francis
8th November 2007, 01:44
Wizzards are created to simplify the normal uses and are mainly dedicated to people whose know nothing about A/V compression or anything else. Keep in mind that for newbies, the less there are, the more there are happy. :) Honestly I don't think that the main goal of a wizzard is to let multiples choices for people concerning customatization or tuning the settings. So, it means that maybe we need to rethink the goals of MeGUI (tend to be "newbies only", "geeks only"...).
As a rule of thumb I don't participate in this thread (although I follow it religiously) becauese I don't in any way "speak C#" so this is clearly the "wrong thread" for me to post in, but, I must express my opinion here. To me MeGUI is fantastic because it is a tool for the n00b and the more advanced user. Almost every step I make in my journey to becoming more competent in the world of video encoding MeGUI can so far match. Of course as I venture into the world of more complicated tasks MeGUI falls behind. Remember that since MeGUI is a work in progress the "so far" should be noted. My hopes are that in the future MeGUI will help me automate even the most complicated tasks I ask of it. Yet MeGUI does make the process easier. This I assume is the entire purpose of the project. I personally think a "wizard" like interface option could greatly increase the usefulness of MeGUI. At the same time I would like to see more technical or "geeks only" functionality from MeGUI; such as more filtering options, options for more source types, etc. There is already a very good complete N00b tool, AGK, and it has worked very well for me in the past, so I see no reason to make MeGUI a new AGK and rob the more advanced users of the potential benefits of more options in the AVS creator, etc, etc. If that is the kind of tool that people want then AGK should be further developed. I think the flexibility to use more advanced functionality is excellent because one who knows how can gain more control; hence producing a higher quality product for themselves. Hopefully. But x264 encoding and encoding video in general can be a daunting proposal for some who haven't spent hours and hours of their lives reading, experimenting and learning so I heartily agree that (accurate) automation is a priceless quality for any video encoding tool.
To sum my statement up, I think that further long term development of MeGUI which is beyond bug fixes should contain both automation functionality and more advanced options in the AVS creator. If the combination seems daunting to the dev's then they should just remember that this is an opensource project and there is absolutely no pressure on them from any force that may hinder their wellbeing to even continue with the project as it is. I am happy right now with MeGUI. With every update I feel like it's Christmas in Las Vegas. MeGUI is very mature and any update only makes a good thing better. If it takes time to make MeGUI what the community/dev's want it to be......so be it. No rush is needed. I use the latest dev releases several times a week and I have been for over a year. And essentially without suffering from bugs.
My hat is off to all fo the MeGUI dev's and everyone in the past and present who has made this possible.
berrinam
8th November 2007, 02:13
It's very nice to hear such words of praise for MeGUI. Thank you.
What kind of more advanced options for the source creator do you mean? More source types, more deinterlacers, more resizers? Or is there a whole other class of filters that have been ignored by the AVS creator?
berrinam
8th November 2007, 02:22
@Kurtnoise: What did you decide about an IFO parser? I remember you linked to C# IFO parser. If you've got something working, could you commit it soon, please, because there are some features I want to do that rely on IFO parsing. (I don't want to rush you though)
berrinam
8th November 2007, 03:59
@devs: You probably know this, but I'm just warning you that, since I have moved the folder where megui sources were kept, if you try updating your working copy, your changes will be deleted. The only way I know of updating my working copies is to create a patch of them against their revision, and then apply that to the most recent revision.
Just warning you, so that you don't lose your work, and also asking if there's a better way to do this.
saint-francis
8th November 2007, 05:02
.
What kind of more advanced options for the source creator do you mean? More source types, more deinterlacers, more resizers? Or is there a whole other class of filters that have been ignored by the AVS creator?
As far as sources go I would like to be able to plug HD DVD's in just like I can a regular DVD. I am fully aware that at this time such a desire is wishful thinking as there is no tool such as the awesome DGIndex for HD sources. Given the current limitations of that field all I need to work around with in MeGUI is selecting "all file types" when browsing for my graph with the AVS creator and inserting the framecount, etc. in the edit tab. Which is understandable since there will hopefully be tools in the future that will render such operations unnecessary. As far as other functionality is concerned I would like the ability to automate tools like seesaw, MT, fft3dfilter and other less used filters. Now I have to add such commands manually. Which is also understandable as these aren't in the realm of conventional DVD ripping and take a modicum of knowhow to operate. Also it would be difficult to create a gui to manage them. Still I can't operate these filters as well as even a script some here could write. The deinterlacers and resizers seem to be up to the job. I was particularly happy about the addition of yadif.
:thanks:
berrinam
8th November 2007, 05:10
I'm afraid I'm not up-to-scratch on Didee's tools (which seesaw is, right?) as I understand they require a lot of plugins, tweaking, and computer time. Generally with filters that aren't in MeGUI, they are more likely to be added if someone provides information about where the required dlls are (including which version is best) and what settings to use.
Anyway, I have something in mind about the Avisynth filters which might help you. I won't tell you what it is yet, though. :p
mroz
8th November 2007, 05:47
I disagree with you about limitations...Wizzards are created to simplify the normal uses and are mainly dedicated to people whose know nothing about A/V compression or anything else. Keep in mind that for newbies, the less there are, the more there are happy. :) Honestly I don't think that the main goal of a wizzard is to let multiples choices for people concerning customatization or tuning the settings. So, it means that maybe we need to rethink the goals of MeGUI (tend to be "newbies only", "geeks only"...).
Adopting your definition, would you even consider a MeGUI that was primarily wizard driven?
Do you think it isn't possible to design a user interface which appeals to newbies without rigidly locking down functionality & reducing value to geeks?
mroz
8th November 2007, 05:58
Anyone here use AvsP (http://avisynth.org/qwerpoi/About.html)? I haven't but I keep hearing good things. I was just wondering if any of its approaches might be of use or at least inspiration to any redesign of MeGUI's AVS script creator.
mroz
8th November 2007, 06:44
I hope you don't mind me asking the following here. If anyone objects just say & I'll refrain from any similar questions in future.
I'm looking for some book recommendations re C# with an aim to prodding MeGUI about a bit. I'm an experienced C programmer with a very basic grasp of OO concepts. I like O'Reilly books so was considering possibly three of:
Programming C#, Fourth Edition (http://www.oreilly.com/catalog/progcsharp4/index.html)
Programming C#, the top-selling book on Microsoft's high-performance C# programming language, is now in its fourth edition. Aimed at experienced programmers and web developers, this comprehensive guide focuses on the features and programming patterns...
Programming C# 3.0, Fifth Edition (http://www.oreilly.com/catalog/9780596527433/index.html)
This thoroughly updated tutorial for beginning to intermediate programmers covers C# 3.0 and the newest .NET platform for developing Windows and web applications. Now in its fifth edition, our bestselling Programming C# 3.0 teaches the essentials of ...
C# Cookbook, Second Edition (http://www.oreilly.com/catalog/csharpckbk2/index.html)
Completely revised for C# 2.0, this updated bestseller offers more than 100 new code solutions to common problems that you're sure to face as a C# programmer. Nearly every solution, or recipe, contains a complete, documented code sample showing you how...
C# 3.0 Cookbook, Third Edition (http://www.oreilly.com/catalog/9780596516109/index.html)
Completely updated for C# 3.0 and the .NET 3.5 platform, the new edition of this bestseller offers more than 250 code recipes to common and not-so-common problems that C# programmers face every day. More than a third of the recipes have been rewritten...
Learning C# 2005, Second Edition (http://www.oreilly.com/catalog/learncsharp2/index.html#top)
Completely revised to cover C# 2.0 and Visual Basic 2005, this introductory guide offers a thorough introduction to Microsoft's premier .NET language. Discover how to develop various kinds of web services and applications--including those that work with...
An opinons, comments or suggestions I stop spamming? :)
berrinam
8th November 2007, 07:12
Anyone here use AvsP (http://avisynth.org/qwerpoi/About.html)? I haven't but I keep hearing good things. I was just wondering if any of its approaches might be of use or at least inspiration to any redesign of MeGUI's AVS script creator.
I haven't used it yet, but some first thoughts from reading the webpage:
I'm very impressed with the user sliders. Great idea, looks like a simple syntax, too. They could help making customisable filters
A lot of the text features are probably somewhat a waste of time for MeGUI, because the AVS creator is predominantly (at the moment) a GUI-based -- not text-based -- tool. However, it would be a good idea to color comments green, do a little bit of parsing, and definitely get rid of the word wrap in the MeGUI AVS editor.
berrinam
8th November 2007, 07:18
I hope you don't mind me asking the following here. If anyone objects just say & I'll refrain from any similar questions in future.
I'm looking for some book recommendations re C# with an aim to prodding MeGUI about a bit. I'm an experienced C programmer with a very basic grasp of OO concepts. I like O'Reilly books so was considering possibly three of ...
I haven't read any of them. Actually, MeGUI was the first C# project I worked on; it wasn't too hard to pick up because it is similar to Java and Microsoft's IDE is excellent. C# is a bit further separated from C than from Java, but it is still a curly-brace language, so most of the syntax should be familiar to you. I recommend just diving into MeGUI, and googling things you don't understand; CodeProject has a lot of articles on C# syntax and features.
mroz
8th November 2007, 07:21
Thanks for the comments. Appreciated :)
Kurtnoise
8th November 2007, 08:29
What did you decide about an IFO parser? I remember you linked to C# IFO parser. If you've got something working, could you commit it soon, please, because there are some features I want to do that rely on IFO parsing. (I don't want to rush you though)
Nothing new for the moment (to be clear, nothing that can be committed)...I'll give it a try this weekend maybe.
Kurtnoise
8th November 2007, 08:33
Adopting your definition, would you even consider a MeGUI that was primarily wizard driven?
Honestly ? Nope...even if there is a "One-Click Encoder" but it's just my opinion. :)
Do you think it isn't possible to design a user interface which appeals to newbies without rigidly locking down functionality & reducing value to geeks?
depends on the values & functionalities you want to have...;) Of course, it's doable.
berrinam
8th November 2007, 13:41
0.2.6.1036
- (berrinam) Fixed exception in profile import when file already exists
- (Kurtnoise) [VideoEncoding] DAR values Initialization (fixed #1823977)
- (berrinam) Fix an exception when changing codec if no profile is selected
- (patch by eamonh) fix profile scrolling issues (fixes #1822000, #1827268)
- (patch by eamonh) Fix #1827919 (OneClickEncode Settings not saved)
Stable branch on autoupdate now updates to 0.2.6.1036. In about a week's time, the rest of autoupdate's stable branch will be updated to the current dev branch.
@Eamon: thanks for those patches.
@all: You can see SpAwN_gUy's modification of megui to support x264farm, which is currently a branch of megui residing at https://megui.svn.sourceforge.net/svnroot/megui/branches/x264farm
Sharktooth
8th November 2007, 14:27
Stable branch on autoupdate now updates to 0.2.6.1036. In about a week's time, the rest of autoupdate's stable branch will be updated to the current dev branch.
why not right now? if its a matter of time i can do it (i've made a nice script that will do that automatically...)
@devs: dgindex commandline for audio tracks handling is changed starting from 1.5 beta 11.
the autoupdate server actually has the b10. however if we plan to continue to update dgindex some changes to the d2v creator are required.
https://forum.doom9.org/showthread.php?p=1063355#post1063355
berrinam
8th November 2007, 21:35
why not right now? if its a matter of time i can do it (i've made a nice script that will do that automatically...)Because older versions of MeGUI might crash if there are programs in the update.xml file that they don't understand.
Sharktooth
8th November 2007, 22:29
uhm... like?
berrinam
8th November 2007, 22:32
I think this is the case for any new MeGUI program, like AVI-Mux GUI.
Sharktooth
8th November 2007, 22:44
we should implement a handler for that in future revisions.
however a fresh installation is still recommended since some settings were changed and could make megui crash too...
berrinam
8th November 2007, 22:48
I already have implemented it. The problem is that I only found the bug when adding AMG, by which point the older versions already existed and were in ready use.
Sharktooth
8th November 2007, 22:57
I made a stable release on SF. I also wrote a small note (http://sourceforge.net/project/shownotes.php?group_id=156112&release_id=552801) to inform users the latest packages are temporarily available only thru the dev auto-update.
Eamon21
9th November 2007, 00:47
Can anyone tell me why the Scriptserver when creating an AVISynth script using a directShowSource sets audio=false?
want to use a single file as source for both video and audio stream so need audio. I want my avs template to provide a source with audio but want to know what are the negatives of changing it to audio=true or leaving it out completely?
Eamon
mroz
9th November 2007, 01:20
I recall wondering when that would come up after I read your original post mentioning using a single avs to process audio & video together ;)
I don't know why the devs have it coded that way, but I do know when using AVISynth to process audio/video combined I've occasionally had problems with it screwing up. For example, a very slow script will sometimes result in the audio getting trashed for reasons I don't understand. Also, using the approach you want to adopt is inflexible in that it can only support one audio stream aiui.
I initially thought keeping the streams together made sense (ignoring the last limitation), as it looks cleaner & in my mind perhaps more opportunity to keep audio/video in sync (I've no idea if the underlying mechanisms make that an actual possibility).
However certainly in practice it just seems to screw up & cause more problems.
I'll be interested to hear what the devs say. There must be good reasons as they went to considerable lengths to separate the processing of audio & video - just look at the hassle of cutting a scripted source.
BTW Even if you keep audio out of your avs, you might still be able to use a single file as video & audio source - currently Megui will quite happily accept an avi containing video & audio as an audio input, as obviously will the avs creator.
Sharktooth
9th November 2007, 04:07
well, the reasons you mentioned, plus the fact avs will load all the plugins using more memory. that can screw the processing as well depending on the complexity of the script.
Dot50Cal
9th November 2007, 07:38
The page I used to update Nero's Audio Encoder has gone missing and is now replaced by a packaged version which it seems I have to pay for. Anyone know the details on this? Is there still a standalone FREE download for the codec?
Also, I'm not sure if its just me, but when CORE has updates, It never updates. It says it does, but it doesnt. I have to do it manually. Anyone know why?
Edit: Updating manually with core_0_2_6_1036.zip produces:
http://img251.imageshack.us/img251/7900/erroron0.jpg
Suppose thats known though, attempting a clean install.
Bigmango
9th November 2007, 07:42
The page I used to update Nero's Audio Encoder has gone missing and is now replaced by a packaged version which it seems I have to pay for. Anyone know the details on this? Is there still a standalone FREE download for the codec?
You can get it from this post:
http://forum.doom9.org/showthread.php?p=1055273#post1055273
Dot50Cal
9th November 2007, 07:57
Thanks for the fast reply, Its very much appreciated :)
SpAwN_gUy
9th November 2007, 11:21
You can get it from this post:
http://forum.doom9.org/showthread.php?p=1055273#post1055273
well.. it also can now be found.. HERE:
http://www.nero.com/eng/down-ndaudio.php
(i guess the've fixed that issue)
Eamon21
9th November 2007, 12:13
I don't know why the devs have it coded that way, but I do know when using AVISynth to process audio/video combined I've occasionally had problems with it screwing up. For example, a very slow script will sometimes result in the audio getting trashed for reasons I don't understand. Also, using the approach you want to adopt is inflexible in that it can only support one audio stream aiui.
I initially thought keeping the streams together made sense (ignoring the last limitation), as it looks cleaner & in my mind perhaps more opportunity to keep audio/video in sync (I've no idea if the underlying mechanisms make that an actual possibility).
However certainly in practice it just seems to screw up & cause more problems.
BTW Even if you keep audio out of your avs, you might still be able to use a single file as video & audio source - currently Megui will quite happily accept an avi containing video & audio as an audio input, as obviously will the avs creator.
well, the reasons you mentioned, plus the fact avs will load all the plugins using more memory. that can screw the processing as well depending on the complexity of the script.
I suspected as much but wanted to be sure.
The next question I was going to ask was whether it would be better to create a second avs script for the audio or to use the input file directly?
e.g.
Video avs:
DirectShowSource("C:\temp\test.MOV", fps=30, audio=false)
Audio avs:
DirectShowSource("C:\temp\test.MOV", audio=true)
but looking at how the audio is processed, it creates and uses an avs script anyway so I guess that answers my question and I should just specify the original input file as the audio source and let MeGUI take care of it.
Eamon
Kurtnoise
9th November 2007, 13:03
@devs:
MediaInfo Version 0.7.5.5, 2007-11-09
---------------
+ #1799859: Flac, tags are case insensitive
+ Matroska format parsing improvements
+ .mp4 speed improvement
x BDAV (Bluray) parser compilation was forgotten in the previous version
x AVI, Bitrate and stream size were false
x #1825218: IFO parser was brocken
x #1825521: .mp4 chapters times were wrong
x #1801549: DLL was crashing during Delphi/C# debugging sessions
Sharktooth
9th November 2007, 14:41
here we go!
@Dot50Cal: clear the jobs and it should work. however a clean install is recommended.
Sharktooth
9th November 2007, 15:10
@spawn_guy: before commiting something to the SVN ensure you first update. The x264farm batch files and .nsi script were just up to date.
Also NEVER use TABS in place of blank spaces ;)
Eamon21
9th November 2007, 16:14
This is a question regarding the OneClick profile setup, on the container tab, it says Since the possible output filetypes are not known until the input is configured, the output type cannot be configured in a profile. Instead, here is a list of known file-types. You choose which you are happy with, and MeGUI will attempt to encode to one of those on the list.
Surely the container type is more dependant on the encoders selected for video and audio? And if this is the case, then after the video and audio codecs have been selected, you should be able to specify the container from a list applicable to those codecs?
Does this make sense or am I off base? And if I have got the wrong end of the stick, can someone give an example where we couldn't select the container type based on the video and audio codecs selected?
Eamon
check
9th November 2007, 17:39
The mewiki server has been migrated to a new host. URLs are changing back to the nice format, eg
http://mewiki.project357.com/wiki/Main_Page
http://mewiki.project357.com/wiki/MeGUI:Avs_cutter
It's missing images, but those will hopefully be updated this weekend.
Kurtnoise
10th November 2007, 08:47
This is a question regarding the OneClick profile setup, on the container tab, it says
Surely the container type is more dependant on the encoders selected for video and audio? And if this is the case, then after the video and audio codecs have been selected, you should be able to specify the container from a list applicable to those codecs?
Does this make sense or am I off base?
For what I understand, you're correct...:)
berrinam
10th November 2007, 13:54
This is a question regarding the OneClick profile setup, on the container tab, it says
Surely the container type is more dependant on the encoders selected for video and audio? And if this is the case, then after the video and audio codecs have been selected, you should be able to specify the container from a list applicable to those codecs?
Does this make sense or am I off base? And if I have got the wrong end of the stick, can someone give an example where we couldn't select the container type based on the video and audio codecs selected?
Eamon
This is true, except it ignores the possibility that the audio may be the same as the source. In that case, the output format is restricted. While this may not be a common case, I at least believe the current situation adequately solves both the case of unencoded audio, and encoded-only audio.
@devs: Now that we are maintaining multiple branches, do we want to have some kind of rule abouting merging bugfixes? Perhaps commit bugfixes to the trunk, and merge only when a new version is distributed? Or should we merge every time we commit a bugfix?
Kurtnoise
10th November 2007, 14:35
@devs: Now that we are maintaining multiple branches, do we want to have some kind of rule abouting merging bugfixes? Perhaps commit bugfixes to the trunk, and merge only when a new version is distributed? Or should we merge every time we commit a bugfix?
For me:
bugfixes: both in the trunk and branches.
new features: only in the trunk.
Sharktooth
10th November 2007, 15:13
i think the same as kurtnoise.
Kurtnoise
10th November 2007, 17:25
1/ Concerning the commits for the new features: maybe a review of the patch(es) by one or two developpers could be great before to commit it(them) to the trunk....to avoid random issues you know. ;) Aften patches mostly finished for my part...
2/ I think (as a normal user, not a developper or something like that ;)) that the Profiles and the Codecs List must be renamed to be more clear. So, here is a proposition for the Audio Codecs:
AAC - FAAC
AAC - Nero Digital
AAC - Winamp
AC3 - Aften
AC3 - FFmpeg
MP2 - FFmpeg
MP3 - Aud-X
MP3 - Lame
OGG - Xiph
As you can see, the Format Type first followed by the name of the Encoder Engine and sorted in alphabetic order of course.
Here the patch:
Index: core/gui/Form1.cs
===================================================================
--- core/gui/Form1.cs (revision 358)
+++ core/gui/Form1.cs (working copy)
@@ -1778,14 +1778,14 @@
PackageSystem.VideoSettingsProviders.Register(new XviDSettingsProvider());
PackageSystem.VideoSettingsProviders.Register(new SnowSettingsProvider());
PackageSystem.VideoSettingsProviders.Register(new LavcSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new faacSettingsProvider());
PackageSystem.AudioSettingsProviders.Register(new NeroAACSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new AudXSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new faacSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new waacSettingsProvider());
PackageSystem.AudioSettingsProviders.Register(new ffac3SettingsProvider());
PackageSystem.AudioSettingsProviders.Register(new ffmp2SettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new lameSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new vorbisSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new waacSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new AudXSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new lameSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new vorbisSettingsProvider());
PackageSystem.MediaFileTypes.Register(new AvsFileFactory());
PackageSystem.MediaFileTypes.Register(new d2vFileFactory());
PackageSystem.MediaFileTypes.Register(new MediaInfoFileFactory());
Index: core/plugins/interfaces/ISettingsProvider.cs
===================================================================
--- core/plugins/interfaces/ISettingsProvider.cs (revision 358)
+++ core/plugins/interfaces/ISettingsProvider.cs (working copy)
@@ -400,7 +400,7 @@
NeroAACSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public NeroAACSettingsProvider()
- : base("ND AAC", AudioEncoderType.NAAC, AudioCodec.AAC)
+ : base("AAC - Nero Digital", AudioEncoderType.NAAC, AudioCodec.AAC)
{
}
}
@@ -408,49 +408,49 @@
AudXSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public AudXSettingsProvider()
- : base("Aud-X", AudioEncoderType.AUDX, AudioCodec.MP3)
+ : base("MP3 - Aud-X", AudioEncoderType.AUDX, AudioCodec.MP3)
{ }
}
public class faacSettingsProvider : SettingsProviderImpl2<faacConfigurationPanel, string[],
FaacSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public faacSettingsProvider()
- : base("FAAC", AudioEncoderType.FAAC, AudioCodec.AAC)
+ : base("AAC - FAAC", AudioEncoderType.FAAC, AudioCodec.AAC)
{ }
}
public class ffac3SettingsProvider : SettingsProviderImpl2<AC3ConfigurationPanel, string[],
AC3Settings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public ffac3SettingsProvider()
- : base("FFMPEG AC-3", AudioEncoderType.FFAC3, AudioCodec.AC3)
+ : base("AC3 - FFmpeg", AudioEncoderType.FFAC3, AudioCodec.AC3)
{ }
}
public class ffmp2SettingsProvider : SettingsProviderImpl2<MP2ConfigurationPanel, string[],
MP2Settings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public ffmp2SettingsProvider()
- : base("FFMPEG MP2", AudioEncoderType.FFMP2, AudioCodec.MP2)
+ : base("MP2 - FFmpeg", AudioEncoderType.FFMP2, AudioCodec.MP2)
{ }
}
public class lameSettingsProvider : SettingsProviderImpl2<lameConfigurationPanel, string[],
MP3Settings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public lameSettingsProvider()
- : base("LAME MP3", AudioEncoderType.LAME, AudioCodec.MP3)
+ : base("MP3 - Lame", AudioEncoderType.LAME, AudioCodec.MP3)
{ }
}
public class vorbisSettingsProvider : SettingsProviderImpl2<OggVorbisConfigurationPanel, string[],
OggVorbisSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public vorbisSettingsProvider()
- : base("Ogg Vorbis", AudioEncoderType.VORBIS, AudioCodec.VORBIS)
+ : base("OGG - Xiph", AudioEncoderType.VORBIS, AudioCodec.VORBIS)
{ }
}
public class waacSettingsProvider : SettingsProviderImpl2<WinAmpAACConfigurationPanel, string[],
WinAmpAACSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public waacSettingsProvider()
- : base("Winamp AAC", AudioEncoderType.WAAC, AudioCodec.AAC)
+ : base("AAC - Winamp", AudioEncoderType.WAAC, AudioCodec.AAC)
{ }
}
What do you think about that ?
JarrettH
10th November 2007, 20:45
Why is there an option to use MP2? :scared:
berrinam
10th November 2007, 23:35
For me:
bugfixes: both in the trunk and branches.
new features: only in the trunk.
What I really meant was, do we merge the bugfixes every time we commit them, or just merge when we increase the version number?
1/ Concerning the commits for the new features: maybe a review of the patch(es) by one or two developpers could be great before to commit it(them) to the trunk....to avoid random issues you know. ;) Aften patches mostly finished for my part...Good idea. How does it work with significantly larger patches, though? New functionality often introduces a number of new files, etc. Still post the patches here?
2/ I think (as a normal user, not a developper or something like that ;)) that the Profiles and the Codecs List must be renamed to be more clear. So, here is a proposition for the Audio Codecs:
AAC - FAAC
AAC - Nero Digital
AAC - Winamp
AC3 - Aften
AC3 - FFmpeg
MP2 - FFmpeg
MP3 - Aud-X
MP3 - Lame
OGG - Xiph
As you can see, the Format Type first followed by the name of the Encoder Engine and sorted in alphabetic order of course.
Here the patch:
Index: core/gui/Form1.cs
===================================================================
--- core/gui/Form1.cs (revision 358)
+++ core/gui/Form1.cs (working copy)
@@ -1778,14 +1778,14 @@
PackageSystem.VideoSettingsProviders.Register(new XviDSettingsProvider());
PackageSystem.VideoSettingsProviders.Register(new SnowSettingsProvider());
PackageSystem.VideoSettingsProviders.Register(new LavcSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new faacSettingsProvider());
PackageSystem.AudioSettingsProviders.Register(new NeroAACSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new AudXSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new faacSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new waacSettingsProvider());
PackageSystem.AudioSettingsProviders.Register(new ffac3SettingsProvider());
PackageSystem.AudioSettingsProviders.Register(new ffmp2SettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new lameSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new vorbisSettingsProvider());
- PackageSystem.AudioSettingsProviders.Register(new waacSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new AudXSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new lameSettingsProvider());
+ PackageSystem.AudioSettingsProviders.Register(new vorbisSettingsProvider());
PackageSystem.MediaFileTypes.Register(new AvsFileFactory());
PackageSystem.MediaFileTypes.Register(new d2vFileFactory());
PackageSystem.MediaFileTypes.Register(new MediaInfoFileFactory());
Index: core/plugins/interfaces/ISettingsProvider.cs
===================================================================
--- core/plugins/interfaces/ISettingsProvider.cs (revision 358)
+++ core/plugins/interfaces/ISettingsProvider.cs (working copy)
@@ -400,7 +400,7 @@
NeroAACSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public NeroAACSettingsProvider()
- : base("ND AAC", AudioEncoderType.NAAC, AudioCodec.AAC)
+ : base("AAC - Nero Digital", AudioEncoderType.NAAC, AudioCodec.AAC)
{
}
}
@@ -408,49 +408,49 @@
AudXSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public AudXSettingsProvider()
- : base("Aud-X", AudioEncoderType.AUDX, AudioCodec.MP3)
+ : base("MP3 - Aud-X", AudioEncoderType.AUDX, AudioCodec.MP3)
{ }
}
public class faacSettingsProvider : SettingsProviderImpl2<faacConfigurationPanel, string[],
FaacSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public faacSettingsProvider()
- : base("FAAC", AudioEncoderType.FAAC, AudioCodec.AAC)
+ : base("AAC - FAAC", AudioEncoderType.FAAC, AudioCodec.AAC)
{ }
}
public class ffac3SettingsProvider : SettingsProviderImpl2<AC3ConfigurationPanel, string[],
AC3Settings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public ffac3SettingsProvider()
- : base("FFMPEG AC-3", AudioEncoderType.FFAC3, AudioCodec.AC3)
+ : base("AC3 - FFmpeg", AudioEncoderType.FFAC3, AudioCodec.AC3)
{ }
}
public class ffmp2SettingsProvider : SettingsProviderImpl2<MP2ConfigurationPanel, string[],
MP2Settings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public ffmp2SettingsProvider()
- : base("FFMPEG MP2", AudioEncoderType.FFMP2, AudioCodec.MP2)
+ : base("MP2 - FFmpeg", AudioEncoderType.FFMP2, AudioCodec.MP2)
{ }
}
public class lameSettingsProvider : SettingsProviderImpl2<lameConfigurationPanel, string[],
MP3Settings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public lameSettingsProvider()
- : base("LAME MP3", AudioEncoderType.LAME, AudioCodec.MP3)
+ : base("MP3 - Lame", AudioEncoderType.LAME, AudioCodec.MP3)
{ }
}
public class vorbisSettingsProvider : SettingsProviderImpl2<OggVorbisConfigurationPanel, string[],
OggVorbisSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public vorbisSettingsProvider()
- : base("Ogg Vorbis", AudioEncoderType.VORBIS, AudioCodec.VORBIS)
+ : base("OGG - Xiph", AudioEncoderType.VORBIS, AudioCodec.VORBIS)
{ }
}
public class waacSettingsProvider : SettingsProviderImpl2<WinAmpAACConfigurationPanel, string[],
WinAmpAACSettings, AudioCodecSettings, AudioCodec, AudioEncoderType>
{
public waacSettingsProvider()
- : base("Winamp AAC", AudioEncoderType.WAAC, AudioCodec.AAC)
+ : base("AAC - Winamp", AudioEncoderType.WAAC, AudioCodec.AAC)
{ }
}
Sounds fine. But it would be easier to sort alphabetically by setting the Sorted property of the codec combobox in the AudioEncodingTab to True.
check
11th November 2007, 07:01
The DNS and nameserver changes for the mewiki server should be fully propagated now, can I request the urls in the program are changed?
berrinam
11th November 2007, 08:18
I believe either Kurtnoise or Sharktooth has already changed them.
Kurtnoise
11th November 2007, 09:15
What I really meant was, do we merge the bugfixes every time we commit them, or just merge when we increase the version number?
As versioning is made randomly, I'll more interested to commit them every time, yes...
Good idea. How does it work with significantly larger patches, though? New functionality often introduces a number of new files, etc.
The usual way is to split large patches in several small files...
Still post the patches here?
well...I'm not against to find a better way but personally I've no idea about that. Unless that patches relative to the features requests already mentioned in the SF tracker could be discussed in their respective threads.
Sounds fine. But it would be easier to sort alphabetically by setting the Sorted property of the codec combobox in the AudioEncodingTab to True.
You're right. I forgot that..I'll commit it asap with your notice.
@JarettH: why not ?
@Check: yeah, it has been fixed in the dev build and some branches.
Kurtnoise
11th November 2007, 21:40
My patches for reviews or testings can be found here: http://kurtnoise.free.fr/index.php?dir=MeGUI/
Enjoy...:]
berrinam
12th November 2007, 04:41
My patches are at http://megui.org/berrinam_patches/:)
berrinam
12th November 2007, 04:53
Does anyone find TortoiseSVN a bit shonky with patches which create new files? Is there a way to fix this?
berrinam
12th November 2007, 05:23
@kurtnoise: I tried encoding a 5ch ac3 file with aften, and it appears to map the channels incorrectly. I don't have a proper testing file, though, so I can't say exactly what it does.
There's also a problem with the 3rd patch file, which TortoiseMerge rejects as invalid. I fixed that by changing the last chunk's header from @@ -2024,9 +2064,11 @@ to @@ -2024,9 +2064,10 @@
Other than that, it appears to be fine, except that it needs an addition to UpdateWindow so that it will be auto-updateable.
EDIT: This patch should be all that's required for UpdateWindow: Index: UpdateWindow.cs
===================================================================
--- UpdateWindow.cs (revision 360)
+++ UpdateWindow.cs (working copy)
@@ -498,6 +498,8 @@
return meGUISettings.Avc2aviPath;
case ("yadif"):
return meGUISettings.YadifPath;
+ case ("aften"):
+ return meGUISettings.AftenPath;
default:
return null;
}
@@ -554,6 +556,9 @@
case ("yadif"):
meGUISettings.YadifPath = value;
return;
+ case ("aften"):
+ meGUISettings.AftenPath = value;
+ return;
}
}
}
I've also put aften on the www.megui.org development autoupdate server so it can be tested. I already have tested it, and it appears to work fine.
Kurtnoise
12th November 2007, 07:54
I tried encoding a 5ch ac3 file with aften, and it appears to map the channels incorrectly. I don't have a proper testing file, though, so I can't say exactly what it does.
We can tweak the command line for this:
[-chmap #] Channel mapping order of input audio
0 = WAVE mapping (default)
1 = AC-3 mapping
2 = MPEG mapping
but I don't know the best case here: if we let the user to setup the mapping by themself (as Aften options) or if we tune directly the command line according to the input file type...What do you think ?
There's also a problem with the 3rd patch file, which TortoiseMerge rejects as invalid.
mmh, you're right and I think it's my fault...:p Sorry, I'll fix that.
Other than that, it appears to be fine, except that it needs an addition to UpdateWindow so that it will be auto-updateable.
yes...thanks for the patch.
SpAwN_gUy
12th November 2007, 09:04
@spawn_guy: before commiting something to the SVN ensure you first update. The x264farm batch files and .nsi script were just up to date.
Also NEVER use TABS in place of blank spaces ;)
Thanks!
i'll do that.. i think.. i'll tuneUp ReSharper to fix that...
i'm new to SVN. we're mostly using CVS ;)
check
12th November 2007, 09:13
Here's a nice 5.1 test file. It was actually created to test 5.1 with various audio codecs, but it clearly marks the channel you should hear from so it might be useful to ensure channel mappings are correct. http://cccp.project357.com/samples/%5bCCCP%5d_Manhole_Test_Your_5.1_%5brevamped%5d.mkv
berrinam
12th November 2007, 10:22
I've written some code which automates running of DVDDecrypter. But is this currently the best DVD ripper around, or should I use another?
Kurtnoise
12th November 2007, 12:08
I used to use it but there are also AnyDVD(HD) and DVDFab Decrypter more robust for the new protections.
btw, the Delay patch looks ok...
Adub
12th November 2007, 12:49
Just to chime in, DVDDecrypter support is nice, but it is starting to become seriously out of date.
Kurtnoise13 is right in suggesting either AnyDVD or DVDFab Decrypter. Frankly, I am more for DVD Fab Decrypter, seeing as it is a free alternative.
berrinam
12th November 2007, 13:27
Well, as long as they have commandline interfaces, it shouldn't be too hard to add them... (although I obviously wouldn't add both)
buzzqw
12th November 2007, 13:39
the new releases of dvd fab decrypter have removed command line interface :(
BHH
fleon
12th November 2007, 16:25
I have a problem with megui: I installed and opened then i started to update megui with everything but when mencoder is completed I get and error also I reopened the program and tried to update another componet or external program I get the same error, I also have staxrip installed, this is the error:
http://img444.imageshack.us/img444/2793/meguiru7.th.jpg (http://img444.imageshack.us/my.php?image=meguiru7.jpg)
Kurtnoise
12th November 2007, 16:47
I have a problem with megui: I installed and opened then i started to update megui with everything but when mencoder is completed I get and error also I reopened the program and tried to update another componet or external program I get the same error, I also have staxrip installed, this is the error:
http://img444.imageshack.us/img444/2793/meguiru7.th.jpg (http://img444.imageshack.us/my.php?image=meguiru7.jpg)
don't count on me to answer you right here...
fleon
12th November 2007, 17:02
don't count on me to answer you right here...
sorry, so were you can answer me?
Kurtnoise
12th November 2007, 18:01
sorry, so were you can answer me?
http://forum.doom9.org/showthread.php?t=105920
I tried encoding a 5ch ac3 file with aften, and it appears to map the channels incorrectly. I don't have a proper testing file, though, so I can't say exactly what it does.
We can tweak the command line for this:
[-chmap #] Channel mapping order of input audio
0 = WAVE mapping (default)
1 = AC-3 mapping
2 = MPEG mapping
but I don't know the best case here: if we let the user to setup the mapping by themself (as Aften options) or if we tune directly the command line according to the input file type...What do you think ?
After some rethinking, this is clearly a bad idea. All import audio filters (WavSource, NicAC3Source, NicDTSSource,...DirectShowSource) return the correct channels order (i.e WAV Format). A note to myself: don't touch on channels mapping. :p
So, ok to commit ?
berrinam
13th November 2007, 00:06
Go ahead. :)
avdw
13th November 2007, 00:22
The problem is, as will those hundreds of frontends, they all use their own, or different versions of DGIndex and DGDecode,
whatever you do, you always get some errors about incompatible/wrong DGIndex file used, etc... etc....
Time to force the frontend developers to TALK to each other, make their tools compatible and last but not least, give us at least a little explanation about the options in the program.
As for MeGUI, it might be good, but the interface is a complete mess, there is no single logic in it, first you have to do something from the drop down boxes, then ? Uggggh, try another button and see if that works ? No, so you need to go searching in the menus for the function you have to use first, then try again ? Then set some options in the encoding profile, then go searching for the menu option how to choose a predefined target size, than all previously executed commands are invalid, and you have to go searching again where to continue.
I finally got it as far as setting a predefined size of 700 MB, it ran the 2 passes, resulting in an AVI file of over 1 Gigabyte in size....... Pfffffffffff.........
Today, I start it up, there is an update avaliable to core 02.6.1037, I let it update, BANG! it just crashes and never updates.
As for the option to shutdown the system after completing the Queue, make it default to not shutdown immediatelly but at least give the user a 20 second time to eventually abort the shutdown. Why is this option only changable in some very well hidden dropdown menu and not in the queue window itself ?
And why doesn't it revert to "Do nothing" the next time you enqueue something.
This night I let it encode some stuff (completely wrong BTW, the frontend wasn't even able to give me a 25FPS 700MB avi, but instead gave me a 20FPS 1GB file, but that's another story).... The system shut down, OK.
Today, I want to encode something, I let it analyse the file and BAM! The system happily shuts down, lost all other work on the PC.
It's one giant mess !
As for Megui, some simple explanations ? Some manual ? Some walkthrough ? Nothing at all !
First time you run it, you are presented with all bunch of tools it has to update ? What will it do with them ?
Will it dump them in it's own subfolder ? Will it install them all in their predefined folder, thereby fucking up all other frontends that require a specified version of those tools ? It downloaded them, and now their all are zipped it a subfolder called "update_cache" .... What do i have to do with them ? Do I have to manually install them all, therefor getting all other frontends and tools spit out errors on the fly..... I have no single idea.
A helpfile ? Seems like that's the ultimate nightmare of a frontend programmer, the biggest help is some link to some wiki page with no contents at all....
mroz
13th November 2007, 02:30
http://forum.doom9.org/showthread.php?t=105920
After some rethinking, this is clearly a bad idea. All import audio filters (WavSource, NicAC3Source, NicDTSSource,...DirectShowSource) return the correct channels order (i.e WAV Format). A note to myself: don't touch on channels mapping. :p
From what you say above, there shouldn't be a channel mapping problem, but you reported you'd observed one in a preceeding post? Was that a mistake or did it have some other now sorted cause? Just being nosey :)
berrinam
13th November 2007, 02:33
As for MeGUI, it might be good, but the interface is a complete mess, there is no single logic in itWe are addressing this concern.
I finally got it as far as setting a predefined size of 700 MB, it ran the 2 passes, resulting in an AVI file of over 1 Gigabyte in size....... Pfffffffffff.........Today, I start it up, there is an update avaliable to core 02.6.1037, I let it update, BANG! it just crashes and never updates.Please post your log and the options and tools you used on the Sourceforge bug tracker (http://sourceforge.net/tracker/?group_id=156112&atid=798476) and we will attempt to solve these problems as soon as possible.
As for the option to shutdown the system after completing the Queue, make it default to not shutdown immediatelly but at least give the user a 20 second time to eventually abort the shutdown.There is a 30-second wait already.
And why doesn't it revert to "Do nothing" the next time you enqueue something.This is one of the problems with creating user interface problems that the we (the developers) do not use ourselves: we cannot know what good defaults are. We need users to suggest good defaults, so thank you for doing so.
First time you run it, you are presented with all bunch of tools it has to update ? What will it do with them ?
Will it dump them in it's own subfolder ? Will it install them all in their predefined folder, thereby fucking up all other frontends that require a specified version of those tools ? It downloaded them, and now their all are zipped it a subfolder called "update_cache" .... What do i have to do with them ? Do I have to manually install them all, therefor getting all other frontends and tools spit out errors on the fly..... I have no single idea.
MeGUI does very little which can affect your system setup, since with the default settings, MeGUI installs all updated programs to folders within the MeGUI installation folder. This means that uninstalling MeGUI will make it clean up after itself, not affecting any other encoding frontends
The single exception to this rule is Avisynth plugins, which are installed to the default Avisynth plugin folder. This was a deliberate decision, made to take advantage of Avisynth plugin auto-loading.
As for Megui, some simple explanations ? Some manual ? Some walkthrough ? Nothing at all !
A helpfile ? Seems like that's the ultimate nightmare of a frontend programmer, the biggest help is some link to some wiki page with no contents at all....
Admittedly, there are currently technical issues with the wiki which render the guides there useless (although the content has been there at some stage). The options reference section still appears to be in order, though.
There are two other step-by-step MeGUI guides on external websites, available here (http://www.digital-digest.com/articles/MeGUI_H.264_Conversion_Guide_page1.html) and here (http://www.afterdawn.com/guides/archive/me_gui_convert_to_xvid.cfm). I hope they can help you.
berrinam
13th November 2007, 02:34
From what you say above, there shouldn't be a channel mapping problem, but you reported you'd observed one in a preceeding post? Was that a mistake or did it have some other now sorted cause? Just being nosey :)I had a problem with channel mapping, which I assume hasn't yet been solved. It could have been a problem with the setup on my end, though...
mroz
13th November 2007, 02:34
@avdw: With the new stable release & a new dev version in the works, from the sound of it with major gui changes, I'm sure the devs would appreciate input as it develops.
As to the docs, if you get to the point where you're comfortable using Megui but can still remember your initial problems, perhaps you'd be a good candidate to write some docs? It's always hard for the authors, as they're too close to the code to see things from a new user perspective.
mroz
13th November 2007, 02:39
Please post your log and the options and tools you used on the Sourceforge bug tracker (http://sourceforge.net/tracker/?group_id=156112&atid=798476) and we will attempt to solve these problems as soon as possible.
If the codec was xvid the problem will be the profile. I'm no expert (if I had a catchphrase, that'd be it), but they seem to have very restrictive ranges on the quantisers (which I didn't think was necessary as I thought the codec would make sensible choices most of the time for the available bandwidth).
I've never had that problem with the x264 profiles.
Kurtnoise
13th November 2007, 07:23
From what you say above, there shouldn't be a channel mapping problem, but you reported you'd observed one in a preceeding post? Was that a mistake or did it have some other now sorted cause? Just being nosey :)
I think that the culprit is script.Append("6<=Audiochannels(last)?GetChannel(last,1,3,2,5,6,4):last" + Environment.NewLine); line 616 in AvisynthAudioEncoder.cs...
Kurtnoise
13th November 2007, 11:49
@berrinam: about the new log patch
nothing to say concerning the code...it looks ok. ;)
can we change the picture for the treeview or did you use the one included in the windows system libs ?
might be more interesting to save the log as xml file instead of txt, right ?
could be great to expand the node when the job/process is running and close it then the job is finished...or colors the node as bold (dunno if it's doable though).
Just above Commandline node (in the Input part), add a new node (Input File: xxxxxxxxxxxxxxxxxxxxx\my_inputfile)
http://img402.imageshack.us/img402/6830/meguilog2zm3.png
kumi
13th November 2007, 12:03
might be more interesting to save the log as xml file instead of txt, right ?
Sorry to butt in, but how about something more human-readable like YAML?
Kurtnoise
13th November 2007, 12:15
sure...why not. :)
berrinam
13th November 2007, 12:51
can we change the picture for the treeview or did you use the one included in the windows system libs ?I used system icons for the log because that was all I could find. I know nothing about graphics creation, so I don't know where to get other images, although it is a simple task to use other images once they are provided -- other images simply need to be loaded into the ImageList in the LogTree widget.
might be more interesting to save the log as xml file instead of txt, right ?I actually did plain-text because I found it very human-readable, and more compact than something like XML. It's also very easy to produce programmatically, and the dashes mean that even non-monospaced fonts like SourceForge's bug tracker will preserve indentation. I'm not sure why you would want a "heavier" format, so to speak.
could be great to expand the node when the job/process is running and close it then the job is finished...or colors the node as bold (dunno if it's doable though).I imagine expansion and contraction of the nodes might not be too hard.
Just above Commandline node (in the Input part), add a new node (Input File: xxxxxxxxxxxxxxxxxxxxx\my_inputfile)You mean I should log the input file?
SpAwN_gUy
13th November 2007, 12:57
Sorry to butt in, but how about something more human-readable like YAML?
and some part of "new" features of meGUI could load those .logs and Show them with glowing and jumping texts.. with words "yeppie, you did it.. want to encode more?" ;) ..
sorry, those were my two cents..
but the idea with.. LogTreeView ('cause now one can start few processes same time) would be nice..
or.. i just miss-read.. ???
mroz
13th November 2007, 13:22
I actually did plain-text because I found it very human-readable, and more compact than something like XML. It's also very easy to produce programmatically, and the dashes mean that even non-monospaced fonts like SourceForge's bug tracker will preserve indentation. I'm not sure why you would want a "heavier" format, so to speak.
Yaml looks to be a good format with appeal to all applications. Very readable & also easy to parse. As to a use case, how about if one wants to batch process jobs then format a report summarising certain aspects of the results? It's also pretty compact, though if space is that much of a concern just zip each log, or logs over a certain age.
berrinam
13th November 2007, 13:30
Yaml looks to be a good format with appeal to all applications. Very readable & also easy to parse. As to a use case, how about if one wants to batch process jobs then format a report summarising certain aspects of the results? It's also pretty compact, though if space is that much of a concern just zip each log, or logs over a certain age.
I was really considering compactness in reading. Xml would be inappropriate for a log because you have to read so much junk along with the content. I don't know about YAML, not having used it, but I presently can't see a strong case for it being superior to the planned formatting, which is already very simple, parsable, and clear to read. Of course, most of you don't know what this will look like, so here's an example:
[Information] Log
-[Information] Version information
--[NoImage] MeGUI Version: 0.3.0.0
--[NoImage] OS used: Microsoft Windows XP Professional Service Pack 2
--[NoImage] .Net Framework installed: 2.0.50727.832
-[Information] Settings
--[NoImage] YadifPath: yadif.dll
Sharktooth
13th November 2007, 14:06
Oops... as usual i forgot to paste the new build changelog...
0.2.6.1037
- (Kurtnoise) [ProgressWindow] fixed timeElapsed issue for 24h+.
- (Kurtnoise) Updated wiki links.
- (Kurtnoise) [MP4BoxMuxer] workaround to avoid tmp command issues (fixed #1828277)
@berrinam: do you think it's time to update the stable folder of the auto-update server?
Kurtnoise
13th November 2007, 14:16
I actually did plain-text because I found it very human-readable, and more compact than something like XML. It's also very easy to produce programmatically, and the dashes mean that even non-monospaced fonts like SourceForge's bug tracker will preserve indentation. I'm not sure why you would want a "heavier" format, so to speak.
After reading your last reply, that makes sense. You're right...
You mean I should log the input file?
Yes, something like that...look at the picture just above. This is not really important for sure. :)
btw, I'm wondering if we can distinguish an Audio vs a Video job with our code ? I mean that could be great to have in the log some tuning like "[hh:mm:ss] Audio Encoding started..." or when we have a video job processing "[hh:mm:ss] Video Encoding started..."
Sharktooth
13th November 2007, 14:18
we can distinguish it...
Sharktooth
13th November 2007, 15:00
0.2.6.1038
- (Kurtnoise) [Progress Window] use TotalHours only, dude...
avdw
13th November 2007, 18:39
We are addressing this concern.
...
Please post your log and the options and tools you used on the Sourceforge bug tracker (http://sourceforge.net/tracker/?group_id=156112&atid=798476) and we will attempt to solve these problems as soon as possible.
Thanks for the help, unfortunatelly I already uninstalled this Megui frontend.
After all the problems I posted early, I also found that the encoded video contains MP3 audio which plays at about 100x(!!) the speed it has to, on top of that If I analyse some .VOB file in the AviSynth Script Editor, it spits out a different source type every time.
I actually got the best idea I had about this tools, compared the whole bunch of threads about bugs, problems, development, etc... etc.... to the times this program actually has been downloaded, and that made it very clear that i better get rid of it instead of wasting my time any further.
Thanks.
berrinam
13th November 2007, 23:38
@berrinam: do you think it's time to update the stable folder of the auto-update server?Yes. You said you had a script to do this, so would you be able to do that please?
but the idea with.. LogTreeView ('cause now one can start few processes same time) would be nice..
or.. i just miss-read.. ???You were right: it is a tree-based log, and it handles logs of parallel jobs properly.
berrinam
13th November 2007, 23:55
btw, I'm wondering if we can distinguish an Audio vs a Video job with our code ? I mean that could be great to have in the log some tuning like "[hh:mm:ss] Audio Encoding started..." or when we have a video job processing "[hh:mm:ss] Video Encoding started..."
could be great to expand the node when the job/process is running and close it then the job is finished...or colors the node as bold (dunno if it's doable though).
I've done these two things. I can't create a patch just for them, so I'll just show you the changes. For the first, I've done this:
Index: core/details/audio/AudioJob.cs
===================================================================
--- core/details/audio/AudioJob.cs (revision 341)
+++ core/details/audio/AudioJob.cs (working copy)
@@ -73,7 +73,7 @@
{
get
{
- return null;
+ return "audio";
}
}
Index: core/details/video/VideoJob.cs
===================================================================
--- core/details/video/VideoJob.cs (revision 341)
+++ core/details/video/VideoJob.cs (working copy)
@@ -76,6 +76,8 @@
{
get
{
+ return "video";
+ /*
int mode = settings.EncodingMode;
switch (mode)
{
@@ -99,7 +101,7 @@
case (int)VideoCodecSettings.Mode.threepass3:
return "3 pass 3rd pass";
}
- return "";
+ return "";*/
}
}
}
Index: core/gui/JobWorkerWindow.cs
===================================================================
--- core/gui/JobWorkerWindow.cs (revision 341)
+++ core/gui/JobWorkerWindow.cs (working copy)
@@ -556,6 +525,11 @@
{
try
{
log = mainForm.Log.Info("Log for " + job.Name);
+ log.LogValue("Job type", job.Job.EncodingMode);
log.LogEvent("Started handling job");
status = JobWorkerStatus.Running;
//Check to see if output file already exists before encoding.
if (File.Exists(job.Job.Output) && !mainForm.DialogManager.overwriteJobOutput(job.Job.Output))
Index: core/plugins/interfaces/Job.cs
===================================================================
--- core/plugins/interfaces/Job.cs (revision 341)
+++ core/plugins/interfaces/Job.cs (working copy)
@@ -113,11 +113,17 @@
#endregion
#region queue display details
+ /// <summary>
+ /// Codec used
+ /// </summary>
public abstract string CodecString
{
get;
}
+ /// <summary>
+ /// New meaning: Encoding mode means job type: video/audio/mux/index/split/etc
+ /// </summary>
public abstract string EncodingMode
{
get;
(that wasn't a proper patch, but it should be at least readable and give you an idea of what I've done)
For the second, I did this:
Index: core/gui/JobWorkerWindow.cs
===================================================================
--- core/gui/JobWorkerWindow.cs (revision 341)
+++ core/gui/JobWorkerWindow.cs (working copy)
@@ -446,10 +420,8 @@
currentJob = null;
// Logging
log.LogEvent("Job completed");
+ log.Collapse();
// Postprocessing
bool jobCompletedSuccessfully = (job.Status == JobStatus.DONE);
@@ -556,6 +525,11 @@
{
try
{
log = mainForm.Log.Info("Log for " + job.Name);
log.LogEvent("Started handling job");
+ log.Expand();
status = JobWorkerStatus.Running;
//Check to see if output file already exists before encoding.
if (File.Exists(job.Job.Output) && !mainForm.DialogManager.overwriteJobOutput(job.Job.Output))
Index: core/gui/LogTree.cs
===================================================================
--- core/gui/LogTree.cs (revision 0)
+++ core/gui/LogTree.cs (revision 0)
@@ -0,0 +1,136 @@
log.TypeChanged += delegate(object sender, EventArgs<ImageType> args)
{
Util.ThreadSafeRun(treeView, delegate { node.SelectedImageIndex = node.ImageIndex = (int)args.Data; });
};
+ log.Expanded += delegate(object sender, EventArgs e)
+ {
+ Util.ThreadSafeRun(treeView, delegate { node.Expand(); });
+ };
+ log.Collapsed += delegate(object sender, EventArgs e)
+ {
+ Util.ThreadSafeRun(treeView, delegate { node.Collapse(); });
+ };
return node;
}
Index: core/util/LogItem.cs
===================================================================
--- core/util/LogItem.cs (revision 0)
+++ core/util/LogItem.cs (revision 0)
@@ -0,0 +1,338 @@
public class LogItem
{
public event EventHandler<EventArgs<LogItem>> SubItemAdded;
public event EventHandler<EventArgs<ImageType>> TypeChanged;
+ public event EventHandler Expanded;
+ public event EventHandler Collapsed;
+
+ public void Expand()
+ {
+ if (Expanded != null)
+ Expanded(this, new EventArgs());
+ }
+
+ public void Collapse()
+ {
+ if (Collapsed != null)
+ Collapsed(this, new EventArgs());
+ }
public string Text
{
For a complete patch for testing (I haven't split it into little files this time) see http://megui.org/berrinam_patches/newlog2/. The old patch is newlog2.patch; the new patch is newlog4.patch. You can see the changes I've made by diffing the two, although it is essentially what I posted here.
@kurtnoise: I haven't done the input information, because I'm not entirely sure what you want. I'm sure you can add the information once this patch is in the SVN. In fact, we may generally want to add more information to the log in a number of places.
Sharktooth
14th November 2007, 16:16
Yes. You said you had a script to do this, so would you be able to do that please?Sure ill do that tonight.
Sharktooth
15th November 2007, 17:26
The stable folder of the auto-update server has been... ehrr... updated :)
Sharktooth
15th November 2007, 17:30
@berrinam: if you have some time please update the mediainfo lib to the newer version. it should fix the vista issues.
Kurtnoise
16th November 2007, 15:40
A patch (http://kurtnoise.free.fr/index.php?dir=MeGUI/&file=TimeElapsed-Remaining_days_format.patch) for the days Format concerning Time Elapsed/Remaining (#1832257 (http://sourceforge.net/tracker/index.php?func=detail&aid=1832257&group_id=156112&atid=798476)).
btw, what is the current status concerning the unused code ? Should we drop it or keep it ?
For my point of view: the trunk must be clean up. So, the unused code should be removed.
berrinam
17th November 2007, 03:51
I think removing unused code should be fine. If we need it again, it's always in the svn history.
Also, I've been thinking that putting the avisynth plugins by default in Avisynth's plugins folder is not a good choice. It interferes with other plugins and there's no easy way to remove that part of the megui installation. Perhaps we should put the avs plugins in a megui folder and add loadplugin calls to the generated avs scripts. There would be two things that alleviate the annoyance of this:
All of the avs filters MeGUI is aware of can be annotated with the plugin that contains them, so MeGUI can automatically add the required loaddll calls.
If the user wants to write their own scripts, we can add an .avsi file in the MeGUI plugins directory (NOT autoloaded) which calls loadplugin for all of the plugins in that directory. This means the user need only load that avsi file to have access to all of MeGUI's plugins, instead of loading each plugin separately.
In fact, this avsi file could even be put in the avs plugins directory, so that the plugins are autoloaded anyway, but without cluttering the avisynth plugins directory
In addition to the advantage of ease of uninstalling, this can solve plugin versioning problems, for instance with DGDecode and MVTools. For instance, this would allow MeGUI to support two different Didee scripts which might require different versions of MVTools, since the different copies could be put in different subdirectories of the MeGUI plugin directory.
Taurus
17th November 2007, 07:44
Also, I've been thinking that putting the avisynth plugins by default in Avisynth's plugins folder is not a good choice.It interferes with other plugins and there's no easy way to remove that part of the megui installation. Perhaps we should put the avs plugins in a megui folder and add loadplugin calls to the generated avs scripts.
Bravo!
My opinion: The best idea since inventing the wheel ;).
kumi
17th November 2007, 08:34
I think it's a great idea too. I like to keep my plugins folder clean, but MeGUI always clutters it up :)
St Devious
17th November 2007, 11:21
could megui have a copy stream option where u dont encode the vidoe or audio streams ? like in avidemux . u just process the video using avisynth and copy the video or split the video only without encoding .
Kurtnoise
17th November 2007, 12:13
could megui have a copy stream option where u dont encode the vidoe or audio streams ? like in avidemux . u just process the video using avisynth and copy the video or split the video only without encoding .
:sly::sly::sly:
@devs: what's wrong with the x264 command line updating ? Just one example: choose, say, the Mode 2pass - 2nd pass then go to the Advanced tab, select the BFrame Mode to Spatial (command line preview is updated). Now, go to RC and ME tab, select RDO L2 as Subpel Ref and you'll see that command line preview is not updated...:confused:
St Devious
17th November 2007, 12:21
:sly::sly::sly:
wat does this mean , yes or no to the idea ??
Kurtnoise
17th November 2007, 12:23
rtfm...
berrinam
17th November 2007, 14:14
could megui have a copy stream option where u dont encode the vidoe or audio streams ? like in avidemux . u just process the video using avisynth and copy the video or split the video only without encoding .
Avisynth won't work, because it doesn't transmit the uncompressed video. Any video that goes via Avisynth will have to be recompressed. However, there are ways in MeGUI to use and cut audio without recompressing.
berrinam
17th November 2007, 14:25
@devs: what's wrong with the x264 command line updating ? Just one example: choose, say, the Mode 2pass - 2nd pass then go to the Advanced tab, select the BFrame Mode to Spatial (command line preview is updated). Now, go to RC and ME tab, select RDO L2 as Subpel Ref and you'll see that command line preview is not updated...:confused:
Can't reproduce. Are you sure it didn't update?
berrinam
17th November 2007, 14:28
@kurtnoise: go ahead and commit your estimated-time patch; it looks fine.
Shall I commit the newlog patch?
St Devious
17th November 2007, 14:32
Avisynth won't work, because it doesn't transmit the uncompressed video. Any video that goes via Avisynth will have to be recompressed. However, there are ways in MeGUI to use and cut audio without recompressing.
thx for explaining that .
Kurtnoise
17th November 2007, 14:34
Can't reproduce. Are you sure it didn't update?
mmh...did you use your own profile/config or one of the Sharktooth ?
edit: weird...it works fine now.
Shall I commit the newlog patch?
sure...go ahead.
Underground78
17th November 2007, 16:36
Also, I've been thinking that putting the avisynth plugins by default in Avisynth's plugins folder is not a good choice. It interferes with other plugins and there's no easy way to remove that part of the megui installation. Perhaps we should put the avs plugins in a megui folder and add loadplugin calls to the generated avs scripts.
I think it's a very good idea ! :)
bluebebe
17th November 2007, 17:52
Megui dont work properly, please read this:
http://forum.doom9.org/showpost.php?p=1063503&postcount=47
and this:
http://forum.doom9.org/showpost.php?p=1065686&postcount=49
what can we do to get a working version? after complete reinstalls, always the same errors like Kumi describe.
Kurtnoise
17th November 2007, 20:55
god damn it...I'm really tired to read bugreports in this thread or anything else which doesn't belong to the development. Is it too hard for you or what ?
Anyway, have a look at this (http://forum.doom9.org/showthread.php?p=1066016#post1066016).
@devs: why not open a mailing-list on SF for the development discussion ?
berrinam
18th November 2007, 05:09
Please report bugs on the megui SourceForge bug tracker, not here, as this thread is dedicated to megui development. There is a link to the tracker in my signature.
You may also be able to get older versions of megui from the SourceForge project page.
berrinam
18th November 2007, 05:11
@devs: why not open a mailing-list on SF for the development discussion ?
I don't know. What are the advantages/disadvantages?
berrinam
18th November 2007, 05:50
I'm looking for comments on some changes I've made to the megui avisynth creator. What I've done is to integrate denoisers and resizers into MeGUI's profile system, which gives two significant advantages:
Users can create their own denoiser/resizer filters and they work as well as builtin denoise/resize filters used to work (there are no longer builtin denoise/resize filters in this modification)
It turns out that this neatly handles the distribution of plugin dlls, as they are just considered "required files" by the megui profile system (like CQM files), so megui automatically handles distribution of them with File->Import/Export profiles. This means that we can simply make a package of resizers/denoisers available on the autoupdate server, and autoupdate will save the plugin dlls into megui's 'extra' directory instead of the avs plugins directory.
The changes here are by no means complete. The main problem is that they only apply to resizers and denoisers, whereas I would like to do the same for other filters like flipvertical, colormatrix, and (most importantly) deinterlacing. I am having difficulties in creating a good solution for this, since there are some things that megui needs to remain aware of:
order of filters is important, eg resize must go after deinterlacing, etc
For some filter types, it makes sense to have multiple filters of the type (for instance, "input filters" such as flipvertical, colormatrix); for others, it doesn't (eg resizers, deinterlacers)
Also, it must remain simple for the novice user.
You can get the binary of this modification from http://megui.org/berrinam_patches/avscreator/megui-avisynth.zip.
berrinam
18th November 2007, 07:36
@devs: to avoid #1822000 and for coherency, we should populate the profiles dropdowns (audio and video) with only the profiles belonging to the selected codecs.
I've been thinking about how we manage profiles, because there are some annoying points, in particular in relation to handling video and audio profiles, which have different config dialogs for different codecs, as you say. Currently, we handle these different types with SettingsProviders, which are generally a hassle to create, and have the somewhat out-of-place feature that they keep track of the current video/audio settings, in place to allow the creation and editing of settings without creating a profile for those settings.
This last feature that MeGUI supports is very annoying to code with, as it requires the odd behaviour of SettingsProvider. In my resizer/denoiser megui modification posted above, I replaced this feature with the special name, "*scratchpad*". The rules for profiles change slightly:
For all types of profile, there must be at least 1 profile. If it does not exist, MeGUI will create one with the default settings by the name "*scratchpad*".
Unlike other profiles, the *scratchpad* profile will be automatically updated when closing the config box, without the user being asked
There must always be a profile selected. In the places in MeGUI which caused no profile to be selected, the *scratchpad* profile is now selected
I found these rules easier to code with, since we now have the guarantee that a profile is always selected. For audio and video, this means that the SettingsProvider no longer needs the GetCurrentSettings() and SetCurrentSettings() methods.
Do you think these changes are annoying to the user, or can we keep them because they are helpful for the developers?
I am reluctant to do exactly as you suggest, however, because it might mean you forget you have, say, a Snow profile. It was initially a tempting thought, because it is much simpler to handle a combobox with settings of only one type than one with multiple types of settings. When I think about it, there probably wouldn't be much to lose anyway, since the choice of codec generally comes before the choice of profile. However, I think I have a way to simplify the combobox handling, so I think the decision is ultimately one about UI rather than coding ease.
I will make some code changes to profile handling, and post a patch and see what you think.
berrinam
18th November 2007, 07:43
@berrinam: if you have some time please update the mediainfo lib to the newer version. it should fix the vista issues.I'll do this soon. The problem is that my main computer doesn't run vista, so it'll take some time.
Kurtnoise
18th November 2007, 09:29
I don't know. What are the advantages/disadvantages?
well...mailing-lists on SF are quite robust against the spams (or if you don't like SF mailings, there are also gmane.org). Moreover, searchs/discussions by subjects/threads are more easier than there in this topic. Anyway, you can look at this (http://www.philb.com/mail.htm) for the pros/cons.
About the new avisynth creator: first of all, it sounds good. :) But it's definitively not for the newbies. To improve it in this way, we can try to include auto-completion (http://msdn2.microsoft.com/en-us/library/system.windows.forms.autocompletesource.aspx) stuff.
About the profiles management: I need to play with it more extensively and check the code might be great too. :p
btw, I can do myself the MediaInfo lib compilation...I'm running on Vista most of the time at home. but the problem remains unfortunately. It's due to our wrapper.
Kurtnoise
18th November 2007, 12:01
We should add the date also in the log...some people complaining with long encodes.
Index: core/util/LogItem.cs
===================================================================
--- core/util/LogItem.cs (revision 374)
+++ core/util/LogItem.cs (working copy)
@@ -99,7 +99,7 @@
public LogItem LogEvent(string eventName, ImageType image)
{
- return Add(new LogItem(string.Format("[{0:T}] {1}", DateTime.Now, eventName), image));
+ return Add(new LogItem(string.Format("[{0:G}] {1}", DateTime.Now, eventName), image));
}
public LogItem Info(string text)
berrinam
18th November 2007, 12:04
About the new avisynth creator: first of all, it sounds good. :) But it's definitively not for the newbies.Well, the trick is to get it to a level where we distribute profiles that make it easier for newbies. But it is still a hard thing to do.
To improve it in this way, we can try to include auto-completion (http://msdn2.microsoft.com/en-us/library/system.windows.forms.autocompletesource.aspx) stuff.Interesting... I never knew about that.
btw, I can do myself the MediaInfo lib compilation...I'm running on Vista most of the time at home. but the problem remains unfortunately.
If you can get it to work, that would be great. Otherwise, I can look at it in a few days.
berrinam
18th November 2007, 12:39
We should add the date also in the log...some people complaining with long encodes.
Index: core/util/LogItem.cs
===================================================================
--- core/util/LogItem.cs (revision 374)
+++ core/util/LogItem.cs (working copy)
@@ -99,7 +99,7 @@
public LogItem LogEvent(string eventName, ImageType image)
{
- return Add(new LogItem(string.Format("[{0:T}] {1}", DateTime.Now, eventName), image));
+ return Add(new LogItem(string.Format("[{0:G}] {1}", DateTime.Now, eventName), image));
}
public LogItem Info(string text)
That's fine.
berrinam
19th November 2007, 04:56
This patch makes the custom filesizes, ARs, and FPSs persistent in the dropdown comboboxes: http://megui.org/berrinam_patches/dropdown_persistence.patch. This addresses #1822492.
berrinam
19th November 2007, 05:28
Dragdrop support in the bitrate calculator (#1819618): http://megui.org/berrinam_patches/dragdrop_bitratecalculator.patch.
berrinam
19th November 2007, 06:17
Remember columns positions for the job queue (#1817092): http://megui.org/berrinam_patches/save_column_positions.patch
berrinam
19th November 2007, 07:05
Local time estimation, instead of based on entire encode. I tested this with audio and it seems more stable there; I haven't found much difference otherwise. Addresses #1832899:
Index: core/details/StatusUpdate.cs
===================================================================
--- core/details/StatusUpdate.cs (revision 378)
+++ core/details/StatusUpdate.cs (working copy)
@@ -56,6 +56,12 @@
timeElapsed = TimeSpan.Zero;
processingspeed = null;
filesize = null;
+
+ for (int i = 0; i < UpdatesPerEstimate; ++i)
+ {
+ previousUpdates[i] = TimeSpan.Zero;
+ previousUpdatesProgress[i] = 0M;
+ }
}
/// <summary>
@@ -302,11 +308,28 @@
// Processing time
if (fraction.HasValue)
- estimatedTime = new TimeSpan((long)((decimal)timeElapsed.Ticks * ((1 / fraction.Value) - 1)));
+ {
+ TimeSpan time = timeElapsed - previousUpdates[updateIndex];
+ decimal progress = fraction.Value - previousUpdatesProgress[updateIndex];
+ if (progress > 0 && time > FiveSeconds)
+ estimatedTime = new TimeSpan((long)((decimal)time.Ticks * (1M - fraction) / progress));
+ else
+ estimatedTime = new TimeSpan((long)((decimal)timeElapsed.Ticks * ((1 / fraction.Value) - 1)));
+
+ previousUpdates[updateIndex] = timeElapsed;
+ previousUpdatesProgress[updateIndex] = fraction.Value;
+ updateIndex = (updateIndex+1)% UpdatesPerEstimate;
+ }
}
catch (Exception)
{
}
}
+
+ static readonly TimeSpan FiveSeconds = new TimeSpan(0, 0, 5);
+ const int UpdatesPerEstimate = 10;
+ TimeSpan[] previousUpdates = new TimeSpan[UpdatesPerEstimate];
+ decimal[] previousUpdatesProgress = new decimal[UpdatesPerEstimate];
+ int updateIndex = 0;
}
}
Kurtnoise
19th November 2007, 11:32
This patch makes the custom filesizes, ARs, and FPSs persistent in the dropdown comboboxes: http://megui.org/berrinam_patches/dropdown_persistence.patch. This addresses #1822492.
Dragdrop support in the bitrate calculator (#1819618): http://megui.org/berrinam_patches/dr...lculator.patch.
Remember columns positions for the job queue (#1817092): http://megui.org/berrinam_patches/sa...ositions.patch
all looks ok but not tested yet.
jfyi, one of the Aften developper is going to create a C# binding. That might be great...
berrinam
19th November 2007, 12:06
Don't we already support Aften in commandline form?
I'm not sure of the advantages of direct interface, since commandline already works well...
Kurtnoise
19th November 2007, 13:45
yeah, command line works flawlessly...it was just for information. :)
Kurtnoise
19th November 2007, 16:49
ok...last patches tested. That works fine. :)
I will make some code changes to profile handling
That reminds me something...Adding an output file format checking with the handle could be great too. Ex: an user select a video device profile (Ipod), File Format should be only MP4 and not MKV/RAW.
bob0r
19th November 2007, 19:13
Please remove the pause from compile-all.bat, it prevents my scripts from running automated.
Kurtnoise
19th November 2007, 20:52
why not create your own batch file ?
I believe that the pause is there for a good reason...
check
19th November 2007, 22:53
with regards to alternative development communication methods, I am happy to setup a dedicated megui forum on the mewiki box if you would like. The other advantage of that would be it would allow people with problems to have each their own thread, which makes tracking them easier. On the other hand, it moves megui away from doom9, which could be a bad thing..
bob0r
20th November 2007, 01:51
why not create your own batch file ?
I believe that the pause is there for a good reason...
Could you explain that reason please?
berrinam
20th November 2007, 02:42
Could you explain that reason please?
The only reason I know is that the pause after compiling megui allows you to see if there were any errors in compilation. However, I think this is a relatively unimportant reason since most people develop megui with an IDE.
I would be happy to remove the pauses, if the other devs don't object.
Sharktooth
20th November 2007, 10:20
it's ok for me. however if you want the csc output, it can be added to a compile.log file using the good old stdout redirection...
Sharktooth
20th November 2007, 10:31
@devs: what about replacing mediainfowrapper with an older version that "seems to work" with Vista?
bob0r
20th November 2007, 21:52
@berrinam
Ok, thats why you can run it from start>run>cmd
Please remove the pause. Thanks.
Kurtnoise
21st November 2007, 08:35
I would be happy to remove the pauses, if the other devs don't object.
ok for me too...
Kurtnoise
21st November 2007, 08:44
what about replacing mediainfowrapper with an older version that "seems to work" with Vista?
honestly, the problem remains even with the old one...I mean that you're are able to have the preview but when you restart MeGUI randomly, that raises an error.
I tried also the C# how-to use MediaInfo included into MediaInfoLib trunk and traced the functions. Seems that the problem is after the Opening...
iirc, it's due to an issue with the openFileDialog according to this post (http://forum.doom9.org/showthread.php?p=1062833#post1062833). So, how to code a new openFileDialog, berrinam ?
berrinam
21st November 2007, 09:35
According to winnydows, just run the openFileDialog in an external application (invoked by commandline). I've written a quick patch which changes some of the dialogs to use this approach; get that patch here (http://megui.org/berrinam_patches/openfiledialog/). It works by running a program called "openfiledialog.exe" in the same folder as megui.exe. The sourcecode for this executable is given below.
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace OpenFileDialog
{
class Program
{
static void Main(string[] r)
{
System.Windows.Forms.OpenFileDialog d = new System.Windows.Forms.OpenFileDialog();
d.InitialDirectory = r[0];
d.Title = r[1];
d.DefaultExt = r[2];
d.FileName = r[3];
d.Filter = r[4];
MessageBox.Show("Special ofd");
DialogResult dr = d.ShowDialog();
string[] s = new string[6];
Console.WriteLine("{0}\n{1}\n{2}\n{3}\n{4}\n{5}\n", d.InitialDirectory, d.Title, d.DefaultExt, d.FileName, d.Filter, (dr == DialogResult.OK ? "OK" : "Cancel"));
}
}
}
This program gives you a message before opening the dialog, so that you know it is being used. If it isn't being used somewhere it should be used, the solution is simple: just rename any instances of OpenFileDialog to CmdOpenFileDialog, and it should all work out fine.
Hope that helps. If it works, we can make it more reliable.
berrinam
21st November 2007, 09:46
with regards to alternative development communication methods, I am happy to setup a dedicated megui forum on the mewiki box if you would like. The other advantage of that would be it would allow people with problems to have each their own thread, which makes tracking them easier. On the other hand, it moves megui away from doom9, which could be a bad thing..
I'm not too fussed either way. The important thing for me is just that people post their bug reports and feature requests on the SF tracker.
berrinam
21st November 2007, 09:47
Please remove the pause. Thanks.
Done.
Kurtnoise
21st November 2007, 10:44
Hope that helps. If it works, we can make it more reliable.
For the moment, that works fine...mainly tested with the old and the new MediaInfo and the old and fresh MediaInfoWrapper compile.
Anyway, it's very strange this behaviour...maybe it's that (http://www.tmssoftware.com/atbdev6.htm) (old/new form) ? or a bug with the Framework...dunno frankly and I don't want to install the 3.5 right now to check this out.
Sharktooth
21st November 2007, 11:30
stable:
0.2.6.1039
- (berrinam) Increase sensitivity of DAR. (fixes #1832218)
- (Kurtnoise) [x264] checked = false for Turbo with manual multipasses modes & cosmetics.
- (Kurtnoise) [ProgressWindow] New format for Time Elapsed/Remaining.
- (Kurtnoise) [BitrateCalculator] DTSBlockSize != AC3BlockSize
Dev:
0.3.0.0001
- (berrinam) Sliding window time estimation instead of based on entire code. (#1832899)
- (berrinam) Add extra files for dragdrop and dropdown persistence
- (berrinam) Remember columns position for the job queue (#1817092)
- (berrinam) Dragdrop support in the bitrate calculator (#1819618)
- (berrinam) The custom filesizes, ARs, and FPSs in the dropdown comboboxes are now persistent. (#1822492)
- (berrinam) Make mux window output file editable.
- (berrinam) Change tools windows from modal dialogs to standalone windows. (#1822493)
- (Kurtnoise) [LogItem] added the Date.
- (berrinam) Commit the newlog patch. Changes:
- new, hierarchical log
- moved delete intermediate files stuff to cleanupjob
- Log and Error removed from StatusUpdate -> use log.LogValue("Encoder log", encodeLog), and log.Error(...) instead
- added a non-null check to Util.ThreadSafeRun
- (Kurtnoise) ASS & SSA support for the MKV muxer.
- (Kurtnoise) [MeGUISettings] removed divxMuxerPath.
- (Kurtnoise) [OneClick] sorted = true for Audio codecs.
- (Kurtnoise) Added more bitrate values for AC3 encoders.
- (Kurtnoise) Aften support as AC-3 encoder (FR #1663719)
- (Kurtnoise) Delays on audio output filenames now have meaning and are checked for correctness (implements #1819281)
- (Kurtnoise) Changed the default bitrate for FFAC3 (256 to 384 kbps).
- (Kurtnoise) Audio codecs List refactoring.
berrinam
21st November 2007, 12:43
Nice long changelog. Looks good. :)
Kurtnoise
21st November 2007, 13:50
*Note for the end users* : all bugfixes included in the stable release are also included in the dev build...:)
Sharktooth
21st November 2007, 13:53
well... that was somewhat implied...
Kurtnoise
21st November 2007, 18:21
:p
I've written a quick patch which changes some of the dialogs to use this approach; get that patch here (http://megui.org/berrinam_patches/openfiledialog/).
Here is (http://kurtnoise.free.fr/index.php?dir=MeGUI/&file=openfiledialog_r401.patch) an update against the last rev including pstart.CreateNoWindow = true;
wiak
22nd November 2007, 01:01
---------------------------
Fatal error
---------------------------
MeGUI encountered a fatal error and may not be able to proceed. Reason: Kan ikke laste inn filen eller samlingen ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73 eller en av avhengighetene. Manifestdefinisjon til samlingen som ble funnet, samsvarer ikke med samlingsreferansen. (Unntak fra HRESULT: 0x80131040) Source of exception: megui stacktrace: ved MeGUI.UpdateWindow.SaveNewFile(iUpgradeable file, Stream data)
ved MeGUI.UpdateWindow.InstallFiles(SortedDictionary`2 groups)
ved MeGUI.UpdateWindow.BeginUpdate()
ved System.Threading.ThreadHelper.ThreadStart_Context(Object state)
ved System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
ved System.Threading.ThreadHelper.ThreadStart()
---------------------------
OK
---------------------------
Kurtnoise
22nd November 2007, 09:11
wrong thread + having an error message without a short description of what you do is useless.
Kurtnoise
22nd November 2007, 09:22
Some news...
For the moment, that works fine...mainly tested with the old and the new MediaInfo and the old and fresh MediaInfoWrapper compile.
Anyway, it's very strange this behaviour...maybe it's that (http://www.tmssoftware.com/atbdev6.htm) (old/new form) ? or a bug with the Framework...dunno frankly and I don't want to install the 3.5 right now to check this out.
Finally, I jumped to the Orcas testing (seems very good btw) and my assumption about Framework issue seems to be correct.
Now, having the Framework 3.5 installed and running on Vista, openFileDialog issues seem to be gone (w/ MediaInfo library and his wrapper 0.7.5.5). :) but I need to test this more extensively.
Extra Notes:
With the openfiledialog command line tweak, MeGUI hangs with the last framework. Dunno why...
One of the good trick with Orcas (MSVC9) is that we can specify the target Framework (either 2.0, or 3.0 or 3.5) during the compilation. Keep in mind also that 3.0 or higher is *not* compatible with win2k or lower.
Now, I got the beautiful new Forms as described here (http://www.tmssoftware.com/atbdev6.htm)...That's great. :p
MSVC 2008 Express Edition is free...so it's worth to try it.
berrinam
22nd November 2007, 13:10
MSVC 2008 Express Edition is free...so it's worth to try it.Does it come with C# 3.0 or is that not out yet? I'm very much looking forward to the type inference in C# -- it'll help a lot with the generics code in MeGUI.
Eamon21
22nd November 2007, 14:16
I've just about finished the first version of my transcode tool, it works for what I need to do, just adding extra error checking etc. for when someone inevitably tries to do something I hadn't intended with it.
There are a few things I have come across in doing it that I would like to bring up however as suggestions for improvement.
Firstly, the video encoding job always takes as input an *.avs file even if that file is only a temporary file. the AviSynthScriptEnvironment is just as capable of handling a script passed as a string rather than by a file and to me it would make more sense this way for scripts of a transient nature. I currently create a temporary script based on a template for transcoding and then delete the file afterwards.
Secondly, with the avssettings, while they contain bools to indicate if resizing, colourcorrection etc are required, there is not enough info to apply them. Take for example resize, there is a bool to indicate it should be done and also the filter that should be used but you can't specify the size.
I understand that the AVSprofile was probably only ever intended to be used from the AVISynth Script Creator tool which does provide these extra settings, but in my opinion they should be in the profile, and possibly overridden if needed.
Eamon
Kurtnoise
22nd November 2007, 14:36
@Eamon: I'm looking forward to test it...:) Keep up the good work.
Does it come with C# 3.0 or is that not out yet? I'm very much looking forward to the type inference in C# -- it'll help a lot with the generics code in MeGUI.
Framework 3.5 is out, yes. If you download the complete iso DVD, I'm pretty sure that it's included with it. Otherwise, you have to install it before MSVC9...
Sharktooth
22nd November 2007, 14:41
got the dvd iso and the framework. thanks.
if the new .net framework ensures a better megui "compatibility" with Vista, we should move to it since the only big problems we have are with Vista...
Eamon21
22nd November 2007, 15:54
Don't forget though that the minimum requirements for .NET 3.0 is Windows XP SP2, moving to .NET 3 would kill off support for win2k and earlier. Might be worth it though as according to http://marketshare.hitslink.com/report.aspx?qprid=2 there are only a small precentage running anything windows based older than XP, and more vista users than win2k and earlier anyway.
Eamon
Doom9
22nd November 2007, 15:57
The Express Tools ISO you can download includes everything.. the 4 different express editions and of course the framework 3.5 - which in turn brings C# 3.0. I'm about to upgrade my work machines..
Eamon21
22nd November 2007, 16:18
patch to fix bug 1836041 submitted.
...and one for 1832675
Eamon
Kurtnoise
22nd November 2007, 17:55
both applied...thanks.
berrinam
22nd November 2007, 23:59
I've just about finished the first version of my transcode tool, it works for what I need to doGreat! I look forward to seeing it.
just adding extra error checking etc. for when someone inevitably tries to do something I hadn't intended with it.
There are a few things I have come across in doing it that I would like to bring up however as suggestions for improvement.
Firstly, the video encoding job always takes as input an *.avs file even if that file is only a temporary file. the AviSynthScriptEnvironment is just as capable of handling a script passed as a string rather than by a file and to me it would make more sense this way for scripts of a transient nature. I currently create a temporary script based on a template for transcoding and then delete the file afterwards.The problem is that the commandline encoders take an input filename, not an input script, so there is no way to pass in a temporary script to most of them. Most of the command line encoders don't have direct access to the AviSynth environment in the way megui does, but they often just access it via the AVIFile interface, which doesn't allow file-less scripts. So I'm afraid your current solution is the best.
Secondly, with the avssettings, while they contain bools to indicate if resizing, colourcorrection etc are required, there is not enough info to apply them. Take for example resize, there is a bool to indicate it should be done and also the filter that should be used but you can't specify the size.It really depends on where the settings are used. For the avs creator, the settings are appropriate. However, the OneClick encoder adds a setting for the resolution. I'm not sure of the neatest way to handle all of this, but different tools certainly need different settings. I'm not yet convinced that the output resolution should be a setting in the avssettings.
berrinam
23rd November 2007, 00:14
Wheee, C# 3.0 is fun.
This 2.0 code:
info.VideoOutputChanged += new StringChanged(delegate(object _, string val)
{
videoOutput.Filename = val;
});
turns into
info.VideoOutputChanged += (_, val) => videoOutput.Filename = val;
See what else there is (http://en.wikipedia.org/wiki/C_Sharp#C.23_3.0_new_language_features). Some of the highlights are type inference ('var'), automatic properties, and extension methods.
Eamon21
23rd November 2007, 11:51
The problem is that the commandline encoders take an input filename, not an input script, so there is no way to pass in a temporary script to most of them. Most of the command line encoders don't have direct access to the AviSynth environment in the way megui does, but they often just access it via the AVIFile interface, which doesn't allow file-less scripts. So I'm afraid your current solution is the best.
OK, makes sense in that respect. I guess I was getting that idea from the AviSynthAudioEncoder class which creates an AVS script to encode the audio, but never actually has to write the script to file.
It really depends on where the settings are used. For the avs creator, the settings are appropriate. However, the OneClick encoder adds a setting for the resolution. I'm not sure of the neatest way to handle all of this, but different tools certainly need different settings. I'm not yet convinced that the output resolution should be a setting in the avssettings.For me it depends on where the settings are used, if they will actually go into the AVS script (resize resolution will) then they belong in the AVSSettings. Ideally i am looking for a way to define an AVS profile such that all i need to pass is an input file and create a complete script. I am doing that at the moment for the transcode, however I have simply commented out the resize, crop and de-interlace lines. I know it is technially possible to achieve all of this in the actual template by doing something like:
<input>
LanczosResize(640,480)
but I think it would be nicer and easier as part of the actual profile.
Eamon
Eamon21
23rd November 2007, 12:00
Wheee, C# 3.0 is fun.
This 2.0 code:
info.VideoOutputChanged += new StringChanged(delegate(object _, string val)
{
videoOutput.Filename = val;
});
turns into
info.VideoOutputChanged += (_, val) => videoOutput.Filename = val;
See what else there is (http://en.wikipedia.org/wiki/C_Sharp#C.23_3.0_new_language_features). Some of the highlights are type inference ('var'), automatic properties, and extension methods.
I'm usually one for moving to newer version of languages and the changes that 1.1 -> 2.0 brought were awesome but there is a danger that "new" features will be used and abused just because they are there.
Automatic properties are nice enough, I'm partial to the code-snip "prop" in the current version (ctrl+k, ctrl-x, prop).
The one I worry the most about in 3.0 is the anonymous types keyword "var". Yes it is useful and indeed needed to implement a few new features of 3.0, but it brings with it the risk of abuse. If you know the type, specify the type. Anonymous types can potentially make code much less readable.
Also, many of the situations that people might be inclined to use "var"s just "because they can", would be better solved using currently available methods such as generics, interfaces or base and abstract classes.
I brought this up as it brings me to a something that has sort of bothered me a bit in the MeGUI code and that is the (over)use of generics. It seems some parts of the code are so heavily loaded with generics that it gets hard to read and follow, especially first time into the code. Begrudgingly I would say this is fair enough if it was necessary but at times it appears they have been used as a catch-all "just in case we ever want to use something else here". Without examples, I'm sure there are several places in the code where a generic is used that is only ever of the one type.
I'm more for the philosophy of coding for what is required now, not for what may or may not be required later. In my experience later may actually never come and if it does, often there are enough changes that the code is completely re-factored anyway. </rant>
I guess it is probably a consequence of OSS, no one ever wants to do the boring bits of cleaning up the code and re-factoring. I've just found it a little difficult at times navigating through the code to find out how things get done.
Eamon
berrinam
23rd November 2007, 13:58
OK, makes sense in that respect. I guess I was getting that idea from the AviSynthAudioEncoder class which creates an AVS script to encode the audio, but never actually has to write the script to file.What you suggest could very well be done for audio. Just not for video. :)
For me it depends on where the settings are used, if they will actually go into the AVS script (resize resolution will) then they belong in the AVSSettings. Ideally i am looking for a way to define an AVS profile such that all i need to pass is an input file and create a complete script. I am doing that at the moment for the transcode, however I have simply commented out the resize, crop and de-interlace lines. I know it is technially possible to achieve all of this in the actual template by doing something like:
<input>
LanczosResize(640,480)
but I think it would be nicer and easier as part of the actual profile.I'd like to know what other people think. I don't have very strong opinions on this.
Automatic properties are nice enough, I'm partial to the code-snip "prop" in the current version (ctrl+k, ctrl-x, prop).Automatic properties are better than this code snippet since they don't leave the private variable lying around. That's only a small difference, though...
The one I worry the most about in 3.0 is the anonymous types keyword "var". Yes it is useful and indeed needed to implement a few new features of 3.0, but it brings with it the risk of abuse. If you know the type, specify the type. Anonymous types can potentially make code much less readable.Things like this are just stupid:
List<Named<GenericProfile<x264Settings>>> profs = new List<Named<GenericProfile<x264Settings>>>();
While this exact line probably doesn't appear in MeGUI, new()ing like that is a common pattern, and no readability is lost by typing the variable with 'var'. Granted, though, it can be inappropriate in some places.
Also, many of the situations that people might be inclined to use "var"s just "because they can", would be better solved using currently available methods such as generics, interfaces or base and abstract classes.
I brought this up as it brings me to a something that has sort of bothered me a bit in the MeGUI code and that is the (over)use of generics. It seems some parts of the code are so heavily loaded with generics that it gets hard to read and follow, especially first time into the code. Begrudgingly I would say this is fair enough if it was necessary but at times it appears they have been used as a catch-all "just in case we ever want to use something else here". Without examples, I'm sure there are several places in the code where a generic is used that is only ever of the one type.I can only assume you refer to the terrible mess of generics with ISettingsProvider, SettingsProviderImpl2, ProfileHandler, and generally associated with profiles. I agree this is a mess, and in fact I have a local working copy of MeGUI in which that code is all deleted, and we have great improvements. For example,
ISettingsProvider<AviSynthSettings, MeGUI.core.details.video.Empty, int, int> avsSettingsProvider = new SettingsProviderImpl2<
MeGUI.core.gui.AviSynthProfileConfigPanel, MeGUI.core.details.video.Empty, AviSynthSettings, AviSynthSettings, int, int>("AviSynth", 0, 0);
ProfilesControlHandler<AviSynthSettings, Empty> avsProfileHandler;
private void initAvsHandler()
{
// Init AVS handlers
avsProfileHandler = new ProfilesControlHandler<AviSynthSettings, Empty>(
"AviSynth", mainForm, profileControl1, avsSettingsProvider.EditSettings, Empty.Getter,
new SettingsGetter<AviSynthSettings>(avsSettingsProvider.GetCurrentSettings), new SettingsSetter<AviSynthSettings>(avsSettingsProvider.LoadSettings));
SingleConfigurerHandler<AviSynthSettings, Empty, int, int> configurerHandler = new SingleConfigurerHandler<AviSynthSettings, Empty, int, int>(avsProfileHandler, avsSettingsProvider);
}
has become
private void initAvsHandler()
{
avsProfile.Manager = mainForm.Profiles;
}
Other than that collective mess, though, I think the use of Generics in MeGUI is appropriate.
I'm more for the philosophy of coding for what is required now, not for what may or may not be required later. In my experience later may actually never come and if it does, often there are enough changes that the code is completely re-factored anyway. </rant>Well, the mess we had evolved gradually as video settings had more and more requirements. The refactor is coming very soon. :)
Eamon21
23rd November 2007, 15:29
Automatic properties are better than this code snippet since they don't leave the private variable lying around. That's only a small difference, though...
I guess it is more a case of familiarity but
public string mySetting{ get; set; }
is very similar to an abstract declaration of a property or interface definition.
abstract string mySetting{ get; set; }
string mySetting{ get; set; }
The compiler will pick up errors, but eyeballing the code I would currently think of that as an abstract property.
I don't have a problem with automatic properties, I like the idea, just will have to get used to seeing/using them once I move to 3.0, currently do all my work in 2.0 and doesn't look like that'll change anytime soon for the most part.
Things like this are just stupid:
List<Named<GenericProfile<x264Settings>>> profs = new List<Named<GenericProfile<x264Settings>>>();
While this exact line probably doesn't appear in MeGUI, new()ing like that is a common pattern, and no readability is lost by typing the variable with 'var'. Granted, though, it can be inappropriate in some places.
I assume you mean writing that as
var profs = new List<Named<GenericProfile<x264Settings>>>();Granted it is probably actually a bit nicer to look at, but that's more to do with the fact that the first way was just horrible. var will have it's place, I just dread it being thrown around and used everywhere. God forbid people start using it instead of thinking. I also hope people don't start using it with hungarian notation e.g. var strMyVar;
My concerns about var are general and in no way directed at devs of MeGUI, I'm sure everyone here has enough sense to avoid the pitfalls.
I can only assume you refer to the terrible mess of generics with ISettingsProvider, SettingsProviderImpl2, ProfileHandler, and generally associated with profiles. I agree this is a mess, and in fact I have a local working copy of MeGUI in which that code is all deleted, and we have great improvements. For example,
ISettingsProvider<AviSynthSettings, MeGUI.core.details.video.Empty, int, int> avsSettingsProvider = new SettingsProviderImpl2<
MeGUI.core.gui.AviSynthProfileConfigPanel, MeGUI.core.details.video.Empty, AviSynthSettings, AviSynthSettings, int, int>("AviSynth", 0, 0);
ProfilesControlHandler<AviSynthSettings, Empty> avsProfileHandler;
private void initAvsHandler()
{
// Init AVS handlers
avsProfileHandler = new ProfilesControlHandler<AviSynthSettings, Empty>(
"AviSynth", mainForm, profileControl1, avsSettingsProvider.EditSettings, Empty.Getter,
new SettingsGetter<AviSynthSettings>(avsSettingsProvider.GetCurrentSettings), new SettingsSetter<AviSynthSettings>(avsSettingsProvider.LoadSettings));
SingleConfigurerHandler<AviSynthSettings, Empty, int, int> configurerHandler = new SingleConfigurerHandler<AviSynthSettings, Empty, int, int>(avsProfileHandler, avsSettingsProvider);
}
has become
private void initAvsHandler()
{
avsProfile.Manager = mainForm.Profiles;
}
Other than that collective mess, though, I think the use of Generics in MeGUI is appropriate.
Well, the mess we had evolved gradually as video settings had more and more requirements. The refactor is coming very soon. :) :) You pretty much hit exactly the code I had in mind. Profiles can be powerful, but they were a headache to get my head around initially, very happy to hear about what you've done to improve this and eagerly look forward to seeing the results. (p.s. please tell me that the interface Gettable<TSettings> has been put permanently to sleep :) or at the very least been named IGettable)
Eamon
Gilgamesh83
24th November 2007, 01:43
Hiya!
I am normal user of megui and would like to put my thoughts on the new log in megui... i think the more detailed info of the old log was better specially after an x264 encode when I can see how the quantizers are distributed.
love megui and all the other work you guys do :)
berrinam
24th November 2007, 01:53
Any information missing from the new log is a bug. Please report the specifics on the SourceForge bug tracker. A link is in my signature.
berrinam
24th November 2007, 01:56
p.s. please tell me that the interface Gettable<TSettings> has been put permanently to sleep :) or at the very least been named IGettable
Why? It currently has been replaced by Editable<TSettings>, which is perhaps a more appropriate name since the settings can be both got and set, but otherwise, what's wrong with the interface?
berrinam
24th November 2007, 05:47
Would there be any objection if we switched MeGUI to C# 3.0? I think we can get all of the C# 3.0 features except extension methods while still producing .NET 2.0 binaries, so the users should see no difference in requirements.
Alternatively, if you think it worth it, we could switch to .NET 3.0 or 3.5, although that is a bigger change and perhaps requires more thought.
Kurtnoise
24th November 2007, 07:14
I am normal user of megui and would like to put my thoughts on the new log in megui... i think the more detailed info of the old log was better specially after an x264 encode when I can see how the quantizers are distributed.
AFAIK, the new MeGUI x264 profiles use --no-pnsr & --no-ssim switches. That's why we haven't anymore some details. So, it's clearly not a bug.
Sharktooth, could you confirm that ?
Kurtnoise
24th November 2007, 07:21
Would there be any objection if we switched MeGUI to C# 3.0? I think we can get all of the C# 3.0 features except extension methods while still producing .NET 2.0 binaries, so the users should see no difference in requirements.
It's ok for me, although that it'll require some time to switch all the code...
Alternatively, if you think it worth it, we could switch to .NET 3.0 or 3.5, although that is a bigger change and perhaps requires more thought.
I'd say that the .NET 3.5 is highly recommended for Vista users (to avoid issues mentioned above).
berrinam
24th November 2007, 07:53
My profiles patch: http://megui.org/berrinam_patches/profiles_refactor/profiles_refactor_1.patch.
The main change is new profile handling, including new internals and externals of profilemanager, and two new profile controls to replace ProfileControl, requiring much less initialisation code. They are currently named SimpleProfileControl and ConfigableProfileControl, with the latter deriving from the former, simply adding a config button. The names were chosen just to not collide with the previously existing ProfileControl, but since that is now gone, they are free to be changed. Also, there are at present no uses of SimpleProfileControl, and I don't know if we will want it in the future, so that may just be removed as well.
The other change is the removal of the zones configuration from video config panels. I did this because it required silly code in the constructor, and it doesn't really belong there, since zones are a per-file setting, not a per-profile setting. I plan to add them back to the VideoEncodingComponent directly, but haven't yet done so.
Profile serialization works pretty much the same as before, but is unfortunately slightly incompatible. Obviously, this incompatibility must be fixed so that people can load their old profiles.
Also, profile importing currently doesn't work either, because it relied on the old serialization engine. I obviously also plan to fix this.
Thoughts, anyone?
Is the introduction of the *scratchpad* profiles ok? This is the major change in user functionality from before.
berrinam
24th November 2007, 07:53
It's ok for me, although that it'll require some time to switch all the code... We can do this gradually, though.
Gilgamesh83
24th November 2007, 11:03
I'm sorry if people got mixed up with my earlier post. Not a bug it's just that I preferred the old text-based log with advanced statistics showing after a x264 and xvid encode.
Is there no way one can choose between the two.
Eamon21
24th November 2007, 12:13
Why? It currently has been replaced by Editable<TSettings>, which is perhaps a more appropriate name since the settings can be both got and set, but otherwise, what's wrong with the interface?I never liked it because of how it is used. It feels superfluous because it is only ever implemented on settings config usercontrols and as such to me it would make more sense to create a base generic config panel usercontrol that contained the settings property as defined in Gettable (Editable). A possible problem here is Visual Studio's support for generic usercontrols for design time, but this can be overcome by wrapping the control. would also mean that the contructor for Configuration window would change likepublic ConfigurationWindow(ProfileManager p, Control sPanel, Gettable<TProfileSettings> s, string initialProfile, string title)
to
public ConfigurationWindow(ProfileManager p, ConfigControl<TProfileSettings> sPanel, string initialProfile, string title)because currently sPanel and s are always the same object.
andpublic class EditorProvider<TPanel, TInfo, TSettings, TProfileSettings>
where TProfileSettings : GenericSettings
where TSettings : TProfileSettings, new()
where TPanel : System.Windows.Forms.Control, Gettable<TProfileSettings>
becomes
public class EditorProvider<TPanel, TInfo, TSettings, TProfileSettings>
where TProfileSettings : GenericSettings
where TSettings : TProfileSettings, new()
where TPanel : ConfigControl<TProfileSettings>
and for config panels like AudioConfigurationPanelpublic partial class AudioConfigurationPanel : UserControl, MeGUI.core.plugins.interfaces.Gettable<AudioCodecSettings>
to
public partial class AudioConfigurationPanel : ConfigControl<AudioCodecSettings>
If you don't agree, can we at lest stick with the convention of naming all interfaces with a capital "I"? i.e. IEditable.
Would there be any objection if we switched MeGUI to C# 3.0? I think we can get all of the C# 3.0 features except extension methods while still producing .NET 2.0 binaries, so the users should see no difference in requirements.
Alternatively, if you think it worth it, we could switch to .NET 3.0 or 3.5, although that is a bigger change and perhaps requires more thought.I'm reluctant for the moment simply because I have VS 2005 Pro installed and I have heard reports that VS2008 express does not play nice when installed side by side. Give it maybe a couple of weeks to see how things settle first?
Eamon
Eamon21
24th November 2007, 12:53
My profiles patch: http://megui.org/berrinam_patches/profiles_refactor/profiles_refactor_1.patch.
The main change is new profile handling, including new internals and externals of profilemanager, and two new profile controls to replace ProfileControl, requiring much less initialisation code.
...snip...
Thoughts, anyone?
Is the introduction of the *scratchpad* profiles ok? This is the major change in user functionality from before.I think some of your changes here make some of my ramblings above irrelevant. I like what I've seen so far. Any idea when this goes into the trunk? It will mean changes to the transcode tool so I'd rather make the changes now before submitting it if this patch is merging shortly.
The more I look through this the happier I get, there are so many little gripes I've silently had that have been addressed with this...Christmans has come early :)
Love your work berrinam. :thanks:
Eamon
berrinam
24th November 2007, 12:58
@Eamon: I think the patch I posted just a few posts above will satisfy you. Here's an extract from the new ProfileConfigurationWindow class:
public partial class ProfileConfigurationWindow<TSettings, TPanel> : Form
where TSettings : GenericSettings, new()
where TPanel : Control, Editable<TSettings>
{
...
public ProfileConfigurationWindow(TPanel t, string title)
{
The parameter is only passed once, but it has the dual generic constraints of Control and Editable<TSettings>.
When I wrote the previous code you quoted, I was aware that it always referred to the same object (and that's expected in the design) but there was no way to express the two inheritance constraints without generics (which were ruled out in that situation for some reason I can't remember). Your suggestion of making ConfigControl<TSettings> an abstract base class deriving from UserControl and defining the abstract property, Settings, is nice but unfortunately doesn't work, as the Visual Studio GUI designer won't allow a user control with an abstract base class to be designed.
As to the prefixing of interfaces with 'I', I'm not sure of the merits of this convention. The two things I see in it are that it allows both List and IList -- ie both an abstract and concrete specification of a class -- and that it makes it easy to recognise interfaces from other things. For me, the former point has merit but the latter does not, as Visual Studio's IntelliSense tells you that all already. I'm not too fussed, though.
berrinam
24th November 2007, 13:23
It seems to me that we've been getting more autoupdate bug reports since I added the update_cache. I personally find the update cache useful since I have very many copies of megui, so the update cache saves me downloads when autoupdating. However, most people are undoubtedly not in my situation, and will therefore probably not benefit the same way.
The update cache also adds severals potential problems, if stale downloads aren't replaced with new ones, and also perhaps if Vista is blocking MeGUI from accessing other folders it doesn't own (although I'm just guessing here).
Is the update cache useful, or should we remove it and hope for fewer autoupdate bugs as a result?
berrinam
24th November 2007, 14:08
I think some of your changes here make some of my ramblings above irrelevant. I like what I've seen so far. Any idea when this goes into the trunk? It will mean changes to the transcode tool so I'd rather make the changes now before submitting it if this patch is merging shortly.I'm not sure what you're saying. Would you prefer committing your patch before or after I commit mine?
Anyway, I would expect to commit mine before yours, simply because I'm a developer with SVN write access. :D If necessary, I can help with merging, though.
In any case, the best thing to do if your patch is (nearly) finished is to post it here so we can try it out and give you feedback.
The more I look through this the happier I get, there are so many little gripes I've silently had that have been addressed with this...Christmans has come early :)
Love your work berrinam. :thanks:Nice to hear. And in all honesty, please continue to complain about the code, so it continues to become better. :D
berrinam
Eamon21
24th November 2007, 14:47
I'm not sure what you're saying. Would you prefer committing your patch before or after I commit mine?
Anyway, I would expect to commit mine before yours, simply because I'm a developer with SVN write access. :D If necessary, I can help with merging, though.
In any case, the best thing to do if your patch is (nearly) finished is to post it here so we can try it out and give you feedback.
Nice to hear. And in all honesty, please continue to complain about the code, so it continues to become better. :D
berrinamI've applied your patch locally and working through all the changes i need to support the new profilemanger.
One problem I've come across which you might be able to help with is that I can't really see a way to get the settings from a profile if you only know the name, I'll explain.
I have a new profile type to support my transcode tool. The settings of which contain 3 other profiles, an AVS, an Audio and a Video profile. In my TranscodeSettings class I only keep the name (FQName) but it seems like I can't directly access the settings associated with these profiles without a ConfigableProfilesControl associated (unless I also keep the profile type and name and use GetProfile(string type, string name)).
What I'd like is another method in the ProfileManager like GetProfile(string type, string name), but without having to specify the type as I don't know this (e.g. could be x264Settings, could be xvidSettings). I could try to parse the FQName, but really that belongs to the ProfileManager so should be done there. Basically looking for another method:
public Profile GetProfile(string FQName)
found the a private function in ProfileManager that does what I need, I've made a public overload of GetProfile to support this, are you happy to add this to the ProfileManager?
public Profile GetProfile(string FQname)
{
return byFormattedName(FQname);
}
Eamon
Sharktooth
24th November 2007, 15:11
@berrinam: update_cache is indeed causing problems to some users. i thought to make it optional but as i previously said, i havent time to look at it for some time.
Eamon21
24th November 2007, 17:20
My profiles patch: http://megui.org/berrinam_patches/profiles_refactor/profiles_refactor_1.patch.
The change on lines 4839 & 4840 of your patch break the nero configuration panel (select the nero scratchpad and try to config and save a new one):
- protected override AudioCodecSettings CodecSettings
+ protected NeroAACSettings CodecSettings
because CodecSettings is accessed from the parent class AudioConfigurationPanel in the Settings property setter which will use it's own virtual method (which does nothing) because it is no longer overridden.
The CodecSettings property in AudioConfigurationPanel ideally would be marked as abstract but that is impossible because the VS IDE will not let you design abstract classes obviously, I suggest modifing the implementation so a problem like this is easier to spot in future like thisprotected virtual AudioCodecSettings CodecSettings
{
//going to throw a NotImplementedException because this should always be overridden as this
//base class contains no codec specific UI.
//Ideally this would be an abstract property but limitations of the Visual Studio IDE
//prevent you from designing abstract controls. Throwing this exception here should mean
//that the problem is picked up imediately.
//Changed to a Debug.Assert() for the moment, still deciding which is best.
get
{
//throw new NotImplementedException("This virtual method should have been overridden");
System.Diagnostics.Debug.Assert(false);
return new AudioCodecSettings(null);
}
set
{
//throw new NotImplementedException("This virtual method should have been overridden");
System.Diagnostics.Debug.Assert(false);
}
}
Haven't decide if it is better to throw the exception or to Assert, but think it should at least be one or the other.
Eamon
berrinam
25th November 2007, 00:20
Does it matter which you throw? They should both be caught pretty much instantly, and fixed before the user sees them. I would personally stick with the assert, though, because asserts always mean programming errors.
Beware, though, that throwing exceptions in properties can be dangerous when VS designer tries to modify them. It may be worth adding the [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] attributes to CodecSettings to avoid this.
Eamon21
25th November 2007, 01:08
Does it matter which you throw? They should both be caught pretty much instantly, and fixed before the user sees them. I would personally stick with the assert, though, because asserts always mean programming errors.
Beware, though, that throwing exceptions in properties can be dangerous when VS designer tries to modify them. It may be worth adding the [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] attributes to CodecSettings to avoid this.Generally , no it shouldn't matter whether an exception or assert is thrown because is should be caught during development time, but the exception gives a clearer idea what is wrong using the description while assert is probably more user friendly, allowing you to ignore and continue and see the resulting problem. In the end, I think that a comment here saying that this is expected to be overridden and the reason with an Assert is probably the best.
As it is, I am pretty much ready to submit my transcode tool patch, but it is now against your patch so I will wait until your patch is applied to the svn then build my new patch against the new revision rather than submitting a patch that contains what is in you patch plus changes.
too much wine and time for bed.....
Eamon
berrinam
25th November 2007, 05:37
If you also have a patch against svn, that would be good to see now, just for comments and not for actually committing.
Maccara
25th November 2007, 06:55
I'm reluctant for the moment simply because I have VS 2005 Pro installed and I have heard reports that VS2008 express does not play nice when installed side by side. Give it maybe a couple of weeks to see how things settle first?
Not sure of the Express editions, but gathering from the MSDN forums with Pro 2008 most of the problems seem to stem 1. having difficulty after having the CTP/Beta versions installed 2. Uninstalling 2005 (probably incorrectly - exactly right components in exactly right order have to be uninstalled) before installing 2008 (Full VS uninstalls never seem to go right :)).
I bit the bullet myself and installed VS 2008 Pro side-by-side with 2005 (still have some C++ code which needs to be updated to compile cleanly on 2008, so I still need 2005 for that - I actually have 2003 installed too as one customer project requires that) and everything seems ok so far (extensive testing is starting today - new windows SDK had changed some settings on 2005 but those were easily fixed, haven't checked 2003 yet). So for me, having 3 versions side-by-side seems to work just fine so far.
But I do agree with you - it might be better to wait a couple of weeks to sort out all the problem reports that are coming in. (although some of the C# 3.0 new features are tempting, and I would love there was a real project using it instead of my own testing only ;))
berrinam
25th November 2007, 06:56
More informative logtree names for jobs:
Index: core/gui/JobWorkerWindow.cs
===================================================================
--- core/gui/JobWorkerWindow.cs (revision 406)
+++ core/gui/JobWorkerWindow.cs (working copy)
@@ -497,8 +497,7 @@
{
try
{
- log = mainForm.Log.Info("Log for " + job.Name);
- log.LogValue("Job type", job.Job.EncodingMode);
+ log = mainForm.Log.Info(string.Format("Log for {0} ({1}, {2} -> {3})", job.Name, job.Job.EncodingMode, job.InputFileName, job.OutputFileName));
log.LogEvent("Started handling job");
log.Expand();
berrinam
25th November 2007, 07:22
Expand/collapse all for log:
Index: core/gui/LogTree.cs
===================================================================
--- core/gui/LogTree.cs (revision 406)
+++ core/gui/LogTree.cs (working copy)
@@ -132,5 +132,39 @@
}
}
+
+ private void expandOrCollapseAll(LogItem i, bool expand)
+ {
+ if (expand)
+ i.Expand();
+ else
+ i.Collapse();
+
+ foreach (LogItem i2 in i.SubEvents)
+ expandOrCollapseAll(i2, expand);
+ }
+
+ private void expandAll(LogItem i) { expandOrCollapseAll(i, true); }
+ private void collapseAll(LogItem i) { expandOrCollapseAll(i, false); }
+
+ private void expandLog_Click(object sender, EventArgs e)
+ {
+ expandAll(Log);
+ }
+
+ private void expandBranch_Click(object sender, EventArgs e)
+ {
+ expandAll(selectedLogItem);
+ }
+
+ private void collapseLog_Click(object sender, EventArgs e)
+ {
+ collapseAll(Log);
+ }
+
+ private void collapseBranch_Click(object sender, EventArgs e)
+ {
+ collapseAll(selectedLogItem);
+ }
}
}
Index: core/gui/LogTree.Designer.cs
===================================================================
--- core/gui/LogTree.Designer.cs (revision 406)
+++ core/gui/LogTree.Designer.cs (working copy)
@@ -38,6 +38,12 @@
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveBranch = new System.Windows.Forms.ToolStripMenuItem();
this.saveLog = new System.Windows.Forms.ToolStripMenuItem();
+ this.expandAllSubitemsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.expandLog = new System.Windows.Forms.ToolStripMenuItem();
+ this.expandBranch = new System.Windows.Forms.ToolStripMenuItem();
+ this.collapseAllSubitemsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.collapseLog = new System.Windows.Forms.ToolStripMenuItem();
+ this.collapseBranch = new System.Windows.Forms.ToolStripMenuItem();
this.saveDialog = new System.Windows.Forms.SaveFileDialog();
this.contextMenu.SuspendLayout();
this.SuspendLayout();
@@ -55,9 +61,11 @@
//
this.contextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.editTextToolStripMenuItem,
- this.saveToolStripMenuItem});
+ this.saveToolStripMenuItem,
+ this.expandAllSubitemsToolStripMenuItem,
+ this.collapseAllSubitemsToolStripMenuItem});
this.contextMenu.Name = "contextMenuStrip1";
- this.contextMenu.Size = new System.Drawing.Size(153, 70);
+ this.contextMenu.Size = new System.Drawing.Size(173, 114);
//
// editTextToolStripMenuItem
//
@@ -66,27 +74,27 @@
this.editBranch,
this.editLog});
this.editTextToolStripMenuItem.Name = "editTextToolStripMenuItem";
- this.editTextToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.editTextToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
this.editTextToolStripMenuItem.Text = "Edit text";
//
// editIndividualNode
//
this.editIndividualNode.Name = "editIndividualNode";
- this.editIndividualNode.Size = new System.Drawing.Size(152, 22);
+ this.editIndividualNode.Size = new System.Drawing.Size(107, 22);
this.editIndividualNode.Text = "node";
this.editIndividualNode.Click += new System.EventHandler(this.ofIndividualNodeToolStripMenuItem_Click);
//
// editBranch
//
this.editBranch.Name = "editBranch";
- this.editBranch.Size = new System.Drawing.Size(152, 22);
+ this.editBranch.Size = new System.Drawing.Size(107, 22);
this.editBranch.Text = "branch";
this.editBranch.Click += new System.EventHandler(this.ofBranchToolStripMenuItem_Click);
//
// editLog
//
this.editLog.Name = "editLog";
- this.editLog.Size = new System.Drawing.Size(152, 22);
+ this.editLog.Size = new System.Drawing.Size(107, 22);
this.editLog.Text = "log";
this.editLog.Click += new System.EventHandler(this.editLog_Click);
//
@@ -96,7 +104,7 @@
this.saveBranch,
this.saveLog});
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
- this.saveToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+ this.saveToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
this.saveToolStripMenuItem.Text = "Save";
//
// saveBranch
@@ -113,6 +121,52 @@
this.saveLog.Text = "log";
this.saveLog.Click += new System.EventHandler(this.saveLog_Click);
//
+ // expandAllSubitemsToolStripMenuItem
+ //
+ this.expandAllSubitemsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.expandLog,
+ this.expandBranch});
+ this.expandAllSubitemsToolStripMenuItem.Name = "expandAllSubitemsToolStripMenuItem";
+ this.expandAllSubitemsToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
+ this.expandAllSubitemsToolStripMenuItem.Text = "Expand all subitems";
+ //
+ // expandLog
+ //
+ this.expandLog.Name = "expandLog";
+ this.expandLog.Size = new System.Drawing.Size(120, 22);
+ this.expandLog.Text = "of log";
+ this.expandLog.Click += new System.EventHandler(this.expandLog_Click);
+ //
+ // expandBranch
+ //
+ this.expandBranch.Name = "expandBranch";
+ this.expandBranch.Size = new System.Drawing.Size(120, 22);
+ this.expandBranch.Text = "of branch";
+ this.expandBranch.Click += new System.EventHandler(this.expandBranch_Click);
+ //
+ // collapseAllSubitemsToolStripMenuItem
+ //
+ this.collapseAllSubitemsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.collapseLog,
+ this.collapseBranch});
+ this.collapseAllSubitemsToolStripMenuItem.Name = "collapseAllSubitemsToolStripMenuItem";
+ this.collapseAllSubitemsToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
+ this.collapseAllSubitemsToolStripMenuItem.Text = "Collapse all subitems";
+ //
+ // collapseLog
+ //
+ this.collapseLog.Name = "collapseLog";
+ this.collapseLog.Size = new System.Drawing.Size(152, 22);
+ this.collapseLog.Text = "of log";
+ this.collapseLog.Click += new System.EventHandler(this.collapseLog_Click);
+ //
+ // collapseBranch
+ //
+ this.collapseBranch.Name = "collapseBranch";
+ this.collapseBranch.Size = new System.Drawing.Size(152, 22);
+ this.collapseBranch.Text = "of branch";
+ this.collapseBranch.Click += new System.EventHandler(this.collapseBranch_Click);
+ //
// saveDialog
//
this.saveDialog.Filter = "Log files (*.log)|*.log|All files (*.*)|*.*";
@@ -143,5 +197,11 @@
private System.Windows.Forms.ToolStripMenuItem saveBranch;
private System.Windows.Forms.ToolStripMenuItem saveLog;
private System.Windows.Forms.ToolStripMenuItem editLog;
+ private System.Windows.Forms.ToolStripMenuItem expandAllSubitemsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem expandLog;
+ private System.Windows.Forms.ToolStripMenuItem expandBranch;
+ private System.Windows.Forms.ToolStripMenuItem collapseAllSubitemsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem collapseLog;
+ private System.Windows.Forms.ToolStripMenuItem collapseBranch;
}
}
berrinam
25th November 2007, 07:33
Silently create worker if none exists (#1837578 (http://sourceforge.net/tracker/index.php?func=detail&aid=1837578&group_id=156112&atid=798479)):
Index: core/details/JobControl.cs
===================================================================
--- core/details/JobControl.cs (revision 406)
+++ core/details/JobControl.cs (working copy)
@@ -44,12 +44,8 @@
public void StartAll(bool restartStopping)
{
if (workers.Values.Count == 0)
- {
- DialogResult r = MessageBox.Show("Can't start queue because there are no workers. You can create one from the Workers menu. Do you want to create one now?",
- "Create new worker?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
- if (r == DialogResult.OK)
- RequestNewWorker();
- }
+ NewWorker(freeWorkerName(), false);
+
foreach (JobWorker w in workers.Values)
if (!w.IsEncoding) w.StartEncoding(false);
else if (restartStopping && w.Status == JobWorkerStatus.Stopping) w.SetRunning();
Eamon21
25th November 2007, 11:19
If you also have a patch against svn, that would be good to see now, just for comments and not for actually committing.OK, will build one now and find somewhere to stick, I'll post the link once done.
One more breaking change from you earlier patch though is that AudioCodecSettings requires a parameterless constructor to be serialised, otherwise you can't add any audio jobs. I've just added a private blank oneprivate AudioCodecSettings(){}and all is good again.
Eamon
berrinam
25th November 2007, 12:15
Here's a new version of the patch with the two bugs Eamon pointed out fixed: http://megui.org/berrinam_patches/profiles_refactor/profiles_refactor_2.patch.
Haven't decide if it is better to throw the exception or to Assert, but think it should at least be one or the other.I decided on an exception because the C# compiler is aware of it and it doesn't raise the error, "not all code paths return a value".
One more breaking change from you earlier patch though is that AudioCodecSettings requires a parameterless constructor to be serialised, otherwise you can't add any audio jobs. I've just added a private blank oneprivate AudioCodecSettings(){}and all is good again.I fixed this by making AudioCodecSettings abstract, as it should be.
Eamon21
25th November 2007, 12:16
Ok, patch for transcode tool up at http://www.mytempdir.com/2067780
It's against SVN revision 405, but should be able to use it still. There are still a few things to be added and maybe a bit of work on the interface but basic functionality is there.
Fire in the comments/suggestions/problems.
The patch is huge at the moment because it was built against berrinam's earlier patch to refactor profiles, once that is committed, I'll build a new more compact one. The actual changes to the core are very minimal as I have kept everything as localised as possible with a few additional functions in a temporary helper class. Once it's accepted these will move to new more sensible homes. I think the only change to the core (appart from berrinam's patch) are a single line in the mainform to add the tool to the menu and the changes to the poject file to include the new files.
Eamon
berrinam
25th November 2007, 13:20
Interesting patch. I'll have to play with it some more, though.
I assume that the main focus of this tool is for recompressing already-encoded media files, which have their audio and video all-in-one and don't need preparation like VOB files? I'm afraid I don't have much experience in that field, so I don't know what kind of configuration is required. As a result, I'm sorry that my comments are going to appear negative, but it feels to me that some options are missing. (It is probably partly my excessive desire for control speaking.)
Some settings are missing, as I said. My first thoughts were:
Output filesize
Video resolution (although we've discussed this)
Keeping the original audio track
Track selection
Deinterlacing (automatic?)
I could believe it possible that these can be sacrificed if you are only shrinking already-encoded media files, but I'm interested in hearing your opinions, since this isn't a situation I am very familiar with.
I haven't looked much at the code yet, so I'm wondering what your approach to things like VOB files is. (Things which should really be run through DGIndex first). And how about media files with 0 audio tracks, or 2+ ?
The GUI isn't updating when you select Output location -> specify. The filebar remains disabled.
Also, as a matter of style, I mostly tend to avoid log.Info(). I like to use log.LogValue(,) a lot, and for the places where that isn't so appropriate, I use log.LogEvent(), which timestamps it (so that a post-mortem analysis of the log can reveal if anything took unusually long/short).
I think LogValue is especially useful and you should use it more often. For instance, you could replace
catch (Exception ex)
{
joblog.Add(new LogItem("Unable to create temporary AVS script file: " + inputAVSFile).Error(ex.ToString()));
return false;
}
with
catch (Exception ex)
{
joblog.LogValue("Error creating temporary AVS script file", ex, ImageType.Error);
return false;
}
which has the advantage that the logger will automagically display the exception, giving not only the message but also inner exceptions and stacktraces.
Just as a side note, I always smile when I see this (although I myself write it quite often):
Debug.Assert(mainForm != null);
mainForm.Log.Add(_log);
I know it acts as good documentation, but it somehow seems somehow pointless, as .NET will give us a perfectly good NullReferenceException if the Assert weren't there. :)
Also, the GUI hangs when jobs are being prepared; you should consider running the job preparation in another thread as it can take quite some time.
And it seems like you forgot to do SVN Add on the new files added by my patch to core/gui. They didn't appear in the patch, anyway.
berrinam
25th November 2007, 13:22
Oh, and I would really like to be able to right-click on that MultiFileSelector; it just invites it, and I'm disappointed when nothing appears. :P
Eamon21
25th November 2007, 14:18
Interesting patch. I'll have to play with it some more, though.
I assume that the main focus of this tool is for recompressing already-encoded media files, which have their audio and video all-in-one and don't need preparation like VOB files? I'm afraid I don't have much experience in that field, so I don't know what kind of configuration is required. As a result, I'm sorry that my comments are going to appear negative, but it feels to me that some options are missing. (It is probably partly my excessive desire for control speaking.)Yeah, the original reason I started this was to provide an easy way for me to transcode a large number of MJPEG *.Mov files from my digital camera to H264 as I have several gig worth after around 12 months travelling. Initial tests showed that I could use x264 and have files that looked pretty much identical but in some cases 10% of the original size using the const. qual option. Anyway I tried a program called SUPER and it was easy enough to use but not much control, not nearly as efficient as fully cranking the settings up in x264 and I don't care how long the encodes take, this is for storage.
In general, what is there vs what is missing comes down to two things, if it's not there (yet) then likely: I don't need it to transcode my digi cam movies and secondly, it was not straight forward to do with the current code/profiles/job types.
Some settings are missing, as I said. My first thoughts were:
Output filesize
Video resolution (although we've discussed this)
Keeping the original audio track
Track selection
Deinterlacing (automatic?)
I could believe it possible that these can be sacrificed if you are only shrinking already-encoded media files, but I'm interested in hearing your opinions, since this isn't a situation I am very familiar with.Well output size is something I've never really used but I guess I can see where some people might. I kind of feel that this belongs in a video profile though as it really applies to the encoder doesn't it? I'm more concerned with have a minimum quality than a specific file size, but then I never burn to CD/DVD media.
Video resolution and de-interlacing I think belong to the AVS profile and that is where it should be done. If you look at the CreateScript function in the TemporaryHelperClass, you can see where I have provisioned for them, getting the settings from the AVS profile. Again I make my arguments that these settings should be part of the AVS profile as it is the avs script that implements them.
Audio tracks: well I suspected this would be brought up and I had intended to add support to specify an alternate track based on a name template applied to the input file or not encode the audio at all, both easy enough to do. Direct stream copy of the audio is not as straight forward as it means I have to extract the stream myself somehow, probably a new type of job I guess similar to the DGIndex job. At the moment AVISynth makes it easy for me, it will grab the audio stream out of any file and pass it out as wav data. The additional effort and the fact that I don't need it for m initial purposes for the transcode meant that I have not pursued direct stream copy further. Similar reasons for track selection, I don't currently have an easy way of getting different tracks from a file, avisyth just grabs the default I think.
I haven't looked much at the code yet, so I'm wondering what your approach to things like VOB files is. (Things which should really be run through DGIndex first). And how about media files with 0 audio tracks, or 2+ ?I'm no DVD converting expert, not even close but I understand that there is a lot involved, I think it belongs in a more specialized tool which is really what the OneClickTool is supposed to do. Initially I considered trying to modify the OneClickTool to support more filetypes but ended putting that in the "Too Hard" basket. I deliberately set out NOT to develop a replacement for that though I did look at it a lot in trying to work out how to go about things.
The GUI isn't updating when you select Output location -> specify. The filebar remains disabled.On to it...sorted.
Also, as a matter of style, I mostly tend to avoid log.Info(). I like to use log.LogValue(,) a lot, and for the places where that isn't so appropriate, I use log.LogEvent(), which timestamps it (so that a post-mortem analysis of the log can reveal if anything took unusually long/short).
I think LogValue is especially useful and you should use it more often. For instance, you could replace
catch (Exception ex)
{
joblog.Add(new LogItem("Unable to create temporary AVS script file: " + inputAVSFile).Error(ex.ToString()));
return false;
}
with
catch (Exception ex)
{
joblog.LogValue("Error creating temporary AVS script file", ex, ImageType.Error);
return false;
}
which has the advantage that the logger will automagically display the exception, giving not only the message but also inner exceptions and stacktraces.I'm not fussed, there are no comments in the LogItem class to provide any guidance for usage, I just did the first thing that seemed logical. But I take your point for exception logging so will change that now too.
Also, the GUI hangs when jobs are being prepared; you should consider running the job preparation in another thread as it can take quite some time.Good idea with the new thread, had changed the cursor to an hourglass, but not quite sufficient :)
And it seems like you forgot to do SVN Add on the new files added by my patch to core/gui. They didn't appear in the patch, anyway.oops, just created the patch and only thought to add files I've added for the transcode. Wont be a problem when i make the next patch against the SVN once your patch makes it in there.
Finally, with the multifile selector, I intend to add things like right click and to add the icon associated with each file to the display, basically just got the minimum together first. Usability features like context menus come second :)
Thanks for the feedback.
Eamon
Eamon21
25th November 2007, 14:31
new patch that contains files added in berrinam's ealier patch that i left out last time :)
http://www.mytempdir.com/2067872
Eamon
berrinam
25th November 2007, 23:13
Here's another thought. When I used it at first, I was a bit scared because I didn't know what it was going to do with my files and I didn't know which ones would work. Some other tools which allow you to select multiple files read in the source information the moment you select the files, unlike your tool, which does it when you press add. I'm not sure, but that might be clearer for the user as they know from the start which ones can work.
Since it can take some time, you might also want to put a progress bar in a statusbar at the bottom of the window. (Yes, I know: usability features come second :))
Eamon21
26th November 2007, 01:11
Can anyone tell me what the deal with the Mediainfo.dll and the MediaInfoWrapper class? the dll in the svn is version 0.7.4.4 which is from 5th Feb 2007 (current version is 0.7.5.5)
Anyway, when I try to use it I get the wrong results, it doesn't seem to process the information properly.
I'm going to have a look through the MediaInfoWrapper solution and see if i can work out what is wrong, but is there a reason it is still using such an old version of the dll? Or is it just that no one else uses it so haven't bothered?
Eamon
berrinam
26th November 2007, 04:22
I have had no problems with Mediainofo 0.7.4.4 except a crash with Vista which I fixed in the MediaInfoWrapper class a while ago. However, other people have since complained of MediaInfo crashes under Vista. As I don't run Vista, I am somewhat separated from this situation. I believe we plan to update to 0.7.5.5 soon, but we may also have to accompany that with some changes to the OpenFileDialog calls (don't ask me why... you can read the last pages of this thread to get some details, though).
What are these wrong results it gives you?
Kurtnoise
26th November 2007, 07:53
the dll in the svn is version 0.7.4.4 which is from 5th Feb 2007
This is wrong. I updated to the latest build few days ago. It's still the old one on auto-update servers though (which overwrites the new one when we use the update)...
Eamon21
26th November 2007, 11:26
This is wrong. I updated to the latest build few days ago. It's still the old one on auto-update servers though (which overwrites the new one when we use the update)...
OK, I seem to have the latest version now. Still having the same problems though..
I have had no problems with Mediainofo 0.7.4.4 except a crash with Vista which I fixed in the MediaInfoWrapper class a while ago. However, other people have since complained of MediaInfo crashes under Vista. As I don't run Vista, I am somewhat separated from this situation. I believe we plan to update to 0.7.5.5 soon, but we may also have to accompany that with some changes to the OpenFileDialog calls (don't ask me why... you can read the last pages of this thread to get some details, though).
What are these wrong results it gives you?
When I try to create a MediaInfoFile, stepping into the constructor and viewing the second lineMediaInfo info = new MediaInfo(file);if I put a watch on the info object after it is created I see the following:
- info {MediaInfoWrapper.MediaInfo} MediaInfoWrapper.MediaInfo
+ Audio Count = 0 System.Collections.Generic.List<MediaInfoWrapper.AudioTrack>
AudioCount 1 int
+ Chapters Count = 0 System.Collections.Generic.List<MediaInfoWrapper.ChaptersTrack>
ChaptersCount 0 int
+ General Count = 0 System.Collections.Generic.List<MediaInfoWrapper.GeneralTrack>
GeneralCount 1 int
InfoComplete ...snip...
InfoCustom "General\r\n\r\nVideo\r\n\r\nAudio\r\n\r\nText\r\n\r\nChapters\r\n" string
InfoStandard ...snip...
+ Text Count = 0 System.Collections.Generic.List<MediaInfoWrapper.TextTrack>
TextCount 0 int
+ Video Count = 0 System.Collections.Generic.List<MediaInfoWrapper.VideoTrack>
VideoCount 1 int
+ Non-Public members now this file definately has both audio(aac) and video (H264) but the information doesn't seem to be beign parsed correctly. I have cut the "InfoComplete" filed here because it messed up the formatting, but it contains the following:General #0
Count : 176
Count of stream of t : 1
Kind of stream : General
StreamKindID : 0
Count of video strea : 1
Count of audio strea : 1
Count of text stream : 0
Count of chapter str : 0
Codecs Video : H.264
Audio codecs : AAC LC
Complete name : C:\b\a-muxed.mp4
Folder name : C:\b
File name : a-muxed
File extension : mp4
Format : isom
Format : MPEG-4
Format/Info : ISO 14496-1 Base Media
Format/Family : MPEG-4
Format/Url : http://www.apple.com/quicktime/download/standalone.html
Format/Extensions : mp4
Codec : isom
Codec : MPEG-4
Codec/Info : ISO 14496-1 Base Media
Codec/Family : MPEG-4
Codec/Url : http://www.apple.com/quicktime/download/standalone.html
Codec/Extensions : mp4
File size : 755388
File size : 738 KiB
File size : 738 KiB
File size : 738 KiB
File size : 738 KiB
File size : 737.7 KiB
PlayTime : 3326
PlayTime : 3s 326ms
PlayTime : 3s 326ms
PlayTime : 3s 326ms
PlayTime : 00:00:03.326
Bit rate : 1816928
Bit rate : 1817 Kbps
StreamSize : 2518
StreamSize : 2.46 KiB
StreamSize : 2 KiB
StreamSize : 2.5 KiB
StreamSize : 2.46 KiB
StreamSize : 2.459 KiB
Encoded date : UTC 2007-11-15 12:29:07
Tagged date : UTC 2007-11-15 12:29:07
Video #0
Count : 73
Count of stream of t : 1
Kind of stream : Video
StreamKindID : 0
ID : 1
Codec : avc1
Codec : H.264
Codec/Info : H.264 (3GPP)
Codec/Url : http://www.apple.com/quicktime/download/standalone.html
PlayTime : 3000
PlayTime : 3s
PlayTime : 3s
PlayTime : 3s
PlayTime : 00:00:03.000
Bit rate : 1970858
Bit rate : 1971 Kbps
Width : 640
Width : 640 pixels
Height : 480
Height : 480 pixels
Aspect ratio : 1.333
Aspect ratio : 4/3
Frame rate : 30.000
Frame rate : 30.000 fps
FrameCount : 90
Bits/(Pixel*Frame) : 0.189
StreamSize : 739072
StreamSize : 722 KiB
StreamSize : 722 KiB
StreamSize : 722 KiB
StreamSize : 722 KiB
StreamSize : 721.8 KiB
Encoded date : UTC 2007-11-15 12:29:07
Tagged date : UTC 2007-11-15 12:29:07
Audio #0
Count : 58
Count of stream of t : 1
Kind of stream : Audio
StreamKindID : 0
ID : 2
Codec : A_AAC/MPEG4/LC
Codec : AAC LC
Codec/Info : AAC Low Complexity
PlayTime : 3328
PlayTime : 3s 328ms
PlayTime : 3s 328ms
PlayTime : 3s 328ms
PlayTime : 00:00:03.328
Bit rate : 33168
Bit rate : 33 Kbps
Bit rate mode : VBR
Channel(s) : 1
Channel(s) : 1 channel
Sampling rate : 8000
Sampling rate : 8000 Hz
SamplingCount : 26624
Resolution : 16
Resolution : 16 bits
StreamSize : 13798
StreamSize : 13.5 KiB
StreamSize : 13 KiB
StreamSize : 13 KiB
StreamSize : 13.5 KiB
StreamSize : 13.47 KiB
Encoded date : UTC 2007-11-15 12:29:07
Tagged date : UTC 2007-11-15 12:29:07so you can see the information is there but it doesn't seem to be parsed properly, going to have a quick look at the MediaInfoWrapper project now and see what I can find out.
That brings me to another question though, is there a particular reason that the MediaInfoWrapper project is not part of the same solution?
Eamon
Eamon21
26th November 2007, 12:06
Appears to be something wrong with the MediaInfoWrapper.dll. If I use the one in the SVN i.e.
Size: 68.0 KB (69,632 bytes)
Version: 0.7.5.5
I have problems but if I run through the MediaInfoWrapper project it works, if I compile it myself from the MediaInfoWrapper project (Debug or release) and copy that dll to the MeGui directory it works, and finally if I include the MediaInfoWrapper project in the MeGui solution and change the reference in MeGui to the project instead of the dll, it works.
Can anyone else replicate this?
Simply create a MediaInfoFile and see if it has populated the fields correctly.
maybe easier to just apply this patch and try to create a MediaInfoFile
Index: MediaInfoFile.cs
===================================================================
--- MediaInfoFile.cs (revision 405)
+++ MediaInfoFile.cs (working copy)
@@ -228,6 +228,8 @@
{
this.file = file;
MediaInfo info = new MediaInfo(file);
+ System.Diagnostics.Debug.Assert(info.AudioCount == info.Audio.Count);
+ System.Diagnostics.Debug.Assert(info.VideoCount == info.Video.Count);
bool hasVideo = (info.Video.Count > 0);
Eamon
Kurtnoise
26th November 2007, 12:14
what's the size of your own MediaInfoWrapper.dll ?
Eamon21
26th November 2007, 13:13
well in debug mode, it is 76.0 KB (77,824 bytes) but when I compile as release, it is actually exactly the same size as the one that causes me problems.
Eamon
Kurtnoise
26th November 2007, 14:47
More informative logtree names for jobs:
...
looks ok.
Expand/collapse all for log:...
looks ok.
Silently create worker if none exists (#1837578):...
looks ok.
Sharktooth
26th November 2007, 16:15
dev:0.3.0.1001 (includes 0.2.x branch fixes)
- (berrinam) Add missing output streams back to log (fixes #1836281)
- (Kurtnoise) [AutoEncodeWindow] mainform was being referenced in default constructor before it had ever
been assigned (#1836041). patch by Eamonh.
- (Kurtnoise) Removed unused code
- (Kurtnoise) more Audio Input FileType.
- (Kurtnoise) [ProgressWindow] Remaining Time -> Time Remaining.
stable:0.2.6.1040
- (Kurtnoise) [MainForm] move AutoUpdate checking to the shown Event (to have the MessageBox in the foreground). bob0r should be happy now...;-)
- (Kurtnoise) Added several new languages.
- (Kurtnoise) [OneClickWindow] re-ordered the initOneClickHandler() (#1832675). patch by Eamonh.
- (Kurtnoise) Updated MediaInfo.dll and his wrapper.
Kurtnoise
26th November 2007, 18:41
ok...I would like to have your opinion guys about Vista stuff. To sum up : the main issue concerns the preview window which can't be opened properly. Basically, it's due to the openfiledialog bug. To resolve this without some extra tweakings or tunings, an upgrade to the last .Net Framework is sufficient (maybe the 2.0 SP1 is enough...dunno). I tested this during all the weekend and I got no problem so far.
So, what can we do now ? I suggest to raise a warning during the mainform loading to inform people who run on Vista and who don't have the appropriate framework to upgrade. I've already the patch for that. ;)
Sharktooth
26th November 2007, 19:06
with "latest" you mean 3.5? or latest versions of 2.0?
Kurtnoise
26th November 2007, 21:02
Some extra comments...
if I choose the .Net 2.0 as target framework, it's the 2.0 SP1 which is used.
if I choose the .Net 3.5 as target framework, it's the 3.5 RTM which is used.
both builds work flawlessly...:)
Note: when we install the .Net 3.5, there is also an update for the 2.0 (i.e an upgrade to the SP1) wich adds some methods and properties, required for the Framework 3.5 features such as LINQ, to the BCL classes in the Framework 2.0. These changes do not affect applications written for version 2.0 of the .NET Framework.
Eamon21
26th November 2007, 23:15
Some extra comments...
if I choose the .Net 2.0 as target framework, it's the 2.0 SP1 which is used.
if I choose the .Net 3.5 as target framework, it's the 3.5 RTM which is used.
both builds work flawlessly...:)
Note: when we install the .Net 3.5, there is also an update for the 2.0 (i.e an upgrade to the SP1) wich adds some methods and properties, required for the Framework 3.5 features such as LINQ, to the BCL classes in the Framework 2.0. These changes do not affect applications written for version 2.0 of the .NET Framework.I would vote for sticking with 2.0 for now, I suspect there would be a lot of unhappy campers running win2k who would flood into the forums if they could no longer run it.
Secondly, I just want to check the purpose of the MediaInfoWrapper.dll, I suspect that it is just there to wrap the MediaInfo.dll and ensure it is disposed of cleanly with all handles and non-managed memory cleaned up?
Eamon
berrinam
26th November 2007, 23:54
That brings me to another question though, is there a particular reason that the MediaInfoWrapper project is not part of the same solution?MediaInfoWrapper was provided to MeGUI by someone else, as a complete project that you see in the SVN. We simply never joined it into the main solution. However, better than adding the project to the solution would be just adding the files to the MeGUI project. Currently there are two stages of interpretation (DLL->strings, strings->MeGUI values) which could perhaps be simplified if it was all in the main project.
ok...I would like to have your opinion guys about Vista stuff. To sum up : the main issue concerns the preview window which can't be opened properly. Basically, it's due to the openfiledialog bug. To resolve this without some extra tweakings or tunings, an upgrade to the last .Net Framework is sufficient (maybe the 2.0 SP1 is enough...dunno).
...
So, what can we do now ? I suggest to raise a warning during the mainform loading to inform people who run on Vista and who don't have the appropriate framework to upgrade. I've already the patch for that. ;)
...
if I choose the .Net 2.0 as target framework, it's the 2.0 SP1 which is used.
...
both builds work flawlessly...:)
If I understand correctly, it all works if the users run 2.0 SP1? If that is available to Win2k users as well, then that seems the best solution, so let's do that.
Secondly, I just want to check the purpose of the MediaInfoWrapper.dll, I suspect that it is just there to wrap the MediaInfo.dll and ensure it is disposed of cleanly with all handles and non-managed memory cleaned up?Yes, although when I looked at it recently, it doesn't appear to delete the handle. I'm not sure if that's a bug...
kumi
26th November 2007, 23:59
I just wanted to note that the 0.2.6.1040 stable upgrade has resolved my MediaInfoWrapper.dll problem:
https://sourceforge.net/tracker/index.php?func=detail&aid=1832210&group_id=156112&atid=798477
Eamon21
27th November 2007, 00:29
Yes, although when I looked at it recently, it doesn't appear to delete the handle. I'm not sure if that's a bug...Yeah, was going to point this out. Though it does have a Dispose() method, it doesn't actually implement the IDisposable interface, also, the way Dispose() was being used was not complete and the unmanaged resources (handles etc) only got cleaned up if Dispose was explicitly called and therefore a potential memory leak if the object was left to be collected by the garbage collector.
I have since made it IDisposable and implemented a better dispose pattern for now and I will look at moving the code into MeGui too as that would resolve another thing I was going to bring up and that is the MediaInfoFile class wraps the MediaInfoWrapper.dll which wraps MediaInfo.dll, an uneccessary extra layer as you point out.
Eamon
berrinam
27th November 2007, 02:52
looks ok.
...
looks ok.
...
looks ok.
Can someone else commit these three patches please? I've got computer troubles at the moment.
berrinam
27th November 2007, 07:27
I understand that people would like to have some of the x264's experimental (non-SVN) features supported in MeGUI. I reckon we can support experimental and vanilla x264 at the same time in MeGUI, giving the user the choice.
What the user will see is one more codec. Instead of the 4 video codecs being (as we currently have) x264, XviD, LMP4, and Snow, there would be 5: x264, x264-experimental, XviD, LMP4, and Snow. As MeGUI treats it as an entirely separate codec, there will be no problems of the two interfering, and the user can choose to stick with vanilla x264 just by using the plain 'x264' codec. Naturally, we would also have to add another video encoder to MeGUI, corresponding to the different build of x264.
As far as code reuse goes, I think inheritance pretty much does the trick. We derive x264ExperimentalSettings from x264Settings, and x264ExperimentalConfigurationPanel from x264ConfigurationPanel, and x264ExperimentalEncoder from x264Encoder.
What do you think?
berrinam
27th November 2007, 07:43
There's some code in the Bitrate Calculator tool which allows the calculated bitrate to be saved back into the selected video profile. I find it a bit hacky, and I don't really expect that anyone uses it much: if you want to encode to a given filesize, then the AutoEncoder generally is easier to use. I think we should consider removing this as it seems pointless.
Kurtnoise
27th November 2007, 09:34
If I understand correctly, it all works if the users run 2.0 SP1? If that is available to Win2k users as well, then that seems the best solution, so let's do that.
According to the webpage (http://www.microsoft.com/downloads/details.aspx?familyid=79BC3B77-E02C-4AD3-AACF-A7633F706BA5&displaylang=en), XP or Server 2003 is required...
Anyway, my notice was for Vista users only...;)
Here is the pseudo-code:
if (OS_type == Windows Vista)
{
if (Runtime == 2.0 SP1 || Runtime == 3.0 || Runtime == 3.5)
do nothing;
else {
if (MessageBox.Show("You're running MeGUI on Windows Vista but to avoid several issues, may I ask you to upgrade your .Net Framework ?\n", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
run http://www.microsoft.com/downloads/details.aspx?familyid=79BC3B77-E02C-4AD3-AACF-A7633F706BA5&displaylang=en;
}
}
Kurtnoise
27th November 2007, 09:37
As far as code reuse goes, I think inheritance pretty much does the trick. We derive x264ExperimentalSettings from x264Settings, and x264ExperimentalConfigurationPanel from x264ConfigurationPanel, and x264ExperimentalEncoder from x264Encoder.
What do you think?
you read my mind...;) it's exactly what I thought this weekend.
Kurtnoise
27th November 2007, 11:19
Can someone else commit these three patches please? I've got computer troubles at the moment.
ok, done...
Sharktooth
27th November 2007, 14:34
There's some code in the Bitrate Calculator tool which allows the calculated bitrate to be saved back into the selected video profile. I find it a bit hacky, and I don't really expect that anyone uses it much: if you want to encode to a given filesize, then the AutoEncoder generally is easier to use. I think we should consider removing this as it seems pointless.
i use it :)
for what concerns x264 experimental builds, i dont think we should add them since it will require continous effort in updating support for that. plus there are a lot of different builds with different command line options... it will just be a PITA.
rack04
27th November 2007, 14:46
There's some code in the Bitrate Calculator tool which allows the calculated bitrate to be saved back into the selected video profile. I find it a bit hacky, and I don't really expect that anyone uses it much: if you want to encode to a given filesize, then the AutoEncoder generally is easier to use. I think we should consider removing this as it seems pointless.
I use it. Haven't tried AutoEncoder though.
Sharktooth
27th November 2007, 14:54
maybe we should "ask" the user if he wants to update the bitrate value of the currently selected profile or not.
that would be a much better idea.
Kurtnoise
27th November 2007, 18:33
We have definitively a big issue with the last MediaInfoWrapper release. :( Check out the bugtracker. When we use the muxers, FPS value is not detected anymore. Using the old one (0.7.4.4), that works...
Eamon: if you've fixed some things in it, that could be great to test it...at least a patch. :)
Sharktooth
27th November 2007, 18:47
dang... maybe the api changed? i didnt look at the changelog
Eamon21
27th November 2007, 19:03
We have definitively a big issue with the last MediaInfoWrapper release. :( Check out the bugtracker. When we use the muxers, FPS value is not detected anymore. Using the old one (0.7.4.4), that works...
Eamon: if you've fixed some things in it, that could be great to test it...at least a patch. :)Don't know what it was exactly but the last mediinfowrapper.dll (0.7.5.5) was just broken, a recompile with the same source code fixed everything for me, dll is still version 0.7.5.5 but works now. That simple patch I posted earlier would show the problem first time you tried to create MediaInfoFile where the number of streams was correct but it just was not populating them with info.
I have started trying to move the code in MediaInfoWrapper into MeGui, but I think it will be a while before I am done, in the meantime, my re-compiled mediainfowrapper.dll should fix the issues, well it did for me. I have uploaded it to http://www.mytempdir.com/2069458. Updated link to point to newly compile dll that actually is version 07.5.5
Or if someone wants to just recompile the dll them self, I have made slight changes to the dispose functionality, though nothing that would explain the previous problems. Here is the patchIndex: trunk/MediaInfoWrapper/MediaInfoWrapperDll/MediaInfoMain.cs
===================================================================
--- trunk/MediaInfoWrapper/MediaInfoWrapperDll/MediaInfoMain.cs (revision 405)
+++ trunk/MediaInfoWrapper/MediaInfoWrapperDll/MediaInfoMain.cs (working copy)
@@ -46,10 +46,8 @@
/// every information MediaInfo.dll can collect.
/// Tracks are accessibles as properties.
/// </summary>
- public class MediaInfo
+ public class MediaInfo : IDisposable
{
-
-
[DllImport("MediaInfo.dll")]
internal static extern int MediaInfo_Close(IntPtr Handle);
@@ -72,7 +70,7 @@
[DllImport("MediaInfo.dll")]
internal static extern int MediaInfo_State_Get(IntPtr Handle);
-
+
private List<VideoTrack> _Video;
private List<GeneralTrack> _General;
private List<AudioTrack> _Audio;
@@ -87,7 +85,7 @@
private string _InfoStandard;
private string _InfoCustom;
private string _FileName;
- private bool disposedValue;
+
private IntPtr Handle;
//public static const string MediaInfoPath="MediaInfo.dll";
@@ -103,35 +101,76 @@
//if (!CheckFileExistence("MediaInfo.dll")) return;
if (!CheckFileExistence(path)) return;
_FileName = path;
-
+
this.Handle = MediaInfo.MediaInfo_New();
MediaInfo.MediaInfo_Open(this.Handle, path);
+ try
+ {
+ getStreamCount();
+ getAllInfos();
+ }
+ finally //ensure MediaInfo_Close is called even if something goes wrong
+ {
+ MediaInfo.MediaInfo_Close(this.Handle);
+ }
- getStreamCount();
- getAllInfos();
+ }
- MediaInfo.MediaInfo_Close(this.Handle);
+ #region Disposable Pattern
+ private bool disposed;
+ ~MediaInfo()
+ {
+ Dispose(false);
}
+
+ protected bool IsDisposed
+ {
+ get { return disposed; }
+ }
+
+ protected void CheckDisposed()
+ {
+ if (disposed)
+ {
+ throw new ObjectDisposedException(this.ToString());
+ }
+ }
+
/// <summary>Call this one to kill the wrapper, and close his handle to the MediaInfo.dll, you should never need it anyway </summary>
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
-
-
-
- /// <summary>Call this one to kill the wrapper, and close his handle to the MediaInfo.dll, you should never need it anyway </summary>
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="disposing"></param>
protected virtual void Dispose(bool disposing)
{
- if (!this.disposedValue && disposing)
+ if (!this.disposed)
{
- MediaInfo.MediaInfo_Close(this.Handle);
- MediaInfo.MediaInfo_Delete(this.Handle);
+ if (disposing)
+ {
+ DisposeManagedResources();
+ }
+ DisposeUnmanagedResources();
}
- this.disposedValue = true;
+ this.disposed = true;
}
+
+ protected virtual void DisposeManagedResources()
+ {
+ }
+ protected virtual void DisposeUnmanagedResources()
+ {
+ MediaInfo.MediaInfo_Close(this.Handle);
+ MediaInfo.MediaInfo_Delete(this.Handle);
+ }
+ #endregion
+
/// <summary>
/// Simply checks file presence else throws a FileNotFoundException
/// </summary>
@@ -780,5 +819,6 @@
return this._ChaptersCount;
}
}
+
+ }
}
-}
But as I said, I think it will probably be better to incorporate the code from mediainfowrapper into MeGui and effectively merge mediainfowrapper and mediainfofile.
Eamon
Sharktooth
27th November 2007, 19:06
i agree. however in the meanwhile i will re-compile the wrapper and update the packages ASAP.
Kurtnoise
27th November 2007, 19:06
dohh...my bad. It was my fault. :scared: I disabled a function in the wrapper when I've made some tests earlier. :o:o:o
Sorry guys. I'll upload the new one tonight...
Sharktooth
27th November 2007, 19:06
ok... :)
EDIT: btw, i moved to VS2008
Eamon21
27th November 2007, 19:53
It would still be worth applying the patch I posted for MediaInfoWrapper with the new dispose functionality as there is currently a memory leak. Where the class MediaInfoWrapper.MediaInfo is used (e.g. in MediaInfoFile.cs, line 230) it is not currently disposed and the previous dispose pattern used did not clean up unmanaged resources if it was cleaned up by the garbage collector, only if someone explicitly called Dispose() was the handle actually deleted.
Eamon
Kurtnoise
27th November 2007, 20:45
yeah...I applied your patch.
Kurtnoise
28th November 2007, 16:24
Hi,
needs to be run as administrator on vista or it shows a useless confusing error message.
it should really auto acquire admin rights if it needs it, or at least a notice that it needs to be run as admin.
Just a note about that. it can be done easily during the compilation with MSVC#2008 by adding a manifest file...
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
save it with .manifest extension.
Kurtnoise
1st December 2007, 13:52
A patch (http://kurtnoise.free.fr/index.php?dir=MeGUI/&file=framework_handling.patch) for a better Framework handling or this one (http://kurtnoise.free.fr/index.php?dir=MeGUI/&file=framework_handling_v2.patch).
Deckard2019
1st December 2007, 15:00
About this (https://sourceforge.net/tracker/index.php?func=detail&aid=1667076&group_id=156112&atid=798479), do you mean I can already process H264 .m2ts using MeGUI with it ?
I was about to launch encoding process using this : demux using xport, build .dga with DGAVCIndex, create .avs with ... notepad, feed MeGUI with it.
I wonder if it's reliable now ?
As I understand, MeGUI integration will soon occur. Great news !
Thanks a lot.
Sharktooth
1st December 2007, 15:01
the v2 patch is much better.
however instead of using all those if/else if, try with "case", like on the first patch.
Kurtnoise
1st December 2007, 17:13
the v2 patch is much better.
however instead of using all those if/else if, try with "case", like on the first patch.
my bad...one "break" statement was at the wrong place in my 1st patch. That's why it returned an error. I'll fix that.
Sharktooth
3rd December 2007, 14:47
In tags/0_2_x_x
core\details\mux\MuxWindow.Designer.cs(102,28): error CS0117:
'MeGUI.core.gui.TargetSizeSCBox' does not contain a definition for
'CustomSizes'
I think you left out to update something during your last commit.
Kurtnoise
5th December 2007, 15:40
Fixed...:)
Kurtnoise
5th December 2007, 15:42
According to the webpage (http://www.microsoft.com/downloads/details.aspx?familyid=79BC3B77-E02C-4AD3-AACF-A7633F706BA5&displaylang=en), XP or Server 2003 is required...
Anyway, my notice was for Vista users only...;)
Here is the pseudo-code:
if (OS_type == Windows Vista)
{
if (Runtime == 2.0 SP1 || Runtime == 3.0 || Runtime == 3.5)
do nothing;
else {
if (MessageBox.Show("You're running MeGUI on Windows Vista but to avoid several issues, may I ask you to upgrade your .Net Framework ?\n", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
run http://www.microsoft.com/downloads/details.aspx?familyid=79BC3B77-E02C-4AD3-AACF-A7633F706BA5&displaylang=en;
}
}
ok to commit ?
A patch for a better Framework handling or this one.
ok to commit the 1st one ?
Sharktooth
5th December 2007, 15:45
it's ok for me.
Kurtnoise
5th December 2007, 15:46
I think also that the changelog.txt should be changed (as formal way) for the dev builds...I mean don't mix up the 0.3.xx with 0.2.xxx.
Sharktooth
5th December 2007, 15:47
the problem is... how... :)
Kurtnoise
5th December 2007, 15:53
well, all the dev builds come from the svn trunk and are tagged as 0.3.xxx from nowadays, right ?
So, creating a new changelog.txt file with only the 0.3.xxx changes should be fine. :)
Sharktooth
5th December 2007, 15:58
ill see what i can do for the next build...in the meanwhile...
stable:
0.2.6.1041
- (Kurtnoise) Refactoring the dispose functionality. Patch by Eamon.
- (Kurtnoise) [MuxWindow] Help button was at the wrong place.
- (Kurtnoise) Updated the correct MediaInfoWrapper library.
dev:
0.3.0.1002 (includes 0.2.x branch fixes)
- (Kurtnoise) added a manifest file for the UAC level required on Vista.
- (Kurtnoise) [JobQueue] changed public to internal for the JobChangeEvent (to fix the compilation within MSVC2008).
- (Kurtnoise) [MainForm] cosmetics.
- (Kurtnoise) [MainForm] added some MessageBoxIcons.
- (Kurtnoise) Expand/Collapse all for logs.
- (Kurtnoise) silent worker creation if none exists (#1837578).
- (Kurtnoise) More informative logtree names for each jobs.
- (Kurtnoise) [JobQueue] FPS columm aligned to left.
Kurtnoise
5th December 2007, 16:01
yes but just drop down to the file and you'll see changes from 0.2.6.xxx. I think it's confusing...
Sharktooth
5th December 2007, 16:09
uhm... reorganized the changelog.
should be a bit more clear now.
Kurtnoise
5th December 2007, 20:11
mmh...this is not what I thought but whatever. :D
btw, what do you think about this form for the changelog ?
http://img253.imageshack.us/img253/6238/meguichangelog051220072ky3.png
mainly a richTextBox with some highlights for each versions number.
yeah, I'm back to XP now...:D
Sharktooth
5th December 2007, 20:30
uhm.... i think a treeview (like the log) will be better.
every version collapsed except the last one.
oh btw... you know i hate vista...
berrinam
6th December 2007, 03:52
Ok, after some computer failures, I got back to work on my profiles refactor. Here's a new patch which I think is complete (except whatever bugs I've added :P). The main changes are
fixed selected profiles behavior
internal changes in ProfileManager
profileimporter/profileexporter now works (the profileporter was mostly rewritten)
can load old profile collections
removed code for reading very old profiles (from 0.2.4.1004 and below)
some new util functions: templated Delegate types to avoid declaring the delegate types, better XmlSerialization functions, and ByID function
made Profiles and a few ProfileManager internals IIDable, so they can be searched with the ByID function
Get the patch here (http://megui.org/berrinam_patches/profiles_refactor/profiles_refactor_3.patch). I've added a new folder, so you'll have to create that yourself and perhaps also add the file manually. The folder is megui/core/details/0_2_6_x_profileloader/, and the file contained in it is Loader.cs. If you need to add the file manually, you can get it from here (http://megui.org/berrinam_patches/profiles_refactor/Loader.cs).
Kurtnoise
6th December 2007, 10:07
sounds good but as I said earlier, we need to add/tweak something to check also the output file format when we select a profile.
All x264-PD and x264-SA profiles should have only MP4 as output format. I'll check the code to try to add this.
edit: in your patch, Loader.cs index is twice...
berrinam
6th December 2007, 10:18
Not sure why that is. I just let TortoiseSVN make the patch for me.
As far as the x264-PD and x264-SA profiles go, I don't think it is right for profiles to contain information about the output format. As I see it, a video profile contains information about the codec settings, and nothing else. (This is why I removed PAR from codec panels, and why I plan to remove zones from there as well).
Keeping this statement true also makes the profile code simpler. I think we should explore other ways of enforcing MP4-only output, and more generally the problem of hardware output. This is probably the wrong approach, but another way of handling the problem you suggested would be to create a new type of codec/encoder.
Anyway, I think this problem is separate from my patch and can be addressed later.
SpAwN_gUy
6th December 2007, 10:29
my idea about the "hardware" is to add something to meGUI-Options to enforce "the Whole meGUI act for Some hardware".. i guess there are some restrictions to sound also and for subtitles, but not only the output container
berrinam
6th December 2007, 10:50
I'm having a go at adding support for x264 patches to MeGUI. But I can't find all the information for some of parameters. What range of values can --thread-queue take? What range of values can --aq-strength and --aq-sensitivity take?
berrinam
6th December 2007, 10:55
my idea about the "hardware" is to add something to meGUI-Options to enforce "the Whole meGUI act for Some hardware".. i guess there are some restrictions to sound also and for subtitles, but not only the output container
Like "Validate AVC Level"? I see what you mean, although I think Validate AVC Level is currently a bit unreliable.
I guess my concern is just that I don't want hardware support to be done as an afterthought, as that kind of thing has caused troubles time and again for MeGUI.
Kurtnoise
6th December 2007, 13:20
As far as the x264-PD and x264-SA profiles go, I don't think it is right for profiles to contain information about the output format. As I see it, a video profile contains information about the codec settings, and nothing else. (This is why I removed PAR from codec panels, and why I plan to remove zones from there as well).
Keeping this statement true also makes the profile code simpler. I think we should explore other ways of enforcing MP4-only output, and more generally the problem of hardware output. This is probably the wrong approach, but another way of handling the problem you suggested would be to create a new type of codec/encoder.
ok...you're right. Sorry for the disturbance. I'll try to find a better way to do that outside profiles settings.
all in all, your patch looks ok but I need to test it more extensively.
berrinam
6th December 2007, 13:22
Rereading my post, it comes off a bit aggressive. Sorry about that.
Kurtnoise
6th December 2007, 13:24
According to the webpage (http://www.microsoft.com/downloads/details.aspx?familyid=79BC3B77-E02C-4AD3-AACF-A7633F706BA5&displaylang=en), XP or Server 2003 is required...
Anyway, my notice was for Vista users only...;)
Here is the pseudo-code:
if (OS_type == Windows Vista)
{
if (Runtime == 2.0 SP1 || Runtime == 3.0 || Runtime == 3.5)
do nothing;
else {
if (MessageBox.Show("You're running MeGUI on Windows Vista but to avoid several issues, may I ask you to upgrade your .Net Framework ?\n", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
run http://www.microsoft.com/downloads/details.aspx?familyid=79BC3B77-E02C-4AD3-AACF-A7633F706BA5&displaylang=en;
}
}
ok, applied. So from now, MeGUI is "Vista ready" I think. :p At least, using MSVC# 2008 as compiler...
berrinam
6th December 2007, 13:24
Oh, and back on the topic of C# 3.0: are we ready to migrate now?
Kurtnoise
6th December 2007, 13:29
I'm not aware of some issues with it...So, I'd say *yes*.
Sharktooth
6th December 2007, 14:20
where i can get aften SVN builds?
EDIT: Never mind...
mroz
6th December 2007, 14:20
@Berrinam: in post 3523 you might want to edit one word in your quote of SpAwN_gUy - I think that's a rather harsh way to descibe one of your children ;)
Sharktooth
6th December 2007, 14:48
stable:
0.2.6.1042
- (Kurtnoise) better Framework handling.
- (Kurtnoise) added a warning for Vista users when the Framework is not up-to-dated.
dev:
0.3.0.1003 (includes 0.2.6.1042 fixes)
- (Kurtnoise) use the proper command syntax for svn and stable builds concerning Aften encoder
Sharktooth
6th December 2007, 18:27
@Kurtnoise: the .NET 2.0 SP1 is ONLY for 2003/XP... :(
Kurtnoise
6th December 2007, 19:21
yeah...blame Microsoft for that. Honestly that doesn't make sense because the framework 2.0 SP1 is required for the 3.5 which is Vista compatible.
To solve this, we just need to update the link to the framework 3.5.
check
6th December 2007, 22:53
What range of values can --aq-strength and --aq-sensitivity take?
These are both in --longhelp for supported builds.
Strength is a float between 0 and 1.1
Sensitivity is an int between 0 and 21(?)
berrinam
6th December 2007, 23:18
I saw them in the --longhelp. Ok, 22 is clearly the maximum for aq-sensitivity, but how about aq-strength? Just because 1.1 is "strong", higher values could still be allowed. I think I have currently set the maximum to 5.0.
And how about --thread-queue?
Kurtnoise
7th December 2007, 08:50
And how about --thread-queue?
I don't think it's useful because this has been removed from the svn...
berrinam
7th December 2007, 09:30
Ok. I didn't know that.
check
7th December 2007, 10:01
Just because 1.1 is "strong", higher values could still be allowed. I think I have currently set the maximum to 5.0.
If you are going for 'possible' rather than 'sane' (if it does go above 1.1), can you please remove the restriction on maximum GOP size? As far as I know there's no maximum.
berrinam
7th December 2007, 13:29
I don't want MeGUI to restrict what the users can do except unless there's a very good reason to do so (like with upsizing when resizing). However, there is a problem that .NET requires you to set a for those number boxes. So the solution is just setting something that no-one would ever go higher than. I'm not sure what it currently is, but I'll look into it.
berrinam
8th December 2007, 11:45
I've done what you asked for, check.
I've got some concerns about the generated x264 commandlines:
MeGUI generates --filter 1,1 for the deblock filter. But this is what x264 --longhelp says: -f, --deblock <alpha:beta> Loop filter AlphaC0 and Beta parameters [0:0]. So, shouldn't it actually be --deblock 1:1. But why is x264 not saying "unrecognised parameter --filter"?
MeGUI generates --analyse all. But x264 --longhelp says -A, --partitions <string> Partitions to consider ["p8x8,b8x8,i8x8,i4x4"]
- p8x8, p4x4, b8x8, i8x8, i4x4
- none, all
(p4x4 requires p8x8. i8x8 requires --8x8dct.). So shouldn't it be --partitions all
Kurtnoise
8th December 2007, 12:07
But why is x264 not saying "unrecognised parameter --filter" "--analyse"?
because those switches are still valid in the internal command x264 parsing. ;)
laserfan
8th December 2007, 21:59
Might I suggest to the developers that MeGUI be changed to Not default to "Open Preview after AviSynth script selection".
Because this is checked On by default, first-time users who load a very large file e.g. >15Mb find that it takes many minutes for MeGUI to open, causing some to abort thinking MeGUI is broken. :scared:
berrinam
8th December 2007, 23:18
Who writes >15Mb Avisynth scripts?
laserfan
9th December 2007, 00:20
I'm sorry, I meant >15Gb source files, not the .avs itself. MeGUI apparently wants to scan the whole file before previewing it.
berrinam
9th December 2007, 01:18
MeGUI doesn't scan the whole file first. Depending on your avisynth script, avisynth might, although MeGUI won't generate any such scripts. Can you give me an example of a script which takes minutes to load?
berrinam
9th December 2007, 02:01
More information logged by the audio encoder: Index: AviSynthAudioEncoder.cs
===================================================================
--- AviSynthAudioEncoder.cs (revision 431)
+++ AviSynthAudioEncoder.cs (working copy)
@@ -268,11 +268,13 @@
{
try
{
-
+ _log.LogEvent("Encode thread started");
using (AviSynthScriptEnvironment env = new AviSynthScriptEnvironment())
{
+ _log.LogEvent("Avisynth script environment opened");
using (AviSynthClip a = env.ParseScript(_avisynthAudioScript))
{
+ _log.LogEvent("Script loaded");
if (0 == a.ChannelsCount)
throw new ApplicationException("Can't find audio stream");
@@ -289,6 +291,7 @@
int frameBufferTotalSize = MAX_SAMPLES_PER_ONCE * a.ChannelsCount * a.BytesPerSample;
byte[] frameBuffer = new byte[frameBufferTotalSize];
createEncoderProcess(a);
+ _log.LogEvent("Encoder process started");
try
{
using (Stream target = _encoderProcess.StandardInput.BaseStream)
@@ -879,6 +882,8 @@
);
_avisynthAudioScript = script.ToString();
+ _log.LogValue("Avisynth script", _avisynthAudioScript);
+ _log.LogValue("Commandline used", _encoderCommandLine);
}
public void start()
Kurtnoise
9th December 2007, 09:40
that's fine. ;)
btw, could you remind me why avimux_gui has been prefered to divxmux ? I'm lazy to make a search in this huge thread. :)
there are also some bugs which can be closed in the tracker.
berrinam
9th December 2007, 12:52
avimux_gui is the best avi muxer of those we have considered (mencoder, ffmpeg, divxmux) in terms of its features and support for the avi format. The main problem of divxmux is that it only muxes divx video streams; theoroetically, it should work for xvid with a changed FourCC, but that seemed to be faulty. Also, I think it, like mencoder and ffmpeg, was unable to handle multiple audio streams, and was perhaps somewhat limited in terms of ac3 support. avimux_gui simply has none of these problems, as far as I know.
berrinam
9th December 2007, 13:12
Hmmm... I just fixed the drag&drop bugs and then realised you had already done that. But I think your solution just hid (and avoided) the real problem, which is the incorrect line in SaveMode.set. As a result, I don't think we need FileBar_Load any more. So my patch below reverts your fix and fixes the line in SaveMode.set. :)
Index: core/gui/FileBar.cs
===================================================================
--- core/gui/FileBar.cs (revision 436)
+++ core/gui/FileBar.cs (working copy)
@@ -19,13 +19,14 @@
public FileBar()
{
InitializeComponent();
+ DragDropUtil.RegisterSingleFileDragDrop(filename, setFilename, delegate() { return Filter; });
}
private bool saveMode = false;
public bool SaveMode
{
get { return saveMode; }
- set { saveMode = value; filename.AllowDrop = value; }
+ set { saveMode = value; filename.AllowDrop = !value; }
}
public bool ReadOnly
@@ -117,11 +118,6 @@
setFilename(filename.Text);
triggerEvent();
}
-
- private void FileBar_Load(object sender, EventArgs e)
- {
- DragDropUtil.RegisterSingleFileDragDrop(filename, setFilename, delegate() { return Filter; });
- }
}
public class FileBarEventArgs : EventArgs
{
Index: core/gui/FileBar.Designer.cs
===================================================================
--- core/gui/FileBar.Designer.cs (revision 436)
+++ core/gui/FileBar.Designer.cs (working copy)
@@ -62,7 +62,6 @@
this.Controls.Add(this.openButton);
this.Name = "FileBar";
this.Size = new System.Drawing.Size(269, 26);
- this.Load += new System.EventHandler(this.FileBar_Load);
this.ResumeLayout(false);
this.PerformLayout();
berrinam
9th December 2007, 13:38
Here's some code to handle huge delays more friendlily for the user than an error (bug 1846758 (http://sourceforge.net/tracker/index.php?func=detail&aid=1846758&group_id=156112&atid=798476)).
Index: core/details/mux/MuxStreamControl.cs
===================================================================
--- core/details/mux/MuxStreamControl.cs (revision 436)
+++ core/details/mux/MuxStreamControl.cs (working copy)
@@ -93,7 +93,7 @@
private void input_FileSelected(FileBar sender, FileBarEventArgs args)
{
- audioDelay.Value = PrettyFormatting.getDelay(input.Filename) ?? 0;
+ audioDelay.Value = PrettyFormatting.getDelayAndCheck(input.Filename) ?? 0;
raiseEvent();
}
}
Index: core/details/mux/MuxStreamControl.Designer.cs
===================================================================
--- core/details/mux/MuxStreamControl.Designer.cs (revision 436)
+++ core/details/mux/MuxStreamControl.Designer.cs (working copy)
@@ -109,12 +109,12 @@
//
this.audioDelay.Location = new System.Drawing.Point(112, 61);
this.audioDelay.Maximum = new decimal(new int[] {
- 5000,
+ 2147483647,
0,
0,
0});
this.audioDelay.Minimum = new decimal(new int[] {
- 5000,
+ -2147483648,
0,
0,
-2147483648});
Index: core/gui/AudioEncodingTab.cs
===================================================================
--- core/gui/AudioEncodingTab.cs (revision 436)
+++ core/gui/AudioEncodingTab.cs (working copy)
@@ -221,7 +221,7 @@
{
AudioInput = fileName;
- delay.Value = PrettyFormatting.getDelay(fileName) ?? 0;
+ delay.Value = PrettyFormatting.getDelayAndCheck(fileName) ?? 0;
AudioOutput = FileUtil.AddToFileName(PrettyFormatting.ReplaceDelay(fileName, 0),
MainForm.Instance.Settings.AudioExtension);
Index: core/gui/AudioEncodingTab.Designer.cs
===================================================================
--- core/gui/AudioEncodingTab.Designer.cs (revision 436)
+++ core/gui/AudioEncodingTab.Designer.cs (working copy)
@@ -148,12 +148,12 @@
//
this.delay.Location = new System.Drawing.Point(110, 147);
this.delay.Maximum = new decimal(new int[] {
- 10000,
+ 2147483647,
0,
0,
0});
this.delay.Minimum = new decimal(new int[] {
- 10000,
+ -2147483648,
0,
0,
-2147483648});
Index: core/util/PrettyFormatting.cs
===================================================================
--- core/util/PrettyFormatting.cs (revision 436)
+++ core/util/PrettyFormatting.cs (working copy)
@@ -3,6 +3,7 @@
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
+using System.Windows.Forms;
namespace MeGUI.core.util
{
@@ -43,7 +44,30 @@
}
private static readonly Regex delayRegex = new Regex("(?<match>-?[0-9]+)ms");
+
/// <summary>
+ /// Gets the delay from the filename, but warns the user if this delay is larger than
+ /// 10 seconds.
+ /// </summary>
+ /// <param name="filename"></param>
+ /// <returns>The delay, or null if no valid delay was found</returns>
+ public static int? getDelayAndCheck(string filename)
+ {
+ int? delay = getDelay(filename);
+
+ if (delay.HasValue && Math.Abs(delay.Value) > 10000)
+ {
+ if (MessageBox.Show(string.Format("Your input filename suggests the delay is {0}ms ({1}s), " +
+ "which is surprisingly large. Try checking the tool used to create this file to see " +
+ "if it got the delay wrong.\n\nAre you sure this delay is correct?", delay, (delay / 1000)),
+ "Very large delay", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
+ delay = null;
+ }
+
+ return delay;
+ }
+
+ /// <summary>
/// gets the delay from an audio filename
/// </summary>
/// <param name="fileName">file name to be analyzed</param>
Index: packages/tools/oneclick/AudioConfigControl.cs
===================================================================
--- packages/tools/oneclick/AudioConfigControl.cs (revision 436)
+++ packages/tools/oneclick/AudioConfigControl.cs (working copy)
@@ -83,7 +83,7 @@
public void openAudioFile(string p)
{
- delay.Value = PrettyFormatting.getDelay(p) ?? 0;
+ delay.Value = PrettyFormatting.getDelayAndCheck(p) ?? 0;
}
public AudioConfigControl()
Index: packages/tools/oneclick/AudioConfigControl.Designer.cs
===================================================================
--- packages/tools/oneclick/AudioConfigControl.Designer.cs (revision 436)
+++ packages/tools/oneclick/AudioConfigControl.Designer.cs (working copy)
@@ -93,12 +93,12 @@
//
this.delay.Location = new System.Drawing.Point(107, 64);
this.delay.Maximum = new decimal(new int[] {
- 10000,
+ 2147483647,
0,
0,
0});
this.delay.Minimum = new decimal(new int[] {
- 10000,
+ -2147483648,
0,
0,
-2147483648});
The new ranges for the delay NumericUpDowns are [int.MinValue -> int.MaxValue].
Kurtnoise
9th December 2007, 13:53
Hmmm... I just fixed the drag&drop bugs and then realised you had already done that. But I think your solution just hid (and avoided) the real problem, which is the incorrect line in SaveMode.set. As a result, I don't think we need FileBar_Load any more. So my patch below reverts your fix and fixes the line in SaveMode.set. :)
oh well...ok. That's fine. :) I had checked several things but not this one.
Here's some code to handle huge delays more friendlily for the user than an error (bug 1846758).
looks ok...I had too a similar patch but yours it's fine. Apply it anytime.
berrinam
9th December 2007, 14:03
Ok, I hope we're not treading on each other's toes with this one too. :)
This patch fixes bug 1842643 (path to avisynth cannot be set manually) (http://sourceforge.net/tracker/index.php?func=detail&aid=1842643&group_id=156112&atid=798476). In addition, the changes to the registry aren't set until "Save" is clicked on the Settings window. If "Cancel" is clicked, the changes aren't saved to the registry.
Index: core/details/MeGUISettings.cs
===================================================================
--- core/details/MeGUISettings.cs (revision 436)
+++ core/details/MeGUISettings.cs (working copy)
@@ -324,11 +324,7 @@
{
get
{
- Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\AviSynth");
- if(key==null)
- return null;
- else
- return (string)key.GetValue("plugindir2_5");
+ return Util.GetRegistryLocalMachineKey(@"SOFTWARE\AviSynth", "plugindir2_5");
}
set
{
@@ -336,8 +332,7 @@
throw new ArgumentException("Path must be absolute");
if(!System.IO.Directory.Exists(value))
throw new ArgumentException("Directory " + value + " does not exists");
- Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\AviSynth", true);
- key.SetValue("plugindir2_5", value);
+ Util.SetRegistryLocalMachineKey(@"SOFTWARE\AviSynth", "plugindir2_5", value);
}
}
Index: core/gui/SettingsForm.cs
===================================================================
--- core/gui/SettingsForm.cs (revision 436)
+++ core/gui/SettingsForm.cs (working copy)
@@ -157,7 +157,6 @@
defaultLanguage2.DataSource = defaultLanguage1.DataSource = keys;
defaultLanguage2.BindingContext = new BindingContext();
defaultLanguage1.BindingContext = new BindingContext();
- this.avisynthPluginsDir.Text = "" + MeGUISettings.AvisynthPluginsPath;
this.meguiUpdateCache.Text = "" + MeGUISettings.MeGUIUpdateCache;
}
/// <summary>
@@ -1740,7 +1739,6 @@
if (openFolderDialog.ShowDialog() == DialogResult.OK)
{
avisynthPluginsDir.Text = openFolderDialog.SelectedPath;
- MeGUISettings.AvisynthPluginsPath = avisynthPluginsDir.Text;
}
}
@@ -2008,6 +2006,8 @@
settings.FFMpegPath = textBox7.Text;
settings.AftenPath = tbAften.Text;
settings.AedSettings = this.autoEncodeDefaults;
+ MeGUISettings.AvisynthPluginsPath = avisynthPluginsDir.Text;
+
return settings;
}
set
@@ -2066,6 +2066,8 @@
textBox7.Text = settings.FFMpegPath;
tbAften.Text = settings.AftenPath;
this.autoEncodeDefaults = settings.AedSettings;
+ this.avisynthPluginsDir.Text = "" + MeGUISettings.AvisynthPluginsPath;
+
}
}
#endregion
Index: core/util/Util.cs
===================================================================
--- core/util/Util.cs (revision 436)
+++ core/util/Util.cs (working copy)
@@ -30,6 +30,23 @@
public class Util
{
+ public static string GetRegistryLocalMachineKey(string folder, string name)
+ {
+ Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(folder);
+ if (key == null)
+ return null;
+ else
+ return (string)key.GetValue(name);
+ }
+
+ public static void SetRegistryLocalMachineKey(string folder, string name, string value)
+ {
+ Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(folder, true);
+ if (key == null)
+ key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(folder);
+ key.SetValue(name, value);
+ }
+
public static void SetSize(Form f, Size s, FormWindowState state)
{
f.WindowState = state;
check
9th December 2007, 14:34
Thanks for the gop change.
Also, I think it, like mencoder and ffmpeg, was unable to handle multiple audio streams, and was perhaps somewhat limited in terms of ac3 support. avimux_gui simply has none of these problems, as far as I know.
Now I want to argue that you do the opposite of before -- in this case limit the user :). I'd much prefer if MeGUI didn't make it possible to make multi track AVIs. The reasons are mostly the same as why h264-in-avi is a bad idea:
1. They don't behave nicely in a windows environment. The only directshow splitter I know that handles dual audio AVI is haali's splitter, and that doesn't play all normal AVIs properly.
2. There is no technical reason to use dual audio AVI over mp4 or mkv. dual audio MKV is both smaller in filesize and has greater support (I know of no player that handles dual audio AVI anyway :p)
laserfan
9th December 2007, 15:28
MeGUI doesn't scan the whole file first. Depending on your avisynth script, avisynth might, although MeGUI won't generate any such scripts. Can you give me an example of a script which takes minutes to load?You're right about this--sorry, I should have mentioned it first but as I said this was my first attempt w/MeGUI so I didn't know any better. :o
DirectShowSource("movie.grf", fps=23.976, framecount=206236, audio=false)
This is an example of a HD DVD movie where the grf includes Haali Splitter and a VC-1 decoder. It works fine whether Preview is checked or not, but if checked it does crank away for the entire 200k frames and so appears "frozen" to an unsuspecting user.
mroz
9th December 2007, 15:45
So is the problem the splitter then? If it's incapable of random seeking, a request for the middle frame, which the preview initially displays, would then involve fetching all previous frames.
I didn't think Haali ever behaved like that, so presumably there's something odd about the video data? Never seen this myself, but then I don't have HD DVD sources.
laserfan
9th December 2007, 18:44
So is the problem the splitter then?You guys aren't understanding me--there is no problem (that I know of). The first time I tried MeGUI it seemed to be hung-up accessing my disk, so I aborted. Then I did some searching and found others had experienced the same problem. Then I tried again and left it alone, and eventually MeGUI opened, with the Preview window in the background. I added 2+2 and decided there must be a Preview on Open checkbox somewhere. Indeed there was.
I just suggested to default to "preview off" since while I was able to determine what was happening, I saw that others gave-up, think MeGUI was broken somehow.
Sharktooth
9th December 2007, 19:24
the problems exists for other programs too. it's avisynth getting busy coz complex scripts for HD stuff...
ppl never learn to not use 10000000 of filters with HD material...
mroz
9th December 2007, 19:47
the problems exists for other programs too. it's avisynth getting busy coz complex scripts for HD stuff...
ppl never learn to not use 10000000 of filters with HD material...
Um, this is your idea of a complex script:
DirectShowSource("movie.grf", fps=23.976, framecount=206236, audio=false)
?
That's the script laserfan quoted.
berrinam
9th December 2007, 21:59
You guys aren't understanding me--there is no problem (that I know of).But there is a problem. A script as simple as the one you posted should not normally take minutes to load: it should load in a few seconds. We were trying to find out why it took so long.
The first time I tried MeGUI it seemed to be hung-up accessing my disk, so I aborted. Then I did some searching and found others had experienced the same problem. Then I tried again and left it alone, and eventually MeGUI opened, with the Preview window in the background. I added 2+2 and decided there must be a Preview on Open checkbox somewhere. Indeed there was.
I just suggested to default to "preview off" since while I was able to determine what was happening, I saw that others gave-up, think MeGUI was broken somehow.
Thanks for bringing this to light. It is also possible to start the previewer from another thread, which will eliminate the hang (so MeGUI remains responsive while opening the avisynth script). This is definitely a good idea for the case of slow avisynth scripts, so I'll do that soon. Once this is done, I'm not sure whether it will be necessary to turn off the previewer by default.
Kurtnoise
9th December 2007, 22:02
This patch fixes bug 1842643 (path to avisynth cannot be set manually) (http://sourceforge.net/tracker/index.php?func=detail&aid=1842643&group_id=156112&atid=798476). In addition, the changes to the registry aren't set until "Save" is clicked on the Settings window. If "Cancel" is clicked, the changes aren't saved to the registry.
...
patch looks ok for me...
Maybe it's time now to create a patch to move avs plugins not in the Avisynth one as we said earlier..:)
berrinam
9th December 2007, 22:24
I've already got some of that in the works. My avisynth profile patch from quite a while ago did that automatically (using the "extra files" feature of the profile porter). I think that way worked quite well, and I will finish that patch after I have committed my profiles-refactor patch (since it makes handling profiles so much nicer).
laserfan
9th December 2007, 22:58
A script as simple as the one you posted should not normally take minutes to load: it should load in a few seconds...Glad my posts were useful then; usually I would let (little) stuff like this drop, but doom9 is an unusually disciplined board so I thought I would point it out. :)
berrinam
10th December 2007, 10:57
Ok, after some computer failures, I got back to work on my profiles refactor. Here's a new patch which I think is complete (except whatever bugs I've added :P). The main changes are ...
Get the patch here (http://megui.org/berrinam_patches/profiles_refactor/profiles_refactor_3.patch). I've added a new folder, so you'll have to create that yourself and perhaps also add the file manually. The folder is megui/core/details/0_2_6_x_profileloader/, and the file contained in it is Loader.cs. If you need to add the file manually, you can get it from here (http://megui.org/berrinam_patches/profiles_refactor/Loader.cs).
Shall I commit this now?
Kurtnoise
10th December 2007, 11:25
sure, go ahead.
We will see later if there are some bugs with it...:D
/me kidding
I haven't had bugs with it personally.
Sharktooth
10th December 2007, 13:57
maybe he was asking coz zones are missing
Kurtnoise
10th December 2007, 14:48
Sorry, for this off-topic but I missed to reply...
I'd much prefer if MeGUI didn't make it possible to make multi track AVIs. The reasons are mostly the same as why h264-in-avi is a bad idea
not at all...I don't see the point between multi audio tracks in AVI container and AVC stream.
1. They don't behave nicely in a windows environment.
since when ?
The only directshow splitter I know that handles dual audio AVI is haali's splitter, and that doesn't play all normal AVIs properly.
you forgot the one from Guliverkli project and Morgan Stream switcher.
2. There is no technical reason to use dual audio AVI over mp4 or mkv.
there is...the lack support of mp4 and mkv SAPs with multi audio tracks + the free choice to choose whatever we want.
I know of no player that handles dual audio AVI anyway :p)
Tested players comparison
You look for a player that has at least the following features:
CONT-1D AVI with MP3 multi-audio test (MPEG4 ASP + Multiple MP3 2.0 48KHz 96Kbps CBR)
CONT-1E AVI with AC3 multi-audio test (MPEG4 ASP + Multiple AC3 5.1 Eng)
358 results are matching your requirements
http://divxtest.surdvd.com/form/divxtest2_list.php?lang=eng
JarrettH
10th December 2007, 23:06
Does megui look for things like tivtc and colormatrix in the avisynth folder? just wondering because they have been updated and i usually replace them myself (in the avisynth folder)
berrinam
11th December 2007, 00:45
MeGUI has a very simple version handling system: it assumes the user does absolutely nothing to any of the files, so that the current version is the version that MeGUI last installed. There is no support for notifying MeGUI of the changes you have made.
If you don't want MeGUI to overwrite your files, then go to the update window, and set "Ignore updates" for all the files you changed.
SpAwN_gUy
11th December 2007, 16:22
@Berrinam: in post 3523 you might want to edit one word in your quote of SpAwN_gUy - I think that's a rather harsh way to descibe one of your children ;)Eh?
-------
'kay..
i'm waiting for those "nice profiles handling".. to reoganise my code... (and i'm writing some agentGUI (continued).. and maybe some Installer for an agent... and controller(who knows..)..)
and.. BTW.. has anyone seen the "x264farm Profile GUI" (i dont know the proper description, sorry).. the one with two huge EditBoxes... with first and second pass settings?
we've talked about that with berrinam.. and i've posted build in x264farm thread.. but.. no one suggested..
We (and I) really don't know.. how (or to what) to change those boxes..
(my next step in devs will be.. "saving x264Settings itself, but not only the strings.." .. 'cause for now AR is not passed to x264... only to the farm and then is assumed to be lost..)
mroz
12th December 2007, 00:34
Berrinam quoted your original version of "The Whole Megui", before you corrected yours. Both have the typo fixed now.
berrinam
13th December 2007, 07:10
I'm going on holiday. I'll be back in a month. :)
Sharktooth
19th December 2007, 05:08
@kurtnoise: i saw you added VS2008 project files to 0.2.x branch, but im not sure VS2008 can compile the megui sources as they are.
IIRC some changes were needed in trunk to make it happy...
Kurtnoise
19th December 2007, 07:46
should be fine now. So, don't forget to update your svn branch. :)
btw, I use MSVC# 2008 Express Edition...didn't tested with MSVC 2008.
edit: #1842385 & #1842643 can be closed in the bugtracker.
Kurtnoise
19th December 2007, 12:10
Here is a patch to use EnsureVBRMP3Sync() with DSS only:
Index: trunk/megui/AviSynthAudioEncoder.cs
===================================================================
--- trunk/megui/AviSynthAudioEncoder.cs (revision 447)
+++ trunk/megui/AviSynthAudioEncoder.cs (working copy)
@@ -553,11 +553,11 @@
}
}
if (directShow)
+ {
script.AppendFormat("DirectShowSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
+ script.AppendFormat("EnsureVBRMP3Sync(){0}", Environment.NewLine);
+ }
- script.AppendFormat("EnsureVBRMP3Sync(){0}", Environment.NewLine);
-
-
if (audioJob.Delay != 0)
script.AppendFormat("DelayAudio({0}.0/1000.0){1}", audioJob.Delay, Environment.NewLine);
Here is a patch to copy only the function used instead of the 5 ones:
Index: trunk/megui/AviSynthAudioEncoder.cs
===================================================================
--- trunk/megui/AviSynthAudioEncoder.cs (revision 447)
+++ trunk/megui/AviSynthAudioEncoder.cs (working copy)
@@ -782,61 +782,73 @@
}
script.AppendFormat("ConvertAudioTo16bit(){0}", Environment.NewLine);
+ script.AppendLine(@"return last");
-
- script.AppendLine(
+ // copy the appropriate function at the end of the script
+ switch (audioJob.Settings.DownmixMode)
+ {
+ case ChannelMode.KeepOriginal:
+ break;
+ case ChannelMode.ConvertToMono:
+ break;
+ case ChannelMode.DPLDownmix:
+ script.AppendLine(@"
+function x_dpl" + id + @"(clip a)
+ {
+ fl = GetChannel(a, 1)
+ fr = GetChannel(a, 2)
+ c = GetChannel(a, 3)
+ sl = GetChannel(a, 5)
+ sr = GetChannel(a, 6)
+ ssr = MixAudio(sl, sr, 0.2222, 0.2222)
+ ssl = Amplify(ssr, -1.0)
+ fl_c = MixAudio(fl, c, 0.3254, 0.2301)
+ fr_c = MixAudio(fr, c, 0.3254, 0.2301)
+ l = MixAudio(ssl, fl_c, 1.0, 1.0)
+ r = MixAudio(ssr, fr_c, 1.0, 1.0)
+ return MergeChannels(l, r)
+ }");
+ break;
+ case ChannelMode.DPLIIDownmix:
+ script.AppendLine(
@"
-
-return last
-
-function x_dpl" + id + @"(clip a)
-{
- fl = GetChannel(a, 1)
- fr = GetChannel(a, 2)
- c = GetChannel(a, 3)
- sl = GetChannel(a, 5)
- sr = GetChannel(a, 6)
- ssr = MixAudio(sl, sr, 0.2222, 0.2222)
- ssl = Amplify(ssr, -1.0)
- fl_c = MixAudio(fl, c, 0.3254, 0.2301)
- fr_c = MixAudio(fr, c, 0.3254, 0.2301)
- l = MixAudio(ssl, fl_c, 1.0, 1.0)
- r = MixAudio(ssr, fr_c, 1.0, 1.0)
- return MergeChannels(l, r)
-}
-
function x_dpl2" + id + @"(clip a)
-{
- fl = GetChannel(a, 1)
- fr = GetChannel(a, 2)
- c = GetChannel(a, 3)
- sl = GetChannel(a, 5)
- sr = GetChannel(a, 6)
- ssl = MixAudio(sl, sr, 0.2818, 0.1627).Amplify(-1.0)
- fl_c = MixAudio(fl, c, 0.3254, 0.2301)
- ssr = MixAudio(sl, sr, 0.1627, 0.2818)
- fr_c = MixAudio(fr, c, 0.3254, 0.2301)
- l = MixAudio(ssl, fl_c, 1.0, 1.0)
- r = MixAudio(ssr, fr_c, 1.0, 1.0)
- return MergeChannels(l, r)
-}
-
+ {
+ fl = GetChannel(a, 1)
+ fr = GetChannel(a, 2)
+ c = GetChannel(a, 3)
+ sl = GetChannel(a, 5)
+ sr = GetChannel(a, 6)
+ ssl = MixAudio(sl, sr, 0.2818, 0.1627).Amplify(-1.0)
+ fl_c = MixAudio(fl, c, 0.3254, 0.2301)
+ ssr = MixAudio(sl, sr, 0.1627, 0.2818)
+ fr_c = MixAudio(fr, c, 0.3254, 0.2301)
+ l = MixAudio(ssl, fl_c, 1.0, 1.0)
+ r = MixAudio(ssr, fr_c, 1.0, 1.0)
+ return MergeChannels(l, r)
+ }");
+ break;
+ case ChannelMode.StereoDownmix:
+ script.AppendLine(@"
function x_stereo" + id + @"(clip a)
-{
- fl = GetChannel(a, 1)
- fr = GetChannel(a, 2)
- c = GetChannel(a, 3)
- lfe = GetChannel(a, 4)
- sl = GetChannel(a, 5)
- sr = GetChannel(a, 6)
- l_sl = MixAudio(fl, sl, 0.2929, 0.2929)
- c_lfe = MixAudio(lfe, c, 0.2071, 0.2071)
- r_sr = MixAudio(fr, sr, 0.2929, 0.2929)
- l = MixAudio(l_sl, c_lfe, 1.0, 1.0)
- r = MixAudio(r_sr, c_lfe, 1.0, 1.0)
- return MergeChannels(l, r)
-}
-
+ {
+ fl = GetChannel(a, 1)
+ fr = GetChannel(a, 2)
+ c = GetChannel(a, 3)
+ lfe = GetChannel(a, 4)
+ sl = GetChannel(a, 5)
+ sr = GetChannel(a, 6)
+ l_sl = MixAudio(fl, sl, 0.2929, 0.2929)
+ c_lfe = MixAudio(lfe, c, 0.2071, 0.2071)
+ r_sr = MixAudio(fr, sr, 0.2929, 0.2929)
+ l = MixAudio(l_sl, c_lfe, 1.0, 1.0)
+ r = MixAudio(r_sr, c_lfe, 1.0, 1.0)
+ return MergeChannels(l, r)
+ }");
+ break;
+ case ChannelMode.Upmix:
+ script.AppendLine(
+@"
function x_upmix" + id + @"(clip a)
{
m = ConvertToMono(a)
@@ -845,41 +857,46 @@
c = SuperEQ(m,""" + tmp + @"center.feq"")
lfe = SuperEQ(m,""" + tmp + @"lfe.feq"")
return MergeChannels( f.getleftchannel, f.getrightchannel , c, lfe, s.getleftchannel, s.getrightchannel)
-}
-
+}");
+ break;
+ case ChannelMode.UpmixUsingSoxEq:
+ script.AppendLine(
+@"
function x_upmixR" + id + @"(clip Stereo)
{
- Front = mixaudio(Stereo.soxfilter(""filter 0-600""),mixaudio(Stereo.soxfilter(""filter 600-1200""),Stereo.soxfilter(""filter 1200-7000""),0.45,0.25),0.50,1)
- Back = mixaudio(Stereo.soxfilter(""filter 0-600""),mixaudio(Stereo.soxfilter(""filter 600-1200""),Stereo.soxfilter(""filter 1200-7000""),0.35,0.15),0.40,1)
- fl = GetLeftChannel(Front)
- fr = GetRightChannel(Front)
- cc = ConvertToMono(stereo).SoxFilter(""filter 625-24000"")
- lfe = ConvertToMono(stereo).SoxFilter(""lowpass 100"",""vol -0.5"")
- sl = GetLeftChannel(Back)
- sr = GetRightChannel(Back)
- sl = DelayAudio(sl,0.02)
- sr = DelayAudio(sr,0.02)
+ Front = mixaudio(Stereo.soxfilter(""filter 0-600""),mixaudio(Stereo.soxfilter(""filter 600-1200""),Stereo.soxfilter(""filter 1200-7000""),0.45,0.25),0.50,1)
+ Back = mixaudio(Stereo.soxfilter(""filter 0-600""),mixaudio(Stereo.soxfilter(""filter 600-1200""),Stereo.soxfilter(""filter 1200-7000""),0.35,0.15),0.40,1)
+ fl = GetLeftChannel(Front)
+ fr = GetRightChannel(Front)
+ cc = ConvertToMono(stereo).SoxFilter(""filter 625-24000"")
+ lfe = ConvertToMono(stereo).SoxFilter(""lowpass 100"",""vol -0.5"")
+ sl = GetLeftChannel(Back)
+ sr = GetRightChannel(Back)
+ sl = DelayAudio(sl,0.02)
+ sr = DelayAudio(sr,0.02)
return MergeChannels(fl,fr,cc,lfe,sl,sr)
-}
-
+}");
+ break;
+ case ChannelMode.UpmixWithCenterChannelDialog:
+ script.AppendLine(
+@"
function x_upmixC" + id + @"(clip stereo)
{
- left = stereo.GetLeftChannel()
- right = stereo.GetRightChannel()
- fl = mixaudio(left.soxfilter(""filter 0-24000""),right.soxfilter(""filter 0-24000""),0.6,-0.5)
- fr = mixaudio(right.soxfilter(""filter 0-24000""),left.soxfilter(""filter 0-24000""),0.6,-0.5)
- cc = ConvertToMono(stereo).SoxFilter(""filter 625-24000"")
- lfe = ConvertToMono(stereo).SoxFilter(""lowpass 100"",""vol -0.5"")
- sl = mixaudio(left.soxfilter(""filter 0-24000""),right.soxfilter(""filter 0-24000""),0.5,-0.4)
- sr = mixaudio(right.soxfilter(""filter 0-24000""),left.soxfilter(""filter 0-24000""),0.5,-0.4)
- sl = DelayAudio(sl,0.02)
- sr = DelayAudio(sr,0.02)
+ left = stereo.GetLeftChannel()
+ right = stereo.GetRightChannel()
+ fl = mixaudio(left.soxfilter(""filter 0-24000""),right.soxfilter(""filter 0-24000""),0.6,-0.5)
+ fr = mixaudio(right.soxfilter(""filter 0-24000""),left.soxfilter(""filter 0-24000""),0.6,-0.5)
+ cc = ConvertToMono(stereo).SoxFilter(""filter 625-24000"")
+ lfe = ConvertToMono(stereo).SoxFilter(""lowpass 100"",""vol -0.5"")
+ sl = mixaudio(left.soxfilter(""filter 0-24000""),right.soxfilter(""filter 0-24000""),0.5,-0.4)
+ sr = mixaudio(right.soxfilter(""filter 0-24000""),left.soxfilter(""filter 0-24000""),0.5,-0.4)
+ sl = DelayAudio(sl,0.02)
+ sr = DelayAudio(sr,0.02)
return MergeChannels(fl,fr,cc,lfe,sl,sr)
-}
-
+}");
+ break;
+ }
-"
- );
_avisynthAudioScript = script.ToString();
_log.LogValue("Avisynth script", _avisynthAudioScript);
the main goal of these patches is to improve the logfile reading.
Sharktooth
19th December 2007, 15:53
should be fine now. So, don't forget to update your svn branch. :)
btw, I use MSVC# 2008 Express Edition...didn't tested with MSVC 2008.
edit: #1842385 & #1842643 can be closed in the bugtracker.
on my way.
darkKlor
26th December 2007, 20:12
should be fine now. So, don't forget to update your svn branch. :)
btw, I use MSVC# 2008 Express Edition...didn't tested with MSVC 2008.
edit: #1842385 & #1842643 can be closed in the bugtracker.
i'll just confirm for you that it compiles in MSVC 2008, VSTS to be precise. there was no reason why it wouldn't anyway, the compiler is identical
edit: mind u, i will add that AvisynthWrapper.dll and MediaInfo.dll don't get copied to the output directory when you compile... i'm not sure if that's by design?
cogman
27th December 2007, 22:41
Hope this goes here, but I was just doing a triple pass encode (Yay!) and decided that that a pre-render might speed things up a bit. So here is what I was wondering, Would it be possible to do a pass while saving the rendered video for the next pass to give that extra few minutes of speed? How hard would that be to implement as I think it could be a nice speed increase for the multipass people. (that or Im doing something wrong :))
Just a suggestion, like I said, don't know if it belongs here or in the AVC forum. Keep up the good work guys!
Kurtnoise
28th December 2007, 14:57
edit: mind u, i will add that AvisynthWrapper.dll and MediaInfo.dll don't get copied to the output directory when you compile... i'm not sure if that's by design?
I don't think it's by design...:p
@Cogman: I don't think it's doable...but I'm not sure.
Kurtnoise
28th December 2007, 14:58
the main goal of these patches is to improve the logfile reading.
If noone object, I'll commit those patches this weekend.
Sharktooth
28th December 2007, 17:51
ok for me.
Doom9
29th December 2007, 15:13
@cogman: it's not possible. prerender jobs are done by ffmpeg, and your other jobs (you mentioned 3 pass) are done by x264.exe. It's not possible to have one decoder feed multiple encoders concurrently. What you'd need (and it would be a encoder specific solution only) would be for x264 to write out the results of the first pass to a video file (that part is possible), but then there's the problem part: a regular first pass is done at considerably lower quality.. so you cannot use the result of that pass as source for subsequent passes.. instead you'd need a lossless pass and leave out the bits that make a first pass less computationally intensive (subme, partitions, etc.), then you'd need x264 to accept avc input files (that would complicate matters since x264 doesn't support avc input afaik), and since avc is a lot more cpu consuming to decode, it would slow down subsequent passes (that's the reason why the prerendering job uses a lossless codec that takes very little in terms of cpu to decode.. we want to spend as little cpu cycles as possible during the actual encoding passes) - so in the end you'd likely end up gaining nothing at all.
You might have to ask people who work on decoders for the actual details, but I think conceptually, a decoder that can serve multiple encoders, while possible, would be a real PITA.. either you'd need synchronization between the various encoders to each requests the same frame at the same time, or, the decoder would have to keep multiple virtual sessions with their state so it can continually serve the proper frame (as you might know, in today's video codecs frames depend on each other so you can't just decode frame X, you would need to have some previous frames decoded).
check
29th December 2007, 15:54
it's possible currently with xvid, but only in a hackish way. There was an avisynth plugin that would tee off the video input and create a first pass stats file.
squid_80
29th December 2007, 17:35
It's a piece of cake to do it within an avisynth script. See http://forum.doom9.org/showthread.php?t=132406
To sum up: The first time the script is processed the output is encoded into a lossless avi. The next (and subsequent) time the script is processed the lossless avi is automatically used as input.
Now if we just had a lossless codec that could decompress at a speed close to mpeg2...
mroz
29th December 2007, 23:55
squid_80: Aiui that isn't what cogman was after. He wants the prerender step to occur at the same time as the first pass.
I don't see why the output from the avs file can't be teed into both a lossless encoder & the codec for a first pass, though I don't know how you'd do that under Windows. However I can't see any worthwhile advantage to doing that over running a distinct prerender step.
squid_80
30th December 2007, 05:40
squid_80: Aiui that isn't what cogman was after. He wants the prerender step to occur at the same time as the first pass.
That's exactly how it works. Read the linked thread completely.
(When I said "the first time the script is processed" I was referring to the first pass.)
Kurtnoise
30th December 2007, 10:54
10x for the hint...added to the todo list. :)
Raere
30th December 2007, 19:19
Now if we just had a lossless codec that could decompress at a speed close to mpeg2...
HuffYUV isn't fast enough for you?
squid_80
30th December 2007, 21:47
Not for plain decoding, no. Decoding huffyuv = ~80fps. Decoding mpeg2 = ~210fps.
check
7th January 2008, 10:24
Development versions are only used by 4% of MeGUI users (rated by hits to the two upgrade.xml files). I think it would be nice to increase this number so there are more bugtesters.
You could easily do this by making the stable/development checkbox easier to find.
Sharktooth
7th January 2008, 17:15
it was my intention to move the stable/dev selection in the auto-update window.
mroz
13th January 2008, 14:06
A minor suggestion for the AviSynth Script Creator.
For an anamorphic encode, currently the suggested resolution for resizing defaults (i think) to the largest that will fit within the source resolution, whilst maintaining the ratio of x-pixel-count-after-cropping:y-pixel-count-after-cropping.
Personally, if I'm doing an anamorphic encode I want as few transformations as possible, in order to minimise degradation. Therefore I'd prefer it if the default suggested resolution was simply the resolution of the source after cropping is applied.
This gives the same result if only width or height is cropped, but avoids up scaling when both values are cropped.
Opinions?
Mutant_Fruit
4th February 2008, 03:41
I threw up a quick patch onto the issue tracker in sourceforge. I'm not sure if that's checked regularly or not, so i'm just posting a link here to it:
http://sourceforge.net/tracker/index.php?func=detail&aid=1886000&group_id=156112&atid=798478
Let me know if those kinds of patches are ok or not before i waste time refactoring things which won't be accepted ;)
Sharktooth
4th February 2008, 03:51
patches are always well accepted.
i cant actually monitor the tracker regularly. also i have a new job and they dont want me to mess with OSS... but i will be back as soon as i manage to have a new contract.
rebkell
4th February 2008, 18:49
I haven't read all the posts, forgive me if it's already been discussed, but I would like for Avisynth Creator to default to the d2v or source file name when saving it, it's the only part of the process where I actually have to type in a name, otherwise I can click through the whole process, with the exception of supplying the avs file name.
Carpo
4th February 2008, 19:29
patches are always well accepted.
i cant actually monitor the tracker regularly. also i have a new job and they dont want me to mess with OSS... but i will be back as soon as i manage to have a new contract.
since when can a comp tell you what to do outside of work, if you want to work on OSS after work hours you should be able to
check
5th February 2008, 05:21
Ever since you are allowed to sign a common law contract.
Sharktooth
5th February 2008, 16:37
since when can a comp tell you what to do outside of work, if you want to work on OSS after work hours you should be able to
they can.
Sharktooth
5th February 2008, 19:49
0.2.6.1044
- (Kurtnoise) updated MediaInfo library & his wrapper.
- (Kurtnoise) [neroConfigurationPanel] added vBitrate_ValueChanged() event for ABR & CBR checking.
- (Kurtnoise) display only the function used in the avs script for audio encodings instead of the 5 ones.
- (Kurtnoise) use EnsureVBRMP3Sync() with DirectShowSource only.
- (Kurtnoise) [JobQueue] changed public to internal for the JobChangeEvent (to fix the compilation within MSVC# 2008).
- (Kurtnoise) [AviSynthWindow] fixed width & height for Crop checkbox when "overcrop to achieve mod16" is selected (#1852845).
- (Kurtnoise) [AviSynthAudioEncoder] fixed bug #1850574 for DTS files sources.
unstable version builds are frozen until the profiles refactoring gets completed.
Mutant_Fruit
6th February 2008, 00:54
Another few patchs :) Hopefully they won't take long to review.
http://sourceforge.net/tracker/?group_id=156112&atid=798478
Kurtnoise
6th February 2008, 13:23
I applied few of them...I've no time for the moment for extra reviews. Maybe this weekend.
chros
7th February 2008, 20:56
Bugs:
- anamorphic mode and overcrop 16 in avisynth creator: megui should give always the same SAR values (I don't know how the SAR values are calculated from this DAR) with different cropping settings (now it's almost always different)
- you should update DGIndex to 1.5 RC2, because the current b10 has the colorimetry "bug" (all dvds are treated as BT.709, it uses the "1" matrix instead of "5")
requests:
- can you make the open dialog is "file droppable" in avisynth creator and in d2v creator (like on the main form) ?
- can you make a checkbox to apply or not apply DRC with AC3 and DTS sources on the main form (NIC sources) (and other sources, where it's appropriate) ? Now, megiu always apply DRC with the DRC=1 parameter ...
Thanks
Sharktooth
8th February 2008, 04:41
feature requests and bug reports should be posted on the appropriate trackers on the MeGUI project page on sourceforge.
thanks.
chros
8th February 2008, 10:45
feature requests and bug reports should be posted on the appropriate trackers on the MeGUI project page on sourceforge.
OK. Submitted ...
Mutant_Fruit
11th February 2008, 13:01
I applied few of them...I've no time for the moment for extra reviews. Maybe this weekend.
Just wondering what the outlook is for the patches on the issue tracker.
Also, to give a heads up on what i'm working on now: There are issues in mono's implementation of SettingsBase and/or ApplicationSettingsBase which prevent MeGUI from starting up. I'm working on fixing that.
There are also issues with the serializer which prevents mono from opening settings which were serialized on .NET as opposed to with mono. I'm creating a testcase for that to submit to mono.
Kurtnoise
11th February 2008, 21:17
Before reviewing X-plateform patches, I'm starting with patches which fix bugs...
@Sharktooth: could be great to update the bugs/patches trackers on SF...you know that I can't do it myself. ;)
Sharktooth
12th February 2008, 14:27
eh... im trying to find the time...
EDIT: i updated your permissions on MeGUI trackers.
Mutant_Fruit
13th February 2008, 01:40
And we have a winner :)
I'm just getting a few more patches ready for MeGUI, once all those are in you'll be cross platform. As for how you'll actually encode on linux, well, that's another issue altogether. I don't know too much about media on linux, but it should be possible to hook into gstreamer to do the heavy lifting.
http://img112.imageshack.us/img112/5045/meguilinuxme3.th.png (http://img112.imageshack.us/my.php?image=meguilinuxme3.png)
mroz
13th February 2008, 03:14
And we have a winner :)
I'm just getting a few more patches ready for MeGUI, once all those are in you'll be cross platform. As for how you'll actually encode on linux, well, that's another issue altogether. I don't know too much about media on linux, but it should be possible to hook into gstreamer to do the heavy lifting.
http://img112.imageshack.us/img112/5045/meguilinuxme3.th.png (http://img112.imageshack.us/my.php?image=meguilinuxme3.png)
Um, isn't MeGUI so heavily reliant on AviSynth that removing this dependance would effectively require a rewrite?
As to Avisynth under linux, aiui v2 isn't stable under Wine & v3 is not only pre alpha, but pretty much stalled too.
Or am I missing something?
Avisynth is still one of the big reasons I use Windows rather than linux.
Mutant_Fruit
13th February 2008, 03:44
As to Avisynth under linux, aiui v2 isn't stable under Wine & v3 is not only pre alpha, but pretty much stalled too.
I thought AviSynth 2.5x under wine worked fine? Maybe not the latest 2.5x, but there are versions which do run...
EDIT: Quick google: http://bugs.winehq.org/show_bug.cgi?id=1707 Result: AviSynth is known to work under Wine.
mroz
13th February 2008, 04:03
Good news if true. I've not tried it - only read on several occasions that while it 'works', it isn't stable.
This thread is almost equally old: http://forum.doom9.org/showthread.php?t=81793&page=2
It implies 2.5.2 worked then. I don't know if there's been any progress with more recent versions since.
However going back to 2.5.2 isn't an option for me. I rely on MT & I think that's only 2.5.7 atm.
...Hm, more recently there's: http://forum.doom9.org/showthread.php?p=746967#post746967 with 2.56 mostly working.
But throughout there are descriptions of various aspects not working properly (two being subtitling & anything involving implicit clip variables). I can really do without a further source of bugs that need working around; I usually manage to generate enough problems on my own without further help ;)
Adub
13th February 2008, 05:05
I have heard rumors that 2.5.7 is working with wine, but I can't test it myself. Just yet, atleast. I may do a fresh install this weekend.
Gusar
13th February 2008, 12:30
I've been doing a lot of encoding with Avisynth in wine with no problems whatsoever. Avisynth versions 2.5.7 and 2.5.8 Alpha 2 with wine versions 0.9.42 and onward. No subtitling, but I did use Mrestore and unDEFTmatcher which are quite complicated scripts. And if those work, probably everything works.
Sharktooth
13th February 2008, 15:06
@Mutant_Fruit: great job bro:)
mroz
13th February 2008, 15:14
I know it's lame of me to ask rather than test it myself, but I don't have a recent linux install atm. Any chance one of you could try a script which uses MT & SetMTMode()? Also if possible MVTools? If neither of those break it, that'd be an amazing sign & make it a workable alternative. Ooh, a headless quad box for dedicated encoding, that would be nice; linux is so much easier to automate tasks under. Sorry - just the first thoughts that went through my head. It's mostly empty space in there, so they're hard to stop before they drop out the other side.
Mutant_Fruit
13th February 2008, 16:01
However going back to 2.5.2 isn't an option for me. I rely on MT & I think that's only 2.5.7 atm.
Well, if the choice is between:
A) Nothing and,
B) Something but without MT
I think the choice is obvious ;) Sure we'll see how it goes anyway. I'm not quite sure how everything will hook in with the linux counterparts yet. AutoUpdate will have to be altered to cope, launching commandline apps may have to be altered. I don't really know ;)
mroz
13th February 2008, 18:00
It's certainly a great achievement, don't get me wrong. I'm just being selfish & thinking purely about my own applications. Personally I couldn't live without MT for my slow scripts & they're the kind I'd want to hand off to a headless linux box.
Either way though it's a good sign for future cross platform development of MeGUI :cool:
Sharktooth
13th February 2008, 18:01
if you're going to use linux bins for commandline tools it will be a PITA...
as long as you use wine, paths and stuff will be ok in linux...
Kurtnoise
13th February 2008, 20:39
i updated your permissions on MeGUI trackers.
I don't think so...or I'm blind.
When I click on "Admin" link, I get this error message : "You do not have admin status on any trackers for this project"...
@Mutant_Fruit: could you post also the MonoDevelop File project in the patches tracker ? thanks...:)
Mutant_Fruit
13th February 2008, 21:52
could you post also the MonoDevelop File project in the patches tracker ?
MonoDevelop can load .sln files, so there's no need for separate solution files (luckily). There are one or two small issues with the .sln files with the references, but all you have to do is remove the existing reference then add it back in again and everything's ok. I believe it's a case sensitivity issue, nothing important though. I'll put i a fix for that whenever i bother seeing what exactly the issue is ;)
if you're going to use linux bins for commandline tools it will be a PITA...
as long as you use wine, paths and stuff will be ok in linux...
What exactly would the issue be with linux bins? Assuming the commandline options are the same, you should just have to change the 'path' referenced in the MeGUI settings to point to the linux bin. Then it should work fine... right?
I've already submitted a patch to MeGUI to use Path.Combine() for combining all paths, so there shouldn't be an issue there.
EDIT: Bear in mind i know nothing about encoding in linux ;)
Sharktooth
13th February 2008, 21:59
I don't think so...or I'm blind.
When I click on "Admin" link, I get this error message : "You do not have admin status on any trackers for this project"...
log off and re-log back on.
What exactly would the issue be with linux bins?
The issue is not all tools are available as linux native binaries (DGIndex for example...)
Mutant_Fruit
13th February 2008, 22:11
Kurtnoise:
The patch to fix the calculator was applied incorrectly ;)
Line 212 in calculator.cs should be:
this.nbFrames.Maximum = new decimal(new int[] {
10000000,
10000000,
10000000,
0});
For applying patches on windows, this should do the job:
http://gnuwin32.sourceforge.net/downlinks/patch-bin-zip.php
Mutant_Fruit
13th February 2008, 22:13
The issue is not all tools are available as linux native binaries (DGIndex for example...)
Ah, gotcha. But for tools which have native linux versions, wouldn't it be better if we used the native version as opposed to the wine version?
Sharktooth
14th February 2008, 13:48
not necessarily. wine is not an emulator... it's more like a wrapper. also having separate binaries on the auto-update server could be problematic.
Bigmango
14th February 2008, 22:56
Hi,
I seem to get the same bug someone got in this thread:
http://forum.doom9.org/showthread.php?p=1055817&highlight=megui+tahoma#post1055817
Megui has always been running fine, but sine I have installed the SP1 for vista I get a fatal error window when starting megui.
The fatal error is about the font Tahoma not supporting the style "regular", followed by a stack trace System.Drawing.Font.CreateNativeFont() ..... etc.... in Megui.MainForm
So, I can't start megui anymore...:confused:
EDIT: ok, I found the problem. For some reason the tahoma.ttf has disapeared from my fonts folder. Copying the font file back into the folder fixed the problem.
Mutant_Fruit
17th February 2008, 22:49
This is just a subtle nudge about those patches on the issue tracker ;)
Mutant_Fruit
22nd February 2008, 15:20
http://sourceforge.net/tracker/index.php?func=detail&aid=1892357&group_id=156112&atid=798478
http://sourceforge.net/tracker/index.php?func=detail&aid=1892350&group_id=156112&atid=798478
http://sourceforge.net/tracker/index.php?func=detail&aid=1888263&group_id=156112&atid=798478
If i can at least get those three into SVN I could continue the effort of changing the 1 or 2 remaining areas of code that affect MeGUI usability on non-windows platforms...
I hope i'm not being too annoying at this stage ;)
Sharktooth
22nd February 2008, 16:19
do you want SVN access?
seriously, i cant dedicate any time to megui dev right now. however, if you want i can add you as a project developer with full SVN access.
Mutant_Fruit
22nd February 2008, 20:32
Sure, that'd be fine with me. The changes can always be reverted if someone disagrees with em, tis the beauty of SVN, though i doubt anyone will.
Sharktooth
23rd February 2008, 04:39
well, we should discuss a couple of things then.
now it's almost 5AM and i really need to sleep.
Mutant_Fruit
23rd February 2008, 13:28
I'll PM you my email address then, unless you want to discuss stuff here...
EDIT: You seem to be out of PM space ;) alan.mcgovern@gmail.com will do it.
Sharktooth
5th March 2008, 13:39
sorry, i missed your reply.
ok, let's discuss it here, maybe there are others interested.
megui repository is divided into several tags and branches.
the tags directory contains the megui stable version.
while the trunk contains the current development version.
branches dir contains parallel development projects (like megui x264farm version).
1st and most important thing is every fix must be ported to both the stable and dev versions. new features only in trunk (dev), except, changes in the codecs or other 3rd party software commandlines or API.
also we usually discuss breaking changes and new features.
any question?
EDIT: btw, i added you...
bob0r
6th March 2008, 08:32
@Sharktooth:
You can use this .exe for megui update (rename to x264.exe :p):
http://forum.doom9.org/showthread.php?p=1108916#post1108916
In the future it will go on request or monthly updates or something (AQ, git(svn) or not, will always be part of the .exe)
Sharktooth
6th March 2008, 13:57
already up :)
bob0r
7th March 2008, 09:51
Fixed x264.exe 748 online:
http://forum.doom9.org/showthread.php?p=1109544#post1109544
Kurtnoise
9th March 2008, 14:52
The patch to fix the calculator was applied incorrectly ;)
IIRC, the last patch for this has been posted after the closing. Anyway, it's fixed now.
@Sharktooth: could be great to update some packages (mkvtoolnix, ffmpeg, mencoder, mp4box, DGIndex (https://sourceforge.net/tracker/index.php?func=detail&aid=1889482&group_id=156112&atid=798476))...I'm updating MediaInfo library and his wrapper.
Sharktooth
9th March 2008, 16:03
DGIndex needs fixing in the megui code.
The build in auto-update is the latest working build that the actual code supports.
however tomorrow ill update some packages.
Kurtnoise
9th March 2008, 17:00
DGIndex needs fixing in the megui code.
oO really ? I need to check this because I've made a quick test with the RC3 and it works like a charm. :)
Mutant_Fruit
10th March 2008, 00:18
@SharkTooth: Thanks for that. I'm heading over to france in a few hours. I'll be back late on thursday, so i'll probably ping ye some time on friday or over the weekend if i have any questions/problems.
Thanks.
Sharktooth
10th March 2008, 14:00
@M_F: you're welcome.
@Kurtnoise: IIRC, something changed on dgindex about audio tracks selection.
EDIT: look here -> https://forum.doom9.org/showthread.php?p=1063355#post1063355
Kurtnoise
10th March 2008, 19:44
mmh...you're right. I just tested d2v file creation. I'll have a look asap.
Sharktooth
11th March 2008, 03:55
Berrinam is still MIA?
Kurtnoise
13th March 2008, 13:48
Hi,
Should I rebuild the old x264 config (to have zones, extra commands, etc...) for the dev branch or we wait the berrinam's back ?
Kurtnoise
13th March 2008, 13:49
Berrinam is still MIA?
falling in love maybe...:D
Sharktooth
13th March 2008, 13:53
Hi,
Should I rebuild the old x264 config (to have zones, extra commands, etc...) for the dev branch or we wait the berrinam's back ?
lets wait few other days. if he's still MIA we can either:
1- Revert to the old profiles code
2- Complete the profiles refactor adding the missing zones and custom CLI options fox x264
3- Go ahead without zones and add custom CLI options only.
Kurtnoise
13th March 2008, 14:04
ok...shouln't be too complicated anyway.
btw, last night I checked the new DGindex stuff for audio streams extraction and it seems to be more complicated than I thought. We need to run a special command first to create a logfile to have each tracks IDs, then read those datas from the file and put them in the current DGindex command...so, great. :-/
I'll see what can I do for this part....
Sharktooth
13th March 2008, 14:07
eh, i had a look at it some time ago and i gave up since i had not enough time to get it working.
buzzqw
13th March 2008, 14:26
@Kurtonise13
yea, confirm; i use the same approach on automkv
First check if stream is mpeg2 (mediainfo) if yes, lauch dgindex in info mode, parse the log and add the audio tracks to list
If video is mpeg4, run dgavcdec demuxing all audio tracks and indexing the file, then add audio to list
BHH
Kurtnoise
14th March 2008, 14:06
btw, last night I checked the new DGindex stuff for audio streams extraction and it seems to be more complicated than I thought. We need to run a special command first to create a logfile to have each tracks IDs, then read those datas from the file and put them in the current DGindex command...so, great. :-/
I'll see what can I do for this part....
There is also an alternative: using the track IDs supply by the DVDDecrypter stream infos file. :) Several parts in the current code use this. But an issue remains if we use this way : when users don't have a such file. So, the right trick seems to use the logfile created by DGindex. What do you think ?
Sharktooth
14th March 2008, 17:26
DVD Decrypter is dead and in some countries even illegal.
Sadly, we should not rely on it anymore but that means rewriting some code...
Buzzqw method is the right way to go (yeah italians do it better:p) but as i said, it needs some time and will to rewrite some parts of megui.
stax76
14th March 2008, 18:00
I extract all streams and rename the files replacing the index with language code and name extracted from IFO.
buzzqw
14th March 2008, 20:32
yes.. if have an ifo.. but with a mpeg stream, not belonging to dvd.. it's hard to tell language
on automkv i use vstrip to determine audio id/languages (on ifo) and then allow dgindex to demux only tracks user selected
BHH
Mutant_Fruit
23rd March 2008, 01:56
This is the current constructor. This throws a null ref exception in Mono because of a a missing null-check which prevents MeGUI from loading:
class JobQueueSettings : ApplicationSettingsBase
{
public JobQueueSettings(IComponent c, string k)
:base(c, k)
{}
}
If i use an alternate base constructor, everything loads up fine
class JobQueueSettings : ApplicationSettingsBase
{
public JobQueueSettings(IComponent c, string k)
:base(k)
{}
}
My understanding of the whole ApplicationSettingsBase stuff isn't good enough to know if that's a safe change or not. If that's a safe change, am i good to commit that? That'll allow MeGUI to run on Mono.
bob0r
23rd March 2008, 06:28
Megui x264 config: RC and ME > Macroblock Options
When you select Adaptive DCT (--8x8dct), --i8x8 should be enabled also, this is a bug. Please fix it :)
Also i8x8 is on by default default: --partitions "p8x8,b8x8,i8x8,i4x4"
Edit:
Also please update --analyse to --partitions. Thanks
Kurtnoise
24th March 2008, 08:37
This is the current constructor. This throws a null ref exception in Mono because of a a missing null-check which prevents MeGUI from loading:
class JobQueueSettings : ApplicationSettingsBase
{
public JobQueueSettings(IComponent c, string k)
:base(c, k)
{}
}
If i use an alternate base constructor, everything loads up fine
class JobQueueSettings : ApplicationSettingsBase
{
public JobQueueSettings(IComponent c, string k)
:base(k)
{}
}
It's fine for me if it doesn't break anything else...
Kurtnoise
24th March 2008, 08:45
Megui x264 config: RC and ME > Macroblock Options
When you select Adaptive DCT (--8x8dct), --i8x8 should be enabled also, this is a bug. Please fix it :)
ok...
Edit:
Also please update --analyse to --partitions. Thanks
both are correct...
Mutant_Fruit
24th March 2008, 16:40
It's fine for me if it doesn't break anything else...
From what i can tell, it's ok to make this change, so i'm going to go ahead and commit this. Let me know if any issues pop up that i've missed. The fix is in revision 479, so things should Just Work (TM) on Linux now. Encoding and all that doesn't work, that needs to be set up, but MeGUI starts up.
bob0r
26th March 2008, 01:53
ok...
both are correct...
Yes, but x264 --help shows --partitions, why not make it match the x264 git code, just logical.
Thanks :)
Kurtnoise
26th March 2008, 10:49
why ? lazyness probably..;)
Anyway, if you check the current x264 code (formely common.c), you can see that it's still there fortunately...
bob0r
26th March 2008, 12:21
why ? lazyness probably..;)
Anyway, if you check the current x264 code (formely common.c), you can see that it's still there fortunately...
YES i know that, pengvado left it there because he is such a nice guy :)
I just say: It would be better if you renamed it just to match Current x264 settings when you type x264 --help.
Clarity > Sanity!
P.S.
If you fixed the i8x8 issue, please update the stable version on the updater.... Okay Sahrktooth?
Sharktooth come on irc tonight 00:00-04:00 or tomorrow please, got something to run by you :)
Sharktooth
26th March 2008, 16:35
ill see what i can do
Kurtnoise
26th March 2008, 21:49
@bob0r: it's done...
bob0r
27th March 2008, 01:51
@bob0r: it's done...
Muchas gracias!
Sharktooth
27th March 2008, 15:02
0.2.6.1046 is up on the autoupdate and on sourceforge.
this should be the last 0.2.x release until something new comes out...
bob0r
31st March 2008, 06:28
@Sharktooth
Can you please update MeGUI with the proper DVD target sizes:
373MB 1/12 DVD
559MB 1/8 DVD
746MB 1/6 DVD
1119MB 1/4 DVD
1493MB 1/3 DVD
2239MB 1/2 DVD
The new x264 tv rules 2008 will also include these.
Edit:
Also add the AQ GIT x264 build to megui asap :D
http://forum.doom9.org/showthread.php?p=1119815#post1119815
Tacio
31st March 2008, 18:31
and what about 0.3.0.1004? any chance for update? :)
Sharktooth
1st April 2008, 02:25
https://forum.doom9.org/showthread.php?p=1119781#post1119781
~bT~
1st April 2008, 04:07
^ so no more updates Sharktooth? :(
poisondeathray
1st April 2008, 04:13
^ so no more updates Sharktooth? :(
Please say it isn't so :(
I just wanted to say many people appreciate your work Sharktooth, and the efforts of the whole development team.
73ChargerFan
1st April 2008, 05:29
Let me also extend my deepest thanks to Sharktooth and everyone else behind MeGUI. I've been struggling with learning to encode in my spare time for a year and a half, and I couldn't have gotten anywhere without MeGUI. Command line operations and tools just aren't my thing.
So, thank you.
bob0r
1st April 2008, 06:49
Hell we do need your great work.... keep it going Shark!!
Please update megui profile and x264.exe, we all need to be AQified! :D
IRC me for good feelings :p
mroz
1st April 2008, 23:31
Oh bugger.
Not much I can add. Each of the devs will be missed if they choose to leave. They've all done great work. There are /many/ happy Megui users who never post or make their appreciation known in other ways.
The devs could choose to ignore overly critical or irrational users, but it's not always easy & one might well feel that one shouldn't have to.
I would hope that such reasons wouldn't be the principal cause of anyone leaving, as that would be a sad waste, but that's down to each dev.
Doom9
2nd April 2008, 19:35
You know, back in the day when I was running the megui show, there were a couple of times where I was pretty darned close to just throwing the towel because I was so sick and tired of people constantly bitching about something I invested large part of my free time of over one year. Imagine working for a charity and instead of being grateful, the people you help constantly give you grief. At some point you've just had it.
Try to see it from a different perspective: if you're reasonably proud of your product, if somebody comes along and screams bug, without doing anything even remotely related to proper verification, basically they call your work defective even though it isn't. That's not a compliment you're looking for. The least bit of courtesy you should show every freeware developer is proper research before calling something defective. Unless you are sure something is broken, don't call it broken. Similarly, if the answer is no, leave it at that, even if you do not understand the reasons. Your time would be better spent learning to code and make the change yourself if you find it worthwhile (and being a community project changes are still subject to approval before being committed into the mainline code.. that's how it works for open source projects in general) - rarely should you insist if you are really certain that the person on the other end just didn't understand your idea (often, images can help in such a case.. words can be misconstrued a lot more easily). Similarly, if people take away your time with trivial things.. it is just a waste of your time and you could do more useful things in the meantime. Accumulate just a few minutes of wasted time each day.. it eats away at you.
P.S. Every so often I also encounter people that treat me in a way where I feel it would be better if I just closed down the site and moved on to something different. You get used to the obvious insults, but every now and then somebody really finds that hole in your body armor and really thrusts the blade in - and it takes a lot to come back from that. Just as in real life, some things really get to you - the other party might not even realize their mistake since we don't have facial expression and body language online. The reaction might be too strong - but in the end we're all human and each and everybody reacts differently.. haven't you ever said or done something in the heat of the moment that you wouldn't have done if you had spent an hour cooling off (doing sports, smashing something until you can no more, etc.)?
bob0r
3rd April 2008, 10:53
Well whatever the future may hold, i love megui, and apparently so do thousands of other users.
0.01% LOUD complaining people
99.99% silent happy users
MeGUI + x264 is an absolute killer combination for proper video encoding!!!
@sharktooth
Thanks for adding x264 808M (ghost edition :D) to megui!!
See you soon cowboy..... FFFFINISH HIM!
Kurtnoise
4th April 2008, 14:23
well, I'm still there...coz I would like to implement and update several things this weekend.
rack04
4th April 2008, 14:52
well, I'm still there...coz I would like to implement and update several things this weekend.
Hip Hip Hurray! Thanks for your continued effort in developing this great program.
~bT~
4th April 2008, 14:57
@ Kurtnoise13
thank you sir!!!
trex
4th April 2008, 15:06
@ Kurtnoise13
I have been the more silent forum member here so far but I want to let you know that MeGUI is my favorite encoding UI.
I would love to see it further developped in the future.
:)
Best, trex
Mutant_Fruit
4th April 2008, 15:07
Just a quick update as to the status of the Mono port.
At the moment I'm tied up with no free time to spend on MeGUI. Monsoon, the GUI for the bittorrent library I develop has recently been accepted (http://monotorrent.blogspot.com/2008/04/there-was-meeting-yesterday-for.html) to the Suse linux distribution. I have two weeks before feature freeze, and 4-6 weeks before commit-freeze.
So i probably won't be doing too much of anything else between now and then. I've a lot to be working on ;)
As to the recent debackle that the MeGUI devs had, i think this link may be helpful. I watched it a few days ago and it's definitely changed my outlook on how to deal with bugreports/contributors to opensource projects:
http://video.google.nl/videoplay?docid=-4216011961522818645
Theliel
4th April 2008, 19:49
My English isn't good enough for explain the gratitude and respect that (i'm sure) the most of us have with Shark and Kurtnoise.
It's true that sometimes all of us can be very... arrogant? or we write incoherent post or... but all your work are unquestionable and very important for all of video coding World, and the same words for others members like our friend Loren and others, that make all of this possible, in all grades
mroz
5th April 2008, 04:50
@Kurtnoise13: Great to know you're still active :)
@Mutant_Fruit: Seriously informative vid from the SVN guys - I've just watched the whole thing, despite meaning only to take a brief look. Most of the projects whose development I track could benefit from applying those ideas.
Sharktooth
5th April 2008, 13:39
Mutant_fruit: that's why we asked to use the megui trackers on SF. so we can have more control and a "centralized view".
ill ask the mods to close all the topics regarding megui except this one.
~bT~
5th April 2008, 13:58
^ closing all topics wouldnt be right. there will be 20 new threads created each day for minor megui issues..
Kurtnoise
5th April 2008, 15:59
beta testers needed to test the new AQ part (http://www.mediafire.com/?1xd3mh6rxen)...Zones has been reintroduced but doesn't work yet.
@devs: I switched the B-Frames part to the Main tab to introduce AQ in the Advanced one. Is it ok ? what do you think about that ?
bob0r
5th April 2008, 16:24
Where would you like reports of cosmetical fixes and stuff like --filter = --deblock and --analyse = --paritions in the future?
Cosmetical fixes like:
x264 config > RC and ME > Quant options:
Mixed Reference frames
Mixed Reference Frames
f > F
x264 config > RC and ME > Misc:
Encoder interlaced
Encoder Interlaced
i > I
.... and many more small none consistency examples in the Advanced tab :)
Want me to name them all? :)
so all the less important stuff....
Kurtnoise
5th April 2008, 17:36
Where would you like reports of cosmetical fixes and stuff like --filter = --deblock and --analyse = --paritions in the future?
Cosmetical fixes like:
x264 config > RC and ME > Quant options:
Mixed Reference frames
Mixed Reference Frames
f > F
x264 config > RC and ME > Misc:
Encoder interlaced
Encoder Interlaced
i > I
.... and many more small none consistency examples in the Advanced tab :)
Want me to name them all? :)
so all the less important stuff....
sure...http://sourceforge.net/tracker/?group_id=156112&atid=798476
tebasuna51
6th April 2008, 03:11
@dev's
I suggest replace the NicAudio.dll by NicAudio.dll v2.0 (http://www.codeplex.com/NicAudio).
The NicAc3Source function is improved to solve some bugs detected:
- changes in 'dsurmod' (http://forum.doom9.org/showthread.php?p=1071652#post1071652)by mroz
- problems with some 'acmod' values (http://forum.doom9.org/showthread.php?p=976506#post976506) by Raven2x using MeGui.
- and mroz Dual mono MeGui bug (http://sourceforge.net/tracker/index.php?func=detail&aid=1865246&group_id=156112&atid=798476)
Some changes in AviSynthAudioEncoder.cs are needed:
case ".mpa":
case ".mpg":
case ".mp2":
// script.AppendFormat("NicMPASource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
// break;
case ".mp3":
script.AppendFormat("NicMPG123Source(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
The NicMPASource function don't exist in v2.0 because is replaced with NicMPG123Source with support for VBR (also for mp2).
NicMPG123Source updated to new version (http://forum.doom9.org/showthread.php?p=1102957#post1102957) (mpg123-lib of the LAME project)
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;
Finally the Bass libraries can avoid the problem of use DirectShow filters to decode some common formats like aac, ogg, flac, wma, ...
Most users have DirectShow configured to stereo output (and other settings for the audio equipment attached to the PC), not aproppriate for transcoding tasks.
The new version 2.4 and some changes in BassAudio.dll (AviSynth interface) seems guarantee correct decoding for:
case ".ogg": // (1) = BassAudio.dll 2.4, Bass.dll 2.4 required
case ".mp1": // (1)
case ".aac": // (1) + bass_aac.dll 2.4
case ".m4a": // (1) + bass_aac.dll 2.4
case ".mp4": // (1) + bass_aac.dll 2.4
case ".wma": // (1) + bass_wma.dll 2.4
case ".flac": // (1) + bass_flac.dll 2.4
// case ".alac": // (1) + bass_alac.dll 2.4
// case ".wv": // (1) + bass_wv.dll 2.4
// case ".ofr": // (1) + bass_ofr.dll 2.4 + OptimFROG.dll
// case ".ape": // (1) + bass_ape.dll 2.4
// case ".tta": // (1) + bass_tta.dll 2.4
// case ".cda": // (1) + bass_cda.dll 2.4
// case ".mpc": // (1) + bass_mpc.dll 2.4
// case ".spx": // (1) + bass_spx.dll 2.4
script.AppendFormat("BassAudioSource(\"{0}\"){1}", audioJob.Input, Environment.NewLine);
break;
The commented lines are options untested and, maybe, unnecesaries to MeGui.
BassAudio.dll 2.4 can be obtained from this post (http://forum.doom9.org/showthread.php?p=1112359#post1112359) and can be distributted with MeGui (Author Dimzon, modified by me), Bass.dll and the others can be free downloaded, for non-commercial use, from http://www.un4seen.com/bass.html
Kurtnoise
6th April 2008, 07:38
@dev's
I suggest replace the NicAudio.dll by NicAudio.dll v2.0 (http://www.codeplex.com/NicAudio).
you read in my mind...;) it's my plan for today.
Finally the Bass libraries can avoid the problem of use DirectShow filters to decode some common formats like aac, ogg, flac, wma, ...
Most users have DirectShow configured to stereo output (and other settings for the audio equipment attached to the PC), not aproppriate for transcoding tasks.
maybe...but personally, I'm more interested by the FFmpegSource filter. :)
tebasuna51
6th April 2008, 10:22
maybe...but personally, I'm more interested by the FFmpegSource filter. :)
Of course, many people are interested in ffmpeg project, but is usable actually for audio decode?
From ffmpegsource help:
"Note that the audio cache will always be created when opening files with audio and that it will be huge since it stores all audio as raw signed 16/24/32 bit pcm, unsigned 8 bit pcm or as float, using flac to compress it is also possible to reduce the size by half."
If we need a 3.67 MB FFmpegSource.dll to decode an aac to a huge uncompressed wav maybe is better use faad before. Work with files > 4GB?
BassAudio, Bass, Bass_aac, Bass_flac, Bass_wma dll's are 0.34 MB and don't need write huge files in disk.
Maybe in the future we can use ffmpeg to decode/encode everything (also EAC3, MLP, TrueHD, ...) but now I recommend use BassAudio for BeHappy. :rolleyes:
Kurtnoise
6th April 2008, 10:30
Agreed...just hoping that this part will be improved in the future.
coz some new stuff from FFmpeg (aac decoder, dts encoder, eac3 decoder, etc...) is going to be introduced...
Atak_Snajpera
6th April 2008, 22:30
I suggest replace the NicAudio.dll by NicAudio.dll v2.0.
Do not use it (2.0) for MP3 and MP2 decoding. I had corrupted sound after conversion. BassAudio works very well :)
tebasuna51
7th April 2008, 00:46
Do not use it (2.0) for MP3 and MP2 decoding. I had corrupted sound after conversion. BassAudio works very well :)
Please use this thread (http://forum.doom9.org/showthread.php?t=135876) or http://www.codeplex.com/NicAudio to report NicAudio 2.0 bugs.
Maybe you can upload some samples with the problem. I can't see differences with my samples.
check
7th April 2008, 14:20
Gosh, look what you miss when you're gone for a few weeks :)
Anway, I thought I'd give an update here on how popular the MeGUI autoupdate cache is. If you want these quarterly updates out of the dev thread let me know.
General Summary
This report contains overall statistics.
Figures in parentheses refer to the 7-day period ending 07-Apr-2008 18:00.
Successful requests: 1,445,741 (115,081)
Average successful requests per day: 14,591 (16,440)
Successful requests for pages: 380,049 (30,967)
Average successful requests for pages per day: 3,835 (4,423)
Failed requests: 10,124 (2,872)
Redirected requests: 193 (4)
Distinct files requested: 380,136 (31,060)
Distinct hosts served: 106,080 (11,591)
Corrupt logfile lines: 42
Unwanted logfile entries: 1,709,881
Data transferred: 533.99 gigabytes (42.49 gigabytes)
Average data transferred per day: 5.39 gigabytes (6.07 gigabytes)
tebasuna51
9th April 2008, 03:33
Do not use it (2.0) for MP3 and MP2 decoding. I had corrupted sound after conversion. BassAudio works very well :)
The bug in the new version of mpg123-lib don't affect to Megui/BeHappy but yes to Bepipe.
The new MPASource.dll from WarpEnterprises (http://forum.doom9.org/showthread.php?p=1123600#post1123600) is also affected.
A bugfix release of NicAudio.dll (v2.0.1) are available.
Sharktooth
9th April 2008, 12:53
beta testers needed to test the new AQ part (http://www.mediafire.com/?1xd3mh6rxen)...Zones has been reintroduced but doesn't work yet.
@devs: I switched the B-Frames part to the Main tab to introduce AQ in the Advanced one. Is it ok ? what do you think about that ?
i thought a different design:
http://www.webalice.it/f.corriga/x264/x264config.png
AQ options can be placed in the down-left corner in the empty space.
That will also avoid to rewrite the b-frames controls code... ;)
Oh, btw, in the picture above it should be "Quantizers ratio" (not quantization ratio) :(
Kurtnoise
9th April 2008, 20:14
well...it's ok for me but (yeah, there is a but ;))
Honestly, it depends on what we want to do : just an update to have AQ or improve this part completely...I think that the UI for video encoders, at least, must be completely redesigned. If you don't mind I'll put something online this weekend about that but the discussion is open of course. :)
Sharktooth
9th April 2008, 21:56
i see ppl discussing about the profiles and much less about the settings.
fact is ppl dont like to mess with settings since most of them dont know what those mean, plus the golden programmer rule: if it aint broke, dont fix it
however if you feel to make changes, there's no problem on my side but if you do it, ensure it works properly before committing any changes or ppl (as you saw) will moan like bitches.
a new 0.3.x build is needed too coz a shitload of stuff was added/fixed/changed but never tested, so i will wait your changes before making a new one.
Kurtnoise
10th April 2008, 16:59
all new stuff that I added in the dev branch has been tested properly and it works fine...;)
About the changes in the UI : i'll post some builds online (or patches...as you want) before to commit something. don't worry.
bob0r
10th April 2008, 22:54
Hmm it seems i forgot to press Submit after Preview, so here goes again:
@Sharktooth
Can you please update new x264 816 modified:
http://forum.doom9.org/showthread.php?p=1124122#post1124122
--threads auto now auto-enables --thread-input, so especially usefull for windows (avs) megui users....
(75 to 95fps SD video)
(9 fps to 15fps HD video)
Sharktooth
11th April 2008, 03:42
megui already does that when threads = auto or threads > 1
however i'll update it as soon as i find a minute :)
Kurtnoise
11th April 2008, 13:02
--threads auto now auto-enables --thread-input, so especially usefull for windows (avs) megui users....
what does it mean ? we need to change the command line ?
Sharktooth
11th April 2008, 13:50
no. it's not necessary.
bob0r
12th April 2008, 12:07
@Sharktooth
x264.818.modified.exe
http://forum.doom9.org/showthread.php?p=1124804#post1124804
r817: r810 borked hpel_filter_sse2 on unaligned buffers
Please update megui to r818 as soon as possible.
I update the modified builds when i see its needed or wanted, but i will report here when i see its really necessary to update megui, to prevent many broken encodes, or speed/quality misses :)
Sharktooth
12th April 2008, 15:01
thanx. already done :)
hollywood10s
15th April 2008, 06:12
When using Megui's auto update is this the version that is being installed (x264.modified) when x264 gets updated or are they two different versions? Thanks for the help.
Sharktooth
15th April 2008, 13:14
it's this.
bob0r
15th April 2008, 16:26
@Sharktooth
x264 819 modified, same as 818, only extra fixes for AMD users.
Please update asap :)
http://forum.doom9.org/showthread.php?p=1125930#post1125930
bob0r
22nd April 2008, 12:40
@Sharktooth:
x264 826 modified:
http://forum.doom9.org/showthread.php?p=1127870#post1127870
Quality and Speed updates.
- Fixed AQ with flat blocks.
Kurtnoise
22nd April 2008, 16:40
bob0r, could you stop to flood this thread with each x264 updates...it's boring.
bob0r
22nd April 2008, 23:07
bob0r, could you stop to flood this thread with each x264 updates...it's boring.
Ok, tho they are for MEGUI....
Uhm.... sharktooth no irc.... no doom9 messages....
Sharktooth: Can you provide me some email i can send you updates for then?
OOOOOOOOOOOOOOOOR Kurtnoise13 can you make a doom9 thread where people can report software updates for megui to update? :D
buzzqw
23rd April 2008, 09:25
feel free to post your update to AutoMKV thread!
very appreciated!
BHH
Kurtnoise
23rd April 2008, 10:25
Ok, tho they are for MEGUI....
well...I'm quite sure Sharktooth read all x264 threads related to the updates. So, no need to have them there. Plus, I don't think that you can perceive some real differences between the current build and the previous one.
OOOOOOOOOOOOOOOOR Kurtnoise13 can you make a doom9 thread where people can report software updates for megui to update? :D
I've a better idea. Grab the upgrade.xml file from here (http://megui.org/auto/), edit it to have only the x264 package, put it on your site and you can supply an alternative server to the MeGUI users to have the lastest x264 update more quickly. What do you think about that ?
Sharktooth
23rd April 2008, 13:57
well...I'm quite sure Sharktooth read all x264 threads related to the updates. So, no need to have them there. Plus, I don't think that you can perceive some real differences between the current build and the previous one.
I've a better idea. Grab the upgrade.xml file from here (http://megui.org/auto/), edit it to have only the x264 package, put it on your site and you can supply an alternative server to the MeGUI users to have the lastest x264 update more quickly. What do you think about that ?
yes, i usually read all the x264 related threads. however ill be away for a while. ill try to check everything, but the alternate x264 only server idea could be good.
Pyth0n
4th May 2008, 21:14
I'm using Windows Vista x64, megui, avisynth and x264 to convert a 1280x544 video to 1280x720 by adding borders.
The problema is that the first pass is not running right according to Dark Shikari, a x264 developer.
I'm running megui as administrator but still not getting any different results. One curious thing is that sometimes I get the video correctly after a lot of tries on a sample the first pass happens.
Can anybody help me with that?
Going to try and run x264 directly without using megui. But I ned the batch queue from megui to do that with other videos.
http://forum.doom9.org/showthread.php?p=1133990
Kurtnoise
4th May 2008, 21:46
nothing to do with megui development. Plus, I'm not sure that your problem is caused by megui itself. So...
Kurtnoise
4th May 2008, 21:50
About the changes in the UI : i'll post some builds online (or patches...as you want) before to commit something.
sorry for the delay...I'm quite busy in my real life but I'll try to post something during this week.
Sharktooth
9th May 2008, 14:16
critical things left to do before releasing the first candidate of version 0.3.x (in order of importance):
1 - Add the missing options in x264 config (AQ, custom CLI, etc - zones are not crucial though)
2 - Support for newer DGIndex
3 - Fix the adaptive muxer (#1945737 (http://sourceforge.net/tracker/index.php?func=detail&aid=1945737&group_id=156112&atid=798476))
After those steps are completed we can release a new binary for testing and bugfixing may return the priority until the final release.
Future plans:
- "hire" some new devs to help the project go on.
- organize the developement assigning tasks to devs.
- defining the next versions goals.
- keep compatibility with mono for a future multiplatform release.
- setup a paypal account for donations/fundraiser. funds will be divided 50/50 between doom9.org AND the devs (meritocracy rules... the more you do, the more you get).
Kurtnoise
10th May 2008, 15:30
#1 has just been committed...
Romario
10th May 2008, 16:01
Kurtnoise, I can't find link for newest MeGUI beta unstable build, can you, please, provide me a link?
Thanks.
Kurtnoise
10th May 2008, 17:14
http://www.mediafire.com/?zwxwdzni1ll
Kurtnoise
12th May 2008, 19:56
critical things left to do before releasing the first candidate of version 0.3.x (in order of importance):
1 - Add the missing options in x264 config (AQ, custom CLI, etc - zones are not crucial though)
2 - Support for newer DGIndex
3 - Fix the adaptive muxer (#1945737 (http://sourceforge.net/tracker/index.php?func=detail&aid=1945737&group_id=156112&atid=798476))
I think the #3 must be fixed before the #2...I'm looking into it.
bob0r
12th May 2008, 21:09
Ah a new candidate coming, tomorrow or the day after ill submit my report of all graphical bugs with spelling and x264 settings naming..... That is if the sun doesn't keep me AFK :D
Octo-puss
23rd May 2008, 12:53
Out of curiosity: when can we expect new version? Please don't reply with "when it's done" :D
Kurtnoise
23rd May 2008, 14:29
depends on what you want to have in the incoming release...;)
^ hmmm.. are u really taking requests :D
i want to be able to lock settings in bitrate calc. things like container, codec, filesize depending on the profile selected.
incorporate DGAVCIndex?
Octo-puss
23rd May 2008, 19:38
depends on what you want to have in the incoming release...;)
I have less than zero idea, honestly. I am just an average dumb user who managed to get to understand MeGUI enough to encode a movie :)
JarrettH
25th May 2008, 21:59
Humm I had a good idea a while ago:helpful:
If you could automate the mux process a bit? Because you need to point the muxxer to the audio and video files both need to be existing. I'd like to point it to a directory where the video file will appear or some dummy file so I can have the process happen right after the video is created.
Though it could be trivial since it only takes a matter of minutes to join the files.:confused:
This is a feature request, please post all feature requests on the sourceforge page. And have you tried the automated encoding mode? It pretty much does exactly what you want.
Sharktooth
15th June 2008, 15:52
0.2.6.1047
- (kurtnoise) updated MediaInfo library and his wrapper to the latest release (0.7.7.2).
- (kurtnoise) [AudioEncodingTab] added a try/catch statement for better error handling for end-users concerning delays values too high/low detected in filenames (#1965905).
- (kurtnoise) [x264Encoder] fixed a comma use associated with Const. Quantizer (#1975472).
- (kurtnoise) [AvisynthAudioEncoder] fixed an error in the upmix function.
- (kurtnoise) [VideoPlayer] video preview always on top from now...
- (kurtnoise) added an icon for the ToolTip.
- (kurtnoise) [AudioEncoder] added support for NicAudio v2 (needed to fix some bugs) >> http://www.codeplex.com/NicAudio
- (kurtnoise) added several languages in the nsis script.
0.3.0.1005 (includes the fixes and additions up to ver. 0.2.6.1047)
- (kurtnoise) updated MediaInfo library and his wrapper to the latest release (0.7.7.2).
- (kurtnoise) several x264 options weren't updated.
- (kurtnoise) added support for OpenDMLSource(..) for AVI files >= 2GB and forced "audio=false" for the avs script creation within AVISource(.)
- (kurtnoise) [ProgressWindow] allowed resize form (#1968515).
- (kurtnoise) [JobWorkerWindow] help button was biased.
- (kurtnoise) added EVO files support for the Main and Avisynth Forms.
- (kurtnoise) [UpdateWindows] help button was biased.
- (kurtnoise) allowed minimize/maximize the video preview form.
- (kurtnoise) removed TooltipIcon and TooltipTitle.
- (kurtnoise) [MainForm] changed the back color (transparent to control).
- (kurtnoise) [VideoConfigurationPanel] added a title for the tooltip.
- (Kurtnoise) updated several tooltips for the x264 compressor.
- (kurtnoise) added ProfileConfigurationWindow.resx
- (kurtnoise) [ProfileConfigurationWindow] use Presets now instead of Profiles to avoid confusions.
- (kurtnoise) CheckOnClick = True for the ProfileExporter, ProfileImporter and ProfilePorter ListBoxes.
- (kurtnoise) [VobSubber] CheckOnClick = True for the Subtitles ListBox.
- (kurtnoise) [x264ConfigurationPanel] updated some missing tooltips.
- (kurtnoise) added a x264 picture in the main tab.
- (kurtnoise) updated the x264 Settings (AQ, Custom commandline) with several changes.
- (kurtnoise) [DGIndexer] using hide state instead of minimize.
- (kurtnoise) [ProfileImporter] added an option to check all/none items from the list (available via a right click).
- (sharktooth) Updated VS 2008 project files to include the new InputBox replacement files
- (kurtnoise) fixed .NET bootstrapping for MSVC2005 project file. Patch by Sean McGovern.
- (Mutant Fruit) Fix for mono compatibility to avoid a bug in ApplicationSettingsBase constructor
- (Mutant Fruit) Put try/catches around registry access to avoid issues on non-windows systems
- (Mutant Fruit) Two fixes for the new InputBox
- (Mutant Fruit) Created a replacement for the VisualBasic InputBox class and removed references to the VisualBasic dll
- (Mutant Fruit) Applied patch for #1887531
- (Mutant Fruit) Committed patch for #1886000
- (sharktooth) [d2vcreator] Default to "Demux All Audio Tracks"
- (kurtnoise) Transformed OSInfo & Shutdown classes cross-platform. Patch by mutant_fruit.
- (kurtnoise) fixed hardcoded windows style paths. Patch by mutant_fruit.
- (kurtnoise) [D2VCreator] remove Windows API for better X-platform using.
- (kurtnoise) Fixed bug in GenericSettings implementation & implemented GetHashCode correctly. patches by Mutant_Fruit (#1887494 + #1887508)
- (kurtnoise) [AVSCutter] altered the behaviour of the Clear, Update and Remove buttons. Patch by darkklor (#1858629)
- (kurtnoise) [mediaInfoWrapper] fixed some tabs.
- (kurtnoise) [JobQueue] re-enabled Key Down event.
- (berrinam) Profile refactor. Excerpts:
- All video settings must now be contained within a profile.
- There is a default profile called *scratchpad* for every type of setting.
- Zones have been removed from video profiles, soon to be added back to the main window.
- Removed code for reading very old profiles (from 0.2.4.1004 and below)
- (berrinam) (internal) Added Tuple.Create to allow implicit Generics instantiation.
before any bug report is made, 0.3.0.1005 is UNSTABLE. x264 config throws an exception. i noticed it just after i published the files, so , yes, we're aware of it and yes, we'll fix it in the next version.
Romario
15th June 2008, 20:21
again without download link for Megui 0.3.0 ?
Sharktooth
16th June 2008, 02:18
yep, coz it's UNSTABLE.
Kurtnoise
16th June 2008, 06:54
@Sharktooth: which compiler did you use to build 0.3.0.1005 release ? Could you try this one (http://kurtnoise.free.fr/index.php?dir=MeGUI/&file=MeGUI-0.3.0.1005%2B.zip) ?
I think that Visual Studio 2008 (Express or Entreprise Edition) should be used to compile this version now (to include Vista stuff, etc...)
Sharktooth
16th June 2008, 12:58
i used csc. i can build it with VS too but using the compile.bat allows me to automate some things.
however, ill be back to you in a minute.
EDIT: your binaries work. i updated the core package with the vs compiled binary.
Knuffi
16th June 2008, 13:08
I updated MeGUI 3.0 and am now in an endless loop: Seems that the new version on the servers calls itself 3.0.1004 instead of 3.0.1005 as it should ... can you fix that please?
Sharktooth
16th June 2008, 13:14
try the reinstall option in the update window. i just updated the core package
Knuffi
16th June 2008, 13:23
Force reinstall on which components? Core is ALWAYS available to update.
Sharktooth
16th June 2008, 13:35
close megui, clear the update_cache folder located in the megui folder. then restart megui and let it update.
if it's still version 1004, try rebooting. something wrong is going on. the update worked flawlessly here.
if you dont find a way to update it, there should be permission problems. however HERE (http://megui.org/auto/core_0_3_0_1005a.zip) you can download the new core package and manually extract it over your local megui folder.
Sharktooth
16th June 2008, 13:53
@kurtnoise: AQ settings are not working. if you want i have some free time and i can give a look at it later. however, without looking at the code, i think it's missing the required stuff in the commandline generator.
stax76
16th June 2008, 14:05
Don't you use MSBuild?
"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" "D:\Projekte\StaxRip\StaxRip.vbproj" /t:Rebuild /p:Configuration=Release"
Sharktooth
16th June 2008, 14:14
does it support building .net 2.0 bins ?
tre31
16th June 2008, 14:33
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.
Sharktooth
16th June 2008, 14:55
fixed AQ in r524
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.
not a bug. it's in the changelog.
stax76
16th June 2008, 14:56
VS is uses MS build so I guess so.
Sharktooth
16th June 2008, 14:59
ill change the compile script replacing csc with msbuild.
thanks :)
edit: done in r525
tre31
16th June 2008, 15:32
not a bug. it's in the changelog.
Well, seems like a strange change too implement, try opening HD video with it, hell even SD video, you have too move the preview window out of the way too even have access too any functionality at all, and that includes the main window, sorry but I fail too see how this 'is a feature not a bug'.
What I'm basically saying is - from a end-user (yes that's me) perspective, its no good - sorry.
Sharktooth
16th June 2008, 15:40
0.3.0.1006
- (sharktooth) Fixed x264 AQ settings
Test build: http://www.webalice.it/f.corriga/megui/megui-0_3_0_1006.exe
Consider it as a pre-RC. it should be sufficiently stable though.
to-do:
- dgindex 1.5+ support
- fix adaptive muxer
- zones options in x264config
Sharktooth
16th June 2008, 15:41
Well, seems like a strange change too implement, try opening HD video with it, hell even SD video, you have too move the preview window out of the way too even have access too any functionality at all, and that includes the main window, sorry but I fail too see how this 'is a feature not a bug'.
What I'm basically saying is - from a end-user (yes that's me) perspective, its no good - sorry.
what about a minimize button on the preview?
Underground78
16th June 2008, 19:42
I think there is a problem with "M.E Algorithm" and "Subpixel Refinement" : the command line is not updated ... I'm a beginner but I have a look the code to try to fix this, I've added this two lines inspired by the others options and it seems to work ... Maybe it's not the good solution but don't be too hard with me ... :o
Index: x264ConfigurationPanel.Designer.cs
===================================================================
--- x264ConfigurationPanel.Designer.cs (revision 526)
+++ x264ConfigurationPanel.Designer.cs (working copy)
@@ -639,6 +639,7 @@
this.x264SubpelRefinement.Name = "x264SubpelRefinement";
this.x264SubpelRefinement.Size = new System.Drawing.Size(154, 21);
this.x264SubpelRefinement.TabIndex = 8;
+ this.x264SubpelRefinement.SelectedIndexChanged += new System.EventHandler(this.updateEvent);
//
// x264SubpelRefinementLabel
//
@@ -701,6 +702,7 @@
this.x264METype.Name = "x264METype";
this.x264METype.Size = new System.Drawing.Size(109, 21);
this.x264METype.TabIndex = 6;
+ this.x264METype.SelectedIndexChanged += new System.EventHandler(this.updateEvent);
//
// x264MERange
//
Kurtnoise
16th June 2008, 19:42
@Sharktooth: thanks for the fix...I hadn't tested extensively the AQ part I'm honest.
0.3.0.1006
- (sharktooth) Fixed x264 AQ settings
Test build: http://www.webalice.it/f.corriga/megui/megui-0_3_0_1006.exe
Consider it as a pre-RC. it should be sufficiently stable though.
About NSIS installer : may I suggest to add this (http://nsis.sourceforge.net/UAC_plug-in) ? :p
to-do:
- dgindex 1.5+ support
- fix adaptive muxer
- zones options in x264config
I started to implement something for DGindex stuff...It's included in my build but I'm not happy with it. The 2 comboboxes need to be selected and all audio track IDs are grabbed from the DVDDecrypter file info not from the DGindex logfile for the moment. I hope at the end of the week to have something more interesting and bug free. :)
About adaptive muxer : frankly, I've no idea why we have this...:-/
About zones: well...lazyness.
Kurtnoise
16th June 2008, 19:52
Maybe it's not the good solution but don't be too hard with me ...
it's correct. I'll add this.
stax76
16th June 2008, 20:08
I wonder if it makes much sense to rely on the DVD Decrypter info file as it's only created in IFO mode and that is not possible with many copy protections, if I'm not mistaken. :)
Sharktooth
16th June 2008, 20: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, 20: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, 20:34
yep. however i was editing my previous post while you were typing...
Underground78
16th June 2008, 22: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, 00: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, 00: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, 02: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, 03: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, 05: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, 05: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, 05: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, 06: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, 08: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, 12: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, 13: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, 13: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, 20: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, 20: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, 21:21
your comments will be ignored...:stupid:
berrinam
18th June 2008, 03: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, 04:10
:thanks: Sounds great.
Sharktooth
18th June 2008, 13: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, 20: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, 20: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, 22: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, 02: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, 05: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, 13:02
the avs2avi solution is indeed an easier way.
berrinam
19th June 2008, 13: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, 14: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, 15: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, 20: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, 22: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, 06:46
well...I vote to have it always enabled (not as a settings option).
berrinam
20th June 2008, 07:08
Committed.
berrinam
20th June 2008, 09: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, 10:40
I'm totally agreed with that...:D
Sharktooth
20th June 2008, 15: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, 15: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, 17: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, 15: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, 15: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, 15: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, 03: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, 03: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, 04: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, 04: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, 06: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, 09: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, 09: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, 09: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, 09: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, 13: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, 17: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, 17: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, 21: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, 21: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, 00:35
@arrirc, Maccara, BiO-HaZaRd: please take your discussion to the MeGUI troubleshooting thread. This thread is about MeGUI development.
berrinam
23rd June 2008, 00: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, 00:43
I think yes...Done.
berrinam
23rd June 2008, 00: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, 01: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, 01:39
@rebkell: Please do not post on the development thread. The "General questions and troubleshooting" thread is the appropriate place.
berrinam
23rd June 2008, 01: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, 01: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, 04: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, 06: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, 06: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, 07: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, 14: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, 15: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, 15:05
my mistake. ill correct it in the next build.
berrinam
24th June 2008, 01: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, 01: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, 06: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, 06:38
Can I commit this?
sure...it looks ok for me. :)
check
25th June 2008, 04: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, 14:27
IIRC: http://forum.doom9.org/member.php?u=1704
tebasuna51
25th June 2008, 19: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, 21: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, 03: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, 03: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, 03: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, 11: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, 17: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, 17: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, 13: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, 15: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, 15: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, 18:34
@tebasuna : what is it "aux" in your code ?
@Underground78 : both applied. thanks...
tebasuna51
28th June 2008, 02: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, 05: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, 09: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, 13: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, 16: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, 16: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, 03: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, 09: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, 09:29
yep...ok to remove this.
Kurtnoise
29th June 2008, 16: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, 01: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, 03:49
the former. however i would like to try something first.
Neillithan
30th June 2008, 06: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, 14: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, 16: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
30th June 2008, 23: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, 03: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, 06:28
@devs: let's proceed removing the audio track selection in the d2v creator so we can update dgindex.
done...
Neillithan
1st July 2008, 06: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, 09:38
...just dont use zones (seems its buggy)...
Problem now fixed in rev580.
Coolpplse
1st July 2008, 09: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, 13: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, 13: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, 14: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, 15:11
dgindex is up to date.
about the other packages, ill see if i can update them later.
Sharktooth
1st July 2008, 17: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, 21:07
Definitely. CLI encoders are very easy to add.
Sharktooth
1st July 2008, 21: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
1st July 2008, 23:51
Done.
berrinam
2nd July 2008, 03: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, 04: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, 07:10
Fixed.
Kurtnoise
2nd July 2008, 07: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, 07: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, 08: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, 08: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, 08: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, 10: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, 11:02
I reproduced that problem, and thought I had fixed it. Hmmm....
berrinam
2nd July 2008, 11:07
SVN reorganisation completed in svn rev594.
Sharktooth
2nd July 2008, 12: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, 12: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, 14: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, 15: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, 15:23
you mean that only the trunk should be used ? someone needs to clean up the tree then...
berrinam
3rd July 2008, 01: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, 02:08
So, what is the plan for MeGUI now? Is here a convenient place to talk, or maybe IRC?
Sharktooth
3rd July 2008, 02: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, 09: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, 11: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, 12: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, 12: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, 12:37
Why does MeGUI change the last write day?
Sharktooth
3rd July 2008, 12: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, 12: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, 12: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, 13: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, 13: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, 14: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, 16:46
1st post in the SF forum... ;) it's about... "future plans".
Kurtnoise
3rd July 2008, 17:18
1st reply from me + some other things...:p
Sharktooth
14th July 2008, 18:43
ill be away for some days.
health reasons.
check
22nd July 2008, 10: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, 11: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, 03: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, 05: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, 06:52
chainring: this is the development thread. It's not the tech support thread.
Sharktooth
23rd July 2008, 11:17
stable and dev versions:
0.3.0.1017
- (sharktooth) [AVCLevels] Unrestricted->AutoGuess since x264 rev915 changes.
Sharktooth
23rd July 2008, 11: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, 15: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, 03: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, 11:49
Stable and dev versions:
0.3.0.1020
- (sharktooth) [VideoPlayer.cs] Nicer zoomin/out functions
Sharktooth
8th August 2008, 16:30
no new builds for a while. i will be hospitalized again today or tomorrow. the usual problem (MS).
Kurtnoise
16th August 2008, 13: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, 14: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, 14:23
like Director's Comments or Visually Impaired, Normal ?
Sharktooth
16th August 2008, 16:02
just bold or coloured (red, blue, green?)... naaa... it's ok as it is.
Kurtnoise
16th August 2008, 18: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, 18:57
leave it as in the screenshot. it's ok.
Sharktooth
19th August 2008, 03: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, 04:09
Very impressive change log. Thank you all for all the hard work.
Sharktooth
19th August 2008, 04:11
say thanks to kurtnoise. he did it and it's even not yet finished.
Sharktooth
19th August 2008, 12: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, 17: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, 17:25
fixing...
edit: done.
Sharktooth
28th August 2008, 13: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, 14: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, 15:28
core_0_3_0_2004.zip is corrupted via updater
and from http://megui.org/auto/stable/
Sharktooth
29th August 2008, 15: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, 19: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, 00: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, 15: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, 15: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, 15:55
yes...still interested but before to make the migration I'd like to fix some bugs.
Sharktooth
2nd September 2008, 02: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, 14: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, 18: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, 14: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, 14: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, 14: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, 14:56
is that enough to fix the "compatibility" with staxrip?
stax76
13th September 2008, 15: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, 16: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, 02: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, 03: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, 03:39
Sharktooth, why "Resize" is enabled by default on AviSynth window? I disable it every time. :p
Sharktooth
14th September 2008, 03: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, 02: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, 03: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, 09:06
What did the method look like and what problems did it cause?
Sharktooth
15th September 2008, 13: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, 13: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, 13: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, 13:46
Ahh, now I see it too, that whould be a good idea indeed. :)
Sharktooth
15th September 2008, 19: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, 22: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, 02: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, 10: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, 12:37
patches welcome...:>
tetsuo55
16th September 2008, 13: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, 13: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, 13: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, 13: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, 14:08
I could write out detailed requirements, but someone else would have to translate to code
please, do...:)
Kurtnoise
16th September 2008, 14: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, 14:13
- this.TopMost = true;
why?
Kurtnoise
16th September 2008, 14:22
overrided by the load event I guess...I'll check.
cuub
16th September 2008, 14: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, 14:50
fix your internet connection
probably you or your ISP have some filters, proxy, etc
tetsuo55
16th September 2008, 15: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, 16: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, 16:29
Can't you just right click and choose select all? Works in both windows xp and windows vista.
lexor
16th September 2008, 16: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, 01: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, 01: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, 02: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, 02: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, 02:55
Not necessary, just somehow similar like --ref 1, --filter 0:0 etc.
Sharktooth
17th September 2008, 03:51
ok, ill have a look at it tomorrow.
4.50AM and i need to sleep :)
Audionut
17th September 2008, 16:25
Bug report.
x264 doesn't accept .0 in qp mode
ie: qp 20 works
qp 20.0 does not
Sharktooth
17th September 2008, 16: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, 16:32
MeGui specifies it. Why else would I be posting in this thread. :eek:
Sharktooth
17th September 2008, 16: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, 16:36
http://img393.imageshack.us/img393/5372/megui11rg9.png
http://img383.imageshack.us/img383/9827/megui2ud3.png
Audionut
17th September 2008, 16:50
Set crf mode to whatever.0
Press ok, re-enter config and set to qp mode.
Sharktooth
17th September 2008, 16:51
http://www.webalice.it/f.corriga/temp/qp.png
rack04
17th September 2008, 17:16
http://i11.photobucket.com/albums/a199/rack04/untitled.jpg
Sharktooth
17th September 2008, 17:23
cant replicate. it doesnt happen here.
Audionut
17th September 2008, 17:25
http://rapidshare.com/files/146069755/megui.mp4
Trafficshare, no wait times.
rack04
17th September 2008, 17:27
http://rapidshare.com/files/146069755/megui.mp4
Trafficshare, no wait times.
Confirmed.
Sharktooth
17th September 2008, 17: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, 18: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, 18: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, 18:12
i managed to reproduce it.
Yay. As long as your aware and acknowledge it. :thanks:
Sharktooth
17th September 2008, 18:36
ok, ok... i fixed it just coz it's a M$ bug...
Sharktooth
17th September 2008, 18: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, 08: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, 12:50
ok, ok... i fixed it just coz it's a M$ bug...
Thanks Sharktooth. Working great.
Kurtnoise
18th September 2008, 16: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, 16: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.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.