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
23rd January 2006, 11:13
update the VidCodecSettings property to have a get and set, and use this throughout MeGUI:sounds good (though in the end I think we'll go much further than this.. dimzon mentioned some stuff to think about).

dimzon
23rd January 2006, 11:13
@dimzon: I'm planning some refactoring and quite a few changes to the currentNAACSettings, etc, as well as other audio in Form1.cs. Does this clash with the changes you have made?
Please, do not touch audio-related stuff until my commit (I'm waiting for Doom9 approval).

Here we go: update the VidCodecSettings property to have a get and set, and use this throughout MeGUI:
<skiped/>
Of course, I would do likewise for audio (audio seems even worse.... it has HEAPS of code all over the place, which I don't think has been changed for ages). What do you think?

Does You read my proposal:
http://forum.doom9.org/showthread.php?p=773033#post773033

It's sutable for vide too ;)

Doom9
23rd January 2006, 11:28
I'm waiting for Doom9 approvalAnd I asked a couple critical questions.. have you checked how both besweet and avisynth audio encoding behave in manual, auto and one click mode? there must not be any commit unless the correct behavior has been checked everywhere. This change is too big to not check every mode at least once.
Is AvisynthAudioEncoder good for it?Yes, that would've been my suggestion

By the way, would you mind cutting down your signature? It kinda bugs me a lot.

dimzon
23rd January 2006, 11:35
have you checked how both besweet and avisynth audio encoding behave in manual, auto and one click mode?
Oh, sorry, missed them. No, i do not perform this check. I have not material to check one click mode (i'm @ ofice and my home PC is broked). Can you perform this check for me?[/QUOTE]


By the way, would you mind cutting down your signature? It kinda bugs me a lot.
What signature? Where?

dimzon
23rd January 2006, 11:38
@Doom9
addition about audio cutlist
We are propesed long(int64) for frames and nominators. Unfortunally AviSynth does support only int (int32).
I prefer to stand @ longs (for futher) but avoid values > int.MaxValues

Doom9
23rd January 2006, 11:57
Can you perform this check for me?I'm also at work.
What signature?Yours.. colored, bold, 7 lines and 8 links. It makes me think about a rule change.
I actually keep nbFrames as an int throughout the application.
BTW, when can you get started on the video part of the avisynth wrapper? And the whole nominator/denominator that fps was recently changed to already gives me a headache now.. it was so nice having a double and that's that.. it's what people commonly understand as a framerate. All those changes were imho extremely unnecessary and now have the sideeffects I expected.. they break existing applications.

dimzon
23rd January 2006, 12:22
I'm also at work.
I can't perform this check even @ home. Can You perform this check when yoiu will be @ home?
Or can somebody else, well known to Doom9, perform this check?

Yours.. colored, bold, 7 lines and 8 links. It makes me think about a rule change.
Oh, I understand. Is it better now?

BTW, when can you get started on the video part of the avisynth wrapper?

At first I must perform CVS commit
I must split AudioEncoder.cs and rename DimzonEncoder
Maybe some cleanups in AvisynthAudioEncoder
CVS commit

After this I can try start ideo part of the avisynth wrapper (Seems like you like it :cool: )


And the whole nominator/denominator that fps was recently changed to already gives me a headache now.. it was so nice having a double and that's that..

at least let's switch from double to System.Decimal (I believe it's easy to replace).


All those changes were imho extremely unnecessary and now have the sideeffects I expected.. they break existing applications.

In other hand you can make something like this


public class FramesPerSecond
{
public long Nominator
public long Denominator

public FramesPerSecond(System.Decimal fps)
{
Denominator = 1000000;
Nominator = (long)(fps * Denominator);
}

public System.Decimal ToDecimal()
{
System.Decimal fps = Nominator ;
fps/=Denominator;
return fps;

}

public static implicit operator FramesPerSecond(System.Decimal fps)
{
return new FramesPerSecond(fps);
}

public static implicit operator System.Decimal(FramesPerSecond fps)
{
return fps.ToDecimal()
}


}

this code allows you step-by-step conversion from Double/Decimal to Nominator/Denominator

berrinam
23rd January 2006, 12:25
Please, do not touch audio-related stuff until my commit (I'm waiting for Doom9 approval). Ok, sure thing. I'll wait. I'll apply Richard Berg's patch, but looking at it, there are no changes to the audio code -- only the AutoEncode setup.
Does You read my proposal:
http://forum.doom9.org/showthread.php?p=773033#post773033

It's sutable for vide too ;)Good proposal. I assume that this code:
foreach(IAudioSettingsProvider p in AudioCodecComboBox.Items)
{
if(p.IsSupportedSettings(settingsToLoad))
{
p.LoadCodecSettings(settingsToLoad);
AudioCodecComboBox.SelectedItem = p;
break;
}
}
would be in a property?

Doom9
23rd January 2006, 12:38
In other hand you can make something like thisThe thing is though, if you look at the discussion in the avisynth forum.. it's not such a nice denominator (http://forum.doom9.org/showthread.php?t=104681)

And it's really up to you to test your modifications.. not somebody else. We'll get nowhere if every dev just checks if something compiles.. that would imply that after every commit, there's a new build that will cause a long list of bugreports and somebody has to fix things again. You don't release stuff at work without having tested it, do you? Even if not using jUnit, the least amount of testing that should be done is playing through the most likely scenarios.

berrinam
23rd January 2006, 12:42
CVS Update:
0.2.3.2037 23 Jan 2006
Applied Richard Berg's filechecking bugfix
Fixed OneClickWindow to register the automatic deinterlacing settings

It has some changes to Form1.cs, but I don't think they would clash with dimzon's, and the changes are very few.

Also, dimzon, the correct word is not Nominator, but Numerator.

Doom9
23rd January 2006, 13:25
another question regarding the audio encoder: the exe currently has nero7 on it.. does it work with nero6 as well?

dimzon
23rd January 2006, 13:39
The thing is though, if you look at the discussion in the avisynth forum.. it's not such a nice denominator (http://forum.doom9.org/showthread.php?t=104681)
Ok, lets stay @ double (or, maybe Decimal, it's better)


And it's really up to you to test your modifications.. not somebody else.
As I said before I have not ability to check this functionality at all. In other side I does'nt think I boreke something (i does not perform any changes in this part of code & does not perform any structural changes and project still compile).
AutoEncode works fine (just tested on Version() avs :) )

You don't release stuff at work without having tested it, do you? Even if not using jUnit, the least amount of testing that should be done is playing through the most likely scenarios.
We have special QA division ;)

the correct word is not Nominator, but Numerator.
thanx

Doom9
23rd January 2006, 13:44
As I said before I have not ability to check this functionality at all.Why not? Don't tell me you don't have any DVDs and digital streams whatsoever.. and there are freely downloadable VOB trailers just in case.

dimzon
23rd January 2006, 13:46
another question regarding the audio encoder: the exe currently has nero7 on it.. does it work with nero6 as well?
Yes an No ;)

really current encoder work with both dll versions but it will not perform any channel workaround (it just read data from stdin and sent it to nero dll)
dimzonEncoder assumes Nero7 is used and adds such workaround script @ the end of AVS:

6==Audiochannels(last)?GetChannel(last,2,3,1,6,4,5):last
really it's possible to add checkbox @ settings form or AudioSettingsDialog to switch before versions.

By the way - you can use Nero7 aac encoder without Nero7 installed.
place my executable + bsn.dll from besweet + aacenc32.dll + aac.dll + neroipp.dll + mfc71.dll at same folder and enjoy ;)

dimzon
23rd January 2006, 13:50
Why not? Don't tell me you don't have any DVDs and digital streams whatsoever.. and there are freely downloadable VOB trailers just in case.
If You can provide me a VOB for testing wich size is <=10-20 MB i will be happy ;)
And I can't download multimedia content directly (i'm behinde evil corporate firewall) so you need to archive it with passwo twice (this firewall can read archive toc)

Doom9
23rd January 2006, 14:02
You have no DVDs and hang out in this place, no DV, no digital TV? I'm wondering what you're doing here then.. why be a member of a digital video forum if you do not have any digital video to process? I wouldn't download VOBs at work either but there's always the option of downloading from home. I'm getting the excuses feeling again. I don't find it plausible that any member here would not have any digital video he or she could process..

Doom9
23rd January 2006, 14:19
If supporting Nero6 means changes, then I guess we need another dropdown in the settings.. depending on that value, you'd then add or not add the nero6 workaround.

stax76
23rd January 2006, 14:37
You have no DVDs and hang out in this place, no DV, no digital TV?

I got some stuff in case somebody is looking for something, has anybody some DV samples?

I've processed some of my samples probably more than 100 times, funny thing is with every watch of a sample I either hate or like it a little bit more :)

dimzon
23rd January 2006, 14:47
You have no DVDs and hang out in this place, no DV, no digital TV?
As i said before I'm working on non-usial HW configuration now. My primary HDD still broken and I'm working @ 20GB HDD now. This HDD is bloated by instrumental tools and I running approx 500MB free only so I can't test on full-size DVD. If testing on small AVI is enought to test OneClick mode I will do it.
And I have not internet connection avaluable @ home :scared:

dimzon
23rd January 2006, 15:03
@Doom9
I have found some mpg file but seems like MeGUI for OneClickMode (never used before) searching for some additional file with txt extension in same folder. I really doen't know where to get it...

gets information about a video source based on its DVD Decrypter generated info file

Doom9
23rd January 2006, 15:17
doesn't matter if you don't have it and I suppose that's in berrinam's guide. and come to think of it, testing auto-mode should be enough because one click mode is based on the same code.. the jobs are just created after indexing so that comes down to the same as auto-mode.

dimzon
23rd January 2006, 15:38
doesn't matter if you don't have it and I suppose that's in berrinam's guide. and come to think of it, testing auto-mode should be enough because one click mode is based on the same code.. the jobs are just created after indexing so that comes down to the same as auto-mode.
Auto mode works fine, can I perform commit?

Doom9
23rd January 2006, 15:50
if you've tested both besweet and avisynth mode, then yes. good luck

dimzon
23rd January 2006, 16:09
if you've tested both besweet and avisynth mode, then yes. good luck
0.2.3.2038 23 Jan 2006
Commit by dimzon
-New audio encoding mode via AviSynth
-Refectored && redesigned AudioSettings dialogs
-AviSynth wrapper (only audio)
-Don't forget to put avisynthwrapper.dll into executable folder
-avisynthwrapper.zip contains avisynthwrapper.dll sources
-use BeHappy.Extension.Encoder.Nero7AAC.exe from BeHappy instead of neroraw.exe for nero encoding

dimzon
23rd January 2006, 16:21
http://vzlaird.narod.ru/x264/ContextHelp.xml --> russian translation ;) Maybe we can add support for multiple languages for this file via configuration switch?
this is not full MeGUI localisation but at least meaningfull localazed information about codecs...

dimzon
23rd January 2006, 16:26
@Doom9:
How I have multiple posiible ways what to do. I can:

perform futher AviSynthAudioEncoder refactoring
create video-part for the AviSynthWrapper
implement proposed changes (IAudioSettingsProvider in Combo)
add support for Nero 6 AAC encoder
create neroraw.exe


What does You want I do first ?

Doom9
23rd January 2006, 16:30
well.. if I can chose: 5, 4, 1, 2

Wait with number 3 because the whole shebang should be redone. I'm planning on first compiling a list with all the functions and their classes that we have now, then decide what should go where, any possible naming changes, and then finally the implementation.

dimzon
23rd January 2006, 16:37
well.. if I can chose: 5, 4, 1, 2

Wait with number 3 because the whole shebang should be redone. I'm planning on first compiling a list with all the functions and their classes that we have now, then decide what should go where, any possible naming changes, and then finally the implementation.
create neroraw.exe
how i must commit it to CVS? if i commit compiled executable + sources in zip file - is it OK?

Doom9
23rd January 2006, 16:42
hmm.. you have to ask somebody more familiar with the CVS system.. I tend to think this shouldn't be part of the megui source tree but something else. I don't really know what we can do to achieve that.. ideally I think it (and the avisynth wrapper) should be a separate subtree, so you can check them out and compile independently of megui.

dimzon
23rd January 2006, 17:00
hmm.. you have to ask somebody more familiar with the CVS system.. I tend to think this shouldn't be part of the megui source tree but something else. I don't really know what we can do to achieve that.. ideally I think it (and the avisynth wrapper) should be a separate subtree, so you can check them out and compile independently of megui.
this is extremely easy console application, it does not produce any compilation troubles so i decide to add it to MeGUI solution. You can still compile MeGUI only OR you can compile them both or you can build neroraw only. If You don't like my way we can remove it from solution/CVS anytime

PS. It's alredy @ CVS :cool:

dimzon
23rd January 2006, 17:26
add support for Nero 6 AAC encoder
0.2.3.2039 23 Jan 2006
Commit by dimzon
-Support for Nero6 AAC
http://img227.imageshack.us/img227/4347/untitled9mq1.png

dimzon
23rd January 2006, 18:32
btw: Even if AVS is LGPL licensed the root wrapper code by Mobilehackers was released under the GPL thats why I kept it automatically as GPL when I modded the sources. So even the resulted dll is GPL'ed *imho* (not 100% sure)

If you want a preview of the frame or the audio, you can simply use the approaches I discribed in here:
http://forum.doom9.org/showthread.php?p=772595#post772595
There you will obtain a pointer where you can access the Bitmap-startingadress by using for example SetDIBits() of the Win API (or something similair in C#)


PVideoFrame f = clip[clip_num]->GetFrame(frm, env);
g_lasterr[0] = 0;
return (int)f->GetReadPtr();

I really doesn't like this implementation. PVideoFrame is smartpointer.
It means it will be destroyed right after function exits. So you have no warranty actual frame data still @ obtained adress
(depends on memory manager implementation && current heap fullness)
There are 2 ways howto fix it
First way means providing buffer into rotune and filling it actual data. This is mostly clear way. Unfortunally it cost additional CPU cycles for copyng memory and reques additional memory.
Second way is storing PVideoFrame f in dynamicaly-allocated memory and returning it outside your dll. It means you need 3 functions instead one:

frame = avs_getvframe(clip_num, frm, env) - returns &f
avs_getvframepointer(frame) - returns (*frame)->GetReadPtr();
avs_disposevframe(frame) - must deallocate memory: (*frame=NULL; free(frame))

berrinam
23rd January 2006, 21:22
doesn't matter if you don't have it [stream information.txt] and I suppose that's in berrinam's guide.Hmmm.... not at the moment. As it is, I am not convinced whether that will work. It seems to rely on the audio being in the first two track IDs (presuming the user chooses track 1 and track 2). Can this be assumed to always be the case? If so, I will put it into the guide.

Doom9
23rd January 2006, 22:02
Can this be assumed to always be the case? I'm not really sure.. there are 8 tracks you can chose from and I always thought they'd map to the 0x8* used for AC3 tracks, but I have no clue how it works for PCM, MPEG or DTS (DTS uses 0x88 and 0x89).

berrinam
23rd January 2006, 22:25
Perhaps it is necessary, then, to rethink about integrating MediaInfo.dll?

Inc
23rd January 2006, 22:32
AC3 ... 0x80 to 0x8?
DTS ... 0x88 or 0x89
PCM ... 0xA0 to 0xA?
MP2 ... 0xC? to ????

klicker4546
24th January 2006, 01:13
0.2.3.2039 23 Jan 2006
Commit by dimzon
-Support for Nero6 AAC


I'm just wondering, where can I find the latest source code to compile it? Don't tell me on sourceforget in the MeGUI cvs. Could anyone please upload it somewhere?

I'd really appreciate.

berrinam
24th January 2006, 01:26
I'm just wondering, where can I find the latest source code to compile it? Don't tell me on sourceforget in the MeGUI cvs. Could anyone please upload it somewhere?

I'd really appreciate.
The people who can upload the sources are the same people who can upload the compield versions, so I don't see why you are asking for this. You either have to wait until someone who can upload does, (in which case you will get a binary -- why would you want to compile?) or get it sooner, which does mean the Sourceforge CVS.

klicker4546
24th January 2006, 01:30
The people who can upload the sources are the same people who can upload the compield versions, so I don't see why you are asking for this. You either have to wait until someone who can upload does, (in which case you will get a binary -- why would you want to compile?) or get it sooner, which does mean the Sourceforge CVS.

Thanks for your quick reply. I've tried to deal with the Sourceforge CVS, but experienced problems with the anonymous login. Since I don't know if that's fixed, I was just wondering if it's possible to get the sources here. Or can you tell me how to download the latest changes from the CVS?

I guess I have to be patient then. ;)

Inc
24th January 2006, 01:44
Don't tell me on sourceforget in the MeGUI cvs.It gots its sense why such appl. sources are at Sourceforge.net

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/megui login

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/megui co -P modulenamehttp://sourceforge.net/cvs/?group_id=156112

Try this line using CygWin's cvs.exe for example, thats how I do download mencoder and ffmpeg sources when I do need them.
Im not shure if it works since I saw some lines above something about an anonymous login issue?

Also DevC++ or any other CVS Win32 browser could do such D/L Jobs.

berrinam
24th January 2006, 03:11
0.2.3.2040 24 Jan 2006
Commit by berrinam:
-Fixed d2v/audio extension bug
-Stopped progress window opening on a new job when MeGUI is minimized.
-Fixed AviSynthJobs to open the progress window when required
-Fixed AutoEncode to work with prerender jobs

berrinam
24th January 2006, 04:03
0.2.3.2041 24 Jan 2006
Commit by berrinam:
-Fix the incorrect fps displayed in the bitrate calculator due to new DGIndex fps signalling

Doom9
24th January 2006, 04:48
Perhaps it is necessary, then, to rethink about integrating MediaInfo.dll?Well.. I think some tests would be in order to determine how it works with the non standard streams. As you know, there are but 8 tracks you can select from within DGIndex and in a way they need to be able to extract everything (8 tracks is the maximum DVD offers).. so I think the mapping is dynamic and it's likely that if you have three tracks, they'd be track 1 - 3. Let's ask neuron2 to make sure (well you ask.. I gotta take the 5:05am train to get to the airport).

dimzon
24th January 2006, 11:56
CVS Update:
fixed compilation bug involved by my previous update (changed compile.bat)

klicker4546
24th January 2006, 13:43
Thanks for your help. I've tried it several times now to login to the megui cvsroot. Without any succes. There's everytime a timeout. Think I've read something about it before. Does anyone know how to get it working?

:confused:

It gots its sense why such appl. sources are at Sourceforge.net

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/megui login

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/megui co -P modulenamehttp://sourceforge.net/cvs/?group_id=156112

Try this line using CygWin's cvs.exe for example, thats how I do download mencoder and ffmpeg sources when I do need them.
Im not shure if it works since I saw some lines above something about an anonymous login issue?

Also DevC++ or any other CVS Win32 browser could do such D/L Jobs.

dimzon
24th January 2006, 13:44
0.2.3.2042 24 Jan 2006
Commit by dimzon:
-fixed some compilation warnings

dimzon
24th January 2006, 14:01
0.2.3.2043 24 Jan 2006
Commit by dimzon:
-changed Thread sync to fix some compilation warnings

dimzon
24th January 2006, 15:15
0.2.3.2044 24 Jan 2006
Commit by dimzon:
-AvsReader (not checked yet, not used anymore)

dimzon
24th January 2006, 15:53
0.2.3.2045 24 Jan 2006
Commit by dimzon:
-Modified AvsReader are now used for Avs preview ;) Everyting works fine...

http://img296.imageshack.us/img296/8974/untitled4pi.png

dimzon
24th January 2006, 15:59
@Doom9
I need you assistance for AvsAudioEncoder refactoring. Take look @ it. Sometimes it's looks like CommandLineAudioEncoders, sometimes not. Maybe we can create CommandLineAudioEncoder ancestor to collect all common code in it? (I can't do it without Your approval bcz it is architectural change)

PS. Does we need mediaInfo.dll wrapper? I can write it.