Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > MPEG-4 Encoder GUIs

Reply
 
Thread Tools Search this Thread Display Modes
Old 2nd July 2005, 21:40   #101  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
and one more thing: I'll start integration once I'm done with the automated 3 pass and the current code has been tested a bit.. autoclick caters to an audience that often doesn't get the complexity of the process so I'd like all the underlying code to be tested. While I think I'm doing a reasonable amount of testing before every release, there's been a lot of changes in between the last two versions.
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 01:14   #102  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Quote:
Originally Posted by Doom9
Code:
public string StartPath
		{
			get {return path;}
		}
Is not required because the main Form already has a property for that: MeGUIPath
Ok, fixed.

Quote:
In addition, it has a property to get the settings for the currently configured video codec:
Code:
public VideoCodecSettings VidCodecSettings
so you should use that.
I'll add the same to get the current audio settings. Since I'm making heavy use of inheritance we should work with the generic types whenever possible and get the actual type using the "is" operator.
I understand, but I need to get the individual codec settings for when I change codec (videoConfigButton_Click). As in, when the LAVC is configured, it gets main form's CurrentLavcSettings. If it were just to call VidCodecSettings, then what would happens if the VidCodecSettings were x264CodecSettings, as opposed to LavcCodecSettings? I'm sure there is a better way to do it, but how?

Quote:
And I hope you don't mind that when I integrate it, I'm going to rewrite parts of the code.. I saw you integrated autocrop and dgindex project creation code, which is not ideal. I'll move those a/multiple separate classes so that the code will only have to be maintained once. Or you can create those classes, as you like.
Yes, I was planning to do that, I just never got around to it. I presume you want some sort of VideoUtil class that manages autocropping and resizing?

Quote:
.. autoclick caters to an audience that often doesn't get the complexity of the process so I'd like all the underlying code to be tested.
The way I see OneClick is as a set-and-forget method for anyone, so long as no AviSynth filters are wanted. For the people who aren't experienced, the default settings (through profiles) should be good, but it should also be appropriate for advanced users on sources that need no filtering.

I am at a loss with what to do about chapters and subtitles, because they seem to break up the automated process (is there any automation in chapter or subtitle extraction?). At the moment, neither are implemented (the chapters file is there, but it has no effect). Should I exclude them?
berrinam is offline   Reply With Quote
Old 3rd July 2005, 01:21   #103  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
about Chinese vs Cantonese vs Mandarin: Here's the list of what mp4box supports: http://cvs.sourceforge.net/viewcvs.p....1&view=markup

sadly, neither Cantonese nor Mandarin are on the list

If you look at the ISO standard, those just don't exist: http://www.w3.org/WAI/ER/IG/ert/iso639.htm
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 01:28   #104  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Also, with so much inheritance, would it be a good idea to inherit all of the configuration dialogs from a videocodecconfigurationdialog class, which has input, output, encoderpath, creditsstartframe, and so on? Then, the VideoCodecSettings class could have a getConfigDialog method.
berrinam is offline   Reply With Quote
Old 3rd July 2005, 01:31   #105  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
Quote:
I understand, but I need to get the individual codec settings for when I change codec (videoConfigButton_Click). As in, when the LAVC is configured, it gets main form's CurrentLavcSettings. If it were just to call VidCodecSettings, then what would happens if the VidCodecSettings were x264CodecSettings, as opposed to LavcCodecSettings? I'm sure there is a better way to do it, but how?
hmm.. I guess it depends on how you want to configure it.. I haven't seen the GUI yet, but assuming it looks like North101's design there's no config button.. perhaps there ought to be one? But then again we'd also have to offer profiles.. what do you think about adding those two? It would certainly be easier not to do it but I'm not sure what is more beneficial for the user.

If the one click window is a dialog and we're not going to add config and profiles, then I'd prefer to give the form a reference to all currently configured VideoCodecSettings and AudioCodecSettings objects at construction time.

Quote:
I am at a loss with what to do about chapters and subtitles, because they seem to break up the automated process (is there any automation in chapter or subtitle extraction?). At the moment, neither are implemented (the chapters file is there, but it has no effect). Should I exclude them?
Well, chapters can be done if you're using DVD Decrypter (it can write a chapter file while ripping). Subs are indeed something else.. they need to be done manually before using MeGUI.

So leave chapter and try to auto-load the chapters file based on the name of the video input (rip something with DVD Dec and chapter extraction enabled to see how it names chapter files.. I don't know that either).

I guess we can drop subs for now and add them if somebody asks for them or if mp4box supports vobsub muxing one day (I have an RFE open but haven't gotten around to uploading some sample files)

Quote:
Yes, I was planning to do that, I just never got around to it. I presume you want some sort of VideoUtil class that manages autocropping and resizing?
Exactly.
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 01:38   #106  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
Quote:
Also, with so much inheritance, would it be a good idea to inherit all of the configuration dialogs from a videocodecconfigurationdialog class, which has input, output, encoderpath, creditsstartframe, and so on? Then, the VideoCodecSettings class could have a getConfigDialog method.
I've thought about that when I moved the configuration to separate dialogs.. conceptually it makes sense, but since we have different sizes, number of tabs, and most settings do not match I think it would become complex rather quickly (each constructor or load event handler would have to resize the GUI move GUI elements around.. I've already made a first attempt but somehow the visual inheritance didn't work out the way I wanted it.. but if you want to give it a shot go ahead).
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 01:40   #107  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Quote:
Originally Posted by Doom9
hmm.. I guess it depends on how you want to configure it.. I haven't seen the GUI yet, but assuming it looks like North101's design there's no config button.. perhaps there ought to be one? But then again we'd also have to offer profiles.. what do you think about adding those two? It would certainly be easier not to do it but I'm not sure what is more beneficial for the user.
At the moment, my design has profiles and configuration. The code is mostly copied from version .0.1.9.8 of the main form. I take the philosophy that profiles mean that the inexperienced user can use pre-configured profiles, and the advanced user can choose whatever settings he or she chooses.

Quote:
If the one click window is a dialog and we're not going to add config and profiles, then I'd prefer to give the form a reference to all currently configured VideoCodecSettings and AudioCodecSettings objects at construction time.
I do that. Another option that comes to mind just now is this: configure the profiles in the main form, and then just select which one you want in the oneclickwindow. What do you think?

Quote:
Well, chapters can be done if you're using DVD Decrypter (it can write a chapter file while ripping). Subs are indeed something else.. they need to be done manually before using MeGUI.

So leave chapter and try to auto-load the chapters file based on the name of the video input (rip something with DVD Dec and chapter extraction enabled to see how it names chapter files.. I don't know that either).
Will do.
berrinam is offline   Reply With Quote
Old 3rd July 2005, 01:42   #108  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Quote:
Originally Posted by Doom9
I've thought about that when I moved the configuration to separate dialogs.. conceptually it makes sense, but since we have different sizes, number of tabs, and most settings do not match I think it would become complex rather quickly (each constructor or load event handler would have to resize the GUI move GUI elements around.. I've already made a first attempt but somehow the visual inheritance didn't work out the way I wanted it.. but if you want to give it a shot go ahead).
I will try that. Anyway, what I was thinking was just to overload the getConfigDialog method.
berrinam is offline   Reply With Quote
Old 3rd July 2005, 01:46   #109  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
Quote:
Anyway, what I was thinking was just to overload the getConfigDialog method.
I don't quite get that. With so many dialogs, the GUI setup should be done in the InitializeComponent method (the one VS generates on its own and that contains everything you do in the GUI designer). Sure you can do a whole GUI manually (I once wrote a Java mail program like that.. it was a real pain in the ass), but I'd be very uncomfortable not being able to edit the GUI quickly in the designer.. there are always things that need changing.

Quote:
configure the profiles in the main form, and then just select which one you want in the oneclickwindow. What do you think?
That's how I meant "having profiles". And of course you need to filter them by codec (see the configuration dialogs for code.. it's already done there).
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 01:53   #110  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Quote:
Originally Posted by Doom9
I don't quite get that. With so many dialogs, the GUI setup should be done in the InitializeComponent method (the one VS generates on its own and that contains everything you do in the GUI designer). Sure you can do a whole GUI manually (I once wrote a Java mail program like that.. it was a real pain in the ass), but I'd be very uncomfortable not being able to edit the GUI quickly in the designer.. there are always things that need changing.
I just meant have, as part of the x264Settings class, a createConfigDialoog method which creates an instance of x264ConfigDialog and wirets all the settings ... I'm not sure if this is any better, though. Anyway, I know what I mean, I think I understand you, so it should be fine -- I'll write the code.

Quote:
That's how I meant "having profiles". And of course you need to filter them by codec (see the configuration dialogs for code.. it's already done there).
Sounds good.
berrinam is offline   Reply With Quote
Old 3rd July 2005, 01:58   #111  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
I've uploaded the latest sources. Darned new PC crashing again just killed my VS installation.. VS tells me it's not properly installed for the current user. Now I have to extract the 19k files again and reinstall.. damn.

I'm not sure it's such a good idea to create a form from a data container class.. the way it's done now, send a container class to the gui and get one back seems more straightforward.
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 02:01   #112  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Quote:
Originally Posted by Doom9
I'm not sure it's such a good idea to create a form from a data container class.. the way it's done now, send a container class to the gui and get one back seems more straightforward.
I agree that sounds better, but where does it do this?
berrinam is offline   Reply With Quote
Old 3rd July 2005, 02:07   #113  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
Quote:
I agree that sounds better, but where does it do this?
load form1.cs in the designer, double click on the config button and see what it does.. after creating the forum, I use a property of the form to set the current settings. When I get a OK result back, I use the same property to get the updated settings back, and overwrite the currentXYZSettings in the main form.
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 02:11   #114  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Aah right... data container, not GUI container. I'll do it as you say.
berrinam is offline   Reply With Quote
Old 3rd July 2005, 02:14   #115  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Oo, one more thing -- choice for mp4/avi or just stick to mp4? I favor having a choice for everything, but defaulting to mp4
berrinam is offline   Reply With Quote
Old 3rd July 2005, 02:19   #116  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
well.. I guess since I spent all this time implementing it.. keep both.. but avi is limited to one track and currently ac3 input doesn't work (mencoder's problem not mine) I'd definitely default to mp4
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 14:08   #117  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Ok, I have updated oneclickwindow for 0.2.0.6. It does not (yet) have avi output, chapter support or auto3pass, but the rest seems to be there, and it seems to work. Built on top of version 2.0.6, I have attached changes here

EDIT: I haven't used rapidshare.de before, and I'm not sure if it worked. As a backup I have also attached the same file.

PS. I will catch up on the missing features tomorrow

Last edited by berrinam; 3rd July 2005 at 14:11.
berrinam is offline   Reply With Quote
Old 3rd July 2005, 14:14   #118  |  Link
Doom9
clueless n00b
 
Join Date: Oct 2001
Location: somewhere over the rainbow
Posts: 10,579
I see you've attached a new AviSynth window.. what has changed except for moving out the stuff into the videoutil class? (I'm about to release 0207 with full job updates but if that's the only change I can already incorporate that new code so when you make the update tomorrow you can base your code on 0207 directly)

also.. I'd need to have the launching code for the main form separately.. I'm still working on the main form right now (job updates obviously are in there).
__________________
For the web's most comprehensive collection of DVD backup guides go to www.doom9.org
Doom9 is offline   Reply With Quote
Old 3rd July 2005, 14:21   #119  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Quote:
Originally Posted by Doom9
I see you've attached a new AviSynth window.. what has changed except for moving out the stuff into the videoutil class? (I'm about to release 0207 with full job updates but if that's the only change I can already incorporate that new code so when you make the update tomorrow you can base your code on 0207 directly)

also.. I'd need to have the launching code for the main form separately.. I'm still working on the main form right now (job updates obviously are in there).
Ok, it seems you want a full changelog, as earlier. Here goes:
Avisynth window: delete all methods in autocrop region and replace with
Code:
		private void autoCropButton_Click(object sender, System.EventArgs e)
		{
			CropValues final = VideoUtil.autocrop(reader);
			bool error = (final.left == -1);
			if (!error)
			{
				cropLeft.Value = final.left;
				cropTop.Value = final.top;
				cropRight.Value = final.right;
				cropBottom.Value = final.bottom;
				if (!crop.Checked)
					crop.Checked = true;
			}
			else
				MessageBox.Show("I'm afraid I was unable to find 3 frames that have matching crop values");
		}
Main Form: Add OneClickEncodeWindow menu item with this event handler:
Code:
		private void mnuToolsOneClick_Click(object sender, System.EventArgs e)
		{
			OneClickWindow oneClick = new OneClickWindow(this, videoProfiles, audioProfiles, videoProfile.SelectedIndex, audioProfile.SelectedIndex);
			oneClick.ShowDialog();		
		}
Main Form: add this properties
Code:
		public JobUtil JobUtil
		{
			get {return this.jobUtil;}
		}
And the other files are new, and the project file just includes them
berrinam is offline   Reply With Quote
Old 3rd July 2005, 14:26   #120  |  Link
berrinam
Registered User
 
berrinam's Avatar
 
Join Date: Apr 2005
Posts: 1,740
Missed something. Avisynthwindow: delete getAspectRatio method. Change
suggestResolution_CheckedChanged(blah, blah) to
Code:
		private void suggestResolution_CheckedChanged(object sender, System.EventArgs e)
		{
			if (suggestResolution.Checked)
			{
				verticalResolution.Value = (decimal)VideoUtil.suggestResolution(reader.Height, Double.Parse(customDAR.Text)
			}
		}
EDIT: fixed code in this post
berrinam is offline   Reply With Quote
Reply

Tags
development, megui, not a help thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 08:58.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.