Log in

View Full Version : MeGUI development


Pages : 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

Doom9
2nd July 2005, 21:40
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.

berrinam
3rd July 2005, 01:14
public string StartPath
{
get {return path;}
}
Is not required because the main Form already has a property for that: MeGUIPath

Ok, fixed.


In addition, it has a property to get the settings for the currently configured video codec: public VideoCodecSettings VidCodecSettingsso 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?

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?

.. 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?

Doom9
3rd July 2005, 01:21
about Chinese vs Cantonese vs Mandarin: Here's the list of what mp4box supports: http://cvs.sourceforge.net/viewcvs.py/gpac/gpac/doc/ISO%20639-2%20codes.txt?rev=1.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

berrinam
3rd July 2005, 01:28
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.

Doom9
3rd July 2005, 01:31
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.

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)

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.

Doom9
3rd July 2005, 01:38
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).

berrinam
3rd July 2005, 01:40
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.

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?

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
3rd July 2005, 01:42
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.

Doom9
3rd July 2005, 01:46
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.

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).

berrinam
3rd July 2005, 01:53
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.

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.

Doom9
3rd July 2005, 01:58
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.

berrinam
3rd July 2005, 02:01
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?

Doom9
3rd July 2005, 02:07
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.

berrinam
3rd July 2005, 02:11
Aah right... data container, not GUI container. I'll do it as you say.

berrinam
3rd July 2005, 02:14
Oo, one more thing -- choice for mp4/avi or just stick to mp4? I favor having a choice for everything, but defaulting to mp4

Doom9
3rd July 2005, 02:19
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

berrinam
3rd July 2005, 14:08
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 (http://rapidshare.de/files/2770660/2.0.6_.zip.html)

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

Doom9
3rd July 2005, 14:14
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).

berrinam
3rd July 2005, 14:21
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
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:
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
public JobUtil JobUtil
{
get {return this.jobUtil;}
}

And the other files are new, and the project file just includes them

berrinam
3rd July 2005, 14:26
Missed something. Avisynthwindow: delete getAspectRatio method. Change
suggestResolution_CheckedChanged(blah, blah) to
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

Doom9
3rd July 2005, 14:48
Main Form: add this propertiesIf you need that, why not just put it into the constructor?

@edit: I've uploaded the latest sources.

Doom9
3rd July 2005, 15:16
private void suggestResolution_CheckedChanged(object sender, System.EventArgs e)
{
if (suggestResolution.Checked)
{
verticalResolution.Value = (decimal)VideoUtil.suggestResolution(reader.Height, Double.Parse(customDAR.Text)
}
}is not valid code.. suggestResolution takes 4 arguments. and there's no getAspectRatio method either in the code I got from the post above.

azsd
3rd July 2005, 18:24
auto 3 pass has a flash speed (completed in 0.001 seconds with -1 fps) in 0.2.0.6 all step,
in 0.2.0.8 the first step has same error,the second step running correct.
in 0.2.0.8 the manuelly 3pass working fine.

here attached the log file of 0.2.0.6 and 0.2.0.8

Doom9
3rd July 2005, 19:18
indeed there is something wrong.. the log points out that there's no input configured. Fortunately this happens here as well so I can begin fixing right away. For the future: please describe everything you did until the error starting from the point where you launch MeGUI. I know that's a lot of info.. but that ensures that I'll be able to reproduce things right away, or point out problems that might have something to do with your source.

@update: found and fixed the bug.. I'm not running an automated 3 pass to make sure everything works. I accidentally blanked out the input for the first pass.. that turned into an empty stats file which causes problems for subsequent passes.

Doom9
3rd July 2005, 19:41
bugfix is out in the user thread. I've uploaded the fixed class to the source package as well.

berrinam
3rd July 2005, 21:57
private void suggestResolution_CheckedChanged(object sender, System.EventArgs e)
{
if (suggestResolution.Checked)
{
verticalResolution.Value = (decimal)VideoUtil.suggestResolution(reader.Height, Double.Parse(customDAR.Text)
}
}is not valid code.. suggestResolution takes 4 arguments. and there's no getAspectRatio method either in the code I got from the post above.
Sorry about that ... I was looking at the wrong version of code. You should use this code:
private void suggestResolution_CheckedChanged(object sender, System.EventArgs e)
{
if (suggestResolution.Checked)
{
CropValues cropping = new CropValues();
cropping.left = (int)cropLeft.Value;
cropping.right = (int)cropRight.Value;
cropping.top = (int)cropTop.Value;
cropping.bottom = (int)cropBottom.Value;

int scriptVerticalResolution = VideoUtil.suggestResolution(reader.Height, Double.Parse(customDAR.Text), cropping, (int)horizontalResolution.Value);
verticalResolution.Value = (decimal)scriptVerticalResolution;
}
}

And the JobUtil can also be put in the constructor. EDIT: when passing objects, are they passed as references, or are they cloned?

Doom9
3rd July 2005, 22:13
You should use this codeit's already in there ;)

when passing objects, are they passed as references, or are they cloned?passed as reference. Objects are reference type.. hence the VideoCodecSettings.clone method, and me cloning it before encoding in order not to change the original (currentXYZSettings in the main form). There are value types... integers, doubles, structs, decimal, bool... (all those I recall using in MeGUI).. value types are cloned, so to speak.

berrinam
3rd July 2005, 22:16
it's already in there ;)Ok, sorry about the stuff-up -- I have too many versions on my computer. Anyway, it is already to add the one click encoder, yes?

Doom9
3rd July 2005, 22:30
I'm waiting on you to finish the window.. you said something about working on it again tomorrow to add the AVI mode.

berrinam
3rd July 2005, 22:40
yep, sure.

berrinam
4th July 2005, 01:55
Ok, I finally have everything (hopefully) implemented in OneClick. I compiled it, just to make it easier for you:p. It's weird ... when I compile with csc.exe (the commandline compiler which is part of the 1.1 framework), the output filesizes are about half that of VS.NET. Anyway, the only changes I remember making since v0208 are the addition of the OneClickWindow and the event handler in MeGUI for it, which is as follows:
private void mnuToolsOneClick_Click(object sender, System.EventArgs e)
{
OneClickWindow oneClick = new OneClickWindow(this, videoProfiles, audioProfiles, videoProfile.SelectedIndex, audioProfile.SelectedIndex, this.jobUtil);
oneClick.ShowDialog();
}

berrinam
4th July 2005, 07:45
Ok, the new version is . As above, it has oneclickwindow.cs. It also adds the Run DGIndex projects as minimized as an option, because when I was testing, I liked to be able to see what was happening. If you don't want that, then just ignore the settings files, and edit oneclickwindow, deleting line 1159. The eventhandler is the same as above. Built on 2.0.8 sources.

Doom9
4th July 2005, 08:09
considering the size, could you please just attach the files here.. I'd like to keep track of new versions and attached but not authorized attachments are only available to moderators.

I haven't looked at the sources yet but I do have a few conceptual questions looking at the window: what happened with the codec selection? It's grayed out here.

What's the numeric up down for in the audio box? I suppose that's container overhead seeing that it starts at 4.3.. but audio has no container overhead (at least not for aac in mp4.. nero aac considers the container overhead as part of the bitrate - for mp3 we have a fixed overhead depending on the type).

As far as the output goes.. perhaps you've noted that I changed the d2v creator to accept other types as well.. I think the one click encoder should reflect those changes so that it can also be used for other input types that dgindex supports. Hopefully, with the media library (see container forum) we'll be able to extract stream info for those other streams.. else just offer the default track1-8 as audio selection.

The dropdown in extra setup.. is that the video profile (I have no profiles at work)? And what's the project name good for?

berrinam
4th July 2005, 08:16
considering the size, could you please just attach the files here.. I'd like to keep track of new versions and attached but not authorized attachments are only available to moderators.No problem

what happened with the codec selection? It's grayed out here.I figured that it shouldn't be editable by the user, because no configuration is possible, therefore it just reflects the codec being used by the profile.

What's the numeric up down for in the audio box? I suppose that's container overhead seeing that it starts at 4.3.. but audio has no container overhead (at least not for aac in mp4.. nero aac considers the container overhead as part of the bitrate - for mp3 we have a fixed overhead depending on the type).Yes, it's container overhead for mp4, just in the wrong place. I'm think I should get rid of it completely.

As far as the output goes.. perhaps you've noted that I changed the d2v creator to accept other types as well.. I think the one click encoder should reflect those changes so that it can also be used for other input types that dgindex supports. Hopefully, with the media library (see container forum) we'll be able to extract stream info for those other streams.. else just offer the default track1-8 as audio selection.I'm afraid I have no idea what you are talking about. EDIT: I see. I never noticed that before. I'll look into that, too.

The dropdown in extra setup.. is that the video profile (I have no profiles at work)? And what's the project name good for?Yes, it is video profile. The project name determines:
-the dgindex project name
-the filename of the intermediate video files (projectname_Movie.mp4, a la GK)
-the output filename


The same files that are on rapidshare are attached here

Doom9
4th July 2005, 08:30
I figured that it shouldn't be editable by the user, because no configuration is possible, therefore it just reflects the codec being used by the profile.Hmm.. so the user must have a profile? Might not be the ideal solution because people don't realize they can use profiles (or they work so well that nobody ever mentions that feature). You could of course create 4 default profiles based on the current videocodecsettings and list those. I'm not sure what the most user friendly course is here.

I'm think I should get rid of it completely.I agree.. the default values seem to work out just fine.. but you need to make sure they re set internally in accordance to how many b-frames are configured.

berrinam
4th July 2005, 08:37
Hmm.. so the user must have a profile? Might not be the ideal solution because people don't realize they can use profiles (or they work so well that nobody ever mentions that feature). You could of course create 4 default profiles based on the current videocodecsettings and list those. I'm not sure what the most user friendly course is here.Well, I could add the config dialog again, which would be more user-friendly, I suppose. But I think for inexperienced user, (who this is partly aimed for) having default profiles like in Recode would be the best.

I agree.. the default values seem to work out just fine.. but you need to make sure they re set internally in accordance to how many b-frames are configured.Yes.

berrinam
4th July 2005, 08:40
About accepting extra input formats: I'm sure you agree it would only be appropriate for oneclick if the track names were listed. Will projectX do this?

Doom9
4th July 2005, 08:49
Well, I could add the config dialog again, which would be more user-friendly, I suppose. But I think for inexperienced user, (who this is partly aimed for) having default profiles like in Recode would be the best.Well, then we need to settle on what profiles we offer. The ones configured should definitely be available, and then some defaults.

I'm sure you agree it would only be appropriate for oneclick if the track names were listed. Will projectX do this?Well, unless you have an info file you never have the names, only track IDs.. you need to figure out the language on your own for TS, mpg and even VOB streams without an info file. I guess TS streams are going to be a bitch to handle.. I wonder if dgindex can somehow tell us what tracks are effectively available.

The mediainfo lib (http://forum.doom9.org/showthread.php?t=96516) seems to be useful for mpg but I don't see TS as a supported format.

berrinam
4th July 2005, 09:24
Well, then we need to settle on what profiles we offer. The ones configured should definitely be available, and then some defaults.The ones configured are already available. I would say that defaults could be added just by distributing the xml profiles with the executable. Anyway, I haven't had enough experience with any of the codecs to be able to recommend settings.

Well, unless you have an info file you never have the names, only track IDs.. you need to figure out the language on your own for TS, mpg and even VOB streams without an info file.I still think this destroys the oneclick workflow.

Doom9
4th July 2005, 09:47
I still think this destroys the oneclick workflow.Not necessarily.. you just have to do the "figuring out what audio streams are available" for those types of input as well.. you are reading the info file for vob input after all, so it would be done at the same point for other types of input. Then once input is selected, available audio tracks will be shown.

berrinam
4th July 2005, 10:11
Not necessarily.. you just have to do the "figuring out what audio streams are available" for those types of input as well.. you are reading the info file for vob input after all, so it would be done at the same point for other types of input. Then once input is selected, available audio tracks will be shown.
Ok, I will implement it, but the question is how much about the audio can be worked out from the track ID in mpg, ts and vob containers?

berrinam
4th July 2005, 11:05
Updates to OneClickWindow are attached (a new version of the file). I have replaced the overhead counter by internal calculations. I have changed mp4 muxing so that it will write the language automatically, if possible.

Doom9
4th July 2005, 11:48
Ok, I will implement it, but the question is how much about the audio can be worked out from the track ID in mpg, ts and vob containers?With vob, track IDs already tell you about the audio type.. the rest is just about "how many streams are there and which track IDs can be demuxed and used".

berrinam
4th July 2005, 13:20
OneClickWindow now supports multiple input formats (see file attached). This code is built on the code from this thread (http://forum.doom9.org/showthread.php?p=682058#post682058) by me. It doesn't detect the audio streams for mpg or ts -- that's too much work for today. Instead, it just uses Track1-8.

Hope this version is finally ready for public release:p

Doom9
4th July 2005, 13:38
that's too much work for today.hehe... well, we can do that another day.. the code will come in handy for both auto-mode and one click mode one day though. I'll give it a whirl tonight, too bad my dual core box is back at the shop (memory faults leading to crashes). Are you still going to look at x264.exe-only mode after this?

berrinam
4th July 2005, 13:44
Are you still going to look at x264.exe-only mode after this?
I plan to, although I am more interested in MKV muxing... how much work is it to incorporate another muxer?

berrinam
4th July 2005, 13:51
too bad my dual core box is back at the shop (memory faults leading to crashes).

My trusty P3 has never let me down :D

but when it comes to playing AVC ... hmmm ...

Doom9
4th July 2005, 14:37
I plan to, although I am more interested in MKV muxing... how much work is it to incorporate another muxer?Well.. guess it depends on how it works.. are you familiar with mkvmerge or mkvtoolnix or whatever the best cli muxer for the task is? There are a few important things that need to be figured out before the first line of code can be written:
overhead per frame for the various video and audio codecs and in function of codec settings. I'm not sure how it works for Matroska but as you by now certainly know, MP4 video overhead depends on the number of b-frames (and other things bit it appears that we don't have problems with the rule of thumb approach).

then obviously we need a cli program to do the work.. and there the important questions are: does it have a stdout/stderr progress report? if not, how does muxing work (like video first, then audio... the way mp4box does it.. it imports one stream after another, then writes the resulting file in a separate operation.. all with a progress bar going from 0 to 100 for each step), and how can we derive progress from that? does the muxer support multiple file inputs at once or do we need a separate operation for each stream (mp4creator required that.. fortunately mp4box does it all in one which greatly simplified things).

Those are the main things. Then of course the whole audio thing will have to be rewritten once again :( I'm afraid I have yet to find the flexible mechanism that works for everything.. with video we are at a good point since adding the automated 3rd pass was relatively easy.. adding mp3 audio was quite a bit more complex.

Then there's the question: do we add Vorbis audio output as an additional option or not?

Doom9
4th July 2005, 19:44
alright, there's a bunch of issues that still need work in the one click window but I'll take care of them. It seems you based the code on old revisions of the autoencode window.. so I need to bring the code in synch as well as the GUI.. and then there's so much overlap that I really need to refactor things.. else it's going to be a real pain in the back for bugfixing.

I've had a look at mkvmerge (just the manpage).. feature wise it seems okay (raw stream import is missing though which restricts the x264 encoder to x264.exe.. for all the other codecs it appears we have to use mencoder's avi output).. still comes down on how processing is done.

Doom9
4th July 2005, 20:19
btw I noted that dgtable can be used to get a list of PIDs from a TS stream.

I think we ought to finish the mp4 featureset first before looking at other formats (so x264.exe mode, and lavc/xvid configuration). I'm going to look at the latter tomorrow along with the one click encoder. I'll probably end up rewriting some stuff and I'll try to make things more flexible so that other output formats and other audio codecs could be added without so much hassle.